commit 81115dc23d85a0b0c1b0f79ac43dd224bb761d0a Author: figmar Date: Sat May 30 14:57:45 2026 +0800 初始提交:识流 AI 助手项目 微信自动回复机器人,基于截图+OCR识别消息,支持关键词规则和 AI(OpenAI/DeepSeek/Dify)自动回复。 技术栈:PySide6 + Flask + Vue3 + RapidOCR + SQLite 注:OCR大模型文件(.onnx / .pdiparams)不纳入版本控制,需单独下载。 🤖 Generated with [Qoder][https://qoder.com] diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4f2442 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +ocr_debug_images/* +logs/* +frontend/node_modules/* +frontend/src-tauri/resources/* +!frontend/src-tauri/resources/.gitkeep +app/resources/ocr_models/variants/* +# 大型模型文件(需单独下载) +app/resources/ocr_models/*.onnx +vendor/paddleocr/official_models/**/*.pdiparams +.build/* + +.venv/* +**/__pycache__/* + + diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/application/__init__.py b/app/application/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/application/bot_controller.py b/app/application/bot_controller.py new file mode 100644 index 0000000..9b7e128 --- /dev/null +++ b/app/application/bot_controller.py @@ -0,0 +1,134 @@ +import os +import threading +import traceback +from datetime import datetime + +from app.infrastructure.wechat_multi_chat_bot import WechatMultiChatBot + + +class BotController: + def __init__(self): + self._lock = threading.RLock() + self._thread = None + self._bot = None + self._status = "stopped" + self._last_error = "" + self._started_at = "" + self._stopped_at = "" + self._listeners = {} + self._listener_seq = 0 + + def start(self, backend_url): + with self._lock: + if self._thread and self._thread.is_alive(): + return self._status_payload_locked() + self._status = "starting" + self._last_error = "" + self._stopped_at = "" + os.environ["BACKEND_URL"] = backend_url + self._thread = threading.Thread(target=self._run, daemon=True, name="WechatBotThread") + self._thread.start() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + return status + + def stop(self): + with self._lock: + if not self._thread or not self._thread.is_alive(): + self._status = "stopped" + self._bot = None + self._stopped_at = self._now() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + return status + self._status = "stopping" + bot = self._bot + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + if bot: + bot.stop() + return status + + def status(self): + listeners = None + with self._lock: + if self._status in {"running", "starting", "stopping"} and self._thread and not self._thread.is_alive(): + if self._status != "error": + self._status = "stopped" + self._bot = None + self._stopped_at = self._stopped_at or self._now() + listeners = list(self._listeners.values()) + status = self._status_payload_locked() + if listeners is not None: + self._notify_status_listeners(listeners, status) + return status + + def add_status_listener(self, callback, emit_initial=False): + with self._lock: + self._listener_seq += 1 + listener_id = self._listener_seq + self._listeners[listener_id] = callback + status = self._status_payload_locked() + if emit_initial: + try: + callback(status) + except Exception: + pass + return listener_id + + def remove_status_listener(self, listener_id): + with self._lock: + self._listeners.pop(listener_id, None) + + def _run(self): + try: + bot = WechatMultiChatBot() + with self._lock: + self._bot = bot + self._status = "running" + self._started_at = self._now() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + bot.run_forever() + with self._lock: + self._status = "stopped" + self._bot = None + self._stopped_at = self._now() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + except Exception: + with self._lock: + self._status = "error" + self._bot = None + self._last_error = traceback.format_exc() + self._stopped_at = self._now() + status = self._status_payload_locked() + listeners = list(self._listeners.values()) + self._notify_status_listeners(listeners, status) + + def _status_payload_locked(self): + return { + "status": self._status, + "running": self._status == "running", + "last_error": self._last_error, + "started_at": self._started_at, + "stopped_at": self._stopped_at, + } + + def _notify_status_listeners(self, listeners, status): + for callback in listeners: + try: + callback(status) + except Exception: + pass + + def _now(self): + return datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + +bot_controller = BotController() diff --git a/app/application/services.py b/app/application/services.py new file mode 100644 index 0000000..e030618 --- /dev/null +++ b/app/application/services.py @@ -0,0 +1,157 @@ +import os +import socket +import subprocess +import sys +import time +from pathlib import Path + +import requests + + +class AppConfig: + def __init__(self): + self.project_root = Path(__file__).resolve().parents[2] + self.runtime_mode = self._normalize_runtime_mode(os.getenv("OPENCLAW_RUNTIME_MODE") or os.getenv("OPENCLAW_BACKEND_MODE")) + self.venv_root = self.project_root / ".venv" + self.venv_python = self.venv_root / "Scripts" / "python.exe" + self.venv_pythonw = self.venv_root / "Scripts" / "pythonw.exe" + self.host = os.getenv("APP_HOST", "127.0.0.1") + self.port = int(os.getenv("APP_PORT", "5000")) + + def _normalize_runtime_mode(self, value): + mode = (value or "").strip().lower() + if mode in {"release", "prod", "production", "bundle", "packaged"}: + return "release" + return "dev" + + @property + def base_url(self): + return f"http://{self.host}:{self.port}" + + @property + def python_executable(self): + return Path(sys.executable).resolve() + + @property + def python_prefix(self): + return Path(sys.prefix).resolve() + + @property + def is_release_mode(self): + return self.runtime_mode == "release" + + @property + def backend_entry(self): + return self.project_root / "backend_main.py" + + @property + def is_running_in_project_venv(self): + if self.is_release_mode: + return False + try: + if self.python_prefix == self.venv_root.resolve(): + return True + allowed_targets = { + self.venv_python.resolve(), + self.venv_pythonw.resolve(), + } + return self.python_executable in allowed_targets + except Exception: + return False + + +class BackendRuntime: + def __init__(self, config=None): + self.config = config or AppConfig() + + @property + def host(self): + return self.config.host + + @property + def port(self): + return self.config.port + + @property + def base_url(self): + return self.config.base_url + + @property + def backend_entry(self): + return self.config.backend_entry + + def is_backend_alive(self, host=None, port=None, timeout=0.4): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(timeout) + try: + return sock.connect_ex((host or self.host, port or self.port)) == 0 + finally: + sock.close() + + def launch_backend_process(self): + if self.config.is_release_mode: + raise RuntimeError("当前运行模式为发布态,不能从 Python 壳层再启动 backend_main.py") + backend_python = self.config.venv_python + if not backend_python.exists(): + raise RuntimeError(f"未找到后端解释器: {backend_python}") + backend_entry = self.backend_entry + if not backend_entry.exists(): + raise RuntimeError(f"未找到后端入口: {backend_entry}") + env = os.environ.copy() + env["OPENCLAW_PROJECT_VENV_REEXEC"] = "1" + env.setdefault("OPENCLAW_BACKEND_MODE", "dev") + env.setdefault("OPENCLAW_RUNTIME_MODE", "dev") + creationflags = getattr(subprocess, "CREATE_NO_WINDOW", 0) + return subprocess.Popen( + [str(backend_python), str(backend_entry)], + cwd=str(self.config.project_root), + env=env, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + creationflags=creationflags, + ) + + def terminate_backend_process(self, process, timeout=3): + if process is None or process.poll() is not None: + return + try: + process.terminate() + process.wait(timeout=timeout) + except Exception: + if process.poll() is None: + process.kill() + + +class FrontendRuntime: + def __init__(self, config=None, backend_runtime=None): + self.config = config or AppConfig() + self.backend_runtime = backend_runtime or BackendRuntime(self.config) + self.frontend_dev_url = os.getenv("FRONTEND_DEV_URL", "http://127.0.0.1:5173").strip().rstrip("/") + self.frontend_dist_index = self.config.project_root / "frontend" / "dist" / "index.html" + self.backend_wait_timeout_ms = 15000 + self.backend_wait_interval_ms = 200 + + def resolve_frontend_entry_url(self, backend_url): + if self.frontend_dev_url: + try: + requests.get(self.frontend_dev_url, timeout=1.2) + return self.frontend_dev_url + except Exception: + pass + if self.frontend_dist_index.exists(): + return backend_url.rstrip("/") + "/index.html" + return backend_url.rstrip("/") + "/admin.html" + + def wait_for_backend(self, process=None, timeout_ms=None, interval_ms=None): + timeout_ms = timeout_ms or self.backend_wait_timeout_ms + interval_ms = interval_ms or self.backend_wait_interval_ms + started_at = time.time() * 1000 + while True: + if self.backend_runtime.is_backend_alive(): + return True, "" + if process is not None and process.poll() is not None: + return False, f"独立后台进程已退出,退出码: {process.returncode}" + elapsed = time.time() * 1000 - started_at + if elapsed >= timeout_ms: + return False, f"后台启动超时,{int(elapsed)}ms 内未监听 {self.backend_runtime.host}:{self.backend_runtime.port}" + time.sleep(interval_ms / 1000.0) diff --git a/app/configs/runtime_config.py b/app/configs/runtime_config.py new file mode 100644 index 0000000..c91c094 --- /dev/null +++ b/app/configs/runtime_config.py @@ -0,0 +1,187 @@ +import os +from typing import Any + +DEFAULT_CONFIG: dict[str, Any] = { + # 应用展示名称,同时作为 AppData 默认目录名的一部分 + "APP_NAME": "AiShiliu", + # Flask 后端监听地址 + "APP_HOST": "127.0.0.1", + # Flask 后端监听端口 + "APP_PORT": 5000, + # 应用默认时区 + "APP_TIMEZONE": "Asia/Shanghai", + # 已构建前端静态资源目录,留空时自动回退到项目默认目录 + "FRONTEND_STATIC_DIR": "", + + # 日志总开关 + "LOG_ENABLED": True, + # 日志级别 + "LOG_LEVEL": "INFO", + # 是否写文本日志 + "LOG_TEXT_ENABLED": True, + # 是否写JSON日志 + "LOG_JSON_ENABLED": True, + # 单文件滚动大小(MB) + "LOG_ROTATE_MB": 5, + # 滚动保留份数 + "LOG_BACKUP_COUNT": 7, + + # MySQL 主机地址(预留给后续鉴权等在线能力) + "DB_HOST": "127.0.0.1", + # MySQL 端口(预留) + "DB_PORT": 3306, + # MySQL 数据库名(预留) + "DB_NAME": "ai_shiliu", + # MySQL 用户名(预留) + "DB_USER": "ai_shiliu", + # MySQL 密码(预留) + "DB_PASS": "", + # MySQL 字符集(预留) + "DB_CHARSET": "utf8mb4", + + # AI 提供方(openai/deepseek/dify) + "AI_PROVIDER": "dify", + # OpenAI 接口密钥 + "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", + # OpenAI API 基础地址 + "OPENAI_API_BASE": "https://api.openai.com/v1", + # OpenAI 默认模型 + "OPENAI_MODEL": "gpt-4.1-mini", + # DeepSeek 接口密钥 + "DEEPSEEK_API_KEY": "", + # DeepSeek API 基础地址 + "DEEPSEEK_API_BASE": "https://api.deepseek.com", + # DeepSeek 默认模型 + "DEEPSEEK_MODEL": "deepseek-chat", + # Dify 接口密钥 + "DIFY_API_KEY": "app-a9dofsiQi4e157uDYTx8Lrja", + # Dify API 基础地址 + "DIFY_API_BASE": "http://47.92.48.126/v1", + # Dify 用户标识 + "DIFY_USER": "wechat_user", + + + + # 百度 OCR API Key + "BAIDU_API_KEY": "ElIQN30iAqpEGi9zv0VlrtQX", + # 百度 OCR Secret Key + "BAIDU_SECRET_KEY": "7wrO2wDTx7FehuelgG0NCBDFOklnqSz0", + # OCR 引擎(baidu/rapid) + "OCR_PROVIDER": "rapid", + + # 微信机器人上报后端消息接口 + "BACKEND_URL": "http://127.0.0.1:5000/api/messages/receive", + # 轮询主循环间隔(秒) + "BOT_LOOP_INTERVAL": 3, + # 点击联系人后等待(秒) + "BOT_CLICK_AFTER_DELAY": 1.2, + # 切换会话后读取标题等待(秒) + "BOT_TITLE_AFTER_DELAY": 1.0, + # 联系人切换节流等待(秒) + "BOT_CONTACT_SWITCH_DELAY": 1.0, + # 主循环异常后的重试等待(秒) + "BOT_LOOP_ERROR_DELAY": 3.0, + + # 微信窗口目标宽度 + "WECHAT_WINDOW_TARGET_WIDTH": 1080, + # 微信窗口目标高度 + "WECHAT_WINDOW_TARGET_HEIGHT": 820, + # 微信窗口目标左侧坐标 + "WECHAT_WINDOW_TARGET_LEFT": 120, + # 微信窗口目标顶部坐标 + "WECHAT_WINDOW_TARGET_TOP": 80, + + # 是否保存 OCR 调试截图 + "OCR_SAVE_IMAGES": True, + + # 联系人行高(用于定位) + "CONTACT_ROW_HEIGHT": 64, + # 联系人列宽(用于定位) + "CONTACT_ROW_WIDTH": 240, + # 联系人列表左偏移 + "CONTACT_LIST_LEFT_OFFSET": 68, + # 联系人列表上偏移 + "CONTACT_LIST_TOP_OFFSET": 82, + # 联系人列表下偏移 + "CONTACT_LIST_BOTTOM_OFFSET": 0, + + # 会话名区域左偏移 + "SESSION_NAME_LEFT_OFFSET": 48, + # 会话名区域上偏移 + "SESSION_NAME_TOP_OFFSET": 8, + # 会话名区域宽度 + "SESSION_NAME_WIDTH": 140, + # 会话名区域高度 + "SESSION_NAME_HEIGHT": 24, + # 会话名 OCR 放大倍数 + "SESSION_NAME_OCR_SCALE": 4, + # 会话名 OCR 额外放大倍数 + "SESSION_NAME_OCR_EXTRA_SCALE": 6, + + # 聊天区截图左偏移 + "CHAT_CAPTURE_LEFT_OFFSET": 310, + # 聊天区截图上偏移 + "CHAT_CAPTURE_TOP_OFFSET": 70, + # 聊天区截图宽度 + "CHAT_CAPTURE_WIDTH": 750, + # 聊天区截图高度 + "CHAT_CAPTURE_HEIGHT": 550, + + # 顶部惩罚权重比例 + "OCR_TOP_PENALTY_RATIO": 0.18, + # 顶部惩罚二值化系数 + "OCR_TOP_PENALTY_BIN_FACTOR": 2.0, + # 顶部惩罚颜色系数 + "OCR_TOP_PENALTY_COLOR_FACTOR": 2.2, + + # 标题 OCR 区域左偏移(保留较大的方案) + "TITLE_OCR_AREA_LEFT_OFFSET": 310, + # 标题 OCR 区域上偏移(保留较大的方案) + "TITLE_OCR_AREA_TOP_OFFSET": 0, + # 标题 OCR 区域宽度(保留较大的方案) + "TITLE_OCR_AREA_WIDTH": 600, + # 标题 OCR 区域高度(保留较大的方案) + "TITLE_OCR_AREA_HEIGHT": 70, +} + + +def _raw_value(key: str) -> Any: + env_value = os.getenv(key) + if env_value is not None: + return env_value + return DEFAULT_CONFIG.get(key) + + +def get_str(key: str, default: str = "") -> str: + value = _raw_value(key) + if value is None: + return default + return str(value) + + +def get_int(key: str, default: int = 0) -> int: + value = _raw_value(key) + if value is None or value == "": + return default + return int(value) + + +def get_float(key: str, default: float = 0.0) -> float: + value = _raw_value(key) + if value is None or value == "": + return default + return float(value) + + +def get_bool(key: str, default: bool = False) -> bool: + value = _raw_value(key) + if value is None: + return default + if isinstance(value, bool): + return value + normalized = str(value).strip().lower() + if normalized in {"1", "true", "yes", "on"}: + return True + if normalized in {"0", "false", "no", "off"}: + return False + return default diff --git a/app/infrastructure/__init__.py b/app/infrastructure/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/backend.py b/app/infrastructure/backend.py new file mode 100644 index 0000000..75207ce --- /dev/null +++ b/app/infrastructure/backend.py @@ -0,0 +1,25 @@ + +from app.infrastructure.service.backend.config import app +from app.infrastructure.service.backend.db import init_db +from app.infrastructure.router.backend_routes import register_routes +from app.infrastructure.service.logging.log_service import init_logging, log_event, new_trace_id + + +init_logging() +register_routes(app) + + +def init_backend(): + trace_id = new_trace_id("backend") + try: + init_db() + log_event("INFO", "db", "db.init", trace_id, "boot", "ok", "数据库初始化成功") + except Exception as err: + log_event("ERROR", "db", "db.error", trace_id, "boot", "fail", "数据库初始化失败", reason=type(err).__name__) + raise + return app + + +def start_backend(host="127.0.0.1", port=5000, threaded=True): + backend_app = init_backend() + backend_app.run(host=host, port=port, threaded=threaded) diff --git a/app/infrastructure/router/__init__.py b/app/infrastructure/router/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/router/backend/__init__.py b/app/infrastructure/router/backend/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/router/backend/bot.py b/app/infrastructure/router/backend/bot.py new file mode 100644 index 0000000..3129269 --- /dev/null +++ b/app/infrastructure/router/backend/bot.py @@ -0,0 +1,137 @@ +import json +import queue + +from flask import Response, jsonify, request, stream_with_context + +from app.application.bot_controller import bot_controller +from app.infrastructure.service.backend.db import set_setting +from app.infrastructure.service.logging.log_query_service import clear_logs, query_event_json, query_events, query_summary, query_trace +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + + +def _sync_runtime_settings(status): + current = (status.get("status") or "stopped").strip().lower() + running = current == "running" + transitional = current in {"starting", "stopping"} + errored = current == "error" + if running: + set_setting("listener_enabled", "1") + set_setting("listener_runtime_status", "running") + elif transitional: + set_setting("listener_runtime_status", current) + elif errored: + set_setting("listener_enabled", "0") + set_setting("listener_runtime_status", "error") + else: + set_setting("listener_enabled", "0") + set_setting("listener_runtime_status", "stopped") + + +def register_bot_routes(app): + def _stream_payload(status): + return f"event: status\ndata: {json.dumps({'success': True, **status}, ensure_ascii=False)}\n\n" + + @app.route("/api/bot/status", methods=["GET"]) + def api_bot_status(): + trace_id = new_trace_id("api") + status = bot_controller.status() + _sync_runtime_settings(status) + log_event("INFO", "api", "api.bot.status", trace_id, "status", "ok", "查询监听状态成功", extra={"status": status.get("status")}) + return jsonify({"success": True, **status}) + + @app.route("/api/bot/status/stream", methods=["GET"]) + def api_bot_status_stream(): + status_queue = queue.Queue(maxsize=8) + + def on_status(status): + _sync_runtime_settings(status) + try: + status_queue.put_nowait(status) + except queue.Full: + try: + status_queue.get_nowait() + except queue.Empty: + pass + try: + status_queue.put_nowait(status) + except queue.Full: + pass + + listener_id = bot_controller.add_status_listener(on_status, emit_initial=True) + + @stream_with_context + def generate(): + try: + yield "retry: 2000\n\n" + while True: + try: + status = status_queue.get(timeout=15) + yield _stream_payload(status) + except queue.Empty: + yield "event: ping\ndata: {}\n\n" + finally: + bot_controller.remove_status_listener(listener_id) + + return Response(generate(), mimetype="text/event-stream", headers={ + "Cache-Control": "no-cache", + "Connection": "keep-alive", + "X-Accel-Buffering": "no", + }) + + @app.route("/api/logs/v2/events", methods=["GET"]) + def api_logs_v2_events(): + trace_id = request.args.get("trace_id") or "" + module = request.args.get("module") or "" + level = request.args.get("level") or "" + event = request.args.get("event") or "" + start_ts = request.args.get("start_ts") or "" + end_ts = request.args.get("end_ts") or "" + keyword = request.args.get("keyword") or "" + page = request.args.get("page", 1) + size = request.args.get("size", 50) + payload = query_events(module=module or None, level=level or None, event=event or None, trace_id=trace_id or None, start_ts=start_ts or None, end_ts=end_ts or None, keyword=keyword or None, page=page, size=size) + return jsonify({"success": True, **payload}) + + @app.route("/api/logs/v2/trace/", methods=["GET"]) + def api_logs_v2_trace(trace_id): + items = query_trace(trace_id) + return jsonify({"success": True, "trace_id": trace_id, "items": items}) + + @app.route("/api/logs/v2/summary", methods=["GET"]) + def api_logs_v2_summary(): + limit = request.args.get("limit", 300) + payload = query_summary(limit=limit) + return jsonify({"success": True, **payload}) + + @app.route("/api/logs/v2/event/", methods=["GET"]) + def api_logs_v2_event(event_id): + item = query_event_json(event_id) + if not item: + return jsonify({"success": False, "error": "event_not_found"}), 404 + return jsonify({"success": True, "item": item}) + + @app.route("/api/logs/v2/clear", methods=["POST"]) + def api_logs_v2_clear(): + body = request.get_json(silent=True) or {} + module = (body.get("module") or request.values.get("module") or request.args.get("module") or "").strip() + payload = clear_logs(module=module or None) + return jsonify({"success": True, **payload}) + + @app.route("/api/bot/start", methods=["POST"]) + def api_bot_start(): + trace_id = new_trace_id("api") + backend_url = (request.values.get("backend_url") or "").strip() + if not backend_url: + backend_url = request.host_url.rstrip("/") + "/api/messages/receive" + status = bot_controller.start(backend_url) + _sync_runtime_settings(status) + log_event("INFO", "api", "api.bot.start", trace_id, "start", "ok", "启动监听请求已处理", extra={"status": status.get("status"), "backend_url": backend_url}) + return jsonify({"success": True, **status}) + + @app.route("/api/bot/stop", methods=["POST"]) + def api_bot_stop(): + trace_id = new_trace_id("api") + status = bot_controller.stop() + _sync_runtime_settings(status) + log_event("INFO", "api", "api.bot.stop", trace_id, "stop", "ok", "停止监听请求已处理", extra={"status": status.get("status")}) + return jsonify({"success": True, **status}) diff --git a/app/infrastructure/router/backend/messages.py b/app/infrastructure/router/backend/messages.py new file mode 100644 index 0000000..7ce26cc --- /dev/null +++ b/app/infrastructure/router/backend/messages.py @@ -0,0 +1,72 @@ +from datetime import datetime + +from flask import jsonify, request + +from app.infrastructure.service.backend.ai import call_ai +from app.infrastructure.service.backend.db import find_rule_reply, get_conn, get_setting +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + + +def register_message_routes(app): + @app.route("/api/messages/receive", methods=["POST"]) + def api_receive_message(): + trace_id = new_trace_id("api") + data = request.get_json(silent=True) or request.form.to_dict() or {} + content = (data.get("content") or "").strip() + wx_user_id = (data.get("wx_user_id") or "").strip() + wx_nickname = (data.get("wx_nickname") or "").strip() + is_friend_request = int(data.get("is_friend_request") or 0) + ocr_confidence = str(data.get("ocr_confidence") or "").strip() + ocr_bubble_side = str(data.get("ocr_bubble_side") or "").strip() + if not content and not is_friend_request: + log_event("WARNING", "api", "api.messages.receive", trace_id, "validate", "failed", "消息内容为空且非好友请求", reason="content_empty") + return jsonify({"error": "content is empty"}), 400 + + conn = get_conn() + now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + try: + with conn.cursor() as cur: + cur.execute("INSERT INTO messages (wx_user_id, wx_nickname, direction, content, is_friend_request, reply_strategy, reply_reason, ocr_confidence, ocr_bubble_side, created_at) VALUES (%s, %s, 'in', %s, %s, %s, %s, %s, %s, %s)", (wx_user_id, wx_nickname, content, is_friend_request, "none", "received", ocr_confidence, ocr_bubble_side, now)) + in_msg_id = cur.lastrowid + + auto_on = str(get_setting("auto_reply_enabled", "1") or "1").strip().lower() in ["1", "true", "yes", "on"] + full_auto_on = str(get_setting("full_auto_reply_enabled", "0") or "0").strip().lower() in ["1", "true", "yes", "on"] + reply_text = "" + used_rule_id = None + reply_strategy = "none" + reply_reason = "" + + if not auto_on: + reply_reason = "auto_reply_disabled" + else: + rule = find_rule_reply(content) + if rule: + reply_text = (rule.get("reply_text") or "").strip() + used_rule_id = rule.get("id") + reply_strategy = "rule" + reply_reason = f"rule_hit:{used_rule_id}" + elif full_auto_on: + reply_strategy = "full_auto" + reply_reason = "full_auto_enabled" + reply_text = call_ai(content, wx_user_id) + else: + reply_reason = "rule_miss" + + should_reply = auto_on and bool(reply_text) + + reply_msg_id = None + if should_reply: + is_ai_reply = 0 if used_rule_id else 1 + cur.execute("INSERT INTO messages (wx_user_id, wx_nickname, direction, content, is_ai_reply, rule_id, reply_strategy, reply_reason, created_at) VALUES (%s, %s, 'out', %s, %s, %s, %s, %s, %s)", (wx_user_id, wx_nickname, reply_text, is_ai_reply, used_rule_id, reply_strategy, reply_reason, now)) + reply_msg_id = cur.lastrowid + conn.commit() + except Exception as exc: + conn.rollback() + log_event("ERROR", "api", "api.messages.receive", trace_id, "persist", "failed", "消息入库或回复处理失败", reason="db_error", extra={"error": str(exc)}) + raise + finally: + conn.close() + + log_event("INFO", "audit", "audit.decision", trace_id, "decision", "ok", "回复决策完成", reason=reply_reason or "none", extra={"wx_user_id": wx_user_id, "strategy": reply_strategy, "should_reply": should_reply, "rule_id": used_rule_id or ""}) + log_event("INFO", "api", "api.messages.receive", trace_id, "done", "ok", "消息处理完成", extra={"in_message_id": in_msg_id, "reply_message_id": reply_msg_id or "", "should_reply": should_reply}) + return jsonify({"success": True, "should_reply": should_reply, "reply_text": reply_text, "in_message_id": in_msg_id, "reply_message_id": reply_msg_id}) diff --git a/app/infrastructure/router/backend/rules.py b/app/infrastructure/router/backend/rules.py new file mode 100644 index 0000000..9e1b638 --- /dev/null +++ b/app/infrastructure/router/backend/rules.py @@ -0,0 +1,149 @@ +from datetime import datetime + +from flask import jsonify, request, send_from_directory + +from app.application.bot_controller import bot_controller +from app.infrastructure.service.backend.config import ASSETS_DIR, STATIC_DIR +from app.infrastructure.service.backend.db import SQLITE_DB_PATH, get_conn, get_setting, set_setting +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + +LOCAL_SETTING_DEFAULTS = { + "auto_reply_enabled": "1", + "listener_enabled": "0", + "listener_runtime_status": "stopped", + "full_auto_reply_enabled": "0", + "reply_fallback_mode": "ai", +} +LOCAL_SETTING_CACHE = {} + + +def _load_local_settings(force=False): + if LOCAL_SETTING_CACHE and not force: + return + for key, default in LOCAL_SETTING_DEFAULTS.items(): + LOCAL_SETTING_CACHE[key] = str(get_setting(key, default)) + + + +def _get_local_setting(key, default=None): + _load_local_settings(force=True) + return LOCAL_SETTING_CACHE.get(key, default) + + + +def _set_local_setting(key, value): + v = str(value) + LOCAL_SETTING_CACHE[key] = v + set_setting(key, v) + + + +def _frontend_index_available(): + return STATIC_DIR != ASSETS_DIR and (STATIC_DIR / "index.html").exists() + + + +def register_rule_routes(app): + @app.route("/") + @app.route("/index.html") + def frontend_page(): + if _frontend_index_available(): + return send_from_directory(STATIC_DIR, "index.html") + return send_from_directory(ASSETS_DIR, "admin.html") + + @app.route("/admin.html") + def admin_page(): + return send_from_directory(ASSETS_DIR, "admin.html") + + @app.route("/api/rules", methods=["GET", "POST"]) + def api_rules(): + action = request.values.get("action", "list") + conn = get_conn() + now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + try: + with conn.cursor() as cur: + if action == "list": + cur.execute("SELECT * FROM auto_reply_rules ORDER BY id DESC") + rows = cur.fetchall() + log_event("INFO", "api", "api.rules.list", new_trace_id("rules"), "query", "ok", "查询回复匹配配置", extra={"db_path": str(SQLITE_DB_PATH), "count": len(rows)}) + return jsonify({"success": True, "data": rows, "db_path": str(SQLITE_DB_PATH)}) + + if action == "create": + keyword = (request.values.get("keyword") or "").strip() + match_type = request.values.get("match_type", "contain") + reply_text = (request.values.get("reply_text") or "").strip() + is_active = int(request.values.get("is_active", 1)) + if not keyword or not reply_text: + return jsonify({"success": False, "message": "关键词和回复内容不能为空"}) + if match_type not in ["contain", "equal"]: + match_type = "contain" + cur.execute("INSERT INTO auto_reply_rules(keyword, match_type, reply_text, is_active, created_at, updated_at) VALUES (%s, %s, %s, %s, %s, %s)", (keyword, match_type, reply_text, is_active, now, now)) + conn.commit() + return jsonify({"success": True}) + + if action == "toggle": + rule_id = int(request.values.get("id", 0)) + is_active = int(request.values.get("is_active", 0)) + if rule_id <= 0: + return jsonify({"success": False, "message": "参数错误"}) + cur.execute("UPDATE auto_reply_rules SET is_active = %s, updated_at = %s WHERE id = %s", (is_active, now, rule_id)) + conn.commit() + return jsonify({"success": True}) + + if action == "delete": + rule_id = int(request.values.get("id", 0)) + if rule_id <= 0: + return jsonify({"success": False, "message": "参数错误"}) + cur.execute("DELETE FROM auto_reply_rules WHERE id = %s", (rule_id,)) + conn.commit() + return jsonify({"success": True}) + + if action == "settings_get": + auto_on = _get_local_setting("auto_reply_enabled", "1") == "1" + full_auto_on = _get_local_setting("full_auto_reply_enabled", "0") == "1" + reply_fallback_mode = (_get_local_setting("reply_fallback_mode", "ai") or "ai").strip() or "ai" + bot_status = bot_controller.status() + runtime_status = (bot_status.get("status") or "stopped").strip().lower() + if runtime_status not in ["running", "starting", "stopping", "stopped", "error"]: + runtime_status = "stopped" + listener_on = runtime_status in ["running", "starting"] + return jsonify({ + "success": True, + "auto_reply_enabled": auto_on, + "listener_enabled": listener_on, + "listener_runtime_status": runtime_status, + "listener_intent_enabled": _get_local_setting("listener_enabled", "0") == "1", + "full_auto_reply_enabled": full_auto_on, + "reply_fallback_mode": reply_fallback_mode, + }) + + if action == "settings_set": + if "auto_reply_enabled" in request.values: + auto_on = "1" if request.values.get("auto_reply_enabled", "1") == "1" else "0" + _set_local_setting("auto_reply_enabled", auto_on) + if "listener_enabled" in request.values: + listener_on = "1" if request.values.get("listener_enabled", "0") == "1" else "0" + _set_local_setting("listener_enabled", listener_on) + if "listener_runtime_status" in request.values: + runtime_status = (request.values.get("listener_runtime_status") or "stopped").strip().lower() + if runtime_status not in ["running", "starting", "stopping", "stopped", "error"]: + runtime_status = "stopped" + _set_local_setting("listener_runtime_status", runtime_status) + if "full_auto_reply_enabled" in request.values: + full_auto_on = "1" if request.values.get("full_auto_reply_enabled", "0") == "1" else "0" + _set_local_setting("full_auto_reply_enabled", full_auto_on) + if "reply_fallback_mode" in request.values: + reply_fallback_mode = (request.values.get("reply_fallback_mode") or "ai").strip() or "ai" + _set_local_setting("reply_fallback_mode", reply_fallback_mode) + return jsonify({"success": True}) + + if action == "messages_recent": + limit = int(request.values.get("limit", 50)) + limit = max(1, min(100, limit)) + cur.execute("SELECT * FROM messages ORDER BY id DESC LIMIT %s", (limit,)) + rows = cur.fetchall() + return jsonify({"success": True, "data": rows}) + + return jsonify({"success": False, "message": "未知操作"}) + finally: + conn.close() diff --git a/app/infrastructure/router/backend_routes.py b/app/infrastructure/router/backend_routes.py new file mode 100644 index 0000000..41a5e60 --- /dev/null +++ b/app/infrastructure/router/backend_routes.py @@ -0,0 +1,9 @@ +from app.infrastructure.router.backend.rules import register_rule_routes +from app.infrastructure.router.backend.messages import register_message_routes +from app.infrastructure.router.backend.bot import register_bot_routes + + +def register_routes(app): + register_rule_routes(app) + register_message_routes(app) + register_bot_routes(app) diff --git a/app/infrastructure/service/__init__.py b/app/infrastructure/service/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/service/backend/__init__.py b/app/infrastructure/service/backend/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/service/backend/ai.py b/app/infrastructure/service/backend/ai.py new file mode 100644 index 0000000..9def762 --- /dev/null +++ b/app/infrastructure/service/backend/ai.py @@ -0,0 +1,81 @@ +import requests + +from app.infrastructure.service.backend.config import AI_PROVIDER, DEEPSEEK_API_BASE, DEEPSEEK_API_KEY, DEEPSEEK_MODEL, DIFY_API_BASE, DIFY_API_KEY, DIFY_USER, OPENAI_API_BASE, OPENAI_API_KEY, OPENAI_MODEL +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + + +def do_openai_like(url, headers, payload): + try: + resp = requests.post(url, headers=headers, json=payload, timeout=60) + data = resp.json() if resp.text else {} + if resp.status_code >= 400: + return f"抱歉,AI 服务请求失败({resp.status_code})" + content = (((data or {}).get("choices") or [{}])[0].get("message") or {}).get("content", "") + return content.strip() if content else "抱歉,AI 暂时没有合理的回复。" + except Exception: + return "抱歉,AI 服务暂时不可用,请稍后再试。" + + +def do_dify(url, headers, payload): + try: + resp = requests.post(url, headers=headers, json=payload, timeout=60) + text = resp.text or "" + if "data:" in text: + answer = "" + for line in text.splitlines(): + line = line.strip() + if not line.startswith("data:"): + continue + chunk = line[5:].strip() + if not chunk or chunk == "[DONE]": + continue + try: + j = requests.models.complexjson.loads(chunk) + except Exception: + continue + if "answer" in j: + answer += j["answer"] + if answer.strip(): + return answer.strip() + data = resp.json() if resp.text else {} + if resp.status_code >= 400: + return f"抱歉,Dify 服务请求失败({resp.status_code})" + return (data.get("answer") or "抱歉,Dify 暂时没有合理的回复。").strip() + except Exception: + return "抱歉,Dify 服务暂时不可用,请稍后再试。" + + +def call_ai(prompt, user_id=""): + trace_id = new_trace_id("ai") + provider = AI_PROVIDER + log_event("INFO", "ai", "ai.request", trace_id, "request", "ok", "发起AI请求", extra={"provider": provider, "user_id": user_id or "", "prompt_len": len(prompt or "")}) + if provider == "mock": + result = "【自动回复】你刚才说了:" + (prompt or "")[:100] + log_event("INFO", "ai", "ai.response", trace_id, "response", "ok", "AI回复完成", extra={"provider": provider, "reply_len": len(result)}) + return result + if provider == "openai": + result = do_openai_like( + OPENAI_API_BASE.rstrip("/") + "/chat/completions", + {"Content-Type": "application/json", "Authorization": f"Bearer {OPENAI_API_KEY}"}, + {"model": OPENAI_MODEL, "messages": [{"role": "system", "content": "你是一个专业的微信私域运营助手,用简洁自然的中文回复用户。"}, {"role": "user", "content": prompt}], "temperature": 0.7, "user": user_id or None}, + ) + elif provider == "deepseek": + result = do_openai_like( + DEEPSEEK_API_BASE.rstrip("/") + "/chat/completions", + {"Content-Type": "application/json", "Authorization": f"Bearer {DEEPSEEK_API_KEY}"}, + {"model": DEEPSEEK_MODEL, "messages": [{"role": "system", "content": "你是一个简洁高效的微信助手。回复要求:一句话,不超过50字。"}, {"role": "user", "content": prompt}], "temperature": 0.7, "max_tokens": 100, "user": user_id or None}, + ) + elif provider == "dify": + result = do_dify( + DIFY_API_BASE.rstrip("/") + "/chat-messages", + {"Content-Type": "application/json", "Authorization": f"Bearer {DIFY_API_KEY}"}, + {"inputs": {}, "query": prompt, "response_mode": "streaming", "user": user_id or DIFY_USER, "conversation_id": ""}, + ) + else: + result = "AI_PROVIDER 未配置正确,请检查环境变量。" + + if result.startswith("抱歉") or "未配置正确" in result: + log_event("WARNING", "ai", "ai.response", trace_id, "response", "failed", "AI回复异常或降级", reason="provider_error", extra={"provider": provider, "reply": result[:120]}) + else: + log_event("INFO", "ai", "ai.response", trace_id, "response", "ok", "AI回复完成", extra={"provider": provider, "reply_len": len(result)}) + return result diff --git a/app/infrastructure/service/backend/config.py b/app/infrastructure/service/backend/config.py new file mode 100644 index 0000000..010709c --- /dev/null +++ b/app/infrastructure/service/backend/config.py @@ -0,0 +1,45 @@ +import os +from pathlib import Path + +from flask import Flask, request + +from app.configs.runtime_config import get_int, get_str + +PROJECT_ROOT = Path(__file__).resolve().parents[4] + +ASSETS_DIR = PROJECT_ROOT / "assets" +FRONTEND_DIST_DIR = PROJECT_ROOT / "frontend" / "dist" +_frontend_static_dir = get_str("FRONTEND_STATIC_DIR", "").strip() +FRONTEND_STATIC_DIR = Path(_frontend_static_dir).resolve() if _frontend_static_dir else None +STATIC_DIR = FRONTEND_STATIC_DIR or (FRONTEND_DIST_DIR if FRONTEND_DIST_DIR.exists() else ASSETS_DIR) + +DB_HOST = get_str("DB_HOST", "127.0.0.1") +DB_PORT = get_int("DB_PORT", 3306) +DB_NAME = get_str("DB_NAME", "ai_shiliu") +DB_USER = get_str("DB_USER", "ai_shiliu") +DB_PASS = get_str("DB_PASS", "") +DB_CHARSET = get_str("DB_CHARSET", "utf8mb4") + +AI_PROVIDER = get_str("AI_PROVIDER", "") +OPENAI_API_KEY = get_str("OPENAI_API_KEY", "") +OPENAI_API_BASE = get_str("OPENAI_API_BASE", "") +OPENAI_MODEL = get_str("OPENAI_MODEL", "") +DEEPSEEK_API_KEY = get_str("DEEPSEEK_API_KEY", "") +DEEPSEEK_API_BASE = get_str("DEEPSEEK_API_BASE", "") +DEEPSEEK_MODEL = get_str("DEEPSEEK_MODEL", "") +DIFY_API_KEY = get_str("DIFY_API_KEY", "") +DIFY_API_BASE = get_str("DIFY_API_BASE", "") +DIFY_USER = get_str("DIFY_USER", "") + +app = Flask(__name__, static_folder=str(STATIC_DIR), static_url_path="") + + +@app.after_request +def add_cors_headers(response): + origin = (request.headers.get("Origin") or "").strip() + allow_origin = origin or "*" + response.headers["Access-Control-Allow-Origin"] = allow_origin + response.headers["Vary"] = "Origin" + response.headers["Access-Control-Allow-Headers"] = "Content-Type, Authorization" + response.headers["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS" + return response diff --git a/app/infrastructure/service/backend/db.py b/app/infrastructure/service/backend/db.py new file mode 100644 index 0000000..7347655 --- /dev/null +++ b/app/infrastructure/service/backend/db.py @@ -0,0 +1,218 @@ +import json +import os +import re +import sqlite3 +from pathlib import Path + +from app.infrastructure.service.backend.config import PROJECT_ROOT +from app.infrastructure.service.logging.log_service import log_event, new_trace_id + +_SETTING_CACHE = {} +SETTINGS_FILE = PROJECT_ROOT / "logs" / "state" / "local_settings.json" +LOCAL_APPDATA_DIR = Path(os.environ.get("LOCALAPPDATA", str(Path.home() / "AppData" / "Local"))) +SQLITE_DB_PATH = LOCAL_APPDATA_DIR / "com.shiliu.aiassistant" / "ai_shiliu.sqlite3" + + +class _SQLiteCursor: + def __init__(self, cursor): + self._cursor = cursor + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc, tb): + self._cursor.close() + + @staticmethod + def _adapt_sql(sql: str) -> str: + return sql.replace("%s", "?") + + def execute(self, sql, params=None): + sql = self._adapt_sql(sql) + if params is None: + self._cursor.execute(sql) + else: + self._cursor.execute(sql, params) + return self + + def fetchone(self): + row = self._cursor.fetchone() + return dict(row) if row is not None else None + + def fetchall(self): + return [dict(row) for row in self._cursor.fetchall()] + + @property + def lastrowid(self): + return self._cursor.lastrowid + + +class _SQLiteConn: + def __init__(self, conn): + self._conn = conn + + def cursor(self): + return _SQLiteCursor(self._conn.cursor()) + + def commit(self): + self._conn.commit() + + def rollback(self): + self._conn.rollback() + + def close(self): + self._conn.close() + + +def _bootstrap_sqlite_file(): + SQLITE_DB_PATH.parent.mkdir(parents=True, exist_ok=True) + + +def get_conn(db_name=None): + _bootstrap_sqlite_file() + conn = sqlite3.connect(str(SQLITE_DB_PATH)) + conn.row_factory = sqlite3.Row + conn.execute("PRAGMA foreign_keys = ON") + return _SQLiteConn(conn) + + +def init_db(): + trace_id = new_trace_id("db") + log_event("INFO", "db", "db.init", trace_id, "start", "ok", "初始化数据库开始", extra={"path": str(SQLITE_DB_PATH)}) + conn = get_conn() + try: + with conn.cursor() as cur: + cur.execute( + """ + CREATE TABLE IF NOT EXISTS messages ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + wx_user_id TEXT NOT NULL DEFAULT '', + wx_nickname TEXT NOT NULL DEFAULT '', + direction TEXT NOT NULL DEFAULT 'in', + content TEXT NOT NULL, + is_ai_reply INTEGER NOT NULL DEFAULT 0, + rule_id INTEGER NULL, + is_friend_request INTEGER NOT NULL DEFAULT 0, + reply_strategy TEXT NOT NULL DEFAULT '', + reply_reason TEXT NOT NULL DEFAULT '', + ocr_confidence TEXT NOT NULL DEFAULT '', + ocr_bubble_side TEXT NOT NULL DEFAULT '', + created_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime')) + ) + """ + ) + cur.execute("CREATE INDEX IF NOT EXISTS idx_messages_user_time ON messages(wx_user_id, created_at)") + cur.execute( + """ + CREATE TABLE IF NOT EXISTS auto_reply_rules ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + keyword TEXT NOT NULL, + match_type TEXT NOT NULL DEFAULT 'contain', + reply_text TEXT NOT NULL, + is_active INTEGER NOT NULL DEFAULT 1, + created_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime')), + updated_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime')) + ) + """ + ) + + cur.execute("PRAGMA table_info(messages)") + cols = {str(x.get('name') or '') for x in (cur.fetchall() or [])} + if "reply_strategy" not in cols: + cur.execute("ALTER TABLE messages ADD COLUMN reply_strategy TEXT NOT NULL DEFAULT ''") + if "reply_reason" not in cols: + cur.execute("ALTER TABLE messages ADD COLUMN reply_reason TEXT NOT NULL DEFAULT ''") + if "ocr_confidence" not in cols: + cur.execute("ALTER TABLE messages ADD COLUMN ocr_confidence TEXT NOT NULL DEFAULT ''") + if "ocr_bubble_side" not in cols: + cur.execute("ALTER TABLE messages ADD COLUMN ocr_bubble_side TEXT NOT NULL DEFAULT ''") + + conn.commit() + log_event("INFO", "db", "db.init", trace_id, "done", "ok", "初始化数据库完成") + except Exception as exc: + conn.rollback() + log_event("ERROR", "db", "db.init", trace_id, "done", "failed", "初始化数据库失败", reason="db_error", extra={"error": str(exc)}) + raise + finally: + conn.close() + + +def _load_settings_file(): + if _SETTING_CACHE: + return + try: + if SETTINGS_FILE.exists(): + data = json.loads(SETTINGS_FILE.read_text(encoding="utf-8")) + if isinstance(data, dict): + for k, v in data.items(): + _SETTING_CACHE[str(k)] = str(v) + except Exception: + pass + + +def _save_settings_file(): + SETTINGS_FILE.parent.mkdir(parents=True, exist_ok=True) + SETTINGS_FILE.write_text(json.dumps(_SETTING_CACHE, ensure_ascii=False, indent=2), encoding="utf-8") + + +def get_setting(key, default=None): + _load_settings_file() + if key in _SETTING_CACHE: + return _SETTING_CACHE[key] + if default is None: + return None + val = str(default) + _SETTING_CACHE[key] = val + _save_settings_file() + return val + + +def set_setting(key, value): + _load_settings_file() + _SETTING_CACHE[str(key)] = str(value) + _save_settings_file() + + +def normalize_text(text): + t = (text or "").strip().lower() + t = re.sub(r"\s+", "", t) + t = t.replace(":", ":") + return t + + +def find_rule_reply(content): + trace_id = new_trace_id("db") + conn = get_conn() + try: + with conn.cursor() as cur: + cur.execute("SELECT * FROM auto_reply_rules WHERE is_active = 1 ORDER BY id ASC") + rules = cur.fetchall() + except Exception as exc: + log_event("ERROR", "db", "db.rule.query", trace_id, "query", "failed", "查询规则失败", reason="db_error", extra={"error": str(exc)}) + raise + finally: + conn.close() + + raw_content = (content or "").strip() + content_lower = raw_content.lower() + content_norm = normalize_text(raw_content) + + for rule in rules: + kw = (rule.get("keyword") or "").strip() + if not kw: + continue + + kw_lower = kw.lower() + kw_norm = normalize_text(kw) + match_type = rule.get("match_type") + + if match_type == "equal": + if content_lower == kw_lower or content_norm == kw_norm: + log_event("INFO", "db", "db.rule.match", trace_id, "match", "ok", "命中规则", reason="rule_hit", extra={"rule_id": rule.get("id"), "match_type": match_type}) + return rule + else: + if kw_lower in content_lower or kw_norm in content_norm: + log_event("INFO", "db", "db.rule.match", trace_id, "match", "ok", "命中规则", reason="rule_hit", extra={"rule_id": rule.get("id"), "match_type": match_type or "contain"}) + return rule + log_event("INFO", "db", "db.rule.match", trace_id, "match", "ok", "未命中规则", reason="rule_miss", extra={"rule_count": len(rules)}) + return None diff --git a/app/infrastructure/service/logging/log_query_service.py b/app/infrastructure/service/logging/log_query_service.py new file mode 100644 index 0000000..3fac476 --- /dev/null +++ b/app/infrastructure/service/logging/log_query_service.py @@ -0,0 +1,141 @@ +import hashlib +import json +from datetime import datetime +from pathlib import Path + +from app.infrastructure.service.wechat.config import LOG_ROOT_DIR + + +ALLOWED_MODULES = {"api", "bot", "ocr", "ai", "db", "capture", "audit", "error"} +DOMAIN_MODULES = {"api", "bot", "ocr", "ai", "db", "capture"} + + +def _infer_domain(row: dict) -> str: + module = str(row.get("module") or "").strip().lower() + if module in DOMAIN_MODULES: + return module + if module == "error": + event = str(row.get("event") or "") + prefix = event.split(".", 1)[0].strip().lower() + if prefix in DOMAIN_MODULES: + return prefix + return "api" + + +def _event_id(row: dict) -> str: + raw = json.dumps(row or {}, ensure_ascii=False, sort_keys=True) + return hashlib.md5(raw.encode("utf-8")).hexdigest() + + +def _enrich_row(row: dict) -> dict: + x = dict(row or {}) + x["domain"] = _infer_domain(x) + x["event_id"] = _event_id(x) + return x + + +def _read_jsonl(module: str): + p = Path(LOG_ROOT_DIR) / f"{module}.jsonl" + if not p.exists(): + return [] + rows = [] + with p.open("r", encoding="utf-8", errors="replace") as f: + for line in f: + line = line.strip() + if not line: + continue + try: + rows.append(json.loads(line)) + except Exception: + continue + return rows + + +def query_events(module=None, level=None, event=None, trace_id=None, start_ts=None, end_ts=None, keyword=None, page=1, size=50): + modules = [module] if module in ALLOWED_MODULES else sorted(ALLOWED_MODULES) + all_rows = [] + for m in modules: + all_rows.extend(_read_jsonl(m)) + def ok(row): + if level and str(row.get("level", "")).upper() != str(level).upper(): + return False + if event and str(row.get("event", "")) != str(event): + return False + if trace_id and str(row.get("trace_id", "")) != str(trace_id): + return False + if keyword and keyword not in json.dumps(row, ensure_ascii=False): + return False + ts = str(row.get("ts") or "") + if start_ts and ts < start_ts: + return False + if end_ts and ts > end_ts: + return False + return True + rows = [_enrich_row(r) for r in all_rows if ok(r)] + rows.sort(key=lambda x: str(x.get("ts") or ""), reverse=True) + page = max(1, int(page or 1)) + size = max(1, min(200, int(size or 50))) + start = (page - 1) * size + end = start + size + return {"total": len(rows), "page": page, "size": size, "items": rows[start:end]} + + +def query_trace(trace_id: str): + if not trace_id: + return [] + result = query_events(trace_id=trace_id, size=500) + items = result.get("items") or [] + items.sort(key=lambda x: str(x.get("ts") or "")) + return items + + +def query_event_json(event_id: str): + event_id = str(event_id or "").strip().lower() + if not event_id: + return None + for m in sorted(ALLOWED_MODULES): + rows = _read_jsonl(m) + for row in rows: + x = _enrich_row(row) + if str(x.get("event_id") or "") == event_id: + return x + return None + + +def clear_logs(module=None): + modules = [module] if module in ALLOWED_MODULES else sorted(ALLOWED_MODULES) + root = Path(LOG_ROOT_DIR) + deleted = [] + for m in modules: + for p in root.glob(f"{m}.log*"): + p.write_text("", encoding="utf-8") + deleted.append(str(p.name)) + for p in root.glob(f"{m}.jsonl*"): + p.write_text("", encoding="utf-8") + deleted.append(str(p.name)) + return {"modules": modules, "files": deleted} + + +def query_summary(limit=300): + events = query_events(size=limit).get("items") or [] + error_count = sum(1 for e in events if str(e.get("level", "")).upper() in {"ERROR"}) + fallback_count = sum(1 for e in events if str(e.get("event", "")).endswith("fallback")) + reasons = {} + domain_counts = {"api": 0, "bot": 0, "ocr": 0, "ai": 0, "db": 0, "capture": 0} + for e in events: + reason = str(e.get("reason") or "").strip() + if reason: + reasons[reason] = reasons.get(reason, 0) + 1 + domain = str(e.get("domain") or _infer_domain(e)) + if domain in domain_counts: + domain_counts[domain] += 1 + reason_top = sorted(reasons.items(), key=lambda x: x[1], reverse=True)[:20] + domain_top = sorted(domain_counts.items(), key=lambda x: x[1], reverse=True) + return { + "window": len(events), + "error_count": error_count, + "fallback_count": fallback_count, + "top_reasons": [{"reason": k, "count": v} for k, v in reason_top], + "domain_counts": [{"domain": k, "count": v} for k, v in domain_top], + "generated_at": datetime.now().astimezone().isoformat(timespec="seconds"), + } diff --git a/app/infrastructure/service/logging/log_schema.py b/app/infrastructure/service/logging/log_schema.py new file mode 100644 index 0000000..a148ab6 --- /dev/null +++ b/app/infrastructure/service/logging/log_schema.py @@ -0,0 +1,86 @@ +from dataclasses import dataclass, field +from datetime import datetime +from typing import Any + + +MODULES = {"api", "bot", "ocr", "ai", "db", "capture", "audit", "error"} +DOMAIN_MODULES = {"api", "bot", "ocr", "ai", "db", "capture"} + +ALLOWED_EVENTS = { + "api.bot.status", + "api.bot.start", + "api.bot.stop", + "api.messages.receive", + "audit.decision", + "bot.chat_analyze", + "bot.chat_snapshot", + "bot.loop", + "bot.session_scan", + "bot.session_service.init", + "bot.session_title", + "bot.submit", + "bot.unread.detect", + "bot.unread.scan", + "ocr.baidu.token", + "ocr.baidu.recognize", + "ocr.rapid.init", + "ocr.rapid.recognize", + "ocr.fallback", + "ocr.session_name", + "ocr.session_title", + "ocr.generic", + "capture.contact_list", + "capture.session_title", + "capture.chat_area", + "ai.request", + "ai.response", + "db.init", + "db.error", + "db.rule.query", + "db.rule.match", +} + + +def normalize_event(module: str, event: str) -> str: + e = str(event or "").strip().lower() + m = str(module or "").strip().lower() + if e in ALLOWED_EVENTS: + return e + if "." in e: + prefix = e.split(".", 1)[0] + if prefix in DOMAIN_MODULES: + return e + if m in DOMAIN_MODULES: + return f"{m}.unknown" + return "api.unknown" + + +@dataclass +class LogEvent: + level: str + module: str + event: str + trace_id: str + stage: str + status: str + message: str + reason: str = "" + extra: dict[str, Any] = field(default_factory=dict) + ts: str = "" + + def to_dict(self) -> dict[str, Any]: + ts = self.ts or datetime.now().astimezone().isoformat(timespec="milliseconds") + module = self.module if self.module in MODULES else "api" + event = normalize_event(module, self.event) + return { + "ts": ts, + "level": (self.level or "INFO").upper(), + "module": module, + "event": event, + "trace_id": self.trace_id or "-", + "stage": self.stage or "-", + "status": self.status or "ok", + "reason": self.reason or "", + "message": self.message or "", + "extra": self.extra or {}, + } diff --git a/app/infrastructure/service/logging/log_service.py b/app/infrastructure/service/logging/log_service.py new file mode 100644 index 0000000..4b7e513 --- /dev/null +++ b/app/infrastructure/service/logging/log_service.py @@ -0,0 +1,102 @@ +import json +import logging +import os +from logging.handlers import RotatingFileHandler +from pathlib import Path + +from app.configs.runtime_config import get_bool, get_int, get_str +from app.infrastructure.service.logging.log_schema import ALLOWED_EVENTS, LogEvent, MODULES, normalize_event +from app.infrastructure.service.wechat.config import LOG_ROOT_DIR + +_INITIALIZED = False +_LOGGERS: dict[str, logging.Logger] = {} +_JSON_LOGGERS: dict[str, logging.Logger] = {} + + +class _JsonFormatter(logging.Formatter): + def format(self, record): + if isinstance(record.msg, dict): + return json.dumps(record.msg, ensure_ascii=False) + return json.dumps({"message": str(record.msg)}, ensure_ascii=False) + + +class _TextFormatter(logging.Formatter): + def format(self, record): + if isinstance(record.msg, dict): + data = record.msg + extra = data.get("extra") or {} + kv = " ".join([f"{k}={v}" for k, v in extra.items()]) + suffix = f" | {kv}" if kv else "" + return f"[{data.get('ts')}][{data.get('level')}][{data.get('module')}][{data.get('event')}][{data.get('trace_id')}] {data.get('message')}{suffix}" + return str(record.msg) + + +def _build_logger(name: str, file_path: Path, formatter: logging.Formatter, level: int, rotate_mb: int, backup_count: int): + logger = logging.getLogger(name) + logger.handlers.clear() + logger.propagate = False + logger.setLevel(level) + file_path.parent.mkdir(parents=True, exist_ok=True) + handler = RotatingFileHandler(str(file_path), maxBytes=rotate_mb * 1024 * 1024, backupCount=backup_count, encoding="utf-8") + handler.setLevel(level) + handler.setFormatter(formatter) + logger.addHandler(handler) + return logger + + +def init_logging(): + global _INITIALIZED + if _INITIALIZED: + return + enabled = get_bool("LOG_ENABLED", True) + if not enabled: + logging.disable(logging.CRITICAL) + _INITIALIZED = True + return + level_name = (get_str("LOG_LEVEL", "INFO") or "INFO").upper() + level = getattr(logging, level_name, logging.INFO) + rotate_mb = max(1, get_int("LOG_ROTATE_MB", 5)) + backup_count = max(1, get_int("LOG_BACKUP_COUNT", 7)) + root = Path(LOG_ROOT_DIR) + for module in MODULES: + text_logger = _build_logger(f"solo.{module}.text", root / f"{module}.log", _TextFormatter(), level, rotate_mb, backup_count) + json_logger = _build_logger(f"solo.{module}.json", root / f"{module}.jsonl", _JsonFormatter(), level, rotate_mb, backup_count) + _LOGGERS[module] = text_logger + _JSON_LOGGERS[module] = json_logger + _INITIALIZED = True + + +def log_event(level: str, module: str, event: str, trace_id: str, stage: str, status: str, message: str, reason: str = "", extra: dict | None = None): + if not _INITIALIZED: + init_logging() + if logging.root.manager.disable >= logging.CRITICAL: + return + normalized_event = normalize_event(module, event) + payload_extra = dict(extra or {}) + if normalized_event != str(event or "").strip().lower() and normalized_event not in ALLOWED_EVENTS: + payload_extra["event_raw"] = event + payload_extra["event_normalized"] = normalized_event + payload = LogEvent( + level=level, + module=module, + event=normalized_event, + trace_id=trace_id, + stage=stage, + status=status, + reason=reason, + message=message, + extra=payload_extra, + ).to_dict() + module_name = payload["module"] + lvl = getattr(logging, payload["level"], logging.INFO) + _LOGGERS[module_name].log(lvl, payload) + _JSON_LOGGERS[module_name].log(lvl, payload) + if lvl >= logging.ERROR and module_name != "error": + _LOGGERS["error"].log(lvl, payload) + _JSON_LOGGERS["error"].log(lvl, payload) + + +def new_trace_id(prefix: str = "trace") -> str: + import uuid + + return f"{prefix}_{uuid.uuid4().hex[:12]}" diff --git a/app/infrastructure/service/wechat/__init__.py b/app/infrastructure/service/wechat/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/infrastructure/service/wechat/chat_snapshot_analyzer.py b/app/infrastructure/service/wechat/chat_snapshot_analyzer.py new file mode 100644 index 0000000..260dd12 --- /dev/null +++ b/app/infrastructure/service/wechat/chat_snapshot_analyzer.py @@ -0,0 +1,1129 @@ +from dataclasses import dataclass, asdict +from io import BytesIO +from pathlib import Path +import json +import re +import sys + +import cv2 +import numpy as np +from PIL import Image + +# 项目根目录路径 +ROOT = Path(__file__).resolve().parents[4] +sys.path.insert(0, str(ROOT)) + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.config import ( + OCR_SAVE_DIR, + OCR_TOP_PENALTY_RATIO, + OCR_TOP_PENALTY_BIN_FACTOR, + OCR_TOP_PENALTY_COLOR_FACTOR, +) +from app.infrastructure.service.wechat.ocr import OCRService + +# 点击后的聊天截图目录 +CLICKED_DIR = ROOT / OCR_SAVE_DIR / 'sessions' / 'clicked' +# OCR输出目录,包含子目录original、merged_binary、ocr_crops +OUT_DIR = ROOT / OCR_SAVE_DIR / 'sessions' / 'clicked_ocr' +# 原始截图保存目录 +ORIGINAL_DIR = OUT_DIR / 'original' +# 合并二值化图片保存目录 +MERGED_DIR = OUT_DIR / 'merged_binary' +# OCR裁剪区域保存目录 +OCR_DIR = OUT_DIR / 'ocr_crops' +# 创建所有输出目录 +for _dir in (OUT_DIR, ORIGINAL_DIR, MERGED_DIR, OCR_DIR): + _dir.mkdir(parents=True, exist_ok=True) + + +# 获取图片输出目录,根据类别返回不同子目录路径 +def get_image_out_dir(stem: str, category: str = 'ocr') -> Path: + safe = stem or 'unknown' + base = OCR_DIR + if category == 'original': + base = ORIGINAL_DIR + elif category == 'merged': + base = MERGED_DIR + out = base / safe + out.mkdir(parents=True, exist_ok=True) + return out + +# 日志记录器 +# OCR服务单例 +ocr = OCRService() + +# 二值化和自适应阈值参数 +BINARY_THRESHOLD = 248 # 固定二值化阈值 +ADAPTIVE_BLOCK_SIZE = 13 # 自适应阈值块大小 +ADAPTIVE_C = 1 # 自适应阈值偏移量 +LEFT_MERGE_KERNEL = (5, 1) # 左侧气泡的形态学操作核 +DEFAULT_MERGE_KERNEL = (3, 1) # 默认形态学操作核 +OPEN_KERNEL = (2, 2) # 开运算核大小 + +# 气泡颜色和位置启发式参数 +PEER_BUBBLE_RGB = (238, 238, 240) # 对方消息气泡颜色(#EEEEF0) +LEFT_BUBBLE_CX_RATIO = 0.58 # 左侧气泡中心x坐标比例阈值 +RIGHT_BUBBLE_MIN_LEFT_RATIO = 0.48 # 右侧气泡最小左侧比例 +LEFT_SIDE_MAX_RIGHT_RATIO = 0.78 # 左侧气泡最大右侧比例 +LEFT_COLOR_THRESHOLD = 64 # 左侧气泡颜色差异阈值 +RIGHT_COLOR_THRESHOLD = 108 # 右侧气泡颜色差异阈值 +BRIGHTNESS_CUTOFF = 248 # 亮度截止值 +BG_WHITE_THRESHOLD = 245 # 背景白色阈值 +BRIGHT_MASK_THRESHOLD = 242 # 高亮遮罩阈值 + +# 连通组件分析的面积和尺寸阈值 +MIN_AREA_BINARY = 700 # 二值图像最小连通区域面积 +MIN_WIDTH_BINARY = 42 # 二值图像最小宽度 +MIN_HEIGHT_BINARY = 24 # 二值图像最小高度 +MIN_AREA_COLOR = 560 # 彩色图像最小连通区域面积 +MIN_WIDTH_COLOR = 38 # 彩色图像最小宽度 +MIN_HEIGHT_COLOR = 22 # 彩色图像最小高度 + +# 全二值化备选框评分参数 +FULL_BIN_SCORE_BOTTOM = 5.0 # 底部位置得分系数 +FULL_BIN_SCORE_AREA = 0.08 # 面积得分系数 +FULL_BIN_SCORE_WIDTH = 0.15 # 宽度得分系数 +FULL_BIN_PENALTY_TALL = 8.0 # 过高惩罚系数 +FULL_BIN_PENALTY_WIDE = 3.0 # 过宽惩罚系数 + +# 最新消息候选框过滤规则(用于pick_last_white_box_from_merged_binary) +AVATAR_RATIO_MIN = 0.75 +AVATAR_RATIO_MAX = 1.35 +AVATAR_MIN_SIZE = 28 +AVATAR_MAX_SIZE = 72 +AVATAR_EDGE_LEFT_RATIO = 0.2 +AVATAR_EDGE_RIGHT_RATIO = 0.8 +TIME_MARKER_MIN_H = 10 +TIME_MARKER_MAX_H = 22 +TIME_MARKER_MIN_W = 28 +TIME_MARKER_MAX_W = 110 +TIME_MARKER_RATIO_MIN = 1.8 +TIME_MARKER_RATIO_MAX = 8.0 +TIME_MARKER_CENTER_TOLERANCE = 0.16 + +# 二值气泡框评分参数 +BIN_SCORE_BOTTOM = 5.0 # 底部位置得分系数 +BIN_SCORE_AREA = 0.12 # 面积得分系数 +BIN_SCORE_OVERLAP = 220.0 # 重叠度得分系数 +BIN_PENALTY_TOP_GAP_LEFT = 10.0 # 左侧气泡顶部间隙惩罚 +BIN_PENALTY_TOP_GAP_RIGHT = 4.0 # 右侧气泡顶部间隙惩罚 +BIN_PENALTY_BOTTOM_GAP = 1.8 # 底部间隙惩罚 +BIN_PENALTY_TOO_TALL = 9.0 # 过高惩罚 +BIN_PENALTY_TOO_WIDE = 2.0 # 过宽惩罚 + +# 彩色气泡框评分参数 +COLOR_SCORE_AREA = 0.35 # 面积得分系数 +COLOR_SCORE_BOTTOM = 3.0 # 底部位置得分系数 +COLOR_SCORE_OVERLAP = 180.0 # 重叠度得分系数 +COLOR_PENALTY_TOP_GAP_LEFT = 7.5 # 左侧气泡顶部间隙惩罚 +COLOR_PENALTY_BOTTOM_GAP = 1.6 # 底部间隙惩罚 +COLOR_PENALTY_TOO_TALL = 7.0 # 过高惩罚 +COLOR_PENALTY_TOO_WIDE = 1.6 # 过宽惩罚 +COLOR_SCORE_TOP_GAP_RIGHT = 1.0 # 右侧气泡顶部间隙得分 +COLOR_SCORE_HEIGHT_RIGHT = 2.0 # 右侧气泡高度得分 + +# 最新消息簇评分参数 +CLUSTER_SCORE_BOTTOM = 2.2 # 簇底部位置得分系数 +CLUSTER_SCORE_HEIGHT = 0.9 # 簇高度得分系数 +CLUSTER_SCORE_WIDTH = 0.12 # 簇宽度得分系数 +CLUSTER_SCORE_TEXT_LEN = 1.5 # 文本长度得分系数 +CLUSTER_SCORE_MULTI_LINE_BONUS = 35.0 # 多行消息额外加分 + +# 非正文文本过滤:精确匹配的内容 +NON_BODY_EXACT_TEXTS = { + '小程序', + ':S', +} +# 非正文文本过滤:包含这些关键词的内容 +NON_BODY_CONTAINS_TEXTS = ( + '有事请@其他福利官', + '我是机器人', + '群主小助手', +) + + +# 聊天快照分析结果数据类 +@dataclass +class AnalyzeResult: + file: str + size: tuple[int, int] | None + crop_box: dict | None + latest_text: str | None + is_self_sent: bool | None + bubble_side: str | None + confidence: float + valid_lines: list[str] + error: str | None + + +# 将PIL图片转换为PNG格式的字节数据 +def pil_to_bytes(img: Image.Image) -> bytes: + buf = BytesIO() + img.save(buf, format='PNG') + return buf.getvalue() + + +# 对图片进行OCR识别,返回识别到的文本行列表 +def ocr_lines(img: Image.Image, scene: str) -> list[str]: + return [x.strip() for x in ocr.recognize(pil_to_bytes(img), scene=scene) if x and str(x).strip()] + + +def ocr_items_direct(img: Image.Image) -> list[dict]: + provider = getattr(ocr, 'rapid_provider', None) + if provider is None or not provider.ensure_ready() or provider.engine is None: + return [] + arr = cv2.cvtColor(np.array(img.convert('RGB')), cv2.COLOR_RGB2BGR) + result = provider.engine(arr) + if not result or len(result) < 1: + return [] + rec_res = result[0] or [] + items = [] + for item in rec_res: + if not item or len(item) < 2: + continue + box = np.array(item[0], dtype=np.float32) + text = str(item[1]).strip() + confidence = float(item[2]) if len(item) > 2 else 0.0 + if not text: + continue + items.append({ + 'text': text, + 'confidence': confidence, + 'left': float(box[:, 0].min()), + 'top': float(box[:, 1].min()), + 'right': float(box[:, 0].max()), + 'bottom': float(box[:, 1].max()), + }) + return items + + +# 构建合并的二值化图像,结合固定阈值和自适应阈值进行文字区域提取 +def build_merged_binary_image(img: Image.Image, *, is_left_bubble: bool | None = None) -> Image.Image: + arr = np.array(img.convert('RGB')) + gray = cv2.cvtColor(arr, cv2.COLOR_RGB2GRAY) + blurred = cv2.GaussianBlur(gray, (5, 5), 0) + _, binary_inv = cv2.threshold(blurred, BINARY_THRESHOLD, 255, cv2.THRESH_BINARY_INV) + adaptive_inv = cv2.adaptiveThreshold( + blurred, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, + cv2.THRESH_BINARY_INV, ADAPTIVE_BLOCK_SIZE, ADAPTIVE_C + ) + merged = cv2.bitwise_or(binary_inv, adaptive_inv) + # 接近极限收缩:几乎只保留细小横向连接,尽量打断大白块 + if is_left_bubble is True: + merge_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, LEFT_MERGE_KERNEL) + merged = cv2.morphologyEx(merged, cv2.MORPH_CLOSE, merge_kernel, iterations=1) + merged = cv2.morphologyEx(merged, cv2.MORPH_OPEN, cv2.getStructuringElement(cv2.MORPH_RECT, OPEN_KERNEL)) + else: + merge_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, DEFAULT_MERGE_KERNEL) + merged = cv2.morphologyEx(merged, cv2.MORPH_CLOSE, merge_kernel, iterations=1) + merged = cv2.morphologyEx(merged, cv2.MORPH_OPEN, cv2.getStructuringElement(cv2.MORPH_RECT, OPEN_KERNEL)) + return Image.fromarray(merged) + + +# 从全二值化图像中选择最佳文字区域框 +def pick_box_from_full_binary(img: Image.Image) -> dict | None: + merged = np.array(build_merged_binary_image(img)) + num_labels, _, stats, _ = cv2.connectedComponentsWithStats(merged, 8) + h, w = merged.shape[:2] + best = None + for label in range(1, num_labels): + x, y, bw, bh, area = stats[label] + if area < 300: + continue + if bw < 50 or bh < 24: + continue + right = x + bw + bottom = y + bh + score = 0.0 + score += bottom * FULL_BIN_SCORE_BOTTOM + score += min(area, 20000) * FULL_BIN_SCORE_AREA + score += min(bw, int(w * 0.7)) * FULL_BIN_SCORE_WIDTH + if bh > h * 0.45: + score -= (bh - h * 0.45) * FULL_BIN_PENALTY_TALL + if bw > w * 0.65: + score -= (bw - w * 0.65) * FULL_BIN_PENALTY_WIDE + if best is None or score > best[0]: + best = (score, x, y, right, bottom) + if best is None: + return None + _, left, top, right, bottom = best + return { + 'left': int(left), + 'top': int(top), + 'right': int(right), + 'bottom': int(bottom), + 'width': int(right - left), + 'height': int(bottom - top), + } + + +# 从合并的二值化图像中选择最下方(最新)的白色文字框 +def pick_last_white_box_from_merged_binary(merged_img: Image.Image) -> dict | None: + merged = np.array(merged_img.convert('L')) + img_h, img_w = merged.shape[:2] + num_labels, _, stats, _ = cv2.connectedComponentsWithStats(merged, 8) + boxes = [] + for label in range(1, num_labels): + x, y, w, h, area = stats[label] + if area <= 0 or w <= 0 or h <= 0: + continue + right = x + w + bottom = y + h + ratio = w / max(1.0, float(h)) + is_full_width_strip = x <= img_w * 0.02 and right >= img_w * 0.98 and w >= img_w * 0.9 + if is_full_width_strip: + continue + if w < 32 or h < 12: + continue + + # 规则1:过滤边缘头像框(近似正方形 + 固定尺寸 + 处于左右边缘) + is_avatar_like = AVATAR_RATIO_MIN <= ratio <= AVATAR_RATIO_MAX and AVATAR_MIN_SIZE <= w <= AVATAR_MAX_SIZE and AVATAR_MIN_SIZE <= h <= AVATAR_MAX_SIZE + is_edge_avatar = x <= img_w * AVATAR_EDGE_LEFT_RATIO or right >= img_w * AVATAR_EDGE_RIGHT_RATIO + if is_avatar_like and is_edge_avatar: + continue + + # 规则2:过滤中间时间标记(短高、细长、位于屏幕中轴附近) + cx = (x + right) / 2.0 + is_time_marker_like = TIME_MARKER_MIN_H <= h <= TIME_MARKER_MAX_H and TIME_MARKER_MIN_W <= w <= TIME_MARKER_MAX_W and TIME_MARKER_RATIO_MIN <= ratio <= TIME_MARKER_RATIO_MAX and abs(cx - img_w / 2.0) <= img_w * TIME_MARKER_CENTER_TOLERANCE + if is_time_marker_like: + continue + + is_left_box = cx <= img_w * LEFT_BUBBLE_CX_RATIO and x <= img_w * RIGHT_BUBBLE_MIN_LEFT_RATIO + if not is_left_box: + continue + + boxes.append((x, y, right, bottom, w, h, area)) + + if not boxes: + return None + + candidates = [] + for x, y, right, bottom, w, h, area in boxes: + score = 0.0 + score += bottom * 1.0 + score += right * 0.08 + score += min(area, 28000) * 0.0012 + if right < img_w * 0.35: + score -= 80.0 + if right > img_w * 0.82: + score -= (right - img_w * 0.82) * 1.4 + if w > img_w * 0.45 and right > img_w * 0.75: + score -= min(260.0, (w - img_w * 0.45) * 1.2 + (right - img_w * 0.75) * 1.0) + candidates.append((score, x, y, right, bottom)) + + candidates.sort(key=lambda item: item[0]) + _, left, top, right, bottom = candidates[-1] + return { + 'left': int(left), + 'top': int(top), + 'right': int(right), + 'bottom': int(bottom), + 'width': int(right - left), + 'height': int(bottom - top), + } + + +# 使用OCR引擎识别图片中的文字和位置信息 +def ocr_items_with_boxes(img: Image.Image, offset_x: int = 0, offset_y: int = 0) -> list[dict]: + provider = getattr(ocr, 'provider', None) + engine = getattr(provider, 'engine', None) + ready = getattr(provider, 'ready', False) + if not ready or engine is None: + return [] + try: + result = engine.ocr(np.array(img.convert('RGB'))) + except Exception: + return [] + items = [] + if not isinstance(result, list): + return items + for block in result: + if not isinstance(block, dict): + continue + texts = block.get('rec_texts') or [] + scores = block.get('rec_scores') or [] + boxes = block.get('rec_boxes') + if boxes is None: + boxes = [] + for idx, text in enumerate(texts): + text = str(text).strip() + if not text: + continue + score = float(scores[idx]) if idx < len(scores) and scores[idx] is not None else 0.0 + if score < 0.3 or idx >= len(boxes): + continue + box = np.array(boxes[idx]).astype(float) + if box.ndim == 1: + if box.size < 4: + continue + left, top, right, bottom = float(box[0]), float(box[1]), float(box[2]), float(box[3]) + cx = (left + right) / 2.0 + cy = (top + bottom) / 2.0 + else: + xs = box[:, 0] + ys = box[:, 1] + left, right = float(xs.min()), float(xs.max()) + top, bottom = float(ys.min()), float(ys.max()) + cx = float(xs.mean()) + cy = float(ys.mean()) + items.append({ + 'text': text, + 'score': score, + 'left': left + offset_x, + 'right': right + offset_x, + 'top': top + offset_y, + 'bottom': bottom + offset_y, + 'cx': cx + offset_x, + 'cy': cy + offset_y, + 'height': (bottom - top), + 'width': (right - left), + }) + return items + + +# 判断OCR识别出的文本行是否应该保留 +def should_keep_line(text: str) -> bool: + text = (text or '').strip() + return bool(text) + + +# 清理候选文本行,去除非正文前缀和无效符号 +def cleanup_candidate_lines(lines: list[str]) -> list[str]: + cleaned = [] + for idx, raw in enumerate(lines): + text = str(raw).strip() + if not text: + continue + + cleaned.append(text) + + # 如果最后只剩一个很短的符号行,优先回退到其上一条正文 + if len(cleaned) >= 2 and len(cleaned[-1]) <= 3 and re.fullmatch(r'[::;;SsxX]+', cleaned[-1]): + cleaned = cleaned[:-1] + + # 若仍有明显非正文前缀挂在最上面,继续剥掉 + + return cleaned + + +# 去重文本行列表,移除重复内容 +def dedupe_lines(lines: list[str]) -> list[str]: + out = [] + seen = set() + for line in lines: + text = str(line).strip() + if not text or text in seen: + continue + seen.add(text) + out.append(text) + return out + + +# 根据几何位置去重OCR识别项,移除位置和文本都相同的重复项 +def dedupe_items_by_geometry(items: list[dict]) -> list[dict]: + if not items: + return [] + items = sorted(items, key=lambda x: (-x.get('score', 0.0), x['top'], x['left'])) + kept: list[dict] = [] + for item in items: + text = item['text'].strip() + duplicate = False + for old in kept: + if old['text'].strip() != text: + continue + if abs(old['cx'] - item['cx']) <= 18 and abs(old['cy'] - item['cy']) <= 12: + duplicate = True + break + if not duplicate: + kept.append(item) + return sorted(kept, key=lambda x: (x['cy'], x['left'])) + + +# 将OCR识别项按行分组为多个簇,每簇包含同一行的文本项 +def build_line_clusters(items: list[dict], y_gap: float = 18.0) -> list[list[dict]]: + items = dedupe_items_by_geometry([x for x in items if should_keep_line(x['text'])]) + if not items: + return [] + clusters: list[list[dict]] = [] + current = [items[0]] + for item in items[1:]: + prev = current[-1] + avg_h = max(10.0, (prev.get('height', 0) + item.get('height', 0)) / 2.0) + gap_limit = max(y_gap, avg_h * 1.15) + if abs(item['cy'] - prev['cy']) <= gap_limit: + current.append(item) + else: + clusters.append(current) + current = [item] + clusters.append(current) + return clusters + + +# 将同一行的OCR项合并为单行文本字符串 +def cluster_to_lines(cluster: list[dict]) -> list[str]: + rows = build_line_clusters(cluster, y_gap=10.0) + lines = [] + for row in rows: + row = dedupe_items_by_geometry(sorted(row, key=lambda x: x['left'])) + parts = [] + for item in row: + text = item['text'].strip() + if not text: + continue + if parts and parts[-1] == text: + continue + parts.append(text) + merged = ''.join(parts) + if merged: + lines.append(merged) + return dedupe_lines(lines) + + +# 计算文本簇的边界框(上下左右和中心点) +def cluster_bounds(cluster: list[dict]) -> dict: + return { + 'top': min(x['top'] for x in cluster), + 'bottom': max(x['bottom'] for x in cluster), + 'left': min(x['left'] for x in cluster), + 'right': max(x['right'] for x in cluster), + 'cx': sum(x['cx'] for x in cluster) / len(cluster), + } + + +# 根据簇内文本项估算单行文字的高度 +def estimate_cluster_line_height(cluster: list[dict]) -> float: + heights = [float(x.get('height', 0) or 0) for x in cluster if float(x.get('height', 0) or 0) > 0] + if not heights: + return 18.0 + return max(14.0, float(np.median(heights))) + + +# 根据文本簇边界裁剪出气泡区域图片,使用颜色和形态学方法定位气泡 +def crop_bubble_box(img: Image.Image, cluster_items: list[dict], stem: str | None = None) -> tuple[Image.Image | None, dict | None]: + if not cluster_items: + return None, None + + arr = np.array(img.convert('RGB')) + img_h, img_w = arr.shape[:2] + bounds = cluster_bounds(cluster_items) + + seed_left = max(0, int(bounds['left'] - 20)) + seed_right = min(img_w, int(bounds['right'] + 20)) + seed_top = max(0, int(bounds['top'] - 30)) + seed_bottom = min(img_h, int(bounds['bottom'] + 14)) + if seed_right <= seed_left or seed_bottom <= seed_top: + return None, None + + seed = arr[seed_top:seed_bottom, seed_left:seed_right] + if seed.size == 0: + return None, None + + # 对方消息气泡:优先锚定到 #EEEEF0 附近;自己消息可再走别的颜色策略 + seed_pixels = seed.reshape(-1, 3).astype(np.int16) + brightness = seed_pixels.mean(axis=1) + bubble_pixels = seed_pixels[brightness < BRIGHTNESS_CUTOFF] + if bubble_pixels.size == 0: + bubble_pixels = seed_pixels + median_target = np.median(bubble_pixels, axis=0) + peer_target = np.array(PEER_BUBBLE_RGB, dtype=np.int16) # #EEEEF0 + # 左侧消息优先锚定 #EEEEF0 的灰底黑字气泡;右侧保留原有自适应策略 + is_left_bubble = bounds['cx'] <= img_w * LEFT_BUBBLE_CX_RATIO + if is_left_bubble: + target = peer_target + threshold = LEFT_COLOR_THRESHOLD + else: + target = median_target.astype(np.int16) + threshold = RIGHT_COLOR_THRESHOLD + + diff = np.abs(arr.astype(np.int16) - target.reshape(1, 1, 3)) + dist = diff.sum(axis=2) + + bg_mask = (arr[:, :, 0] > BG_WHITE_THRESHOLD) & (arr[:, :, 1] > BG_WHITE_THRESHOLD) & (arr[:, :, 2] > BG_WHITE_THRESHOLD) + bright_mask = arr.mean(axis=2) > BRIGHT_MASK_THRESHOLD + color_mask = (dist <= threshold) & (~bg_mask) & (~bright_mask) + color_mask = color_mask.astype(np.uint8) * 255 + + if is_left_bubble: + # 左侧灰气泡更怕把上下两条消息连在一起,这里弱化纵向粘连、强化横向连通 + kernel_close = cv2.getStructuringElement(cv2.MORPH_RECT, (11, 3)) + kernel_open = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3)) + else: + kernel_close = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7)) + kernel_open = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3)) + color_mask = cv2.morphologyEx(color_mask, cv2.MORPH_CLOSE, kernel_close) + color_mask = cv2.morphologyEx(color_mask, cv2.MORPH_OPEN, kernel_open) + + text_cx = bounds['cx'] + text_cy = (bounds['top'] + bounds['bottom']) / 2.0 + text_h = max(1.0, bounds['bottom'] - bounds['top']) + text_w = max(1.0, bounds['right'] - bounds['left']) + + def is_probable_left_avatar_candidate(stats_arr, label_idx: int, x: int, y: int, w: int, h: int) -> bool: + if not is_left_bubble: + return False + if x > img_w * 0.2: + return False + if w <= 0 or h <= 0: + return False + wh_ratio = w / max(1.0, float(h)) + if wh_ratio < 0.72 or wh_ratio > 1.35: + return False + if w < max(18.0, text_h * 0.55) or w > max(92.0, text_h * 2.4): + return False + + right_edge = x + w + row_hit = False + n = stats_arr.shape[0] if hasattr(stats_arr, 'shape') else len(stats_arr) + for j in range(1, n): + if j == label_idx: + continue + ox, oy, ow, oh, oarea = stats_arr[j] + if oarea <= 0 or ow <= 0 or oh <= 0: + continue + if ox <= right_edge: + continue + gap = ox - right_edge + if gap < 2 or gap > max(120.0, text_w * 1.4): + continue + overlap_h = max(0.0, min(y + h, oy + oh) - max(y, oy)) + if overlap_h < min(h, oh) * 0.45: + continue + if ow < w * 1.15: + continue + if oh < h * 0.75: + continue + row_hit = True + break + return row_hit + + def pick_box_from_binary_merge() -> tuple[int, int, int, int] | None: + merged_out_dir = get_image_out_dir(stem or 'unknown', 'merged') if stem else None + merged_img = build_merged_binary_image(img, is_left_bubble=is_left_bubble) + merged = np.array(merged_img) + + if merged_out_dir is not None: + merged_img.save(merged_out_dir / 'bubble_bin.png') + + num_labels2, labels2, stats2, _ = cv2.connectedComponentsWithStats(merged, 8) + best_local = None + for label in range(1, num_labels2): + x, y, w, h, area = stats2[label] + if area <= 0 or w <= 0 or h <= 0: + continue + if is_probable_left_avatar_candidate(stats2, label, x, y, w, h): + continue + right = x + w + bottom = y + h + if not (x <= text_cx <= right and y <= text_cy <= bottom): + continue + + top_gap = max(0.0, bounds['top'] - y) + bottom_gap = max(0.0, bottom - bounds['bottom']) + overlap_x = max(0.0, min(bounds['right'], right) - max(bounds['left'], x)) + overlap_ratio = overlap_x / text_w if text_w > 0 else 0.0 + if overlap_ratio < 0.45: + continue + + score = 0.0 + score += bottom * BIN_SCORE_BOTTOM + score += area * BIN_SCORE_AREA + score += overlap_ratio * BIN_SCORE_OVERLAP + if y < img_h * 0.18: + score -= (img_h * 0.18 - y) * 2.0 + score -= top_gap * (BIN_PENALTY_TOP_GAP_LEFT if is_left_bubble else BIN_PENALTY_TOP_GAP_RIGHT) + score -= abs(bottom_gap - 12.0) * BIN_PENALTY_BOTTOM_GAP + + max_reasonable_h = max(120.0, text_h * 3.4) + max_reasonable_w = max(360.0, text_w * 1.9) + if h > max_reasonable_h: + score -= (h - max_reasonable_h) * BIN_PENALTY_TOO_TALL + if w > max_reasonable_w: + score -= (w - max_reasonable_w) * BIN_PENALTY_TOO_WIDE + + if is_left_bubble: + region = arr[y:bottom, x:right].reshape(-1, 3).astype(np.int16) + if region.size > 0: + region_mean = np.median(region, axis=0) + color_score = float(320 - np.abs(region_mean - peer_target).sum()) + score += max(0.0, color_score) + + if best_local is None or score > best_local[0]: + best_local = (score, x, y, right, bottom) + if best_local is None: + return None + return best_local[1], best_local[2], best_local[3], best_local[4] + + best = None + binary_box = pick_box_from_binary_merge() + if binary_box is not None: + left, top, right, bottom = binary_box + best = (float(bottom), left, top, right, bottom) + else: + num_labels, labels, stats, _ = cv2.connectedComponentsWithStats(color_mask, 8) + for label in range(1, num_labels): + x, y, w, h, area = stats[label] + if area <= 0 or w <= 0 or h <= 0: + continue + if is_probable_left_avatar_candidate(stats, label, x, y, w, h): + continue + right = x + w + bottom = y + h + if not (x <= text_cx <= right and y <= text_cy <= bottom): + continue + + top_gap = max(0.0, bounds['top'] - y) + bottom_gap = max(0.0, bottom - bounds['bottom']) + overlap_x = max(0.0, min(bounds['right'], right) - max(bounds['left'], x)) + overlap_ratio = overlap_x / text_w if text_w > 0 else 0.0 + + score = 0.0 + score += area * COLOR_SCORE_AREA + score += bottom * COLOR_SCORE_BOTTOM + score += overlap_ratio * COLOR_SCORE_OVERLAP + if y < img_h * OCR_TOP_PENALTY_RATIO: + score -= (img_h * OCR_TOP_PENALTY_RATIO - y) * OCR_TOP_PENALTY_COLOR_FACTOR + + if is_left_bubble: + region = arr[y:bottom, x:right].reshape(-1, 3).astype(np.int16) + region_mean = np.median(region, axis=0) + color_score = float(320 - np.abs(region_mean - peer_target).sum()) + score += max(0.0, color_score) + # 目标是最后一片灰框,不是整列灰底 + score -= top_gap * COLOR_PENALTY_TOP_GAP_LEFT + score -= abs(bottom_gap - 12.0) * COLOR_PENALTY_BOTTOM_GAP + max_reasonable_h = max(110.0, text_h * 2.8) + if h > max_reasonable_h: + score -= (h - max_reasonable_h) * COLOR_PENALTY_TOO_TALL + max_reasonable_w = max(320.0, text_w * 1.6) + if w > max_reasonable_w: + score -= (w - max_reasonable_w) * COLOR_PENALTY_TOO_WIDE + else: + score += top_gap * COLOR_SCORE_TOP_GAP_RIGHT + score += h * COLOR_SCORE_HEIGHT_RIGHT + + if best is None or score > best[0]: + best = (score, x, y, right, bottom) + + if best is not None: + _, left, top, right, bottom = best + + if is_left_bubble: + cand_w = max(1, int(right - left)) + cand_h = max(1, int(bottom - top)) + cand_ratio = cand_w / float(cand_h) + if left <= int(img_w * 0.2) and 0.70 <= cand_ratio <= 1.35 and cand_w <= max(96, int(text_h * 2.6)): + left = max(0, int(bounds['left'] - 6)) + right = min(img_w, int(bounds['right'] + 12)) + top = max(0, int(bounds['top'] - 4)) + bottom = min(img_h, int(bounds['bottom'] + 10)) + + # 基于已找到的色块做方向扩张:左侧气泡重点往左/上/下扩 + def col_match_ratio(x: int, y1: int, y2: int) -> float: + seg = dist[max(0, y1):min(img_h, y2), max(0, x):min(img_w, x + 1)] + if seg.size == 0: + return 0.0 + return float((seg <= threshold).mean()) + + def row_match_ratio(y: int, x1: int, x2: int) -> float: + seg = dist[max(0, y):min(img_h, y + 1), max(0, x1):min(img_w, x2)] + if seg.size == 0: + return 0.0 + return float((seg <= threshold).mean()) + + is_left_bubble = bounds['cx'] <= img_w * 0.58 + line_h = estimate_cluster_line_height(cluster_items) + current_h = max(1.0, float(bottom - top)) + # 不写死目标高度,按当前识别到的文字行高推测一个更合理的气泡高度。 + # 经验上 4 行消息块通常需要约 5~6 个文本行高的容纳空间; + # 当前框偏小时,优先把增量用于向上扩展。 + desired_h = max(current_h, line_h * 5.6) + need_more_h = max(0.0, desired_h - current_h) + + # 左侧消息按“红框风格”收紧:更贴正文,避免包太大 + expand_left_limit = 12 if is_left_bubble else 30 + expand_right_limit = 22 if is_left_bubble else 90 + expand_up_limit = max(6, int(min(18, line_h * 0.55 + need_more_h * 0.08))) if is_left_bubble else max(40, int(min(120, line_h * 3.8 + need_more_h * 0.9))) + expand_down_limit = max(10, int(min(28, line_h * 0.85 + need_more_h * 0.10))) if is_left_bubble else max(20, int(min(60, line_h * 1.6 + need_more_h * 0.25))) + + for _ in range(expand_left_limit): + if left <= 1: + break + ratio = col_match_ratio(left - 1, top, bottom) + if ratio < 0.18: + break + left -= 1 + + for _ in range(expand_right_limit): + if right >= img_w - 1: + break + ratio = col_match_ratio(right, top, bottom) + if ratio < 0.18: + break + right += 1 + + up_steps = 0 + top_guard = max(0, int(bounds['top'] - (line_h * 0.9 if is_left_bubble else line_h * 2.2))) + for _ in range(expand_up_limit): + if top <= 1 or top <= top_guard: + break + ratio = row_match_ratio(top - 1, left, right) + # 左侧消息向上严格很多,避免把昵称/头像旁白区卷进来 + if is_left_bubble: + if ratio < 0.18: + break + else: + if ratio < 0.10 and up_steps > int(line_h * 0.8): + break + top -= 1 + up_steps += 1 + + down_steps = 0 + for _ in range(expand_down_limit): + if bottom >= img_h - 1: + break + ratio = row_match_ratio(bottom, left, right) + if ratio < 0.16 and down_steps > int(line_h * 0.5): + break + bottom += 1 + down_steps += 1 + + # 如果扩张后仍明显矮于按行高估计的合理高度,左侧消息也只做很有限补偿,避免变成大包围框 + current_h2 = max(1, bottom - top) + missing_h = max(0, int(desired_h - current_h2)) + if missing_h > 0: + if is_left_bubble: + extra_up = min(max(0, int(missing_h * 0.08)), max(0, top - top_guard)) + extra_down = min(max(0, int(missing_h * 0.35)), max(0, img_h - bottom)) + else: + extra_up = min(max(0, int(missing_h * 0.75)), max(0, top)) + extra_down = min(max(0, int(missing_h * 0.25)), max(0, img_h - bottom)) + top -= extra_up + bottom += extra_down + + # 左侧消息最终再做一次边界钳制,逼近你标的红框大小 + if is_left_bubble: + target_left = int(bounds['left'] - 6) + target_top = int(bounds['top'] - max(3, line_h * 0.28)) + target_right = int(bounds['right'] + 10) + target_bottom = int(bounds['bottom'] + max(8, line_h * 0.45)) + left = max(0, min(int(left), target_left)) + left = max(left, max(0, target_left - 2)) + top = max(0, min(int(top), target_top)) + top = max(top, max(0, target_top - 2)) + right = min(img_w, max(int(right), target_right)) + right = min(right, target_right + 4) + bottom = min(img_h, max(int(bottom), target_bottom)) + bottom = min(bottom, target_bottom + 4) + else: + left = max(0, int(left - 4)) + top = max(0, int(top - 4)) + right = min(img_w, int(right + 4)) + bottom = min(img_h, int(bottom + 4)) + else: + # 找不到色块时才退回文本框轻微扩边;左侧消息按正文贴边框处理 + if bounds['cx'] <= img_w * 0.58: + left = max(0, int(bounds['left'] - 6)) + right = min(img_w, int(bounds['right'] + 12)) + top = max(0, int(bounds['top'] - 4)) + bottom = min(img_h, int(bounds['bottom'] + 10)) + else: + left = max(0, int(bounds['left'] - 24)) + right = min(img_w, int(bounds['right'] + 26)) + top = max(0, int(bounds['top'] - 42)) + bottom = min(img_h, int(bounds['bottom'] + 22)) + + if right <= left or bottom <= top: + return None, None + box = {'left': left, 'top': top, 'right': right, 'bottom': bottom, 'width': right - left, 'height': bottom - top} + return img.crop((left, top, right, bottom)), box + + +# 对气泡图片进行OCR识别,返回识别到的文本行列表 +def ocr_bubble_text(bubble_img: Image.Image, stem: str) -> list[str]: + scale = 5 + scaled_img = bubble_img.resize((bubble_img.width * scale, bubble_img.height * scale), Image.Resampling.LANCZOS) + raw_lines = ocr_lines(scaled_img, f'clicked_{stem}_bubble_crop') + + def normalize(lines: list[str]) -> list[str]: + merged = [] + for line in lines: + text = str(line).strip() + if not should_keep_line(text): + continue + if text not in merged: + merged.append(text) + return merged + + def build_bold_binary_image(source_img: Image.Image) -> Image.Image: + gray = np.array(source_img.convert('L')) + _, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) + binary_img = Image.fromarray(binary).convert('L') + scaled_binary = binary_img.resize((source_img.width * scale, source_img.height * scale), Image.Resampling.NEAREST) + arr = np.array(scaled_binary) + kernel = np.ones((2, 2), np.uint8) + dilated = cv2.dilate(255 - arr, kernel, iterations=1) + return Image.fromarray(255 - dilated).convert('RGB') + + def recognize_joined_short_text(source_img: Image.Image) -> str | None: + items = ocr_items_direct(source_img) + if len(items) < 2: + return None + items.sort(key=lambda item: (item['left'], item['top'])) + text = ''.join(item['text'] for item in items if should_keep_line(item['text'])) + if not text: + return None + if len(text) <= 8 and re.fullmatch(r'[一-鿿A-Za-z0-9]+', text): + return text + return None + + def looks_like_short_name(text: str) -> bool: + text = (text or '').strip() + if not text: + return False + if len(text) > 4: + return False + if any(ch in text for ch in ',。!?!?.、/@'): + return False + return re.fullmatch(r'[一-鿿A-Za-z0-9]+', text) is not None + + def looks_like_headerish(text: str) -> bool: + text = (text or '').strip() + if not text: + return False + if looks_like_short_name(text): + return True + if ('+' in text and re.search(r'\d', text)) or '拍立减' in text or '限时' in text: + return True + return False + + def choose_best_suffix(lines: list[str]) -> list[str]: + lines = cleanup_candidate_lines(lines) + if not lines: + return [] + suffixes = [lines[i:] for i in range(len(lines))] + def suffix_score(seq: list[str]) -> tuple[float, float, float]: + total_chars = sum(len(x) for x in seq) + score = total_chars * 0.5 + score -= max(0, len(seq) - 4) * 12 + score -= len(seq) * 2 + first = seq[0] + last = seq[-1] + if looks_like_headerish(first) and len(seq) > 1: + score -= 35 + if len(first) <= 8 and len(seq) > 1 and len(seq[1]) >= 8: + score -= 26 + if looks_like_short_name(last) and len(seq) > 1: + score -= 55 + if len(last) <= 3: + score -= 40 + if len(seq) == 1 and len(last) >= 2: + score += 14 + return (score, -len(seq), total_chars) + best = max(suffixes, key=suffix_score) + return cleanup_candidate_lines(best) + + raw_norm = normalize(raw_lines) + should_try_short_text = bubble_img.width <= 90 and bubble_img.height <= 60 and (not raw_norm or len(''.join(raw_norm)) <= 2) + if should_try_short_text: + bold_binary_img = build_bold_binary_image(bubble_img) + bold_binary_img.save(get_image_out_dir(stem, 'ocr') / 'bubble_crop_bold_binary_5x.png') + joined_text = recognize_joined_short_text(bold_binary_img) + if joined_text and (not raw_norm or len(joined_text) > len(''.join(raw_norm))): + return [joined_text] + + if raw_norm: + return raw_norm + return [] + + +# 从OCR识别项中选择最新的消息簇,返回文本和原始簇 +def pick_latest_cluster(items: list[dict], image_w: int, image_h: int) -> tuple[list[str], list[str], list[dict]]: + if not items: + return [], [], [] + clusters = build_line_clusters(items, y_gap=max(18.0, image_h * 0.018)) + if not clusters: + return [], [], [] + + scored = [] + for idx, cluster in enumerate(clusters): + bounds = cluster_bounds(cluster) + lines = cluster_to_lines(cluster) + if not lines: + continue + height = bounds['bottom'] - bounds['top'] + width = bounds['right'] - bounds['left'] + text_len = sum(len(x) for x in lines) + score = 0.0 + score += bounds['bottom'] * CLUSTER_SCORE_BOTTOM + score += min(120.0, height * CLUSTER_SCORE_HEIGHT) + score += min(80.0, width * CLUSTER_SCORE_WIDTH) + score += min(60.0, text_len * CLUSTER_SCORE_TEXT_LEN) + if len(lines) >= 2: + score += CLUSTER_SCORE_MULTI_LINE_BONUS + + is_left_cluster = bounds['cx'] <= image_w * LEFT_BUBBLE_CX_RATIO and bounds['left'] <= image_w * RIGHT_BUBBLE_MIN_LEFT_RATIO + if not is_left_cluster: + continue + min_line_len = min((len(x.strip()) for x in lines if x and x.strip()), default=0) + if is_left_cluster and len(lines) == 1 and min_line_len <= 4: + near_bottom = bounds['bottom'] >= image_h * 0.62 + has_cjk = any(re.search(r'[一-鿿]', x or '') for x in lines) + if not (near_bottom and has_cjk): + score -= 120.0 + if is_left_cluster and width <= max(52.0, height * 1.25): + near_bottom = bounds['bottom'] >= image_h * 0.62 + has_cjk = any(re.search(r'[一-鿿]', x or '') for x in lines) + if not (near_bottom and has_cjk): + score -= 140.0 + + scored.append((score, idx, lines, cluster)) + + if not scored: + return [], [], [] + scored.sort(key=lambda x: x[0], reverse=True) + _, _, best_lines, best_cluster = scored[0] + + # 为了优先保证截图只落在最后一条正文块,这里先不向上合并前一个 cluster。 + return list(best_lines)[:4], dedupe_lines([x['text'] for x in items]), list(best_cluster) + + +# 从聊天快照中提取最新消息文本 +def extract_latest_text(img: Image.Image, stem: str, preferred_ocr_img: Image.Image | None = None, preferred_crop_box: dict | None = None) -> tuple[str | None, list[str], list[dict], dict | None]: + img_np = np.array(img) + h, w = img_np.shape[:2] + all_items: list[dict] = [] + merged_out_dir = get_image_out_dir(stem, 'merged') + ocr_out_dir = get_image_out_dir(stem, 'ocr') + + merged_full = build_merged_binary_image(img) + merged_full.save(merged_out_dir / 'full_bin.png') + + raw_items = ocr_items_with_boxes(img, offset_x=0, offset_y=0) + merged_items = dedupe_items_by_geometry(raw_items) + for item in merged_items: + text = item['text'].strip() + if should_keep_line(text): + all_items.append(item) + + cluster_lines, valid_lines, cluster_items = pick_latest_cluster(all_items, w, h) + bubble_img, bubble_box = crop_bubble_box(img, cluster_items, stem) + ocr_source_img = preferred_ocr_img if preferred_ocr_img is not None else bubble_img + crop_box = preferred_crop_box if preferred_ocr_img is not None else bubble_box + if ocr_source_img is not None: + ocr_source_img.save(ocr_out_dir / 'bubble_crop.png') + bubble_lines = ocr_bubble_text(ocr_source_img, stem) + bubble_lines = cleanup_candidate_lines(bubble_lines) + if bubble_lines: + return '\n'.join(bubble_lines), valid_lines, cluster_items, crop_box + latest_block_lines = list(cluster_lines) + latest_block_lines = cleanup_candidate_lines(latest_block_lines) + latest_block = '\n'.join(latest_block_lines) if latest_block_lines else None + return latest_block, valid_lines, cluster_items, crop_box + + +# 检测最新消息气泡位于屏幕左侧还是右侧(判断是自己还是对方的消息) +def detect_latest_bubble_side(img: Image.Image, cluster_items: list[dict], crop_box: dict | None = None) -> tuple[str | None, float]: + arr = np.array(img.convert('RGB')) + h, w = arr.shape[:2] + + if crop_box: + left = float(crop_box.get('left', 0)) + right = float(crop_box.get('right', left)) + center_x = (left + right) / 2.0 + if center_x >= w * LEFT_BUBBLE_CX_RATIO or left >= w * RIGHT_BUBBLE_MIN_LEFT_RATIO: + return 'right', 0.9 + return 'left', 0.9 + + if cluster_items: + avg_cx = sum(x['cx'] for x in cluster_items) / len(cluster_items) + min_left = min(x['left'] for x in cluster_items) + max_right = max(x['right'] for x in cluster_items) + width = max_right - min_left + if avg_cx >= w * LEFT_BUBBLE_CX_RATIO or min_left >= w * RIGHT_BUBBLE_MIN_LEFT_RATIO: + return 'right', 0.84 if width > w * 0.18 else 0.78 + if avg_cx <= w * 0.52 or max_right <= w * LEFT_SIDE_MAX_RIGHT_RATIO: + return 'left', 0.84 if width > w * 0.18 else 0.78 + + focus = arr[int(h * 0.38):, :, :] + hsv = cv2.cvtColor(focus, cv2.COLOR_RGB2HSV) + green_mask = cv2.inRange(hsv, np.array([35, 25, 80]), np.array([95, 255, 255])) + kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) + green_mask = cv2.morphologyEx(green_mask, cv2.MORPH_CLOSE, kernel) + contours, _ = cv2.findContours(green_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + + candidates = [] + y_offset = int(h * 0.38) + for cnt in contours: + x, y, ww, hh = cv2.boundingRect(cnt) + area = ww * hh + right = x + ww + if area < 2500: + continue + if hh < 28 or ww < 80: + continue + if right < w * 0.66: + continue + if x < w * 0.45 and ww > w * 0.45: + continue + candidates.append((y + y_offset, x, ww, hh, area)) + + if candidates: + candidates.sort(key=lambda item: (item[0] + item[3], item[1])) + y, x, ww, hh, area = candidates[-1] + center_x = x + ww / 2.0 + side = 'right' if center_x >= w * LEFT_BUBBLE_CX_RATIO else 'left' + confidence = min(0.72, 0.50 + min(0.22, area / 40000.0)) + return side, confidence + + return 'left', 0.35 + + +# 分析PIL图片的主函数,提取最新消息、判断发送方并返回分析结果 +def analyze_pil_image(img: Image.Image, stem: str, file_name: str | None = None) -> AnalyzeResult: + trace_id = new_trace_id("bot") + safe_stem = stem or 'unknown' + ocr_out_dir = get_image_out_dir(safe_stem, 'ocr') + for p in ocr_out_dir.glob('*.png'): + p.unlink(missing_ok=True) + + img = img.convert('RGB') + original_out_dir = get_image_out_dir(safe_stem, 'original') + img.save(original_out_dir / 'full_raw.png') + + merged_full = build_merged_binary_image(img) + last_white_box = pick_last_white_box_from_merged_binary(merged_full) + preferred_ocr_img = None + preferred_crop_box = None + if last_white_box is not None: + preferred_crop_box = dict(last_white_box) + preferred_ocr_img = img.crop(( + int(last_white_box['left']), + int(last_white_box['top']), + int(last_white_box['right']), + int(last_white_box['bottom']), + )) + preferred_ocr_img.save(original_out_dir / 'last_white_box_raw.png') + + latest_text, valid_lines, cluster_items, crop_box = extract_latest_text(img, safe_stem, preferred_ocr_img=preferred_ocr_img, preferred_crop_box=preferred_crop_box) + bubble_side, confidence = detect_latest_bubble_side(img, cluster_items, crop_box=crop_box) + if bubble_side == 'right': + latest_text = None + valid_lines = [] + is_self_sent = None if bubble_side is None else (bubble_side == 'right') + result = AnalyzeResult( + file=file_name or f'{safe_stem}.png', + size=img.size, + crop_box=crop_box, + latest_text=latest_text, + is_self_sent=is_self_sent, + bubble_side=bubble_side, + confidence=confidence, + valid_lines=valid_lines, + error=None, + ) + (ocr_out_dir / 'result.json').write_text(json.dumps(asdict(result), ensure_ascii=False, indent=2), encoding='utf-8') + log_event("INFO", "bot", "bot.chat_snapshot", trace_id, "analyze", "ok", "聊天快照分析完成", extra={"file": result.file, "has_text": bool(result.latest_text), "bubble_side": result.bubble_side or "", "confidence": result.confidence}) + return result + + diff --git a/app/infrastructure/service/wechat/config.py b/app/infrastructure/service/wechat/config.py new file mode 100644 index 0000000..3af6995 --- /dev/null +++ b/app/infrastructure/service/wechat/config.py @@ -0,0 +1,124 @@ +import os +from pathlib import Path + +from app.configs.runtime_config import get_bool, get_float, get_int, get_str + +PROJECT_ROOT = Path(__file__).resolve().parents[4] + + +def _local_appdata_root() -> Path: + local_appdata = (os.getenv("LOCALAPPDATA") or "").strip() + if local_appdata: + return Path(local_appdata) + return Path.home() / "AppData" / "Local" + + +def _resolve_path(path_value: str, base_dir: Path) -> str: + path = Path(path_value) + if not path.is_absolute(): + path = base_dir / path + return str(path.resolve()) + + +APP_NAME = (get_str("APP_NAME", "AiShiliu") or "AiShiliu").strip() or "AiShiliu" +APP_DATA_DIR = _resolve_path( + get_str("APP_DATA_DIR", "") or get_str("OPENCLAW_APP_DATA_DIR", "") or str(_local_appdata_root() / APP_NAME), + PROJECT_ROOT, +) +LOG_ROOT_DIR = _resolve_path(get_str("LOG_ROOT_DIR", os.path.join(APP_DATA_DIR, "logs")), PROJECT_ROOT) +BACKEND_LOG_DIR = _resolve_path(get_str("BACKEND_LOG_DIR", os.path.join(LOG_ROOT_DIR, "backend")), PROJECT_ROOT) +FRONTEND_LOG_DIR = _resolve_path(get_str("FRONTEND_LOG_DIR", os.path.join(LOG_ROOT_DIR, "frontend")), PROJECT_ROOT) +BACKEND_PYTHON_LOG_FILE = _resolve_path( + get_str("BACKEND_PYTHON_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "python", "backend.log")), + PROJECT_ROOT, +) +BOT_LOG_FILE = _resolve_path( + get_str("BOT_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "bot", "bot.log")), + PROJECT_ROOT, +) +BOT_SESSION_LIST_LOG_FILE = _resolve_path( + get_str("BOT_SESSION_LIST_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "bot", "session_list.log")), + PROJECT_ROOT, +) +BOT_SESSION_DETAIL_LOG_FILE = _resolve_path( + get_str("BOT_SESSION_DETAIL_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "bot", "session_detail.log")), + PROJECT_ROOT, +) +OCR_LOG_FILE = _resolve_path( + get_str("OCR_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "ocr", "ocr.log")), + PROJECT_ROOT, +) +OCR_BAIDU_LOG_FILE = _resolve_path( + get_str("OCR_BAIDU_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "ocr", "baidu.log")), + PROJECT_ROOT, +) +OCR_RAPID_LOG_FILE = _resolve_path( + get_str("OCR_RAPID_LOG_FILE", os.path.join(BACKEND_LOG_DIR, "ocr", "rapid.log")), + PROJECT_ROOT, +) +TAURI_LOG_FILE = _resolve_path( + get_str("TAURI_LOG_FILE", os.path.join(FRONTEND_LOG_DIR, "tauri", "tauri.log")), + PROJECT_ROOT, +) +VUE_LOG_FILE = _resolve_path( + get_str("VUE_LOG_FILE", os.path.join(FRONTEND_LOG_DIR, "vue", "vue.log")), + PROJECT_ROOT, +) +OCR_SAVE_DIR = _resolve_path(get_str("OCR_SAVE_DIR", os.path.join(BACKEND_LOG_DIR, "ocr_debug_images")), PROJECT_ROOT) +BLOCKED_ROW_CACHE_FILE = _resolve_path( + get_str("BLOCKED_ROW_CACHE_FILE", os.path.join(BACKEND_LOG_DIR, "state", "blocked_rows.json")), + PROJECT_ROOT, +) + +BAIDU_API_KEY = get_str("BAIDU_API_KEY", "") +BAIDU_SECRET_KEY = get_str("BAIDU_SECRET_KEY", "") +OCR_PROVIDER = get_str("OCR_PROVIDER", "baidu").strip().lower() +RAPID_OCR_DET_MODEL_PATH = get_str("RAPID_OCR_DET_MODEL_PATH", "app/resources/ocr_models/ch_PP-OCRv4_det.onnx").strip() +RAPID_OCR_REC_MODEL_PATH = get_str("RAPID_OCR_REC_MODEL_PATH", "app/resources/ocr_models/ch_PP-OCRv4_rec.onnx").strip() +RAPID_OCR_CLS_MODEL_PATH = get_str("RAPID_OCR_CLS_MODEL_PATH", "app/resources/ocr_models/ch_ppocr_mobile_v2.0_cls.onnx").strip() +BACKEND_URL = get_str("BACKEND_URL", "http://127.0.0.1:5000/api/messages/receive") +LOOP_INTERVAL = get_int("BOT_LOOP_INTERVAL", 3) +CLICK_AFTER_DELAY = get_float("BOT_CLICK_AFTER_DELAY", 1.2) +TITLE_AFTER_DELAY = get_float("BOT_TITLE_AFTER_DELAY", 1.0) +CONTACT_SWITCH_DELAY = get_float("BOT_CONTACT_SWITCH_DELAY", 1.0) +LOOP_ERROR_DELAY = get_float("BOT_LOOP_ERROR_DELAY", 3) +WECHAT_WINDOW_TARGET_WIDTH = get_int("WECHAT_WINDOW_TARGET_WIDTH", 1080) +WECHAT_WINDOW_TARGET_HEIGHT = get_int("WECHAT_WINDOW_TARGET_HEIGHT", 820) +WECHAT_WINDOW_TARGET_LEFT = get_int("WECHAT_WINDOW_TARGET_LEFT", 120) +WECHAT_WINDOW_TARGET_TOP = get_int("WECHAT_WINDOW_TARGET_TOP", 80) +OCR_SAVE_IMAGES = get_bool("OCR_SAVE_IMAGES", True) +CONTACT_ROW_HEIGHT = get_int("CONTACT_ROW_HEIGHT", 64) +CONTACT_ROW_WIDTH = get_int("CONTACT_ROW_WIDTH", 240) +CONTACT_LIST_LEFT_OFFSET = get_int("CONTACT_LIST_LEFT_OFFSET", 68) +CONTACT_LIST_TOP_OFFSET = get_int("CONTACT_LIST_TOP_OFFSET", 82) +CONTACT_LIST_BOTTOM_OFFSET = get_int("CONTACT_LIST_BOTTOM_OFFSET", 0) +SESSION_NAME_LEFT_OFFSET = get_int("SESSION_NAME_LEFT_OFFSET", 56) +SESSION_NAME_TOP_OFFSET = get_int("SESSION_NAME_TOP_OFFSET", 8) +SESSION_NAME_WIDTH = get_int("SESSION_NAME_WIDTH", 134) +SESSION_NAME_HEIGHT = get_int("SESSION_NAME_HEIGHT", 24) +SESSION_NAME_OCR_SCALE = get_int("SESSION_NAME_OCR_SCALE", 4) +SESSION_NAME_OCR_EXTRA_SCALE = get_int("SESSION_NAME_OCR_EXTRA_SCALE", 6) +CHAT_CAPTURE_LEFT_OFFSET = get_int("CHAT_CAPTURE_LEFT_OFFSET", 310) +CHAT_CAPTURE_TOP_OFFSET = get_int("CHAT_CAPTURE_TOP_OFFSET", 70) +CHAT_CAPTURE_WIDTH = get_int("CHAT_CAPTURE_WIDTH", 750) +CHAT_CAPTURE_HEIGHT = get_int("CHAT_CAPTURE_HEIGHT", 550) +OCR_TOP_PENALTY_RATIO = get_float("OCR_TOP_PENALTY_RATIO", 0.18) +OCR_TOP_PENALTY_BIN_FACTOR = get_float("OCR_TOP_PENALTY_BIN_FACTOR", 2.0) +OCR_TOP_PENALTY_COLOR_FACTOR = get_float("OCR_TOP_PENALTY_COLOR_FACTOR", 2.2) +TITLE_OCR_AREA_LEFT_OFFSET = get_int("TITLE_OCR_AREA_LEFT_OFFSET", 240) +TITLE_OCR_AREA_TOP_OFFSET = get_int("TITLE_OCR_AREA_TOP_OFFSET", 4) +TITLE_OCR_AREA_WIDTH = get_int("TITLE_OCR_AREA_WIDTH", 600) +TITLE_OCR_AREA_HEIGHT = get_int("TITLE_OCR_AREA_HEIGHT", 64) + +NO_REPLY_KEYWORDS = [ + "谢谢", "好的", "嗯", "哦", "ok", "收到", + "[图片]", "[语音]", "[视频]", "[文件]" +] + +BLOCKED_SESSION_KEYWORDS = [ + "服务号", "公众号", "微信公众平台", "文件传输助手" +] + +UI_NOISE_KEYWORDS = [ + "微信", "Weixin", "WeChat", "聊天信息", "搜索", "更多", "表情", "发送", "Message", "Messages" +] diff --git a/app/infrastructure/service/wechat/ocr.py b/app/infrastructure/service/wechat/ocr.py new file mode 100644 index 0000000..a95d8f2 --- /dev/null +++ b/app/infrastructure/service/wechat/ocr.py @@ -0,0 +1,346 @@ +import base64 +from io import BytesIO +from pathlib import Path + +import cv2 +import numpy as np +import requests +from PIL import Image + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.config import ( + BAIDU_API_KEY, + BAIDU_SECRET_KEY, + OCR_PROVIDER, + RAPID_OCR_CLS_MODEL_PATH, + RAPID_OCR_DET_MODEL_PATH, + RAPID_OCR_REC_MODEL_PATH, + SESSION_NAME_OCR_EXTRA_SCALE, + SESSION_NAME_OCR_SCALE, +) + + +BAIDU_FALLBACK_ERROR_CODES = {17, 18, 110, 111} + + +def _runtime_roots() -> list[Path]: + roots: list[Path] = [] + + meipass = getattr(__import__("sys"), "_MEIPASS", None) + if meipass: + roots.append(Path(meipass)) + + file_root = Path(__file__).resolve().parents[4] + roots.append(file_root) + + cwd = Path.cwd().resolve() + roots.append(cwd) + roots.append(cwd / "resources") + roots.append(cwd / "app") + + try: + exe_parent = Path(__import__("sys").executable).resolve().parent + roots.append(exe_parent) + roots.append(exe_parent / "resources") + roots.append(exe_parent / "app") + except Exception: + pass + + unique_roots: list[Path] = [] + seen = set() + for root in roots: + key = str(root) + if key in seen: + continue + seen.add(key) + unique_roots.append(root) + return unique_roots + + +def _resolve_project_path(path_str: str) -> str: + path = Path(path_str) + if path.is_absolute(): + return str(path) + + candidates = [(root / path).resolve() for root in _runtime_roots()] + for candidate in candidates: + if candidate.exists(): + return str(candidate) + return str(candidates[0]) + + +class OCRBase: + provider_name = "base" + + def recognize(self, image_data, scene="generic", mode="generic"): + raise NotImplementedError + + +class BaiduOCR(OCRBase): + provider_name = "baidu" + + def __init__(self, api_key, secret_key): + self.api_key = api_key + self.secret_key = secret_key + self.access_token = None + self.last_error_code = None + self.last_error_msg = "" + self.get_access_token() + + def get_access_token(self): + trace_id = new_trace_id("ocr") + if not self.api_key or not self.secret_key: + log_event("WARNING", "ocr", "ocr.baidu.token", trace_id, "token", "failed", "百度OCR凭据缺失", reason="credential_missing") + return + url = "https://aip.baidubce.com/oauth/2.0/token" + params = {"grant_type": "client_credentials", "client_id": self.api_key, "client_secret": self.secret_key} + try: + response = requests.post(url, params=params, timeout=10) + if response.status_code == 200: + self.access_token = response.json().get("access_token") + if self.access_token: + log_event("INFO", "ocr", "ocr.baidu.token", trace_id, "token", "ok", "百度OCR token获取成功") + else: + log_event("WARNING", "ocr", "ocr.baidu.token", trace_id, "token", "failed", "百度OCR token为空", reason="token_empty") + else: + log_event("WARNING", "ocr", "ocr.baidu.token", trace_id, "token", "failed", "百度OCR token获取失败", reason="http_error", extra={"status_code": response.status_code}) + except Exception as e: + log_event("ERROR", "ocr", "ocr.baidu.token", trace_id, "token", "failed", "百度OCR token请求异常", reason="request_error", extra={"error": str(e)}) + + def _reset_last_error(self): + self.last_error_code = None + self.last_error_msg = "" + + def should_fallback_to_rapid(self): + return self.last_error_code in BAIDU_FALLBACK_ERROR_CODES + + def recognize(self, image_data, scene="generic", mode="generic"): + trace_id = new_trace_id("ocr") + self._reset_last_error() + if not self.access_token: + self.last_error_msg = "no_access_token" + log_event("WARNING", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "failed", "百度OCR无可用token", reason="no_access_token", extra={"scene": scene}) + return [] + url = f"https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={self.access_token}" + payload = {"image": base64.b64encode(image_data).decode(), "language_type": "CHN_ENG", "detect_direction": "true", "probability": "true"} + try: + response = requests.post(url, data=payload, timeout=10) + if response.status_code == 200: + result = response.json() + if "error_code" in result: + self.last_error_code = result.get("error_code") + self.last_error_msg = result.get("error_msg") or "" + log_event("WARNING", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "failed", "百度OCR返回错误码", reason="baidu_error", extra={"scene": scene, "error_code": self.last_error_code, "error_msg": self.last_error_msg}) + return [] + if "words_result" in result: + lines = [] + for item in result["words_result"]: + text = item.get("words", "") + prob = item.get("probability", {}).get("average", 0.9) + if text and prob > 0.6: + lines.append(text) + log_event("INFO", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "ok", "百度OCR识别完成", extra={"scene": scene, "line_count": len(lines)}) + return lines + else: + self.last_error_msg = f"http_{response.status_code}" + log_event("WARNING", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "failed", "百度OCR请求失败", reason="http_error", extra={"scene": scene, "status_code": response.status_code}) + except Exception as e: + self.last_error_msg = str(e) + log_event("ERROR", "ocr", "ocr.baidu.recognize", trace_id, "recognize", "failed", "百度OCR请求异常", reason="request_error", extra={"scene": scene, "error": str(e)}) + return [] + + +class RapidLocalOCR(OCRBase): + provider_name = "rapid" + + def __init__(self): + self.ready = False + self.engine = None + self._init_engine() + + def ensure_ready(self): + return self.ready and self.engine is not None + + def _init_engine(self): + trace_id = new_trace_id("ocr") + try: + from rapidocr_onnxruntime import RapidOCR + + model_paths = { + "det_model_path": _resolve_project_path(RAPID_OCR_DET_MODEL_PATH), + "rec_model_path": _resolve_project_path(RAPID_OCR_REC_MODEL_PATH), + "cls_model_path": _resolve_project_path(RAPID_OCR_CLS_MODEL_PATH), + } + existing_model_paths = {key: value for key, value in model_paths.items() if Path(value).exists()} + if len(existing_model_paths) == len(model_paths): + self.engine = RapidOCR(**existing_model_paths) + log_extra = existing_model_paths + else: + self.engine = RapidOCR() + log_extra = {**model_paths, "missing_models": [value for value in model_paths.values() if not Path(value).exists()]} + self.ready = True + log_event("INFO", "ocr", "ocr.rapid.init", trace_id, "init", "ok", "RapidOCR初始化成功", extra=log_extra) + except Exception as e: + self.ready = False + log_event("WARNING", "ocr", "ocr.rapid.init", trace_id, "init", "failed", "RapidOCR初始化失败", reason="init_error", extra={"error": str(e)}) + + def recognize(self, image_data, scene="generic", mode="generic"): + trace_id = new_trace_id("ocr") + if not self.ready or self.engine is None: + log_event("WARNING", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "failed", "RapidOCR未就绪", reason="not_ready", extra={"scene": scene}) + return [] + try: + img_np = np.frombuffer(image_data, dtype=np.uint8) + img = cv2.imdecode(img_np, cv2.IMREAD_COLOR) + if img is None: + log_event("WARNING", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "failed", "RapidOCR图像解码失败", reason="decode_failed", extra={"scene": scene}) + return [] + result = self.engine(img) + if not result or len(result) < 1: + log_event("INFO", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "ok", "RapidOCR识别结果为空", reason="empty_result", extra={"scene": scene}) + return [] + rec_res = result[0] or [] + lines = [] + for item in rec_res: + if not item or len(item) < 2: + continue + text = str(item[1]).strip() + if text: + lines.append(text) + log_event("INFO", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "ok", "RapidOCR识别完成", extra={"scene": scene, "line_count": len(lines)}) + return lines + except Exception as e: + log_event("ERROR", "ocr", "ocr.rapid.recognize", trace_id, "recognize", "failed", "RapidOCR识别异常", reason="recognize_error", extra={"scene": scene, "error": str(e)}) + return [] + + +class OCRService(OCRBase): + provider_name = "service" + + def __init__(self, provider=None): + self.provider_requested = (provider or OCR_PROVIDER or "baidu").strip().lower() + self.baidu_provider = BaiduOCR(BAIDU_API_KEY, BAIDU_SECRET_KEY) + self.rapid_provider = RapidLocalOCR() + self.provider = self._build_provider(self.provider_requested) + + def _build_provider(self, provider_name: str): + if provider_name in {"rapid", "rapidocr"}: + return self.rapid_provider + if provider_name in {"baidu", "baiduocr"}: + return self.baidu_provider + if provider_name == "auto": + if self.baidu_provider.access_token: + return self.baidu_provider + if self.rapid_provider.ensure_ready(): + return self.rapid_provider + return self.baidu_provider + return self.baidu_provider + + def _provider_recognize(self, image_data, scene): + trace_id = new_trace_id("ocr") + lines = self.provider.recognize(image_data, scene=scene) + if self.provider.provider_name != "baidu": + return lines + if lines: + return lines + no_token_fallback = self.baidu_provider.last_error_msg == "no_access_token" + should_fallback = self.baidu_provider.should_fallback_to_rapid() or no_token_fallback + if not should_fallback: + return lines + if not self.rapid_provider.ensure_ready(): + log_event("WARNING", "ocr", "ocr.fallback", trace_id, "fallback", "failed", "触发Rapid回退但引擎未就绪", reason="rapid_not_ready", extra={"scene": scene, "baidu_error": self.baidu_provider.last_error_msg or ""}) + return lines + rapid_lines = self.rapid_provider.recognize(image_data, scene=f"{scene}_rapid_fallback") + if rapid_lines: + log_event("INFO", "ocr", "ocr.fallback", trace_id, "fallback", "ok", "百度OCR回退Rapid成功", reason="fallback_success", extra={"scene": scene, "line_count": len(rapid_lines)}) + else: + log_event("WARNING", "ocr", "ocr.fallback", trace_id, "fallback", "failed", "百度OCR回退Rapid失败", reason="fallback_empty", extra={"scene": scene}) + return rapid_lines + + def _encode_image(self, image_obj): + buf = BytesIO() + image_obj.save(buf, format="PNG") + return buf.getvalue() + + def _normalize_lines(self, lines, min_len=1, exclude=None): + exclude = set(exclude or []) + normalized = [] + for line in lines or []: + text = str(line).strip() + if not text: + continue + if len(text) < min_len: + continue + if text in exclude: + continue + normalized.append(text) + return normalized + + def _build_session_name_variants(self, image_data): + image = Image.open(BytesIO(image_data)).convert("RGB") + gray = image.convert("L") + base_scale = max(2, int(SESSION_NAME_OCR_SCALE)) + extra_scale = max(base_scale, int(SESSION_NAME_OCR_EXTRA_SCALE)) + + enlarged = gray.resize( + (gray.width * base_scale, gray.height * base_scale), + resample=Image.Resampling.LANCZOS, + ) + contrast = cv2.equalizeHist(np.array(enlarged)) + binary = cv2.threshold(contrast, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1] + binary_inv = cv2.threshold(contrast, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1] + + extra_enlarged = gray.resize( + (gray.width * extra_scale, gray.height * extra_scale), + resample=Image.Resampling.LANCZOS, + ) + extra_contrast = cv2.equalizeHist(np.array(extra_enlarged)) + + return [ + ("name_crop", image_data), + (f"name_orig_{base_scale}x", self._encode_image(enlarged)), + (f"name_eq_{base_scale}x", self._encode_image(Image.fromarray(contrast))), + (f"name_bin_{base_scale}x", self._encode_image(Image.fromarray(binary))), + (f"name_bin_inv_{base_scale}x", self._encode_image(Image.fromarray(binary_inv))), + (f"name_orig_{extra_scale}x", self._encode_image(extra_enlarged)), + (f"name_eq_{extra_scale}x", self._encode_image(Image.fromarray(extra_contrast))), + ] + + def _recognize_session_name(self, image_data, scene): + trace_id = new_trace_id("ocr") + for variant_name, variant_bytes in self._build_session_name_variants(image_data): + lines = self._normalize_lines( + self._provider_recognize(variant_bytes, scene=f"{scene}_{variant_name}"), + min_len=1, + ) + if lines: + log_event("INFO", "ocr", "ocr.session_name", trace_id, "recognize", "ok", "会话名识别成功", extra={"scene": scene, "variant": variant_name, "line_count": len(lines)}) + return lines + log_event("INFO", "ocr", "ocr.session_name", trace_id, "recognize", "failed", "会话名识别为空", reason="empty_result", extra={"scene": scene}) + return [] + + def _recognize_session_title(self, image_data, scene): + trace_id = new_trace_id("ocr") + lines = self._provider_recognize(image_data, scene=scene) + normalized = self._normalize_lines(lines, min_len=1) + if normalized: + log_event("INFO", "ocr", "ocr.session_title", trace_id, "recognize", "ok", "会话标题识别成功", extra={"scene": scene, "line_count": len(normalized)}) + else: + log_event("INFO", "ocr", "ocr.session_title", trace_id, "recognize", "failed", "会话标题识别为空", reason="empty_result", extra={"scene": scene}) + return normalized + + def recognize_session_name(self, image_data, scene="session_name"): + return self._recognize_session_name(image_data, scene=scene) + + def recognize_session_title(self, image_data, scene="session_title"): + return self._recognize_session_title(image_data, scene=scene) + + def recognize(self, image_data, scene="generic", mode="generic"): + trace_id = new_trace_id("ocr") + if mode == "session_name": + return self.recognize_session_name(image_data, scene=scene) + if mode == "session_title": + return self.recognize_session_title(image_data, scene=scene) + lines = self._normalize_lines(self._provider_recognize(image_data, scene=scene), min_len=1) + log_event("INFO", "ocr", "ocr.generic", trace_id, "recognize", "ok", "通用OCR识别完成", extra={"scene": scene, "line_count": len(lines)}) + return lines diff --git a/app/infrastructure/service/wechat/screenshot.py b/app/infrastructure/service/wechat/screenshot.py new file mode 100644 index 0000000..46e3e19 --- /dev/null +++ b/app/infrastructure/service/wechat/screenshot.py @@ -0,0 +1,314 @@ +from __future__ import annotations + +from dataclasses import dataclass +from typing import Dict + +import cv2 +import numpy as np +from PIL import ImageGrab + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.config import ( + CHAT_CAPTURE_HEIGHT, + CHAT_CAPTURE_LEFT_OFFSET, + CHAT_CAPTURE_TOP_OFFSET, + CHAT_CAPTURE_WIDTH, + CONTACT_LIST_BOTTOM_OFFSET, + CONTACT_LIST_LEFT_OFFSET, + CONTACT_LIST_TOP_OFFSET, + CONTACT_ROW_WIDTH, + SESSION_NAME_HEIGHT, + SESSION_NAME_LEFT_OFFSET, + SESSION_NAME_TOP_OFFSET, + SESSION_NAME_WIDTH, + TITLE_OCR_AREA_HEIGHT, + TITLE_OCR_AREA_LEFT_OFFSET, + TITLE_OCR_AREA_TOP_OFFSET, + TITLE_OCR_AREA_WIDTH, +) + + +@dataclass +class CaptureBox: + left: int + top: int + right: int + bottom: int + + @property + def width(self) -> int: + return self.right - self.left + + @property + def height(self) -> int: + return self.bottom - self.top + + def as_tuple(self): + return (self.left, self.top, self.right, self.bottom) + + def as_dict(self) -> Dict[str, int]: + return { + "left": self.left, + "top": self.top, + "right": self.right, + "bottom": self.bottom, + "width": self.width, + "height": self.height, + } + + +class ScreenshotService: + def build_box(self, left: int, top: int, width: int, height: int) -> CaptureBox: + return CaptureBox( + left=int(left), + top=int(top), + right=int(left + width), + bottom=int(top + height), + ) + + def build_box_from_window(self, window_rect: dict, left_offset: int, top_offset: int, width: int, height: int) -> CaptureBox: + return self.build_box( + left=window_rect["left"] + int(left_offset), + top=window_rect["top"] + int(top_offset), + width=int(width), + height=int(height), + ) + + def build_contact_list_box(self, window_rect: dict, left_offset: int, top_offset: int, width: int, bottom_offset: int) -> CaptureBox: + left = window_rect["left"] + int(left_offset) + top = window_rect["top"] + int(top_offset) + right = left + int(width) + bottom = window_rect["bottom"] - int(bottom_offset) + return CaptureBox(left=left, top=top, right=right, bottom=bottom) + + def is_valid_box(self, box: CaptureBox) -> bool: + return box.right > box.left and box.bottom > box.top + + def capture_box(self, left: int, top: int, width: int, height: int): + box = self.build_box(left, top, width, height) + if not self.is_valid_box(box): + raise ValueError(f"invalid capture box: {box.as_dict()}") + return ImageGrab.grab(bbox=box.as_tuple()) + + def capture_from_window(self, window_rect: dict, left_offset: int, top_offset: int, width: int, height: int): + box = self.build_box_from_window(window_rect, left_offset, top_offset, width, height) + if not self.is_valid_box(box): + raise ValueError(f"invalid window capture box: {box.as_dict()}") + return ImageGrab.grab(bbox=box.as_tuple()) + + def capture_contact_list(self, window_rect: dict, left_offset: int, top_offset: int, width: int, bottom_offset: int): + box = self.build_contact_list_box(window_rect, left_offset, top_offset, width, bottom_offset) + if not self.is_valid_box(box): + raise ValueError(f"invalid contact list box: {box.as_dict()}") + return ImageGrab.grab(bbox=box.as_tuple()) + + def get_contact_list_box(self, window_rect: dict) -> CaptureBox: + return self.build_contact_list_box( + window_rect, + left_offset=CONTACT_LIST_LEFT_OFFSET, + top_offset=CONTACT_LIST_TOP_OFFSET, + width=CONTACT_ROW_WIDTH, + bottom_offset=CONTACT_LIST_BOTTOM_OFFSET, + ) + + def capture_contact_list_default(self, window_rect: dict): + trace_id = new_trace_id("capture") + box = self.get_contact_list_box(window_rect) + log_event("INFO", "capture", "capture.contact_list", trace_id, "capture", "ok", "截图会话列表区域", extra=box.as_dict()) + return self.capture_contact_list( + window_rect, + left_offset=CONTACT_LIST_LEFT_OFFSET, + top_offset=CONTACT_LIST_TOP_OFFSET, + width=CONTACT_ROW_WIDTH, + bottom_offset=CONTACT_LIST_BOTTOM_OFFSET, + ) + + def get_session_title_box(self, window_rect: dict) -> CaptureBox: + return self.build_box_from_window( + window_rect, + left_offset=TITLE_OCR_AREA_LEFT_OFFSET, + top_offset=TITLE_OCR_AREA_TOP_OFFSET, + width=TITLE_OCR_AREA_WIDTH, + height=TITLE_OCR_AREA_HEIGHT, + ) + + def capture_session_title(self, window_rect: dict): + trace_id = new_trace_id("capture") + box = self.get_session_title_box(window_rect) + log_event("INFO", "capture", "capture.session_title", trace_id, "capture", "ok", "截图会话标题区域", extra=box.as_dict()) + return self.capture_area_from_box(box) + + def get_chat_capture_box(self, window_rect: dict) -> CaptureBox: + base_height = max(120, CHAT_CAPTURE_HEIGHT) + max_height = max(base_height, window_rect["height"] - CHAT_CAPTURE_TOP_OFFSET) + return self.build_box_from_window( + window_rect, + left_offset=CHAT_CAPTURE_LEFT_OFFSET, + top_offset=CHAT_CAPTURE_TOP_OFFSET, + width=CHAT_CAPTURE_WIDTH, + height=max_height, + ) + + def capture_chat_area(self, window_rect: dict): + trace_id = new_trace_id("capture") + box = self.get_chat_capture_box(window_rect) + image = self.capture_area_from_box(box) + chat_bottom = self._detect_chat_bottom_by_binary_merge(image) + if chat_bottom is not None: + image = image.crop((0, 0, image.size[0], chat_bottom)) + extra = box.as_dict() + extra["dynamic_bottom"] = chat_bottom or "" + extra["final_width"] = image.size[0] + extra["final_height"] = image.size[1] + log_event("INFO", "capture", "capture.chat_area", trace_id, "capture", "ok", "截图聊天区域", extra=extra) + return image + + def crop_session_name(self, row_img): + return self.crop_from_image( + row_img, + left=SESSION_NAME_LEFT_OFFSET, + top=SESSION_NAME_TOP_OFFSET, + width=SESSION_NAME_WIDTH, + height=SESSION_NAME_HEIGHT, + ) + + def capture_area_from_box(self, box: CaptureBox): + if not self.is_valid_box(box): + raise ValueError(f"invalid capture box: {box.as_dict()}") + return ImageGrab.grab(bbox=box.as_tuple()) + + def _build_merged_binary_array(self, image_obj): + arr = np.array(image_obj.convert("RGB")) + gray = cv2.cvtColor(arr, cv2.COLOR_RGB2GRAY) + blurred = cv2.GaussianBlur(gray, (5, 5), 0) + _, binary_inv = cv2.threshold(blurred, 248, 255, cv2.THRESH_BINARY_INV) + adaptive_inv = cv2.adaptiveThreshold( + blurred, + 255, + cv2.ADAPTIVE_THRESH_GAUSSIAN_C, + cv2.THRESH_BINARY_INV, + 13, + 1, + ) + merged = cv2.bitwise_or(binary_inv, adaptive_inv) + kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 1)) + merged = cv2.morphologyEx(merged, cv2.MORPH_CLOSE, kernel, iterations=1) + merged = cv2.morphologyEx(merged, cv2.MORPH_OPEN, cv2.getStructuringElement(cv2.MORPH_RECT, (2, 2))) + return merged + + def _detect_chat_bottom_by_binary_merge(self, image_obj) -> int | None: + if image_obj is None: + return None + merged = self._build_merged_binary_array(image_obj) + img_h, img_w = merged.shape[:2] + start_y = max(0, int(img_h * 0.55)) + roi = merged[start_y:, :] + if roi.size == 0: + return None + row_density = (roi > 0).mean(axis=1) + min_run = max(28, int(img_h * 0.045)) + dense_limit = 0.018 + run_start = None + candidates = [] + for idx, density in enumerate(row_density.tolist() + [1.0]): + is_blank = density <= dense_limit + if is_blank and run_start is None: + run_start = idx + continue + if is_blank: + continue + if run_start is not None: + run_end = idx + if run_end - run_start >= min_run: + top = start_y + run_start + bottom = start_y + run_end + if top >= img_h * 0.58 and bottom <= img_h - 8: + candidates.append((top, bottom)) + run_start = None + if not candidates: + return self._detect_chat_bottom(image_obj) + top, _ = candidates[-1] + bottom = max(120, int(top - 4)) + if bottom >= img_h - 20: + return None + return bottom + + def crop_from_image(self, image_obj, left: int, top: int, width: int, height: int): + if image_obj is None: + return None + img_w, img_h = image_obj.size + crop_left = min(max(0, int(left)), img_w) + crop_top = min(max(0, int(top)), img_h) + crop_right = min(img_w, crop_left + max(1, int(width))) + crop_bottom = min(img_h, crop_top + max(1, int(height))) + if crop_right <= crop_left or crop_bottom <= crop_top: + return None + return image_obj.crop((crop_left, crop_top, crop_right, crop_bottom)) + + def _detect_chat_bottom(self, image_obj) -> int | None: + if image_obj is None: + return None + img_rgb = np.array(image_obj.convert("RGB")) + if img_rgb.size == 0: + return None + gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY) + img_h, img_w = gray.shape[:2] + start_y = max(0, int(img_h * 0.55)) + focus = gray[start_y:, :] + if focus.size == 0: + return None + row_mean = focus.mean(axis=1) + row_std = focus.std(axis=1) + bright_mask = (row_mean >= 242) & (row_std <= 18) + run = self._find_last_run(bright_mask, min_len=max(18, int(img_h * 0.035))) + candidate_y = None + if run is not None: + run_top, run_bottom = run + candidate_y = start_y + run_top + edge_img = cv2.Canny(focus, 40, 120) + edge_strength = edge_img.mean(axis=1) + if len(row_mean) >= 2: + transition = np.abs(np.diff(row_mean, prepend=row_mean[0])) + else: + transition = np.zeros_like(row_mean) + score = edge_strength * 1.8 + transition * 2.4 + score[: max(8, int(len(score) * 0.15))] = 0 + if candidate_y is not None: + local_limit = max(0, candidate_y - start_y + 4) + score[local_limit:] = 0 + best_idx = int(np.argmax(score)) if score.size else -1 + best_score = float(score[best_idx]) if best_idx >= 0 else 0.0 + edge_candidate = None + if best_idx >= 0 and best_score >= 12.0: + edge_candidate = start_y + best_idx + final_y = None + if candidate_y is not None and edge_candidate is not None: + if abs(candidate_y - edge_candidate) <= 28: + final_y = min(candidate_y, edge_candidate) + else: + final_y = candidate_y + else: + final_y = candidate_y if candidate_y is not None else edge_candidate + if final_y is None: + return None + final_y = max(120, min(img_h, int(final_y - 6))) + if final_y >= img_h - 20: + return None + return final_y + + def _find_last_run(self, mask: np.ndarray, min_len: int) -> tuple[int, int] | None: + run_start = None + best = None + for idx, flag in enumerate(mask.tolist() + [False]): + if flag and run_start is None: + run_start = idx + continue + if flag: + continue + if run_start is None: + continue + run_len = idx - run_start + if run_len >= min_len: + best = (run_start, idx) + run_start = None + return best diff --git a/app/infrastructure/service/wechat/session_service.py b/app/infrastructure/service/wechat/session_service.py new file mode 100644 index 0000000..758fea6 --- /dev/null +++ b/app/infrastructure/service/wechat/session_service.py @@ -0,0 +1,288 @@ +from __future__ import annotations + +from dataclasses import dataclass +from io import BytesIO +import json +import os +from typing import Callable + +import cv2 +import numpy as np + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.chat_snapshot_analyzer import analyze_pil_image +from app.infrastructure.service.wechat.unread_session_analyzer import UnreadSessionAnalyzer +from app.infrastructure.service.wechat.config import ( + BLOCKED_SESSION_KEYWORDS, + CONTACT_ROW_HEIGHT, + OCR_SAVE_DIR, + OCR_SAVE_IMAGES, + SESSION_NAME_HEIGHT, + SESSION_NAME_LEFT_OFFSET, + SESSION_NAME_TOP_OFFSET, + SESSION_NAME_WIDTH, + UI_NOISE_KEYWORDS, +) + + + +# 会话扫描结果数据类,包含所有会话列表和未读会话列表 +@dataclass +class SessionScanResult: + sessions: list[dict] + unread_sessions: list[dict] + + +# 聊天快照分析结果数据类 +@dataclass +class ChatAnalyzeResult: + ok: bool + file_name: str + latest_text: str + confidence: str | float + bubble_side: str + screenshot_path: str + + +# 微信会话服务类,处理会话列表扫描、红点检测和聊天截图分析 +class WechatSessionService: + def __init__(self, screenshot_service, ocr_service, save_debug_image: Callable | None = None): + self.screenshot = screenshot_service + self.ocr = ocr_service + self.save_debug_image = save_debug_image + self._session_title_cache = {"value": "", "ts": 0.0} + self.unread_analyzer = UnreadSessionAnalyzer() + log_event("INFO", "bot", "bot.session_service.init", new_trace_id("bot"), "init", "ok", "会话服务初始化完成") + +# 根据窗口矩形计算会话列表区域的位置 + def get_contact_list_rect(self, window_rect): + box = self.screenshot.get_contact_list_box(window_rect) + return { + 'left': box.left, + 'top': box.top, + 'right': box.right, + 'bottom': box.bottom, + } + +# 从会话行图片中裁剪出会话名称区域 + def extract_session_name_image(self, row_img): + return self.screenshot.crop_session_name(row_img) + +# 检测会话列表中的所有红点位置(红色圆点表示未读消息) + def detect_red_dots(self, window_rect): + contact_rect = self.get_contact_list_rect(window_rect) + screenshot = self.screenshot.capture_contact_list_default(window_rect) + return self.unread_analyzer.detect_red_dots(contact_rect, screenshot) + +# 检测单行会话图片中是否有未读红点标记(严格模式) + def row_has_red_dot(self, row_img, relaxed=False): + return self.unread_analyzer.row_has_red_dot(row_img, relaxed=relaxed) + +# 检测单行会话图片中是否有未读红点标记(宽松模式) + def row_has_red_dot_weak(self, row_img): + return self.unread_analyzer.row_has_red_dot_weak(row_img) + +# 扫描所有会话行,识别哪些有未读消息标记 + def get_all_sessions_with_unread(self, window_rect, round_count): + trace_id = new_trace_id("bot") + contact_rect = self.get_contact_list_rect(window_rect) + screenshot = self.screenshot.capture_contact_list_default(window_rect) + + sessions, unread_sessions = self.unread_analyzer.get_all_sessions_with_unread( + contact_rect=contact_rect, + screenshot=screenshot, + round_count=round_count, + save_debug_image=lambda image_obj, filename: self._save_debug_image(image_obj, filename), + ) + self._save_session_scan_debug(round_count=round_count, sessions=sessions, unread_sessions=unread_sessions, contact_rect=contact_rect) + log_event("INFO", "bot", "bot.session_scan", trace_id, "scan", "ok", "会话扫描完成", extra={"round": int(round_count), "total": len(sessions), "unread": len(unread_sessions)}) + return SessionScanResult(sessions=sessions, unread_sessions=unread_sessions) + +# 标准化文本用于匹配:去除空格并转为小写 + def normalize_match_text(self, text): + if not text: + return "" + text = str(text).strip().lower() + return "".join(ch for ch in text if not ch.isspace()) + +# 生成会话屏蔽关键字的唯一标识key,用于缓存比对 + def make_block_key(self, text): + normalized = self.normalize_match_text(text) + if not normalized: + return "" + return f"title:{normalized}" + +# 重置当前会话标题缓存 + def reset_session_title_cache(self): + self._session_title_cache = {"value": "", "ts": 0.0} + +# 通过OCR识别当前会话窗口的标题文字 + def get_session_title_by_ocr(self, window_rect): + trace_id = new_trace_id("bot") + try: + if not window_rect: + return "" + area_name = "main" + screenshot = self.screenshot.capture_session_title(window_rect) + img_bytes = BytesIO() + screenshot.save(img_bytes, format='PNG') + valid = self.ocr.recognize_session_title(img_bytes.getvalue(), scene=f"session_title_{area_name}") + if valid: + title = valid[0] + log_event("INFO", "bot", "bot.session_title", trace_id, "ocr", "ok", "会话标题识别成功", extra={"title": title}) + return title + log_event("INFO", "bot", "bot.session_title", trace_id, "ocr", "failed", "会话标题识别为空", reason="empty_result") + return "" + except Exception as e: + log_event("ERROR", "bot", "bot.session_title", trace_id, "ocr", "failed", "会话标题识别异常", reason="ocr_error", extra={"error": str(e)}) + return "" + +# 获取当前会话标题,优先使用缓存避免频繁OCR调用 + def get_current_session_title(self, window_rect): + try: + import time + + now_ts = time.time() + cached_title = (self._session_title_cache.get("value") or "").strip() + cached_ts = float(self._session_title_cache.get("ts") or 0.0) + if cached_title and now_ts - cached_ts <= 1.2: + return cached_title + + title = (self.get_session_title_by_ocr(window_rect) or "").strip() + if title and title not in UI_NOISE_KEYWORDS: + self._session_title_cache = {"value": title, "ts": now_ts} + return title + except Exception as e: + return "" + +# 判断当前选中的会话是否应被跳过(点击后标题检查阶段) + def should_skip_current_session(self, window_rect, session, blocked_row_cache, save_blocked_row_cache: Callable): + title = self.get_current_session_title(window_rect) + block_key = self.make_block_key(title) + if block_key and block_key in blocked_row_cache: + return True + normalized_title = self.normalize_match_text(title) + for keyword in BLOCKED_SESSION_KEYWORDS: + if self.normalize_match_text(keyword) in normalized_title: + if block_key: + blocked_row_cache[block_key] = title or keyword + save_blocked_row_cache() + return True + return False + +# 比较两个会话名称是否匹配(考虑模糊匹配和大小写) + def is_same_session(self, expected_session, current_session): + expected = self.normalize_match_text(expected_session) + current = self.normalize_match_text(current_session) + if not expected or not current: + return False + return expected in current or current in expected + +# 根据OCR识别结果判断会话列表中的会话是否应被跳过 + def should_skip_session_by_ocr(self, session, blocked_row_cache, save_blocked_row_cache: Callable): + image_obj = session.get('row_img') + if image_obj is None: + return False + try: + name_img = self.extract_session_name_image(image_obj) + if name_img is None: + return False + + crop_box = { + 'left': SESSION_NAME_LEFT_OFFSET, + 'top': SESSION_NAME_TOP_OFFSET, + 'width': SESSION_NAME_WIDTH, + 'height': SESSION_NAME_HEIGHT, + 'row_w': image_obj.size[0], + 'row_h': image_obj.size[1], + 'crop_w': name_img.size[0], + 'crop_h': name_img.size[1], + } + if OCR_SAVE_IMAGES: + file_name = f"row_{int(session.get('row_idx', 0)):03d}_name_raw.png" + self._save_debug_image(name_img, os.path.join('sessions', 'name_ocr', file_name)) + + img_bytes = BytesIO() + name_img.save(img_bytes, format='PNG') + lines = self.ocr.recognize_session_name(img_bytes.getvalue(), scene=f"session_row_{session.get('row_idx')}") + line_text = ' '.join(lines) + session['list_ocr_title'] = line_text + normalized_text = self.normalize_match_text(line_text) + block_key = self.make_block_key(line_text) + if block_key and block_key in blocked_row_cache: + return True + for keyword in BLOCKED_SESSION_KEYWORDS: + if self.normalize_match_text(keyword) in normalized_text: + if block_key: + blocked_row_cache[block_key] = line_text or keyword + save_blocked_row_cache() + return True + return False + except Exception as e: + return False + +# 分析点击后的聊天区域截图,提取最新消息文本并返回分析结果 + def analyze_clicked_session(self, window_rect, round_count, row_idx): + trace_id = new_trace_id("bot") + chat_box = self.screenshot.get_chat_capture_box(window_rect) + if not self.screenshot.is_valid_box(chat_box): + log_event("WARNING", "bot", "bot.chat_analyze", trace_id, "capture", "failed", "聊天区截图区域无效", reason="invalid_box") + return ChatAnalyzeResult(ok=False, file_name='', latest_text='', confidence='', bubble_side='', screenshot_path='') + + screenshot = self.screenshot.capture_chat_area(window_rect) + file_name = f"round_{round_count:04d}_row_{row_idx:03d}_chat.png" + rel_path = os.path.join('sessions', 'clicked', file_name) + self._save_debug_image(screenshot, rel_path) + result = analyze_pil_image(screenshot, stem=os.path.splitext(file_name)[0], file_name=file_name) + latest_text = (getattr(result, 'latest_text', None) or '').strip() + confidence = getattr(result, 'confidence', '') + bubble_side = getattr(result, 'bubble_side', '') + log_event("INFO", "bot", "bot.chat_analyze", trace_id, "analyze", "ok", "聊天截图分析完成", extra={"round": int(round_count), "row_idx": int(row_idx), "has_text": bool(latest_text), "bubble_side": bubble_side or "", "confidence": confidence}) + return ChatAnalyzeResult( + ok=bool(latest_text), + file_name=file_name, + latest_text=latest_text, + confidence=confidence, + bubble_side=bubble_side, + screenshot_path=rel_path, + ) + +# 保存会话扫描调试数据(类似聊天分析输出 result.json) + def _save_session_scan_debug(self, round_count: int, sessions: list[dict], unread_sessions: list[dict], contact_rect: dict): + if not OCR_SAVE_IMAGES: + return + try: + debug_dir = os.path.join(OCR_SAVE_DIR, 'sessions', 'scan_debug') + os.makedirs(debug_dir, exist_ok=True) + file_name = f"round_{round_count:04d}_scan.json" + file_path = os.path.join(debug_dir, file_name) + rows = [] + for session in sessions: + rows.append({ + 'row_idx': session.get('row_idx'), + 'has_red_dot': bool(session.get('has_red_dot')), + 'has_red_by_global': bool(session.get('has_red_by_global')), + 'has_red_by_row': bool(session.get('has_red_by_row')), + 'has_red_by_row_weak': bool(session.get('has_red_by_row_weak')), + 'click_x': session.get('click_x'), + 'click_y': session.get('click_y'), + 'list_ocr_title': session.get('list_ocr_title', ''), + }) + payload = { + 'round': int(round_count), + 'contact_rect': contact_rect, + 'total_sessions': len(sessions), + 'unread_count': len(unread_sessions), + 'unread_rows': [s.get('row_idx') for s in unread_sessions], + 'rows': rows, + } + with open(file_path, 'w', encoding='utf-8') as f: + json.dump(payload, f, ensure_ascii=False, indent=2) + except Exception as e: + pass + +# 保存调试图片的内部方法 + def _save_debug_image(self, image_obj, filename): + if not self.save_debug_image: + return + self.save_debug_image(image_obj, filename) diff --git a/app/infrastructure/service/wechat/unread_session_analyzer.py b/app/infrastructure/service/wechat/unread_session_analyzer.py new file mode 100644 index 0000000..2b5c3d7 --- /dev/null +++ b/app/infrastructure/service/wechat/unread_session_analyzer.py @@ -0,0 +1,258 @@ +from __future__ import annotations + +import cv2 +import numpy as np + +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.config import CONTACT_ROW_HEIGHT + + + +class UnreadSessionAnalyzer: + def __init__(self): + pass + + def detect_red_dots(self, contact_rect: dict, screenshot) -> list[dict]: + trace_id = new_trace_id("bot") + try: + img_np = np.array(screenshot) + hsv = cv2.cvtColor(cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR), cv2.COLOR_BGR2HSV) + mask = cv2.inRange(hsv, np.array([0, 80, 80]), np.array([12, 255, 255])) + cv2.inRange(hsv, np.array([168, 80, 80]), np.array([180, 255, 255])) + contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + + contact_width = contact_rect['right'] - contact_rect['left'] + red_dots_raw = [] + for contour in contours: + area = cv2.contourArea(contour) + if 12 < area < 220: + perimeter = cv2.arcLength(contour, True) + if perimeter <= 0: + continue + circularity = 4 * np.pi * area / (perimeter * perimeter) + if circularity <= 0.45: + continue + moments = cv2.moments(contour) + if moments['m00'] == 0: + continue + cx = int(moments['m10'] / moments['m00']) + cy = int(moments['m01'] / moments['m00']) + if cx > contact_width * 0.1: + red_dots_raw.append({'x': contact_rect['left'] + cx, 'y': contact_rect['top'] + cy, 'rel_y': cy}) + + snapped_map = {} + for dot in red_dots_raw: + row_idx = int(round((dot['y'] - contact_rect['top']) / max(1, CONTACT_ROW_HEIGHT))) + snapped_y = int(contact_rect['top'] + row_idx * CONTACT_ROW_HEIGHT + CONTACT_ROW_HEIGHT // 2) + if row_idx not in snapped_map: + snapped_map[row_idx] = {'x': dot['x'], 'y': snapped_y, 'row_idx': row_idx} + + red_dots_final = sorted(snapped_map.values(), key=lambda d: d['y']) + log_event("INFO", "bot", "bot.unread.detect", trace_id, "detect", "ok", "红点检测完成", extra={"dot_count": len(red_dots_final)}) + return red_dots_final + except Exception as e: + log_event("ERROR", "bot", "bot.unread.detect", trace_id, "detect", "failed", "红点检测异常", reason="detect_error", extra={"error": str(e)}) + return [] + + def row_has_red_dot(self, row_img, relaxed: bool = False) -> bool: + try: + row_np = np.array(row_img) + h, w = row_np.shape[:2] + if h < 30 or w < 100: + return False + + margin_left = max(6, int(w * 0.012)) + avatar_size = int(h * 0.72) + avatar_y = (h - avatar_size) // 2 + avatar_x = margin_left + + avatar_cx = avatar_x + avatar_size / 2.0 + avatar_cy = avatar_y + avatar_size / 2.0 + avatar_r = avatar_size * 0.50 + + probe_x1 = avatar_x + int(avatar_size * 0.42) + probe_y1 = max(0, avatar_y - int(avatar_size * 0.10)) + probe_x2 = min(w, avatar_x + int(avatar_size * 1.00)) + probe_y2 = min(h, avatar_y + int(avatar_size * 0.36)) + + if probe_x2 <= probe_x1 or probe_y2 <= probe_y1: + return False + + probe = row_np[probe_y1:probe_y2, probe_x1:probe_x2] + if probe.size == 0: + return False + + probe_hsv = cv2.cvtColor(probe, cv2.COLOR_RGB2HSV) + mask1 = cv2.inRange(probe_hsv, np.array([0, 115, 125]), np.array([12, 255, 255])) + mask2 = cv2.inRange(probe_hsv, np.array([168, 115, 125]), np.array([180, 255, 255])) + mask = cv2.bitwise_or(mask1, mask2) + + kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) + mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel) + mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel) + + contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + if not contours: + self.debug_log(f"row_red w={w} h={h} candidates=0") + return False + + candidates = [] + pw = probe_x2 - probe_x1 + ph = probe_y2 - probe_y1 + + for cnt in contours: + area = cv2.contourArea(cnt) + if not (8 <= area <= 260): + continue + + x, y, cw, ch = cv2.boundingRect(cnt) + peri = cv2.arcLength(cnt, True) + if peri <= 0: + continue + + circ = 4 * np.pi * area / (peri * peri) + ar = max(cw, ch) / max(1, min(cw, ch)) + + cx = x + cw / 2.0 + cy = y + ch / 2.0 + gx = probe_x1 + cx + gy = probe_y1 + cy + + in_upper_right = cx > pw * 0.30 and cx < pw * 0.90 and cy < ph * 0.68 + near_avatar_corner = ( + gx >= avatar_x + avatar_size * 0.66 and + gx <= avatar_x + avatar_size * 1.00 and + gy >= avatar_y - avatar_size * 0.06 and + gy <= avatar_y + avatar_size * 0.24 + ) + if not (in_upper_right and near_avatar_corner): + continue + + comp_mask = np.zeros(mask.shape, dtype=np.uint8) + cv2.drawContours(comp_mask, [cnt], -1, 255, thickness=-1) + ys, xs = np.where(comp_mask > 0) + if len(xs) == 0: + continue + + global_xs = xs + probe_x1 + global_ys = ys + probe_y1 + d2 = (global_xs - avatar_cx) ** 2 + (global_ys - avatar_cy) ** 2 + outside_ratio = float(np.count_nonzero(d2 > (avatar_r * 0.92) ** 2)) / len(d2) + + min_area = 10 if relaxed else 14 + min_small_outside = 0.18 if relaxed else 0.25 + min_small_circ = 0.72 if relaxed else 0.82 + min_match_score = 7 if relaxed else 8 + min_match_outside = 0.10 if relaxed else 0.15 + + if area < min_area: + continue + if area < 20 and outside_ratio < min_small_outside: + continue + if gy > avatar_y + avatar_size * 0.24: + continue + if area < 20 and circ < min_small_circ: + continue + if area < 20 and ar > 1.20: + continue + + if area >= 120: + shape_ok = circ > 0.26 and ar < 2.6 + elif area >= 28: + shape_ok = circ > 0.45 and ar < 1.9 + else: + shape_ok = circ > 0.82 and ar <= 1.20 and outside_ratio >= 0.25 + if not shape_ok: + continue + + white_ratio = 0.0 + if cw >= 7 and ch >= 7: + inner = probe[max(0, y):min(probe.shape[0], y + ch), max(0, x):min(probe.shape[1], x + cw)] + if inner.size > 0: + gray = cv2.cvtColor(inner, cv2.COLOR_RGB2GRAY) + white_ratio = np.count_nonzero(gray > 190) / gray.size + + score = 3 + if area >= 14: + score += 2 + if circ > 0.85: + score += 2 + elif circ > 0.70: + score += 1 + if ar <= 1.15: + score += 2 + elif ar <= 1.35: + score += 1 + if outside_ratio >= 0.35: + score += 4 + elif outside_ratio >= 0.25: + score += 3 + elif outside_ratio >= 0.15: + score += 1 + if 0.05 <= white_ratio <= 0.60: + score += 1 + + candidates.append({ + 'score': score, + 'area': area, + 'circ': circ, + 'ar': ar, + 'outside_ratio': outside_ratio, + 'white_ratio': white_ratio, + 'center': (gx, gy), + 'bbox': (probe_x1 + x, probe_y1 + y, cw, ch), + 'min_match_score': min_match_score, + 'min_match_outside': min_match_outside, + }) + + if not candidates: + return False + + best = max(candidates, key=lambda x: x['score']) + matched = best['score'] >= best['min_match_score'] and best['outside_ratio'] >= best['min_match_outside'] + return matched + except Exception as e: + return False + + def row_has_red_dot_weak(self, row_img) -> bool: + return self.row_has_red_dot(row_img, relaxed=True) + + def get_all_sessions_with_unread(self, contact_rect: dict, screenshot, round_count: int, save_debug_image: Callable | None = None) -> tuple[list[dict], list[dict]]: + trace_id = new_trace_id("bot") + red_dots = self.detect_red_dots(contact_rect, screenshot) + red_y_list = [dot['y'] for dot in red_dots] + row_count = max(1, int((contact_rect['bottom'] - contact_rect['top']) / max(1, CONTACT_ROW_HEIGHT))) + sessions = [] + + for row_idx in range(row_count): + top = int(row_idx * CONTACT_ROW_HEIGHT) + bottom = int(min((row_idx + 1) * CONTACT_ROW_HEIGHT, screenshot.height)) + if bottom <= top: + continue + row_img = screenshot.crop((0, top, screenshot.width, bottom)) + center_y = int(contact_rect['top'] + row_idx * CONTACT_ROW_HEIGHT + CONTACT_ROW_HEIGHT // 2) + has_red_by_global = any(abs(center_y - y) <= max(7, CONTACT_ROW_HEIGHT // 4) for y in red_y_list) + has_red_by_row = self.row_has_red_dot(row_img) + has_red_by_row_weak = self.row_has_red_dot_weak(row_img) if has_red_by_global and not has_red_by_row else has_red_by_row + has_red = has_red_by_row or (has_red_by_global and has_red_by_row_weak) + row_name = f"round_{round_count:04d}_row_{row_idx:03d}.png" + if save_debug_image: + save_debug_image(row_img, f"sessions/all/{row_name}") + if has_red: + save_debug_image(row_img, f"sessions/unread/{row_name}") + sessions.append({ + 'row_idx': row_idx, + 'has_red_dot': has_red, + 'has_red_by_global': has_red_by_global, + 'has_red_by_row': has_red_by_row, + 'has_red_by_row_weak': has_red_by_row_weak, + 'click_x': int((contact_rect['left'] + contact_rect['right']) // 2), + 'click_y': center_y, + 'row_img': row_img.copy(), + }) + + unread_sessions = [s for s in sessions if s['has_red_dot']] + global_hits = sum(1 for s in sessions if s['has_red_by_global']) + row_hits = sum(1 for s in sessions if s['has_red_by_row']) + row_weak_hits = sum(1 for s in sessions if s['has_red_by_row_weak']) + log_event("INFO", "bot", "bot.unread.scan", trace_id, "scan", "ok", "未读会话扫描完成", extra={"round": int(round_count), "rows": len(sessions), "unread": len(unread_sessions), "global_hits": global_hits, "row_hits": row_hits, "row_weak_hits": row_weak_hits}) + return sessions, unread_sessions diff --git a/app/infrastructure/wechat_multi_chat_bot copy.py.bak b/app/infrastructure/wechat_multi_chat_bot copy.py.bak new file mode 100644 index 0000000..17f90ea --- /dev/null +++ b/app/infrastructure/wechat_multi_chat_bot copy.py.bak @@ -0,0 +1,504 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + + +import ctypes # Windows窗口句柄相关API +import hashlib # 文本去重哈希 +import logging # 日志模块 +import os # 文件目录操作 +import re # 正则过滤文本 +import time # 休眠/节流 +from datetime import datetime # 时间戳命名与日志辅助 +from io import BytesIO # 图片转字节流给OCR + +import cv2 # 图像处理 +import numpy as np # 数组/图像矩阵 +import pyautogui # 鼠标键盘自动化 +import pyperclip # 剪贴板粘贴发送文本 +import requests # 调用后端接口 +import uiautomation as auto # Windows UI 自动化 +from PIL import ImageGrab, Image # 截图与图像对象 + +from app.infrastructure.service.wechat.config import BAIDU_API_KEY, BAIDU_SECRET_KEY, BACKEND_URL, LOOP_INTERVAL, NO_REPLY_KEYWORDS, BLOCKED_SESSION_KEYWORDS, UI_NOISE_KEYWORDS, BOT_DEBUG_LOG, WECHAT_WINDOW_TARGET_WIDTH, WECHAT_WINDOW_TARGET_HEIGHT, WECHAT_WINDOW_TARGET_LEFT, WECHAT_WINDOW_TARGET_TOP, OCR_SAVE_IMAGES, OCR_SAVE_DIR # 机器人配置 +from app.infrastructure.service.wechat.ocr import BaiduOCR # 百度OCR封装 + +logging.basicConfig( # 配置全局日志 + level=logging.INFO, # 默认输出INFO及以上 + format="%(asctime)s - %(levelname)s - %(message)s", # 日志格式 + handlers=[ + logging.FileHandler("wechat_multi_chat_bot.log", encoding="utf-8"), # 写文件 + logging.StreamHandler() # 打终端 + ], +) +logger = logging.getLogger(__name__) # 当前模块日志器 + + +def debug_log(message): + if BOT_DEBUG_LOG: # 仅在调试开关开启时输出 + logger.info(f"[DEBUG] {message}") + + +class WechatMultiChatBot: + """微信自动回复机器人(UI自动化 + OCR + 规则/AI回复)。""" + + def __init__(self): + """初始化OCR、微信窗口句柄和运行期状态。""" + logger.info("[BOT] 初始化开始") # 生命周期日志 + self.ocr = BaiduOCR(BAIDU_API_KEY, BAIDU_SECRET_KEY) # OCR客户端 + self.wechat_window = None # 微信窗口对象 + self.find_wechat_window() # 启动即查找窗口 + self.seen_messages = {} # 去重缓存:contact_key -> hash set + self.processed_contacts = set() # 预留:已处理联系人集合 + self.running = False # 主循环运行状态 + logger.info("[BOT] 初始化完成") + + def find_wechat_window(self): + """查找微信主窗口;成功后执行窗口标准化。""" + logger.info("[WIN] 正在查找微信窗口") + self.wechat_window = auto.WindowControl(searchDepth=1, Name='微信') # 按窗口名查找 + if self.wechat_window.Exists(0, 0): # 立即探测是否存在 + logger.info("[WIN] 找到微信窗口") + self.normalize_wechat_window() # 找到后标准化尺寸 + return + logger.error("[WIN] 未找到微信窗口") + raise Exception("未找到微信窗口") + + def normalize_wechat_window(self): + """将微信窗口调整到预设位置和尺寸,保证识别区域稳定。""" + logger.info("[WIN] 开始标准化窗口大小和位置") + try: + self.wechat_window.SetActive() # 激活窗口 + time.sleep(0.25) # 等待激活稳定 + + hwnd = getattr(self.wechat_window, "NativeWindowHandle", 0) # 尝试取窗口句柄 + if hwnd: + user32 = ctypes.windll.user32 # Win32接口 + SWP_NOZORDER = 0x0004 # 不改变Z序 + SWP_NOACTIVATE = 0x0010 # 不抢前台焦点 + user32.SetWindowPos( + int(hwnd), # 目标窗口句柄 + 0, # hWndInsertAfter + int(WECHAT_WINDOW_TARGET_LEFT), # 目标左上x + int(WECHAT_WINDOW_TARGET_TOP), # 目标左上y + int(WECHAT_WINDOW_TARGET_WIDTH), # 目标宽度 + int(WECHAT_WINDOW_TARGET_HEIGHT), # 目标高度 + SWP_NOZORDER | SWP_NOACTIVATE, # 标志位 + ) + logger.info(f"[WIN] 句柄模式窗口标准化成功 hwnd={hwnd}") + else: + if hasattr(self.wechat_window, "MoveTo") and hasattr(self.wechat_window, "Resize"): # 兼容旧接口 + self.wechat_window.MoveTo(WECHAT_WINDOW_TARGET_LEFT, WECHAT_WINDOW_TARGET_TOP) # 移动窗口 + self.wechat_window.Resize(WECHAT_WINDOW_TARGET_WIDTH, WECHAT_WINDOW_TARGET_HEIGHT) # 调整尺寸 + logger.info("[WIN] MoveTo/Resize 模式窗口标准化成功") + else: + raise Exception("未获取到窗口句柄且不支持 MoveTo/Resize") + + time.sleep(0.35) # 等待窗口重排完成 + logger.info(f"[WIN] 标准化参数 left={WECHAT_WINDOW_TARGET_LEFT} top={WECHAT_WINDOW_TARGET_TOP} width={WECHAT_WINDOW_TARGET_WIDTH} height={WECHAT_WINDOW_TARGET_HEIGHT}") + debug_log(f"window_normalized=({WECHAT_WINDOW_TARGET_LEFT},{WECHAT_WINDOW_TARGET_TOP},{WECHAT_WINDOW_TARGET_WIDTH},{WECHAT_WINDOW_TARGET_HEIGHT})") + except Exception as e: + logger.warning(f"[WIN] 窗口标准化失败,继续按当前窗口运行: {e}") + + def get_window_rect(self): + try: + rect = self.wechat_window.BoundingRectangle # UIA矩形 + result = {'left': rect.left, 'top': rect.top, 'right': rect.right, 'bottom': rect.bottom, 'width': rect.right - rect.left, 'height': rect.bottom - rect.top} # 转字典 + debug_log(f"window_rect={result}") + return result + except Exception as e: + logger.warning(f"[WIN] 获取窗口位置失败: {e}") + return None + + def get_contact_list_rect(self, window_rect): + rect = {'left': window_rect['left'] + 10, 'top': window_rect['top'] + 50, 'right': window_rect['left'] + int(window_rect['width'] * 0.25) - 10, 'bottom': window_rect['bottom'] - 50} # 左侧会话列表区域 + debug_log(f"contact_rect={rect}") + return rect + + def detect_red_dots(self, window_rect): + logger.info("[DETECT] 开始检测红点") + contact_rect = self.get_contact_list_rect(window_rect) # 获取列表区域 + try: + screenshot = ImageGrab.grab(bbox=(contact_rect['left'], contact_rect['top'], contact_rect['right'], contact_rect['bottom'])) # 列表截图 + img_np = np.array(screenshot) # PIL -> numpy + img_bgr = cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR) # RGB -> BGR + hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV) # BGR -> HSV + mask = cv2.inRange(hsv, np.array([0, 80, 80]), np.array([12, 255, 255])) + cv2.inRange(hsv, np.array([168, 80, 80]), np.array([180, 255, 255])) # 红色双区间 + contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 查找连通域 + contact_width = contact_rect['right'] - contact_rect['left'] # 列表宽度 + red_dots_raw = [] # 原始红点 + for contour in contours: + area = cv2.contourArea(contour) # 面积过滤 + if 12 < area < 220: + perimeter = cv2.arcLength(contour, True) # 周长 + if perimeter > 0: + circularity = 4 * np.pi * area / (perimeter * perimeter) # 圆度 + if circularity > 0.45: + M = cv2.moments(contour) # 矩中心 + if M["m00"] != 0: + cx = int(M["m10"] / M["m00"]) # 中心x + cy = int(M["m01"] / M["m00"]) # 中心y + if cx > contact_width * 0.1: # 过滤左边缘噪声 + red_dots_raw.append({'x': contact_rect['left'] + cx, 'y': contact_rect['top'] + cy, 'rel_y': cy}) # 记录绝对坐标 + red_dots_grouped = [] # 按行合并后的红点 + debug_log(f"red_dots_raw={len(red_dots_raw)}") + used = set() # 已分组索引 + for i, dot in enumerate(red_dots_raw): + if i in used: + continue + group = [dot] # 当前分组 + for j, other in enumerate(red_dots_raw): + if j != i and j not in used and abs(dot['rel_y'] - other['rel_y']) < 50: # 同一行 + group.append(other) + used.add(j) + red_dots_grouped.append({'x': sum(d['x'] for d in group) // len(group), 'y': sum(d['y'] for d in group) // len(group)}) # 行中心 + used.add(i) + logger.info(f"[DETECT] 红点检测完成 grouped={len(red_dots_grouped)}") + debug_log(f"red_dots_grouped={len(red_dots_grouped)}") + return red_dots_grouped + except Exception as e: + logger.error(f"[DETECT] 检测红点失败: {e}") + return [] + + def click_contact_by_red_dot(self, red_dot, window_rect): + contact_rect = self.get_contact_list_rect(window_rect) # 计算左侧联系人列表区域 + click_x = (contact_rect['left'] + contact_rect['right']) // 2 # 点击联系人列表中线,避免点到红点本身 + click_y = red_dot['y'] # 使用红点纵坐标对应会话行 + logger.info(f"[ACTION] 点击联系人 x={click_x} y={click_y}") # 记录点击行为 + pyautogui.click(click_x, click_y) # 执行点击 + time.sleep(1.2) # 等待会话内容加载 + session_title = self.get_current_session_title() # 读取当前会话标题 + logger.info(f"[ACTION] 当前会话标题 title={session_title or '未知'}") # 输出标题用于排查 + time.sleep(1.0) # 再等待短时间,保证后续OCR稳定 + + def get_session_title_by_ocr(self): + try: + window_rect = self.get_window_rect() # 获取微信窗口坐标 + if not window_rect: + return "" # 窗口坐标不可用 + + title_areas = [ # 多个标题区域兜底,适配不同微信版本/缩放 + ( + window_rect['left'] + int(window_rect['width'] * 0.32), + window_rect['top'] + 6, + window_rect['right'] - int(window_rect['width'] * 0.30), + window_rect['top'] + max(40, int(window_rect['height'] * 0.085)), + ), + ( + window_rect['left'] + int(window_rect['width'] * 0.28), + window_rect['top'] + 4, + window_rect['right'] - int(window_rect['width'] * 0.24), + window_rect['top'] + max(46, int(window_rect['height'] * 0.095)), + ), + ] + + for idx, (left, top, right, bottom) in enumerate(title_areas, 1): # 逐区域尝试 + screenshot = ImageGrab.grab(bbox=(left, top, right, bottom)) # 截标题图 + self.save_ocr_debug_image(screenshot, f"title_ocr_{idx}_{datetime.now().strftime('%Y%m%d_%H%M%S_%f')}.png") # 落盘调试 + img_bytes = BytesIO() # 内存字节流 + screenshot.save(img_bytes, format='PNG') # 转png字节 + lines = self.ocr.recognize(img_bytes.getvalue()) # OCR识别 + valid = [x.strip() for x in lines if x and x.strip() and len(x.strip()) >= 2] # 清洗文本 + valid = [x for x in valid if x not in UI_NOISE_KEYWORDS] # 去噪 + if valid: + title = valid[0] # 取首个有效标题 + debug_log(f"session_title_ocr={title} area={idx} lines={valid[:5]}") + return title + + return "" # 全部区域失败 + except Exception as e: + debug_log(f"session_title_ocr_error={e}") + return "" # OCR异常返回空 + + def get_current_session_title(self): + try: + title_ctrl = self.wechat_window.TextControl(foundIndex=1) # 优先UIA读标题 + if hasattr(title_ctrl, "Exists") and not title_ctrl.Exists(0.3, 0.05): # 快速存在性检查 + debug_log("session_title_not_found_fast") + title = self.get_session_title_by_ocr() # UIA失败转OCR + return title + title = (getattr(title_ctrl, "Name", "") or "").strip() # 读取控件Name + if not title or title in UI_NOISE_KEYWORDS: # 噪声/空值 + title = self.get_session_title_by_ocr() # OCR兜底 + debug_log(f"session_title={title}") + return title + except Exception as e: + debug_log(f"session_title_error={e}") + return self.get_session_title_by_ocr() # 异常也兜底 + + def is_blocked_session(self): + title = self.get_current_session_title() # 取会话标题 + if not title: + return False # 标题未知默认不拦截 + for keyword in BLOCKED_SESSION_KEYWORDS: # 命中过滤词则跳过 + if keyword in title: + logger.info(f"[SESSION] 命中过滤会话 title={title} keyword={keyword}") + return True + return False + + def get_latest_message_areas(self, window_rect): + """计算多段消息识别区域(靠近底部,适配不同窗口尺寸)。""" + chat_left = window_rect['left'] + int(window_rect['width'] * 0.30) # 聊天区左边界 + chat_right = window_rect['right'] - 20 # 聊天区右边界 + chat_top = window_rect['top'] + int(window_rect['height'] * 0.16) # 聊天区上边界 + chat_bottom = window_rect['bottom'] - int(window_rect['height'] * 0.20) # 聊天区下边界(排除输入区) + chat_height = max(420, int((chat_bottom - chat_top) * 0.90)) # 有效聊天高度 + + area1_h = max(220, int(chat_height * 0.46)) # 近底部区域 + area2_h = max(320, int(chat_height * 0.72)) # 中大区域 + area3_h = max(420, int(chat_height * 0.98)) # 大区域兜底 + + areas = [ + {'left': chat_left, 'top': max(chat_top, chat_bottom - area1_h), 'right': chat_right, 'bottom': chat_bottom}, # 区域1 + {'left': chat_left, 'top': max(chat_top, chat_bottom - area2_h), 'right': chat_right, 'bottom': chat_bottom - max(35, int(area1_h * 0.12))}, # 区域2 + {'left': chat_left, 'top': max(chat_top, chat_bottom - area3_h), 'right': chat_right, 'bottom': chat_bottom - max(80, int(area2_h * 0.20))}, # 区域3 + ] + debug_log(f"message_areas={areas}") + return areas + + def should_reply(self, text): + """基础过滤:过短、无意义、无需回复文本直接跳过。""" + if not text or len(text) < 2: # 文本太短不回复 + return False + text_lower = text.lower() # 统一小写比较 + for keyword in NO_REPLY_KEYWORDS: # 命中免回复词 + if keyword.lower() in text_lower: + return False + return not text.isdigit() # 纯数字通常无语义 + + def is_new_message(self, text, contact_key): + """消息去重:同一会话内已处理过的文本不重复回复。""" + if contact_key not in self.seen_messages: + self.seen_messages[contact_key] = set() # 首次初始化会话集合 + h = hashlib.md5(text.encode("utf-8")).hexdigest() # 文本哈希 + if h in self.seen_messages[contact_key]: + logger.info(f"[FILTER] 重复消息 contact_key={contact_key}") + return False + self.seen_messages[contact_key].add(h) # 记录已处理 + if len(self.seen_messages[contact_key]) > 50: # 限制缓存规模 + self.seen_messages[contact_key] = set(list(self.seen_messages[contact_key])[-50:]) + return True + + def extract_text_by_uia(self): + logger.info("[UIA] 尝试控件树文本提取") + lines = [] # 候选文本 + try: + all_text_controls = self.wechat_window.GetChildren() # 取一级子控件 + for ctrl in all_text_controls: + name = (getattr(ctrl, 'Name', '') or '').strip() # 控件文本 + if not name: + continue + if len(name) < 2: + continue + if re.fullmatch(r"[0-9:\-\s]+", name): # 过滤时间/数字 + continue + if name in UI_NOISE_KEYWORDS: # 过滤UI噪声 + continue + lines.append(name) # 保留候选 + except Exception as e: + logger.warning(f"[UIA] 控件树提取失败: {e}") + + dedup = [] # 去重结果 + seen = set() # 去重集合 + for x in lines: + if x not in seen: + dedup.append(x) + seen.add(x) + + logger.info(f"[UIA] 控件树提取文本数={len(dedup)}") + debug_log(f"uia_lines={dedup[-8:] if dedup else []}") + return dedup + + def save_ocr_debug_image(self, image_obj, filename): + """保存OCR调试截图,便于核对截取区域和图像质量。""" + if not OCR_SAVE_IMAGES: # 开关关闭则不落盘 + return + try: + os.makedirs(OCR_SAVE_DIR, exist_ok=True) # 创建目录 + file_path = os.path.join(OCR_SAVE_DIR, filename) # 文件路径 + image_obj.save(file_path) # 保存图片 + debug_log(f"saved_ocr_image={file_path}") + except Exception as e: + logger.warning(f"[OCR] 保存调试截图失败: {e}") + + def get_ai_reply(self, message): + """调用后端接口获取最终回复(规则优先,AI兜底)。""" + logger.info(f"[API] 请求后端生成回复 content={message}") + try: + resp = requests.post(BACKEND_URL, json={"content": message, "wx_user_id": "multi_chat_bot", "wx_nickname": "用户"}, timeout=10) # 请求后端 + logger.info(f"[API] 后端响应 status={resp.status_code}") + if resp.status_code == 200: + data = resp.json() # 解析json + if data.get("success") and data.get("should_reply"): + reply = (data.get("reply_text") or "").strip() # 取回复文本 + logger.info(f"[API] 生成回复成功 reply={reply}") + return reply + logger.info("[API] 后端未返回可发送回复") + except Exception as e: + logger.error(f"[API] 调用接口失败: {e}") + return None + + def send_message(self, text, window_rect): + logger.info(f"[SEND] 开始发送 reply={text}") + try: + self.wechat_window.SetActive() # 激活微信窗口 + time.sleep(0.3) + pyautogui.click(window_rect['left'] + window_rect['width'] // 2, window_rect['bottom'] - 100) # 点击输入框 + time.sleep(0.3) + pyautogui.hotkey('ctrl', 'a') # 全选旧文本 + pyautogui.press('delete') # 清空输入框 + pyperclip.copy(text) # 文本放入剪贴板 + pyautogui.hotkey('ctrl', 'v') # 粘贴内容 + pyautogui.press('enter') # 回车发送 + logger.info("[SEND] 发送成功") + except Exception as e: + logger.error(f"[SEND] 发送失败: {e}") + + def process_current_chat(self, window_rect, contact_key): + logger.info(f"[CHAT] 开始处理会话 contact_key={contact_key}") + if self.is_blocked_session(): # 系统会话直接跳过 + logger.info("[CHAT] 当前会话在过滤名单,跳过") + return False + try: + all_lines = [] # OCR/UIA汇总文本 + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f") # 调试图时间戳 + for idx, msg_rect in enumerate(self.get_latest_message_areas(window_rect), 1): # 分区识别 + screenshot = ImageGrab.grab(bbox=(msg_rect['left'], msg_rect['top'], msg_rect['right'], msg_rect['bottom'])) # 区域截图 + img_np = np.array(screenshot) # 转numpy + + raw_pil = Image.fromarray(img_np) # 原图 + self.save_ocr_debug_image(raw_pil, f"{timestamp}_{contact_key}_area{idx}_raw.png") # 保存原图 + raw_bytes = BytesIO() # 原图字节流 + raw_pil.save(raw_bytes, format='PNG') + lines_raw = self.ocr.recognize(raw_bytes.getvalue()) # 原图OCR + + gray = cv2.cvtColor(img_np, cv2.COLOR_RGB2GRAY) # 灰度化 + enhanced = cv2.convertScaleAbs(gray, alpha=1.35, beta=8) # 提升对比度 + _, binary = cv2.threshold(enhanced, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) # 二值化 + pil_bin = Image.fromarray(binary) # 二值图 + self.save_ocr_debug_image(pil_bin, f"{timestamp}_{contact_key}_area{idx}_bin.png") # 保存二值图 + bin_bytes = BytesIO() # 二值图字节流 + pil_bin.save(bin_bytes, format='PNG') + lines_bin = self.ocr.recognize(bin_bytes.getvalue()) # 二值图OCR + + lines = lines_raw + lines_bin # 合并两路识别 + logger.info(f"[OCR] area={idx} raw={len(lines_raw)} bin={len(lines_bin)} total={len(lines)}") + debug_log(f"ocr_lines_count={len(lines)} contact_key={contact_key} area={idx}") + all_lines.extend(lines) # 汇总 + + if not all_lines: # 分区都失败时走整块兜底 + logger.info("[CHAT] 分区OCR无结果,尝试整块聊天区兜底") + chat_left = window_rect['left'] + int(window_rect['width'] * 0.30) + chat_right = window_rect['right'] - 20 + chat_top = window_rect['top'] + int(window_rect['height'] * 0.16) + chat_bottom = window_rect['bottom'] - int(window_rect['height'] * 0.20) + full_shot = ImageGrab.grab(bbox=(chat_left, chat_top, chat_right, chat_bottom)) # 整块截图 + full_np = np.array(full_shot) + full_gray = cv2.cvtColor(full_np, cv2.COLOR_RGB2GRAY) + full_enh = cv2.convertScaleAbs(full_gray, alpha=1.25, beta=6) + _, full_bin = cv2.threshold(full_enh, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) + full_pil = Image.fromarray(full_bin) + self.save_ocr_debug_image(full_pil, f"{timestamp}_{contact_key}_fallback_full_bin.png") # 保存兜底图 + full_bytes = BytesIO() + full_pil.save(full_bytes, format='PNG') + full_lines = self.ocr.recognize(full_bytes.getvalue()) # 兜底OCR + logger.info(f"[OCR] fallback_full_chat lines={len(full_lines)}") + all_lines.extend(full_lines) + + if not all_lines: # OCR全失败时走UIA + logger.info("[CHAT] OCR 无结果,尝试 UIA 文本兜底") + all_lines = self.extract_text_by_uia() + + if not all_lines: # UIA也失败 + logger.info("[CHAT] OCR+UIA 均无结果,结束") + return False + + valid_lines = [line.strip() for line in all_lines if len(line.strip()) >= 2] # 过滤无效行 + if not valid_lines: + logger.info("[CHAT] 过滤后无有效文本,结束") + return False + + latest = None # 最终待处理消息 + prioritized = [line for line in reversed(valid_lines) if ("报名" in line or "课程" in line or "价格" in line)] # 规则关键词优先 + if prioritized: + latest = prioritized[0] + logger.info(f"[CHAT] 规则关键词优先命中 latest={latest}") + else: + for line in reversed(valid_lines): # 从最新往前找可回复文本 + if self.should_reply(line): + latest = line + break + + if not latest: + logger.info("[CHAT] 没有命中可回复文本,结束") + debug_log("skip_all_should_reply=false") + return False + + logger.info(f"[CHAT] 识别目标消息 latest={latest}") + debug_log(f"latest_text={latest}") + if not self.is_new_message(latest, contact_key): # 重复消息不再回 + debug_log("skip_duplicate_message") + return False + + reply = self.get_ai_reply(latest) # 请求后端生成回复 + if reply: + debug_log(f"ai_reply={reply}") + self.send_message(reply, window_rect) # 发送回复 + logger.info("[CHAT] 本次会话处理完成(已发送)") + return True + + debug_log("no_ai_reply") + logger.info("[CHAT] 本次会话处理完成(无可发送回复)") + return False + except Exception as e: + logger.error(f"[CHAT] 处理聊天失败: {e}") + return False + + def run_forever(self): + """主循环:红点检测 -> 点击会话 -> 处理消息 -> 间隔轮询。""" + logger.info("[LOOP] 监听循环启动") + self.running = True # 标记运行中 + round_count = 0 # 轮次计数 + while self.running: + try: + round_count += 1 # 新一轮 + logger.info(f"[LOOP] 开始第 {round_count} 轮") + debug_log(f"round={round_count}") + window_rect = self.get_window_rect() # 获取窗口坐标 + if not window_rect: + logger.info("[LOOP] 未取到窗口位置,等待下一轮") + time.sleep(LOOP_INTERVAL) + continue + red_dots = self.detect_red_dots(window_rect) # 红点检测 + logger.info(f"[LOOP] 本轮红点数={len(red_dots)}") + debug_log(f"red_dots_detected={len(red_dots)}") + if not red_dots: + logger.info("[LOOP] 未检测到红点,走当前会话兜底") + debug_log("fallback_current_chat") + self.process_current_chat(window_rect, "current_chat_fallback") # 无红点也扫当前会话 + time.sleep(LOOP_INTERVAL) + continue + for idx, red_dot in enumerate(red_dots, 1): # 逐个红点处理 + logger.info(f"[LOOP] 处理红点 {idx}/{len(red_dots)}") + self.click_contact_by_red_dot(red_dot, window_rect) # 点击会话 + contact_key = f"{red_dot['x']}_{red_dot['y']}" # 联系人key + self.process_current_chat(window_rect, contact_key) # 处理会话 + time.sleep(1) # 短暂节流 + logger.info(f"[LOOP] 第 {round_count} 轮结束,休眠 {LOOP_INTERVAL} 秒") + time.sleep(LOOP_INTERVAL) + except Exception as e: + logger.error(f"[LOOP] 循环出错: {e}") + time.sleep(3) # 异常后稍等再继续 + + def stop(self): + logger.info("[LOOP] 收到停止信号") + self.running = False # 置位退出 + + +if __name__ == "__main__": + try: + bot = WechatMultiChatBot() # 构造机器人 + bot.run_forever() # 进入主循环 + except KeyboardInterrupt: + bot.stop() # Ctrl+C优雅停止 + except Exception as e: + print(f"错误: {e}") # 启动异常输出 diff --git a/app/infrastructure/wechat_multi_chat_bot.py b/app/infrastructure/wechat_multi_chat_bot.py new file mode 100644 index 0000000..d72b2f0 --- /dev/null +++ b/app/infrastructure/wechat_multi_chat_bot.py @@ -0,0 +1,373 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import ctypes +import ctypes.wintypes +import json +import os +import shutil +import time +from io import BytesIO + +import pyautogui +import pyperclip +import requests +from app.infrastructure.service.logging.log_service import log_event, new_trace_id +from app.infrastructure.service.wechat.ocr import OCRService +from app.infrastructure.service.wechat.screenshot import ScreenshotService +from app.infrastructure.service.wechat.session_service import WechatSessionService + +from app.infrastructure.service.wechat.config import ( + LOOP_INTERVAL, LOOP_ERROR_DELAY, CLICK_AFTER_DELAY, TITLE_AFTER_DELAY, + CONTACT_SWITCH_DELAY, BOT_LOG_FILE, BOT_SESSION_LIST_LOG_FILE, BOT_SESSION_DETAIL_LOG_FILE, + WECHAT_WINDOW_TARGET_WIDTH, WECHAT_WINDOW_TARGET_HEIGHT, + WECHAT_WINDOW_TARGET_LEFT, WECHAT_WINDOW_TARGET_TOP, + OCR_SAVE_IMAGES, OCR_SAVE_DIR, BLOCKED_ROW_CACHE_FILE, + CONTACT_ROW_HEIGHT, CONTACT_ROW_WIDTH, + CONTACT_LIST_LEFT_OFFSET, CONTACT_LIST_TOP_OFFSET, CONTACT_LIST_BOTTOM_OFFSET, + SESSION_NAME_LEFT_OFFSET, SESSION_NAME_TOP_OFFSET, SESSION_NAME_WIDTH, SESSION_NAME_HEIGHT, + CHAT_CAPTURE_LEFT_OFFSET, CHAT_CAPTURE_TOP_OFFSET, CHAT_CAPTURE_WIDTH, CHAT_CAPTURE_HEIGHT, + TITLE_OCR_AREA_LEFT_OFFSET, TITLE_OCR_AREA_TOP_OFFSET, TITLE_OCR_AREA_WIDTH, TITLE_OCR_AREA_HEIGHT, +) + + +class WechatMultiChatBot: + + def _sleep_interruptible(self, seconds): + end_ts = time.time() + max(0.0, float(seconds or 0)) + while self.running and time.time() < end_ts: + time.sleep(min(0.1, end_ts - time.time())) + + def submit_message(self, session_name, content, confidence="", bubble_side=""): + trace_id = new_trace_id("bot") + backend_url = (os.getenv("BACKEND_URL") or "").strip() + if not backend_url or not content: + log_event("WARNING", "bot", "bot.submit", trace_id, "submit", "failed", "消息上报参数不完整", reason="invalid_input") + return {"success": False, "should_reply": False, "reply_text": ""} + try: + payload = { + "wx_user_id": session_name or "", + "wx_nickname": session_name or "", + "content": content, + "is_friend_request": 0, + "ocr_confidence": confidence, + "ocr_bubble_side": bubble_side, + } + resp = requests.post(backend_url, json=payload, timeout=5) + if resp.status_code != 200: + log_event("WARNING", "bot", "bot.submit", trace_id, "submit", "failed", "消息上报失败", reason="http_error", extra={"status_code": resp.status_code}) + return {"success": False, "should_reply": False, "reply_text": ""} + data = resp.json() if resp.text else {} + if not isinstance(data, dict): + log_event("WARNING", "bot", "bot.submit", trace_id, "submit", "failed", "消息上报返回格式异常", reason="invalid_response") + return {"success": False, "should_reply": False, "reply_text": ""} + result = { + "success": bool(data.get("success")), + "should_reply": bool(data.get("should_reply")), + "reply_text": (data.get("reply_text") or "").strip(), + } + log_event("INFO", "bot", "bot.submit", trace_id, "submit", "ok", "消息上报成功", extra={"should_reply": result["should_reply"]}) + return result + except Exception as e: + log_event("ERROR", "bot", "bot.submit", trace_id, "submit", "failed", "消息上报异常", reason="request_error", extra={"error": str(e)}) + return {"success": False, "should_reply": False, "reply_text": ""} + + def __init__(self): + self.wechat_hwnd = 0 + self.ocr = OCRService() + self.screenshot = ScreenshotService() + self.session_service = WechatSessionService( + screenshot_service=self.screenshot, + ocr_service=self.ocr, + save_debug_image=self.save_debug_image, + ) + self.running = False + self.blocked_row_cache = self.load_blocked_row_cache() + self.init_debug_dirs() + self.find_wechat_window() + + def load_blocked_row_cache(self): + try: + if not os.path.exists(BLOCKED_ROW_CACHE_FILE): + return {} + with open(BLOCKED_ROW_CACHE_FILE, "r", encoding="utf-8") as f: + data = json.load(f) + if isinstance(data, dict): + filtered = {k: v for k, v in data.items() if isinstance(k, str) and k.startswith("title:")} + dropped = len(data) - len(filtered) + return filtered + except Exception as e: + pass + return {} + + def save_blocked_row_cache(self): + try: + os.makedirs(os.path.dirname(BLOCKED_ROW_CACHE_FILE), exist_ok=True) + with open(BLOCKED_ROW_CACHE_FILE, "w", encoding="utf-8") as f: + json.dump(self.blocked_row_cache, f, ensure_ascii=False, indent=2) + except Exception as e: + pass + + def init_debug_dirs(self): + if not OCR_SAVE_IMAGES: + return + try: + if os.path.exists(OCR_SAVE_DIR): + shutil.rmtree(OCR_SAVE_DIR) + os.makedirs(os.path.join(OCR_SAVE_DIR, "sessions", "all"), exist_ok=True) + os.makedirs(os.path.join(OCR_SAVE_DIR, "sessions", "unread"), exist_ok=True) + os.makedirs(os.path.join(OCR_SAVE_DIR, "sessions", "clicked"), exist_ok=True) + os.makedirs(os.path.join(OCR_SAVE_DIR, "sessions", "name_ocr"), exist_ok=True) + except Exception as e: + pass + + def find_wechat_window(self): + user32 = ctypes.windll.user32 + found_hwnd = [] + EnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.c_void_p) + + def _callback(hwnd, lparam): + if not user32.IsWindowVisible(hwnd): + return True + length = user32.GetWindowTextLengthW(hwnd) + if length <= 0: + return True + buf = ctypes.create_unicode_buffer(length + 1) + user32.GetWindowTextW(hwnd, buf, length + 1) + title = (buf.value or "").strip() + if "微信" in title: + found_hwnd.append(int(hwnd)) + return False + return True + + user32.EnumWindows(EnumWindowsProc(_callback), 0) + if found_hwnd: + self.wechat_hwnd = found_hwnd[0] + self.normalize_wechat_window() + return + raise Exception("未找到微信窗口") + + def normalize_wechat_window(self): + try: + user32 = ctypes.windll.user32 + hwnd = int(self.wechat_hwnd or 0) + if not hwnd: + return + user32.ShowWindow(hwnd, 9) + user32.SetForegroundWindow(hwnd) + time.sleep(0.25) + user32.SetWindowPos( + hwnd, + 0, + int(WECHAT_WINDOW_TARGET_LEFT), + int(WECHAT_WINDOW_TARGET_TOP), + int(WECHAT_WINDOW_TARGET_WIDTH), + int(WECHAT_WINDOW_TARGET_HEIGHT), + 0x0004 | 0x0010, + ) + except Exception as e: + pass + + def get_window_rect(self): + try: + user32 = ctypes.windll.user32 + hwnd = int(self.wechat_hwnd or 0) + if not hwnd: + return None + client_rect = ctypes.wintypes.RECT() + ok = user32.GetClientRect(hwnd, ctypes.byref(client_rect)) + if not ok: + return None + top_left = ctypes.wintypes.POINT(0, 0) + bottom_right = ctypes.wintypes.POINT(int(client_rect.right), int(client_rect.bottom)) + if not user32.ClientToScreen(hwnd, ctypes.byref(top_left)): + return None + if not user32.ClientToScreen(hwnd, ctypes.byref(bottom_right)): + return None + return { + 'left': int(top_left.x), + 'top': int(top_left.y), + 'right': int(bottom_right.x), + 'bottom': int(bottom_right.y), + 'width': int(bottom_right.x - top_left.x), + 'height': int(bottom_right.y - top_left.y), + } + except Exception as e: + return None + + def save_debug_image(self, image_obj, filename): + if not OCR_SAVE_IMAGES: + return + try: + file_path = os.path.join(OCR_SAVE_DIR, filename) + os.makedirs(os.path.dirname(file_path), exist_ok=True) + image_obj.save(file_path) + except Exception as e: + pass + + def click_unread_session(self, session): + self.session_service.reset_session_title_cache() + click_x = session.get('click_x', session.get('center_x')) + click_y = session.get('click_y', session.get('center_y')) + if click_x is None or click_y is None: + return + pyautogui.click(int(click_x), int(click_y)) + self._sleep_interruptible(CLICK_AFTER_DELAY) + self._sleep_interruptible(TITLE_AFTER_DELAY) + + def send_reply_to_wechat(self, reply_text, expected_session_name=""): + text = (reply_text or "").strip() + if not text: + return False + window_rect = self.get_window_rect() + if not window_rect: + return False + try: + if expected_session_name: + current_title = self.session_service.get_current_session_title(window_rect) + if not self.session_service.is_same_session(expected_session_name, current_title): + return False + hwnd = int(self.wechat_hwnd or 0) + if hwnd: + ctypes.windll.user32.ShowWindow(hwnd, 9) + ctypes.windll.user32.SetForegroundWindow(hwnd) + self._sleep_interruptible(0.2) + input_x = int(window_rect["left"] + window_rect["width"] * 0.62) + input_y = int(window_rect["bottom"] - 88) + pyautogui.click(input_x, input_y) + self._sleep_interruptible(0.12) + pyautogui.hotkey("ctrl", "a") + self._sleep_interruptible(0.06) + pyautogui.press("delete") + self._sleep_interruptible(0.06) + pyperclip.copy(text) + self._sleep_interruptible(0.06) + pyautogui.hotkey("ctrl", "v") + self._sleep_interruptible(0.08) + pyautogui.press("enter") + return True + except Exception as e: + return False + + def save_current_chat_snapshot(self, window_rect, round_count, row_idx, expected_session_name="", expected_list_title=""): + try: + analyze_result = self.session_service.analyze_clicked_session(window_rect, round_count, row_idx) + if not analyze_result.file_name: + return False + current_session_name = "" + need_verify_current = bool(expected_session_name) + if need_verify_current: + current_session_name = self.session_service.get_current_session_title(window_rect) + if expected_session_name and current_session_name and not self.session_service.is_same_session(expected_session_name, current_session_name): + return False + session_name = (expected_session_name or expected_list_title or current_session_name or '').strip() + if analyze_result.ok: + submit_result = self.submit_message(session_name, analyze_result.latest_text, analyze_result.confidence, analyze_result.bubble_side) + if submit_result.get("should_reply"): + reply_text = (submit_result.get("reply_text") or "").strip() + if reply_text: + sent_ok = self.send_reply_to_wechat(reply_text, expected_session_name=session_name) + if not sent_ok: + log_event("WARNING", "bot", "bot.submit", new_trace_id("bot"), "reply", "failed", "自动回复发送失败", reason="send_reply_failed", extra={"session_name": session_name}) + return True + log_event("WARNING", "bot", "bot.chat_analyze", new_trace_id("bot"), "analyze", "failed", "聊天截图未提取到可入库文本", reason="latest_text_empty", extra={"session_name": session_name, "file_name": analyze_result.file_name, "confidence": analyze_result.confidence, "bubble_side": analyze_result.bubble_side}) + return False + except Exception as e: + log_event("ERROR", "bot", "bot.chat_analyze", new_trace_id("bot"), "snapshot", "failed", "保存聊天快照失败", reason="snapshot_error", extra={"error": str(e)}) + return False + + def run_forever(self): + trace_id = new_trace_id("bot") + self.running = True + log_event("INFO", "bot", "bot.loop", trace_id, "start", "ok", "微信机器人主循环启动") + round_count = 0 + while self.running: + try: + round_count += 1 + window_rect = self.get_window_rect() + if not window_rect: + self._sleep_interruptible(LOOP_INTERVAL) + continue + scan_result = self.session_service.get_all_sessions_with_unread(window_rect, round_count) + sessions, unread_sessions = scan_result.sessions, scan_result.unread_sessions + if unread_sessions: + pass + if not unread_sessions: + self._sleep_interruptible(LOOP_INTERVAL) + continue + session = unread_sessions[0] + if not self.running: + self._sleep_interruptible(LOOP_INTERVAL) + continue + if self.session_service.should_skip_session_by_ocr( + session=session, + blocked_row_cache=self.blocked_row_cache, + save_blocked_row_cache=self.save_blocked_row_cache, + ): + self._sleep_interruptible(LOOP_INTERVAL) + continue + expected_list_title = (session.get('list_ocr_title') or '').strip() + expected_row_idx = session.get('row_idx') + precheck_scan = self.session_service.get_all_sessions_with_unread(window_rect, round_count) + precheck_unread = precheck_scan.unread_sessions + if not precheck_unread: + self._sleep_interruptible(LOOP_INTERVAL) + continue + precheck_first = precheck_unread[0] + self.session_service.should_skip_session_by_ocr( + session=precheck_first, + blocked_row_cache=self.blocked_row_cache, + save_blocked_row_cache=self.save_blocked_row_cache, + ) + current_list_title = (precheck_first.get('list_ocr_title') or '').strip() + current_row_idx = precheck_first.get('row_idx') + same_list_session = False + if expected_list_title and current_list_title: + same_list_session = self.session_service.is_same_session(expected_list_title, current_list_title) + elif expected_row_idx is not None and current_row_idx is not None: + same_list_session = int(expected_row_idx) == int(current_row_idx) + if not same_list_session: + self._sleep_interruptible(LOOP_INTERVAL) + continue + session = precheck_first + self.click_unread_session(session) + if not self.running: + self._sleep_interruptible(LOOP_INTERVAL) + continue + if self.session_service.should_skip_current_session( + window_rect=window_rect, + session=session, + blocked_row_cache=self.blocked_row_cache, + save_blocked_row_cache=self.save_blocked_row_cache, + ): + self._sleep_interruptible(LOOP_INTERVAL) + continue + snapshot_ok = self.save_current_chat_snapshot( + window_rect, + round_count, + session['row_idx'], + expected_session_name=expected_list_title, + expected_list_title=expected_list_title, + ) + if not snapshot_ok: + pass + else: + self._sleep_interruptible(CONTACT_SWITCH_DELAY) + self._sleep_interruptible(LOOP_INTERVAL) + except Exception as e: + log_event("ERROR", "bot", "bot.loop", trace_id, "loop", "failed", "微信机器人主循环异常", reason="loop_error", extra={"error": str(e), "round": round_count}) + self._sleep_interruptible(LOOP_ERROR_DELAY) + + def stop(self): + self.running = False + log_event("INFO", "bot", "bot.loop", new_trace_id("bot"), "stop", "ok", "微信机器人主循环停止") + + +if __name__ == "__main__": + try: + bot = WechatMultiChatBot() + bot.run_forever() + except KeyboardInterrupt: + bot.stop() + except Exception as e: + print(f"错误: {e}") diff --git a/app/presentation/__init__.py b/app/presentation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/presentation/main_window.py b/app/presentation/main_window.py new file mode 100644 index 0000000..26ab147 --- /dev/null +++ b/app/presentation/main_window.py @@ -0,0 +1,238 @@ +import os +import sys +import threading +from urllib import parse, request + +import requests +from PySide6.QtCore import QTimer, Qt, QObject, Slot +from PySide6.QtWidgets import QMainWindow, QWidget, QVBoxLayout, QMessageBox + +from app.application.services import AppConfig, BackendRuntime, FrontendRuntime +from app.presentation.shell import LoadingWindowController, WebViewShellController + +print(f"[GUI] Python executable: {sys.executable}") + +try: + from PySide6.QtWebEngineWidgets import QWebEngineView + from PySide6.QtWebChannel import QWebChannel + WEB_ENGINE_AVAILABLE = True +except Exception: + WEB_ENGINE_AVAILABLE = False + QWebEngineView = None + QWebChannel = None + + +class WindowBridge(QObject): + def __init__(self, main_window): + super().__init__() + self.main_window = main_window + + @Slot() + def open_devtools(self): + self.main_window.open_devtools() + + @Slot() + def minimize(self): + self.main_window.showMinimized() + + @Slot() + def maximize_or_restore(self): + if self.main_window.isMaximized(): + self.main_window.showNormal() + else: + self.main_window.showMaximized() + + @Slot() + def close_window(self): + self.main_window.close() + + @Slot() + def start_move(self): + wh = self.main_window.windowHandle() + if wh is not None: + wh.startSystemMove() + + +class MainWindow(QMainWindow): + def post_settings(self, **kwargs): + if not self.base_url: + return + try: + payload = {"action": "settings_set"} + for k, v in kwargs.items(): + payload[k] = "1" if v is True else "0" if v is False else str(v) + data = parse.urlencode(payload).encode("utf-8") + req = request.Request(self.base_url + "/api/rules", data=data, method="POST") + with request.urlopen(req, timeout=2): + pass + except Exception: + pass + + def __init__(self): + super().__init__() + self.setWindowTitle("识流 AI 助手") + self.resize(1280, 920) + self.setWindowFlags(Qt.FramelessWindowHint | Qt.Window) + self.hide() + + self.config = AppConfig() + self.backend_runtime = BackendRuntime(self.config) + self.frontend_runtime = FrontendRuntime(self.config, self.backend_runtime) + self.base_url = os.getenv("APP_BASE_URL", self.backend_runtime.base_url) + self.backend_process = None + self.backend_started_by_gui = False + self.backend_boot_thread = None + self.web_channel = None + self.window_bridge = None + self.loading = LoadingWindowController() + self.web_shell = None + self.frontend_entry_url = "" + + central = QWidget() + central.setStyleSheet("background:#eef2f7;") + self.setCentralWidget(central) + root = QVBoxLayout(central) + root.setContentsMargins(0, 0, 0, 0) + root.setSpacing(0) + + self.web = None + self.devtools_view = None + if WEB_ENGINE_AVAILABLE: + self.web = QWebEngineView() + self.web.setStyleSheet("background:#eef2f7;") + root.addWidget(self.web, 1) + self.web_channel = QWebChannel(self.web.page()) + self.window_bridge = WindowBridge(self) + self.web_channel.registerObject("windowBridge", self.window_bridge) + self.web.page().setWebChannel(self.web_channel) + self.web.loadFinished.connect(self.on_main_page_loaded) + self.web_shell = WebViewShellController(self.web) + + self.listener_sync_timer = QTimer(self) + self.listener_sync_timer.setInterval(30000) + self.listener_sync_timer.timeout.connect(self.sync_listener_state) + self._syncing_listener_state = False + + self.backend_ready_timer = QTimer(self) + self.backend_ready_timer.setInterval(100) + self.backend_ready_timer.timeout.connect(self.consume_backend_boot_result) + self._backend_boot_result = None + + self.loading.show() + self.start_backend() + + def get_settings(self): + if not self.base_url: + return {} + try: + url = self.base_url + "/api/rules?action=settings_get" + with request.urlopen(url, timeout=2) as resp: + data = resp.read().decode("utf-8") + import json + payload = json.loads(data) + return payload if isinstance(payload, dict) else {} + except Exception: + return {} + + def sync_listener_state(self): + if self._syncing_listener_state: + return + self._syncing_listener_state = True + try: + if not self.base_url: + return + requests.get(self.base_url + "/api/bot/status", timeout=2) + except Exception: + pass + finally: + self._syncing_listener_state = False + + def start_backend(self): + self.base_url = self.backend_runtime.base_url + self._backend_boot_result = None + self.backend_boot_thread = threading.Thread(target=self._boot_backend_worker, daemon=True) + self.backend_boot_thread.start() + self.backend_ready_timer.start() + + def _boot_backend_worker(self): + try: + if self.backend_runtime.is_backend_alive(): + self.backend_started_by_gui = False + self._backend_boot_result = {"ok": True, "url": self.base_url} + return + process = self.backend_runtime.launch_backend_process() + self.backend_process = process + self.backend_started_by_gui = True + ok, message = self.frontend_runtime.wait_for_backend(process=process) + if ok: + self._backend_boot_result = {"ok": True, "url": self.base_url} + else: + self._backend_boot_result = {"ok": False, "message": message} + except Exception as exc: + self._backend_boot_result = {"ok": False, "message": str(exc)} + + def consume_backend_boot_result(self): + if self._backend_boot_result is None: + return + result = self._backend_boot_result + self._backend_boot_result = None + self.backend_ready_timer.stop() + if result.get("ok"): + self.on_backend_started(result["url"]) + return + self.on_backend_failed(result.get("message") or "后台启动失败") + + def on_backend_started(self, url): + self.base_url = url + self.frontend_entry_url = self.frontend_runtime.resolve_frontend_entry_url(url) + self.reload_admin_page() + self.listener_sync_timer.start() + + def on_backend_failed(self, msg): + self.loading.close() + QMessageBox.critical(self, "后台错误", msg) + + def reload_admin_page(self): + self.web_shell.load(self.frontend_entry_url) + + def on_main_page_loaded(self, ok): + if not self.web_shell.mark_loaded(ok): + return + self.loading.finish_with(self._finish_show_main) + + def _finish_show_main(self): + if not self.web_shell.can_finish(): + return + self.web_shell.finish() + self.show() + self.raise_() + self.activateWindow() + QTimer.singleShot(60, self.loading.close) + + def open_devtools(self): + if self.web is None: + return + if self.devtools_view is None: + self.devtools_view = QWebEngineView() + self.devtools_view.setWindowTitle("页面调试控制台") + self.devtools_view.resize(1100, 760) + self.web.page().setDevToolsPage(self.devtools_view.page()) + self.devtools_view.show() + self.devtools_view.raise_() + self.devtools_view.activateWindow() + + def closeEvent(self, event): + try: + self.listener_sync_timer.stop() + except Exception: + pass + try: + self.backend_ready_timer.stop() + except Exception: + pass + try: + if self.backend_started_by_gui: + self.backend_runtime.terminate_backend_process(self.backend_process) + except Exception: + pass + super().closeEvent(event) diff --git a/app/presentation/shell.py b/app/presentation/shell.py new file mode 100644 index 0000000..883c858 --- /dev/null +++ b/app/presentation/shell.py @@ -0,0 +1,95 @@ +import time + +from PySide6.QtCore import QTimer, Qt, QUrl +from PySide6.QtGui import QGuiApplication +from PySide6.QtWidgets import QWidget, QVBoxLayout, QLabel, QProgressBar + + +class LoadingWindowController: + def __init__(self): + self.loading_window = None + self.loading_min_ms = 700 + self.loading_started_ms = 0.0 + + def show(self): + self.loading_started_ms = time.time() * 1000 + if self.loading_window is not None: + self.loading_window.show() + self.loading_window.raise_() + self.loading_window.activateWindow() + return self.loading_window + win = QWidget() + win.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint) + win.setAttribute(Qt.WA_DeleteOnClose, True) + win.resize(560, 220) + screen = QGuiApplication.primaryScreen() + if screen is not None: + geo = screen.availableGeometry() + win.move(geo.center().x() - win.width() // 2, geo.center().y() - win.height() // 2) + win.setStyleSheet("background:qlineargradient(x1:0,y1:0,x2:0,y2:1, stop:0 #f8fbff, stop:1 #eef4fb);border:1px solid #dbe7f5;border-radius:16px;") + lay = QVBoxLayout(win) + lay.setContentsMargins(30, 28, 30, 28) + lay.setSpacing(10) + + title = QLabel("识流 AI 助手") + title.setStyleSheet("font-size:18px;font-weight:700;color:#0f172a;") + label = QLabel("正在启动服务与管理台…") + label.setStyleSheet("font-size:14px;color:#334155;") + hint = QLabel("首次启动会稍慢一点,请稍候") + hint.setStyleSheet("font-size:12px;color:#64748b;") + + bar = QProgressBar() + bar.setRange(0, 0) + bar.setTextVisible(False) + bar.setFixedHeight(8) + bar.setStyleSheet("QProgressBar{background:#e5edf8;border:0;border-radius:4px;}QProgressBar::chunk{background:qlineargradient(x1:0,y1:0,x2:1,y2:0, stop:0 #22c1c3, stop:1 #3b82f6);border-radius:4px;}") + + lay.addWidget(title) + lay.addWidget(label) + lay.addSpacing(4) + lay.addWidget(bar) + lay.addWidget(hint) + lay.addStretch(1) + + self.loading_window = win + self.loading_window.show() + self.loading_window.raise_() + self.loading_window.activateWindow() + return self.loading_window + + def close(self): + if self.loading_window is not None: + self.loading_window.close() + self.loading_window = None + + def finish_with(self, callback): + elapsed = int(time.time() * 1000 - self.loading_started_ms) if self.loading_started_ms else self.loading_min_ms + remain = max(0, self.loading_min_ms - elapsed) + QTimer.singleShot(remain + 120, callback) + + +class WebViewShellController: + def __init__(self, web_view): + self.web_view = web_view + self.main_page_ready = False + self.expecting_admin_load = False + + def load(self, entry_url): + if self.web_view is None: + return + self.main_page_ready = False + self.expecting_admin_load = True + self.web_view.setStyleSheet("background:#eef2f7;") + self.web_view.load(QUrl(entry_url)) + + def mark_loaded(self, ok): + if not self.expecting_admin_load or not ok: + return False + self.main_page_ready = True + return True + + def can_finish(self): + return self.main_page_ready + + def finish(self): + self.expecting_admin_load = False diff --git a/backend_main.py b/backend_main.py new file mode 100644 index 0000000..5a2efa5 --- /dev/null +++ b/backend_main.py @@ -0,0 +1,46 @@ +import os +import sys +from pathlib import Path + +from app.application.services import AppConfig +from app.infrastructure.backend import start_backend + +PROJECT_ROOT = Path(__file__).resolve().parent +VENV_ROOT = PROJECT_ROOT / ".venv" +VENV_DIR = VENV_ROOT / "Scripts" +VENV_PYTHON = VENV_DIR / "python.exe" + + +def _resolve(path): + try: + return Path(path).resolve() + except Exception: + return None + + +def _running_in_project_venv(): + current_prefix = _resolve(sys.prefix) + if current_prefix == _resolve(VENV_ROOT): + return True + current_executable = _resolve(sys.executable) + return current_executable == _resolve(VENV_PYTHON) + + +def ensure_project_venv(): + if _running_in_project_venv(): + return + if os.environ.get("OPENCLAW_PROJECT_VENV_REEXEC") == "1": + raise RuntimeError("重启后仍未进入项目 .venv,请检查 .venv 是否损坏") + if not VENV_PYTHON.exists(): + raise RuntimeError(f"未找到项目 .venv 解释器: {VENV_PYTHON}") + os.environ["OPENCLAW_PROJECT_VENV_REEXEC"] = "1" + os.chdir(str(PROJECT_ROOT)) + os.execv(str(VENV_PYTHON), [str(VENV_PYTHON), str(PROJECT_ROOT / "backend_main.py")]) + + +ensure_project_venv() + + +if __name__ == "__main__": + config = AppConfig() + start_backend(host=config.host, port=config.port) diff --git a/frontend/dist/assets/core-DhEqZVGG.js b/frontend/dist/assets/core-DhEqZVGG.js new file mode 100644 index 0000000..54430e0 --- /dev/null +++ b/frontend/dist/assets/core-DhEqZVGG.js @@ -0,0 +1 @@ +function t(n,e,i,s){if(typeof e=="function"?n!==e||!s:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?s:i==="a"?s.call(n):s?s.value:e.get(n)}function c(n,e,i,s,_){if(typeof e=="function"?n!==e||!0:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(n,i),i}var a,r,o,l,u;const d="__TAURI_TO_IPC_KEY__";function w(n,e=!1){return window.__TAURI_INTERNALS__.transformCallback(n,e)}class g{constructor(e){a.set(this,void 0),r.set(this,0),o.set(this,[]),l.set(this,void 0),c(this,a,e||(()=>{})),this.id=w(i=>{const s=i.index;if("end"in i){s==t(this,r,"f")?this.cleanupCallback():c(this,l,s);return}const _=i.message;if(s==t(this,r,"f")){for(t(this,a,"f").call(this,_),c(this,r,t(this,r,"f")+1);t(this,r,"f")in t(this,o,"f");){const p=t(this,o,"f")[t(this,r,"f")];t(this,a,"f").call(this,p),delete t(this,o,"f")[t(this,r,"f")],c(this,r,t(this,r,"f")+1)}t(this,r,"f")===t(this,l,"f")&&this.cleanupCallback()}else t(this,o,"f")[s]=_})}cleanupCallback(){window.__TAURI_INTERNALS__.unregisterCallback(this.id)}set onmessage(e){c(this,a,e)}get onmessage(){return t(this,a,"f")}[(a=new WeakMap,r=new WeakMap,o=new WeakMap,l=new WeakMap,d)](){return`__CHANNEL__:${this.id}`}toJSON(){return this[d]()}}class f{constructor(e,i,s){this.plugin=e,this.event=i,this.channelId=s}async unregister(){return h(`plugin:${this.plugin}|remove_listener`,{event:this.event,channelId:this.channelId})}}async function m(n,e,i){const s=new g(i);try{return await h(`plugin:${n}|register_listener`,{event:e,handler:s}),new f(n,e,s.id)}catch{return await h(`plugin:${n}|registerListener`,{event:e,handler:s}),new f(n,e,s.id)}}async function I(n){return h(`plugin:${n}|check_permissions`)}async function C(n){return h(`plugin:${n}|request_permissions`)}async function h(n,e={},i){return window.__TAURI_INTERNALS__.invoke(n,e,i)}function T(n,e="asset"){return window.__TAURI_INTERNALS__.convertFileSrc(n,e)}class k{get rid(){return t(this,u,"f")}constructor(e){u.set(this,void 0),c(this,u,e)}async close(){return h("plugin:resources|close",{rid:this.rid})}}u=new WeakMap;function E(){return!!(globalThis||window).isTauri}export{g as Channel,f as PluginListener,k as Resource,d as SERIALIZE_TO_IPC_FN,m as addPluginListener,I as checkPermissions,T as convertFileSrc,h as invoke,E as isTauri,C as requestPermissions,w as transformCallback}; diff --git a/frontend/dist/assets/index-Avv0D5es.css b/frontend/dist/assets/index-Avv0D5es.css new file mode 100644 index 0000000..04f7c2a --- /dev/null +++ b/frontend/dist/assets/index-Avv0D5es.css @@ -0,0 +1 @@ +:root{--bg: #f2f4f7;--panel: #ffffff;--line: #e5e7eb;--text: #111827;--muted: #6b7280;--brand: #22c1c3}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:linear-gradient(180deg,#f5f7fb,#eef2f7);color:var(--text);font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}button,input,select,textarea{font:inherit}.page-shell{height:100vh;overflow:hidden}.content-root{height:calc(100vh - 48px);overflow:hidden;display:flex;flex-direction:column}.content-scroll{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.topbar{height:48px;background:#ffffffeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20;-webkit-user-select:none;user-select:none}.drag-region{height:100%;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:default}.inner{width:min(1320px,calc(100vw - 24px));margin:0 auto}.window-actions{display:flex;align-items:center;gap:4px}.win-btn{width:32px;height:28px;border-radius:8px;border:1px solid #e7ecf2;background:#fff;color:#4b5563;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;cursor:pointer}.win-btn:hover{background:#f5f7fb}.win-btn.close:hover{background:#fee2e2;color:#991b1b;border-color:#fecaca}.panel{background:var(--panel);border:1px solid #edf0f4;border-radius:14px;box-shadow:0 6px 18px #0f172a0a}.hero{background:linear-gradient(120deg,#22c1c326,#7c3aed14);border:1px solid #dff4f5}.tab-wrap{flex:1;min-height:0;display:flex;flex-direction:column;background:#fff;border:1px solid #e8ecf2;border-radius:12px;padding:8px 12px 0;box-shadow:0 6px 14px #0f172a08;overflow:hidden}.app-tabs,.app-tabs .n-tabs-nav-scroll-content,.app-tabs .n-tabs-pane-wrapper,.app-tabs .n-tab-pane,.app-tab-pane{min-height:0}.app-tabs{flex:1;min-height:0;display:flex;flex-direction:column}.app-tabs .n-tabs-nav{flex:0 0 auto}.app-tabs .n-tabs-pane-wrapper{flex:1;min-height:0}.app-tabs .n-tab-pane,.app-tab-pane{height:100%;display:flex;flex-direction:column}.app-tab-pane>*{flex:1;min-height:0}.label-title{font-weight:600;font-size:14px;color:#1f2937}.label-desc{font-size:12px;color:#6b7280;margin-top:2px}.row-line{border-bottom:1px dashed #edf1f5;padding:14px 0}.row-line:last-child{border-bottom:0}.compact-card .n-card-header{padding-bottom:8px!important}.compact-card .n-card__content{padding-top:0!important}.panel-view-shell{flex:1;min-height:0;display:flex;flex-direction:column;gap:16px}.logs-view-shell{flex:1;min-height:0;padding:12px 0}.log-panel,.log-panel .n-card__content{flex:1;min-height:0;height:100%;display:flex;flex-direction:column}.log-panel .n-card-header{flex:0 0 auto}.log-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.log-toolbar-right{display:flex;align-items:center;gap:12px;min-width:0}.log-path{color:#6b7280;font-size:12px;max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-stream-wrap{height:clamp(320px,calc(100vh - 320px),680px);min-height:320px;max-height:680px;border:1px solid #e6ebf2;border-radius:12px;background:#0f172a;overflow-y:auto;overflow-x:hidden}.log-stream{margin:0;padding:14px 16px;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word;font-family:Consolas,SFMono-Regular,Monaco,monospace}.log-line{white-space:pre-wrap}.log-line--error{color:#fca5a5}.log-line--warning{color:#fde68a}.log-line--info{color:#bfdbfe}.log-line--debug{color:#cbd5e1} diff --git a/frontend/dist/assets/index-C4rM3269.js b/frontend/dist/assets/index-C4rM3269.js new file mode 100644 index 0000000..aa832d0 --- /dev/null +++ b/frontend/dist/assets/index-C4rM3269.js @@ -0,0 +1,2985 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/window-B1zSvOyk.js","assets/core-DhEqZVGG.js"])))=>i.map(i=>d[i]); +var Qg=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var pT=Qg((cn,un)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&o(l)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function sd(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ht={},Pr=[],Vn=()=>{},Vf=()=>!1,Gl=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ql=e=>e.startsWith("onUpdate:"),_t=Object.assign,dd=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},eb=Object.prototype.hasOwnProperty,st=(e,t)=>eb.call(e,t),We=Array.isArray,$r=e=>Ni(e)==="[object Map]",Kf=e=>Ni(e)==="[object Set]",bc=e=>Ni(e)==="[object Date]",Ke=e=>typeof e=="function",St=e=>typeof e=="string",fn=e=>typeof e=="symbol",ut=e=>e!==null&&typeof e=="object",Uf=e=>(ut(e)||Ke(e))&&Ke(e.then)&&Ke(e.catch),Gf=Object.prototype.toString,Ni=e=>Gf.call(e),tb=e=>Ni(e).slice(8,-1),qf=e=>Ni(e)==="[object Object]",Xl=e=>St(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pi=sd(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Yl=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},nb=/-\w/g,kn=Yl(e=>e.replace(nb,t=>t.slice(1).toUpperCase())),ob=/\B([A-Z])/g,Ao=Yl(e=>e.replace(ob,"-$1").toLowerCase()),Xf=Yl(e=>e.charAt(0).toUpperCase()+e.slice(1)),Da=Yl(e=>e?`on${Xf(e)}`:""),jn=(e,t)=>!Object.is(e,t),Ha=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},rb=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ib=e=>{const t=St(e)?Number(e):NaN;return isNaN(t)?e:t};let mc;const Zl=()=>mc||(mc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function cd(e){if(We(e)){const t={};for(let n=0;n{if(n){const o=n.split(ab);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Ar(e){let t="";if(St(e))t=e;else if(We(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Xo=e=>St(e)?e:e==null?"":We(e)||ut(e)&&(e.toString===Gf||!Ke(e.toString))?Jf(e)?Xo(e.value):JSON.stringify(e,Qf,2):String(e),Qf=(e,t)=>Jf(t)?Qf(e,t.value):$r(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],i)=>(n[Na(o,i)+" =>"]=r,n),{})}:Kf(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Na(n))}:fn(t)?Na(t):ut(t)&&!We(t)&&!qf(t)?String(t):t,Na=(e,t="")=>{var n;return fn(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let At;class hb{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&At&&(At.active?(this.parent=At,this.index=(At.scopes||(At.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(At===this)At=this.prevScope;else{let t=At;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(gi){let t=gi;for(gi=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;vi;){let t=vi;for(vi=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function oh(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function rh(e){let t,n=e.depsTail,o=n;for(;o;){const r=o.prevDep;o.version===-1?(o===n&&(n=r),pd(o),vb(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=r}e.deps=t,e.depsTail=n}function ks(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ih(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ih(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Pi)||(e.globalVersion=Pi,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ks(e))))return;e.flags|=2;const t=e.dep,n=bt,o=Pn;bt=e,Pn=!0;try{oh(e);const r=e.fn(e._value);(t.version===0||jn(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{bt=n,Pn=o,rh(e),e.flags&=-3}}function pd(e,t=!1){const{dep:n,prevSub:o,nextSub:r}=e;if(o&&(o.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)pd(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function vb(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Pn=!0;const lh=[];function uo(){lh.push(Pn),Pn=!1}function fo(){const e=lh.pop();Pn=e===void 0?!0:e}function yc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=bt;bt=void 0;try{t()}finally{bt=n}}}let Pi=0;class gb{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class vd{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!bt||!Pn||bt===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==bt)n=this.activeLink=new gb(bt,this),bt.deps?(n.prevDep=bt.depsTail,bt.depsTail.nextDep=n,bt.depsTail=n):bt.deps=bt.depsTail=n,ah(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=bt.depsTail,n.nextDep=void 0,bt.depsTail.nextDep=n,bt.depsTail=n,bt.deps===n&&(bt.deps=o)}return n}trigger(t){this.version++,Pi++,this.notify(t)}notify(t){fd();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{hd()}}}function ah(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)ah(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Sl=new WeakMap,er=Symbol(""),Ps=Symbol(""),$i=Symbol("");function Wt(e,t,n){if(Pn&&bt){let o=Sl.get(e);o||Sl.set(e,o=new Map);let r=o.get(n);r||(o.set(n,r=new vd),r.map=o,r.key=n),r.track()}}function ao(e,t,n,o,r,i){const l=Sl.get(e);if(!l){Pi++;return}const a=s=>{s&&s.trigger()};if(fd(),t==="clear")l.forEach(a);else{const s=We(e),d=s&&Xl(n);if(s&&n==="length"){const c=Number(o);l.forEach((f,v)=>{(v==="length"||v===$i||!fn(v)&&v>=c)&&a(f)})}else switch((n!==void 0||l.has(void 0))&&a(l.get(n)),d&&a(l.get($i)),t){case"add":s?d&&a(l.get("length")):(a(l.get(er)),$r(e)&&a(l.get(Ps)));break;case"delete":s||(a(l.get(er)),$r(e)&&a(l.get(Ps)));break;case"set":$r(e)&&a(l.get(er));break}}hd()}function bb(e,t){const n=Sl.get(e);return n&&n.get(t)}function mr(e){const t=it(e);return t===e?t:(Wt(t,"iterate",$i),mn(e)?t:t.map(ho))}function gd(e){return Wt(e=it(e),"iterate",$i),e}function Hn(e,t){return To(e)?_i(_r(e)?ho(t):t):ho(t)}const mb={__proto__:null,[Symbol.iterator](){return Wa(this,Symbol.iterator,e=>Hn(this,e))},concat(...e){return mr(this).concat(...e.map(t=>We(t)?mr(t):t))},entries(){return Wa(this,"entries",e=>(e[1]=Hn(this,e[1]),e))},every(e,t){return no(this,"every",e,t,void 0,arguments)},filter(e,t){return no(this,"filter",e,t,n=>n.map(o=>Hn(this,o)),arguments)},find(e,t){return no(this,"find",e,t,n=>Hn(this,n),arguments)},findIndex(e,t){return no(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return no(this,"findLast",e,t,n=>Hn(this,n),arguments)},findLastIndex(e,t){return no(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return no(this,"forEach",e,t,void 0,arguments)},includes(...e){return Va(this,"includes",e)},indexOf(...e){return Va(this,"indexOf",e)},join(e){return mr(this).join(e)},lastIndexOf(...e){return Va(this,"lastIndexOf",e)},map(e,t){return no(this,"map",e,t,void 0,arguments)},pop(){return Jr(this,"pop")},push(...e){return Jr(this,"push",e)},reduce(e,...t){return xc(this,"reduce",e,t)},reduceRight(e,...t){return xc(this,"reduceRight",e,t)},shift(){return Jr(this,"shift")},some(e,t){return no(this,"some",e,t,void 0,arguments)},splice(...e){return Jr(this,"splice",e)},toReversed(){return mr(this).toReversed()},toSorted(e){return mr(this).toSorted(e)},toSpliced(...e){return mr(this).toSpliced(...e)},unshift(...e){return Jr(this,"unshift",e)},values(){return Wa(this,"values",e=>Hn(this,e))}};function Wa(e,t,n){const o=gd(e),r=o[t]();return o!==e&&!mn(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=n(i.value)),i}),r}const yb=Array.prototype;function no(e,t,n,o,r,i){const l=gd(e),a=l!==e&&!mn(e),s=l[t];if(s!==yb[t]){const f=s.apply(e,i);return a?ho(f):f}let d=n;l!==e&&(a?d=function(f,v){return n.call(this,Hn(e,f),v,e)}:n.length>2&&(d=function(f,v){return n.call(this,f,v,e)}));const c=s.call(l,d,o);return a&&r?r(c):c}function xc(e,t,n,o){const r=gd(e),i=r!==e&&!mn(e);let l=n,a=!1;r!==e&&(i?(a=o.length===0,l=function(d,c,f){return a&&(a=!1,d=Hn(e,d)),n.call(this,d,Hn(e,c),f,e)}):n.length>3&&(l=function(d,c,f){return n.call(this,d,c,f,e)}));const s=r[t](l,...o);return a?Hn(e,s):s}function Va(e,t,n){const o=it(e);Wt(o,"iterate",$i);const r=o[t](...n);return(r===-1||r===!1)&&Jl(n[0])?(n[0]=it(n[0]),o[t](...n)):r}function Jr(e,t,n=[]){uo(),fd();const o=it(e)[t].apply(e,n);return hd(),fo(),o}const xb=sd("__proto__,__v_isRef,__isVue"),sh=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(fn));function wb(e){fn(e)||(e=String(e));const t=it(this);return Wt(t,"has",e),t.hasOwnProperty(e)}class dh{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return o===(r?i?Fb:hh:i?fh:uh).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const l=We(t);if(!r){let s;if(l&&(s=mb[n]))return s;if(n==="hasOwnProperty")return wb}const a=Reflect.get(t,n,Ot(t)?t:o);if((fn(n)?sh.has(n):xb(n))||(r||Wt(t,"get",n),i))return a;if(Ot(a)){const s=l&&Xl(n)?a:a.value;return r&&ut(s)?zn(s):s}return ut(a)?r?zn(a):_n(a):a}}class ch extends dh{constructor(t=!1){super(!1,t)}set(t,n,o,r){let i=t[n];const l=We(t)&&Xl(n);if(!this._isShallow){const d=To(i);if(!mn(o)&&!To(o)&&(i=it(i),o=it(o)),!l&&Ot(i)&&!Ot(o))return d||(i.value=o),!0}const a=l?Number(n)e,Ji=e=>Reflect.getPrototypeOf(e);function Pb(e,t,n){return function(...o){const r=this.__v_raw,i=it(r),l=$r(i),a=e==="entries"||e===Symbol.iterator&&l,s=e==="keys"&&l,d=r[e](...o),c=n?$s:t?_i:ho;return!t&&Wt(i,"iterate",s?Ps:er),_t(Object.create(d),{next(){const{value:f,done:v}=d.next();return v?{value:f,done:v}:{value:a?[c(f[0]),c(f[1])]:c(f),done:v}}})}}function Qi(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function $b(e,t){const n={get(r){const i=this.__v_raw,l=it(i),a=it(r);e||(jn(r,a)&&Wt(l,"get",r),Wt(l,"get",a));const{has:s}=Ji(l),d=t?$s:e?_i:ho;if(s.call(l,r))return d(i.get(r));if(s.call(l,a))return d(i.get(a));i!==l&&i.get(r)},get size(){const r=this.__v_raw;return!e&&Wt(it(r),"iterate",er),r.size},has(r){const i=this.__v_raw,l=it(i),a=it(r);return e||(jn(r,a)&&Wt(l,"has",r),Wt(l,"has",a)),r===a?i.has(r):i.has(r)||i.has(a)},forEach(r,i){const l=this,a=l.__v_raw,s=it(a),d=t?$s:e?_i:ho;return!e&&Wt(s,"iterate",er),a.forEach((c,f)=>r.call(i,d(c),d(f),l))}};return _t(n,e?{add:Qi("add"),set:Qi("set"),delete:Qi("delete"),clear:Qi("clear")}:{add(r){const i=it(this),l=Ji(i),a=it(r),s=!t&&!mn(r)&&!To(r)?a:r;return l.has.call(i,s)||jn(r,s)&&l.has.call(i,r)||jn(a,s)&&l.has.call(i,a)||(i.add(s),ao(i,"add",s,s)),this},set(r,i){!t&&!mn(i)&&!To(i)&&(i=it(i));const l=it(this),{has:a,get:s}=Ji(l);let d=a.call(l,r);d||(r=it(r),d=a.call(l,r));const c=s.call(l,r);return l.set(r,i),d?jn(i,c)&&ao(l,"set",r,i):ao(l,"add",r,i),this},delete(r){const i=it(this),{has:l,get:a}=Ji(i);let s=l.call(i,r);s||(r=it(r),s=l.call(i,r)),a&&a.call(i,r);const d=i.delete(r);return s&&ao(i,"delete",r,void 0),d},clear(){const r=it(this),i=r.size!==0,l=r.clear();return i&&ao(r,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Pb(r,e,t)}),n}function bd(e,t){const n=$b(e,t);return(o,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(st(n,r)&&r in o?n:o,r,i)}const _b={get:bd(!1,!1)},zb={get:bd(!1,!0)},Tb={get:bd(!0,!1)},uh=new WeakMap,fh=new WeakMap,hh=new WeakMap,Fb=new WeakMap;function Ob(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Eb(e){return e.__v_skip||!Object.isExtensible(e)?0:Ob(tb(e))}function _n(e){return To(e)?e:md(e,!1,Sb,_b,uh)}function Mb(e){return md(e,!1,kb,zb,fh)}function zn(e){return md(e,!0,Rb,Tb,hh)}function md(e,t,n,o,r){if(!ut(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=Eb(e);if(i===0)return e;const l=r.get(e);if(l)return l;const a=new Proxy(e,i===2?o:n);return r.set(e,a),a}function _r(e){return To(e)?_r(e.__v_raw):!!(e&&e.__v_isReactive)}function To(e){return!!(e&&e.__v_isReadonly)}function mn(e){return!!(e&&e.__v_isShallow)}function Jl(e){return e?!!e.__v_raw:!1}function it(e){const t=e&&e.__v_raw;return t?it(t):e}function _s(e){return!st(e,"__v_skip")&&Object.isExtensible(e)&&Yf(e,"__v_skip",!0),e}const ho=e=>ut(e)?_n(e):e,_i=e=>ut(e)?zn(e):e;function Ot(e){return e?e.__v_isRef===!0:!1}function E(e){return vh(e,!1)}function ph(e){return vh(e,!0)}function vh(e,t){return Ot(e)?e:new Bb(e,t)}class Bb{constructor(t,n){this.dep=new vd,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:it(t),this._value=n?t:ho(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||mn(t)||To(t);t=o?t:it(t),jn(t,n)&&(this._rawValue=t,this._value=o?t:ho(t),this.dep.trigger())}}function ge(e){return Ot(e)?e.value:e}const Ab={get:(e,t,n)=>t==="__v_raw"?e:ge(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Ot(r)&&!Ot(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function gh(e){return _r(e)?e:new Proxy(e,Ab)}class Ib{constructor(t,n,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=fn(n)?n:String(n),this._raw=it(t);let r=!0,i=t;if(!We(t)||fn(this._key)||!Xl(this._key))do r=!Jl(i)||mn(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=ge(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ot(this._raw[this._key])){const n=this._object[this._key];if(Ot(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return bb(this._raw,this._key)}}class Lb{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function we(e,t,n){return Ot(e)?e:Ke(e)?new Lb(e):ut(e)&&arguments.length>1?Db(e,t,n):E(e)}function Db(e,t,n){return new Ib(e,t,n)}class Hb{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new vd(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Pi-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&bt!==this)return nh(this,!0),!0}get value(){const t=this.dep.track();return ih(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Nb(e,t,n=!1){let o,r;return Ke(e)?o=e:(o=e.get,r=e.set),new Hb(o,r,n)}const el={},Rl=new WeakMap;let qo;function jb(e,t=!1,n=qo){if(n){let o=Rl.get(n);o||Rl.set(n,o=[]),o.push(e)}}function Wb(e,t,n=ht){const{immediate:o,deep:r,once:i,scheduler:l,augmentJob:a,call:s}=n,d=S=>r?S:mn(S)||r===!1||r===0?so(S,1):so(S);let c,f,v,g,u=!1,p=!1;if(Ot(e)?(f=()=>e.value,u=mn(e)):_r(e)?(f=()=>d(e),u=!0):We(e)?(p=!0,u=e.some(S=>_r(S)||mn(S)),f=()=>e.map(S=>{if(Ot(S))return S.value;if(_r(S))return d(S);if(Ke(S))return s?s(S,2):S()})):Ke(e)?t?f=s?()=>s(e,2):e:f=()=>{if(v){uo();try{v()}finally{fo()}}const S=qo;qo=c;try{return s?s(e,3,[g]):e(g)}finally{qo=S}}:f=Vn,t&&r){const S=f,x=r===!0?1/0:r;f=()=>so(S(),x)}const b=pb(),m=()=>{c.stop(),b&&b.active&&dd(b.effects,c)};if(i&&t){const S=t;t=(...x)=>{S(...x),m()}}let y=p?new Array(e.length).fill(el):el;const $=S=>{if(!(!(c.flags&1)||!c.dirty&&!S))if(t){const x=c.run();if(r||u||(p?x.some((R,C)=>jn(R,y[C])):jn(x,y))){v&&v();const R=qo;qo=c;try{const C=[x,y===el?void 0:p&&y[0]===el?[]:y,g];y=x,s?s(t,3,C):t(...C)}finally{qo=R}}}else c.run()};return a&&a($),c=new eh(f),c.scheduler=l?()=>l($,!1):$,g=S=>jb(S,!1,c),v=c.onStop=()=>{const S=Rl.get(c);if(S){if(s)s(S,4);else for(const x of S)x();Rl.delete(c)}},t?o?$(!0):y=c.run():l?l($.bind(null,!0),!0):c.run(),m.pause=c.pause.bind(c),m.resume=c.resume.bind(c),m.stop=m,m}function so(e,t=1/0,n){if(t<=0||!ut(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ot(e))so(e.value,t,n);else if(We(e))for(let o=0;o{so(o,t,n)});else if(qf(e)){for(const o in e)so(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&so(e[o],t,n)}return e}function ji(e,t,n,o){try{return o?e(...o):e()}catch(r){Ql(r,t,n)}}function Tn(e,t,n,o){if(Ke(e)){const r=ji(e,t,n,o);return r&&Uf(r)&&r.catch(i=>{Ql(i,t,n)}),r}if(We(e)){const r=[];for(let i=0;i>>1,r=Jt[o],i=zi(r);i=zi(n)?Jt.push(e):Jt.splice(Kb(t),0,e),e.flags|=1,mh()}}function mh(){kl||(kl=bh.then(xh))}function Ub(e){We(e)?zr.push(...e):ko&&e.id===-1?ko.splice(kr+1,0,e):e.flags&1||(zr.push(e),e.flags|=1),mh()}function wc(e,t,n=Ln+1){for(;nzi(n)-zi(o));if(zr.length=0,ko){ko.push(...t);return}for(ko=t,kr=0;kre.id==null?e.flags&2?-1:1/0:e.id;function xh(e){try{for(Ln=0;Ln{o._d&&zl(-1);const i=Pl(t);let l;try{l=e(...r)}finally{Pl(i),o._d&&zl(1)}return l};return o._n=!0,o._c=!0,o._d=!0,o}function qn(e,t){if(Ut===null)return e;const n=la(Ut),o=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&Ke(t)?t.call(o&&o.proxy):t}}const Gb=Symbol.for("v-scx"),qb=()=>Ee(Gb);function en(e,t){return xd(e,null,t)}function tt(e,t,n){return xd(e,t,n)}function xd(e,t,n=ht){const{immediate:o,deep:r,flush:i,once:l}=n,a=_t({},n),s=t&&o||!t&&i!=="post";let d;if(Ei){if(i==="sync"){const g=qb();d=g.__watcherHandles||(g.__watcherHandles=[])}else if(!s){const g=()=>{};return g.stop=Vn,g.resume=Vn,g.pause=Vn,g}}const c=Qt;a.call=(g,u,p)=>Tn(g,c,u,p);let f=!1;i==="post"?a.scheduler=g=>{Zt(g,c&&c.suspense)}:i!=="sync"&&(f=!0,a.scheduler=(g,u)=>{u?g():yd(g)}),a.augmentJob=g=>{t&&(g.flags|=4),f&&(g.flags|=2,c&&(g.id=c.uid,g.i=c))};const v=Wb(e,t,a);return Ei&&(d?d.push(v):s&&v()),v}function Xb(e,t,n){const o=this.proxy,r=St(e)?e.includes(".")?Ch(o,e):()=>o[e]:e.bind(o,o);let i;Ke(t)?i=t:(i=t.handler,n=t);const l=Ki(this),a=xd(r,i.bind(o),n);return l(),a}function Ch(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;re.__isTeleport,Yo=e=>e&&(e.disabled||e.disabled===""),Yb=e=>e&&(e.defer||e.defer===""),Cc=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Sc=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,zs=(e,t)=>{const n=e&&e.to;return St(n)?t?t(n):null:n},Zb={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,i,l,a,s,d){const{mc:c,pc:f,pbc:v,o:{insert:g,querySelector:u,createText:p,createComment:b,parentNode:m}}=d,y=Yo(t.props);let{dynamicChildren:$}=t;const S=(C,w,k)=>{C.shapeFlag&16&&c(C.children,w,k,r,i,l,a,s)},x=(C=t)=>{const w=Yo(C.props),k=C.target=zs(C.props,u),F=Ts(k,C,p,g);k&&(l!=="svg"&&Cc(k)?l="svg":l!=="mathml"&&Sc(k)&&(l="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(k),w||(S(C,k,F),di(C,!1)))},R=C=>{const w=()=>{if(So.get(C)===w){if(So.delete(C),Yo(C.props)){const k=m(C.el)||n;S(C,k,C.anchor),di(C,!0)}x(C)}};So.set(C,w),Zt(w,i)};if(e==null){const C=t.el=p(""),w=t.anchor=p("");if(g(C,n,o),g(w,n,o),Yb(t.props)||i&&i.pendingBranch){R(t);return}y&&(S(t,n,w),di(t,!0)),x()}else{t.el=e.el;const C=t.anchor=e.anchor,w=So.get(e);if(w){w.flags|=8,So.delete(e),R(t);return}t.targetStart=e.targetStart;const k=t.target=e.target,F=t.targetAnchor=e.targetAnchor,M=Yo(e.props),_=M?n:k,T=M?C:F;if(l==="svg"||Cc(k)?l="svg":(l==="mathml"||Sc(k))&&(l="mathml"),$?(v(e.dynamicChildren,$,_,r,i,l,a),kd(e,t,!0)):s||f(e,t,_,T,r,i,l,a,!1),y)M?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):tl(t,n,C,d,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const B=t.target=zs(t.props,u);B&&tl(t,B,null,d,0)}else M&&tl(t,k,F,d,1);di(t,y)}},remove(e,t,n,{um:o,o:{remove:r}},i){const{shapeFlag:l,children:a,anchor:s,targetStart:d,targetAnchor:c,target:f,props:v}=e;let g=i||!Yo(v);const u=So.get(e);if(u&&(u.flags|=8,So.delete(e),g=!1),f&&(r(d),r(c)),i&&r(s),l&16)for(let p=0;p{e.isMounted=!0}),xt(()=>{e.isUnmounting=!0}),e}const vn=[Function,Array],Ph={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:vn,onEnter:vn,onAfterEnter:vn,onEnterCancelled:vn,onBeforeLeave:vn,onLeave:vn,onAfterLeave:vn,onLeaveCancelled:vn,onBeforeAppear:vn,onAppear:vn,onAfterAppear:vn,onAppearCancelled:vn},$h=e=>{const t=e.subTree;return t.component?$h(t.component):t},Qb={name:"BaseTransition",props:Ph,setup(e,{slots:t}){const n=Lo(),o=kh();return()=>{const r=t.default&&wd(t.default(),!0),i=r&&r.length?_h(r):n.subTree?Im():void 0;if(!i)return;const l=it(e),{mode:a}=l;if(o.isLeaving)return Ka(i);const s=Rc(i);if(!s)return Ka(i);let d=Ti(s,l,o,n,f=>d=f);s.type!==$t&&rr(s,d);let c=n.subTree&&Rc(n.subTree);if(c&&c.type!==$t&&!Zo(c,s)&&$h(n).type!==$t){let f=Ti(c,l,o,n);if(rr(c,f),a==="out-in"&&s.type!==$t)return o.isLeaving=!0,f.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,c=void 0},Ka(i);a==="in-out"&&s.type!==$t?f.delayLeave=(v,g,u)=>{const p=zh(o,c);p[String(c.key)]=c,v[Dn]=()=>{g(),v[Dn]=void 0,delete d.delayedLeave,c=void 0},d.delayedLeave=()=>{u(),delete d.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return i}}};function _h(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==$t){t=n;break}}return t}const em=Qb;function zh(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Ti(e,t,n,o,r){const{appear:i,mode:l,persisted:a=!1,onBeforeEnter:s,onEnter:d,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:v,onLeave:g,onAfterLeave:u,onLeaveCancelled:p,onBeforeAppear:b,onAppear:m,onAfterAppear:y,onAppearCancelled:$}=t,S=String(e.key),x=zh(n,e),R=(k,F)=>{k&&Tn(k,o,9,F)},C=(k,F)=>{const M=F[1];R(k,F),We(k)?k.every(_=>_.length<=1)&&M():k.length<=1&&M()},w={mode:l,persisted:a,beforeEnter(k){let F=s;if(!n.isMounted)if(i)F=b||s;else return;k[Dn]&&k[Dn](!0);const M=x[S];M&&Zo(e,M)&&M.el[Dn]&&M.el[Dn](),R(F,[k])},enter(k){if(x[S]===e)return;let F=d,M=c,_=f;if(!n.isMounted)if(i)F=m||d,M=y||c,_=$||f;else return;let T=!1;k[Qr]=D=>{T||(T=!0,D?R(_,[k]):R(M,[k]),w.delayedLeave&&w.delayedLeave(),k[Qr]=void 0)};const B=k[Qr].bind(null,!1);F?C(F,[k,B]):B()},leave(k,F){const M=String(e.key);if(k[Qr]&&k[Qr](!0),n.isUnmounting)return F();R(v,[k]);let _=!1;k[Dn]=B=>{_||(_=!0,F(),B?R(p,[k]):R(u,[k]),k[Dn]=void 0,x[M]===e&&delete x[M])};const T=k[Dn].bind(null,!1);x[M]=e,g?C(g,[k,T]):T()},clone(k){const F=Ti(k,t,n,o,r);return r&&r(F),F}};return w}function Ka(e){if(ta(e))return e=hn(e),e.children=null,e}function Rc(e){if(!ta(e))return Rh(e.type)&&e.children?_h(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Ke(n.default))return n.default()}}function rr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,rr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function wd(e,t=!1,n){let o=[],r=0;for(let i=0;i1)for(let i=0;ibi(p,t&&(We(t)?t[b]:t),n,o,r));return}if(Tr(o)&&!r){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&bi(e,t,n,o.component.subTree);return}const i=o.shapeFlag&4?la(o.component):o.el,l=r?null:i,{i:a,r:s}=e,d=t&&t.r,c=a.refs===ht?a.refs={}:a.refs,f=a.setupState,v=it(f),g=f===ht?Vf:p=>kc(c,p)?!1:st(v,p),u=(p,b)=>!(b&&kc(c,b));if(d!=null&&d!==s){if(Pc(t),St(d))c[d]=null,g(d)&&(f[d]=null);else if(Ot(d)){const p=t;u(d,p.k)&&(d.value=null),p.k&&(c[p.k]=null)}}if(Ke(s))ji(s,a,12,[l,c]);else{const p=St(s),b=Ot(s);if(p||b){const m=()=>{if(e.f){const y=p?g(s)?f[s]:c[s]:u()||!e.k?s.value:c[e.k];if(r)We(y)&&dd(y,i);else if(We(y))y.includes(i)||y.push(i);else if(p)c[s]=[i],g(s)&&(f[s]=c[s]);else{const $=[i];u(s,e.k)&&(s.value=$),e.k&&(c[e.k]=$)}}else p?(c[s]=l,g(s)&&(f[s]=l)):b&&(u(s,e.k)&&(s.value=l),e.k&&(c[e.k]=l))};if(l){const y=()=>{m(),$l.delete(e)};y.id=-1,$l.set(e,y),Zt(y,n)}else Pc(e),m()}}}function Pc(e){const t=$l.get(e);t&&(t.flags|=8,$l.delete(e))}Zl().requestIdleCallback;Zl().cancelIdleCallback;const Tr=e=>!!e.type.__asyncLoader,ta=e=>e.type.__isKeepAlive;function Cd(e,t){Fh(e,"a",t)}function na(e,t){Fh(e,"da",t)}function Fh(e,t,n=Qt){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(oa(t,o,n),n){let r=n.parent;for(;r&&r.parent;)ta(r.parent.vnode)&&tm(o,t,n,r),r=r.parent}}function tm(e,t,n,o){const r=oa(t,e,o,!0);ra(()=>{dd(o[t],r)},n)}function oa(e,t,n=Qt,o=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{uo();const a=Ki(n),s=Tn(t,n,e,l);return a(),fo(),s});return o?r.unshift(i):r.push(i),i}}const po=e=>(t,n=Qt)=>{(!Ei||e==="sp")&&oa(e,(...o)=>t(...o),n)},Io=po("bm"),Ct=po("m"),nm=po("bu"),Oh=po("u"),xt=po("bum"),ra=po("um"),om=po("sp"),rm=po("rtg"),im=po("rtc");function lm(e,t=Qt){oa("ec",e,t)}const am=Symbol.for("v-ndc");function Eh(e,t,n={},o,r){if(Ut.ce||Ut.parent&&Tr(Ut.parent)&&Ut.parent.ce){const d=Object.keys(n).length>0;return Xn(),Oi(nt,null,[Pe("slot",n,o)],d?-2:64)}let i=e[t];i&&i._c&&(i._d=!1),Xn();const l=i&&Mh(i(n)),a=n.key||l&&l.key,s=Oi(nt,{key:(a&&!fn(a)?a:`_${t}`)+(!l&&o?"_fb":"")},l||[],l&&e._===1?64:-2);return s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),i&&i._c&&(i._d=!0),s}function Mh(e){return e.some(t=>Ir(t)?!(t.type===$t||t.type===nt&&!Mh(t.children)):!0)?e:null}const Fs=e=>e?Qh(e)?la(e):Fs(e.parent):null,mi=_t(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Fs(e.parent),$root:e=>Fs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ah(e),$forceUpdate:e=>e.f||(e.f=()=>{yd(e.update)}),$nextTick:e=>e.n||(e.n=Rt.bind(e.proxy)),$watch:e=>Xb.bind(e)}),Ua=(e,t)=>e!==ht&&!e.__isScriptSetup&&st(e,t),sm={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:i,accessCache:l,type:a,appContext:s}=e;if(t[0]!=="$"){const v=l[t];if(v!==void 0)switch(v){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Ua(o,t))return l[t]=1,o[t];if(r!==ht&&st(r,t))return l[t]=2,r[t];if(st(i,t))return l[t]=3,i[t];if(n!==ht&&st(n,t))return l[t]=4,n[t];Os&&(l[t]=0)}}const d=mi[t];let c,f;if(d)return t==="$attrs"&&Wt(e.attrs,"get",""),d(e);if((c=a.__cssModules)&&(c=c[t]))return c;if(n!==ht&&st(n,t))return l[t]=4,n[t];if(f=s.config.globalProperties,st(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:i}=e;return Ua(r,t)?(r[t]=n,!0):o!==ht&&st(o,t)?(o[t]=n,!0):st(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,props:i,type:l}},a){let s;return!!(n[a]||e!==ht&&a[0]!=="$"&&st(e,a)||Ua(t,a)||st(i,a)||st(o,a)||st(mi,a)||st(r.config.globalProperties,a)||(s=l.__cssModules)&&s[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:st(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function $c(e){return We(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Os=!0;function dm(e){const t=Ah(e),n=e.proxy,o=e.ctx;Os=!1,t.beforeCreate&&_c(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:l,watch:a,provide:s,inject:d,created:c,beforeMount:f,mounted:v,beforeUpdate:g,updated:u,activated:p,deactivated:b,beforeDestroy:m,beforeUnmount:y,destroyed:$,unmounted:S,render:x,renderTracked:R,renderTriggered:C,errorCaptured:w,serverPrefetch:k,expose:F,inheritAttrs:M,components:_,directives:T,filters:B}=t;if(d&&cm(d,o,null),l)for(const N in l){const V=l[N];Ke(V)&&(o[N]=V.bind(n))}if(r){const N=r.call(n,n);ut(N)&&(e.data=_n(N))}if(Os=!0,i)for(const N in i){const V=i[N],ie=Ke(V)?V.bind(n,n):Ke(V.get)?V.get.bind(n,n):Vn,he=!Ke(V)&&Ke(V.set)?V.set.bind(n):Vn,J=O({get:ie,set:he});Object.defineProperty(o,N,{enumerable:!0,configurable:!0,get:()=>J.value,set:re=>J.value=re})}if(a)for(const N in a)Bh(a[N],o,n,N);if(s){const N=Ke(s)?s.call(n):s;Reflect.ownKeys(N).forEach(V=>{qe(V,N[V])})}c&&_c(c,e,"c");function K(N,V){We(V)?V.forEach(ie=>N(ie.bind(n))):V&&N(V.bind(n))}if(K(Io,f),K(Ct,v),K(nm,g),K(Oh,u),K(Cd,p),K(na,b),K(lm,w),K(im,R),K(rm,C),K(xt,y),K(ra,S),K(om,k),We(F))if(F.length){const N=e.exposed||(e.exposed={});F.forEach(V=>{Object.defineProperty(N,V,{get:()=>n[V],set:ie=>n[V]=ie,enumerable:!0})})}else e.exposed||(e.exposed={});x&&e.render===Vn&&(e.render=x),M!=null&&(e.inheritAttrs=M),_&&(e.components=_),T&&(e.directives=T),k&&Th(e)}function cm(e,t,n=Vn){We(e)&&(e=Es(e));for(const o in e){const r=e[o];let i;ut(r)?"default"in r?i=Ee(r.from||o,r.default,!0):i=Ee(r.from||o):i=Ee(r),Ot(i)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[o]=i}}function _c(e,t,n){Tn(We(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Bh(e,t,n,o){let r=o.includes(".")?Ch(n,o):()=>n[o];if(St(e)){const i=t[e];Ke(i)&&tt(r,i)}else if(Ke(e))tt(r,e.bind(n));else if(ut(e))if(We(e))e.forEach(i=>Bh(i,t,n,o));else{const i=Ke(e.handler)?e.handler.bind(n):t[e.handler];Ke(i)&&tt(r,i,e)}}function Ah(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,a=i.get(t);let s;return a?s=a:!r.length&&!n&&!o?s=t:(s={},r.length&&r.forEach(d=>_l(s,d,l,!0)),_l(s,t,l)),ut(t)&&i.set(t,s),s}function _l(e,t,n,o=!1){const{mixins:r,extends:i}=t;i&&_l(e,i,n,!0),r&&r.forEach(l=>_l(e,l,n,!0));for(const l in t)if(!(o&&l==="expose")){const a=um[l]||n&&n[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const um={data:zc,props:Tc,emits:Tc,methods:ci,computed:ci,beforeCreate:Yt,created:Yt,beforeMount:Yt,mounted:Yt,beforeUpdate:Yt,updated:Yt,beforeDestroy:Yt,beforeUnmount:Yt,destroyed:Yt,unmounted:Yt,activated:Yt,deactivated:Yt,errorCaptured:Yt,serverPrefetch:Yt,components:ci,directives:ci,watch:hm,provide:zc,inject:fm};function zc(e,t){return t?e?function(){return _t(Ke(e)?e.call(this,this):e,Ke(t)?t.call(this,this):t)}:t:e}function fm(e,t){return ci(Es(e),Es(t))}function Es(e){if(We(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${kn(t)}Modifiers`]||e[`${Ao(t)}Modifiers`];function bm(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||ht;let r=n;const i=t.startsWith("update:"),l=i&&gm(o,t.slice(7));l&&(l.trim&&(r=n.map(c=>St(c)?c.trim():c)),l.number&&(r=n.map(rb)));let a,s=o[a=Da(t)]||o[a=Da(kn(t))];!s&&i&&(s=o[a=Da(Ao(t))]),s&&Tn(s,e,6,r);const d=o[a+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Tn(d,e,6,r)}}const mm=new WeakMap;function Lh(e,t,n=!1){const o=n?mm:t.emitsCache,r=o.get(e);if(r!==void 0)return r;const i=e.emits;let l={},a=!1;if(!Ke(e)){const s=d=>{const c=Lh(d,t,!0);c&&(a=!0,_t(l,c))};!n&&t.mixins.length&&t.mixins.forEach(s),e.extends&&s(e.extends),e.mixins&&e.mixins.forEach(s)}return!i&&!a?(ut(e)&&o.set(e,null),null):(We(i)?i.forEach(s=>l[s]=null):_t(l,i),ut(e)&&o.set(e,l),l)}function ia(e,t){return!e||!Gl(t)?!1:(t=t.slice(2).replace(/Once$/,""),st(e,t[0].toLowerCase()+t.slice(1))||st(e,Ao(t))||st(e,t))}function Fc(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[i],slots:l,attrs:a,emit:s,render:d,renderCache:c,props:f,data:v,setupState:g,ctx:u,inheritAttrs:p}=e,b=Pl(e);let m,y;try{if(n.shapeFlag&4){const S=r||o,x=S;m=Nn(d.call(x,S,c,f,g,v,u)),y=a}else{const S=t;m=Nn(S.length>1?S(f,{attrs:a,slots:l,emit:s}):S(f,null)),y=t.props?a:ym(a)}}catch(S){yi.length=0,Ql(S,e,1),m=Pe($t)}let $=m;if(y&&p!==!1){const S=Object.keys(y),{shapeFlag:x}=$;S.length&&x&7&&(i&&S.some(ql)&&(y=xm(y,i)),$=hn($,y,!1,!0))}return n.dirs&&($=hn($,null,!1,!0),$.dirs=$.dirs?$.dirs.concat(n.dirs):n.dirs),n.transition&&rr($,n.transition),m=$,Pl(b),m}const ym=e=>{let t;for(const n in e)(n==="class"||n==="style"||Gl(n))&&((t||(t={}))[n]=e[n]);return t},xm=(e,t)=>{const n={};for(const o in e)(!ql(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function wm(e,t,n){const{props:o,children:r,component:i}=e,{props:l,children:a,patchFlag:s}=t,d=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&s>=0){if(s&1024)return!0;if(s&16)return o?Oc(o,l,d):!!l;if(s&8){const c=t.dynamicProps;for(let f=0;fObject.create(Hh),jh=e=>Object.getPrototypeOf(e)===Hh;function Sm(e,t,n,o=!1){const r={},i=Nh();e.propsDefaults=Object.create(null),Wh(e,t,r,i);for(const l in e.propsOptions[0])l in r||(r[l]=void 0);n?e.props=o?r:Mb(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Rm(e,t,n,o){const{props:r,attrs:i,vnode:{patchFlag:l}}=e,a=it(r),[s]=e.propsOptions;let d=!1;if((o||l>0)&&!(l&16)){if(l&8){const c=e.vnode.dynamicProps;for(let f=0;f{s=!0;const[v,g]=Vh(f,t,!0);_t(l,v),g&&a.push(...g)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!i&&!s)return ut(e)&&o.set(e,Pr),Pr;if(We(i))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",Rd=e=>We(e)?e.map(Nn):[Nn(e)],Pm=(e,t,n)=>{if(t._n)return t;const o=Ne((...r)=>Rd(t(...r)),n);return o._c=!1,o},Kh=(e,t,n)=>{const o=e._ctx;for(const r in e){if(Sd(r))continue;const i=e[r];if(Ke(i))t[r]=Pm(r,i,o);else if(i!=null){const l=Rd(i);t[r]=()=>l}}},Uh=(e,t)=>{const n=Rd(t);e.slots.default=()=>n},Gh=(e,t,n)=>{for(const o in t)(n||!Sd(o))&&(e[o]=t[o])},$m=(e,t,n)=>{const o=e.slots=Nh();if(e.vnode.shapeFlag&32){const r=t._;r?(Gh(o,t,n),n&&Yf(o,"_",r,!0)):Kh(t,o)}else t&&Uh(e,t)},_m=(e,t,n)=>{const{vnode:o,slots:r}=e;let i=!0,l=ht;if(o.shapeFlag&32){const a=t._;a?n&&a===1?i=!1:Gh(r,t,n):(i=!t.$stable,Kh(t,r)),l=t}else t&&(Uh(e,t),l={default:1});if(i)for(const a in r)!Sd(a)&&l[a]==null&&delete r[a]},Zt=Em;function zm(e){return Tm(e)}function Tm(e,t){const n=Zl();n.__VUE__=!0;const{insert:o,remove:r,patchProp:i,createElement:l,createText:a,createComment:s,setText:d,setElementText:c,parentNode:f,nextSibling:v,setScopeId:g=Vn,insertStaticContent:u}=e,p=(z,L,ee,se=null,ae=null,Q=null,ue=void 0,ve=null,fe=!!L.dynamicChildren)=>{if(z===L)return;z&&!Zo(z,L)&&(se=ze(z),re(z,ae,Q,!0),z=null),L.patchFlag===-2&&(fe=!1,L.dynamicChildren=null);const{type:oe,ref:q,shapeFlag:G}=L;switch(oe){case Wi:b(z,L,ee,se);break;case $t:m(z,L,ee,se);break;case qa:z==null&&y(L,ee,se,ue);break;case nt:_(z,L,ee,se,ae,Q,ue,ve,fe);break;default:G&1?x(z,L,ee,se,ae,Q,ue,ve,fe):G&6?T(z,L,ee,se,ae,Q,ue,ve,fe):(G&64||G&128)&&oe.process(z,L,ee,se,ae,Q,ue,ve,fe,ne)}q!=null&&ae?bi(q,z&&z.ref,Q,L||z,!L):q==null&&z&&z.ref!=null&&bi(z.ref,null,Q,z,!0)},b=(z,L,ee,se)=>{if(z==null)o(L.el=a(L.children),ee,se);else{const ae=L.el=z.el;L.children!==z.children&&d(ae,L.children)}},m=(z,L,ee,se)=>{z==null?o(L.el=s(L.children||""),ee,se):L.el=z.el},y=(z,L,ee,se)=>{[z.el,z.anchor]=u(z.children,L,ee,se,z.el,z.anchor)},$=({el:z,anchor:L},ee,se)=>{let ae;for(;z&&z!==L;)ae=v(z),o(z,ee,se),z=ae;o(L,ee,se)},S=({el:z,anchor:L})=>{let ee;for(;z&&z!==L;)ee=v(z),r(z),z=ee;r(L)},x=(z,L,ee,se,ae,Q,ue,ve,fe)=>{if(L.type==="svg"?ue="svg":L.type==="math"&&(ue="mathml"),z==null)R(L,ee,se,ae,Q,ue,ve,fe);else{const oe=z.el&&z.el._isVueCE?z.el:null;try{oe&&oe._beginPatch(),k(z,L,ae,Q,ue,ve,fe)}finally{oe&&oe._endPatch()}}},R=(z,L,ee,se,ae,Q,ue,ve)=>{let fe,oe;const{props:q,shapeFlag:G,transition:W,dirs:Y}=z;if(fe=z.el=l(z.type,Q,q&&q.is,q),G&8?c(fe,z.children):G&16&&w(z.children,fe,null,se,ae,Ga(z,Q),ue,ve),Y&&Vo(z,null,se,"created"),C(fe,z,z.scopeId,ue,se),q){for(const Le in q)Le!=="value"&&!pi(Le)&&i(fe,Le,null,q[Le],Q,se);"value"in q&&i(fe,"value",null,q.value,Q),(oe=q.onVnodeBeforeMount)&&Mn(oe,se,z)}Y&&Vo(z,null,se,"beforeMount");const Se=Fm(ae,W);Se&&W.beforeEnter(fe),o(fe,L,ee),((oe=q&&q.onVnodeMounted)||Se||Y)&&Zt(()=>{oe&&Mn(oe,se,z),Se&&W.enter(fe),Y&&Vo(z,null,se,"mounted")},ae)},C=(z,L,ee,se,ae)=>{if(ee&&g(z,ee),se)for(let Q=0;Q{for(let oe=fe;oe{const ve=L.el=z.el;let{patchFlag:fe,dynamicChildren:oe,dirs:q}=L;fe|=z.patchFlag&16;const G=z.props||ht,W=L.props||ht;let Y;if(ee&&Ko(ee,!1),(Y=W.onVnodeBeforeUpdate)&&Mn(Y,ee,L,z),q&&Vo(L,z,ee,"beforeUpdate"),ee&&Ko(ee,!0),(G.innerHTML&&W.innerHTML==null||G.textContent&&W.textContent==null)&&c(ve,""),oe?F(z.dynamicChildren,oe,ve,ee,se,Ga(L,ae),Q):ue||V(z,L,ve,null,ee,se,Ga(L,ae),Q,!1),fe>0){if(fe&16)M(ve,G,W,ee,ae);else if(fe&2&&G.class!==W.class&&i(ve,"class",null,W.class,ae),fe&4&&i(ve,"style",G.style,W.style,ae),fe&8){const Se=L.dynamicProps;for(let Le=0;Le{Y&&Mn(Y,ee,L,z),q&&Vo(L,z,ee,"updated")},se)},F=(z,L,ee,se,ae,Q,ue)=>{for(let ve=0;ve{if(L!==ee){if(L!==ht)for(const Q in L)!pi(Q)&&!(Q in ee)&&i(z,Q,L[Q],null,ae,se);for(const Q in ee){if(pi(Q))continue;const ue=ee[Q],ve=L[Q];ue!==ve&&Q!=="value"&&i(z,Q,ve,ue,ae,se)}"value"in ee&&i(z,"value",L.value,ee.value,ae)}},_=(z,L,ee,se,ae,Q,ue,ve,fe)=>{const oe=L.el=z?z.el:a(""),q=L.anchor=z?z.anchor:a("");let{patchFlag:G,dynamicChildren:W,slotScopeIds:Y}=L;Y&&(ve=ve?ve.concat(Y):Y),z==null?(o(oe,ee,se),o(q,ee,se),w(L.children||[],ee,q,ae,Q,ue,ve,fe)):G>0&&G&64&&W&&z.dynamicChildren&&z.dynamicChildren.length===W.length?(F(z.dynamicChildren,W,ee,ae,Q,ue,ve),(L.key!=null||ae&&L===ae.subTree)&&kd(z,L,!0)):V(z,L,ee,q,ae,Q,ue,ve,fe)},T=(z,L,ee,se,ae,Q,ue,ve,fe)=>{L.slotScopeIds=ve,z==null?L.shapeFlag&512?ae.ctx.activate(L,ee,se,ue,fe):B(L,ee,se,ae,Q,ue,fe):D(z,L,fe)},B=(z,L,ee,se,ae,Q,ue)=>{const ve=z.component=Hm(z,se,ae);if(ta(z)&&(ve.ctx.renderer=ne),Nm(ve,!1,ue),ve.asyncDep){if(ae&&ae.registerDep(ve,K,ue),!z.el){const fe=ve.subTree=Pe($t);m(null,fe,L,ee),z.placeholder=fe.el}}else K(ve,z,L,ee,ae,Q,ue)},D=(z,L,ee)=>{const se=L.component=z.component;if(wm(z,L,ee))if(se.asyncDep&&!se.asyncResolved){N(se,L,ee);return}else se.next=L,se.update();else L.el=z.el,se.vnode=L},K=(z,L,ee,se,ae,Q,ue)=>{const ve=()=>{if(z.isMounted){let{next:G,bu:W,u:Y,parent:Se,vnode:Le}=z;{const at=qh(z);if(at){G&&(G.el=Le.el,N(z,G,ue)),at.asyncDep.then(()=>{Zt(()=>{z.isUnmounted||oe()},ae)});return}}let Ie=G,De;Ko(z,!1),G?(G.el=Le.el,N(z,G,ue)):G=Le,W&&Ha(W),(De=G.props&&G.props.onVnodeBeforeUpdate)&&Mn(De,Se,G,Le),Ko(z,!0);const Ge=Fc(z),Xe=z.subTree;z.subTree=Ge,p(Xe,Ge,f(Xe.el),ze(Xe),z,ae,Q),G.el=Ge.el,Ie===null&&Cm(z,Ge.el),Y&&Zt(Y,ae),(De=G.props&&G.props.onVnodeUpdated)&&Zt(()=>Mn(De,Se,G,Le),ae)}else{let G;const{el:W,props:Y}=L,{bm:Se,m:Le,parent:Ie,root:De,type:Ge}=z,Xe=Tr(L);Ko(z,!1),Se&&Ha(Se),!Xe&&(G=Y&&Y.onVnodeBeforeMount)&&Mn(G,Ie,L),Ko(z,!0);{De.ce&&De.ce._hasShadowRoot()&&De.ce._injectChildStyle(Ge,z.parent?z.parent.type:void 0);const at=z.subTree=Fc(z);p(null,at,ee,se,z,ae,Q),L.el=at.el}if(Le&&Zt(Le,ae),!Xe&&(G=Y&&Y.onVnodeMounted)){const at=L;Zt(()=>Mn(G,Ie,at),ae)}(L.shapeFlag&256||Ie&&Tr(Ie.vnode)&&Ie.vnode.shapeFlag&256)&&z.a&&Zt(z.a,ae),z.isMounted=!0,L=ee=se=null}};z.scope.on();const fe=z.effect=new eh(ve);z.scope.off();const oe=z.update=fe.run.bind(fe),q=z.job=fe.runIfDirty.bind(fe);q.i=z,q.id=z.uid,fe.scheduler=()=>yd(q),Ko(z,!0),oe()},N=(z,L,ee)=>{L.component=z;const se=z.vnode.props;z.vnode=L,z.next=null,Rm(z,L.props,se,ee),_m(z,L.children,ee),uo(),wc(z),fo()},V=(z,L,ee,se,ae,Q,ue,ve,fe=!1)=>{const oe=z&&z.children,q=z?z.shapeFlag:0,G=L.children,{patchFlag:W,shapeFlag:Y}=L;if(W>0){if(W&128){he(oe,G,ee,se,ae,Q,ue,ve,fe);return}else if(W&256){ie(oe,G,ee,se,ae,Q,ue,ve,fe);return}}Y&8?(q&16&&$e(oe,ae,Q),G!==oe&&c(ee,G)):q&16?Y&16?he(oe,G,ee,se,ae,Q,ue,ve,fe):$e(oe,ae,Q,!0):(q&8&&c(ee,""),Y&16&&w(G,ee,se,ae,Q,ue,ve,fe))},ie=(z,L,ee,se,ae,Q,ue,ve,fe)=>{z=z||Pr,L=L||Pr;const oe=z.length,q=L.length,G=Math.min(oe,q);let W;for(W=0;Wq?$e(z,ae,Q,!0,!1,G):w(L,ee,se,ae,Q,ue,ve,fe,G)},he=(z,L,ee,se,ae,Q,ue,ve,fe)=>{let oe=0;const q=L.length;let G=z.length-1,W=q-1;for(;oe<=G&&oe<=W;){const Y=z[oe],Se=L[oe]=fe?lo(L[oe]):Nn(L[oe]);if(Zo(Y,Se))p(Y,Se,ee,null,ae,Q,ue,ve,fe);else break;oe++}for(;oe<=G&&oe<=W;){const Y=z[G],Se=L[W]=fe?lo(L[W]):Nn(L[W]);if(Zo(Y,Se))p(Y,Se,ee,null,ae,Q,ue,ve,fe);else break;G--,W--}if(oe>G){if(oe<=W){const Y=W+1,Se=YW)for(;oe<=G;)re(z[oe],ae,Q,!0),oe++;else{const Y=oe,Se=oe,Le=new Map;for(oe=Se;oe<=W;oe++){const Re=L[oe]=fe?lo(L[oe]):Nn(L[oe]);Re.key!=null&&Le.set(Re.key,oe)}let Ie,De=0;const Ge=W-Se+1;let Xe=!1,at=0;const mt=new Array(Ge);for(oe=0;oe=Ge){re(Re,ae,Q,!0);continue}let te;if(Re.key!=null)te=Le.get(Re.key);else for(Ie=Se;Ie<=W;Ie++)if(mt[Ie-Se]===0&&Zo(Re,L[Ie])){te=Ie;break}te===void 0?re(Re,ae,Q,!0):(mt[te-Se]=oe+1,te>=at?at=te:Xe=!0,p(Re,L[te],ee,null,ae,Q,ue,ve,fe),De++)}const ft=Xe?Om(mt):Pr;for(Ie=ft.length-1,oe=Ge-1;oe>=0;oe--){const Re=Se+oe,te=L[Re],A=L[Re+1],X=Re+1{const{el:Q,type:ue,transition:ve,children:fe,shapeFlag:oe}=z;if(oe&6){J(z.component.subTree,L,ee,se);return}if(oe&128){z.suspense.move(L,ee,se);return}if(oe&64){ue.move(z,L,ee,ne);return}if(ue===nt){o(Q,L,ee);for(let G=0;Gve.enter(Q),ae);else{const{leave:G,delayLeave:W,afterLeave:Y}=ve,Se=()=>{z.ctx.isUnmounted?r(Q):o(Q,L,ee)},Le=()=>{Q._isLeaving&&Q[Dn](!0),G(Q,()=>{Se(),Y&&Y()})};W?W(Q,Se,Le):Le()}else o(Q,L,ee)},re=(z,L,ee,se=!1,ae=!1)=>{const{type:Q,props:ue,ref:ve,children:fe,dynamicChildren:oe,shapeFlag:q,patchFlag:G,dirs:W,cacheIndex:Y,memo:Se}=z;if(G===-2&&(ae=!1),ve!=null&&(uo(),bi(ve,null,ee,z,!0),fo()),Y!=null&&(L.renderCache[Y]=void 0),q&256){L.ctx.deactivate(z);return}const Le=q&1&&W,Ie=!Tr(z);let De;if(Ie&&(De=ue&&ue.onVnodeBeforeUnmount)&&Mn(De,L,z),q&6)le(z.component,ee,se);else{if(q&128){z.suspense.unmount(ee,se);return}Le&&Vo(z,null,L,"beforeUnmount"),q&64?z.type.remove(z,L,ee,ne,se):oe&&!oe.hasOnce&&(Q!==nt||G>0&&G&64)?$e(oe,L,ee,!1,!0):(Q===nt&&G&384||!ae&&q&16)&&$e(fe,L,ee),se&&ye(z)}const Ge=Se!=null&&Y==null;(Ie&&(De=ue&&ue.onVnodeUnmounted)||Le||Ge)&&Zt(()=>{De&&Mn(De,L,z),Le&&Vo(z,null,L,"unmounted"),Ge&&(z.el=null)},ee)},ye=z=>{const{type:L,el:ee,anchor:se,transition:ae}=z;if(L===nt){Z(ee,se);return}if(L===qa){S(z);return}const Q=()=>{r(ee),ae&&!ae.persisted&&ae.afterLeave&&ae.afterLeave()};if(z.shapeFlag&1&&ae&&!ae.persisted){const{leave:ue,delayLeave:ve}=ae,fe=()=>ue(ee,Q);ve?ve(z.el,Q,fe):fe()}else Q()},Z=(z,L)=>{let ee;for(;z!==L;)ee=v(z),r(z),z=ee;r(L)},le=(z,L,ee)=>{const{bum:se,scope:ae,job:Q,subTree:ue,um:ve,m:fe,a:oe}=z;Mc(fe),Mc(oe),se&&Ha(se),ae.stop(),Q&&(Q.flags|=8,re(ue,z,L,ee)),ve&&Zt(ve,L),Zt(()=>{z.isUnmounted=!0},L)},$e=(z,L,ee,se=!1,ae=!1,Q=0)=>{for(let ue=Q;ue{if(z.shapeFlag&6)return ze(z.component.subTree);if(z.shapeFlag&128)return z.suspense.next();const L=v(z.anchor||z.el),ee=L&&L[Sh];return ee?v(ee):L};let Ae=!1;const Te=(z,L,ee)=>{let se;z==null?L._vnode&&(re(L._vnode,null,null,!0),se=L._vnode.component):p(L._vnode||null,z,L,null,null,null,ee),L._vnode=z,Ae||(Ae=!0,wc(se),yh(),Ae=!1)},ne={p,um:re,m:J,r:ye,mt:B,mc:w,pc:V,pbc:F,n:ze,o:e};return{render:Te,hydrate:void 0,createApp:vm(Te)}}function Ga({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ko({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Fm(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function kd(e,t,n=!1){const o=e.children,r=t.children;if(We(o)&&We(r))for(let i=0;i>1,e[n[a]]0&&(t[o]=n[i-1]),n[i]=o)}}for(i=n.length,l=n[i-1];i-- >0;)n[i]=l,l=t[l];return n}function qh(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:qh(t)}function Mc(e){if(e)for(let t=0;te.__isSuspense;function Em(e,t){t&&t.pendingBranch?We(e)?t.effects.push(...e):t.effects.push(e):Ub(e)}const nt=Symbol.for("v-fgt"),Wi=Symbol.for("v-txt"),$t=Symbol.for("v-cmt"),qa=Symbol.for("v-stc"),yi=[];let sn=null;function Xn(e=!1){yi.push(sn=e?null:[])}function Mm(){yi.pop(),sn=yi[yi.length-1]||null}let Fi=1;function zl(e,t=!1){Fi+=e,e<0&&sn&&t&&(sn.hasOnce=!0)}function Zh(e){return e.dynamicChildren=Fi>0?sn||Pr:null,Mm(),Fi>0&&sn&&sn.push(e),e}function Vi(e,t,n,o,r,i){return Zh(Qe(e,t,n,o,r,i,!0))}function Oi(e,t,n,o,r){return Zh(Pe(e,t,n,o,r,!0))}function Ir(e){return e?e.__v_isVNode===!0:!1}function Zo(e,t){return e.type===t.type&&e.key===t.key}const Jh=({key:e})=>e??null,xl=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?St(e)||Ot(e)||Ke(e)?{i:Ut,r:e,k:t,f:!!n}:e:null);function Qe(e,t=null,n=null,o=0,r=null,i=e===nt?0:1,l=!1,a=!1){const s={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Jh(t),ref:t&&xl(t),scopeId:wh,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ut};return a?(Pd(s,n),i&128&&e.normalize(s)):n&&(s.shapeFlag|=St(n)?8:16),Fi>0&&!l&&sn&&(s.patchFlag>0||i&6)&&s.patchFlag!==32&&sn.push(s),s}const Pe=Bm;function Bm(e,t=null,n=null,o=0,r=null,i=!1){if((!e||e===am)&&(e=$t),Ir(e)){const a=hn(e,t,!0);return n&&Pd(a,n),Fi>0&&!i&&sn&&(a.shapeFlag&6?sn[sn.indexOf(e)]=a:sn.push(a)),a.patchFlag=-2,a}if(Km(e)&&(e=e.__vccOpts),t){t=Am(t);let{class:a,style:s}=t;a&&!St(a)&&(t.class=Ar(a)),ut(s)&&(Jl(s)&&!We(s)&&(s=_t({},s)),t.style=cd(s))}const l=St(e)?1:Yh(e)?128:Rh(e)?64:ut(e)?4:Ke(e)?2:0;return Qe(e,t,n,o,r,l,i,!0)}function Am(e){return e?Jl(e)||jh(e)?_t({},e):e:null}function hn(e,t,n=!1,o=!1){const{props:r,ref:i,patchFlag:l,children:a,transition:s}=e,d=t?nn(r||{},t):r,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&Jh(d),ref:t&&t.ref?n&&i?We(i)?i.concat(xl(t)):[i,xl(t)]:xl(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==nt?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:s,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&hn(e.ssContent),ssFallback:e.ssFallback&&hn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return s&&o&&rr(c,s.clone(c)),c}function Kt(e=" ",t=0){return Pe(Wi,null,e,t)}function Im(e="",t=!1){return t?(Xn(),Oi($t,null,e)):Pe($t,null,e)}function Nn(e){return e==null||typeof e=="boolean"?Pe($t):We(e)?Pe(nt,null,e.slice()):Ir(e)?lo(e):Pe(Wi,null,String(e))}function lo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:hn(e)}function Pd(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(We(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),Pd(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!jh(t)?t._ctx=Ut:r===3&&Ut&&(Ut.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ke(t)?(t={default:t,_ctx:Ut},n=32):(t=String(t),o&64?(n=16,t=[Kt(t)]):n=8);e.children=t,e.shapeFlag|=n}function nn(...e){const t={};for(let n=0;nQt||Ut;let Tl,Bs;{const e=Zl(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),i=>{r.length>1?r.forEach(l=>l(i)):r[0](i)}};Tl=t("__VUE_INSTANCE_SETTERS__",n=>Qt=n),Bs=t("__VUE_SSR_SETTERS__",n=>Ei=n)}const Ki=e=>{const t=Qt;return Tl(e),e.scope.on(),()=>{e.scope.off(),Tl(t)}},Bc=()=>{Qt&&Qt.scope.off(),Tl(null)};function Qh(e){return e.vnode.shapeFlag&4}let Ei=!1;function Nm(e,t=!1,n=!1){t&&Bs(t);const{props:o,children:r}=e.vnode,i=Qh(e);Sm(e,o,i,t),$m(e,r,n||t);const l=i?jm(e,t):void 0;return t&&Bs(!1),l}function jm(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,sm);const{setup:o}=n;if(o){uo();const r=e.setupContext=o.length>1?Vm(e):null,i=Ki(e),l=ji(o,e,0,[e.props,r]),a=Uf(l);if(fo(),i(),(a||e.sp)&&!Tr(e)&&Th(e),a){if(l.then(Bc,Bc),t)return l.then(s=>{Ac(e,s)}).catch(s=>{Ql(s,e,0)});e.asyncDep=l}else Ac(e,l)}else ep(e)}function Ac(e,t,n){Ke(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ut(t)&&(e.setupState=gh(t)),ep(e)}function ep(e,t,n){const o=e.type;e.render||(e.render=o.render||Vn);{const r=Ki(e);uo();try{dm(e)}finally{fo(),r()}}}const Wm={get(e,t){return Wt(e,"get",""),e[t]}};function Vm(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Wm),slots:e.slots,emit:e.emit,expose:t}}function la(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(gh(_s(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in mi)return mi[n](e)},has(t,n){return n in t||n in mi}})):e.proxy}function Km(e){return Ke(e)&&"__vccOpts"in e}const O=(e,t)=>Nb(e,t,Ei);function h(e,t,n){try{zl(-1);const o=arguments.length;return o===2?ut(t)&&!We(t)?Ir(t)?Pe(e,null,[t]):Pe(e,t):Pe(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Ir(n)&&(n=[n]),Pe(e,t,n))}finally{zl(1)}}const Um="3.5.34";let As;const Ic=typeof window<"u"&&window.trustedTypes;if(Ic)try{As=Ic.createPolicy("vue",{createHTML:e=>e})}catch{}const tp=As?e=>As.createHTML(e):e=>e,Gm="http://www.w3.org/2000/svg",qm="http://www.w3.org/1998/Math/MathML",io=typeof document<"u"?document:null,Lc=io&&io.createElement("template"),Xm={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t==="svg"?io.createElementNS(Gm,e):t==="mathml"?io.createElementNS(qm,e):n?io.createElement(e,{is:n}):io.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>io.createTextNode(e),createComment:e=>io.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>io.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,i){const l=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Lc.innerHTML=tp(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const a=Lc.content;if(o==="svg"||o==="mathml"){const s=a.firstChild;for(;s.firstChild;)a.appendChild(s.firstChild);a.removeChild(s)}t.insertBefore(a,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},xo="transition",ei="animation",Lr=Symbol("_vtc"),np={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},op=_t({},Ph,np),Ym=e=>(e.displayName="Transition",e.props=op,e),pn=Ym((e,{slots:t})=>h(em,rp(e),t)),Uo=(e,t=[])=>{We(e)?e.forEach(n=>n(...t)):e&&e(...t)},Dc=e=>e?We(e)?e.some(t=>t.length>1):e.length>1:!1;function rp(e){const t={};for(const _ in e)_ in np||(t[_]=e[_]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:s=i,appearActiveClass:d=l,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:g=`${n}-leave-to`}=e,u=Zm(r),p=u&&u[0],b=u&&u[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:$,onLeave:S,onLeaveCancelled:x,onBeforeAppear:R=m,onAppear:C=y,onAppearCancelled:w=$}=t,k=(_,T,B,D)=>{_._enterCancelled=D,Ro(_,T?c:a),Ro(_,T?d:l),B&&B()},F=(_,T)=>{_._isLeaving=!1,Ro(_,f),Ro(_,g),Ro(_,v),T&&T()},M=_=>(T,B)=>{const D=_?C:y,K=()=>k(T,_,B);Uo(D,[T,K]),Hc(()=>{Ro(T,_?s:i),In(T,_?c:a),Dc(D)||Nc(T,o,p,K)})};return _t(t,{onBeforeEnter(_){Uo(m,[_]),In(_,i),In(_,l)},onBeforeAppear(_){Uo(R,[_]),In(_,s),In(_,d)},onEnter:M(!1),onAppear:M(!0),onLeave(_,T){_._isLeaving=!0;const B=()=>F(_,T);In(_,f),_._enterCancelled?(In(_,v),Is(_)):(Is(_),In(_,v)),Hc(()=>{_._isLeaving&&(Ro(_,f),In(_,g),Dc(S)||Nc(_,o,b,B))}),Uo(S,[_,B])},onEnterCancelled(_){k(_,!1,void 0,!0),Uo($,[_])},onAppearCancelled(_){k(_,!0,void 0,!0),Uo(w,[_])},onLeaveCancelled(_){F(_),Uo(x,[_])}})}function Zm(e){if(e==null)return null;if(ut(e))return[Xa(e.enter),Xa(e.leave)];{const t=Xa(e);return[t,t]}}function Xa(e){return ib(e)}function In(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Lr]||(e[Lr]=new Set)).add(t)}function Ro(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[Lr];n&&(n.delete(t),n.size||(e[Lr]=void 0))}function Hc(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Jm=0;function Nc(e,t,n,o){const r=e._endId=++Jm,i=()=>{r===e._endId&&o()};if(n!=null)return setTimeout(i,n);const{type:l,timeout:a,propCount:s}=ip(e,t);if(!l)return o();const d=l+"end";let c=0;const f=()=>{e.removeEventListener(d,v),i()},v=g=>{g.target===e&&++c>=s&&f()};setTimeout(()=>{c(n[u]||"").split(", "),r=o(`${xo}Delay`),i=o(`${xo}Duration`),l=jc(r,i),a=o(`${ei}Delay`),s=o(`${ei}Duration`),d=jc(a,s);let c=null,f=0,v=0;t===xo?l>0&&(c=xo,f=l,v=i.length):t===ei?d>0&&(c=ei,f=d,v=s.length):(f=Math.max(l,d),c=f>0?l>d?xo:ei:null,v=c?c===xo?i.length:s.length:0);const g=c===xo&&/\b(?:transform|all)(?:,|$)/.test(o(`${xo}Property`).toString());return{type:c,timeout:f,propCount:v,hasTransform:g}}function jc(e,t){for(;e.lengthWc(n)+Wc(e[o])))}function Wc(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Is(e){return(e?e.ownerDocument:document).body.offsetHeight}function Qm(e,t,n){const o=e[Lr];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Fl=Symbol("_vod"),lp=Symbol("_vsh"),Fo={name:"show",beforeMount(e,{value:t},{transition:n}){e[Fl]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):ti(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),ti(e,!0),o.enter(e)):o.leave(e,()=>{ti(e,!1)}):ti(e,t))},beforeUnmount(e,{value:t}){ti(e,t)}};function ti(e,t){e.style.display=t?e[Fl]:"none",e[lp]=!t}const e0=Symbol(""),t0=/(?:^|;)\s*display\s*:/;function n0(e,t,n){const o=e.style,r=St(n);let i=!1;if(n&&!r){if(t)if(St(t))for(const l of t.split(";")){const a=l.slice(0,l.indexOf(":")).trim();n[a]==null&&ui(o,a,"")}else for(const l in t)n[l]==null&&ui(o,l,"");for(const l in n){l==="display"&&(i=!0);const a=n[l];a!=null?r0(e,l,!St(t)&&t?t[l]:void 0,a)||ui(o,l,a):ui(o,l,"")}}else if(r){if(t!==n){const l=o[e0];l&&(n+=";"+l),o.cssText=n,i=t0.test(n)}}else t&&e.removeAttribute("style");Fl in e&&(e[Fl]=i?o.display:"",e[lp]&&(o.display="none"))}const Vc=/\s*!important$/;function ui(e,t,n){if(We(n))n.forEach(o=>ui(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=o0(e,t);Vc.test(n)?e.setProperty(Ao(o),n.replace(Vc,""),"important"):e[o]=n}}const Kc=["Webkit","Moz","ms"],Ya={};function o0(e,t){const n=Ya[t];if(n)return n;let o=kn(t);if(o!=="filter"&&o in e)return Ya[t]=o;o=Xf(o);for(let r=0;rZa||(d0.then(()=>Za=0),Za=Date.now());function u0(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;Tn(f0(o,n.value),t,5,[o])};return n.value=e,n.attached=c0(),n}function f0(e,t){if(We(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>r=>!r._stopped&&o&&o(r))}else return t}const Zc=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,h0=(e,t,n,o,r,i)=>{const l=r==="svg";t==="class"?Qm(e,o,l):t==="style"?n0(e,n,o):Gl(t)?ql(t)||a0(e,t,n,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):p0(e,t,o,l))?(qc(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Gc(e,t,o,l,i,t!=="value")):e._isVueCE&&(v0(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!St(o)))?qc(e,kn(t),o,i,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Gc(e,t,o,l))};function p0(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&Zc(t)&&Ke(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Zc(t)&&St(n)?!1:t in e}function v0(e,t){const n=e._def.props;if(!n)return!1;const o=kn(t);return Array.isArray(n)?n.some(r=>kn(r)===o):Object.keys(n).some(r=>kn(r)===o)}const ap=new WeakMap,sp=new WeakMap,Ol=Symbol("_moveCb"),Jc=Symbol("_enterCb"),g0=e=>(delete e.props.mode,e),b0=g0({name:"TransitionGroup",props:_t({},op,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Lo(),o=kh();let r,i;return Oh(()=>{if(!r.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!w0(r[0].el,n.vnode.el,l)){r=[];return}r.forEach(m0),r.forEach(y0);const a=r.filter(x0);Is(n.vnode.el),a.forEach(s=>{const d=s.el,c=d.style;In(d,l),c.transform=c.webkitTransform=c.transitionDuration="";const f=d[Ol]=v=>{v&&v.target!==d||(!v||v.propertyName.endsWith("transform"))&&(d.removeEventListener("transitionend",f),d[Ol]=null,Ro(d,l))};d.addEventListener("transitionend",f)}),r=[]}),()=>{const l=it(e),a=rp(l);let s=l.tag||nt;if(r=[],i)for(let d=0;d{a.split(/\s+/).forEach(s=>s&&o.classList.remove(s))}),n.split(/\s+/).forEach(a=>a&&o.classList.add(a)),o.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(o);const{hasTransform:l}=ip(o);return i.removeChild(o),l}const C0=["ctrl","shift","alt","meta"],S0={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>C0.some(n=>e[`${n}Key`]&&!t.includes(n))},yr=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=((r,...i)=>{for(let l=0;l{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=(r=>{if(!("key"in r))return;const i=Ao(r.key);if(t.some(l=>l===i||R0[l]===i))return e(r)}))},P0=_t({patchProp:h0},Xm);let Qc;function $0(){return Qc||(Qc=zm(P0))}const up=((...e)=>{const t=$0().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=z0(o);if(!r)return;const i=t._component;!Ke(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const l=n(r,!1,_0(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t});function _0(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function z0(e){return St(e)?document.querySelector(e):e}function T0(e){let t=".",n="__",o="--",r;if(e){let u=e.blockPrefix;u&&(t=u),u=e.elementPrefix,u&&(n=u),u=e.modifierPrefix,u&&(o=u)}const i={install(u){r=u.c;const p=u.context;p.bem={},p.bem.b=null,p.bem.els=null}};function l(u){let p,b;return{before(m){p=m.bem.b,b=m.bem.els,m.bem.els=null},after(m){m.bem.b=p,m.bem.els=b},$({context:m,props:y}){return u=typeof u=="string"?u:u({context:m,props:y}),m.bem.b=u,`${y?.bPrefix||t}${m.bem.b}`}}}function a(u){let p;return{before(b){p=b.bem.els},after(b){b.bem.els=p},$({context:b,props:m}){return u=typeof u=="string"?u:u({context:b,props:m}),b.bem.els=u.split(",").map(y=>y.trim()),b.bem.els.map(y=>`${m?.bPrefix||t}${b.bem.b}${n}${y}`).join(", ")}}}function s(u){return{$({context:p,props:b}){u=typeof u=="string"?u:u({context:p,props:b});const m=u.split(",").map(S=>S.trim());function y(S){return m.map(x=>`&${b?.bPrefix||t}${p.bem.b}${S!==void 0?`${n}${S}`:""}${o}${x}`).join(", ")}const $=p.bem.els;return $!==null?y($[0]):y()}}}function d(u){return{$({context:p,props:b}){u=typeof u=="string"?u:u({context:p,props:b});const m=p.bem.els;return`&:not(${b?.bPrefix||t}${p.bem.b}${m!==null&&m.length>0?`${n}${m[0]}`:""}${o}${u})`}}}return Object.assign(i,{cB:((...u)=>r(l(u[0]),u[1],u[2])),cE:((...u)=>r(a(u[0]),u[1],u[2])),cM:((...u)=>r(s(u[0]),u[1],u[2])),cNotM:((...u)=>r(d(u[0]),u[1],u[2]))}),i}function F0(e){let t=0;for(let n=0;n{let r=F0(o);if(r){if(r===1){e.forEach(l=>{n.push(o.replace("&",l))});return}}else{e.forEach(l=>{n.push((l&&l+" ")+o)});return}let i=[o];for(;r--;){const l=[];i.forEach(a=>{e.forEach(s=>{l.push(a.replace("&",s))})}),i=l}i.forEach(l=>n.push(l))}),n}function M0(e,t){const n=[];return t.split(fp).forEach(o=>{e.forEach(r=>{n.push((r&&r+" ")+o)})}),n}function B0(e){let t=[""];return e.forEach(n=>{n=n&&n.trim(),n&&(n.includes("&")?t=E0(t,n):t=M0(t,n))}),t.join(", ").replace(O0," ")}function eu(e){if(!e)return;const t=e.parentElement;t&&t.removeChild(e)}function aa(e,t){return(t??document.head).querySelector(`style[cssr-id="${e}"]`)}function A0(e){const t=document.createElement("style");return t.setAttribute("cssr-id",e),t}function nl(e){return e?/^\s*@(s|m)/.test(e):!1}const I0=/[A-Z]/g;function hp(e){return e.replace(I0,t=>"-"+t.toLowerCase())}function L0(e,t=" "){return typeof e=="object"&&e!==null?` { +`+Object.entries(e).map(n=>t+` ${hp(n[0])}: ${n[1]};`).join(` +`)+` +`+t+"}":`: ${e};`}function D0(e,t,n){return typeof e=="function"?e({context:t.context,props:n}):e}function tu(e,t,n,o){if(!t)return"";const r=D0(t,n,o);if(!r)return"";if(typeof r=="string")return`${e} { +${r} +}`;const i=Object.keys(r);if(i.length===0)return n.config.keepEmptyBlock?e+` { +}`:"";const l=e?[e+" {"]:[];return i.forEach(a=>{const s=r[a];if(a==="raw"){l.push(` +`+s+` +`);return}a=hp(a),s!=null&&l.push(` ${a}${L0(s)}`)}),e&&l.push("}"),l.join(` +`)}function Ls(e,t,n){e&&e.forEach(o=>{if(Array.isArray(o))Ls(o,t,n);else if(typeof o=="function"){const r=o(t);Array.isArray(r)?Ls(r,t,n):r&&n(r)}else o&&n(o)})}function pp(e,t,n,o,r){const i=e.$;let l="";if(!i||typeof i=="string")nl(i)?l=i:t.push(i);else if(typeof i=="function"){const d=i({context:o.context,props:r});nl(d)?l=d:t.push(d)}else if(i.before&&i.before(o.context),!i.$||typeof i.$=="string")nl(i.$)?l=i.$:t.push(i.$);else if(i.$){const d=i.$({context:o.context,props:r});nl(d)?l=d:t.push(d)}const a=B0(t),s=tu(a,e.props,o,r);l?n.push(`${l} {`):s.length&&n.push(s),e.children&&Ls(e.children,{context:o.context,props:r},d=>{if(typeof d=="string"){const c=tu(a,{raw:d},o,r);n.push(c)}else pp(d,t,n,o,r)}),t.pop(),l&&n.push("}"),i&&i.after&&i.after(o.context)}function H0(e,t,n){const o=[];return pp(e,[],o,t,n),o.join(` + +`)}function Mi(e){for(var t=0,n,o=0,r=e.length;r>=4;++o,r-=4)n=e.charCodeAt(o)&255|(e.charCodeAt(++o)&255)<<8|(e.charCodeAt(++o)&255)<<16|(e.charCodeAt(++o)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(r){case 3:t^=(e.charCodeAt(o+2)&255)<<16;case 2:t^=(e.charCodeAt(o+1)&255)<<8;case 1:t^=e.charCodeAt(o)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}typeof window<"u"&&(window.__cssrContext={});function N0(e,t,n,o){const{els:r}=t;if(n===void 0)r.forEach(eu),t.els=[];else{const i=aa(n,o);i&&r.includes(i)&&(eu(i),t.els=r.filter(l=>l!==i))}}function nu(e,t){e.push(t)}function j0(e,t,n,o,r,i,l,a,s){let d;if(n===void 0&&(d=t.render(o),n=Mi(d)),s){s.adapter(n,d??t.render(o));return}a===void 0&&(a=document.head);const c=aa(n,a);if(c!==null&&!i)return c;const f=c??A0(n);if(d===void 0&&(d=t.render(o)),f.textContent=d,c!==null)return c;if(l){const v=a.querySelector(`meta[name="${l}"]`);if(v)return a.insertBefore(f,v),nu(t.els,f),f}return r?a.insertBefore(f,a.querySelector("style, link")):a.appendChild(f),nu(t.els,f),f}function W0(e){return H0(this,this.instance,e)}function V0(e={}){const{id:t,ssr:n,props:o,head:r=!1,force:i=!1,anchorMetaName:l,parent:a}=e;return j0(this.instance,this,t,o,r,i,l,a,n)}function K0(e={}){const{id:t,parent:n}=e;N0(this.instance,this,t,n)}const ol=function(e,t,n,o){return{instance:e,$:t,props:n,children:o,els:[],render:W0,mount:V0,unmount:K0}},U0=function(e,t,n,o){return Array.isArray(t)?ol(e,{$:null},null,t):Array.isArray(n)?ol(e,t,null,n):Array.isArray(o)?ol(e,t,n,o):ol(e,t,n,null)};function vp(e={}){const t={c:((...n)=>U0(t,...n)),use:(n,...o)=>n.install(t,...o),find:aa,context:{},config:e};return t}function G0(e,t){if(e===void 0)return!1;if(t){const{context:{ids:n}}=t;return n.has(e)}return aa(e)!==null}const q0="n",Bi=`.${q0}-`,X0="__",Y0="--",gp=vp(),bp=T0({blockPrefix:Bi,elementPrefix:X0,modifierPrefix:Y0});gp.use(bp);const{c:I,find:gT}=gp,{cB:P,cE:j,cM:H,cNotM:dt}=bp;function sa(e){return I(({props:{bPrefix:t}})=>`${t||Bi}modal, ${t||Bi}drawer`,[e])}function $d(e){return I(({props:{bPrefix:t}})=>`${t||Bi}popover`,[e])}function mp(e){return I(({props:{bPrefix:t}})=>`&${t||Bi}modal`,e)}const Z0=(...e)=>I(">",[P(...e)]);function de(e,t){return e+(t==="default"?"":t.replace(/^[a-z]/,n=>n.toUpperCase()))}let El=[];const yp=new WeakMap;function J0(){El.forEach(e=>e(...yp.get(e))),El=[]}function Ai(e,...t){yp.set(e,t),!El.includes(e)&&El.push(e)===1&&requestAnimationFrame(J0)}function yn(e,t){let{target:n}=e;for(;n;){if(n.dataset&&n.dataset[t]!==void 0)return!0;n=n.parentElement}return!1}function Dr(e){return e.composedPath()[0]||null}function Q0(e){if(typeof e=="number")return{"":e.toString()};const t={};return e.split(/ +/).forEach(n=>{if(n==="")return;const[o,r]=n.split(":");r===void 0?t[""]=o:t[o]=r}),t}function xr(e,t){var n;if(e==null)return;const o=Q0(e);if(t===void 0)return o[""];if(typeof t=="string")return(n=o[t])!==null&&n!==void 0?n:o[""];if(Array.isArray(t)){for(let r=t.length-1;r>=0;--r){const i=t[r];if(i in o)return o[i]}return o[""]}else{let r,i=-1;return Object.keys(o).forEach(l=>{const a=Number(l);!Number.isNaN(a)&&t>=a&&a>=i&&(i=a,r=o[l])}),r}}function Pt(e){return typeof e=="string"?e.endsWith("px")?Number(e.slice(0,e.length-2)):Number(e):e}function pt(e){if(e!=null)return typeof e=="number"?`${e}px`:e.endsWith("px")?e:`${e}px`}function Ft(e,t){const n=e.trim().split(/\s+/g),o={top:n[0]};switch(n.length){case 1:o.right=n[0],o.bottom=n[0],o.left=n[0];break;case 2:o.right=n[1],o.left=n[1],o.bottom=n[0];break;case 3:o.right=n[1],o.bottom=n[2],o.left=n[1];break;case 4:o.right=n[1],o.bottom=n[2],o.left=n[3];break;default:throw new Error("[seemly/getMargin]:"+e+" is not a valid value.")}return t===void 0?o:o[t]}function ey(e,t){const[n,o]=e.split(" ");return{row:n,col:o||n}}const ou={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#0FF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000",blanchedalmond:"#FFEBCD",blue:"#00F",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#0FF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",darkgreen:"#006400",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:"#F0F",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#ADFF2F",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",lightgrey:"#D3D3D3",lightgreen:"#90EE90",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#0F0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#F0F",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:"#F00",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",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFF",whitesmoke:"#F5F5F5",yellow:"#FF0",yellowgreen:"#9ACD32",transparent:"#0000"};function ty(e,t,n){t/=100,n/=100;let o=(r,i=(r+e/60)%6)=>n-n*t*Math.max(Math.min(i,4-i,1),0);return[o(5)*255,o(3)*255,o(1)*255]}function ny(e,t,n){t/=100,n/=100;let o=t*Math.min(n,1-n),r=(i,l=(i+e/30)%12)=>n-o*Math.max(Math.min(l-3,9-l,1),-1);return[r(0)*255,r(8)*255,r(4)*255]}const Jn="^\\s*",Qn="\\s*$",Oo="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))%\\s*",dn="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))\\s*",Jo="([0-9A-Fa-f])",Qo="([0-9A-Fa-f]{2})",xp=new RegExp(`${Jn}hsl\\s*\\(${dn},${Oo},${Oo}\\)${Qn}`),wp=new RegExp(`${Jn}hsv\\s*\\(${dn},${Oo},${Oo}\\)${Qn}`),Cp=new RegExp(`${Jn}hsla\\s*\\(${dn},${Oo},${Oo},${dn}\\)${Qn}`),Sp=new RegExp(`${Jn}hsva\\s*\\(${dn},${Oo},${Oo},${dn}\\)${Qn}`),oy=new RegExp(`${Jn}rgb\\s*\\(${dn},${dn},${dn}\\)${Qn}`),ry=new RegExp(`${Jn}rgba\\s*\\(${dn},${dn},${dn},${dn}\\)${Qn}`),iy=new RegExp(`${Jn}#${Jo}${Jo}${Jo}${Qn}`),ly=new RegExp(`${Jn}#${Qo}${Qo}${Qo}${Qn}`),ay=new RegExp(`${Jn}#${Jo}${Jo}${Jo}${Jo}${Qn}`),sy=new RegExp(`${Jn}#${Qo}${Qo}${Qo}${Qo}${Qn}`);function tn(e){return parseInt(e,16)}function dy(e){try{let t;if(t=Cp.exec(e))return[Ml(t[1]),_o(t[5]),_o(t[9]),tr(t[13])];if(t=xp.exec(e))return[Ml(t[1]),_o(t[5]),_o(t[9]),1];throw new Error(`[seemly/hsla]: Invalid color value ${e}.`)}catch(t){throw t}}function cy(e){try{let t;if(t=Sp.exec(e))return[Ml(t[1]),_o(t[5]),_o(t[9]),tr(t[13])];if(t=wp.exec(e))return[Ml(t[1]),_o(t[5]),_o(t[9]),1];throw new Error(`[seemly/hsva]: Invalid color value ${e}.`)}catch(t){throw t}}function ir(e){try{let t;if(t=ly.exec(e))return[tn(t[1]),tn(t[2]),tn(t[3]),1];if(t=oy.exec(e))return[Vt(t[1]),Vt(t[5]),Vt(t[9]),1];if(t=ry.exec(e))return[Vt(t[1]),Vt(t[5]),Vt(t[9]),tr(t[13])];if(t=iy.exec(e))return[tn(t[1]+t[1]),tn(t[2]+t[2]),tn(t[3]+t[3]),1];if(t=sy.exec(e))return[tn(t[1]),tn(t[2]),tn(t[3]),tr(tn(t[4])/255)];if(t=ay.exec(e))return[tn(t[1]+t[1]),tn(t[2]+t[2]),tn(t[3]+t[3]),tr(tn(t[4]+t[4])/255)];if(e in ou)return ir(ou[e]);if(xp.test(e)||Cp.test(e)){const[n,o,r,i]=dy(e);return[...ny(n,o,r),i]}else if(wp.test(e)||Sp.test(e)){const[n,o,r,i]=cy(e);return[...ty(n,o,r),i]}throw new Error(`[seemly/rgba]: Invalid color value ${e}.`)}catch(t){throw t}}function uy(e){return e>1?1:e<0?0:e}function Ds(e,t,n,o){return`rgba(${Vt(e)}, ${Vt(t)}, ${Vt(n)}, ${uy(o)})`}function Ja(e,t,n,o,r){return Vt((e*t*(1-o)+n*o)/r)}function rt(e,t){Array.isArray(e)||(e=ir(e)),Array.isArray(t)||(t=ir(t));const n=e[3],o=t[3],r=tr(n+o-n*o);return Ds(Ja(e[0],n,t[0],o,r),Ja(e[1],n,t[1],o,r),Ja(e[2],n,t[2],o,r),r)}function Ue(e,t){const[n,o,r,i=1]=Array.isArray(e)?e:ir(e);return typeof t.alpha=="number"?Ds(n,o,r,t.alpha):Ds(n,o,r,i)}function rl(e,t){const[n,o,r,i=1]=Array.isArray(e)?e:ir(e),{lightness:l=1,alpha:a=1}=t;return fy([n*l,o*l,r*l,i*a])}function tr(e){const t=Math.round(Number(e)*100)/100;return t>1?1:t<0?0:t}function Ml(e){const t=Math.round(Number(e));return t>=360||t<0?0:t}function Vt(e){const t=Math.round(Number(e));return t>255?255:t<0?0:t}function _o(e){const t=Math.round(Number(e));return t>100?100:t<0?0:t}function fy(e){const[t,n,o]=e;return 3 in e?`rgba(${Vt(t)}, ${Vt(n)}, ${Vt(o)}, ${tr(e[3])})`:`rgba(${Vt(t)}, ${Vt(n)}, ${Vt(o)}, 1)`}function ar(e=8){return Math.random().toString(16).slice(2,2+e)}function hy(e,t){const n=[];for(let o=0;o{t.contains(wl(r))||n(r)};return{mousemove:o,touchstart:o}}else if(e==="clickoutside"){let o=!1;const r=l=>{o=!t.contains(wl(l))},i=l=>{o&&(t.contains(wl(l))||n(l))};return{mousedown:r,mouseup:i,touchstart:r,touchend:i}}return console.error(`[evtd/create-trap-handler]: name \`${e}\` is invalid. This could be a bug of evtd.`),{}}function Rp(e,t,n){const o=py[e];let r=o.get(t);r===void 0&&o.set(t,r=new WeakMap);let i=r.get(n);return i===void 0&&r.set(n,i=vy(e,t,n)),i}function gy(e,t,n,o){if(e==="mousemoveoutside"||e==="clickoutside"){const r=Rp(e,t,n);return Object.keys(r).forEach(i=>{ct(i,document,r[i],o)}),!0}return!1}function by(e,t,n,o){if(e==="mousemoveoutside"||e==="clickoutside"){const r=Rp(e,t,n);return Object.keys(r).forEach(i=>{et(i,document,r[i],o)}),!0}return!1}function my(){if(typeof window>"u")return{on:()=>{},off:()=>{}};const e=new WeakMap,t=new WeakMap;function n(){e.set(this,!0)}function o(){e.set(this,!0),t.set(this,!0)}function r(C,w,k){const F=C[w];return C[w]=function(){return k.apply(C,arguments),F.apply(C,arguments)},C}function i(C,w){C[w]=Event.prototype[w]}const l=new WeakMap,a=Object.getOwnPropertyDescriptor(Event.prototype,"currentTarget");function s(){var C;return(C=l.get(this))!==null&&C!==void 0?C:null}function d(C,w){a!==void 0&&Object.defineProperty(C,"currentTarget",{configurable:!0,enumerable:!0,get:w??a.get})}const c={bubble:{},capture:{}},f={};function v(){const C=function(w){const{type:k,eventPhase:F,bubbles:M}=w,_=wl(w);if(F===2)return;const T=F===1?"capture":"bubble";let B=_;const D=[];for(;B===null&&(B=window),D.push(B),B!==window;)B=B.parentNode||null;const K=c.capture[k],N=c.bubble[k];if(r(w,"stopPropagation",n),r(w,"stopImmediatePropagation",o),d(w,s),T==="capture"){if(K===void 0)return;for(let V=D.length-1;V>=0&&!e.has(w);--V){const ie=D[V],he=K.get(ie);if(he!==void 0){l.set(w,ie);for(const J of he){if(t.has(w))break;J(w)}}if(V===0&&!M&&N!==void 0){const J=N.get(ie);if(J!==void 0)for(const re of J){if(t.has(w))break;re(w)}}}}else if(T==="bubble"){if(N===void 0)return;for(let V=0;V_(w))};return C.displayName="evtdUnifiedWindowEventHandler",C}const u=v(),p=g();function b(C,w){const k=c[C];return k[w]===void 0&&(k[w]=new Map,window.addEventListener(w,u,C==="capture")),k[w]}function m(C){return f[C]===void 0&&(f[C]=new Set,window.addEventListener(C,p)),f[C]}function y(C,w){let k=C.get(w);return k===void 0&&C.set(w,k=new Set),k}function $(C,w,k,F){const M=c[w][k];if(M!==void 0){const _=M.get(C);if(_!==void 0&&_.has(F))return!0}return!1}function S(C,w){const k=f[C];return!!(k!==void 0&&k.has(w))}function x(C,w,k,F){let M;if(typeof F=="object"&&F.once===!0?M=K=>{R(C,w,M,F),k(K)}:M=k,gy(C,w,M,F))return;const T=F===!0||typeof F=="object"&&F.capture===!0?"capture":"bubble",B=b(T,C),D=y(B,w);if(D.has(M)||D.add(M),w===window){const K=m(C);K.has(M)||K.add(M)}}function R(C,w,k,F){if(by(C,w,k,F))return;const _=F===!0||typeof F=="object"&&F.capture===!0,T=_?"capture":"bubble",B=b(T,C),D=y(B,w);if(w===window&&!$(w,_?"bubble":"capture",C,k)&&S(C,k)){const N=f[C];N.delete(k),N.size===0&&(window.removeEventListener(C,p),f[C]=void 0)}D.has(k)&&D.delete(k),D.size===0&&B.delete(w),B.size===0&&(window.removeEventListener(C,u,T==="capture"),c[T][C]=void 0)}return{on:x,off:R}}const{on:ct,off:et}=my();function yy(e){const t=E(!!e.value);if(t.value)return zn(t);const n=tt(e,o=>{o&&(t.value=!0,n())});return zn(t)}function ot(e){const t=O(e),n=E(t.value);return tt(t,o=>{n.value=o}),typeof e=="function"?n:{__v_isRef:!0,get value(){return n.value},set value(o){e.set(o)}}}function _d(){return Lo()!==null}const da=typeof window<"u";let Or,xi;const xy=()=>{var e,t;Or=da?(t=(e=document)===null||e===void 0?void 0:e.fonts)===null||t===void 0?void 0:t.ready:void 0,xi=!1,Or!==void 0?Or.then(()=>{xi=!0}):xi=!0};xy();function kp(e){if(xi)return;let t=!1;Ct(()=>{xi||Or?.then(()=>{t||e()})}),xt(()=>{t=!0})}const fi=E(null);function ru(e){if(e.clientX>0||e.clientY>0)fi.value={x:e.clientX,y:e.clientY};else{const{target:t}=e;if(t instanceof Element){const{left:n,top:o,width:r,height:i}=t.getBoundingClientRect();n>0||o>0?fi.value={x:n+r/2,y:o+i/2}:fi.value={x:0,y:0}}else fi.value=null}}let il=0,iu=!0;function zd(){if(!da)return zn(E(null));il===0&&ct("click",document,ru,!0);const e=()=>{il+=1};return iu&&(iu=_d())?(Io(e),xt(()=>{il-=1,il===0&&et("click",document,ru,!0)})):e(),zn(fi)}const wy=E(void 0);let ll=0;function lu(){wy.value=Date.now()}let au=!0;function Td(e){if(!da)return zn(E(!1));const t=E(!1);let n=null;function o(){n!==null&&window.clearTimeout(n)}function r(){o(),t.value=!0,n=window.setTimeout(()=>{t.value=!1},e)}ll===0&&ct("click",window,lu,!0);const i=()=>{ll+=1,ct("click",window,r,!0)};return au&&(au=_d())?(Io(i),xt(()=>{ll-=1,ll===0&&et("click",window,lu,!0),et("click",window,r,!0),o()})):i(),zn(t)}function qt(e,t){return tt(e,n=>{n!==void 0&&(t.value=n)}),O(()=>e.value===void 0?t.value:e.value)}function jr(){const e=E(!1);return Ct(()=>{e.value=!0}),zn(e)}function Bl(e,t){return O(()=>{for(const n of t)if(e[n]!==void 0)return e[n];return e[t[t.length-1]]})}const Cy=(typeof window>"u"?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)&&!window.MSStream;function Sy(){return Cy}const Ry={xs:0,s:640,m:1024,l:1280,xl:1536,"2xl":1920};function ky(e){return`(min-width: ${e}px)`}const ni={};function Py(e=Ry){if(!da)return O(()=>[]);if(typeof window.matchMedia!="function")return O(()=>[]);const t=E({}),n=Object.keys(e),o=(r,i)=>{r.matches?t.value[i]=!0:t.value[i]=!1};return n.forEach(r=>{const i=e[r];let l,a;ni[i]===void 0?(l=window.matchMedia(ky(i)),l.addEventListener?l.addEventListener("change",s=>{a.forEach(d=>{d(s,r)})}):l.addListener&&l.addListener(s=>{a.forEach(d=>{d(s,r)})}),a=new Set,ni[i]={mql:l,cbs:a}):(l=ni[i].mql,a=ni[i].cbs),a.add(o),l.matches&&a.forEach(s=>{s(l,r)})}),xt(()=>{n.forEach(r=>{const{cbs:i}=ni[e[r]];i.has(o)&&i.delete(o)})}),O(()=>{const{value:r}=t;return n.filter(i=>r[i])})}function $y(e={},t){const n=_n({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:o,keyup:r}=e,i=s=>{switch(s.key){case"Control":n.ctrl=!0;break;case"Meta":n.command=!0,n.win=!0;break;case"Shift":n.shift=!0;break;case"Tab":n.tab=!0;break}o!==void 0&&Object.keys(o).forEach(d=>{if(d!==s.key)return;const c=o[d];if(typeof c=="function")c(s);else{const{stop:f=!1,prevent:v=!1}=c;f&&s.stopPropagation(),v&&s.preventDefault(),c.handler(s)}})},l=s=>{switch(s.key){case"Control":n.ctrl=!1;break;case"Meta":n.command=!1,n.win=!1;break;case"Shift":n.shift=!1;break;case"Tab":n.tab=!1;break}r!==void 0&&Object.keys(r).forEach(d=>{if(d!==s.key)return;const c=r[d];if(typeof c=="function")c(s);else{const{stop:f=!1,prevent:v=!1}=c;f&&s.stopPropagation(),v&&s.preventDefault(),c.handler(s)}})},a=()=>{(t===void 0||t.value)&&(ct("keydown",document,i),ct("keyup",document,l)),t!==void 0&&tt(t,s=>{s?(ct("keydown",document,i),ct("keyup",document,l)):(et("keydown",document,i),et("keyup",document,l))})};return _d()?(Io(a),xt(()=>{(t===void 0||t.value)&&(et("keydown",document,i),et("keyup",document,l))})):a(),zn(n)}const Fd="n-internal-select-menu",Pp="n-internal-select-menu-body",ca="n-drawer-body",ua="n-modal-body",_y="n-modal-provider",$p="n-modal",Ui="n-popover-body",_p="__disabled__";function Yn(e){const t=Ee(ua,null),n=Ee(ca,null),o=Ee(Ui,null),r=Ee(Pp,null),i=E();if(typeof document<"u"){i.value=document.fullscreenElement;const l=()=>{i.value=document.fullscreenElement};Ct(()=>{ct("fullscreenchange",document,l)}),xt(()=>{et("fullscreenchange",document,l)})}return ot(()=>{var l;const{to:a}=e;return a!==void 0?a===!1?_p:a===!0?i.value||"body":a:t?.value?(l=t.value.$el)!==null&&l!==void 0?l:t.value:n?.value?n.value:o?.value?o.value:r?.value?r.value:a??(i.value||"body")})}Yn.tdkey=_p;Yn.propTo={type:[String,Object,Boolean],default:void 0};function zy(e,t,n){const o=E(e.value);let r=null;return tt(e,i=>{r!==null&&window.clearTimeout(r),i===!0?n&&!n.value?o.value=!0:r=window.setTimeout(()=>{o.value=!0},t):o.value=!1}),o}const Do=typeof document<"u"&&typeof window<"u",Od=E(!1);function su(){Od.value=!0}function du(){Od.value=!1}let oi=0;function Ty(){return Do&&(Io(()=>{oi||(window.addEventListener("compositionstart",su),window.addEventListener("compositionend",du)),oi++}),xt(()=>{oi<=1?(window.removeEventListener("compositionstart",su),window.removeEventListener("compositionend",du),oi=0):oi--})),Od}let wr=0,cu="",uu="",fu="",hu="";const pu=E("0px");function Fy(e){if(typeof document>"u")return;const t=document.documentElement;let n,o=!1;const r=()=>{t.style.marginRight=cu,t.style.overflow=uu,t.style.overflowX=fu,t.style.overflowY=hu,pu.value="0px"};Ct(()=>{n=tt(e,i=>{if(i){if(!wr){const l=window.innerWidth-t.offsetWidth;l>0&&(cu=t.style.marginRight,t.style.marginRight=`${l}px`,pu.value=`${l}px`),uu=t.style.overflow,fu=t.style.overflowX,hu=t.style.overflowY,t.style.overflow="hidden",t.style.overflowX="hidden",t.style.overflowY="hidden"}o=!0,wr++}else wr--,wr||r(),o=!1},{immediate:!0})}),xt(()=>{n?.(),o&&(wr--,wr||r(),o=!1)})}function zp(e){const t={isDeactivated:!1};let n=!1;return Cd(()=>{if(t.isDeactivated=!1,!n){n=!0;return}e()}),na(()=>{t.isDeactivated=!0,n||(n=!0)}),t}function Hs(e,t,n="default"){const o=t[n];if(o===void 0)throw new Error(`[vueuc/${e}]: slot[${n}] is empty.`);return o()}function Ns(e,t=!0,n=[]){return e.forEach(o=>{if(o!==null){if(typeof o!="object"){(typeof o=="string"||typeof o=="number")&&n.push(Kt(String(o)));return}if(Array.isArray(o)){Ns(o,t,n);return}if(o.type===nt){if(o.children===null)return;Array.isArray(o.children)&&Ns(o.children,t,n)}else o.type!==$t&&n.push(o)}}),n}function vu(e,t,n="default"){const o=t[n];if(o===void 0)throw new Error(`[vueuc/${e}]: slot[${n}] is empty.`);const r=Ns(o());if(r.length===1)return r[0];throw new Error(`[vueuc/${e}]: slot[${n}] should have exactly one child.`)}let wo=null;function Tp(){if(wo===null&&(wo=document.getElementById("v-binder-view-measurer"),wo===null)){wo=document.createElement("div"),wo.id="v-binder-view-measurer";const{style:e}=wo;e.position="fixed",e.left="0",e.right="0",e.top="0",e.bottom="0",e.pointerEvents="none",e.visibility="hidden",document.body.appendChild(wo)}return wo.getBoundingClientRect()}function Oy(e,t){const n=Tp();return{top:t,left:e,height:0,width:0,right:n.width-e,bottom:n.height-t}}function Qa(e){const t=e.getBoundingClientRect(),n=Tp();return{left:t.left-n.left,top:t.top-n.top,bottom:n.height+n.top-t.bottom,right:n.width+n.left-t.right,width:t.width,height:t.height}}function Ey(e){return e.nodeType===9?null:e.parentNode}function Fp(e){if(e===null)return null;const t=Ey(e);if(t===null)return null;if(t.nodeType===9)return document;if(t.nodeType===1){const{overflow:n,overflowX:o,overflowY:r}=getComputedStyle(t);if(/(auto|scroll|overlay)/.test(n+r+o))return t}return Fp(t)}const Ed=pe({name:"Binder",props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(e){var t;qe("VBinder",(t=Lo())===null||t===void 0?void 0:t.proxy);const n=Ee("VBinder",null),o=E(null),r=m=>{o.value=m,n&&e.syncTargetWithParent&&n.setTargetRef(m)};let i=[];const l=()=>{let m=o.value;for(;m=Fp(m),m!==null;)i.push(m);for(const y of i)ct("scroll",y,f,!0)},a=()=>{for(const m of i)et("scroll",m,f,!0);i=[]},s=new Set,d=m=>{s.size===0&&l(),s.has(m)||s.add(m)},c=m=>{s.has(m)&&s.delete(m),s.size===0&&a()},f=()=>{Ai(v)},v=()=>{s.forEach(m=>m())},g=new Set,u=m=>{g.size===0&&ct("resize",window,b),g.has(m)||g.add(m)},p=m=>{g.has(m)&&g.delete(m),g.size===0&&et("resize",window,b)},b=()=>{g.forEach(m=>m())};return xt(()=>{et("resize",window,b),a()}),{targetRef:o,setTargetRef:r,addScrollListener:d,removeScrollListener:c,addResizeListener:u,removeResizeListener:p}},render(){return Hs("binder",this.$slots)}}),Md=pe({name:"Target",setup(){const{setTargetRef:e,syncTarget:t}=Ee("VBinder");return{syncTarget:t,setTargetDirective:{mounted:e,updated:e}}},render(){const{syncTarget:e,setTargetDirective:t}=this;return e?qn(vu("follower",this.$slots),[[t]]):vu("follower",this.$slots)}}),Cr="@@mmoContext",My={mounted(e,{value:t}){e[Cr]={handler:void 0},typeof t=="function"&&(e[Cr].handler=t,ct("mousemoveoutside",e,t))},updated(e,{value:t}){const n=e[Cr];typeof t=="function"?n.handler?n.handler!==t&&(et("mousemoveoutside",e,n.handler),n.handler=t,ct("mousemoveoutside",e,t)):(e[Cr].handler=t,ct("mousemoveoutside",e,t)):n.handler&&(et("mousemoveoutside",e,n.handler),n.handler=void 0)},unmounted(e){const{handler:t}=e[Cr];t&&et("mousemoveoutside",e,t),e[Cr].handler=void 0}},Sr="@@coContext",Ii={mounted(e,{value:t,modifiers:n}){e[Sr]={handler:void 0},typeof t=="function"&&(e[Sr].handler=t,ct("clickoutside",e,t,{capture:n.capture}))},updated(e,{value:t,modifiers:n}){const o=e[Sr];typeof t=="function"?o.handler?o.handler!==t&&(et("clickoutside",e,o.handler,{capture:n.capture}),o.handler=t,ct("clickoutside",e,t,{capture:n.capture})):(e[Sr].handler=t,ct("clickoutside",e,t,{capture:n.capture})):o.handler&&(et("clickoutside",e,o.handler,{capture:n.capture}),o.handler=void 0)},unmounted(e,{modifiers:t}){const{handler:n}=e[Sr];n&&et("clickoutside",e,n,{capture:t.capture}),e[Sr].handler=void 0}};function By(e,t){console.error(`[vdirs/${e}]: ${t}`)}class Ay{constructor(){this.elementZIndex=new Map,this.nextZIndex=2e3}get elementCount(){return this.elementZIndex.size}ensureZIndex(t,n){const{elementZIndex:o}=this;if(n!==void 0){t.style.zIndex=`${n}`,o.delete(t);return}const{nextZIndex:r}=this;o.has(t)&&o.get(t)+1===this.nextZIndex||(t.style.zIndex=`${r}`,o.set(t,r),this.nextZIndex=r+1,this.squashState())}unregister(t,n){const{elementZIndex:o}=this;o.has(t)?o.delete(t):n===void 0&&By("z-index-manager/unregister-element","Element not found when unregistering."),this.squashState()}squashState(){const{elementCount:t}=this;t||(this.nextZIndex=2e3),this.nextZIndex-t>2500&&this.rearrange()}rearrange(){const t=Array.from(this.elementZIndex.entries());t.sort((n,o)=>n[1]-o[1]),this.nextZIndex=2e3,t.forEach(n=>{const o=n[0],r=this.nextZIndex++;`${r}`!==o.style.zIndex&&(o.style.zIndex=`${r}`)})}}const es=new Ay,Rr="@@ziContext",Bd={mounted(e,t){const{value:n={}}=t,{zIndex:o,enabled:r}=n;e[Rr]={enabled:!!r,initialized:!1},r&&(es.ensureZIndex(e,o),e[Rr].initialized=!0)},updated(e,t){const{value:n={}}=t,{zIndex:o,enabled:r}=n,i=e[Rr].enabled;r&&!i&&(es.ensureZIndex(e,o),e[Rr].initialized=!0),e[Rr].enabled=!!r},unmounted(e,t){if(!e[Rr].initialized)return;const{value:n={}}=t,{zIndex:o}=n;es.unregister(e,o)}},Iy="@css-render/vue3-ssr";function Ly(e,t){return``}function Dy(e,t,n){const{styles:o,ids:r}=n;r.has(e)||o!==null&&(r.add(e),o.push(Ly(e,t)))}const Hy=typeof document<"u";function Ho(){if(Hy)return;const e=Ee(Iy,null);if(e!==null)return{adapter:(t,n)=>Dy(t,n,e),context:e}}function gu(e,t){console.error(`[vueuc/${e}]: ${t}`)}const{c:Wn}=vp(),fa="vueuc-style";function bu(e){return e&-e}class Op{constructor(t,n){this.l=t,this.min=n;const o=new Array(t+1);for(let r=0;rr)throw new Error("[FinweckTree.sum]: `i` is larger than length.");let i=t*o;for(;t>0;)i+=n[t],t-=bu(t);return i}getBound(t){let n=0,o=this.l;for(;o>n;){const r=Math.floor((n+o)/2),i=this.sum(r);if(i>t){o=r;continue}else if(i{const{to:t}=e;return t??"body"})}},render(){return this.showTeleport?this.disabled?Hs("lazy-teleport",this.$slots):h(ea,{disabled:this.disabled,to:this.mergedTo},Hs("lazy-teleport",this.$slots)):null}}),al={top:"bottom",bottom:"top",left:"right",right:"left"},yu={start:"end",center:"center",end:"start"},ts={top:"height",bottom:"height",left:"width",right:"width"},Ny={"bottom-start":"top left",bottom:"top center","bottom-end":"top right","top-start":"bottom left",top:"bottom center","top-end":"bottom right","right-start":"top left",right:"center left","right-end":"bottom left","left-start":"top right",left:"center right","left-end":"bottom right"},jy={"bottom-start":"bottom left",bottom:"bottom center","bottom-end":"bottom right","top-start":"top left",top:"top center","top-end":"top right","right-start":"top right",right:"center right","right-end":"bottom right","left-start":"top left",left:"center left","left-end":"bottom left"},Wy={"bottom-start":"right","bottom-end":"left","top-start":"right","top-end":"left","right-start":"bottom","right-end":"top","left-start":"bottom","left-end":"top"},xu={top:!0,bottom:!1,left:!0,right:!1},wu={top:"end",bottom:"start",left:"end",right:"start"};function Vy(e,t,n,o,r,i){if(!r||i)return{placement:e,top:0,left:0};const[l,a]=e.split("-");let s=a??"center",d={top:0,left:0};const c=(g,u,p)=>{let b=0,m=0;const y=n[g]-t[u]-t[g];return y>0&&o&&(p?m=xu[u]?y:-y:b=xu[u]?y:-y),{left:b,top:m}},f=l==="left"||l==="right";if(s!=="center"){const g=Wy[e],u=al[g],p=ts[g];if(n[p]>t[p]){if(t[g]+t[p]t[u]&&(s=yu[a])}else{const g=l==="bottom"||l==="top"?"left":"top",u=al[g],p=ts[g],b=(n[p]-t[p])/2;(t[g]t[u]?(s=wu[g],d=c(p,g,f)):(s=wu[u],d=c(p,u,f)))}let v=l;return t[l] *",{pointerEvents:"all"})])]),Ad=pe({name:"Follower",inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:"bottom"},syncTrigger:{type:Array,default:["resize","scroll"]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(e){const t=Ee("VBinder"),n=ot(()=>e.enabled!==void 0?e.enabled:e.show),o=E(null),r=E(null),i=()=>{const{syncTrigger:v}=e;v.includes("scroll")&&t.addScrollListener(s),v.includes("resize")&&t.addResizeListener(s)},l=()=>{t.removeScrollListener(s),t.removeResizeListener(s)};Ct(()=>{n.value&&(s(),i())});const a=Ho();Gy.mount({id:"vueuc/binder",head:!0,anchorMetaName:fa,ssr:a}),xt(()=>{l()}),kp(()=>{n.value&&s()});const s=()=>{if(!n.value)return;const v=o.value;if(v===null)return;const g=t.targetRef,{x:u,y:p,overlap:b}=e,m=u!==void 0&&p!==void 0?Oy(u,p):Qa(g);v.style.setProperty("--v-target-width",`${Math.round(m.width)}px`),v.style.setProperty("--v-target-height",`${Math.round(m.height)}px`);const{width:y,minWidth:$,placement:S,internalShift:x,flip:R}=e;v.setAttribute("v-placement",S),b?v.setAttribute("v-overlap",""):v.removeAttribute("v-overlap");const{style:C}=v;y==="target"?C.width=`${m.width}px`:y!==void 0?C.width=y:C.width="",$==="target"?C.minWidth=`${m.width}px`:$!==void 0?C.minWidth=$:C.minWidth="";const w=Qa(v),k=Qa(r.value),{left:F,top:M,placement:_}=Vy(S,m,w,x,R,b),T=Ky(_,b),{left:B,top:D,transform:K}=Uy(_,k,m,M,F,b);v.setAttribute("v-placement",_),v.style.setProperty("--v-offset-left",`${Math.round(F)}px`),v.style.setProperty("--v-offset-top",`${Math.round(M)}px`),v.style.transform=`translateX(${B}) translateY(${D}) ${K}`,v.style.setProperty("--v-transform-origin",T),v.style.transformOrigin=T};tt(n,v=>{v?(i(),d()):l()});const d=()=>{Rt().then(s).catch(v=>console.error(v))};["placement","x","y","internalShift","flip","width","overlap","minWidth"].forEach(v=>{tt(we(e,v),s)}),["teleportDisabled"].forEach(v=>{tt(we(e,v),d)}),tt(we(e,"syncTrigger"),v=>{v.includes("resize")?t.addResizeListener(s):t.removeResizeListener(s),v.includes("scroll")?t.addScrollListener(s):t.removeScrollListener(s)});const c=jr(),f=ot(()=>{const{to:v}=e;if(v!==void 0)return v;c.value});return{VBinder:t,mergedEnabled:n,offsetContainerRef:r,followerRef:o,mergedTo:f,syncPosition:s}},render(){return h(Ep,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var e,t;const n=h("div",{class:["v-binder-follower-container",this.containerClass],ref:"offsetContainerRef"},[h("div",{class:"v-binder-follower-content",ref:"followerRef"},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))]);return this.zindexable?qn(n,[[Bd,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):n}})}});var nr=[],qy=function(){return nr.some(function(e){return e.activeTargets.length>0})},Xy=function(){return nr.some(function(e){return e.skippedTargets.length>0})},Cu="ResizeObserver loop completed with undelivered notifications.",Yy=function(){var e;typeof ErrorEvent=="function"?e=new ErrorEvent("error",{message:Cu}):(e=document.createEvent("Event"),e.initEvent("error",!1,!1),e.message=Cu),window.dispatchEvent(e)},Li;(function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(Li||(Li={}));var or=function(e){return Object.freeze(e)},Zy=(function(){function e(t,n){this.inlineSize=t,this.blockSize=n,or(this)}return e})(),Mp=(function(){function e(t,n,o,r){return this.x=t,this.y=n,this.width=o,this.height=r,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,or(this)}return e.prototype.toJSON=function(){var t=this,n=t.x,o=t.y,r=t.top,i=t.right,l=t.bottom,a=t.left,s=t.width,d=t.height;return{x:n,y:o,top:r,right:i,bottom:l,left:a,width:s,height:d}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e})(),Id=function(e){return e instanceof SVGElement&&"getBBox"in e},Bp=function(e){if(Id(e)){var t=e.getBBox(),n=t.width,o=t.height;return!n&&!o}var r=e,i=r.offsetWidth,l=r.offsetHeight;return!(i||l||e.getClientRects().length)},Su=function(e){var t;if(e instanceof Element)return!0;var n=(t=e?.ownerDocument)===null||t===void 0?void 0:t.defaultView;return!!(n&&e instanceof n.Element)},Jy=function(e){switch(e.tagName){case"INPUT":if(e.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},wi=typeof window<"u"?window:{},sl=new WeakMap,Ru=/auto|scroll/,Qy=/^tb|vertical/,ex=/msie|trident/i.test(wi.navigator&&wi.navigator.userAgent),Bn=function(e){return parseFloat(e||"0")},Er=function(e,t,n){return e===void 0&&(e=0),t===void 0&&(t=0),n===void 0&&(n=!1),new Zy((n?t:e)||0,(n?e:t)||0)},ku=or({devicePixelContentBoxSize:Er(),borderBoxSize:Er(),contentBoxSize:Er(),contentRect:new Mp(0,0,0,0)}),Ap=function(e,t){if(t===void 0&&(t=!1),sl.has(e)&&!t)return sl.get(e);if(Bp(e))return sl.set(e,ku),ku;var n=getComputedStyle(e),o=Id(e)&&e.ownerSVGElement&&e.getBBox(),r=!ex&&n.boxSizing==="border-box",i=Qy.test(n.writingMode||""),l=!o&&Ru.test(n.overflowY||""),a=!o&&Ru.test(n.overflowX||""),s=o?0:Bn(n.paddingTop),d=o?0:Bn(n.paddingRight),c=o?0:Bn(n.paddingBottom),f=o?0:Bn(n.paddingLeft),v=o?0:Bn(n.borderTopWidth),g=o?0:Bn(n.borderRightWidth),u=o?0:Bn(n.borderBottomWidth),p=o?0:Bn(n.borderLeftWidth),b=f+d,m=s+c,y=p+g,$=v+u,S=a?e.offsetHeight-$-e.clientHeight:0,x=l?e.offsetWidth-y-e.clientWidth:0,R=r?b+y:0,C=r?m+$:0,w=o?o.width:Bn(n.width)-R-x,k=o?o.height:Bn(n.height)-C-S,F=w+b+x+y,M=k+m+S+$,_=or({devicePixelContentBoxSize:Er(Math.round(w*devicePixelRatio),Math.round(k*devicePixelRatio),i),borderBoxSize:Er(F,M,i),contentBoxSize:Er(w,k,i),contentRect:new Mp(f,s,w,k)});return sl.set(e,_),_},Ip=function(e,t,n){var o=Ap(e,n),r=o.borderBoxSize,i=o.contentBoxSize,l=o.devicePixelContentBoxSize;switch(t){case Li.DEVICE_PIXEL_CONTENT_BOX:return l;case Li.BORDER_BOX:return r;default:return i}},tx=(function(){function e(t){var n=Ap(t);this.target=t,this.contentRect=n.contentRect,this.borderBoxSize=or([n.borderBoxSize]),this.contentBoxSize=or([n.contentBoxSize]),this.devicePixelContentBoxSize=or([n.devicePixelContentBoxSize])}return e})(),Lp=function(e){if(Bp(e))return 1/0;for(var t=0,n=e.parentNode;n;)t+=1,n=n.parentNode;return t},nx=function(){var e=1/0,t=[];nr.forEach(function(l){if(l.activeTargets.length!==0){var a=[];l.activeTargets.forEach(function(d){var c=new tx(d.target),f=Lp(d.target);a.push(c),d.lastReportedSize=Ip(d.target,d.observedBox),fe?n.activeTargets.push(r):n.skippedTargets.push(r))})})},ox=function(){var e=0;for(Pu(e);qy();)e=nx(),Pu(e);return Xy()&&Yy(),e>0},ns,Dp=[],rx=function(){return Dp.splice(0).forEach(function(e){return e()})},ix=function(e){if(!ns){var t=0,n=document.createTextNode(""),o={characterData:!0};new MutationObserver(function(){return rx()}).observe(n,o),ns=function(){n.textContent="".concat(t?t--:t++)}}Dp.push(e),ns()},lx=function(e){ix(function(){requestAnimationFrame(e)})},Cl=0,ax=function(){return!!Cl},sx=250,dx={attributes:!0,characterData:!0,childList:!0,subtree:!0},$u=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],_u=function(e){return e===void 0&&(e=0),Date.now()+e},os=!1,cx=(function(){function e(){var t=this;this.stopped=!0,this.listener=function(){return t.schedule()}}return e.prototype.run=function(t){var n=this;if(t===void 0&&(t=sx),!os){os=!0;var o=_u(t);lx(function(){var r=!1;try{r=ox()}finally{if(os=!1,t=o-_u(),!ax())return;r?n.run(1e3):t>0?n.run(t):n.start()}})}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var t=this,n=function(){return t.observer&&t.observer.observe(document.body,dx)};document.body?n():wi.addEventListener("DOMContentLoaded",n)},e.prototype.start=function(){var t=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),$u.forEach(function(n){return wi.addEventListener(n,t.listener,!0)}))},e.prototype.stop=function(){var t=this;this.stopped||(this.observer&&this.observer.disconnect(),$u.forEach(function(n){return wi.removeEventListener(n,t.listener,!0)}),this.stopped=!0)},e})(),js=new cx,zu=function(e){!Cl&&e>0&&js.start(),Cl+=e,!Cl&&js.stop()},ux=function(e){return!Id(e)&&!Jy(e)&&getComputedStyle(e).display==="inline"},fx=(function(){function e(t,n){this.target=t,this.observedBox=n||Li.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var t=Ip(this.target,this.observedBox,!0);return ux(this.target)&&(this.lastReportedSize=t),this.lastReportedSize.inlineSize!==t.inlineSize||this.lastReportedSize.blockSize!==t.blockSize},e})(),hx=(function(){function e(t,n){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=t,this.callback=n}return e})(),dl=new WeakMap,Tu=function(e,t){for(var n=0;n=0&&(i&&nr.splice(nr.indexOf(o),1),o.observationTargets.splice(r,1),zu(-1))},e.disconnect=function(t){var n=this,o=dl.get(t);o.observationTargets.slice().forEach(function(r){return n.unobserve(t,r.target)}),o.activeTargets.splice(0,o.activeTargets.length)},e})(),px=(function(){function e(t){if(arguments.length===0)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if(typeof t!="function")throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");cl.connect(this,t)}return e.prototype.observe=function(t,n){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Su(t))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");cl.observe(this,t,n)},e.prototype.unobserve=function(t){if(arguments.length===0)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!Su(t))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");cl.unobserve(this,t)},e.prototype.disconnect=function(){cl.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e})();class vx{constructor(){this.handleResize=this.handleResize.bind(this),this.observer=new(typeof window<"u"&&window.ResizeObserver||px)(this.handleResize),this.elHandlersMap=new Map}handleResize(t){for(const n of t){const o=this.elHandlersMap.get(n.target);o!==void 0&&o(n)}}registerHandler(t,n){this.elHandlersMap.set(t,n),this.observer.observe(t)}unregisterHandler(t){this.elHandlersMap.has(t)&&(this.elHandlersMap.delete(t),this.observer.unobserve(t))}}const Ci=new vx,Kn=pe({name:"ResizeObserver",props:{onResize:Function},setup(e){let t=!1;const n=Lo().proxy;function o(r){const{onResize:i}=e;i!==void 0&&i(r)}Ct(()=>{const r=n.$el;if(r===void 0){gu("resize-observer","$el does not exist.");return}if(r.nextElementSibling!==r.nextSibling&&r.nodeType===3&&r.nodeValue!==""){gu("resize-observer","$el can not be observed (it may be a text node).");return}r.nextElementSibling!==null&&(Ci.registerHandler(r.nextElementSibling,o),t=!0)}),xt(()=>{t&&Ci.unregisterHandler(n.$el.nextElementSibling)})},render(){return Eh(this.$slots,"default")}});let ul;function gx(){return typeof document>"u"?!1:(ul===void 0&&("matchMedia"in window?ul=window.matchMedia("(pointer:coarse)").matches:ul=!1),ul)}let rs;function Fu(){return typeof document>"u"?1:(rs===void 0&&(rs="chrome"in window?window.devicePixelRatio:1),rs)}const Hp="VVirtualListXScroll";function bx({columnsRef:e,renderColRef:t,renderItemWithColsRef:n}){const o=E(0),r=E(0),i=O(()=>{const d=e.value;if(d.length===0)return null;const c=new Op(d.length,0);return d.forEach((f,v)=>{c.add(v,f.width)}),c}),l=ot(()=>{const d=i.value;return d!==null?Math.max(d.getBound(r.value)-1,0):0}),a=d=>{const c=i.value;return c!==null?c.sum(d):0},s=ot(()=>{const d=i.value;return d!==null?Math.min(d.getBound(r.value+o.value)+1,e.value.length-1):0});return qe(Hp,{startIndexRef:l,endIndexRef:s,columnsRef:e,renderColRef:t,renderItemWithColsRef:n,getLeft:a}),{listWidthRef:o,scrollLeftRef:r}}const Ou=pe({name:"VirtualListRow",props:{index:{type:Number,required:!0},item:{type:Object,required:!0}},setup(){const{startIndexRef:e,endIndexRef:t,columnsRef:n,getLeft:o,renderColRef:r,renderItemWithColsRef:i}=Ee(Hp);return{startIndex:e,endIndex:t,columns:n,renderCol:r,renderItemWithCols:i,getLeft:o}},render(){const{startIndex:e,endIndex:t,columns:n,renderCol:o,renderItemWithCols:r,getLeft:i,item:l}=this;if(r!=null)return r({itemIndex:this.index,startColIndex:e,endColIndex:t,allColumns:n,item:l,getLeft:i});if(o!=null){const a=[];for(let s=e;s<=t;++s){const d=n[s];a.push(o({column:d,left:i(s),item:l}))}return a}return null}}),mx=Wn(".v-vl",{maxHeight:"inherit",height:"100%",overflow:"auto",minWidth:"1px"},[Wn("&:not(.v-vl--show-scrollbar)",{scrollbarWidth:"none"},[Wn("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",{width:0,height:0,display:"none"})])]),Ld=pe({name:"VirtualList",inheritAttrs:!1,props:{showScrollbar:{type:Boolean,default:!0},columns:{type:Array,default:()=>[]},renderCol:Function,renderItemWithCols:Function,items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:"div"},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:"key"},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(e){const t=Ho();mx.mount({id:"vueuc/virtual-list",head:!0,anchorMetaName:fa,ssr:t}),Ct(()=>{const{defaultScrollIndex:T,defaultScrollKey:B}=e;T!=null?b({index:T}):B!=null&&b({key:B})});let n=!1,o=!1;Cd(()=>{if(n=!1,!o){o=!0;return}b({top:g.value,left:l.value})}),na(()=>{n=!0,o||(o=!0)});const r=ot(()=>{if(e.renderCol==null&&e.renderItemWithCols==null||e.columns.length===0)return;let T=0;return e.columns.forEach(B=>{T+=B.width}),T}),i=O(()=>{const T=new Map,{keyField:B}=e;return e.items.forEach((D,K)=>{T.set(D[B],K)}),T}),{scrollLeftRef:l,listWidthRef:a}=bx({columnsRef:we(e,"columns"),renderColRef:we(e,"renderCol"),renderItemWithColsRef:we(e,"renderItemWithCols")}),s=E(null),d=E(void 0),c=new Map,f=O(()=>{const{items:T,itemSize:B,keyField:D}=e,K=new Op(T.length,B);return T.forEach((N,V)=>{const ie=N[D],he=c.get(ie);he!==void 0&&K.add(V,he)}),K}),v=E(0),g=E(0),u=ot(()=>Math.max(f.value.getBound(g.value-Pt(e.paddingTop))-1,0)),p=O(()=>{const{value:T}=d;if(T===void 0)return[];const{items:B,itemSize:D}=e,K=u.value,N=Math.min(K+Math.ceil(T/D+1),B.length-1),V=[];for(let ie=K;ie<=N;++ie)V.push(B[ie]);return V}),b=(T,B)=>{if(typeof T=="number"){S(T,B,"auto");return}const{left:D,top:K,index:N,key:V,position:ie,behavior:he,debounce:J=!0}=T;if(D!==void 0||K!==void 0)S(D,K,he);else if(N!==void 0)$(N,he,J);else if(V!==void 0){const re=i.value.get(V);re!==void 0&&$(re,he,J)}else ie==="bottom"?S(0,Number.MAX_SAFE_INTEGER,he):ie==="top"&&S(0,0,he)};let m,y=null;function $(T,B,D){const{value:K}=f,N=K.sum(T)+Pt(e.paddingTop);if(!D)s.value.scrollTo({left:0,top:N,behavior:B});else{m=T,y!==null&&window.clearTimeout(y),y=window.setTimeout(()=>{m=void 0,y=null},16);const{scrollTop:V,offsetHeight:ie}=s.value;if(N>V){const he=K.get(T);N+he<=V+ie||s.value.scrollTo({left:0,top:N+he-ie,behavior:B})}else s.value.scrollTo({left:0,top:N,behavior:B})}}function S(T,B,D){s.value.scrollTo({left:T,top:B,behavior:D})}function x(T,B){var D,K,N;if(n||e.ignoreItemResize||_(B.target))return;const{value:V}=f,ie=i.value.get(T),he=V.get(ie),J=(N=(K=(D=B.borderBoxSize)===null||D===void 0?void 0:D[0])===null||K===void 0?void 0:K.blockSize)!==null&&N!==void 0?N:B.contentRect.height;if(J===he)return;J-e.itemSize===0?c.delete(T):c.set(T,J-e.itemSize);const ye=J-he;if(ye===0)return;V.add(ie,ye);const Z=s.value;if(Z!=null){if(m===void 0){const le=V.sum(ie);Z.scrollTop>le&&Z.scrollBy(0,ye)}else if(ieZ.scrollTop+Z.offsetHeight&&Z.scrollBy(0,ye)}M()}v.value++}const R=!gx();let C=!1;function w(T){var B;(B=e.onScroll)===null||B===void 0||B.call(e,T),(!R||!C)&&M()}function k(T){var B;if((B=e.onWheel)===null||B===void 0||B.call(e,T),R){const D=s.value;if(D!=null){if(T.deltaX===0&&(D.scrollTop===0&&T.deltaY<=0||D.scrollTop+D.offsetHeight>=D.scrollHeight&&T.deltaY>=0))return;T.preventDefault(),D.scrollTop+=T.deltaY/Fu(),D.scrollLeft+=T.deltaX/Fu(),M(),C=!0,Ai(()=>{C=!1})}}}function F(T){if(n||_(T.target))return;if(e.renderCol==null&&e.renderItemWithCols==null){if(T.contentRect.height===d.value)return}else if(T.contentRect.height===d.value&&T.contentRect.width===a.value)return;d.value=T.contentRect.height,a.value=T.contentRect.width;const{onResize:B}=e;B!==void 0&&B(T)}function M(){const{value:T}=s;T!=null&&(g.value=T.scrollTop,l.value=T.scrollLeft)}function _(T){let B=T;for(;B!==null;){if(B.style.display==="none")return!0;B=B.parentElement}return!1}return{listHeight:d,listStyle:{overflow:"auto"},keyToIndex:i,itemsStyle:O(()=>{const{itemResizable:T}=e,B=pt(f.value.sum());return v.value,[e.itemsStyle,{boxSizing:"content-box",width:pt(r.value),height:T?"":B,minHeight:T?B:"",paddingTop:pt(e.paddingTop),paddingBottom:pt(e.paddingBottom)}]}),visibleItemsStyle:O(()=>(v.value,{transform:`translateY(${pt(f.value.sum(u.value))})`})),viewportItems:p,listElRef:s,itemsElRef:E(null),scrollTo:b,handleListResize:F,handleListScroll:w,handleListWheel:k,handleItemResize:x}},render(){const{itemResizable:e,keyField:t,keyToIndex:n,visibleItemsTag:o}=this;return h(Kn,{onResize:this.handleListResize},{default:()=>{var r,i;return h("div",nn(this.$attrs,{class:["v-vl",this.showScrollbar&&"v-vl--show-scrollbar"],onScroll:this.handleListScroll,onWheel:this.handleListWheel,ref:"listElRef"}),[this.items.length!==0?h("div",{ref:"itemsElRef",class:"v-vl-items",style:this.itemsStyle},[h(o,Object.assign({class:"v-vl-visible-items",style:this.visibleItemsStyle},this.visibleItemsProps),{default:()=>{const{renderCol:l,renderItemWithCols:a}=this;return this.viewportItems.map(s=>{const d=s[t],c=n.get(d),f=l!=null?h(Ou,{index:c,item:s}):void 0,v=a!=null?h(Ou,{index:c,item:s}):void 0,g=this.$slots.default({item:s,renderedCols:f,renderedItemWithCols:v,index:c})[0];return e?h(Kn,{key:d,onResize:u=>this.handleItemResize(d,u)},{default:()=>g}):(g.key=d,g)})}})]):(i=(r=this.$slots).empty)===null||i===void 0?void 0:i.call(r)])}})}}),yx=Wn(".v-x-scroll",{overflow:"auto",scrollbarWidth:"none"},[Wn("&::-webkit-scrollbar",{width:0,height:0})]),xx=pe({name:"XScroll",props:{disabled:Boolean,onScroll:Function},setup(){const e=E(null);function t(r){!(r.currentTarget.offsetWidthv){const{updateCounter:R}=e;for(let C=$;C>=0;--C){const w=m-1-C;R!==void 0?R(w):c.textContent=`${w}`;const k=c.offsetWidth;if(p-=g[C],p+k<=v||C===0){b=!0,$=C-1,u&&($===-1?(u.style.maxWidth=`${v-k}px`,u.style.boxSizing="border-box"):u.style.maxWidth="");const{onUpdateCount:F}=e;F&&F(w);break}}}}const{onUpdateOverflow:y}=e;b?y!==void 0&&y(!0):(y!==void 0&&y(!1),c.setAttribute(oo,""))}const i=Ho();return wx.mount({id:"vueuc/overflow",head:!0,anchorMetaName:fa,ssr:i}),Ct(()=>r({showAllItemsBeforeCalculate:!1})),{selfRef:n,counterRef:o,sync:r}},render(){const{$slots:e}=this;return Rt(()=>this.sync({showAllItemsBeforeCalculate:!1})),h("div",{class:"v-overflow",ref:"selfRef"},[Eh(e,"default"),e.counter?e.counter():h("span",{style:{display:"inline-block"},ref:"counterRef"}),e.tail?e.tail():null])}});function Np(e){return e instanceof HTMLElement}function jp(e){for(let t=0;t=0;t--){const n=e.childNodes[t];if(Np(n)&&(Vp(n)||Wp(n)))return!0}return!1}function Vp(e){if(!Cx(e))return!1;try{e.focus({preventScroll:!0})}catch{}return document.activeElement===e}function Cx(e){if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.getAttribute("disabled"))return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return e.type!=="hidden"&&e.type!=="file";case"SELECT":case"TEXTAREA":return!0;default:return!1}}let ri=[];const Kp=pe({name:"FocusTrap",props:{disabled:Boolean,active:Boolean,autoFocus:{type:Boolean,default:!0},onEsc:Function,initialFocusTo:[String,Function],finalFocusTo:[String,Function],returnFocusOnDeactivated:{type:Boolean,default:!0}},setup(e){const t=ar(),n=E(null),o=E(null);let r=!1,i=!1;const l=typeof document>"u"?null:document.activeElement;function a(){return ri[ri.length-1]===t}function s(b){var m;b.code==="Escape"&&a()&&((m=e.onEsc)===null||m===void 0||m.call(e,b))}Ct(()=>{tt(()=>e.active,b=>{b?(f(),ct("keydown",document,s)):(et("keydown",document,s),r&&v())},{immediate:!0})}),xt(()=>{et("keydown",document,s),r&&v()});function d(b){if(!i&&a()){const m=c();if(m===null||m.contains(Dr(b)))return;g("first")}}function c(){const b=n.value;if(b===null)return null;let m=b;for(;m=m.nextSibling,!(m===null||m instanceof Element&&m.tagName==="DIV"););return m}function f(){var b;if(!e.disabled){if(ri.push(t),e.autoFocus){const{initialFocusTo:m}=e;m===void 0?g("first"):(b=mu(m))===null||b===void 0||b.focus({preventScroll:!0})}r=!0,document.addEventListener("focus",d,!0)}}function v(){var b;if(e.disabled||(document.removeEventListener("focus",d,!0),ri=ri.filter(y=>y!==t),a()))return;const{finalFocusTo:m}=e;m!==void 0?(b=mu(m))===null||b===void 0||b.focus({preventScroll:!0}):e.returnFocusOnDeactivated&&l instanceof HTMLElement&&(i=!0,l.focus({preventScroll:!0}),i=!1)}function g(b){if(a()&&e.active){const m=n.value,y=o.value;if(m!==null&&y!==null){const $=c();if($==null||$===y){i=!0,m.focus({preventScroll:!0}),i=!1;return}i=!0;const S=b==="first"?jp($):Wp($);i=!1,S||(i=!0,m.focus({preventScroll:!0}),i=!1)}}}function u(b){if(i)return;const m=c();m!==null&&(b.relatedTarget!==null&&m.contains(b.relatedTarget)?g("last"):g("first"))}function p(b){i||(b.relatedTarget!==null&&b.relatedTarget===n.value?g("last"):g("first"))}return{focusableStartRef:n,focusableEndRef:o,focusableStyle:"position: absolute; height: 0; width: 0;",handleStartFocus:u,handleEndFocus:p}},render(){const{default:e}=this.$slots;if(e===void 0)return null;if(this.disabled)return e();const{active:t,focusableStyle:n}=this;return h(nt,null,[h("div",{"aria-hidden":"true",tabindex:t?"0":"-1",ref:"focusableStartRef",style:n,onFocus:this.handleStartFocus}),e(),h("div",{"aria-hidden":"true",style:n,ref:"focusableEndRef",tabindex:t?"0":"-1",onFocus:this.handleEndFocus})])}});function Up(e,t){t&&(Ct(()=>{const{value:n}=e;n&&Ci.registerHandler(n,t)}),tt(e,(n,o)=>{o&&Ci.unregisterHandler(o)},{deep:!1}),xt(()=>{const{value:n}=e;n&&Ci.unregisterHandler(n)}))}function Al(e){return e.replace(/#|\(|\)|,|\s|\./g,"_")}const Sx=/^(\d|\.)+$/,Mu=/(\d|\.)+/;function Gt(e,{c:t=1,offset:n=0,attachPx:o=!0}={}){if(typeof e=="number"){const r=(e+n)*t;return r===0?"0":`${r}px`}else if(typeof e=="string")if(Sx.test(e)){const r=(Number(e)+n)*t;return o?r===0?"0":`${r}px`:`${r}`}else{const r=Mu.exec(e);return r?e.replace(Mu,String((Number(r[0])+n)*t)):e}return e}function Bu(e){const{left:t,right:n,top:o,bottom:r}=Ft(e);return`${o} ${t} ${r} ${n}`}function Rx(e,t){if(!e)return;const n=document.createElement("a");n.href=e,t!==void 0&&(n.download=t),document.body.appendChild(n),n.click(),document.body.removeChild(n)}let is;function kx(){return is===void 0&&(is=navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),is}const Gp=new WeakSet;function Px(e){Gp.add(e)}function $x(e){return!Gp.has(e)}function Au(e){switch(typeof e){case"string":return e||void 0;case"number":return String(e);default:return}}const _x={tiny:"mini",small:"tiny",medium:"small",large:"medium",huge:"large"};function Iu(e){const t=_x[e];if(t===void 0)throw new Error(`${e} has no smaller size.`);return t}function Zn(e,t){console.error(`[naive/${e}]: ${t}`)}function sr(e,t){throw new Error(`[naive/${e}]: ${t}`)}function me(e,...t){if(Array.isArray(e))e.forEach(n=>me(n,...t));else return e(...t)}function qp(e){return t=>{t?e.value=t.$el:e.value=null}}function Un(e,t=!0,n=[]){return e.forEach(o=>{if(o!==null){if(typeof o!="object"){(typeof o=="string"||typeof o=="number")&&n.push(Kt(String(o)));return}if(Array.isArray(o)){Un(o,t,n);return}if(o.type===nt){if(o.children===null)return;Array.isArray(o.children)&&Un(o.children,t,n)}else{if(o.type===$t&&t)return;n.push(o)}}}),n}function zx(e,t="default",n=void 0){const o=e[t];if(!o)return Zn("getFirstSlotVNode",`slot[${t}] is empty`),null;const r=Un(o(n));return r.length===1?r[0]:(Zn("getFirstSlotVNode",`slot[${t}] should have exactly one child`),null)}function Tx(e,t,n){if(!t)return null;const o=Un(t(n));return o.length===1?o[0]:(Zn("getFirstSlotVNode",`slot[${e}] should have exactly one child`),null)}function Dd(e,t="default",n=[]){const r=e.$slots[t];return r===void 0?n:r()}function Fx(e){var t;const n=(t=e.dirs)===null||t===void 0?void 0:t.find(({dir:o})=>o===Fo);return!!(n&&n.value===!1)}function Eo(e,t=[],n){const o={};return t.forEach(r=>{o[r]=e[r]}),Object.assign(o,n)}function Gi(e){return Object.keys(e)}function Si(e){const t=e.filter(n=>n!==void 0);if(t.length!==0)return t.length===1?t[0]:n=>{e.forEach(o=>{o&&o(n)})}}function dr(e,t=[],n){const o={};return Object.getOwnPropertyNames(e).forEach(i=>{t.includes(i)||(o[i]=e[i])}),Object.assign(o,n)}function wt(e,...t){return typeof e=="function"?e(...t):typeof e=="string"?Kt(e):typeof e=="number"?Kt(String(e)):null}function Rn(e){return e.some(t=>Ir(t)?!(t.type===$t||t.type===nt&&!Rn(t.children)):!0)?e:null}function $n(e,t){return e&&Rn(e())||t()}function Ox(e,t,n){return e&&Rn(e(t))||n(t)}function lt(e,t){const n=e&&Rn(e());return t(n||null)}function Mr(e){return!(e&&Rn(e()))}const Ws=pe({render(){var e,t;return(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)}}),Fn="n-config-provider",Il="n";function Ye(e={},t={defaultBordered:!0}){const n=Ee(Fn,null);return{inlineThemeDisabled:n?.inlineThemeDisabled,mergedRtlRef:n?.mergedRtlRef,mergedComponentPropsRef:n?.mergedComponentPropsRef,mergedBreakpointsRef:n?.mergedBreakpointsRef,mergedBorderedRef:O(()=>{var o,r;const{bordered:i}=e;return i!==void 0?i:(r=(o=n?.mergedBorderedRef.value)!==null&&o!==void 0?o:t.defaultBordered)!==null&&r!==void 0?r:!0}),mergedClsPrefixRef:n?n.mergedClsPrefixRef:ph(Il),namespaceRef:O(()=>n?.mergedNamespaceRef.value)}}function Xp(){const e=Ee(Fn,null);return e?e.mergedClsPrefixRef:ph(Il)}function vt(e,t,n,o){n||sr("useThemeClass","cssVarsRef is not passed");const r=Ee(Fn,null),i=r?.mergedThemeHashRef,l=r?.styleMountTarget,a=E(""),s=Ho();let d;const c=`__${e}`,f=()=>{let v=c;const g=t?t.value:void 0,u=i?.value;u&&(v+=`-${u}`),g&&(v+=`-${g}`);const{themeOverrides:p,builtinThemeOverrides:b}=o;p&&(v+=`-${Mi(JSON.stringify(p))}`),b&&(v+=`-${Mi(JSON.stringify(b))}`),a.value=v,d=()=>{const m=n.value;let y="";for(const $ in m)y+=`${$}: ${m[$]};`;I(`.${v}`,y).mount({id:v,ssr:s,parent:l}),d=void 0}};return en(()=>{f()}),{themeClass:a,onRender:()=>{d?.()}}}const Lu="n-form-item";function No(e,{defaultSize:t="medium",mergedSize:n,mergedDisabled:o}={}){const r=Ee(Lu,null);qe(Lu,null);const i=O(n?()=>n(r):()=>{const{size:s}=e;if(s)return s;if(r){const{mergedSize:d}=r;if(d.value!==void 0)return d.value}return t}),l=O(o?()=>o(r):()=>{const{disabled:s}=e;return s!==void 0?s:r?r.disabled.value:!1}),a=O(()=>{const{status:s}=e;return s||r?.mergedValidationStatus.value});return xt(()=>{r&&r.restoreValidation()}),{mergedSizeRef:i,mergedDisabledRef:l,mergedStatusRef:a,nTriggerFormBlur(){r&&r.handleContentBlur()},nTriggerFormChange(){r&&r.handleContentChange()},nTriggerFormFocus(){r&&r.handleContentFocus()},nTriggerFormInput(){r&&r.handleContentInput()}}}const Ex={name:"en-US",global:{undo:"Undo",redo:"Redo",confirm:"Confirm",clear:"Clear"},Popconfirm:{positiveText:"Confirm",negativeText:"Cancel"},Cascader:{placeholder:"Please Select",loading:"Loading",loadingRequiredMessage:e=>`Please load all ${e}'s descendants before checking it.`},Time:{dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss"},DatePicker:{yearFormat:"yyyy",monthFormat:"MMM",dayFormat:"eeeeee",yearTypeFormat:"yyyy",monthTypeFormat:"yyyy-MM",dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss",quarterFormat:"yyyy-qqq",weekFormat:"YYYY-w",clear:"Clear",now:"Now",confirm:"Confirm",selectTime:"Select Time",selectDate:"Select Date",datePlaceholder:"Select Date",datetimePlaceholder:"Select Date and Time",monthPlaceholder:"Select Month",yearPlaceholder:"Select Year",quarterPlaceholder:"Select Quarter",weekPlaceholder:"Select Week",startDatePlaceholder:"Start Date",endDatePlaceholder:"End Date",startDatetimePlaceholder:"Start Date and Time",endDatetimePlaceholder:"End Date and Time",startMonthPlaceholder:"Start Month",endMonthPlaceholder:"End Month",monthBeforeYear:!0,firstDayOfWeek:6,today:"Today"},DataTable:{checkTableAll:"Select all in the table",uncheckTableAll:"Unselect all in the table",confirm:"Confirm",clear:"Clear"},LegacyTransfer:{sourceTitle:"Source",targetTitle:"Target"},Transfer:{selectAll:"Select all",unselectAll:"Unselect all",clearAll:"Clear",total:e=>`Total ${e} items`,selected:e=>`${e} items selected`},Empty:{description:"No Data"},Select:{placeholder:"Please Select"},TimePicker:{placeholder:"Select Time",positiveText:"OK",negativeText:"Cancel",now:"Now",clear:"Clear"},Pagination:{goto:"Goto",selectionSuffix:"page"},DynamicTags:{add:"Add"},Log:{loading:"Loading"},Input:{placeholder:"Please Input"},InputNumber:{placeholder:"Please Input"},DynamicInput:{create:"Create"},ThemeEditor:{title:"Theme Editor",clearAllVars:"Clear All Variables",clearSearch:"Clear Search",filterCompName:"Filter Component Name",filterVarName:"Filter Variable Name",import:"Import",export:"Export",restore:"Reset to Default"},Image:{tipPrevious:"Previous picture (←)",tipNext:"Next picture (→)",tipCounterclockwise:"Counterclockwise",tipClockwise:"Clockwise",tipZoomOut:"Zoom out",tipZoomIn:"Zoom in",tipDownload:"Download",tipClose:"Close (Esc)",tipOriginalSize:"Zoom to original size"},Heatmap:{less:"less",more:"more",monthFormat:"MMM",weekdayFormat:"eee"}};function ls(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function ii(e){return(t,n)=>{const o=n?.context?String(n.context):"standalone";let r;if(o==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,a=n?.width?String(n.width):l;r=e.formattingValues[a]||e.formattingValues[l]}else{const l=e.defaultWidth,a=n?.width?String(n.width):e.defaultWidth;r=e.values[a]||e.values[l]}const i=e.argumentCallback?e.argumentCallback(t):t;return r[i]}}function li(e){return(t,n={})=>{const o=n.width,r=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],i=t.match(r);if(!i)return null;const l=i[0],a=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],s=Array.isArray(a)?Bx(a,f=>f.test(l)):Mx(a,f=>f.test(l));let d;d=e.valueCallback?e.valueCallback(s):s,d=n.valueCallback?n.valueCallback(d):d;const c=t.slice(l.length);return{value:d,rest:c}}}function Mx(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Bx(e,t){for(let n=0;n{const o=t.match(e.matchPattern);if(!o)return null;const r=o[0],i=t.match(e.parsePattern);if(!i)return null;let l=e.valueCallback?e.valueCallback(i[0]):i[0];l=n.valueCallback?n.valueCallback(l):l;const a=t.slice(r.length);return{value:l,rest:a}}}const Ix={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Lx=(e,t,n)=>{let o;const r=Ix[e];return typeof r=="string"?o=r:t===1?o=r.one:o=r.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+o:o+" ago":o},Dx={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Hx=(e,t,n,o)=>Dx[e],Nx={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},jx={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Wx={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Vx={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Kx={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Ux={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Gx=(e,t)=>{const n=Number(e),o=n%100;if(o>20||o<10)switch(o%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},qx={ordinalNumber:Gx,era:ii({values:Nx,defaultWidth:"wide"}),quarter:ii({values:jx,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ii({values:Wx,defaultWidth:"wide"}),day:ii({values:Vx,defaultWidth:"wide"}),dayPeriod:ii({values:Kx,defaultWidth:"wide",formattingValues:Ux,defaultFormattingWidth:"wide"})},Xx=/^(\d+)(th|st|nd|rd)?/i,Yx=/\d+/i,Zx={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Jx={any:[/^b/i,/^(a|c)/i]},Qx={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},ew={any:[/1/i,/2/i,/3/i,/4/i]},tw={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},nw={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},ow={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},rw={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},iw={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},lw={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},aw={ordinalNumber:Ax({matchPattern:Xx,parsePattern:Yx,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:Zx,defaultMatchWidth:"wide",parsePatterns:Jx,defaultParseWidth:"any"}),quarter:li({matchPatterns:Qx,defaultMatchWidth:"wide",parsePatterns:ew,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:tw,defaultMatchWidth:"wide",parsePatterns:nw,defaultParseWidth:"any"}),day:li({matchPatterns:ow,defaultMatchWidth:"wide",parsePatterns:rw,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:iw,defaultMatchWidth:"any",parsePatterns:lw,defaultParseWidth:"any"})},sw={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},dw={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},cw={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},uw={date:ls({formats:sw,defaultWidth:"full"}),time:ls({formats:dw,defaultWidth:"full"}),dateTime:ls({formats:cw,defaultWidth:"full"})},fw={code:"en-US",formatDistance:Lx,formatLong:uw,formatRelative:Hx,localize:qx,match:aw,options:{weekStartsOn:0,firstWeekContainsDate:1}},hw={name:"en-US",locale:fw};var Yp=typeof global=="object"&&global&&global.Object===Object&&global,pw=typeof self=="object"&&self&&self.Object===Object&&self,On=Yp||pw||Function("return this")(),Mo=On.Symbol,Zp=Object.prototype,vw=Zp.hasOwnProperty,gw=Zp.toString,ai=Mo?Mo.toStringTag:void 0;function bw(e){var t=vw.call(e,ai),n=e[ai];try{e[ai]=void 0;var o=!0}catch{}var r=gw.call(e);return o&&(t?e[ai]=n:delete e[ai]),r}var mw=Object.prototype,yw=mw.toString;function xw(e){return yw.call(e)}var ww="[object Null]",Cw="[object Undefined]",Du=Mo?Mo.toStringTag:void 0;function cr(e){return e==null?e===void 0?Cw:ww:Du&&Du in Object(e)?bw(e):xw(e)}function Bo(e){return e!=null&&typeof e=="object"}var Sw="[object Symbol]";function ha(e){return typeof e=="symbol"||Bo(e)&&cr(e)==Sw}function Jp(e,t){for(var n=-1,o=e==null?0:e.length,r=Array(o);++n0){if(++t>=Zw)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function tC(e){return function(){return e}}var Ll=(function(){try{var e=fr(Object,"defineProperty");return e({},"",{}),e}catch{}})(),nC=Ll?function(e,t){return Ll(e,"toString",{configurable:!0,enumerable:!1,value:tC(t),writable:!0})}:Hd,oC=eC(nC),rC=9007199254740991,iC=/^(?:0|[1-9]\d*)$/;function jd(e,t){var n=typeof e;return t=t??rC,!!t&&(n=="number"||n!="symbol"&&iC.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=fC}function Wr(e){return e!=null&&Vd(e.length)&&!Nd(e)}function hC(e,t,n){if(!wn(n))return!1;var o=typeof t;return(o=="number"?Wr(n)&&jd(t,n.length):o=="string"&&t in n)?qi(n[t],e):!1}function pC(e){return uC(function(t,n){var o=-1,r=n.length,i=r>1?n[r-1]:void 0,l=r>2?n[2]:void 0;for(i=e.length>3&&typeof i=="function"?(r--,i):void 0,l&&hC(n[0],n[1],l)&&(i=r<3?void 0:i,r=1),t=Object(t);++o-1}function k1(e,t){var n=this.__data__,o=pa(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function vo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++tr?0:r+t),n=n>r?r:n,n<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(r);++o=o?e:K1(e,t,n)}var G1="\\ud800-\\udfff",q1="\\u0300-\\u036f",X1="\\ufe20-\\ufe2f",Y1="\\u20d0-\\u20ff",Z1=q1+X1+Y1,J1="\\ufe0e\\ufe0f",Q1="\\u200d",eS=RegExp("["+Q1+G1+Z1+J1+"]");function uv(e){return eS.test(e)}function tS(e){return e.split("")}var fv="\\ud800-\\udfff",nS="\\u0300-\\u036f",oS="\\ufe20-\\ufe2f",rS="\\u20d0-\\u20ff",iS=nS+oS+rS,lS="\\ufe0e\\ufe0f",aS="["+fv+"]",Us="["+iS+"]",Gs="\\ud83c[\\udffb-\\udfff]",sS="(?:"+Us+"|"+Gs+")",hv="[^"+fv+"]",pv="(?:\\ud83c[\\udde6-\\uddff]){2}",vv="[\\ud800-\\udbff][\\udc00-\\udfff]",dS="\\u200d",gv=sS+"?",bv="["+lS+"]?",cS="(?:"+dS+"(?:"+[hv,pv,vv].join("|")+")"+bv+gv+")*",uS=bv+gv+cS,fS="(?:"+[hv+Us+"?",Us,pv,vv,aS].join("|")+")",hS=RegExp(Gs+"(?="+Gs+")|"+fS+uS,"g");function pS(e){return e.match(hS)||[]}function vS(e){return uv(e)?pS(e):tS(e)}function gS(e){return function(t){t=lv(t);var n=uv(t)?vS(t):void 0,o=n?n[0]:t.charAt(0),r=n?U1(n,1).join(""):t.slice(1);return o[e]()+r}}var bS=gS("toUpperCase");function mS(){this.__data__=new vo,this.size=0}function yS(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function xS(e){return this.__data__.get(e)}function wS(e){return this.__data__.has(e)}var CS=200;function SS(e,t){var n=this.__data__;if(n instanceof vo){var o=n.__data__;if(!Hi||o.lengtha))return!1;var d=i.get(e),c=i.get(t);if(d&&c)return d==t&&c==e;var f=-1,v=!0,g=n&GS?new jl:void 0;for(i.set(e,t),i.set(t,e);++f=t||C<0||f&&w>=i}function m(){var R=cs();if(b(R))return y(R);a=setTimeout(m,p(R))}function y(R){return a=void 0,v&&o?g(R):(o=r=void 0,l)}function $(){a!==void 0&&clearTimeout(a),d=0,o=s=r=a=void 0}function S(){return a===void 0?l:y(cs())}function x(){var R=cs(),C=b(R);if(o=arguments,r=this,s=R,C){if(a===void 0)return u(s);if(f)return clearTimeout(a),a=setTimeout(m,t),g(s)}return a===void 0&&(a=setTimeout(m,t)),l}return x.cancel=$,x.flush=S,x}function Zs(e,t,n){(n!==void 0&&!qi(e[t],n)||n===void 0&&!(t in e))&&Wd(e,t,n)}function HR(e){return Bo(e)&&Wr(e)}function Js(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function NR(e){return dC(e,iv(e))}function jR(e,t,n,o,r,i,l){var a=Js(e,n),s=Js(t,n),d=l.get(s);if(d){Zs(e,n,d);return}var c=i?i(a,s,n+"",e,t,l):void 0,f=c===void 0;if(f){var v=xn(s),g=!v&&Hl(s),u=!v&&!g&&Ud(s);c=s,v||g||u?xn(a)?c=a:HR(a)?c=Yw(a):g?(f=!1,c=kS(s)):u?(f=!1,c=DS(s)):c=[]:V1(s)||Dl(s)?(c=a,Dl(a)?c=NR(a):(!wn(a)||Nd(a))&&(c=HS(s))):f=!1}f&&(l.set(s,c),r(c,s,o,i,l),l.delete(s)),Zs(e,n,c)}function Sv(e,t,n,o,r){e!==t&&Cv(t,function(i,l){if(r||(r=new Gn),wn(i))jR(e,t,l,n,Sv,o,r);else{var a=o?o(Js(e,l),i,l+"",e,t,r):void 0;a===void 0&&(a=i),Zs(e,l,a)}},iv)}function WR(e,t){var n=-1,o=Wr(e)?Array(e.length):[];return BR(e,function(r,i,l){o[++n]=t(r,i,l)}),o}function VR(e,t){var n=xn(e)?Jp:WR;return n(e,FR(t))}var hi=pC(function(e,t,n){Sv(e,t,n)}),KR="Expected a function";function UR(e,t,n){var o=!0,r=!0;if(typeof e!="function")throw new TypeError(KR);return wn(n)&&(o="leading"in n?!!n.leading:o,r="trailing"in n?!!n.trailing:r),DR(e,t,{leading:o,maxWait:t,trailing:r})}function Xi(e){const{mergedLocaleRef:t,mergedDateLocaleRef:n}=Ee(Fn,null)||{},o=O(()=>{var i,l;return(l=(i=t?.value)===null||i===void 0?void 0:i[e])!==null&&l!==void 0?l:Ex[e]});return{dateLocaleRef:O(()=>{var i;return(i=n?.value)!==null&&i!==void 0?i:hw}),localeRef:o}}const Hr="naive-ui-style";function Bt(e,t,n){if(!t)return;const o=Ho(),r=O(()=>{const{value:a}=t;if(!a)return;const s=a[e];if(s)return s}),i=Ee(Fn,null),l=()=>{en(()=>{const{value:a}=n,s=`${a}${e}Rtl`;if(G0(s,o))return;const{value:d}=r;d&&d.style.mount({id:s,head:!0,anchorMetaName:Hr,props:{bPrefix:a?`.${a}-`:void 0},ssr:o,parent:i?.styleMountTarget})})};return o?l():Io(l),r}const hr={fontFamily:'v-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',fontFamilyMono:"v-mono, SFMono-Regular, Menlo, Consolas, Courier, monospace",fontWeight:"400",fontWeightStrong:"500",cubicBezierEaseInOut:"cubic-bezier(.4, 0, .2, 1)",cubicBezierEaseOut:"cubic-bezier(0, 0, .2, 1)",cubicBezierEaseIn:"cubic-bezier(.4, 0, 1, 1)",borderRadius:"3px",borderRadiusSmall:"2px",fontSize:"14px",fontSizeMini:"12px",fontSizeTiny:"12px",fontSizeSmall:"14px",fontSizeMedium:"14px",fontSizeLarge:"15px",fontSizeHuge:"16px",lineHeight:"1.6",heightMini:"16px",heightTiny:"22px",heightSmall:"28px",heightMedium:"34px",heightLarge:"40px",heightHuge:"46px"},{fontSize:GR,fontFamily:qR,lineHeight:XR}=hr,Rv=I("body",` + margin: 0; + font-size: ${GR}; + font-family: ${qR}; + line-height: ${XR}; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; +`,[I("input",` + font-family: inherit; + font-size: inherit; + `)]);function pr(e,t,n){if(!t)return;const o=Ho(),r=Ee(Fn,null),i=()=>{const l=n.value;t.mount({id:l===void 0?e:l+e,head:!0,anchorMetaName:Hr,props:{bPrefix:l?`.${l}-`:void 0},ssr:o,parent:r?.styleMountTarget}),r?.preflightStyleDisabled||Rv.mount({id:"n-global",head:!0,anchorMetaName:Hr,ssr:o,parent:r?.styleMountTarget})};o?i():Io(i)}function Be(e,t,n,o,r,i){const l=Ho(),a=Ee(Fn,null);if(n){const d=()=>{const c=i?.value;n.mount({id:c===void 0?t:c+t,head:!0,props:{bPrefix:c?`.${c}-`:void 0},anchorMetaName:Hr,ssr:l,parent:a?.styleMountTarget}),a?.preflightStyleDisabled||Rv.mount({id:"n-global",head:!0,anchorMetaName:Hr,ssr:l,parent:a?.styleMountTarget})};l?d():Io(d)}return O(()=>{var d;const{theme:{common:c,self:f,peers:v={}}={},themeOverrides:g={},builtinThemeOverrides:u={}}=r,{common:p,peers:b}=g,{common:m=void 0,[e]:{common:y=void 0,self:$=void 0,peers:S={}}={}}=a?.mergedThemeRef.value||{},{common:x=void 0,[e]:R={}}=a?.mergedThemeOverridesRef.value||{},{common:C,peers:w={}}=R,k=hi({},c||y||m||o.common,x,C,p),F=hi((d=f||$||o.self)===null||d===void 0?void 0:d(k),u,R,g);return{common:k,self:F,peers:hi({},o.peers,S,v),peerOverrides:hi({},u.peers,w,b)}})}Be.props={theme:Object,themeOverrides:Object,builtinThemeOverrides:Object};const YR=P("base-icon",` + height: 1em; + width: 1em; + line-height: 1em; + text-align: center; + display: inline-block; + position: relative; + fill: currentColor; +`,[I("svg",` + height: 1em; + width: 1em; + `)]),kt=pe({name:"BaseIcon",props:{role:String,ariaLabel:String,ariaDisabled:{type:Boolean,default:void 0},ariaHidden:{type:Boolean,default:void 0},clsPrefix:{type:String,required:!0},onClick:Function,onMousedown:Function,onMouseup:Function},setup(e){pr("-base-icon",YR,we(e,"clsPrefix"))},render(){return h("i",{class:`${this.clsPrefix}-base-icon`,onClick:this.onClick,onMousedown:this.onMousedown,onMouseup:this.onMouseup,role:this.role,"aria-label":this.ariaLabel,"aria-hidden":this.ariaHidden,"aria-disabled":this.ariaDisabled},this.$slots)}}),vr=pe({name:"BaseIconSwitchTransition",setup(e,{slots:t}){const n=jr();return()=>h(pn,{name:"icon-switch-transition",appear:n.value},t)}}),ZR=pe({name:"Add",render(){return h("svg",{width:"512",height:"512",viewBox:"0 0 512 512",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M256 112V400M400 256H112",stroke:"currentColor","stroke-width":"32","stroke-linecap":"round","stroke-linejoin":"round"}))}}),JR=pe({name:"ArrowDown",render(){return h("svg",{viewBox:"0 0 28 28",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M23.7916,15.2664 C24.0788,14.9679 24.0696,14.4931 23.7711,14.206 C23.4726,13.9188 22.9978,13.928 22.7106,14.2265 L14.7511,22.5007 L14.7511,3.74792 C14.7511,3.33371 14.4153,2.99792 14.0011,2.99792 C13.5869,2.99792 13.2511,3.33371 13.2511,3.74793 L13.2511,22.4998 L5.29259,14.2265 C5.00543,13.928 4.53064,13.9188 4.23213,14.206 C3.93361,14.4931 3.9244,14.9679 4.21157,15.2664 L13.2809,24.6944 C13.6743,25.1034 14.3289,25.1034 14.7223,24.6944 L23.7916,15.2664 Z"}))))}});function Vr(e,t){const n=pe({render(){return t()}});return pe({name:bS(e),setup(){var o;const r=(o=Ee(Fn,null))===null||o===void 0?void 0:o.mergedIconsRef;return()=>{var i;const l=(i=r?.value)===null||i===void 0?void 0:i[e];return l?l():h(n,null)}}})}const ff=pe({name:"Backward",render(){return h("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M12.2674 15.793C11.9675 16.0787 11.4927 16.0672 11.2071 15.7673L6.20572 10.5168C5.9298 10.2271 5.9298 9.7719 6.20572 9.48223L11.2071 4.23177C11.4927 3.93184 11.9675 3.92031 12.2674 4.206C12.5673 4.49169 12.5789 4.96642 12.2932 5.26634L7.78458 9.99952L12.2932 14.7327C12.5789 15.0326 12.5673 15.5074 12.2674 15.793Z",fill:"currentColor"}))}}),QR=pe({name:"Checkmark",render(){return h("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},h("g",{fill:"none"},h("path",{d:"M14.046 3.486a.75.75 0 0 1-.032 1.06l-7.93 7.474a.85.85 0 0 1-1.188-.022l-2.68-2.72a.75.75 0 1 1 1.068-1.053l2.234 2.267l7.468-7.038a.75.75 0 0 1 1.06.032z",fill:"currentColor"})))}}),kv=pe({name:"ChevronDown",render(){return h("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M3.14645 5.64645C3.34171 5.45118 3.65829 5.45118 3.85355 5.64645L8 9.79289L12.1464 5.64645C12.3417 5.45118 12.6583 5.45118 12.8536 5.64645C13.0488 5.84171 13.0488 6.15829 12.8536 6.35355L8.35355 10.8536C8.15829 11.0488 7.84171 11.0488 7.64645 10.8536L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645Z",fill:"currentColor"}))}}),Pv=pe({name:"ChevronRight",render(){return h("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z",fill:"currentColor"}))}}),ek=Vr("clear",()=>h("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 C2,4.6862915 4.6862915,2 8,2 Z M6.5343055,5.83859116 C6.33943736,5.70359511 6.07001296,5.72288026 5.89644661,5.89644661 L5.89644661,5.89644661 L5.83859116,5.9656945 C5.70359511,6.16056264 5.72288026,6.42998704 5.89644661,6.60355339 L5.89644661,6.60355339 L7.293,8 L5.89644661,9.39644661 L5.83859116,9.4656945 C5.70359511,9.66056264 5.72288026,9.92998704 5.89644661,10.1035534 L5.89644661,10.1035534 L5.9656945,10.1614088 C6.16056264,10.2964049 6.42998704,10.2771197 6.60355339,10.1035534 L6.60355339,10.1035534 L8,8.707 L9.39644661,10.1035534 L9.4656945,10.1614088 C9.66056264,10.2964049 9.92998704,10.2771197 10.1035534,10.1035534 L10.1035534,10.1035534 L10.1614088,10.0343055 C10.2964049,9.83943736 10.2771197,9.57001296 10.1035534,9.39644661 L10.1035534,9.39644661 L8.707,8 L10.1035534,6.60355339 L10.1614088,6.5343055 C10.2964049,6.33943736 10.2771197,6.07001296 10.1035534,5.89644661 L10.1035534,5.89644661 L10.0343055,5.83859116 C9.83943736,5.70359511 9.57001296,5.72288026 9.39644661,5.89644661 L9.39644661,5.89644661 L8,7.293 L6.60355339,5.89644661 Z"}))))),tk=Vr("close",()=>h("svg",{viewBox:"0 0 12 12",version:"1.1",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M2.08859116,2.2156945 L2.14644661,2.14644661 C2.32001296,1.97288026 2.58943736,1.95359511 2.7843055,2.08859116 L2.85355339,2.14644661 L6,5.293 L9.14644661,2.14644661 C9.34170876,1.95118446 9.65829124,1.95118446 9.85355339,2.14644661 C10.0488155,2.34170876 10.0488155,2.65829124 9.85355339,2.85355339 L6.707,6 L9.85355339,9.14644661 C10.0271197,9.32001296 10.0464049,9.58943736 9.91140884,9.7843055 L9.85355339,9.85355339 C9.67998704,10.0271197 9.41056264,10.0464049 9.2156945,9.91140884 L9.14644661,9.85355339 L6,6.707 L2.85355339,9.85355339 C2.65829124,10.0488155 2.34170876,10.0488155 2.14644661,9.85355339 C1.95118446,9.65829124 1.95118446,9.34170876 2.14644661,9.14644661 L5.293,6 L2.14644661,2.85355339 C1.97288026,2.67998704 1.95359511,2.41056264 2.08859116,2.2156945 L2.14644661,2.14644661 L2.08859116,2.2156945 Z"}))))),nk=pe({name:"Empty",render(){return h("svg",{viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M26 7.5C26 11.0899 23.0899 14 19.5 14C15.9101 14 13 11.0899 13 7.5C13 3.91015 15.9101 1 19.5 1C23.0899 1 26 3.91015 26 7.5ZM16.8536 4.14645C16.6583 3.95118 16.3417 3.95118 16.1464 4.14645C15.9512 4.34171 15.9512 4.65829 16.1464 4.85355L18.7929 7.5L16.1464 10.1464C15.9512 10.3417 15.9512 10.6583 16.1464 10.8536C16.3417 11.0488 16.6583 11.0488 16.8536 10.8536L19.5 8.20711L22.1464 10.8536C22.3417 11.0488 22.6583 11.0488 22.8536 10.8536C23.0488 10.6583 23.0488 10.3417 22.8536 10.1464L20.2071 7.5L22.8536 4.85355C23.0488 4.65829 23.0488 4.34171 22.8536 4.14645C22.6583 3.95118 22.3417 3.95118 22.1464 4.14645L19.5 6.79289L16.8536 4.14645Z",fill:"currentColor"}),h("path",{d:"M25 22.75V12.5991C24.5572 13.0765 24.053 13.4961 23.5 13.8454V16H17.5L17.3982 16.0068C17.0322 16.0565 16.75 16.3703 16.75 16.75C16.75 18.2688 15.5188 19.5 14 19.5C12.4812 19.5 11.25 18.2688 11.25 16.75L11.2432 16.6482C11.1935 16.2822 10.8797 16 10.5 16H4.5V7.25C4.5 6.2835 5.2835 5.5 6.25 5.5H12.2696C12.4146 4.97463 12.6153 4.47237 12.865 4H6.25C4.45507 4 3 5.45507 3 7.25V22.75C3 24.5449 4.45507 26 6.25 26H21.75C23.5449 26 25 24.5449 25 22.75ZM4.5 22.75V17.5H9.81597L9.85751 17.7041C10.2905 19.5919 11.9808 21 14 21L14.215 20.9947C16.2095 20.8953 17.842 19.4209 18.184 17.5H23.5V22.75C23.5 23.7165 22.7165 24.5 21.75 24.5H6.25C5.2835 24.5 4.5 23.7165 4.5 22.75Z",fill:"currentColor"}))}}),Zd=Vr("error",()=>h("svg",{viewBox:"0 0 48 48",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M17.8838835,16.1161165 L17.7823881,16.0249942 C17.3266086,15.6583353 16.6733914,15.6583353 16.2176119,16.0249942 L16.1161165,16.1161165 L16.0249942,16.2176119 C15.6583353,16.6733914 15.6583353,17.3266086 16.0249942,17.7823881 L16.1161165,17.8838835 L22.233,24 L16.1161165,30.1161165 L16.0249942,30.2176119 C15.6583353,30.6733914 15.6583353,31.3266086 16.0249942,31.7823881 L16.1161165,31.8838835 L16.2176119,31.9750058 C16.6733914,32.3416647 17.3266086,32.3416647 17.7823881,31.9750058 L17.8838835,31.8838835 L24,25.767 L30.1161165,31.8838835 L30.2176119,31.9750058 C30.6733914,32.3416647 31.3266086,32.3416647 31.7823881,31.9750058 L31.8838835,31.8838835 L31.9750058,31.7823881 C32.3416647,31.3266086 32.3416647,30.6733914 31.9750058,30.2176119 L31.8838835,30.1161165 L25.767,24 L31.8838835,17.8838835 L31.9750058,17.7823881 C32.3416647,17.3266086 32.3416647,16.6733914 31.9750058,16.2176119 L31.8838835,16.1161165 L31.7823881,16.0249942 C31.3266086,15.6583353 30.6733914,15.6583353 30.2176119,16.0249942 L30.1161165,16.1161165 L24,22.233 L17.8838835,16.1161165 L17.7823881,16.0249942 L17.8838835,16.1161165 Z"}))))),ok=pe({name:"Eye",render(){return h("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},h("path",{d:"M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"}),h("circle",{cx:"256",cy:"256",r:"80",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}))}}),rk=pe({name:"EyeOff",render(){return h("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},h("path",{d:"M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z",fill:"currentColor"}),h("path",{d:"M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z",fill:"currentColor"}),h("path",{d:"M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z",fill:"currentColor"}),h("path",{d:"M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z",fill:"currentColor"}),h("path",{d:"M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z",fill:"currentColor"}))}}),hf=pe({name:"FastBackward",render(){return h("svg",{viewBox:"0 0 20 20",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M8.73171,16.7949 C9.03264,17.0795 9.50733,17.0663 9.79196,16.7654 C10.0766,16.4644 10.0634,15.9897 9.76243,15.7051 L4.52339,10.75 L17.2471,10.75 C17.6613,10.75 17.9971,10.4142 17.9971,10 C17.9971,9.58579 17.6613,9.25 17.2471,9.25 L4.52112,9.25 L9.76243,4.29275 C10.0634,4.00812 10.0766,3.53343 9.79196,3.2325 C9.50733,2.93156 9.03264,2.91834 8.73171,3.20297 L2.31449,9.27241 C2.14819,9.4297 2.04819,9.62981 2.01448,9.8386 C2.00308,9.89058 1.99707,9.94459 1.99707,10 C1.99707,10.0576 2.00356,10.1137 2.01585,10.1675 C2.05084,10.3733 2.15039,10.5702 2.31449,10.7254 L8.73171,16.7949 Z"}))))}}),pf=pe({name:"FastForward",render(){return h("svg",{viewBox:"0 0 20 20",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z"}))))}}),ik=pe({name:"Filter",render(){return h("svg",{viewBox:"0 0 28 28",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M17,19 C17.5522847,19 18,19.4477153 18,20 C18,20.5522847 17.5522847,21 17,21 L11,21 C10.4477153,21 10,20.5522847 10,20 C10,19.4477153 10.4477153,19 11,19 L17,19 Z M21,13 C21.5522847,13 22,13.4477153 22,14 C22,14.5522847 21.5522847,15 21,15 L7,15 C6.44771525,15 6,14.5522847 6,14 C6,13.4477153 6.44771525,13 7,13 L21,13 Z M24,7 C24.5522847,7 25,7.44771525 25,8 C25,8.55228475 24.5522847,9 24,9 L4,9 C3.44771525,9 3,8.55228475 3,8 C3,7.44771525 3.44771525,7 4,7 L24,7 Z"}))))}}),vf=pe({name:"Forward",render(){return h("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M7.73271 4.20694C8.03263 3.92125 8.50737 3.93279 8.79306 4.23271L13.7944 9.48318C14.0703 9.77285 14.0703 10.2281 13.7944 10.5178L8.79306 15.7682C8.50737 16.0681 8.03263 16.0797 7.73271 15.794C7.43279 15.5083 7.42125 15.0336 7.70694 14.7336L12.2155 10.0005L7.70694 5.26729C7.42125 4.96737 7.43279 4.49264 7.73271 4.20694Z",fill:"currentColor"}))}}),Wl=Vr("info",()=>h("svg",{viewBox:"0 0 28 28",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M14,2 C20.6274,2 26,7.37258 26,14 C26,20.6274 20.6274,26 14,26 C7.37258,26 2,20.6274 2,14 C2,7.37258 7.37258,2 14,2 Z M14,11 C13.4477,11 13,11.4477 13,12 L13,12 L13,20 C13,20.5523 13.4477,21 14,21 C14.5523,21 15,20.5523 15,20 L15,20 L15,12 C15,11.4477 14.5523,11 14,11 Z M14,6.75 C13.3096,6.75 12.75,7.30964 12.75,8 C12.75,8.69036 13.3096,9.25 14,9.25 C14.6904,9.25 15.25,8.69036 15.25,8 C15.25,7.30964 14.6904,6.75 14,6.75 Z"}))))),gf=pe({name:"More",render(){return h("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},h("g",{fill:"currentColor","fill-rule":"nonzero"},h("path",{d:"M4,7 C4.55228,7 5,7.44772 5,8 C5,8.55229 4.55228,9 4,9 C3.44772,9 3,8.55229 3,8 C3,7.44772 3.44772,7 4,7 Z M8,7 C8.55229,7 9,7.44772 9,8 C9,8.55229 8.55229,9 8,9 C7.44772,9 7,8.55229 7,8 C7,7.44772 7.44772,7 8,7 Z M12,7 C12.5523,7 13,7.44772 13,8 C13,8.55229 12.5523,9 12,9 C11.4477,9 11,8.55229 11,8 C11,7.44772 11.4477,7 12,7 Z"}))))}}),Jd=Vr("success",()=>h("svg",{viewBox:"0 0 48 48",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M32.6338835,17.6161165 C32.1782718,17.1605048 31.4584514,17.1301307 30.9676119,17.5249942 L30.8661165,17.6161165 L20.75,27.732233 L17.1338835,24.1161165 C16.6457281,23.6279612 15.8542719,23.6279612 15.3661165,24.1161165 C14.9105048,24.5717282 14.8801307,25.2915486 15.2749942,25.7823881 L15.3661165,25.8838835 L19.8661165,30.3838835 C20.3217282,30.8394952 21.0415486,30.8698693 21.5323881,30.4750058 L21.6338835,30.3838835 L32.6338835,19.3838835 C33.1220388,18.8957281 33.1220388,18.1042719 32.6338835,17.6161165 Z"}))))),Qd=Vr("warning",()=>h("svg",{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},h("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},h("g",{"fill-rule":"nonzero"},h("path",{d:"M12,2 C17.523,2 22,6.478 22,12 C22,17.522 17.523,22 12,22 C6.477,22 2,17.522 2,12 C2,6.478 6.477,2 12,2 Z M12.0018002,15.0037242 C11.450254,15.0037242 11.0031376,15.4508407 11.0031376,16.0023869 C11.0031376,16.553933 11.450254,17.0010495 12.0018002,17.0010495 C12.5533463,17.0010495 13.0004628,16.553933 13.0004628,16.0023869 C13.0004628,15.4508407 12.5533463,15.0037242 12.0018002,15.0037242 Z M11.99964,7 C11.4868042,7.00018474 11.0642719,7.38637706 11.0066858,7.8837365 L11,8.00036004 L11.0018003,13.0012393 L11.00857,13.117858 C11.0665141,13.6151758 11.4893244,14.0010638 12.0021602,14.0008793 C12.514996,14.0006946 12.9375283,13.6145023 12.9951144,13.1171428 L13.0018002,13.0005193 L13,7.99964009 L12.9932303,7.8830214 C12.9352861,7.38570354 12.5124758,6.99981552 11.99964,7 Z"}))))),{cubicBezierEaseInOut:lk}=hr;function an({originalTransform:e="",left:t=0,top:n=0,transition:o=`all .3s ${lk} !important`}={}){return[I("&.icon-switch-transition-enter-from, &.icon-switch-transition-leave-to",{transform:`${e} scale(0.75)`,left:t,top:n,opacity:0}),I("&.icon-switch-transition-enter-to, &.icon-switch-transition-leave-from",{transform:`scale(1) ${e}`,left:t,top:n,opacity:1}),I("&.icon-switch-transition-enter-active, &.icon-switch-transition-leave-active",{transformOrigin:"center",position:"absolute",left:t,top:n,transition:o})]}const ak=P("base-clear",` + flex-shrink: 0; + height: 1em; + width: 1em; + position: relative; +`,[I(">",[j("clear",` + font-size: var(--n-clear-size); + height: 1em; + width: 1em; + cursor: pointer; + color: var(--n-clear-color); + transition: color .3s var(--n-bezier); + display: flex; + `,[I("&:hover",` + color: var(--n-clear-color-hover)!important; + `),I("&:active",` + color: var(--n-clear-color-pressed)!important; + `)]),j("placeholder",` + display: flex; + `),j("clear, placeholder",` + position: absolute; + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + `,[an({originalTransform:"translateX(-50%) translateY(-50%)",left:"50%",top:"50%"})])])]),Qs=pe({name:"BaseClear",props:{clsPrefix:{type:String,required:!0},show:Boolean,onClear:Function},setup(e){return pr("-base-clear",ak,we(e,"clsPrefix")),{handleMouseDown(t){t.preventDefault()}}},render(){const{clsPrefix:e}=this;return h("div",{class:`${e}-base-clear`},h(vr,null,{default:()=>{var t,n;return this.show?h("div",{key:"dismiss",class:`${e}-base-clear__clear`,onClick:this.onClear,onMousedown:this.handleMouseDown,"data-clear":!0},$n(this.$slots.icon,()=>[h(kt,{clsPrefix:e},{default:()=>h(ek,null)})])):h("div",{key:"icon",class:`${e}-base-clear__placeholder`},(n=(t=this.$slots).placeholder)===null||n===void 0?void 0:n.call(t))}}))}}),sk=P("base-close",` + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + background-color: transparent; + color: var(--n-close-icon-color); + border-radius: var(--n-close-border-radius); + height: var(--n-close-size); + width: var(--n-close-size); + font-size: var(--n-close-icon-size); + outline: none; + border: none; + position: relative; + padding: 0; +`,[H("absolute",` + height: var(--n-close-icon-size); + width: var(--n-close-icon-size); + `),I("&::before",` + content: ""; + position: absolute; + width: var(--n-close-size); + height: var(--n-close-size); + left: 50%; + top: 50%; + transform: translateY(-50%) translateX(-50%); + transition: inherit; + border-radius: inherit; + `),dt("disabled",[I("&:hover",` + color: var(--n-close-icon-color-hover); + `),I("&:hover::before",` + background-color: var(--n-close-color-hover); + `),I("&:focus::before",` + background-color: var(--n-close-color-hover); + `),I("&:active",` + color: var(--n-close-icon-color-pressed); + `),I("&:active::before",` + background-color: var(--n-close-color-pressed); + `)]),H("disabled",` + cursor: not-allowed; + color: var(--n-close-icon-color-disabled); + background-color: transparent; + `),H("round",[I("&::before",` + border-radius: 50%; + `)])]),Kr=pe({name:"BaseClose",props:{isButtonTag:{type:Boolean,default:!0},clsPrefix:{type:String,required:!0},disabled:{type:Boolean,default:void 0},focusable:{type:Boolean,default:!0},round:Boolean,onClick:Function,absolute:Boolean},setup(e){return pr("-base-close",sk,we(e,"clsPrefix")),()=>{const{clsPrefix:t,disabled:n,absolute:o,round:r,isButtonTag:i}=e;return h(i?"button":"div",{type:i?"button":void 0,tabindex:n||!e.focusable?-1:0,"aria-disabled":n,"aria-label":"close",role:i?void 0:"button",disabled:n,class:[`${t}-base-close`,o&&`${t}-base-close--absolute`,n&&`${t}-base-close--disabled`,r&&`${t}-base-close--round`],onMousedown:a=>{e.focusable||a.preventDefault()},onClick:e.onClick},h(kt,{clsPrefix:t},{default:()=>h(tk,null)}))}}}),$v=pe({name:"FadeInExpandTransition",props:{appear:Boolean,group:Boolean,mode:String,onLeave:Function,onAfterLeave:Function,onAfterEnter:Function,width:Boolean,reverse:Boolean},setup(e,{slots:t}){function n(a){e.width?a.style.maxWidth=`${a.offsetWidth}px`:a.style.maxHeight=`${a.offsetHeight}px`,a.offsetWidth}function o(a){e.width?a.style.maxWidth="0":a.style.maxHeight="0",a.offsetWidth;const{onLeave:s}=e;s&&s()}function r(a){e.width?a.style.maxWidth="":a.style.maxHeight="";const{onAfterLeave:s}=e;s&&s()}function i(a){if(a.style.transition="none",e.width){const s=a.offsetWidth;a.style.maxWidth="0",a.offsetWidth,a.style.transition="",a.style.maxWidth=`${s}px`}else if(e.reverse)a.style.maxHeight=`${a.offsetHeight}px`,a.offsetHeight,a.style.transition="",a.style.maxHeight="0";else{const s=a.offsetHeight;a.style.maxHeight="0",a.offsetWidth,a.style.transition="",a.style.maxHeight=`${s}px`}a.offsetWidth}function l(a){var s;e.width?a.style.maxWidth="":e.reverse||(a.style.maxHeight=""),(s=e.onAfterEnter)===null||s===void 0||s.call(e)}return()=>{const{group:a,width:s,appear:d,mode:c}=e,f=a?dp:pn,v={name:s?"fade-in-width-expand-transition":"fade-in-height-expand-transition",appear:d,onEnter:i,onAfterEnter:l,onBeforeLeave:n,onLeave:o,onAfterLeave:r};return a||(v.mode=c),h(f,v,t)}}}),dk=pe({props:{onFocus:Function,onBlur:Function},setup(e){return()=>h("div",{style:"width: 0; height: 0",tabindex:0,onFocus:e.onFocus,onBlur:e.onBlur})}}),ck=I([I("@keyframes rotator",` + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + }`),P("base-loading",` + position: relative; + line-height: 0; + width: 1em; + height: 1em; + `,[j("transition-wrapper",` + position: absolute; + width: 100%; + height: 100%; + `,[an()]),j("placeholder",` + position: absolute; + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + `,[an({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),j("container",` + animation: rotator 3s linear infinite both; + `,[j("icon",` + height: 1em; + width: 1em; + `)])])]),us="1.6s",uk={strokeWidth:{type:Number,default:28},stroke:{type:String,default:void 0},scale:{type:Number,default:1},radius:{type:Number,default:100}},gr=pe({name:"BaseLoading",props:Object.assign({clsPrefix:{type:String,required:!0},show:{type:Boolean,default:!0}},uk),setup(e){pr("-base-loading",ck,we(e,"clsPrefix"))},render(){const{clsPrefix:e,radius:t,strokeWidth:n,stroke:o,scale:r}=this,i=t/r;return h("div",{class:`${e}-base-loading`,role:"img","aria-label":"loading"},h(vr,null,{default:()=>this.show?h("div",{key:"icon",class:`${e}-base-loading__transition-wrapper`},h("div",{class:`${e}-base-loading__container`},h("svg",{class:`${e}-base-loading__icon`,viewBox:`0 0 ${2*i} ${2*i}`,xmlns:"http://www.w3.org/2000/svg",style:{color:o}},h("g",null,h("animateTransform",{attributeName:"transform",type:"rotate",values:`0 ${i} ${i};270 ${i} ${i}`,begin:"0s",dur:us,fill:"freeze",repeatCount:"indefinite"}),h("circle",{class:`${e}-base-loading__icon`,fill:"none",stroke:"currentColor","stroke-width":n,"stroke-linecap":"round",cx:i,cy:i,r:t-n/2,"stroke-dasharray":5.67*t,"stroke-dashoffset":18.48*t},h("animateTransform",{attributeName:"transform",type:"rotate",values:`0 ${i} ${i};135 ${i} ${i};450 ${i} ${i}`,begin:"0s",dur:us,fill:"freeze",repeatCount:"indefinite"}),h("animate",{attributeName:"stroke-dashoffset",values:`${5.67*t};${1.42*t};${5.67*t}`,begin:"0s",dur:us,fill:"freeze",repeatCount:"indefinite"})))))):h("div",{key:"placeholder",class:`${e}-base-loading__placeholder`},this.$slots)}))}}),{cubicBezierEaseInOut:bf}=hr;function ec({name:e="fade-in",enterDuration:t="0.2s",leaveDuration:n="0.2s",enterCubicBezier:o=bf,leaveCubicBezier:r=bf}={}){return[I(`&.${e}-transition-enter-active`,{transition:`all ${t} ${o}!important`}),I(`&.${e}-transition-leave-active`,{transition:`all ${n} ${r}!important`}),I(`&.${e}-transition-enter-from, &.${e}-transition-leave-to`,{opacity:0}),I(`&.${e}-transition-leave-from, &.${e}-transition-enter-to`,{opacity:1})]}const He={neutralBase:"#FFF",neutralInvertBase:"#000",neutralTextBase:"#000",neutralPopover:"#fff",neutralCard:"#fff",neutralModal:"#fff",neutralBody:"#fff",alpha1:"0.82",alpha2:"0.72",alpha3:"0.38",alpha4:"0.24",alpha5:"0.18",alphaClose:"0.6",alphaDisabled:"0.5",alphaAvatar:"0.2",alphaProgressRail:".08",alphaInput:"0",alphaScrollbar:"0.25",alphaScrollbarHover:"0.4",primaryHover:"#36ad6a",primaryDefault:"#18a058",primaryActive:"#0c7a43",primarySuppl:"#36ad6a",infoHover:"#4098fc",infoDefault:"#2080f0",infoActive:"#1060c9",infoSuppl:"#4098fc",errorHover:"#de576d",errorDefault:"#d03050",errorActive:"#ab1f3f",errorSuppl:"#de576d",warningHover:"#fcb040",warningDefault:"#f0a020",warningActive:"#c97c10",warningSuppl:"#fcb040",successHover:"#36ad6a",successDefault:"#18a058",successActive:"#0c7a43",successSuppl:"#36ad6a"},fk=ir(He.neutralBase),_v=ir(He.neutralInvertBase),hk=`rgba(${_v.slice(0,3).join(", ")}, `;function mf(e){return`${hk+String(e)})`}function jt(e){const t=Array.from(_v);return t[3]=Number(e),rt(fk,t)}const gt=Object.assign(Object.assign({name:"common"},hr),{baseColor:He.neutralBase,primaryColor:He.primaryDefault,primaryColorHover:He.primaryHover,primaryColorPressed:He.primaryActive,primaryColorSuppl:He.primarySuppl,infoColor:He.infoDefault,infoColorHover:He.infoHover,infoColorPressed:He.infoActive,infoColorSuppl:He.infoSuppl,successColor:He.successDefault,successColorHover:He.successHover,successColorPressed:He.successActive,successColorSuppl:He.successSuppl,warningColor:He.warningDefault,warningColorHover:He.warningHover,warningColorPressed:He.warningActive,warningColorSuppl:He.warningSuppl,errorColor:He.errorDefault,errorColorHover:He.errorHover,errorColorPressed:He.errorActive,errorColorSuppl:He.errorSuppl,textColorBase:He.neutralTextBase,textColor1:"rgb(31, 34, 37)",textColor2:"rgb(51, 54, 57)",textColor3:"rgb(118, 124, 130)",textColorDisabled:jt(He.alpha4),placeholderColor:jt(He.alpha4),placeholderColorDisabled:jt(He.alpha5),iconColor:jt(He.alpha4),iconColorHover:rl(jt(He.alpha4),{lightness:.75}),iconColorPressed:rl(jt(He.alpha4),{lightness:.9}),iconColorDisabled:jt(He.alpha5),opacity1:He.alpha1,opacity2:He.alpha2,opacity3:He.alpha3,opacity4:He.alpha4,opacity5:He.alpha5,dividerColor:"rgb(239, 239, 245)",borderColor:"rgb(224, 224, 230)",closeIconColor:jt(Number(He.alphaClose)),closeIconColorHover:jt(Number(He.alphaClose)),closeIconColorPressed:jt(Number(He.alphaClose)),closeColorHover:"rgba(0, 0, 0, .09)",closeColorPressed:"rgba(0, 0, 0, .13)",clearColor:jt(He.alpha4),clearColorHover:rl(jt(He.alpha4),{lightness:.75}),clearColorPressed:rl(jt(He.alpha4),{lightness:.9}),scrollbarColor:mf(He.alphaScrollbar),scrollbarColorHover:mf(He.alphaScrollbarHover),scrollbarWidth:"5px",scrollbarHeight:"5px",scrollbarBorderRadius:"5px",progressRailColor:jt(He.alphaProgressRail),railColor:"rgb(219, 219, 223)",popoverColor:He.neutralPopover,tableColor:He.neutralCard,cardColor:He.neutralCard,modalColor:He.neutralModal,bodyColor:He.neutralBody,tagColor:"#eee",avatarColor:jt(He.alphaAvatar),invertedColor:"rgb(0, 20, 40)",inputColor:jt(He.alphaInput),codeColor:"rgb(244, 244, 248)",tabColor:"rgb(247, 247, 250)",actionColor:"rgb(250, 250, 252)",tableHeaderColor:"rgb(250, 250, 252)",hoverColor:"rgb(243, 243, 245)",tableColorHover:"rgba(0, 0, 100, 0.03)",tableColorStriped:"rgba(0, 0, 100, 0.02)",pressedColor:"rgb(237, 237, 239)",opacityDisabled:He.alphaDisabled,inputColorDisabled:"rgb(250, 250, 252)",buttonColor2:"rgba(46, 51, 56, .05)",buttonColor2Hover:"rgba(46, 51, 56, .09)",buttonColor2Pressed:"rgba(46, 51, 56, .13)",boxShadow1:"0 1px 2px -2px rgba(0, 0, 0, .08), 0 3px 6px 0 rgba(0, 0, 0, .06), 0 5px 12px 4px rgba(0, 0, 0, .04)",boxShadow2:"0 3px 6px -4px rgba(0, 0, 0, .12), 0 6px 16px 0 rgba(0, 0, 0, .08), 0 9px 28px 8px rgba(0, 0, 0, .05)",boxShadow3:"0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)"}),pk={railInsetHorizontalBottom:"auto 2px 4px 2px",railInsetHorizontalTop:"4px 2px auto 2px",railInsetVerticalRight:"2px 4px 2px auto",railInsetVerticalLeft:"2px auto 2px 4px",railColor:"transparent"};function vk(e){const{scrollbarColor:t,scrollbarColorHover:n,scrollbarHeight:o,scrollbarWidth:r,scrollbarBorderRadius:i}=e;return Object.assign(Object.assign({},pk),{height:o,width:r,borderRadius:i,color:t,colorHover:n})}const jo={name:"Scrollbar",common:gt,self:vk},gk=P("scrollbar",` + overflow: hidden; + position: relative; + z-index: auto; + height: 100%; + width: 100%; +`,[I(">",[P("scrollbar-container",` + width: 100%; + overflow: scroll; + height: 100%; + min-height: inherit; + max-height: inherit; + scrollbar-width: none; + `,[I("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` + width: 0; + height: 0; + display: none; + `),I(">",[P("scrollbar-content",` + box-sizing: border-box; + min-width: 100%; + `)])])]),I(">, +",[P("scrollbar-rail",` + position: absolute; + pointer-events: none; + user-select: none; + background: var(--n-scrollbar-rail-color); + -webkit-user-select: none; + `,[H("horizontal",` + height: var(--n-scrollbar-height); + `,[I(">",[j("scrollbar",` + height: var(--n-scrollbar-height); + border-radius: var(--n-scrollbar-border-radius); + right: 0; + `)])]),H("horizontal--top",` + top: var(--n-scrollbar-rail-top-horizontal-top); + right: var(--n-scrollbar-rail-right-horizontal-top); + bottom: var(--n-scrollbar-rail-bottom-horizontal-top); + left: var(--n-scrollbar-rail-left-horizontal-top); + `),H("horizontal--bottom",` + top: var(--n-scrollbar-rail-top-horizontal-bottom); + right: var(--n-scrollbar-rail-right-horizontal-bottom); + bottom: var(--n-scrollbar-rail-bottom-horizontal-bottom); + left: var(--n-scrollbar-rail-left-horizontal-bottom); + `),H("vertical",` + width: var(--n-scrollbar-width); + `,[I(">",[j("scrollbar",` + width: var(--n-scrollbar-width); + border-radius: var(--n-scrollbar-border-radius); + bottom: 0; + `)])]),H("vertical--left",` + top: var(--n-scrollbar-rail-top-vertical-left); + right: var(--n-scrollbar-rail-right-vertical-left); + bottom: var(--n-scrollbar-rail-bottom-vertical-left); + left: var(--n-scrollbar-rail-left-vertical-left); + `),H("vertical--right",` + top: var(--n-scrollbar-rail-top-vertical-right); + right: var(--n-scrollbar-rail-right-vertical-right); + bottom: var(--n-scrollbar-rail-bottom-vertical-right); + left: var(--n-scrollbar-rail-left-vertical-right); + `),H("disabled",[I(">",[j("scrollbar","pointer-events: none;")])]),I(">",[j("scrollbar",` + z-index: 1; + position: absolute; + cursor: pointer; + pointer-events: all; + background-color: var(--n-scrollbar-color); + transition: background-color .2s var(--n-scrollbar-bezier); + `,[ec(),I("&:hover","background-color: var(--n-scrollbar-color-hover);")])])])])]),bk=Object.assign(Object.assign({},Be.props),{duration:{type:Number,default:0},scrollable:{type:Boolean,default:!0},xScrollable:Boolean,trigger:{type:String,default:"hover"},useUnifiedContainer:Boolean,triggerDisplayManually:Boolean,container:Function,content:Function,containerClass:String,containerStyle:[String,Object],contentClass:[String,Array],contentStyle:[String,Object],horizontalRailStyle:[String,Object],verticalRailStyle:[String,Object],onScroll:Function,onWheel:Function,onResize:Function,internalOnUpdateScrollLeft:Function,internalHoistYRail:Boolean,internalExposeWidthCssVar:Boolean,yPlacement:{type:String,default:"right"},xPlacement:{type:String,default:"bottom"}}),bo=pe({name:"Scrollbar",props:bk,inheritAttrs:!1,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedRtlRef:o}=Ye(e),r=Bt("Scrollbar",o,t),i=E(null),l=E(null),a=E(null),s=E(null),d=E(null),c=E(null),f=E(null),v=E(null),g=E(null),u=E(null),p=E(null),b=E(0),m=E(0),y=E(!1),$=E(!1);let S=!1,x=!1,R,C,w=0,k=0,F=0,M=0;const _=Sy(),T=Be("Scrollbar","-scrollbar",gk,jo,e,t),B=O(()=>{const{value:te}=v,{value:A}=c,{value:X}=u;return te===null||A===null||X===null?0:Math.min(te,X*te/A+Pt(T.value.self.width)*1.5)}),D=O(()=>`${B.value}px`),K=O(()=>{const{value:te}=g,{value:A}=f,{value:X}=p;return te===null||A===null||X===null?0:X*te/A+Pt(T.value.self.height)*1.5}),N=O(()=>`${K.value}px`),V=O(()=>{const{value:te}=v,{value:A}=b,{value:X}=c,{value:be}=u;if(te===null||X===null||be===null)return 0;{const _e=X-te;return _e?A/_e*(be-B.value):0}}),ie=O(()=>`${V.value}px`),he=O(()=>{const{value:te}=g,{value:A}=m,{value:X}=f,{value:be}=p;if(te===null||X===null||be===null)return 0;{const _e=X-te;return _e?A/_e*(be-K.value):0}}),J=O(()=>`${he.value}px`),re=O(()=>{const{value:te}=v,{value:A}=c;return te!==null&&A!==null&&A>te}),ye=O(()=>{const{value:te}=g,{value:A}=f;return te!==null&&A!==null&&A>te}),Z=O(()=>{const{trigger:te}=e;return te==="none"||y.value}),le=O(()=>{const{trigger:te}=e;return te==="none"||$.value}),$e=O(()=>{const{container:te}=e;return te?te():l.value}),ze=O(()=>{const{content:te}=e;return te?te():a.value}),Ae=(te,A)=>{if(!e.scrollable)return;if(typeof te=="number"){L(te,A??0,0,!1,"auto");return}const{left:X,top:be,index:_e,elSize:xe,position:ke,behavior:Ce,el:Fe,debounce:Ze=!0}=te;(X!==void 0||be!==void 0)&&L(X??0,be??0,0,!1,Ce),Fe!==void 0?L(0,Fe.offsetTop,Fe.offsetHeight,Ze,Ce):_e!==void 0&&xe!==void 0?L(0,_e*xe,xe,Ze,Ce):ke==="bottom"?L(0,Number.MAX_SAFE_INTEGER,0,!1,Ce):ke==="top"&&L(0,0,0,!1,Ce)},Te=zp(()=>{e.container||Ae({top:b.value,left:m.value})}),ne=()=>{Te.isDeactivated||Y()},Oe=te=>{if(Te.isDeactivated)return;const{onResize:A}=e;A&&A(te),Y()},z=(te,A)=>{if(!e.scrollable)return;const{value:X}=$e;X&&(typeof te=="object"?X.scrollBy(te):X.scrollBy(te,A||0))};function L(te,A,X,be,_e){const{value:xe}=$e;if(xe){if(be){const{scrollTop:ke,offsetHeight:Ce}=xe;if(A>ke){A+X<=ke+Ce||xe.scrollTo({left:te,top:A+X-Ce,behavior:_e});return}}xe.scrollTo({left:te,top:A,behavior:_e})}}function ee(){ve(),fe(),Y()}function se(){ae()}function ae(){Q(),ue()}function Q(){C!==void 0&&window.clearTimeout(C),C=window.setTimeout(()=>{$.value=!1},e.duration)}function ue(){R!==void 0&&window.clearTimeout(R),R=window.setTimeout(()=>{y.value=!1},e.duration)}function ve(){R!==void 0&&window.clearTimeout(R),y.value=!0}function fe(){C!==void 0&&window.clearTimeout(C),$.value=!0}function oe(te){const{onScroll:A}=e;A&&A(te),q()}function q(){const{value:te}=$e;te&&(b.value=te.scrollTop,m.value=te.scrollLeft*(r?.value?-1:1))}function G(){const{value:te}=ze;te&&(c.value=te.offsetHeight,f.value=te.offsetWidth);const{value:A}=$e;A&&(v.value=A.offsetHeight,g.value=A.offsetWidth);const{value:X}=d,{value:be}=s;X&&(p.value=X.offsetWidth),be&&(u.value=be.offsetHeight)}function W(){const{value:te}=$e;te&&(b.value=te.scrollTop,m.value=te.scrollLeft*(r?.value?-1:1),v.value=te.offsetHeight,g.value=te.offsetWidth,c.value=te.scrollHeight,f.value=te.scrollWidth);const{value:A}=d,{value:X}=s;A&&(p.value=A.offsetWidth),X&&(u.value=X.offsetHeight)}function Y(){e.scrollable&&(e.useUnifiedContainer?W():(G(),q()))}function Se(te){var A;return!(!((A=i.value)===null||A===void 0)&&A.contains(Dr(te)))}function Le(te){te.preventDefault(),te.stopPropagation(),x=!0,ct("mousemove",window,Ie,!0),ct("mouseup",window,De,!0),k=m.value,F=r?.value?window.innerWidth-te.clientX:te.clientX}function Ie(te){if(!x)return;R!==void 0&&window.clearTimeout(R),C!==void 0&&window.clearTimeout(C);const{value:A}=g,{value:X}=f,{value:be}=K;if(A===null||X===null)return;const xe=(r?.value?window.innerWidth-te.clientX-F:te.clientX-F)*(X-A)/(A-be),ke=X-A;let Ce=k+xe;Ce=Math.min(ke,Ce),Ce=Math.max(Ce,0);const{value:Fe}=$e;if(Fe){Fe.scrollLeft=Ce*(r?.value?-1:1);const{internalOnUpdateScrollLeft:Ze}=e;Ze&&Ze(Ce)}}function De(te){te.preventDefault(),te.stopPropagation(),et("mousemove",window,Ie,!0),et("mouseup",window,De,!0),x=!1,Y(),Se(te)&&ae()}function Ge(te){te.preventDefault(),te.stopPropagation(),S=!0,ct("mousemove",window,Xe,!0),ct("mouseup",window,at,!0),w=b.value,M=te.clientY}function Xe(te){if(!S)return;R!==void 0&&window.clearTimeout(R),C!==void 0&&window.clearTimeout(C);const{value:A}=v,{value:X}=c,{value:be}=B;if(A===null||X===null)return;const xe=(te.clientY-M)*(X-A)/(A-be),ke=X-A;let Ce=w+xe;Ce=Math.min(ke,Ce),Ce=Math.max(Ce,0);const{value:Fe}=$e;Fe&&(Fe.scrollTop=Ce)}function at(te){te.preventDefault(),te.stopPropagation(),et("mousemove",window,Xe,!0),et("mouseup",window,at,!0),S=!1,Y(),Se(te)&&ae()}en(()=>{const{value:te}=ye,{value:A}=re,{value:X}=t,{value:be}=d,{value:_e}=s;be&&(te?be.classList.remove(`${X}-scrollbar-rail--disabled`):be.classList.add(`${X}-scrollbar-rail--disabled`)),_e&&(A?_e.classList.remove(`${X}-scrollbar-rail--disabled`):_e.classList.add(`${X}-scrollbar-rail--disabled`))}),Ct(()=>{e.container||Y()}),xt(()=>{R!==void 0&&window.clearTimeout(R),C!==void 0&&window.clearTimeout(C),et("mousemove",window,Xe,!0),et("mouseup",window,at,!0)});const mt=O(()=>{const{common:{cubicBezierEaseInOut:te},self:{color:A,colorHover:X,height:be,width:_e,borderRadius:xe,railInsetHorizontalTop:ke,railInsetHorizontalBottom:Ce,railInsetVerticalRight:Fe,railInsetVerticalLeft:Ze,railColor:Lt}}=T.value,{top:Et,right:Dt,bottom:zt,left:Ht}=Ft(ke),{top:on,right:Nt,bottom:Xt,left:Mt}=Ft(Ce),{top:U,right:ce,bottom:Me,left:je}=Ft(r?.value?Bu(Fe):Fe),{top:Ve,right:Je,bottom:rn,left:ln}=Ft(r?.value?Bu(Ze):Ze);return{"--n-scrollbar-bezier":te,"--n-scrollbar-color":A,"--n-scrollbar-color-hover":X,"--n-scrollbar-border-radius":xe,"--n-scrollbar-width":_e,"--n-scrollbar-height":be,"--n-scrollbar-rail-top-horizontal-top":Et,"--n-scrollbar-rail-right-horizontal-top":Dt,"--n-scrollbar-rail-bottom-horizontal-top":zt,"--n-scrollbar-rail-left-horizontal-top":Ht,"--n-scrollbar-rail-top-horizontal-bottom":on,"--n-scrollbar-rail-right-horizontal-bottom":Nt,"--n-scrollbar-rail-bottom-horizontal-bottom":Xt,"--n-scrollbar-rail-left-horizontal-bottom":Mt,"--n-scrollbar-rail-top-vertical-right":U,"--n-scrollbar-rail-right-vertical-right":ce,"--n-scrollbar-rail-bottom-vertical-right":Me,"--n-scrollbar-rail-left-vertical-right":je,"--n-scrollbar-rail-top-vertical-left":Ve,"--n-scrollbar-rail-right-vertical-left":Je,"--n-scrollbar-rail-bottom-vertical-left":rn,"--n-scrollbar-rail-left-vertical-left":ln,"--n-scrollbar-rail-color":Lt}}),ft=n?vt("scrollbar",void 0,mt,e):void 0;return Object.assign(Object.assign({},{scrollTo:Ae,scrollBy:z,sync:Y,syncUnifiedContainer:W,handleMouseEnterWrapper:ee,handleMouseLeaveWrapper:se}),{mergedClsPrefix:t,rtlEnabled:r,containerScrollTop:b,wrapperRef:i,containerRef:l,contentRef:a,yRailRef:s,xRailRef:d,needYBar:re,needXBar:ye,yBarSizePx:D,xBarSizePx:N,yBarTopPx:ie,xBarLeftPx:J,isShowXBar:Z,isShowYBar:le,isIos:_,handleScroll:oe,handleContentResize:ne,handleContainerResize:Oe,handleYScrollMouseDown:Ge,handleXScrollMouseDown:Le,containerWidth:g,cssVars:n?void 0:mt,themeClass:ft?.themeClass,onRender:ft?.onRender})},render(){var e;const{$slots:t,mergedClsPrefix:n,triggerDisplayManually:o,rtlEnabled:r,internalHoistYRail:i,yPlacement:l,xPlacement:a,xScrollable:s}=this;if(!this.scrollable)return(e=t.default)===null||e===void 0?void 0:e.call(t);const d=this.trigger==="none",c=(g,u)=>h("div",{ref:"yRailRef",class:[`${n}-scrollbar-rail`,`${n}-scrollbar-rail--vertical`,`${n}-scrollbar-rail--vertical--${l}`,g],"data-scrollbar-rail":!0,style:[u||"",this.verticalRailStyle],"aria-hidden":!0},h(d?Ws:pn,d?null:{name:"fade-in-transition"},{default:()=>this.needYBar&&this.isShowYBar&&!this.isIos?h("div",{class:`${n}-scrollbar-rail__scrollbar`,style:{height:this.yBarSizePx,top:this.yBarTopPx},onMousedown:this.handleYScrollMouseDown}):null})),f=()=>{var g,u;return(g=this.onRender)===null||g===void 0||g.call(this),h("div",nn(this.$attrs,{role:"none",ref:"wrapperRef",class:[`${n}-scrollbar`,this.themeClass,r&&`${n}-scrollbar--rtl`],style:this.cssVars,onMouseenter:o?void 0:this.handleMouseEnterWrapper,onMouseleave:o?void 0:this.handleMouseLeaveWrapper}),[this.container?(u=t.default)===null||u===void 0?void 0:u.call(t):h("div",{role:"none",ref:"containerRef",class:[`${n}-scrollbar-container`,this.containerClass],style:[this.containerStyle,this.internalExposeWidthCssVar?{"--n-scrollbar-current-width":pt(this.containerWidth)}:void 0],onScroll:this.handleScroll,onWheel:this.onWheel},h(Kn,{onResize:this.handleContentResize},{default:()=>h("div",{ref:"contentRef",role:"none",style:[{width:this.xScrollable?"fit-content":null},this.contentStyle],class:[`${n}-scrollbar-content`,this.contentClass]},t)})),i?null:c(void 0,void 0),s&&h("div",{ref:"xRailRef",class:[`${n}-scrollbar-rail`,`${n}-scrollbar-rail--horizontal`,`${n}-scrollbar-rail--horizontal--${a}`],style:this.horizontalRailStyle,"data-scrollbar-rail":!0,"aria-hidden":!0},h(d?Ws:pn,d?null:{name:"fade-in-transition"},{default:()=>this.needXBar&&this.isShowXBar&&!this.isIos?h("div",{class:`${n}-scrollbar-rail__scrollbar`,style:{width:this.xBarSizePx,right:r?this.xBarLeftPx:void 0,left:r?void 0:this.xBarLeftPx},onMousedown:this.handleXScrollMouseDown}):null}))])},v=this.container?f():h(Kn,{onResize:this.handleContainerResize},{default:f});return i?h(nt,null,v,c(this.themeClass,this.cssVars)):v}}),zv=bo;function yf(e){return Array.isArray(e)?e:[e]}const ed={STOP:"STOP"};function Tv(e,t){const n=t(e);e.children!==void 0&&n!==ed.STOP&&e.children.forEach(o=>Tv(o,t))}function mk(e,t={}){const{preserveGroup:n=!1}=t,o=[],r=n?l=>{l.isLeaf||(o.push(l.key),i(l.children))}:l=>{l.isLeaf||(l.isGroup||o.push(l.key),i(l.children))};function i(l){l.forEach(r)}return i(e),o}function yk(e,t){const{isLeaf:n}=e;return n!==void 0?n:!t(e)}function xk(e){return e.children}function wk(e){return e.key}function Ck(){return!1}function Sk(e,t){const{isLeaf:n}=e;return!(n===!1&&!Array.isArray(t(e)))}function Rk(e){return e.disabled===!0}function kk(e,t){return e.isLeaf===!1&&!Array.isArray(t(e))}function fs(e){var t;return e==null?[]:Array.isArray(e)?e:(t=e.checkedKeys)!==null&&t!==void 0?t:[]}function hs(e){var t;return e==null||Array.isArray(e)?[]:(t=e.indeterminateKeys)!==null&&t!==void 0?t:[]}function Pk(e,t){const n=new Set(e);return t.forEach(o=>{n.has(o)||n.add(o)}),Array.from(n)}function $k(e,t){const n=new Set(e);return t.forEach(o=>{n.has(o)&&n.delete(o)}),Array.from(n)}function _k(e){return e?.type==="group"}function zk(e){const t=new Map;return e.forEach((n,o)=>{t.set(n.key,o)}),n=>{var o;return(o=t.get(n))!==null&&o!==void 0?o:null}}class Tk extends Error{constructor(){super(),this.message="SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded."}}function Fk(e,t,n,o){return Vl(t.concat(e),n,o,!1)}function Ok(e,t){const n=new Set;return e.forEach(o=>{const r=t.treeNodeMap.get(o);if(r!==void 0){let i=r.parent;for(;i!==null&&!(i.disabled||n.has(i.key));)n.add(i.key),i=i.parent}}),n}function Ek(e,t,n,o){const r=Vl(t,n,o,!1),i=Vl(e,n,o,!0),l=Ok(e,n),a=[];return r.forEach(s=>{(i.has(s)||l.has(s))&&a.push(s)}),a.forEach(s=>r.delete(s)),r}function ps(e,t){const{checkedKeys:n,keysToCheck:o,keysToUncheck:r,indeterminateKeys:i,cascade:l,leafOnly:a,checkStrategy:s,allowNotLoaded:d}=e;if(!l)return o!==void 0?{checkedKeys:Pk(n,o),indeterminateKeys:Array.from(i)}:r!==void 0?{checkedKeys:$k(n,r),indeterminateKeys:Array.from(i)}:{checkedKeys:Array.from(n),indeterminateKeys:Array.from(i)};const{levelTreeNodeMap:c}=t;let f;r!==void 0?f=Ek(r,n,t,d):o!==void 0?f=Fk(o,n,t,d):f=Vl(n,t,d,!1);const v=s==="parent",g=s==="child"||a,u=f,p=new Set,b=Math.max.apply(null,Array.from(c.keys()));for(let m=b;m>=0;m-=1){const y=m===0,$=c.get(m);for(const S of $){if(S.isLeaf)continue;const{key:x,shallowLoaded:R}=S;if(g&&R&&S.children.forEach(F=>{!F.disabled&&!F.isLeaf&&F.shallowLoaded&&u.has(F.key)&&u.delete(F.key)}),S.disabled||!R)continue;let C=!0,w=!1,k=!0;for(const F of S.children){const M=F.key;if(!F.disabled){if(k&&(k=!1),u.has(M))w=!0;else if(p.has(M)){w=!0,C=!1;break}else if(C=!1,w)break}}C&&!k?(v&&S.children.forEach(F=>{!F.disabled&&u.has(F.key)&&u.delete(F.key)}),u.add(x)):w&&p.add(x),y&&g&&u.has(x)&&u.delete(x)}}return{checkedKeys:Array.from(u),indeterminateKeys:Array.from(p)}}function Vl(e,t,n,o){const{treeNodeMap:r,getChildren:i}=t,l=new Set,a=new Set(e);return e.forEach(s=>{const d=r.get(s);d!==void 0&&Tv(d,c=>{if(c.disabled)return ed.STOP;const{key:f}=c;if(!l.has(f)&&(l.add(f),a.add(f),kk(c.rawNode,i))){if(o)return ed.STOP;if(!n)throw new Tk}})}),a}function Mk(e,{includeGroup:t=!1,includeSelf:n=!0},o){var r;const i=o.treeNodeMap;let l=e==null?null:(r=i.get(e))!==null&&r!==void 0?r:null;const a={keyPath:[],treeNodePath:[],treeNode:l};if(l?.ignored)return a.treeNode=null,a;for(;l;)!l.ignored&&(t||!l.isGroup)&&a.treeNodePath.push(l),l=l.parent;return a.treeNodePath.reverse(),n||a.treeNodePath.pop(),a.keyPath=a.treeNodePath.map(s=>s.key),a}function Bk(e){if(e.length===0)return null;const t=e[0];return t.isGroup||t.ignored||t.disabled?t.getNext():t}function Ak(e,t){const n=e.siblings,o=n.length,{index:r}=e;return t?n[(r+1)%o]:r===n.length-1?null:n[r+1]}function xf(e,t,{loop:n=!1,includeDisabled:o=!1}={}){const r=t==="prev"?Ik:Ak,i={reverse:t==="prev"};let l=!1,a=null;function s(d){if(d!==null){if(d===e){if(!l)l=!0;else if(!e.disabled&&!e.isGroup){a=e;return}}else if((!d.disabled||o)&&!d.ignored&&!d.isGroup){a=d;return}if(d.isGroup){const c=tc(d,i);c!==null?a=c:s(r(d,n))}else{const c=r(d,!1);if(c!==null)s(c);else{const f=Lk(d);f?.isGroup?s(r(f,n)):n&&s(r(d,!0))}}}}return s(e),a}function Ik(e,t){const n=e.siblings,o=n.length,{index:r}=e;return t?n[(r-1+o)%o]:r===0?null:n[r-1]}function Lk(e){return e.parent}function tc(e,t={}){const{reverse:n=!1}=t,{children:o}=e;if(o){const{length:r}=o,i=n?r-1:0,l=n?-1:r,a=n?-1:1;for(let s=i;s!==l;s+=a){const d=o[s];if(!d.disabled&&!d.ignored)if(d.isGroup){const c=tc(d,t);if(c!==null)return c}else return d}}return null}const Dk={getChild(){return this.ignored?null:tc(this)},getParent(){const{parent:e}=this;return e?.isGroup?e.getParent():e},getNext(e={}){return xf(this,"next",e)},getPrev(e={}){return xf(this,"prev",e)}};function Hk(e,t){const n=t?new Set(t):void 0,o=[];function r(i){i.forEach(l=>{o.push(l),!(l.isLeaf||!l.children||l.ignored)&&(l.isGroup||n===void 0||n.has(l.key))&&r(l.children)})}return r(e),o}function Nk(e,t){const n=e.key;for(;t;){if(t.key===n)return!0;t=t.parent}return!1}function Fv(e,t,n,o,r,i=null,l=0){const a=[];return e.forEach((s,d)=>{var c;const f=Object.create(o);if(f.rawNode=s,f.siblings=a,f.level=l,f.index=d,f.isFirstChild=d===0,f.isLastChild=d+1===e.length,f.parent=i,!f.ignored){const v=r(s);Array.isArray(v)&&(f.children=Fv(v,t,n,o,r,f,l+1))}a.push(f),t.set(f.key,f),n.has(l)||n.set(l,[]),(c=n.get(l))===null||c===void 0||c.push(f)}),a}function ba(e,t={}){var n;const o=new Map,r=new Map,{getDisabled:i=Rk,getIgnored:l=Ck,getIsGroup:a=_k,getKey:s=wk}=t,d=(n=t.getChildren)!==null&&n!==void 0?n:xk,c=t.ignoreEmptyChildren?S=>{const x=d(S);return Array.isArray(x)?x.length?x:null:x}:d,f=Object.assign({get key(){return s(this.rawNode)},get disabled(){return i(this.rawNode)},get isGroup(){return a(this.rawNode)},get isLeaf(){return yk(this.rawNode,c)},get shallowLoaded(){return Sk(this.rawNode,c)},get ignored(){return l(this.rawNode)},contains(S){return Nk(this,S)}},Dk),v=Fv(e,o,r,f,c);function g(S){if(S==null)return null;const x=o.get(S);return x&&!x.isGroup&&!x.ignored?x:null}function u(S){if(S==null)return null;const x=o.get(S);return x&&!x.ignored?x:null}function p(S,x){const R=u(S);return R?R.getPrev(x):null}function b(S,x){const R=u(S);return R?R.getNext(x):null}function m(S){const x=u(S);return x?x.getParent():null}function y(S){const x=u(S);return x?x.getChild():null}const $={treeNodes:v,treeNodeMap:o,levelTreeNodeMap:r,maxLevel:Math.max(...r.keys()),getChildren:c,getFlattenedNodes(S){return Hk(v,S)},getNode:g,getPrev:p,getNext:b,getParent:m,getChild:y,getFirstAvailableNode(){return Bk(v)},getPath(S,x={}){return Mk(S,x,$)},getCheckedKeys(S,x={}){const{cascade:R=!0,leafOnly:C=!1,checkStrategy:w="all",allowNotLoaded:k=!1}=x;return ps({checkedKeys:fs(S),indeterminateKeys:hs(S),cascade:R,leafOnly:C,checkStrategy:w,allowNotLoaded:k},$)},check(S,x,R={}){const{cascade:C=!0,leafOnly:w=!1,checkStrategy:k="all",allowNotLoaded:F=!1}=R;return ps({checkedKeys:fs(x),indeterminateKeys:hs(x),keysToCheck:S==null?[]:yf(S),cascade:C,leafOnly:w,checkStrategy:k,allowNotLoaded:F},$)},uncheck(S,x,R={}){const{cascade:C=!0,leafOnly:w=!1,checkStrategy:k="all",allowNotLoaded:F=!1}=R;return ps({checkedKeys:fs(x),indeterminateKeys:hs(x),keysToUncheck:S==null?[]:yf(S),cascade:C,leafOnly:w,checkStrategy:k,allowNotLoaded:F},$)},getNonLeafKeys(S={}){return mk(v,S)}};return $}const jk={iconSizeTiny:"28px",iconSizeSmall:"34px",iconSizeMedium:"40px",iconSizeLarge:"46px",iconSizeHuge:"52px"};function Wk(e){const{textColorDisabled:t,iconColor:n,textColor2:o,fontSizeTiny:r,fontSizeSmall:i,fontSizeMedium:l,fontSizeLarge:a,fontSizeHuge:s}=e;return Object.assign(Object.assign({},jk),{fontSizeTiny:r,fontSizeSmall:i,fontSizeMedium:l,fontSizeLarge:a,fontSizeHuge:s,textColor:t,iconColor:n,extraTextColor:o})}const nc={name:"Empty",common:gt,self:Wk},Vk=P("empty",` + display: flex; + flex-direction: column; + align-items: center; + font-size: var(--n-font-size); +`,[j("icon",` + width: var(--n-icon-size); + height: var(--n-icon-size); + font-size: var(--n-icon-size); + line-height: var(--n-icon-size); + color: var(--n-icon-color); + transition: + color .3s var(--n-bezier); + `,[I("+",[j("description",` + margin-top: 8px; + `)])]),j("description",` + transition: color .3s var(--n-bezier); + color: var(--n-text-color); + `),j("extra",` + text-align: center; + transition: color .3s var(--n-bezier); + margin-top: 12px; + color: var(--n-extra-text-color); + `)]),Kk=Object.assign(Object.assign({},Be.props),{description:String,showDescription:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0},size:{type:String,default:"medium"},renderIcon:Function}),Ov=pe({name:"Empty",props:Kk,slots:Object,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedComponentPropsRef:o}=Ye(e),r=Be("Empty","-empty",Vk,nc,e,t),{localeRef:i}=Xi("Empty"),l=O(()=>{var c,f,v;return(c=e.description)!==null&&c!==void 0?c:(v=(f=o?.value)===null||f===void 0?void 0:f.Empty)===null||v===void 0?void 0:v.description}),a=O(()=>{var c,f;return((f=(c=o?.value)===null||c===void 0?void 0:c.Empty)===null||f===void 0?void 0:f.renderIcon)||(()=>h(nk,null))}),s=O(()=>{const{size:c}=e,{common:{cubicBezierEaseInOut:f},self:{[de("iconSize",c)]:v,[de("fontSize",c)]:g,textColor:u,iconColor:p,extraTextColor:b}}=r.value;return{"--n-icon-size":v,"--n-font-size":g,"--n-bezier":f,"--n-text-color":u,"--n-icon-color":p,"--n-extra-text-color":b}}),d=n?vt("empty",O(()=>{let c="";const{size:f}=e;return c+=f[0],c}),s,e):void 0;return{mergedClsPrefix:t,mergedRenderIcon:a,localizedDescription:O(()=>l.value||i.value.description),cssVars:n?void 0:s,themeClass:d?.themeClass,onRender:d?.onRender}},render(){const{$slots:e,mergedClsPrefix:t,onRender:n}=this;return n?.(),h("div",{class:[`${t}-empty`,this.themeClass],style:this.cssVars},this.showIcon?h("div",{class:`${t}-empty__icon`},e.icon?e.icon():h(kt,{clsPrefix:t},{default:this.mergedRenderIcon})):null,this.showDescription?h("div",{class:`${t}-empty__description`},e.default?e.default():this.localizedDescription):null,e.extra?h("div",{class:`${t}-empty__extra`},e.extra()):null)}}),Uk={height:"calc(var(--n-option-height) * 7.6)",paddingTiny:"4px 0",paddingSmall:"4px 0",paddingMedium:"4px 0",paddingLarge:"4px 0",paddingHuge:"4px 0",optionPaddingTiny:"0 12px",optionPaddingSmall:"0 12px",optionPaddingMedium:"0 12px",optionPaddingLarge:"0 12px",optionPaddingHuge:"0 12px",loadingSize:"18px"};function Gk(e){const{borderRadius:t,popoverColor:n,textColor3:o,dividerColor:r,textColor2:i,primaryColorPressed:l,textColorDisabled:a,primaryColor:s,opacityDisabled:d,hoverColor:c,fontSizeTiny:f,fontSizeSmall:v,fontSizeMedium:g,fontSizeLarge:u,fontSizeHuge:p,heightTiny:b,heightSmall:m,heightMedium:y,heightLarge:$,heightHuge:S}=e;return Object.assign(Object.assign({},Uk),{optionFontSizeTiny:f,optionFontSizeSmall:v,optionFontSizeMedium:g,optionFontSizeLarge:u,optionFontSizeHuge:p,optionHeightTiny:b,optionHeightSmall:m,optionHeightMedium:y,optionHeightLarge:$,optionHeightHuge:S,borderRadius:t,color:n,groupHeaderTextColor:o,actionDividerColor:r,optionTextColor:i,optionTextColorPressed:l,optionTextColorDisabled:a,optionTextColorActive:s,optionOpacityDisabled:d,optionCheckColor:s,optionColorPending:c,optionColorActive:"rgba(0, 0, 0, 0)",optionColorActivePending:c,actionTextColor:i,loadingColor:s})}const oc={name:"InternalSelectMenu",common:gt,peers:{Scrollbar:jo,Empty:nc},self:Gk},wf=pe({name:"NBaseSelectGroupHeader",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){const{renderLabelRef:e,renderOptionRef:t,labelFieldRef:n,nodePropsRef:o}=Ee(Fd);return{labelField:n,nodeProps:o,renderLabel:e,renderOption:t}},render(){const{clsPrefix:e,renderLabel:t,renderOption:n,nodeProps:o,tmNode:{rawNode:r}}=this,i=o?.(r),l=t?t(r,!1):wt(r[this.labelField],r,!1),a=h("div",Object.assign({},i,{class:[`${e}-base-select-group-header`,i?.class]}),l);return r.render?r.render({node:a,option:r}):n?n({node:a,option:r,selected:!1}):a}});function qk(e,t){return h(pn,{name:"fade-in-scale-up-transition"},{default:()=>e?h(kt,{clsPrefix:t,class:`${t}-base-select-option__check`},{default:()=>h(QR)}):null})}const Cf=pe({name:"NBaseSelectOption",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(e){const{valueRef:t,pendingTmNodeRef:n,multipleRef:o,valueSetRef:r,renderLabelRef:i,renderOptionRef:l,labelFieldRef:a,valueFieldRef:s,showCheckmarkRef:d,nodePropsRef:c,handleOptionClick:f,handleOptionMouseEnter:v}=Ee(Fd),g=ot(()=>{const{value:m}=n;return m?e.tmNode.key===m.key:!1});function u(m){const{tmNode:y}=e;y.disabled||f(m,y)}function p(m){const{tmNode:y}=e;y.disabled||v(m,y)}function b(m){const{tmNode:y}=e,{value:$}=g;y.disabled||$||v(m,y)}return{multiple:o,isGrouped:ot(()=>{const{tmNode:m}=e,{parent:y}=m;return y&&y.rawNode.type==="group"}),showCheckmark:d,nodeProps:c,isPending:g,isSelected:ot(()=>{const{value:m}=t,{value:y}=o;if(m===null)return!1;const $=e.tmNode.rawNode[s.value];if(y){const{value:S}=r;return S.has($)}else return m===$}),labelField:a,renderLabel:i,renderOption:l,handleMouseMove:b,handleMouseEnter:p,handleClick:u}},render(){const{clsPrefix:e,tmNode:{rawNode:t},isSelected:n,isPending:o,isGrouped:r,showCheckmark:i,nodeProps:l,renderOption:a,renderLabel:s,handleClick:d,handleMouseEnter:c,handleMouseMove:f}=this,v=qk(n,e),g=s?[s(t,n),i&&v]:[wt(t[this.labelField],t,n),i&&v],u=l?.(t),p=h("div",Object.assign({},u,{class:[`${e}-base-select-option`,t.class,u?.class,{[`${e}-base-select-option--disabled`]:t.disabled,[`${e}-base-select-option--selected`]:n,[`${e}-base-select-option--grouped`]:r,[`${e}-base-select-option--pending`]:o,[`${e}-base-select-option--show-checkmark`]:i}],style:[u?.style||"",t.style||""],onClick:Si([d,u?.onClick]),onMouseenter:Si([c,u?.onMouseenter]),onMousemove:Si([f,u?.onMousemove])}),h("div",{class:`${e}-base-select-option__content`},g));return t.render?t.render({node:p,option:t,selected:n}):a?a({node:p,option:t,selected:n}):p}}),{cubicBezierEaseIn:Sf,cubicBezierEaseOut:Rf}=hr;function Yi({transformOrigin:e="inherit",duration:t=".2s",enterScale:n=".9",originalTransform:o="",originalTransition:r=""}={}){return[I("&.fade-in-scale-up-transition-leave-active",{transformOrigin:e,transition:`opacity ${t} ${Sf}, transform ${t} ${Sf} ${r&&`,${r}`}`}),I("&.fade-in-scale-up-transition-enter-active",{transformOrigin:e,transition:`opacity ${t} ${Rf}, transform ${t} ${Rf} ${r&&`,${r}`}`}),I("&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to",{opacity:0,transform:`${o} scale(${n})`}),I("&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to",{opacity:1,transform:`${o} scale(1)`})]}const Xk=P("base-select-menu",` + line-height: 1.5; + outline: none; + z-index: 0; + position: relative; + border-radius: var(--n-border-radius); + transition: + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + background-color: var(--n-color); +`,[P("scrollbar",` + max-height: var(--n-height); + `),P("virtual-list",` + max-height: var(--n-height); + `),P("base-select-option",` + min-height: var(--n-option-height); + font-size: var(--n-option-font-size); + display: flex; + align-items: center; + `,[j("content",` + z-index: 1; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + `)]),P("base-select-group-header",` + min-height: var(--n-option-height); + font-size: .93em; + display: flex; + align-items: center; + `),P("base-select-menu-option-wrapper",` + position: relative; + width: 100%; + `),j("loading, empty",` + display: flex; + padding: 12px 32px; + flex: 1; + justify-content: center; + `),j("loading",` + color: var(--n-loading-color); + font-size: var(--n-loading-size); + `),j("header",` + padding: 8px var(--n-option-padding-left); + font-size: var(--n-option-font-size); + transition: + color .3s var(--n-bezier), + border-color .3s var(--n-bezier); + border-bottom: 1px solid var(--n-action-divider-color); + color: var(--n-action-text-color); + `),j("action",` + padding: 8px var(--n-option-padding-left); + font-size: var(--n-option-font-size); + transition: + color .3s var(--n-bezier), + border-color .3s var(--n-bezier); + border-top: 1px solid var(--n-action-divider-color); + color: var(--n-action-text-color); + `),P("base-select-group-header",` + position: relative; + cursor: default; + padding: var(--n-option-padding); + color: var(--n-group-header-text-color); + `),P("base-select-option",` + cursor: pointer; + position: relative; + padding: var(--n-option-padding); + transition: + color .3s var(--n-bezier), + opacity .3s var(--n-bezier); + box-sizing: border-box; + color: var(--n-option-text-color); + opacity: 1; + `,[H("show-checkmark",` + padding-right: calc(var(--n-option-padding-right) + 20px); + `),I("&::before",` + content: ""; + position: absolute; + left: 4px; + right: 4px; + top: 0; + bottom: 0; + border-radius: var(--n-border-radius); + transition: background-color .3s var(--n-bezier); + `),I("&:active",` + color: var(--n-option-text-color-pressed); + `),H("grouped",` + padding-left: calc(var(--n-option-padding-left) * 1.5); + `),H("pending",[I("&::before",` + background-color: var(--n-option-color-pending); + `)]),H("selected",` + color: var(--n-option-text-color-active); + `,[I("&::before",` + background-color: var(--n-option-color-active); + `),H("pending",[I("&::before",` + background-color: var(--n-option-color-active-pending); + `)])]),H("disabled",` + cursor: not-allowed; + `,[dt("selected",` + color: var(--n-option-text-color-disabled); + `),H("selected",` + opacity: var(--n-option-opacity-disabled); + `)]),j("check",` + font-size: 16px; + position: absolute; + right: calc(var(--n-option-padding-right) - 4px); + top: calc(50% - 7px); + color: var(--n-option-check-color); + transition: color .3s var(--n-bezier); + `,[Yi({enterScale:"0.5"})])])]),Ev=pe({name:"InternalSelectMenu",props:Object.assign(Object.assign({},Be.props),{clsPrefix:{type:String,required:!0},scrollable:{type:Boolean,default:!0},treeMate:{type:Object,required:!0},multiple:Boolean,size:{type:String,default:"medium"},value:{type:[String,Number,Array],default:null},autoPending:Boolean,virtualScroll:{type:Boolean,default:!0},show:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},loading:Boolean,focusable:Boolean,renderLabel:Function,renderOption:Function,nodeProps:Function,showCheckmark:{type:Boolean,default:!0},onMousedown:Function,onScroll:Function,onFocus:Function,onBlur:Function,onKeyup:Function,onKeydown:Function,onTabOut:Function,onMouseenter:Function,onMouseleave:Function,onResize:Function,resetMenuOnOptionsChange:{type:Boolean,default:!0},inlineThemeDisabled:Boolean,scrollbarProps:Object,onToggle:Function}),setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:n,mergedComponentPropsRef:o}=Ye(e),r=Bt("InternalSelectMenu",n,t),i=Be("InternalSelectMenu","-internal-select-menu",Xk,oc,e,we(e,"clsPrefix")),l=E(null),a=E(null),s=E(null),d=O(()=>e.treeMate.getFlattenedNodes()),c=O(()=>zk(d.value)),f=E(null);function v(){const{treeMate:Z}=e;let le=null;const{value:$e}=e;$e===null?le=Z.getFirstAvailableNode():(e.multiple?le=Z.getNode(($e||[])[($e||[]).length-1]):le=Z.getNode($e),(!le||le.disabled)&&(le=Z.getFirstAvailableNode())),K(le||null)}function g(){const{value:Z}=f;Z&&!e.treeMate.getNode(Z.key)&&(f.value=null)}let u;tt(()=>e.show,Z=>{Z?u=tt(()=>e.treeMate,()=>{e.resetMenuOnOptionsChange?(e.autoPending?v():g(),Rt(N)):g()},{immediate:!0}):u?.()},{immediate:!0}),xt(()=>{u?.()});const p=O(()=>Pt(i.value.self[de("optionHeight",e.size)])),b=O(()=>Ft(i.value.self[de("padding",e.size)])),m=O(()=>e.multiple&&Array.isArray(e.value)?new Set(e.value):new Set),y=O(()=>{const Z=d.value;return Z&&Z.length===0}),$=O(()=>{var Z,le;return(le=(Z=o?.value)===null||Z===void 0?void 0:Z.Select)===null||le===void 0?void 0:le.renderEmpty});function S(Z){const{onToggle:le}=e;le&&le(Z)}function x(Z){const{onScroll:le}=e;le&&le(Z)}function R(Z){var le;(le=s.value)===null||le===void 0||le.sync(),x(Z)}function C(){var Z;(Z=s.value)===null||Z===void 0||Z.sync()}function w(){const{value:Z}=f;return Z||null}function k(Z,le){le.disabled||K(le,!1)}function F(Z,le){le.disabled||S(le)}function M(Z){var le;yn(Z,"action")||(le=e.onKeyup)===null||le===void 0||le.call(e,Z)}function _(Z){var le;yn(Z,"action")||(le=e.onKeydown)===null||le===void 0||le.call(e,Z)}function T(Z){var le;(le=e.onMousedown)===null||le===void 0||le.call(e,Z),!e.focusable&&Z.preventDefault()}function B(){const{value:Z}=f;Z&&K(Z.getNext({loop:!0}),!0)}function D(){const{value:Z}=f;Z&&K(Z.getPrev({loop:!0}),!0)}function K(Z,le=!1){f.value=Z,le&&N()}function N(){var Z,le;const $e=f.value;if(!$e)return;const ze=c.value($e.key);ze!==null&&(e.virtualScroll?(Z=a.value)===null||Z===void 0||Z.scrollTo({index:ze}):(le=s.value)===null||le===void 0||le.scrollTo({index:ze,elSize:p.value}))}function V(Z){var le,$e;!((le=l.value)===null||le===void 0)&&le.contains(Z.target)&&(($e=e.onFocus)===null||$e===void 0||$e.call(e,Z))}function ie(Z){var le,$e;!((le=l.value)===null||le===void 0)&&le.contains(Z.relatedTarget)||($e=e.onBlur)===null||$e===void 0||$e.call(e,Z)}qe(Fd,{handleOptionMouseEnter:k,handleOptionClick:F,valueSetRef:m,pendingTmNodeRef:f,nodePropsRef:we(e,"nodeProps"),showCheckmarkRef:we(e,"showCheckmark"),multipleRef:we(e,"multiple"),valueRef:we(e,"value"),renderLabelRef:we(e,"renderLabel"),renderOptionRef:we(e,"renderOption"),labelFieldRef:we(e,"labelField"),valueFieldRef:we(e,"valueField")}),qe(Pp,l),Ct(()=>{const{value:Z}=s;Z&&Z.sync()});const he=O(()=>{const{size:Z}=e,{common:{cubicBezierEaseInOut:le},self:{height:$e,borderRadius:ze,color:Ae,groupHeaderTextColor:Te,actionDividerColor:ne,optionTextColorPressed:Oe,optionTextColor:z,optionTextColorDisabled:L,optionTextColorActive:ee,optionOpacityDisabled:se,optionCheckColor:ae,actionTextColor:Q,optionColorPending:ue,optionColorActive:ve,loadingColor:fe,loadingSize:oe,optionColorActivePending:q,[de("optionFontSize",Z)]:G,[de("optionHeight",Z)]:W,[de("optionPadding",Z)]:Y}}=i.value;return{"--n-height":$e,"--n-action-divider-color":ne,"--n-action-text-color":Q,"--n-bezier":le,"--n-border-radius":ze,"--n-color":Ae,"--n-option-font-size":G,"--n-group-header-text-color":Te,"--n-option-check-color":ae,"--n-option-color-pending":ue,"--n-option-color-active":ve,"--n-option-color-active-pending":q,"--n-option-height":W,"--n-option-opacity-disabled":se,"--n-option-text-color":z,"--n-option-text-color-active":ee,"--n-option-text-color-disabled":L,"--n-option-text-color-pressed":Oe,"--n-option-padding":Y,"--n-option-padding-left":Ft(Y,"left"),"--n-option-padding-right":Ft(Y,"right"),"--n-loading-color":fe,"--n-loading-size":oe}}),{inlineThemeDisabled:J}=e,re=J?vt("internal-select-menu",O(()=>e.size[0]),he,e):void 0,ye={selfRef:l,next:B,prev:D,getPendingTmNode:w};return Up(l,e.onResize),Object.assign({mergedTheme:i,mergedClsPrefix:t,rtlEnabled:r,virtualListRef:a,scrollbarRef:s,itemSize:p,padding:b,flattenedNodes:d,empty:y,mergedRenderEmpty:$,virtualListContainer(){const{value:Z}=a;return Z?.listElRef},virtualListContent(){const{value:Z}=a;return Z?.itemsElRef},doScroll:x,handleFocusin:V,handleFocusout:ie,handleKeyUp:M,handleKeyDown:_,handleMouseDown:T,handleVirtualListResize:C,handleVirtualListScroll:R,cssVars:J?void 0:he,themeClass:re?.themeClass,onRender:re?.onRender},ye)},render(){const{$slots:e,virtualScroll:t,clsPrefix:n,mergedTheme:o,themeClass:r,onRender:i}=this;return i?.(),h("div",{ref:"selfRef",tabindex:this.focusable?0:-1,class:[`${n}-base-select-menu`,`${n}-base-select-menu--${this.size}-size`,this.rtlEnabled&&`${n}-base-select-menu--rtl`,r,this.multiple&&`${n}-base-select-menu--multiple`],style:this.cssVars,onFocusin:this.handleFocusin,onFocusout:this.handleFocusout,onKeyup:this.handleKeyUp,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave},lt(e.header,l=>l&&h("div",{class:`${n}-base-select-menu__header`,"data-header":!0,key:"header"},l)),this.loading?h("div",{class:`${n}-base-select-menu__loading`},h(gr,{clsPrefix:n,strokeWidth:20})):this.empty?h("div",{class:`${n}-base-select-menu__empty`,"data-empty":!0},$n(e.empty,()=>{var l;return[((l=this.mergedRenderEmpty)===null||l===void 0?void 0:l.call(this))||h(Ov,{theme:o.peers.Empty,themeOverrides:o.peerOverrides.Empty,size:this.size})]})):h(bo,Object.assign({ref:"scrollbarRef",theme:o.peers.Scrollbar,themeOverrides:o.peerOverrides.Scrollbar,scrollable:this.scrollable,container:t?this.virtualListContainer:void 0,content:t?this.virtualListContent:void 0,onScroll:t?void 0:this.doScroll},this.scrollbarProps),{default:()=>t?h(Ld,{ref:"virtualListRef",class:`${n}-virtual-list`,items:this.flattenedNodes,itemSize:this.itemSize,showScrollbar:!1,paddingTop:this.padding.top,paddingBottom:this.padding.bottom,onResize:this.handleVirtualListResize,onScroll:this.handleVirtualListScroll,itemResizable:!0},{default:({item:l})=>l.isGroup?h(wf,{key:l.key,clsPrefix:n,tmNode:l}):l.ignored?null:h(Cf,{clsPrefix:n,key:l.key,tmNode:l})}):h("div",{class:`${n}-base-select-menu-option-wrapper`,style:{paddingTop:this.padding.top,paddingBottom:this.padding.bottom}},this.flattenedNodes.map(l=>l.isGroup?h(wf,{key:l.key,clsPrefix:n,tmNode:l}):h(Cf,{clsPrefix:n,key:l.key,tmNode:l})))}),lt(e.action,l=>l&&[h("div",{class:`${n}-base-select-menu__action`,"data-action":!0,key:"action"},l),h(dk,{onFocus:this.onTabOut,key:"focus-detector"})]))}}),Yk={space:"6px",spaceArrow:"10px",arrowOffset:"10px",arrowOffsetVertical:"10px",arrowHeight:"6px",padding:"8px 14px"};function Zk(e){const{boxShadow2:t,popoverColor:n,textColor2:o,borderRadius:r,fontSize:i,dividerColor:l}=e;return Object.assign(Object.assign({},Yk),{fontSize:i,borderRadius:r,color:n,dividerColor:l,textColor:o,boxShadow:t})}const Ur={name:"Popover",common:gt,peers:{Scrollbar:jo},self:Zk},vs={top:"bottom",bottom:"top",left:"right",right:"left"},Tt="var(--n-arrow-height) * 1.414",Jk=I([P("popover",` + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + position: relative; + font-size: var(--n-font-size); + color: var(--n-text-color); + box-shadow: var(--n-box-shadow); + word-break: break-word; + `,[I(">",[P("scrollbar",` + height: inherit; + max-height: inherit; + `)]),dt("raw",` + background-color: var(--n-color); + border-radius: var(--n-border-radius); + `,[dt("scrollable",[dt("show-header-or-footer","padding: var(--n-padding);")])]),j("header",` + padding: var(--n-padding); + border-bottom: 1px solid var(--n-divider-color); + transition: border-color .3s var(--n-bezier); + `),j("footer",` + padding: var(--n-padding); + border-top: 1px solid var(--n-divider-color); + transition: border-color .3s var(--n-bezier); + `),H("scrollable, show-header-or-footer",[j("content",` + padding: var(--n-padding); + `)])]),P("popover-shared",` + transform-origin: inherit; + `,[P("popover-arrow-wrapper",` + position: absolute; + overflow: hidden; + pointer-events: none; + `,[P("popover-arrow",` + transition: background-color .3s var(--n-bezier); + position: absolute; + display: block; + width: calc(${Tt}); + height: calc(${Tt}); + box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12); + transform: rotate(45deg); + background-color: var(--n-color); + pointer-events: all; + `)]),I("&.popover-transition-enter-from, &.popover-transition-leave-to",` + opacity: 0; + transform: scale(.85); + `),I("&.popover-transition-enter-to, &.popover-transition-leave-from",` + transform: scale(1); + opacity: 1; + `),I("&.popover-transition-enter-active",` + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .15s var(--n-bezier-ease-out), + transform .15s var(--n-bezier-ease-out); + `),I("&.popover-transition-leave-active",` + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .15s var(--n-bezier-ease-in), + transform .15s var(--n-bezier-ease-in); + `)]),gn("top-start",` + top: calc(${Tt} / -2); + left: calc(${ro("top-start")} - var(--v-offset-left)); + `),gn("top",` + top: calc(${Tt} / -2); + transform: translateX(calc(${Tt} / -2)) rotate(45deg); + left: 50%; + `),gn("top-end",` + top: calc(${Tt} / -2); + right: calc(${ro("top-end")} + var(--v-offset-left)); + `),gn("bottom-start",` + bottom: calc(${Tt} / -2); + left: calc(${ro("bottom-start")} - var(--v-offset-left)); + `),gn("bottom",` + bottom: calc(${Tt} / -2); + transform: translateX(calc(${Tt} / -2)) rotate(45deg); + left: 50%; + `),gn("bottom-end",` + bottom: calc(${Tt} / -2); + right: calc(${ro("bottom-end")} + var(--v-offset-left)); + `),gn("left-start",` + left: calc(${Tt} / -2); + top: calc(${ro("left-start")} - var(--v-offset-top)); + `),gn("left",` + left: calc(${Tt} / -2); + transform: translateY(calc(${Tt} / -2)) rotate(45deg); + top: 50%; + `),gn("left-end",` + left: calc(${Tt} / -2); + bottom: calc(${ro("left-end")} + var(--v-offset-top)); + `),gn("right-start",` + right: calc(${Tt} / -2); + top: calc(${ro("right-start")} - var(--v-offset-top)); + `),gn("right",` + right: calc(${Tt} / -2); + transform: translateY(calc(${Tt} / -2)) rotate(45deg); + top: 50%; + `),gn("right-end",` + right: calc(${Tt} / -2); + bottom: calc(${ro("right-end")} + var(--v-offset-top)); + `),...VR({top:["right-start","left-start"],right:["top-end","bottom-end"],bottom:["right-end","left-end"],left:["top-start","bottom-start"]},(e,t)=>{const n=["right","left"].includes(t),o=n?"width":"height";return e.map(r=>{const i=r.split("-")[1]==="end",a=`calc((${`var(--v-target-${o}, 0px)`} - ${Tt}) / 2)`,s=ro(r);return I(`[v-placement="${r}"] >`,[P("popover-shared",[H("center-arrow",[P("popover-arrow",`${t}: calc(max(${a}, ${s}) ${i?"+":"-"} var(--v-offset-${n?"left":"top"}));`)])])])})})]);function ro(e){return["top","bottom"].includes(e.split("-")[0])?"var(--n-arrow-offset)":"var(--n-arrow-offset-vertical)"}function gn(e,t){const n=e.split("-")[0],o=["top","bottom"].includes(n)?"height: var(--n-space-arrow);":"width: var(--n-space-arrow);";return I(`[v-placement="${e}"] >`,[P("popover-shared",` + margin-${vs[n]}: var(--n-space); + `,[H("show-arrow",` + margin-${vs[n]}: var(--n-space-arrow); + `),H("overlap",` + margin: 0; + `),Z0("popover-arrow-wrapper",` + right: 0; + left: 0; + top: 0; + bottom: 0; + ${n}: 100%; + ${vs[n]}: auto; + ${o} + `,[P("popover-arrow",t)])])])}const Mv=Object.assign(Object.assign({},Be.props),{to:Yn.propTo,show:Boolean,trigger:String,showArrow:Boolean,delay:Number,duration:Number,raw:Boolean,arrowPointToCenter:Boolean,arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],displayDirective:String,x:Number,y:Number,flip:Boolean,overlap:Boolean,placement:String,width:[Number,String],keepAliveOnHover:Boolean,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],internalDeactivateImmediately:Boolean,animated:Boolean,onClickoutside:Function,internalTrapFocus:Boolean,internalOnAfterLeave:Function,minWidth:Number,maxWidth:Number});function Bv({arrowClass:e,arrowStyle:t,arrowWrapperClass:n,arrowWrapperStyle:o,clsPrefix:r}){return h("div",{key:"__popover-arrow__",style:o,class:[`${r}-popover-arrow-wrapper`,n]},h("div",{class:[`${r}-popover-arrow`,e],style:t}))}const Qk=pe({name:"PopoverBody",inheritAttrs:!1,props:Mv,setup(e,{slots:t,attrs:n}){const{namespaceRef:o,mergedClsPrefixRef:r,inlineThemeDisabled:i,mergedRtlRef:l}=Ye(e),a=Be("Popover","-popover",Jk,Ur,e,r),s=Bt("Popover",l,r),d=E(null),c=Ee("NPopover"),f=E(null),v=E(e.show),g=E(!1);en(()=>{const{show:k}=e;k&&!kx()&&!e.internalDeactivateImmediately&&(g.value=!0)});const u=O(()=>{const{trigger:k,onClickoutside:F}=e,M=[],{positionManuallyRef:{value:_}}=c;return _||(k==="click"&&!F&&M.push([Ii,R,void 0,{capture:!0}]),k==="hover"&&M.push([My,x])),F&&M.push([Ii,R,void 0,{capture:!0}]),(e.displayDirective==="show"||e.animated&&g.value)&&M.push([Fo,e.show]),M}),p=O(()=>{const{common:{cubicBezierEaseInOut:k,cubicBezierEaseIn:F,cubicBezierEaseOut:M},self:{space:_,spaceArrow:T,padding:B,fontSize:D,textColor:K,dividerColor:N,color:V,boxShadow:ie,borderRadius:he,arrowHeight:J,arrowOffset:re,arrowOffsetVertical:ye}}=a.value;return{"--n-box-shadow":ie,"--n-bezier":k,"--n-bezier-ease-in":F,"--n-bezier-ease-out":M,"--n-font-size":D,"--n-text-color":K,"--n-color":V,"--n-divider-color":N,"--n-border-radius":he,"--n-arrow-height":J,"--n-arrow-offset":re,"--n-arrow-offset-vertical":ye,"--n-padding":B,"--n-space":_,"--n-space-arrow":T}}),b=O(()=>{const k=e.width==="trigger"?void 0:Gt(e.width),F=[];k&&F.push({width:k});const{maxWidth:M,minWidth:_}=e;return M&&F.push({maxWidth:Gt(M)}),_&&F.push({maxWidth:Gt(_)}),i||F.push(p.value),F}),m=i?vt("popover",void 0,p,e):void 0;c.setBodyInstance({syncPosition:y}),xt(()=>{c.setBodyInstance(null)}),tt(we(e,"show"),k=>{e.animated||(k?v.value=!0:v.value=!1)});function y(){var k;(k=d.value)===null||k===void 0||k.syncPosition()}function $(k){e.trigger==="hover"&&e.keepAliveOnHover&&e.show&&c.handleMouseEnter(k)}function S(k){e.trigger==="hover"&&e.keepAliveOnHover&&c.handleMouseLeave(k)}function x(k){e.trigger==="hover"&&!C().contains(Dr(k))&&c.handleMouseMoveOutside(k)}function R(k){(e.trigger==="click"&&!C().contains(Dr(k))||e.onClickoutside)&&c.handleClickOutside(k)}function C(){return c.getTriggerElement()}qe(Ui,f),qe(ca,null),qe(ua,null);function w(){if(m?.onRender(),!(e.displayDirective==="show"||e.show||e.animated&&g.value))return null;let F;const M=c.internalRenderBodyRef.value,{value:_}=r;if(M)F=M([`${_}-popover-shared`,s?.value&&`${_}-popover--rtl`,m?.themeClass.value,e.overlap&&`${_}-popover-shared--overlap`,e.showArrow&&`${_}-popover-shared--show-arrow`,e.arrowPointToCenter&&`${_}-popover-shared--center-arrow`],f,b.value,$,S);else{const{value:T}=c.extraClassRef,{internalTrapFocus:B}=e,D=!Mr(t.header)||!Mr(t.footer),K=()=>{var N,V;const ie=D?h(nt,null,lt(t.header,re=>re?h("div",{class:[`${_}-popover__header`,e.headerClass],style:e.headerStyle},re):null),lt(t.default,re=>re?h("div",{class:[`${_}-popover__content`,e.contentClass],style:e.contentStyle},t):null),lt(t.footer,re=>re?h("div",{class:[`${_}-popover__footer`,e.footerClass],style:e.footerStyle},re):null)):e.scrollable?(N=t.default)===null||N===void 0?void 0:N.call(t):h("div",{class:[`${_}-popover__content`,e.contentClass],style:e.contentStyle},t),he=e.scrollable?h(zv,{themeOverrides:a.value.peerOverrides.Scrollbar,theme:a.value.peers.Scrollbar,contentClass:D?void 0:`${_}-popover__content ${(V=e.contentClass)!==null&&V!==void 0?V:""}`,contentStyle:D?void 0:e.contentStyle},{default:()=>ie}):ie,J=e.showArrow?Bv({arrowClass:e.arrowClass,arrowStyle:e.arrowStyle,arrowWrapperClass:e.arrowWrapperClass,arrowWrapperStyle:e.arrowWrapperStyle,clsPrefix:_}):null;return[he,J]};F=h("div",nn({class:[`${_}-popover`,`${_}-popover-shared`,s?.value&&`${_}-popover--rtl`,m?.themeClass.value,T.map(N=>`${_}-${N}`),{[`${_}-popover--scrollable`]:e.scrollable,[`${_}-popover--show-header-or-footer`]:D,[`${_}-popover--raw`]:e.raw,[`${_}-popover-shared--overlap`]:e.overlap,[`${_}-popover-shared--show-arrow`]:e.showArrow,[`${_}-popover-shared--center-arrow`]:e.arrowPointToCenter}],ref:f,style:b.value,onKeydown:c.handleKeydown,onMouseenter:$,onMouseleave:S},n),B?h(Kp,{active:e.show,autoFocus:!0},{default:K}):K())}return qn(F,u.value)}return{displayed:g,namespace:o,isMounted:c.isMountedRef,zIndex:c.zIndexRef,followerRef:d,adjustedTo:Yn(e),followerEnabled:v,renderContentNode:w}},render(){return h(Ad,{ref:"followerRef",zIndex:this.zIndex,show:this.show,enabled:this.followerEnabled,to:this.adjustedTo,x:this.x,y:this.y,flip:this.flip,placement:this.placement,containerClass:this.namespace,overlap:this.overlap,width:this.width==="trigger"?"target":void 0,teleportDisabled:this.adjustedTo===Yn.tdkey},{default:()=>this.animated?h(pn,{name:"popover-transition",appear:this.isMounted,onEnter:()=>{this.followerEnabled=!0},onAfterLeave:()=>{var e;(e=this.internalOnAfterLeave)===null||e===void 0||e.call(this),this.followerEnabled=!1,this.displayed=!1}},{default:this.renderContentNode}):this.renderContentNode()})}}),eP=Object.keys(Mv),tP={focus:["onFocus","onBlur"],click:["onClick"],hover:["onMouseenter","onMouseleave"],manual:[],nested:["onFocus","onBlur","onMouseenter","onMouseleave","onClick"]};function nP(e,t,n){tP[t].forEach(o=>{e.props?e.props=Object.assign({},e.props):e.props={};const r=e.props[o],i=n[o];r?e.props[o]=(...l)=>{r(...l),i(...l)}:e.props[o]=i})}const Nr={show:{type:Boolean,default:void 0},defaultShow:Boolean,showArrow:{type:Boolean,default:!0},trigger:{type:String,default:"hover"},delay:{type:Number,default:100},duration:{type:Number,default:100},raw:Boolean,placement:{type:String,default:"top"},x:Number,y:Number,arrowPointToCenter:Boolean,disabled:Boolean,getDisabled:Function,displayDirective:{type:String,default:"if"},arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],flip:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},width:{type:[Number,String],default:void 0},overlap:Boolean,keepAliveOnHover:{type:Boolean,default:!0},zIndex:Number,to:Yn.propTo,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],onClickoutside:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],internalDeactivateImmediately:Boolean,internalSyncTargetWithParent:Boolean,internalInheritedEventHandlers:{type:Array,default:()=>[]},internalTrapFocus:Boolean,internalExtraClass:{type:Array,default:()=>[]},onShow:[Function,Array],onHide:[Function,Array],arrow:{type:Boolean,default:void 0},minWidth:Number,maxWidth:Number},oP=Object.assign(Object.assign(Object.assign({},Be.props),Nr),{internalOnAfterLeave:Function,internalRenderBody:Function}),Zi=pe({name:"Popover",inheritAttrs:!1,props:oP,slots:Object,__popover__:!0,setup(e){const t=jr(),n=E(null),o=O(()=>e.show),r=E(e.defaultShow),i=qt(o,r),l=ot(()=>e.disabled?!1:i.value),a=()=>{if(e.disabled)return!0;const{getDisabled:D}=e;return!!D?.()},s=()=>a()?!1:i.value,d=Bl(e,["arrow","showArrow"]),c=O(()=>e.overlap?!1:d.value);let f=null;const v=E(null),g=E(null),u=ot(()=>e.x!==void 0&&e.y!==void 0);function p(D){const{"onUpdate:show":K,onUpdateShow:N,onShow:V,onHide:ie}=e;r.value=D,K&&me(K,D),N&&me(N,D),D&&V&&me(V,!0),D&&ie&&me(ie,!1)}function b(){f&&f.syncPosition()}function m(){const{value:D}=v;D&&(window.clearTimeout(D),v.value=null)}function y(){const{value:D}=g;D&&(window.clearTimeout(D),g.value=null)}function $(){const D=a();if(e.trigger==="focus"&&!D){if(s())return;p(!0)}}function S(){const D=a();if(e.trigger==="focus"&&!D){if(!s())return;p(!1)}}function x(){const D=a();if(e.trigger==="hover"&&!D){if(y(),v.value!==null||s())return;const K=()=>{p(!0),v.value=null},{delay:N}=e;N===0?K():v.value=window.setTimeout(K,N)}}function R(){const D=a();if(e.trigger==="hover"&&!D){if(m(),g.value!==null||!s())return;const K=()=>{p(!1),g.value=null},{duration:N}=e;N===0?K():g.value=window.setTimeout(K,N)}}function C(){R()}function w(D){var K;s()&&(e.trigger==="click"&&(m(),y(),p(!1)),(K=e.onClickoutside)===null||K===void 0||K.call(e,D))}function k(){if(e.trigger==="click"&&!a()){m(),y();const D=!s();p(D)}}function F(D){e.internalTrapFocus&&D.key==="Escape"&&(m(),y(),p(!1))}function M(D){r.value=D}function _(){var D;return(D=n.value)===null||D===void 0?void 0:D.targetRef}function T(D){f=D}return qe("NPopover",{getTriggerElement:_,handleKeydown:F,handleMouseEnter:x,handleMouseLeave:R,handleClickOutside:w,handleMouseMoveOutside:C,setBodyInstance:T,positionManuallyRef:u,isMountedRef:t,zIndexRef:we(e,"zIndex"),extraClassRef:we(e,"internalExtraClass"),internalRenderBodyRef:we(e,"internalRenderBody")}),en(()=>{i.value&&a()&&p(!1)}),{binderInstRef:n,positionManually:u,mergedShowConsideringDisabledProp:l,uncontrolledShow:r,mergedShowArrow:c,getMergedShow:s,setShow:M,handleClick:k,handleMouseEnter:x,handleMouseLeave:R,handleFocus:$,handleBlur:S,syncPosition:b}},render(){var e;const{positionManually:t,$slots:n}=this;let o,r=!1;if(!t&&(o=zx(n,"trigger"),o)){o=hn(o),o=o.type===Wi?h("span",[o]):o;const i={onClick:this.handleClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onFocus:this.handleFocus,onBlur:this.handleBlur};if(!((e=o.type)===null||e===void 0)&&e.__popover__)r=!0,o.props||(o.props={internalSyncTargetWithParent:!0,internalInheritedEventHandlers:[]}),o.props.internalSyncTargetWithParent=!0,o.props.internalInheritedEventHandlers?o.props.internalInheritedEventHandlers=[i,...o.props.internalInheritedEventHandlers]:o.props.internalInheritedEventHandlers=[i];else{const{internalInheritedEventHandlers:l}=this,a=[i,...l],s={onBlur:d=>{a.forEach(c=>{c.onBlur(d)})},onFocus:d=>{a.forEach(c=>{c.onFocus(d)})},onClick:d=>{a.forEach(c=>{c.onClick(d)})},onMouseenter:d=>{a.forEach(c=>{c.onMouseenter(d)})},onMouseleave:d=>{a.forEach(c=>{c.onMouseleave(d)})}};nP(o,l?"nested":t?"manual":this.trigger,s)}}return h(Ed,{ref:"binderInstRef",syncTarget:!r,syncTargetWithParent:this.internalSyncTargetWithParent},{default:()=>{this.mergedShowConsideringDisabledProp;const i=this.getMergedShow();return[this.internalTrapFocus&&i?qn(h("div",{style:{position:"fixed",top:0,right:0,bottom:0,left:0}}),[[Bd,{enabled:i,zIndex:this.zIndex}]]):null,t?null:h(Md,null,{default:()=>o}),h(Qk,Eo(this.$props,eP,Object.assign(Object.assign({},this.$attrs),{showArrow:this.mergedShowArrow,show:i})),{default:()=>{var l,a;return(a=(l=this.$slots).default)===null||a===void 0?void 0:a.call(l)},header:()=>{var l,a;return(a=(l=this.$slots).header)===null||a===void 0?void 0:a.call(l)},footer:()=>{var l,a;return(a=(l=this.$slots).footer)===null||a===void 0?void 0:a.call(l)}})]}})}}),rP={closeIconSizeTiny:"12px",closeIconSizeSmall:"12px",closeIconSizeMedium:"14px",closeIconSizeLarge:"14px",closeSizeTiny:"16px",closeSizeSmall:"16px",closeSizeMedium:"18px",closeSizeLarge:"18px",padding:"0 7px",closeMargin:"0 0 0 4px"};function iP(e){const{textColor2:t,primaryColorHover:n,primaryColorPressed:o,primaryColor:r,infoColor:i,successColor:l,warningColor:a,errorColor:s,baseColor:d,borderColor:c,opacityDisabled:f,tagColor:v,closeIconColor:g,closeIconColorHover:u,closeIconColorPressed:p,borderRadiusSmall:b,fontSizeMini:m,fontSizeTiny:y,fontSizeSmall:$,fontSizeMedium:S,heightMini:x,heightTiny:R,heightSmall:C,heightMedium:w,closeColorHover:k,closeColorPressed:F,buttonColor2Hover:M,buttonColor2Pressed:_,fontWeightStrong:T}=e;return Object.assign(Object.assign({},rP),{closeBorderRadius:b,heightTiny:x,heightSmall:R,heightMedium:C,heightLarge:w,borderRadius:b,opacityDisabled:f,fontSizeTiny:m,fontSizeSmall:y,fontSizeMedium:$,fontSizeLarge:S,fontWeightStrong:T,textColorCheckable:t,textColorHoverCheckable:t,textColorPressedCheckable:t,textColorChecked:d,colorCheckable:"#0000",colorHoverCheckable:M,colorPressedCheckable:_,colorChecked:r,colorCheckedHover:n,colorCheckedPressed:o,border:`1px solid ${c}`,textColor:t,color:v,colorBordered:"rgb(250, 250, 252)",closeIconColor:g,closeIconColorHover:u,closeIconColorPressed:p,closeColorHover:k,closeColorPressed:F,borderPrimary:`1px solid ${Ue(r,{alpha:.3})}`,textColorPrimary:r,colorPrimary:Ue(r,{alpha:.12}),colorBorderedPrimary:Ue(r,{alpha:.1}),closeIconColorPrimary:r,closeIconColorHoverPrimary:r,closeIconColorPressedPrimary:r,closeColorHoverPrimary:Ue(r,{alpha:.12}),closeColorPressedPrimary:Ue(r,{alpha:.18}),borderInfo:`1px solid ${Ue(i,{alpha:.3})}`,textColorInfo:i,colorInfo:Ue(i,{alpha:.12}),colorBorderedInfo:Ue(i,{alpha:.1}),closeIconColorInfo:i,closeIconColorHoverInfo:i,closeIconColorPressedInfo:i,closeColorHoverInfo:Ue(i,{alpha:.12}),closeColorPressedInfo:Ue(i,{alpha:.18}),borderSuccess:`1px solid ${Ue(l,{alpha:.3})}`,textColorSuccess:l,colorSuccess:Ue(l,{alpha:.12}),colorBorderedSuccess:Ue(l,{alpha:.1}),closeIconColorSuccess:l,closeIconColorHoverSuccess:l,closeIconColorPressedSuccess:l,closeColorHoverSuccess:Ue(l,{alpha:.12}),closeColorPressedSuccess:Ue(l,{alpha:.18}),borderWarning:`1px solid ${Ue(a,{alpha:.35})}`,textColorWarning:a,colorWarning:Ue(a,{alpha:.15}),colorBorderedWarning:Ue(a,{alpha:.12}),closeIconColorWarning:a,closeIconColorHoverWarning:a,closeIconColorPressedWarning:a,closeColorHoverWarning:Ue(a,{alpha:.12}),closeColorPressedWarning:Ue(a,{alpha:.18}),borderError:`1px solid ${Ue(s,{alpha:.23})}`,textColorError:s,colorError:Ue(s,{alpha:.1}),colorBorderedError:Ue(s,{alpha:.08}),closeIconColorError:s,closeIconColorHoverError:s,closeIconColorPressedError:s,closeColorHoverError:Ue(s,{alpha:.12}),closeColorPressedError:Ue(s,{alpha:.18})})}const lP={common:gt,self:iP},aP={color:Object,type:{type:String,default:"default"},round:Boolean,size:String,closable:Boolean,disabled:{type:Boolean,default:void 0}},sP=P("tag",` + --n-close-margin: var(--n-close-margin-top) var(--n-close-margin-right) var(--n-close-margin-bottom) var(--n-close-margin-left); + white-space: nowrap; + position: relative; + box-sizing: border-box; + cursor: default; + display: inline-flex; + align-items: center; + flex-wrap: nowrap; + padding: var(--n-padding); + border-radius: var(--n-border-radius); + color: var(--n-text-color); + background-color: var(--n-color); + transition: + border-color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + opacity .3s var(--n-bezier); + line-height: 1; + height: var(--n-height); + font-size: var(--n-font-size); +`,[H("strong",` + font-weight: var(--n-font-weight-strong); + `),j("border",` + pointer-events: none; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + border-radius: inherit; + border: var(--n-border); + transition: border-color .3s var(--n-bezier); + `),j("icon",` + display: flex; + margin: 0 4px 0 0; + color: var(--n-text-color); + transition: color .3s var(--n-bezier); + font-size: var(--n-avatar-size-override); + `),j("avatar",` + display: flex; + margin: 0 6px 0 0; + `),j("close",` + margin: var(--n-close-margin); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `),H("round",` + padding: 0 calc(var(--n-height) / 3); + border-radius: calc(var(--n-height) / 2); + `,[j("icon",` + margin: 0 4px 0 calc((var(--n-height) - 8px) / -2); + `),j("avatar",` + margin: 0 6px 0 calc((var(--n-height) - 8px) / -2); + `),H("closable",` + padding: 0 calc(var(--n-height) / 4) 0 calc(var(--n-height) / 3); + `)]),H("icon, avatar",[H("round",` + padding: 0 calc(var(--n-height) / 3) 0 calc(var(--n-height) / 2); + `)]),H("disabled",` + cursor: not-allowed !important; + opacity: var(--n-opacity-disabled); + `),H("checkable",` + cursor: pointer; + box-shadow: none; + color: var(--n-text-color-checkable); + background-color: var(--n-color-checkable); + `,[dt("disabled",[I("&:hover","background-color: var(--n-color-hover-checkable);",[dt("checked","color: var(--n-text-color-hover-checkable);")]),I("&:active","background-color: var(--n-color-pressed-checkable);",[dt("checked","color: var(--n-text-color-pressed-checkable);")])]),H("checked",` + color: var(--n-text-color-checked); + background-color: var(--n-color-checked); + `,[dt("disabled",[I("&:hover","background-color: var(--n-color-checked-hover);"),I("&:active","background-color: var(--n-color-checked-pressed);")])])])]),dP=Object.assign(Object.assign(Object.assign({},Be.props),aP),{bordered:{type:Boolean,default:void 0},checked:Boolean,checkable:Boolean,strong:Boolean,triggerClickOnClose:Boolean,onClose:[Array,Function],onMouseenter:Function,onMouseleave:Function,"onUpdate:checked":Function,onUpdateChecked:Function,internalCloseFocusable:{type:Boolean,default:!0},internalCloseIsButtonTag:{type:Boolean,default:!0},onCheckedChange:Function}),cP="n-tag",ki=pe({name:"Tag",props:dP,slots:Object,setup(e){const t=E(null),{mergedBorderedRef:n,mergedClsPrefixRef:o,inlineThemeDisabled:r,mergedRtlRef:i,mergedComponentPropsRef:l}=Ye(e),a=O(()=>{var p,b;return e.size||((b=(p=l?.value)===null||p===void 0?void 0:p.Tag)===null||b===void 0?void 0:b.size)||"medium"}),s=Be("Tag","-tag",sP,lP,e,o);qe(cP,{roundRef:we(e,"round")});function d(){if(!e.disabled&&e.checkable){const{checked:p,onCheckedChange:b,onUpdateChecked:m,"onUpdate:checked":y}=e;m&&m(!p),y&&y(!p),b&&b(!p)}}function c(p){if(e.triggerClickOnClose||p.stopPropagation(),!e.disabled){const{onClose:b}=e;b&&me(b,p)}}const f={setTextContent(p){const{value:b}=t;b&&(b.textContent=p)}},v=Bt("Tag",i,o),g=O(()=>{const{type:p,color:{color:b,textColor:m}={}}=e,y=a.value,{common:{cubicBezierEaseInOut:$},self:{padding:S,closeMargin:x,borderRadius:R,opacityDisabled:C,textColorCheckable:w,textColorHoverCheckable:k,textColorPressedCheckable:F,textColorChecked:M,colorCheckable:_,colorHoverCheckable:T,colorPressedCheckable:B,colorChecked:D,colorCheckedHover:K,colorCheckedPressed:N,closeBorderRadius:V,fontWeightStrong:ie,[de("colorBordered",p)]:he,[de("closeSize",y)]:J,[de("closeIconSize",y)]:re,[de("fontSize",y)]:ye,[de("height",y)]:Z,[de("color",p)]:le,[de("textColor",p)]:$e,[de("border",p)]:ze,[de("closeIconColor",p)]:Ae,[de("closeIconColorHover",p)]:Te,[de("closeIconColorPressed",p)]:ne,[de("closeColorHover",p)]:Oe,[de("closeColorPressed",p)]:z}}=s.value,L=Ft(x);return{"--n-font-weight-strong":ie,"--n-avatar-size-override":`calc(${Z} - 8px)`,"--n-bezier":$,"--n-border-radius":R,"--n-border":ze,"--n-close-icon-size":re,"--n-close-color-pressed":z,"--n-close-color-hover":Oe,"--n-close-border-radius":V,"--n-close-icon-color":Ae,"--n-close-icon-color-hover":Te,"--n-close-icon-color-pressed":ne,"--n-close-icon-color-disabled":Ae,"--n-close-margin-top":L.top,"--n-close-margin-right":L.right,"--n-close-margin-bottom":L.bottom,"--n-close-margin-left":L.left,"--n-close-size":J,"--n-color":b||(n.value?he:le),"--n-color-checkable":_,"--n-color-checked":D,"--n-color-checked-hover":K,"--n-color-checked-pressed":N,"--n-color-hover-checkable":T,"--n-color-pressed-checkable":B,"--n-font-size":ye,"--n-height":Z,"--n-opacity-disabled":C,"--n-padding":S,"--n-text-color":m||$e,"--n-text-color-checkable":w,"--n-text-color-checked":M,"--n-text-color-hover-checkable":k,"--n-text-color-pressed-checkable":F}}),u=r?vt("tag",O(()=>{let p="";const{type:b,color:{color:m,textColor:y}={}}=e;return p+=b[0],p+=a.value[0],m&&(p+=`a${Al(m)}`),y&&(p+=`b${Al(y)}`),n.value&&(p+="c"),p}),g,e):void 0;return Object.assign(Object.assign({},f),{rtlEnabled:v,mergedClsPrefix:o,contentRef:t,mergedBordered:n,handleClick:d,handleCloseClick:c,cssVars:r?void 0:g,themeClass:u?.themeClass,onRender:u?.onRender})},render(){var e,t;const{mergedClsPrefix:n,rtlEnabled:o,closable:r,color:{borderColor:i}={},round:l,onRender:a,$slots:s}=this;a?.();const d=lt(s.avatar,f=>f&&h("div",{class:`${n}-tag__avatar`},f)),c=lt(s.icon,f=>f&&h("div",{class:`${n}-tag__icon`},f));return h("div",{class:[`${n}-tag`,this.themeClass,{[`${n}-tag--rtl`]:o,[`${n}-tag--strong`]:this.strong,[`${n}-tag--disabled`]:this.disabled,[`${n}-tag--checkable`]:this.checkable,[`${n}-tag--checked`]:this.checkable&&this.checked,[`${n}-tag--round`]:l,[`${n}-tag--avatar`]:d,[`${n}-tag--icon`]:c,[`${n}-tag--closable`]:r}],style:this.cssVars,onClick:this.handleClick,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave},c||d,h("span",{class:`${n}-tag__content`,ref:"contentRef"},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)),!this.checkable&&r?h(Kr,{clsPrefix:n,class:`${n}-tag__close`,disabled:this.disabled,onClick:this.handleCloseClick,focusable:this.internalCloseFocusable,round:l,isButtonTag:this.internalCloseIsButtonTag,absolute:!0}):null,!this.checkable&&this.mergedBordered?h("div",{class:`${n}-tag__border`,style:{borderColor:i}}):null)}}),Av=pe({name:"InternalSelectionSuffix",props:{clsPrefix:{type:String,required:!0},showArrow:{type:Boolean,default:void 0},showClear:{type:Boolean,default:void 0},loading:{type:Boolean,default:!1},onClear:Function},setup(e,{slots:t}){return()=>{const{clsPrefix:n}=e;return h(gr,{clsPrefix:n,class:`${n}-base-suffix`,strokeWidth:24,scale:.85,show:e.loading},{default:()=>e.showArrow?h(Qs,{clsPrefix:n,show:e.showClear,onClear:e.onClear},{placeholder:()=>h(kt,{clsPrefix:n,class:`${n}-base-suffix__arrow`},{default:()=>$n(t.default,()=>[h(kv,null)])})}):null})}}}),uP={paddingSingle:"0 26px 0 12px",paddingMultiple:"3px 26px 0 12px",clearSize:"16px",arrowSize:"16px"};function fP(e){const{borderRadius:t,textColor2:n,textColorDisabled:o,inputColor:r,inputColorDisabled:i,primaryColor:l,primaryColorHover:a,warningColor:s,warningColorHover:d,errorColor:c,errorColorHover:f,borderColor:v,iconColor:g,iconColorDisabled:u,clearColor:p,clearColorHover:b,clearColorPressed:m,placeholderColor:y,placeholderColorDisabled:$,fontSizeTiny:S,fontSizeSmall:x,fontSizeMedium:R,fontSizeLarge:C,heightTiny:w,heightSmall:k,heightMedium:F,heightLarge:M,fontWeight:_}=e;return Object.assign(Object.assign({},uP),{fontSizeTiny:S,fontSizeSmall:x,fontSizeMedium:R,fontSizeLarge:C,heightTiny:w,heightSmall:k,heightMedium:F,heightLarge:M,borderRadius:t,fontWeight:_,textColor:n,textColorDisabled:o,placeholderColor:y,placeholderColorDisabled:$,color:r,colorDisabled:i,colorActive:r,border:`1px solid ${v}`,borderHover:`1px solid ${a}`,borderActive:`1px solid ${l}`,borderFocus:`1px solid ${a}`,boxShadowHover:"none",boxShadowActive:`0 0 0 2px ${Ue(l,{alpha:.2})}`,boxShadowFocus:`0 0 0 2px ${Ue(l,{alpha:.2})}`,caretColor:l,arrowColor:g,arrowColorDisabled:u,loadingColor:l,borderWarning:`1px solid ${s}`,borderHoverWarning:`1px solid ${d}`,borderActiveWarning:`1px solid ${s}`,borderFocusWarning:`1px solid ${d}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 0 2px ${Ue(s,{alpha:.2})}`,boxShadowFocusWarning:`0 0 0 2px ${Ue(s,{alpha:.2})}`,colorActiveWarning:r,caretColorWarning:s,borderError:`1px solid ${c}`,borderHoverError:`1px solid ${f}`,borderActiveError:`1px solid ${c}`,borderFocusError:`1px solid ${f}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 0 2px ${Ue(c,{alpha:.2})}`,boxShadowFocusError:`0 0 0 2px ${Ue(c,{alpha:.2})}`,colorActiveError:r,caretColorError:c,clearColor:p,clearColorHover:b,clearColorPressed:m})}const Iv={name:"InternalSelection",common:gt,peers:{Popover:Ur},self:fP},hP=I([P("base-selection",` + --n-padding-single: var(--n-padding-single-top) var(--n-padding-single-right) var(--n-padding-single-bottom) var(--n-padding-single-left); + --n-padding-multiple: var(--n-padding-multiple-top) var(--n-padding-multiple-right) var(--n-padding-multiple-bottom) var(--n-padding-multiple-left); + position: relative; + z-index: auto; + box-shadow: none; + width: 100%; + max-width: 100%; + display: inline-block; + vertical-align: bottom; + border-radius: var(--n-border-radius); + min-height: var(--n-height); + line-height: 1.5; + font-size: var(--n-font-size); + `,[P("base-loading",` + color: var(--n-loading-color); + `),P("base-selection-tags","min-height: var(--n-height);"),j("border, state-border",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + pointer-events: none; + border: var(--n-border); + border-radius: inherit; + transition: + box-shadow .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `),j("state-border",` + z-index: 1; + border-color: #0000; + `),P("base-suffix",` + cursor: pointer; + position: absolute; + top: 50%; + transform: translateY(-50%); + right: 10px; + `,[j("arrow",` + font-size: var(--n-arrow-size); + color: var(--n-arrow-color); + transition: color .3s var(--n-bezier); + `)]),P("base-selection-overlay",` + display: flex; + align-items: center; + white-space: nowrap; + pointer-events: none; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--n-padding-single); + transition: color .3s var(--n-bezier); + `,[j("wrapper",` + flex-basis: 0; + flex-grow: 1; + overflow: hidden; + text-overflow: ellipsis; + `)]),P("base-selection-placeholder",` + color: var(--n-placeholder-color); + `,[j("inner",` + max-width: 100%; + overflow: hidden; + `)]),P("base-selection-tags",` + cursor: pointer; + outline: none; + box-sizing: border-box; + position: relative; + z-index: auto; + display: flex; + padding: var(--n-padding-multiple); + flex-wrap: wrap; + align-items: center; + width: 100%; + vertical-align: bottom; + background-color: var(--n-color); + border-radius: inherit; + transition: + color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier); + `),P("base-selection-label",` + height: var(--n-height); + display: inline-flex; + width: 100%; + vertical-align: bottom; + cursor: pointer; + outline: none; + z-index: auto; + box-sizing: border-box; + position: relative; + transition: + color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier); + border-radius: inherit; + background-color: var(--n-color); + align-items: center; + `,[P("base-selection-input",` + font-size: inherit; + line-height: inherit; + outline: none; + cursor: pointer; + box-sizing: border-box; + border:none; + width: 100%; + padding: var(--n-padding-single); + background-color: #0000; + color: var(--n-text-color); + transition: color .3s var(--n-bezier); + caret-color: var(--n-caret-color); + `,[j("content",` + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + `)]),j("render-label",` + color: var(--n-text-color); + `)]),dt("disabled",[I("&:hover",[j("state-border",` + box-shadow: var(--n-box-shadow-hover); + border: var(--n-border-hover); + `)]),H("focus",[j("state-border",` + box-shadow: var(--n-box-shadow-focus); + border: var(--n-border-focus); + `)]),H("active",[j("state-border",` + box-shadow: var(--n-box-shadow-active); + border: var(--n-border-active); + `),P("base-selection-label","background-color: var(--n-color-active);"),P("base-selection-tags","background-color: var(--n-color-active);")])]),H("disabled","cursor: not-allowed;",[j("arrow",` + color: var(--n-arrow-color-disabled); + `),P("base-selection-label",` + cursor: not-allowed; + background-color: var(--n-color-disabled); + `,[P("base-selection-input",` + cursor: not-allowed; + color: var(--n-text-color-disabled); + `),j("render-label",` + color: var(--n-text-color-disabled); + `)]),P("base-selection-tags",` + cursor: not-allowed; + background-color: var(--n-color-disabled); + `),P("base-selection-placeholder",` + cursor: not-allowed; + color: var(--n-placeholder-color-disabled); + `)]),P("base-selection-input-tag",` + height: calc(var(--n-height) - 6px); + line-height: calc(var(--n-height) - 6px); + outline: none; + display: none; + position: relative; + margin-bottom: 3px; + max-width: 100%; + vertical-align: bottom; + `,[j("input",` + font-size: inherit; + font-family: inherit; + min-width: 1px; + padding: 0; + background-color: #0000; + outline: none; + border: none; + max-width: 100%; + overflow: hidden; + width: 1em; + line-height: inherit; + cursor: pointer; + color: var(--n-text-color); + caret-color: var(--n-caret-color); + `),j("mirror",` + position: absolute; + left: 0; + top: 0; + white-space: pre; + visibility: hidden; + user-select: none; + -webkit-user-select: none; + opacity: 0; + `)]),["warning","error"].map(e=>H(`${e}-status`,[j("state-border",`border: var(--n-border-${e});`),dt("disabled",[I("&:hover",[j("state-border",` + box-shadow: var(--n-box-shadow-hover-${e}); + border: var(--n-border-hover-${e}); + `)]),H("active",[j("state-border",` + box-shadow: var(--n-box-shadow-active-${e}); + border: var(--n-border-active-${e}); + `),P("base-selection-label",`background-color: var(--n-color-active-${e});`),P("base-selection-tags",`background-color: var(--n-color-active-${e});`)]),H("focus",[j("state-border",` + box-shadow: var(--n-box-shadow-focus-${e}); + border: var(--n-border-focus-${e}); + `)])])]))]),P("base-selection-popover",` + margin-bottom: -3px; + display: flex; + flex-wrap: wrap; + margin-right: -8px; + `),P("base-selection-tag-wrapper",` + max-width: 100%; + display: inline-flex; + padding: 0 7px 3px 0; + `,[I("&:last-child","padding-right: 0;"),P("tag",` + font-size: 14px; + max-width: 100%; + `,[j("content",` + line-height: 1.25; + text-overflow: ellipsis; + overflow: hidden; + `)])])]),pP=pe({name:"InternalSelection",props:Object.assign(Object.assign({},Be.props),{clsPrefix:{type:String,required:!0},bordered:{type:Boolean,default:void 0},active:Boolean,pattern:{type:String,default:""},placeholder:String,selectedOption:{type:Object,default:null},selectedOptions:{type:Array,default:null},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},multiple:Boolean,filterable:Boolean,clearable:Boolean,disabled:Boolean,size:{type:String,default:"medium"},loading:Boolean,autofocus:Boolean,showArrow:{type:Boolean,default:!0},inputProps:Object,focused:Boolean,renderTag:Function,onKeydown:Function,onClick:Function,onBlur:Function,onFocus:Function,onDeleteOption:Function,maxTagCount:[String,Number],ellipsisTagPopoverProps:Object,onClear:Function,onPatternInput:Function,onPatternFocus:Function,onPatternBlur:Function,renderLabel:Function,status:String,inlineThemeDisabled:Boolean,ignoreComposition:{type:Boolean,default:!0},onResize:Function}),setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:n}=Ye(e),o=Bt("InternalSelection",n,t),r=E(null),i=E(null),l=E(null),a=E(null),s=E(null),d=E(null),c=E(null),f=E(null),v=E(null),g=E(null),u=E(!1),p=E(!1),b=E(!1),m=Be("InternalSelection","-internal-selection",hP,Iv,e,we(e,"clsPrefix")),y=O(()=>e.clearable&&!e.disabled&&(b.value||e.active)),$=O(()=>e.selectedOption?e.renderTag?e.renderTag({option:e.selectedOption,handleClose:()=>{}}):e.renderLabel?e.renderLabel(e.selectedOption,!0):wt(e.selectedOption[e.labelField],e.selectedOption,!0):e.placeholder),S=O(()=>{const W=e.selectedOption;if(W)return W[e.labelField]}),x=O(()=>e.multiple?!!(Array.isArray(e.selectedOptions)&&e.selectedOptions.length):e.selectedOption!==null);function R(){var W;const{value:Y}=r;if(Y){const{value:Se}=i;Se&&(Se.style.width=`${Y.offsetWidth}px`,e.maxTagCount!=="responsive"&&((W=v.value)===null||W===void 0||W.sync({showAllItemsBeforeCalculate:!1})))}}function C(){const{value:W}=g;W&&(W.style.display="none")}function w(){const{value:W}=g;W&&(W.style.display="inline-block")}tt(we(e,"active"),W=>{W||C()}),tt(we(e,"pattern"),()=>{e.multiple&&Rt(R)});function k(W){const{onFocus:Y}=e;Y&&Y(W)}function F(W){const{onBlur:Y}=e;Y&&Y(W)}function M(W){const{onDeleteOption:Y}=e;Y&&Y(W)}function _(W){const{onClear:Y}=e;Y&&Y(W)}function T(W){const{onPatternInput:Y}=e;Y&&Y(W)}function B(W){var Y;(!W.relatedTarget||!(!((Y=l.value)===null||Y===void 0)&&Y.contains(W.relatedTarget)))&&k(W)}function D(W){var Y;!((Y=l.value)===null||Y===void 0)&&Y.contains(W.relatedTarget)||F(W)}function K(W){_(W)}function N(){b.value=!0}function V(){b.value=!1}function ie(W){!e.active||!e.filterable||W.target!==i.value&&W.preventDefault()}function he(W){M(W)}const J=E(!1);function re(W){if(W.key==="Backspace"&&!J.value&&!e.pattern.length){const{selectedOptions:Y}=e;Y?.length&&he(Y[Y.length-1])}}let ye=null;function Z(W){const{value:Y}=r;if(Y){const Se=W.target.value;Y.textContent=Se,R()}e.ignoreComposition&&J.value?ye=W:T(W)}function le(){J.value=!0}function $e(){J.value=!1,e.ignoreComposition&&T(ye),ye=null}function ze(W){var Y;p.value=!0,(Y=e.onPatternFocus)===null||Y===void 0||Y.call(e,W)}function Ae(W){var Y;p.value=!1,(Y=e.onPatternBlur)===null||Y===void 0||Y.call(e,W)}function Te(){var W,Y;if(e.filterable)p.value=!1,(W=d.value)===null||W===void 0||W.blur(),(Y=i.value)===null||Y===void 0||Y.blur();else if(e.multiple){const{value:Se}=a;Se?.blur()}else{const{value:Se}=s;Se?.blur()}}function ne(){var W,Y,Se;e.filterable?(p.value=!1,(W=d.value)===null||W===void 0||W.focus()):e.multiple?(Y=a.value)===null||Y===void 0||Y.focus():(Se=s.value)===null||Se===void 0||Se.focus()}function Oe(){const{value:W}=i;W&&(w(),W.focus())}function z(){const{value:W}=i;W&&W.blur()}function L(W){const{value:Y}=c;Y&&Y.setTextContent(`+${W}`)}function ee(){const{value:W}=f;return W}function se(){return i.value}let ae=null;function Q(){ae!==null&&window.clearTimeout(ae)}function ue(){e.active||(Q(),ae=window.setTimeout(()=>{x.value&&(u.value=!0)},100))}function ve(){Q()}function fe(W){W||(Q(),u.value=!1)}tt(x,W=>{W||(u.value=!1)}),Ct(()=>{en(()=>{const W=d.value;W&&(e.disabled?W.removeAttribute("tabindex"):W.tabIndex=p.value?-1:0)})}),Up(l,e.onResize);const{inlineThemeDisabled:oe}=e,q=O(()=>{const{size:W}=e,{common:{cubicBezierEaseInOut:Y},self:{fontWeight:Se,borderRadius:Le,color:Ie,placeholderColor:De,textColor:Ge,paddingSingle:Xe,paddingMultiple:at,caretColor:mt,colorDisabled:ft,textColorDisabled:Re,placeholderColorDisabled:te,colorActive:A,boxShadowFocus:X,boxShadowActive:be,boxShadowHover:_e,border:xe,borderFocus:ke,borderHover:Ce,borderActive:Fe,arrowColor:Ze,arrowColorDisabled:Lt,loadingColor:Et,colorActiveWarning:Dt,boxShadowFocusWarning:zt,boxShadowActiveWarning:Ht,boxShadowHoverWarning:on,borderWarning:Nt,borderFocusWarning:Xt,borderHoverWarning:Mt,borderActiveWarning:U,colorActiveError:ce,boxShadowFocusError:Me,boxShadowActiveError:je,boxShadowHoverError:Ve,borderError:Je,borderFocusError:rn,borderHoverError:ln,borderActiveError:Cn,clearColor:eo,clearColorHover:to,clearColorPressed:Wo,clearSize:qr,arrowSize:Xr,[de("height",W)]:Yr,[de("fontSize",W)]:Zr}}=m.value,mo=Ft(Xe),yo=Ft(at);return{"--n-bezier":Y,"--n-border":xe,"--n-border-active":Fe,"--n-border-focus":ke,"--n-border-hover":Ce,"--n-border-radius":Le,"--n-box-shadow-active":be,"--n-box-shadow-focus":X,"--n-box-shadow-hover":_e,"--n-caret-color":mt,"--n-color":Ie,"--n-color-active":A,"--n-color-disabled":ft,"--n-font-size":Zr,"--n-height":Yr,"--n-padding-single-top":mo.top,"--n-padding-multiple-top":yo.top,"--n-padding-single-right":mo.right,"--n-padding-multiple-right":yo.right,"--n-padding-single-left":mo.left,"--n-padding-multiple-left":yo.left,"--n-padding-single-bottom":mo.bottom,"--n-padding-multiple-bottom":yo.bottom,"--n-placeholder-color":De,"--n-placeholder-color-disabled":te,"--n-text-color":Ge,"--n-text-color-disabled":Re,"--n-arrow-color":Ze,"--n-arrow-color-disabled":Lt,"--n-loading-color":Et,"--n-color-active-warning":Dt,"--n-box-shadow-focus-warning":zt,"--n-box-shadow-active-warning":Ht,"--n-box-shadow-hover-warning":on,"--n-border-warning":Nt,"--n-border-focus-warning":Xt,"--n-border-hover-warning":Mt,"--n-border-active-warning":U,"--n-color-active-error":ce,"--n-box-shadow-focus-error":Me,"--n-box-shadow-active-error":je,"--n-box-shadow-hover-error":Ve,"--n-border-error":Je,"--n-border-focus-error":rn,"--n-border-hover-error":ln,"--n-border-active-error":Cn,"--n-clear-size":qr,"--n-clear-color":eo,"--n-clear-color-hover":to,"--n-clear-color-pressed":Wo,"--n-arrow-size":Xr,"--n-font-weight":Se}}),G=oe?vt("internal-selection",O(()=>e.size[0]),q,e):void 0;return{mergedTheme:m,mergedClearable:y,mergedClsPrefix:t,rtlEnabled:o,patternInputFocused:p,filterablePlaceholder:$,label:S,selected:x,showTagsPanel:u,isComposing:J,counterRef:c,counterWrapperRef:f,patternInputMirrorRef:r,patternInputRef:i,selfRef:l,multipleElRef:a,singleElRef:s,patternInputWrapperRef:d,overflowRef:v,inputTagElRef:g,handleMouseDown:ie,handleFocusin:B,handleClear:K,handleMouseEnter:N,handleMouseLeave:V,handleDeleteOption:he,handlePatternKeyDown:re,handlePatternInputInput:Z,handlePatternInputBlur:Ae,handlePatternInputFocus:ze,handleMouseEnterCounter:ue,handleMouseLeaveCounter:ve,handleFocusout:D,handleCompositionEnd:$e,handleCompositionStart:le,onPopoverUpdateShow:fe,focus:ne,focusInput:Oe,blur:Te,blurInput:z,updateCounter:L,getCounter:ee,getTail:se,renderLabel:e.renderLabel,cssVars:oe?void 0:q,themeClass:G?.themeClass,onRender:G?.onRender}},render(){const{status:e,multiple:t,size:n,disabled:o,filterable:r,maxTagCount:i,bordered:l,clsPrefix:a,ellipsisTagPopoverProps:s,onRender:d,renderTag:c,renderLabel:f}=this;d?.();const v=i==="responsive",g=typeof i=="number",u=v||g,p=h(Ws,null,{default:()=>h(Av,{clsPrefix:a,loading:this.loading,showArrow:this.showArrow,showClear:this.mergedClearable&&this.selected,onClear:this.handleClear},{default:()=>{var m,y;return(y=(m=this.$slots).arrow)===null||y===void 0?void 0:y.call(m)}})});let b;if(t){const{labelField:m}=this,y=T=>h("div",{class:`${a}-base-selection-tag-wrapper`,key:T.value},c?c({option:T,handleClose:()=>{this.handleDeleteOption(T)}}):h(ki,{size:n,closable:!T.disabled,disabled:o,onClose:()=>{this.handleDeleteOption(T)},internalCloseIsButtonTag:!1,internalCloseFocusable:!1},{default:()=>f?f(T,!0):wt(T[m],T,!0)})),$=()=>(g?this.selectedOptions.slice(0,i):this.selectedOptions).map(y),S=r?h("div",{class:`${a}-base-selection-input-tag`,ref:"inputTagElRef",key:"__input-tag__"},h("input",Object.assign({},this.inputProps,{ref:"patternInputRef",tabindex:-1,disabled:o,value:this.pattern,autofocus:this.autofocus,class:`${a}-base-selection-input-tag__input`,onBlur:this.handlePatternInputBlur,onFocus:this.handlePatternInputFocus,onKeydown:this.handlePatternKeyDown,onInput:this.handlePatternInputInput,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd})),h("span",{ref:"patternInputMirrorRef",class:`${a}-base-selection-input-tag__mirror`},this.pattern)):null,x=v?()=>h("div",{class:`${a}-base-selection-tag-wrapper`,ref:"counterWrapperRef"},h(ki,{size:n,ref:"counterRef",onMouseenter:this.handleMouseEnterCounter,onMouseleave:this.handleMouseLeaveCounter,disabled:o})):void 0;let R;if(g){const T=this.selectedOptions.length-i;T>0&&(R=h("div",{class:`${a}-base-selection-tag-wrapper`,key:"__counter__"},h(ki,{size:n,ref:"counterRef",onMouseenter:this.handleMouseEnterCounter,disabled:o},{default:()=>`+${T}`})))}const C=v?r?h(Eu,{ref:"overflowRef",updateCounter:this.updateCounter,getCounter:this.getCounter,getTail:this.getTail,style:{width:"100%",display:"flex",overflow:"hidden"}},{default:$,counter:x,tail:()=>S}):h(Eu,{ref:"overflowRef",updateCounter:this.updateCounter,getCounter:this.getCounter,style:{width:"100%",display:"flex",overflow:"hidden"}},{default:$,counter:x}):g&&R?$().concat(R):$(),w=u?()=>h("div",{class:`${a}-base-selection-popover`},v?$():this.selectedOptions.map(y)):void 0,k=u?Object.assign({show:this.showTagsPanel,trigger:"hover",overlap:!0,placement:"top",width:"trigger",onUpdateShow:this.onPopoverUpdateShow,theme:this.mergedTheme.peers.Popover,themeOverrides:this.mergedTheme.peerOverrides.Popover},s):null,M=(this.selected?!1:this.active?!this.pattern&&!this.isComposing:!0)?h("div",{class:`${a}-base-selection-placeholder ${a}-base-selection-overlay`},h("div",{class:`${a}-base-selection-placeholder__inner`},this.placeholder)):null,_=r?h("div",{ref:"patternInputWrapperRef",class:`${a}-base-selection-tags`},C,v?null:S,p):h("div",{ref:"multipleElRef",class:`${a}-base-selection-tags`,tabindex:o?void 0:0},C,p);b=h(nt,null,u?h(Zi,Object.assign({},k,{scrollable:!0,style:"max-height: calc(var(--v-target-height) * 6.6);"}),{trigger:()=>_,default:w}):_,M)}else if(r){const m=this.pattern||this.isComposing,y=this.active?!m:!this.selected,$=this.active?!1:this.selected;b=h("div",{ref:"patternInputWrapperRef",class:`${a}-base-selection-label`,title:this.patternInputFocused?void 0:Au(this.label)},h("input",Object.assign({},this.inputProps,{ref:"patternInputRef",class:`${a}-base-selection-input`,value:this.active?this.pattern:"",placeholder:"",readonly:o,disabled:o,tabindex:-1,autofocus:this.autofocus,onFocus:this.handlePatternInputFocus,onBlur:this.handlePatternInputBlur,onInput:this.handlePatternInputInput,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd})),$?h("div",{class:`${a}-base-selection-label__render-label ${a}-base-selection-overlay`,key:"input"},h("div",{class:`${a}-base-selection-overlay__wrapper`},c?c({option:this.selectedOption,handleClose:()=>{}}):f?f(this.selectedOption,!0):wt(this.label,this.selectedOption,!0))):null,y?h("div",{class:`${a}-base-selection-placeholder ${a}-base-selection-overlay`,key:"placeholder"},h("div",{class:`${a}-base-selection-overlay__wrapper`},this.filterablePlaceholder)):null,p)}else b=h("div",{ref:"singleElRef",class:`${a}-base-selection-label`,tabindex:this.disabled?void 0:0},this.label!==void 0?h("div",{class:`${a}-base-selection-input`,title:Au(this.label),key:"input"},h("div",{class:`${a}-base-selection-input__content`},c?c({option:this.selectedOption,handleClose:()=>{}}):f?f(this.selectedOption,!0):wt(this.label,this.selectedOption,!0))):h("div",{class:`${a}-base-selection-placeholder ${a}-base-selection-overlay`,key:"placeholder"},h("div",{class:`${a}-base-selection-placeholder__inner`},this.placeholder)),p);return h("div",{ref:"selfRef",class:[`${a}-base-selection`,this.rtlEnabled&&`${a}-base-selection--rtl`,this.themeClass,e&&`${a}-base-selection--${e}-status`,{[`${a}-base-selection--active`]:this.active,[`${a}-base-selection--selected`]:this.selected||this.active&&this.pattern,[`${a}-base-selection--disabled`]:this.disabled,[`${a}-base-selection--multiple`]:this.multiple,[`${a}-base-selection--focus`]:this.focused}],style:this.cssVars,onClick:this.onClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onKeydown:this.onKeydown,onFocusin:this.handleFocusin,onFocusout:this.handleFocusout,onMousedown:this.handleMouseDown},b,l?h("div",{class:`${a}-base-selection__border`}):null,l?h("div",{class:`${a}-base-selection__state-border`}):null)}}),{cubicBezierEaseInOut:Co}=hr;function vP({duration:e=".2s",delay:t=".1s"}={}){return[I("&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to",{opacity:1}),I("&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from",` + opacity: 0!important; + margin-left: 0!important; + margin-right: 0!important; + `),I("&.fade-in-width-expand-transition-leave-active",` + overflow: hidden; + transition: + opacity ${e} ${Co}, + max-width ${e} ${Co} ${t}, + margin-left ${e} ${Co} ${t}, + margin-right ${e} ${Co} ${t}; + `),I("&.fade-in-width-expand-transition-enter-active",` + overflow: hidden; + transition: + opacity ${e} ${Co} ${t}, + max-width ${e} ${Co}, + margin-left ${e} ${Co}, + margin-right ${e} ${Co}; + `)]}const gP=P("base-wave",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + border-radius: inherit; +`),bP=pe({name:"BaseWave",props:{clsPrefix:{type:String,required:!0}},setup(e){pr("-base-wave",gP,we(e,"clsPrefix"));const t=E(null),n=E(!1);let o=null;return xt(()=>{o!==null&&window.clearTimeout(o)}),{active:n,selfRef:t,play(){o!==null&&(window.clearTimeout(o),n.value=!1,o=null),Rt(()=>{var r;(r=t.value)===null||r===void 0||r.offsetHeight,n.value=!0,o=window.setTimeout(()=>{n.value=!1,o=null},1e3)})}}},render(){const{clsPrefix:e}=this;return h("div",{ref:"selfRef","aria-hidden":!0,class:[`${e}-base-wave`,this.active&&`${e}-base-wave--active`]})}}),{cubicBezierEaseInOut:An,cubicBezierEaseOut:mP,cubicBezierEaseIn:yP}=hr;function xP({overflow:e="hidden",duration:t=".3s",originalTransition:n="",leavingDelay:o="0s",foldPadding:r=!1,enterToProps:i=void 0,leaveToProps:l=void 0,reverse:a=!1}={}){const s=a?"leave":"enter",d=a?"enter":"leave";return[I(`&.fade-in-height-expand-transition-${d}-from, + &.fade-in-height-expand-transition-${s}-to`,Object.assign(Object.assign({},i),{opacity:1})),I(`&.fade-in-height-expand-transition-${d}-to, + &.fade-in-height-expand-transition-${s}-from`,Object.assign(Object.assign({},l),{opacity:0,marginTop:"0 !important",marginBottom:"0 !important",paddingTop:r?"0 !important":void 0,paddingBottom:r?"0 !important":void 0})),I(`&.fade-in-height-expand-transition-${d}-active`,` + overflow: ${e}; + transition: + max-height ${t} ${An} ${o}, + opacity ${t} ${mP} ${o}, + margin-top ${t} ${An} ${o}, + margin-bottom ${t} ${An} ${o}, + padding-top ${t} ${An} ${o}, + padding-bottom ${t} ${An} ${o} + ${n?`,${n}`:""} + `),I(`&.fade-in-height-expand-transition-${s}-active`,` + overflow: ${e}; + transition: + max-height ${t} ${An}, + opacity ${t} ${yP}, + margin-top ${t} ${An}, + margin-bottom ${t} ${An}, + padding-top ${t} ${An}, + padding-bottom ${t} ${An} + ${n?`,${n}`:""} + `)]}const wP=Do&&"chrome"in window;Do&&navigator.userAgent.includes("Firefox");const Lv=Do&&navigator.userAgent.includes("Safari")&&!wP,CP={paddingTiny:"0 8px",paddingSmall:"0 10px",paddingMedium:"0 12px",paddingLarge:"0 14px",clearSize:"16px"};function SP(e){const{textColor2:t,textColor3:n,textColorDisabled:o,primaryColor:r,primaryColorHover:i,inputColor:l,inputColorDisabled:a,borderColor:s,warningColor:d,warningColorHover:c,errorColor:f,errorColorHover:v,borderRadius:g,lineHeight:u,fontSizeTiny:p,fontSizeSmall:b,fontSizeMedium:m,fontSizeLarge:y,heightTiny:$,heightSmall:S,heightMedium:x,heightLarge:R,actionColor:C,clearColor:w,clearColorHover:k,clearColorPressed:F,placeholderColor:M,placeholderColorDisabled:_,iconColor:T,iconColorDisabled:B,iconColorHover:D,iconColorPressed:K,fontWeight:N}=e;return Object.assign(Object.assign({},CP),{fontWeight:N,countTextColorDisabled:o,countTextColor:n,heightTiny:$,heightSmall:S,heightMedium:x,heightLarge:R,fontSizeTiny:p,fontSizeSmall:b,fontSizeMedium:m,fontSizeLarge:y,lineHeight:u,lineHeightTextarea:u,borderRadius:g,iconSize:"16px",groupLabelColor:C,groupLabelTextColor:t,textColor:t,textColorDisabled:o,textDecorationColor:t,caretColor:r,placeholderColor:M,placeholderColorDisabled:_,color:l,colorDisabled:a,colorFocus:l,groupLabelBorder:`1px solid ${s}`,border:`1px solid ${s}`,borderHover:`1px solid ${i}`,borderDisabled:`1px solid ${s}`,borderFocus:`1px solid ${i}`,boxShadowFocus:`0 0 0 2px ${Ue(r,{alpha:.2})}`,loadingColor:r,loadingColorWarning:d,borderWarning:`1px solid ${d}`,borderHoverWarning:`1px solid ${c}`,colorFocusWarning:l,borderFocusWarning:`1px solid ${c}`,boxShadowFocusWarning:`0 0 0 2px ${Ue(d,{alpha:.2})}`,caretColorWarning:d,loadingColorError:f,borderError:`1px solid ${f}`,borderHoverError:`1px solid ${v}`,colorFocusError:l,borderFocusError:`1px solid ${v}`,boxShadowFocusError:`0 0 0 2px ${Ue(f,{alpha:.2})}`,caretColorError:f,clearColor:w,clearColorHover:k,clearColorPressed:F,iconColor:T,iconColorDisabled:B,iconColorHover:D,iconColorPressed:K,suffixTextColor:t})}const Dv={name:"Input",common:gt,peers:{Scrollbar:jo},self:SP},Hv="n-input",RP=P("input",` + max-width: 100%; + cursor: text; + line-height: 1.5; + z-index: auto; + outline: none; + box-sizing: border-box; + position: relative; + display: inline-flex; + border-radius: var(--n-border-radius); + background-color: var(--n-color); + transition: background-color .3s var(--n-bezier); + font-size: var(--n-font-size); + font-weight: var(--n-font-weight); + --n-padding-vertical: calc((var(--n-height) - 1.5 * var(--n-font-size)) / 2); +`,[j("input, textarea",` + overflow: hidden; + flex-grow: 1; + position: relative; + `),j("input-el, textarea-el, input-mirror, textarea-mirror, separator, placeholder",` + box-sizing: border-box; + font-size: inherit; + line-height: 1.5; + font-family: inherit; + border: none; + outline: none; + background-color: #0000; + text-align: inherit; + transition: + -webkit-text-fill-color .3s var(--n-bezier), + caret-color .3s var(--n-bezier), + color .3s var(--n-bezier), + text-decoration-color .3s var(--n-bezier); + `),j("input-el, textarea-el",` + -webkit-appearance: none; + scrollbar-width: none; + width: 100%; + min-width: 0; + text-decoration-color: var(--n-text-decoration-color); + color: var(--n-text-color); + caret-color: var(--n-caret-color); + background-color: transparent; + `,[I("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` + width: 0; + height: 0; + display: none; + `),I("&::placeholder",` + color: #0000; + -webkit-text-fill-color: transparent !important; + `),I("&:-webkit-autofill ~",[j("placeholder","display: none;")])]),H("round",[dt("textarea","border-radius: calc(var(--n-height) / 2);")]),j("placeholder",` + pointer-events: none; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + overflow: hidden; + color: var(--n-placeholder-color); + `,[I("span",` + width: 100%; + display: inline-block; + `)]),H("textarea",[j("placeholder","overflow: visible;")]),dt("autosize","width: 100%;"),H("autosize",[j("textarea-el, input-el",` + position: absolute; + top: 0; + left: 0; + height: 100%; + `)]),P("input-wrapper",` + overflow: hidden; + display: inline-flex; + flex-grow: 1; + position: relative; + padding-left: var(--n-padding-left); + padding-right: var(--n-padding-right); + `),j("input-mirror",` + padding: 0; + height: var(--n-height); + line-height: var(--n-height); + overflow: hidden; + visibility: hidden; + position: static; + white-space: pre; + pointer-events: none; + `),j("input-el",` + padding: 0; + height: var(--n-height); + line-height: var(--n-height); + `,[I("&[type=password]::-ms-reveal","display: none;"),I("+",[j("placeholder",` + display: flex; + align-items: center; + `)])]),dt("textarea",[j("placeholder","white-space: nowrap;")]),j("eye",` + display: flex; + align-items: center; + justify-content: center; + transition: color .3s var(--n-bezier); + `),H("textarea","width: 100%;",[P("input-word-count",` + position: absolute; + right: var(--n-padding-right); + bottom: var(--n-padding-vertical); + `),H("resizable",[P("input-wrapper",` + resize: vertical; + min-height: var(--n-height); + `)]),j("textarea-el, textarea-mirror, placeholder",` + height: 100%; + padding-left: 0; + padding-right: 0; + padding-top: var(--n-padding-vertical); + padding-bottom: var(--n-padding-vertical); + word-break: break-word; + display: inline-block; + vertical-align: bottom; + box-sizing: border-box; + line-height: var(--n-line-height-textarea); + margin: 0; + resize: none; + white-space: pre-wrap; + scroll-padding-block-end: var(--n-padding-vertical); + `),j("textarea-mirror",` + width: 100%; + pointer-events: none; + overflow: hidden; + visibility: hidden; + position: static; + white-space: pre-wrap; + overflow-wrap: break-word; + `)]),H("pair",[j("input-el, placeholder","text-align: center;"),j("separator",` + display: flex; + align-items: center; + transition: color .3s var(--n-bezier); + color: var(--n-text-color); + white-space: nowrap; + `,[P("icon",` + color: var(--n-icon-color); + `),P("base-icon",` + color: var(--n-icon-color); + `)])]),H("disabled",` + cursor: not-allowed; + background-color: var(--n-color-disabled); + `,[j("border","border: var(--n-border-disabled);"),j("input-el, textarea-el",` + cursor: not-allowed; + color: var(--n-text-color-disabled); + text-decoration-color: var(--n-text-color-disabled); + `),j("placeholder","color: var(--n-placeholder-color-disabled);"),j("separator","color: var(--n-text-color-disabled);",[P("icon",` + color: var(--n-icon-color-disabled); + `),P("base-icon",` + color: var(--n-icon-color-disabled); + `)]),P("input-word-count",` + color: var(--n-count-text-color-disabled); + `),j("suffix, prefix","color: var(--n-text-color-disabled);",[P("icon",` + color: var(--n-icon-color-disabled); + `),P("internal-icon",` + color: var(--n-icon-color-disabled); + `)])]),dt("disabled",[j("eye",` + color: var(--n-icon-color); + cursor: pointer; + `,[I("&:hover",` + color: var(--n-icon-color-hover); + `),I("&:active",` + color: var(--n-icon-color-pressed); + `)]),I("&:hover",[j("state-border","border: var(--n-border-hover);")]),H("focus","background-color: var(--n-color-focus);",[j("state-border",` + border: var(--n-border-focus); + box-shadow: var(--n-box-shadow-focus); + `)])]),j("border, state-border",` + box-sizing: border-box; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + pointer-events: none; + border-radius: inherit; + border: var(--n-border); + transition: + box-shadow .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `),j("state-border",` + border-color: #0000; + z-index: 1; + `),j("prefix","margin-right: 4px;"),j("suffix",` + margin-left: 4px; + `),j("suffix, prefix",` + transition: color .3s var(--n-bezier); + flex-wrap: nowrap; + flex-shrink: 0; + line-height: var(--n-height); + white-space: nowrap; + display: inline-flex; + align-items: center; + justify-content: center; + color: var(--n-suffix-text-color); + `,[P("base-loading",` + font-size: var(--n-icon-size); + margin: 0 2px; + color: var(--n-loading-color); + `),P("base-clear",` + font-size: var(--n-icon-size); + `,[j("placeholder",[P("base-icon",` + transition: color .3s var(--n-bezier); + color: var(--n-icon-color); + font-size: var(--n-icon-size); + `)])]),I(">",[P("icon",` + transition: color .3s var(--n-bezier); + color: var(--n-icon-color); + font-size: var(--n-icon-size); + `)]),P("base-icon",` + font-size: var(--n-icon-size); + `)]),P("input-word-count",` + pointer-events: none; + line-height: 1.5; + font-size: .85em; + color: var(--n-count-text-color); + transition: color .3s var(--n-bezier); + margin-left: 4px; + font-variant: tabular-nums; + `),["warning","error"].map(e=>H(`${e}-status`,[dt("disabled",[P("base-loading",` + color: var(--n-loading-color-${e}) + `),j("input-el, textarea-el",` + caret-color: var(--n-caret-color-${e}); + `),j("state-border",` + border: var(--n-border-${e}); + `),I("&:hover",[j("state-border",` + border: var(--n-border-hover-${e}); + `)]),I("&:focus",` + background-color: var(--n-color-focus-${e}); + `,[j("state-border",` + box-shadow: var(--n-box-shadow-focus-${e}); + border: var(--n-border-focus-${e}); + `)]),H("focus",` + background-color: var(--n-color-focus-${e}); + `,[j("state-border",` + box-shadow: var(--n-box-shadow-focus-${e}); + border: var(--n-border-focus-${e}); + `)])])]))]),kP=P("input",[H("disabled",[j("input-el, textarea-el",` + -webkit-text-fill-color: var(--n-text-color-disabled); + `)])]);function PP(e){let t=0;for(const n of e)t++;return t}function hl(e){return e===""||e==null}function $P(e){const t=E(null);function n(){const{value:i}=e;if(!i?.focus){r();return}const{selectionStart:l,selectionEnd:a,value:s}=i;if(l==null||a==null){r();return}t.value={start:l,end:a,beforeText:s.slice(0,l),afterText:s.slice(a)}}function o(){var i;const{value:l}=t,{value:a}=e;if(!l||!a)return;const{value:s}=a,{start:d,beforeText:c,afterText:f}=l;let v=s.length;if(s.endsWith(f))v=s.length-f.length;else if(s.startsWith(c))v=c.length;else{const g=c[d-1],u=s.indexOf(g,d-1);u!==-1&&(v=u+1)}(i=a.setSelectionRange)===null||i===void 0||i.call(a,v,v)}function r(){t.value=null}return tt(e,r),{recordCursor:n,restoreCursor:o}}const kf=pe({name:"InputWordCount",setup(e,{slots:t}){const{mergedValueRef:n,maxlengthRef:o,mergedClsPrefixRef:r,countGraphemesRef:i}=Ee(Hv),l=O(()=>{const{value:a}=n;return a===null||Array.isArray(a)?0:(i.value||PP)(a)});return()=>{const{value:a}=o,{value:s}=n;return h("span",{class:`${r.value}-input-word-count`},Ox(t.default,{value:s===null||Array.isArray(s)?"":s},()=>[a===void 0?l.value:`${l.value} / ${a}`]))}}}),_P=Object.assign(Object.assign({},Be.props),{bordered:{type:Boolean,default:void 0},type:{type:String,default:"text"},placeholder:[Array,String],defaultValue:{type:[String,Array],default:null},value:[String,Array],disabled:{type:Boolean,default:void 0},size:String,rows:{type:[Number,String],default:3},round:Boolean,minlength:[String,Number],maxlength:[String,Number],clearable:Boolean,autosize:{type:[Boolean,Object],default:!1},pair:Boolean,separator:String,readonly:{type:[String,Boolean],default:!1},passivelyActivated:Boolean,showPasswordOn:String,stateful:{type:Boolean,default:!0},autofocus:Boolean,inputProps:Object,resizable:{type:Boolean,default:!0},showCount:Boolean,loading:{type:Boolean,default:void 0},allowInput:Function,renderCount:Function,onMousedown:Function,onKeydown:Function,onKeyup:[Function,Array],onInput:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClick:[Function,Array],onChange:[Function,Array],onClear:[Function,Array],countGraphemes:Function,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],textDecoration:[String,Array],attrSize:{type:Number,default:20},onInputBlur:[Function,Array],onInputFocus:[Function,Array],onDeactivate:[Function,Array],onActivate:[Function,Array],onWrapperFocus:[Function,Array],onWrapperBlur:[Function,Array],internalDeactivateOnEnter:Boolean,internalForceFocus:Boolean,internalLoadingBeforeSuffix:{type:Boolean,default:!0},showPasswordToggle:Boolean}),Br=pe({name:"Input",props:_P,slots:Object,setup(e){const{mergedClsPrefixRef:t,mergedBorderedRef:n,inlineThemeDisabled:o,mergedRtlRef:r,mergedComponentPropsRef:i}=Ye(e),l=Be("Input","-input",RP,Dv,e,t);Lv&&pr("-input-safari",kP,t);const a=E(null),s=E(null),d=E(null),c=E(null),f=E(null),v=E(null),g=E(null),u=$P(g),p=E(null),{localeRef:b}=Xi("Input"),m=E(e.defaultValue),$=qt(we(e,"value"),m),S=No(e,{mergedSize:U=>{var ce,Me;const{size:je}=e;if(je)return je;const{mergedSize:Ve}=U||{};if(Ve?.value)return Ve.value;const Je=(Me=(ce=i?.value)===null||ce===void 0?void 0:ce.Input)===null||Me===void 0?void 0:Me.size;return Je||"medium"}}),{mergedSizeRef:x,mergedDisabledRef:R,mergedStatusRef:C}=S,w=E(!1),k=E(!1),F=E(!1),M=E(!1);let _=null;const T=O(()=>{const{placeholder:U,pair:ce}=e;return ce?Array.isArray(U)?U:U===void 0?["",""]:[U,U]:U===void 0?[b.value.placeholder]:[U]}),B=O(()=>{const{value:U}=F,{value:ce}=$,{value:Me}=T;return!U&&(hl(ce)||Array.isArray(ce)&&hl(ce[0]))&&Me[0]}),D=O(()=>{const{value:U}=F,{value:ce}=$,{value:Me}=T;return!U&&Me[1]&&(hl(ce)||Array.isArray(ce)&&hl(ce[1]))}),K=ot(()=>e.internalForceFocus||w.value),N=ot(()=>{if(R.value||e.readonly||!e.clearable||!K.value&&!k.value)return!1;const{value:U}=$,{value:ce}=K;return e.pair?!!(Array.isArray(U)&&(U[0]||U[1]))&&(k.value||ce):!!U&&(k.value||ce)}),V=O(()=>{const{showPasswordOn:U}=e;if(U)return U;if(e.showPasswordToggle)return"click"}),ie=E(!1),he=O(()=>{const{textDecoration:U}=e;return U?Array.isArray(U)?U.map(ce=>({textDecoration:ce})):[{textDecoration:U}]:["",""]}),J=E(void 0),re=()=>{var U,ce;if(e.type==="textarea"){const{autosize:Me}=e;if(Me&&(J.value=(ce=(U=p.value)===null||U===void 0?void 0:U.$el)===null||ce===void 0?void 0:ce.offsetWidth),!s.value||typeof Me=="boolean")return;const{paddingTop:je,paddingBottom:Ve,lineHeight:Je}=window.getComputedStyle(s.value),rn=Number(je.slice(0,-2)),ln=Number(Ve.slice(0,-2)),Cn=Number(Je.slice(0,-2)),{value:eo}=d;if(!eo)return;if(Me.minRows){const to=Math.max(Me.minRows,1),Wo=`${rn+ln+Cn*to}px`;eo.style.minHeight=Wo}if(Me.maxRows){const to=`${rn+ln+Cn*Me.maxRows}px`;eo.style.maxHeight=to}}},ye=O(()=>{const{maxlength:U}=e;return U===void 0?void 0:Number(U)});Ct(()=>{const{value:U}=$;Array.isArray(U)||Ze(U)});const Z=Lo().proxy;function le(U,ce){const{onUpdateValue:Me,"onUpdate:value":je,onInput:Ve}=e,{nTriggerFormInput:Je}=S;Me&&me(Me,U,ce),je&&me(je,U,ce),Ve&&me(Ve,U,ce),m.value=U,Je()}function $e(U,ce){const{onChange:Me}=e,{nTriggerFormChange:je}=S;Me&&me(Me,U,ce),m.value=U,je()}function ze(U){const{onBlur:ce}=e,{nTriggerFormBlur:Me}=S;ce&&me(ce,U),Me()}function Ae(U){const{onFocus:ce}=e,{nTriggerFormFocus:Me}=S;ce&&me(ce,U),Me()}function Te(U){const{onClear:ce}=e;ce&&me(ce,U)}function ne(U){const{onInputBlur:ce}=e;ce&&me(ce,U)}function Oe(U){const{onInputFocus:ce}=e;ce&&me(ce,U)}function z(){const{onDeactivate:U}=e;U&&me(U)}function L(){const{onActivate:U}=e;U&&me(U)}function ee(U){const{onClick:ce}=e;ce&&me(ce,U)}function se(U){const{onWrapperFocus:ce}=e;ce&&me(ce,U)}function ae(U){const{onWrapperBlur:ce}=e;ce&&me(ce,U)}function Q(){F.value=!0}function ue(U){F.value=!1,U.target===v.value?ve(U,1):ve(U,0)}function ve(U,ce=0,Me="input"){const je=U.target.value;if(Ze(je),U instanceof InputEvent&&!U.isComposing&&(F.value=!1),e.type==="textarea"){const{value:Je}=p;Je&&Je.syncUnifiedContainer()}if(_=je,F.value)return;u.recordCursor();const Ve=fe(je);if(Ve)if(!e.pair)Me==="input"?le(je,{source:ce}):$e(je,{source:ce});else{let{value:Je}=$;Array.isArray(Je)?Je=[Je[0],Je[1]]:Je=["",""],Je[ce]=je,Me==="input"?le(Je,{source:ce}):$e(Je,{source:ce})}Z.$forceUpdate(),Ve||Rt(u.restoreCursor)}function fe(U){const{countGraphemes:ce,maxlength:Me,minlength:je}=e;if(ce){let Je;if(Me!==void 0&&(Je===void 0&&(Je=ce(U)),Je>Number(Me))||je!==void 0&&(Je===void 0&&(Je=ce(U)),Je{je.preventDefault(),et("mouseup",document,ce)};if(ct("mouseup",document,ce),V.value!=="mousedown")return;ie.value=!0;const Me=()=>{ie.value=!1,et("mouseup",document,Me)};ct("mouseup",document,Me)}function Re(U){e.onKeyup&&me(e.onKeyup,U)}function te(U){switch(e.onKeydown&&me(e.onKeydown,U),U.key){case"Escape":X();break;case"Enter":A(U);break}}function A(U){var ce,Me;if(e.passivelyActivated){const{value:je}=M;if(je){e.internalDeactivateOnEnter&&X();return}U.preventDefault(),e.type==="textarea"?(ce=s.value)===null||ce===void 0||ce.focus():(Me=f.value)===null||Me===void 0||Me.focus()}}function X(){e.passivelyActivated&&(M.value=!1,Rt(()=>{var U;(U=a.value)===null||U===void 0||U.focus()}))}function be(){var U,ce,Me;R.value||(e.passivelyActivated?(U=a.value)===null||U===void 0||U.focus():((ce=s.value)===null||ce===void 0||ce.focus(),(Me=f.value)===null||Me===void 0||Me.focus()))}function _e(){var U;!((U=a.value)===null||U===void 0)&&U.contains(document.activeElement)&&document.activeElement.blur()}function xe(){var U,ce;(U=s.value)===null||U===void 0||U.select(),(ce=f.value)===null||ce===void 0||ce.select()}function ke(){R.value||(s.value?s.value.focus():f.value&&f.value.focus())}function Ce(){const{value:U}=a;U?.contains(document.activeElement)&&U!==document.activeElement&&X()}function Fe(U){if(e.type==="textarea"){const{value:ce}=s;ce?.scrollTo(U)}else{const{value:ce}=f;ce?.scrollTo(U)}}function Ze(U){const{type:ce,pair:Me,autosize:je}=e;if(!Me&&je)if(ce==="textarea"){const{value:Ve}=d;Ve&&(Ve.textContent=`${U??""}\r +`)}else{const{value:Ve}=c;Ve&&(U?Ve.textContent=U:Ve.innerHTML=" ")}}function Lt(){re()}const Et=E({top:"0"});function Dt(U){var ce;const{scrollTop:Me}=U.target;Et.value.top=`${-Me}px`,(ce=p.value)===null||ce===void 0||ce.syncUnifiedContainer()}let zt=null;en(()=>{const{autosize:U,type:ce}=e;U&&ce==="textarea"?zt=tt($,Me=>{!Array.isArray(Me)&&Me!==_&&Ze(Me)}):zt?.()});let Ht=null;en(()=>{e.type==="textarea"?Ht=tt($,U=>{var ce;!Array.isArray(U)&&U!==_&&((ce=p.value)===null||ce===void 0||ce.syncUnifiedContainer())}):Ht?.()}),qe(Hv,{mergedValueRef:$,maxlengthRef:ye,mergedClsPrefixRef:t,countGraphemesRef:we(e,"countGraphemes")});const on={wrapperElRef:a,inputElRef:f,textareaElRef:s,isCompositing:F,clear:De,focus:be,blur:_e,select:xe,deactivate:Ce,activate:ke,scrollTo:Fe},Nt=Bt("Input",r,t),Xt=O(()=>{const{value:U}=x,{common:{cubicBezierEaseInOut:ce},self:{color:Me,borderRadius:je,textColor:Ve,caretColor:Je,caretColorError:rn,caretColorWarning:ln,textDecorationColor:Cn,border:eo,borderDisabled:to,borderHover:Wo,borderFocus:qr,placeholderColor:Xr,placeholderColorDisabled:Yr,lineHeightTextarea:Zr,colorDisabled:mo,colorFocus:yo,textColorDisabled:Sa,boxShadowFocus:Ra,iconSize:ka,colorFocusWarning:Pa,boxShadowFocusWarning:$a,borderWarning:_a,borderFocusWarning:za,borderHoverWarning:Ta,colorFocusError:Fa,boxShadowFocusError:Oa,borderError:Ea,borderFocusError:Ma,borderHoverError:Ba,clearSize:Aa,clearColor:Ia,clearColorHover:La,clearColorPressed:Ag,iconColor:Ig,iconColorDisabled:Lg,suffixTextColor:Dg,countTextColor:Hg,countTextColorDisabled:Ng,iconColorHover:jg,iconColorPressed:Wg,loadingColor:Vg,loadingColorError:Kg,loadingColorWarning:Ug,fontWeight:Gg,[de("padding",U)]:qg,[de("fontSize",U)]:Xg,[de("height",U)]:Yg}}=l.value,{left:Zg,right:Jg}=Ft(qg);return{"--n-bezier":ce,"--n-count-text-color":Hg,"--n-count-text-color-disabled":Ng,"--n-color":Me,"--n-font-size":Xg,"--n-font-weight":Gg,"--n-border-radius":je,"--n-height":Yg,"--n-padding-left":Zg,"--n-padding-right":Jg,"--n-text-color":Ve,"--n-caret-color":Je,"--n-text-decoration-color":Cn,"--n-border":eo,"--n-border-disabled":to,"--n-border-hover":Wo,"--n-border-focus":qr,"--n-placeholder-color":Xr,"--n-placeholder-color-disabled":Yr,"--n-icon-size":ka,"--n-line-height-textarea":Zr,"--n-color-disabled":mo,"--n-color-focus":yo,"--n-text-color-disabled":Sa,"--n-box-shadow-focus":Ra,"--n-loading-color":Vg,"--n-caret-color-warning":ln,"--n-color-focus-warning":Pa,"--n-box-shadow-focus-warning":$a,"--n-border-warning":_a,"--n-border-focus-warning":za,"--n-border-hover-warning":Ta,"--n-loading-color-warning":Ug,"--n-caret-color-error":rn,"--n-color-focus-error":Fa,"--n-box-shadow-focus-error":Oa,"--n-border-error":Ea,"--n-border-focus-error":Ma,"--n-border-hover-error":Ba,"--n-loading-color-error":Kg,"--n-clear-color":Ia,"--n-clear-size":Aa,"--n-clear-color-hover":La,"--n-clear-color-pressed":Ag,"--n-icon-color":Ig,"--n-icon-color-hover":jg,"--n-icon-color-pressed":Wg,"--n-icon-color-disabled":Lg,"--n-suffix-text-color":Dg}}),Mt=o?vt("input",O(()=>{const{value:U}=x;return U[0]}),Xt,e):void 0;return Object.assign(Object.assign({},on),{wrapperElRef:a,inputElRef:f,inputMirrorElRef:c,inputEl2Ref:v,textareaElRef:s,textareaMirrorElRef:d,textareaScrollbarInstRef:p,rtlEnabled:Nt,uncontrolledValue:m,mergedValue:$,passwordVisible:ie,mergedPlaceholder:T,showPlaceholder1:B,showPlaceholder2:D,mergedFocus:K,isComposing:F,activated:M,showClearButton:N,mergedSize:x,mergedDisabled:R,textDecorationStyle:he,mergedClsPrefix:t,mergedBordered:n,mergedShowPasswordOn:V,placeholderStyle:Et,mergedStatus:C,textAreaScrollContainerWidth:J,handleTextAreaScroll:Dt,handleCompositionStart:Q,handleCompositionEnd:ue,handleInput:ve,handleInputBlur:oe,handleInputFocus:q,handleWrapperBlur:G,handleWrapperFocus:W,handleMouseEnter:Xe,handleMouseLeave:at,handleMouseDown:Ge,handleChange:Se,handleClick:Le,handleClear:Ie,handlePasswordToggleClick:mt,handlePasswordToggleMousedown:ft,handleWrapperKeydown:te,handleWrapperKeyup:Re,handleTextAreaMirrorResize:Lt,getTextareaScrollContainer:()=>s.value,mergedTheme:l,cssVars:o?void 0:Xt,themeClass:Mt?.themeClass,onRender:Mt?.onRender})},render(){var e,t,n,o,r,i,l;const{mergedClsPrefix:a,mergedStatus:s,themeClass:d,type:c,countGraphemes:f,onRender:v}=this,g=this.$slots;return v?.(),h("div",{ref:"wrapperElRef",class:[`${a}-input`,`${a}-input--${this.mergedSize}-size`,d,s&&`${a}-input--${s}-status`,{[`${a}-input--rtl`]:this.rtlEnabled,[`${a}-input--disabled`]:this.mergedDisabled,[`${a}-input--textarea`]:c==="textarea",[`${a}-input--resizable`]:this.resizable&&!this.autosize,[`${a}-input--autosize`]:this.autosize,[`${a}-input--round`]:this.round&&c!=="textarea",[`${a}-input--pair`]:this.pair,[`${a}-input--focus`]:this.mergedFocus,[`${a}-input--stateful`]:this.stateful}],style:this.cssVars,tabindex:!this.mergedDisabled&&this.passivelyActivated&&!this.activated?0:void 0,onFocus:this.handleWrapperFocus,onBlur:this.handleWrapperBlur,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd,onKeyup:this.handleWrapperKeyup,onKeydown:this.handleWrapperKeydown},h("div",{class:`${a}-input-wrapper`},lt(g.prefix,u=>u&&h("div",{class:`${a}-input__prefix`},u)),c==="textarea"?h(bo,{ref:"textareaScrollbarInstRef",class:`${a}-input__textarea`,container:this.getTextareaScrollContainer,theme:(t=(e=this.theme)===null||e===void 0?void 0:e.peers)===null||t===void 0?void 0:t.Scrollbar,themeOverrides:(o=(n=this.themeOverrides)===null||n===void 0?void 0:n.peers)===null||o===void 0?void 0:o.Scrollbar,triggerDisplayManually:!0,useUnifiedContainer:!0,internalHoistYRail:!0},{default:()=>{var u,p;const{textAreaScrollContainerWidth:b}=this,m={width:this.autosize&&b&&`${b}px`};return h(nt,null,h("textarea",Object.assign({},this.inputProps,{ref:"textareaElRef",class:[`${a}-input__textarea-el`,(u=this.inputProps)===null||u===void 0?void 0:u.class],autofocus:this.autofocus,rows:Number(this.rows),placeholder:this.placeholder,value:this.mergedValue,disabled:this.mergedDisabled,maxlength:f?void 0:this.maxlength,minlength:f?void 0:this.minlength,readonly:this.readonly,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,style:[this.textDecorationStyle[0],(p=this.inputProps)===null||p===void 0?void 0:p.style,m],onBlur:this.handleInputBlur,onFocus:y=>{this.handleInputFocus(y,2)},onInput:this.handleInput,onChange:this.handleChange,onScroll:this.handleTextAreaScroll})),this.showPlaceholder1?h("div",{class:`${a}-input__placeholder`,style:[this.placeholderStyle,m],key:"placeholder"},this.mergedPlaceholder[0]):null,this.autosize?h(Kn,{onResize:this.handleTextAreaMirrorResize},{default:()=>h("div",{ref:"textareaMirrorElRef",class:`${a}-input__textarea-mirror`,key:"mirror"})}):null)}}):h("div",{class:`${a}-input__input`},h("input",Object.assign({type:c==="password"&&this.mergedShowPasswordOn&&this.passwordVisible?"text":c},this.inputProps,{ref:"inputElRef",class:[`${a}-input__input-el`,(r=this.inputProps)===null||r===void 0?void 0:r.class],style:[this.textDecorationStyle[0],(i=this.inputProps)===null||i===void 0?void 0:i.style],tabindex:this.passivelyActivated&&!this.activated?-1:(l=this.inputProps)===null||l===void 0?void 0:l.tabindex,placeholder:this.mergedPlaceholder[0],disabled:this.mergedDisabled,maxlength:f?void 0:this.maxlength,minlength:f?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[0]:this.mergedValue,readonly:this.readonly,autofocus:this.autofocus,size:this.attrSize,onBlur:this.handleInputBlur,onFocus:u=>{this.handleInputFocus(u,0)},onInput:u=>{this.handleInput(u,0)},onChange:u=>{this.handleChange(u,0)}})),this.showPlaceholder1?h("div",{class:`${a}-input__placeholder`},h("span",null,this.mergedPlaceholder[0])):null,this.autosize?h("div",{class:`${a}-input__input-mirror`,key:"mirror",ref:"inputMirrorElRef"}," "):null),!this.pair&<(g.suffix,u=>u||this.clearable||this.showCount||this.mergedShowPasswordOn||this.loading!==void 0?h("div",{class:`${a}-input__suffix`},[lt(g["clear-icon-placeholder"],p=>(this.clearable||p)&&h(Qs,{clsPrefix:a,show:this.showClearButton,onClear:this.handleClear},{placeholder:()=>p,icon:()=>{var b,m;return(m=(b=this.$slots)["clear-icon"])===null||m===void 0?void 0:m.call(b)}})),this.internalLoadingBeforeSuffix?null:u,this.loading!==void 0?h(Av,{clsPrefix:a,loading:this.loading,showArrow:!1,showClear:!1,style:this.cssVars}):null,this.internalLoadingBeforeSuffix?u:null,this.showCount&&this.type!=="textarea"?h(kf,null,{default:p=>{var b;const{renderCount:m}=this;return m?m(p):(b=g.count)===null||b===void 0?void 0:b.call(g,p)}}):null,this.mergedShowPasswordOn&&this.type==="password"?h("div",{class:`${a}-input__eye`,onMousedown:this.handlePasswordToggleMousedown,onClick:this.handlePasswordToggleClick},this.passwordVisible?$n(g["password-visible-icon"],()=>[h(kt,{clsPrefix:a},{default:()=>h(ok,null)})]):$n(g["password-invisible-icon"],()=>[h(kt,{clsPrefix:a},{default:()=>h(rk,null)})])):null]):null)),this.pair?h("span",{class:`${a}-input__separator`},$n(g.separator,()=>[this.separator])):null,this.pair?h("div",{class:`${a}-input-wrapper`},h("div",{class:`${a}-input__input`},h("input",{ref:"inputEl2Ref",type:this.type,class:`${a}-input__input-el`,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[1],disabled:this.mergedDisabled,maxlength:f?void 0:this.maxlength,minlength:f?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[1]:void 0,readonly:this.readonly,style:this.textDecorationStyle[1],onBlur:this.handleInputBlur,onFocus:u=>{this.handleInputFocus(u,1)},onInput:u=>{this.handleInput(u,1)},onChange:u=>{this.handleChange(u,1)}}),this.showPlaceholder2?h("div",{class:`${a}-input__placeholder`},h("span",null,this.mergedPlaceholder[1])):null),lt(g.suffix,u=>(this.clearable||u)&&h("div",{class:`${a}-input__suffix`},[this.clearable&&h(Qs,{clsPrefix:a,show:this.showClearButton,onClear:this.handleClear},{icon:()=>{var p;return(p=g["clear-icon"])===null||p===void 0?void 0:p.call(g)},placeholder:()=>{var p;return(p=g["clear-icon-placeholder"])===null||p===void 0?void 0:p.call(g)}}),u]))):null,this.mergedBordered?h("div",{class:`${a}-input__border`}):null,this.mergedBordered?h("div",{class:`${a}-input__state-border`}):null,this.showCount&&c==="textarea"?h(kf,null,{default:u=>{var p;const{renderCount:b}=this;return b?b(u):(p=g.count)===null||p===void 0?void 0:p.call(g,u)}}):null)}});function Kl(e){return e.type==="group"}function Nv(e){return e.type==="ignored"}function gs(e,t){try{return!!(1+t.toString().toLowerCase().indexOf(e.trim().toLowerCase()))}catch{return!1}}function jv(e,t){return{getIsGroup:Kl,getIgnored:Nv,getKey(o){return Kl(o)?o.name||o.key||"key-required":o[e]},getChildren(o){return o[t]}}}function zP(e,t,n,o){if(!t)return e;function r(i){if(!Array.isArray(i))return[];const l=[];for(const a of i)if(Kl(a)){const s=r(a[o]);s.length&&l.push(Object.assign({},a,{[o]:s}))}else{if(Nv(a))continue;t(n,a)&&l.push(a)}return l}return r(e)}function TP(e,t,n){const o=new Map;return e.forEach(r=>{Kl(r)?r[n].forEach(i=>{o.set(i[t],i)}):o.set(r[t],r)}),o}function Go(e){return rt(e,[255,255,255,.16])}function pl(e){return rt(e,[0,0,0,.12])}const FP="n-button-group",OP={paddingTiny:"0 6px",paddingSmall:"0 10px",paddingMedium:"0 14px",paddingLarge:"0 18px",paddingRoundTiny:"0 10px",paddingRoundSmall:"0 14px",paddingRoundMedium:"0 18px",paddingRoundLarge:"0 22px",iconMarginTiny:"6px",iconMarginSmall:"6px",iconMarginMedium:"6px",iconMarginLarge:"6px",iconSizeTiny:"14px",iconSizeSmall:"18px",iconSizeMedium:"18px",iconSizeLarge:"20px",rippleDuration:".6s"};function EP(e){const{heightTiny:t,heightSmall:n,heightMedium:o,heightLarge:r,borderRadius:i,fontSizeTiny:l,fontSizeSmall:a,fontSizeMedium:s,fontSizeLarge:d,opacityDisabled:c,textColor2:f,textColor3:v,primaryColorHover:g,primaryColorPressed:u,borderColor:p,primaryColor:b,baseColor:m,infoColor:y,infoColorHover:$,infoColorPressed:S,successColor:x,successColorHover:R,successColorPressed:C,warningColor:w,warningColorHover:k,warningColorPressed:F,errorColor:M,errorColorHover:_,errorColorPressed:T,fontWeight:B,buttonColor2:D,buttonColor2Hover:K,buttonColor2Pressed:N,fontWeightStrong:V}=e;return Object.assign(Object.assign({},OP),{heightTiny:t,heightSmall:n,heightMedium:o,heightLarge:r,borderRadiusTiny:i,borderRadiusSmall:i,borderRadiusMedium:i,borderRadiusLarge:i,fontSizeTiny:l,fontSizeSmall:a,fontSizeMedium:s,fontSizeLarge:d,opacityDisabled:c,colorOpacitySecondary:"0.16",colorOpacitySecondaryHover:"0.22",colorOpacitySecondaryPressed:"0.28",colorSecondary:D,colorSecondaryHover:K,colorSecondaryPressed:N,colorTertiary:D,colorTertiaryHover:K,colorTertiaryPressed:N,colorQuaternary:"#0000",colorQuaternaryHover:K,colorQuaternaryPressed:N,color:"#0000",colorHover:"#0000",colorPressed:"#0000",colorFocus:"#0000",colorDisabled:"#0000",textColor:f,textColorTertiary:v,textColorHover:g,textColorPressed:u,textColorFocus:g,textColorDisabled:f,textColorText:f,textColorTextHover:g,textColorTextPressed:u,textColorTextFocus:g,textColorTextDisabled:f,textColorGhost:f,textColorGhostHover:g,textColorGhostPressed:u,textColorGhostFocus:g,textColorGhostDisabled:f,border:`1px solid ${p}`,borderHover:`1px solid ${g}`,borderPressed:`1px solid ${u}`,borderFocus:`1px solid ${g}`,borderDisabled:`1px solid ${p}`,rippleColor:b,colorPrimary:b,colorHoverPrimary:g,colorPressedPrimary:u,colorFocusPrimary:g,colorDisabledPrimary:b,textColorPrimary:m,textColorHoverPrimary:m,textColorPressedPrimary:m,textColorFocusPrimary:m,textColorDisabledPrimary:m,textColorTextPrimary:b,textColorTextHoverPrimary:g,textColorTextPressedPrimary:u,textColorTextFocusPrimary:g,textColorTextDisabledPrimary:f,textColorGhostPrimary:b,textColorGhostHoverPrimary:g,textColorGhostPressedPrimary:u,textColorGhostFocusPrimary:g,textColorGhostDisabledPrimary:b,borderPrimary:`1px solid ${b}`,borderHoverPrimary:`1px solid ${g}`,borderPressedPrimary:`1px solid ${u}`,borderFocusPrimary:`1px solid ${g}`,borderDisabledPrimary:`1px solid ${b}`,rippleColorPrimary:b,colorInfo:y,colorHoverInfo:$,colorPressedInfo:S,colorFocusInfo:$,colorDisabledInfo:y,textColorInfo:m,textColorHoverInfo:m,textColorPressedInfo:m,textColorFocusInfo:m,textColorDisabledInfo:m,textColorTextInfo:y,textColorTextHoverInfo:$,textColorTextPressedInfo:S,textColorTextFocusInfo:$,textColorTextDisabledInfo:f,textColorGhostInfo:y,textColorGhostHoverInfo:$,textColorGhostPressedInfo:S,textColorGhostFocusInfo:$,textColorGhostDisabledInfo:y,borderInfo:`1px solid ${y}`,borderHoverInfo:`1px solid ${$}`,borderPressedInfo:`1px solid ${S}`,borderFocusInfo:`1px solid ${$}`,borderDisabledInfo:`1px solid ${y}`,rippleColorInfo:y,colorSuccess:x,colorHoverSuccess:R,colorPressedSuccess:C,colorFocusSuccess:R,colorDisabledSuccess:x,textColorSuccess:m,textColorHoverSuccess:m,textColorPressedSuccess:m,textColorFocusSuccess:m,textColorDisabledSuccess:m,textColorTextSuccess:x,textColorTextHoverSuccess:R,textColorTextPressedSuccess:C,textColorTextFocusSuccess:R,textColorTextDisabledSuccess:f,textColorGhostSuccess:x,textColorGhostHoverSuccess:R,textColorGhostPressedSuccess:C,textColorGhostFocusSuccess:R,textColorGhostDisabledSuccess:x,borderSuccess:`1px solid ${x}`,borderHoverSuccess:`1px solid ${R}`,borderPressedSuccess:`1px solid ${C}`,borderFocusSuccess:`1px solid ${R}`,borderDisabledSuccess:`1px solid ${x}`,rippleColorSuccess:x,colorWarning:w,colorHoverWarning:k,colorPressedWarning:F,colorFocusWarning:k,colorDisabledWarning:w,textColorWarning:m,textColorHoverWarning:m,textColorPressedWarning:m,textColorFocusWarning:m,textColorDisabledWarning:m,textColorTextWarning:w,textColorTextHoverWarning:k,textColorTextPressedWarning:F,textColorTextFocusWarning:k,textColorTextDisabledWarning:f,textColorGhostWarning:w,textColorGhostHoverWarning:k,textColorGhostPressedWarning:F,textColorGhostFocusWarning:k,textColorGhostDisabledWarning:w,borderWarning:`1px solid ${w}`,borderHoverWarning:`1px solid ${k}`,borderPressedWarning:`1px solid ${F}`,borderFocusWarning:`1px solid ${k}`,borderDisabledWarning:`1px solid ${w}`,rippleColorWarning:w,colorError:M,colorHoverError:_,colorPressedError:T,colorFocusError:_,colorDisabledError:M,textColorError:m,textColorHoverError:m,textColorPressedError:m,textColorFocusError:m,textColorDisabledError:m,textColorTextError:M,textColorTextHoverError:_,textColorTextPressedError:T,textColorTextFocusError:_,textColorTextDisabledError:f,textColorGhostError:M,textColorGhostHoverError:_,textColorGhostPressedError:T,textColorGhostFocusError:_,textColorGhostDisabledError:M,borderError:`1px solid ${M}`,borderHoverError:`1px solid ${_}`,borderPressedError:`1px solid ${T}`,borderFocusError:`1px solid ${_}`,borderDisabledError:`1px solid ${M}`,rippleColorError:M,waveOpacity:"0.6",fontWeight:B,fontWeightStrong:V})}const rc={name:"Button",common:gt,self:EP},MP=I([P("button",` + margin: 0; + font-weight: var(--n-font-weight); + line-height: 1; + font-family: inherit; + padding: var(--n-padding); + height: var(--n-height); + font-size: var(--n-font-size); + border-radius: var(--n-border-radius); + color: var(--n-text-color); + background-color: var(--n-color); + width: var(--n-width); + white-space: nowrap; + outline: none; + position: relative; + z-index: auto; + border: none; + display: inline-flex; + flex-wrap: nowrap; + flex-shrink: 0; + align-items: center; + justify-content: center; + user-select: none; + -webkit-user-select: none; + text-align: center; + cursor: pointer; + text-decoration: none; + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `,[H("color",[j("border",{borderColor:"var(--n-border-color)"}),H("disabled",[j("border",{borderColor:"var(--n-border-color-disabled)"})]),dt("disabled",[I("&:focus",[j("state-border",{borderColor:"var(--n-border-color-focus)"})]),I("&:hover",[j("state-border",{borderColor:"var(--n-border-color-hover)"})]),I("&:active",[j("state-border",{borderColor:"var(--n-border-color-pressed)"})]),H("pressed",[j("state-border",{borderColor:"var(--n-border-color-pressed)"})])])]),H("disabled",{backgroundColor:"var(--n-color-disabled)",color:"var(--n-text-color-disabled)"},[j("border",{border:"var(--n-border-disabled)"})]),dt("disabled",[I("&:focus",{backgroundColor:"var(--n-color-focus)",color:"var(--n-text-color-focus)"},[j("state-border",{border:"var(--n-border-focus)"})]),I("&:hover",{backgroundColor:"var(--n-color-hover)",color:"var(--n-text-color-hover)"},[j("state-border",{border:"var(--n-border-hover)"})]),I("&:active",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[j("state-border",{border:"var(--n-border-pressed)"})]),H("pressed",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[j("state-border",{border:"var(--n-border-pressed)"})])]),H("loading","cursor: wait;"),P("base-wave",` + pointer-events: none; + top: 0; + right: 0; + bottom: 0; + left: 0; + animation-iteration-count: 1; + animation-duration: var(--n-ripple-duration); + animation-timing-function: var(--n-bezier-ease-out), var(--n-bezier-ease-out); + `,[H("active",{zIndex:1,animationName:"button-wave-spread, button-wave-opacity"})]),Do&&"MozBoxSizing"in document.createElement("div").style?I("&::moz-focus-inner",{border:0}):null,j("border, state-border",` + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + border-radius: inherit; + transition: border-color .3s var(--n-bezier); + pointer-events: none; + `),j("border",` + border: var(--n-border); + `),j("state-border",` + border: var(--n-border); + border-color: #0000; + z-index: 1; + `),j("icon",` + margin: var(--n-icon-margin); + margin-left: 0; + height: var(--n-icon-size); + width: var(--n-icon-size); + max-width: var(--n-icon-size); + font-size: var(--n-icon-size); + position: relative; + flex-shrink: 0; + `,[P("icon-slot",` + height: var(--n-icon-size); + width: var(--n-icon-size); + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + display: flex; + align-items: center; + justify-content: center; + `,[an({top:"50%",originalTransform:"translateY(-50%)"})]),vP()]),j("content",` + display: flex; + align-items: center; + flex-wrap: nowrap; + min-width: 0; + `,[I("~",[j("icon",{margin:"var(--n-icon-margin)",marginRight:0})])]),H("block",` + display: flex; + width: 100%; + `),H("dashed",[j("border, state-border",{borderStyle:"dashed !important"})]),H("disabled",{cursor:"not-allowed",opacity:"var(--n-opacity-disabled)"})]),I("@keyframes button-wave-spread",{from:{boxShadow:"0 0 0.5px 0 var(--n-ripple-color)"},to:{boxShadow:"0 0 0.5px 4.5px var(--n-ripple-color)"}}),I("@keyframes button-wave-opacity",{from:{opacity:"var(--n-wave-opacity)"},to:{opacity:0}})]),BP=Object.assign(Object.assign({},Be.props),{color:String,textColor:String,text:Boolean,block:Boolean,loading:Boolean,disabled:Boolean,circle:Boolean,size:String,ghost:Boolean,round:Boolean,secondary:Boolean,tertiary:Boolean,quaternary:Boolean,strong:Boolean,focusable:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},tag:{type:String,default:"button"},type:{type:String,default:"default"},dashed:Boolean,renderIcon:Function,iconPlacement:{type:String,default:"left"},attrType:{type:String,default:"button"},bordered:{type:Boolean,default:!0},onClick:[Function,Array],nativeFocusBehavior:{type:Boolean,default:!Lv},spinProps:Object}),It=pe({name:"Button",props:BP,slots:Object,setup(e){const t=E(null),n=E(null),o=E(!1),r=ot(()=>!e.quaternary&&!e.tertiary&&!e.secondary&&!e.text&&(!e.color||e.ghost||e.dashed)&&e.bordered),i=Ee(FP,{}),{inlineThemeDisabled:l,mergedClsPrefixRef:a,mergedRtlRef:s,mergedComponentPropsRef:d}=Ye(e),{mergedSizeRef:c}=No({},{defaultSize:"medium",mergedSize:x=>{var R,C;const{size:w}=e;if(w)return w;const{size:k}=i;if(k)return k;const{mergedSize:F}=x||{};if(F)return F.value;const M=(C=(R=d?.value)===null||R===void 0?void 0:R.Button)===null||C===void 0?void 0:C.size;return M||"medium"}}),f=O(()=>e.focusable&&!e.disabled),v=x=>{var R;f.value||x.preventDefault(),!e.nativeFocusBehavior&&(x.preventDefault(),!e.disabled&&f.value&&((R=t.value)===null||R===void 0||R.focus({preventScroll:!0})))},g=x=>{var R;if(!e.disabled&&!e.loading){const{onClick:C}=e;C&&me(C,x),e.text||(R=n.value)===null||R===void 0||R.play()}},u=x=>{switch(x.key){case"Enter":if(!e.keyboard)return;o.value=!1}},p=x=>{switch(x.key){case"Enter":if(!e.keyboard||e.loading){x.preventDefault();return}o.value=!0}},b=()=>{o.value=!1},m=Be("Button","-button",MP,rc,e,a),y=Bt("Button",s,a),$=O(()=>{const x=m.value,{common:{cubicBezierEaseInOut:R,cubicBezierEaseOut:C},self:w}=x,{rippleDuration:k,opacityDisabled:F,fontWeight:M,fontWeightStrong:_}=w,T=c.value,{dashed:B,type:D,ghost:K,text:N,color:V,round:ie,circle:he,textColor:J,secondary:re,tertiary:ye,quaternary:Z,strong:le}=e,$e={"--n-font-weight":le?_:M};let ze={"--n-color":"initial","--n-color-hover":"initial","--n-color-pressed":"initial","--n-color-focus":"initial","--n-color-disabled":"initial","--n-ripple-color":"initial","--n-text-color":"initial","--n-text-color-hover":"initial","--n-text-color-pressed":"initial","--n-text-color-focus":"initial","--n-text-color-disabled":"initial"};const Ae=D==="tertiary",Te=D==="default",ne=Ae?"default":D;if(N){const oe=J||V;ze={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":"#0000","--n-text-color":oe||w[de("textColorText",ne)],"--n-text-color-hover":oe?Go(oe):w[de("textColorTextHover",ne)],"--n-text-color-pressed":oe?pl(oe):w[de("textColorTextPressed",ne)],"--n-text-color-focus":oe?Go(oe):w[de("textColorTextHover",ne)],"--n-text-color-disabled":oe||w[de("textColorTextDisabled",ne)]}}else if(K||B){const oe=J||V;ze={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":V||w[de("rippleColor",ne)],"--n-text-color":oe||w[de("textColorGhost",ne)],"--n-text-color-hover":oe?Go(oe):w[de("textColorGhostHover",ne)],"--n-text-color-pressed":oe?pl(oe):w[de("textColorGhostPressed",ne)],"--n-text-color-focus":oe?Go(oe):w[de("textColorGhostHover",ne)],"--n-text-color-disabled":oe||w[de("textColorGhostDisabled",ne)]}}else if(re){const oe=Te?w.textColor:Ae?w.textColorTertiary:w[de("color",ne)],q=V||oe,G=D!=="default"&&D!=="tertiary";ze={"--n-color":G?Ue(q,{alpha:Number(w.colorOpacitySecondary)}):w.colorSecondary,"--n-color-hover":G?Ue(q,{alpha:Number(w.colorOpacitySecondaryHover)}):w.colorSecondaryHover,"--n-color-pressed":G?Ue(q,{alpha:Number(w.colorOpacitySecondaryPressed)}):w.colorSecondaryPressed,"--n-color-focus":G?Ue(q,{alpha:Number(w.colorOpacitySecondaryHover)}):w.colorSecondaryHover,"--n-color-disabled":w.colorSecondary,"--n-ripple-color":"#0000","--n-text-color":q,"--n-text-color-hover":q,"--n-text-color-pressed":q,"--n-text-color-focus":q,"--n-text-color-disabled":q}}else if(ye||Z){const oe=Te?w.textColor:Ae?w.textColorTertiary:w[de("color",ne)],q=V||oe;ye?(ze["--n-color"]=w.colorTertiary,ze["--n-color-hover"]=w.colorTertiaryHover,ze["--n-color-pressed"]=w.colorTertiaryPressed,ze["--n-color-focus"]=w.colorSecondaryHover,ze["--n-color-disabled"]=w.colorTertiary):(ze["--n-color"]=w.colorQuaternary,ze["--n-color-hover"]=w.colorQuaternaryHover,ze["--n-color-pressed"]=w.colorQuaternaryPressed,ze["--n-color-focus"]=w.colorQuaternaryHover,ze["--n-color-disabled"]=w.colorQuaternary),ze["--n-ripple-color"]="#0000",ze["--n-text-color"]=q,ze["--n-text-color-hover"]=q,ze["--n-text-color-pressed"]=q,ze["--n-text-color-focus"]=q,ze["--n-text-color-disabled"]=q}else ze={"--n-color":V||w[de("color",ne)],"--n-color-hover":V?Go(V):w[de("colorHover",ne)],"--n-color-pressed":V?pl(V):w[de("colorPressed",ne)],"--n-color-focus":V?Go(V):w[de("colorFocus",ne)],"--n-color-disabled":V||w[de("colorDisabled",ne)],"--n-ripple-color":V||w[de("rippleColor",ne)],"--n-text-color":J||(V?w.textColorPrimary:Ae?w.textColorTertiary:w[de("textColor",ne)]),"--n-text-color-hover":J||(V?w.textColorHoverPrimary:w[de("textColorHover",ne)]),"--n-text-color-pressed":J||(V?w.textColorPressedPrimary:w[de("textColorPressed",ne)]),"--n-text-color-focus":J||(V?w.textColorFocusPrimary:w[de("textColorFocus",ne)]),"--n-text-color-disabled":J||(V?w.textColorDisabledPrimary:w[de("textColorDisabled",ne)])};let Oe={"--n-border":"initial","--n-border-hover":"initial","--n-border-pressed":"initial","--n-border-focus":"initial","--n-border-disabled":"initial"};N?Oe={"--n-border":"none","--n-border-hover":"none","--n-border-pressed":"none","--n-border-focus":"none","--n-border-disabled":"none"}:Oe={"--n-border":w[de("border",ne)],"--n-border-hover":w[de("borderHover",ne)],"--n-border-pressed":w[de("borderPressed",ne)],"--n-border-focus":w[de("borderFocus",ne)],"--n-border-disabled":w[de("borderDisabled",ne)]};const{[de("height",T)]:z,[de("fontSize",T)]:L,[de("padding",T)]:ee,[de("paddingRound",T)]:se,[de("iconSize",T)]:ae,[de("borderRadius",T)]:Q,[de("iconMargin",T)]:ue,waveOpacity:ve}=w,fe={"--n-width":he&&!N?z:"initial","--n-height":N?"initial":z,"--n-font-size":L,"--n-padding":he||N?"initial":ie?se:ee,"--n-icon-size":ae,"--n-icon-margin":ue,"--n-border-radius":N?"initial":he||ie?z:Q};return Object.assign(Object.assign(Object.assign(Object.assign({"--n-bezier":R,"--n-bezier-ease-out":C,"--n-ripple-duration":k,"--n-opacity-disabled":F,"--n-wave-opacity":ve},$e),ze),Oe),fe)}),S=l?vt("button",O(()=>{let x="";const{dashed:R,type:C,ghost:w,text:k,color:F,round:M,circle:_,textColor:T,secondary:B,tertiary:D,quaternary:K,strong:N}=e;R&&(x+="a"),w&&(x+="b"),k&&(x+="c"),M&&(x+="d"),_&&(x+="e"),B&&(x+="f"),D&&(x+="g"),K&&(x+="h"),N&&(x+="i"),F&&(x+=`j${Al(F)}`),T&&(x+=`k${Al(T)}`);const{value:V}=c;return x+=`l${V[0]}`,x+=`m${C[0]}`,x}),$,e):void 0;return{selfElRef:t,waveElRef:n,mergedClsPrefix:a,mergedFocusable:f,mergedSize:c,showBorder:r,enterPressed:o,rtlEnabled:y,handleMousedown:v,handleKeydown:p,handleBlur:b,handleKeyup:u,handleClick:g,customColorCssVars:O(()=>{const{color:x}=e;if(!x)return null;const R=Go(x);return{"--n-border-color":x,"--n-border-color-hover":R,"--n-border-color-pressed":pl(x),"--n-border-color-focus":R,"--n-border-color-disabled":x}}),cssVars:l?void 0:$,themeClass:S?.themeClass,onRender:S?.onRender}},render(){const{mergedClsPrefix:e,tag:t,onRender:n}=this;n?.();const o=lt(this.$slots.default,r=>r&&h("span",{class:`${e}-button__content`},r));return h(t,{ref:"selfElRef",class:[this.themeClass,`${e}-button`,`${e}-button--${this.type}-type`,`${e}-button--${this.mergedSize}-type`,this.rtlEnabled&&`${e}-button--rtl`,this.disabled&&`${e}-button--disabled`,this.block&&`${e}-button--block`,this.enterPressed&&`${e}-button--pressed`,!this.text&&this.dashed&&`${e}-button--dashed`,this.color&&`${e}-button--color`,this.secondary&&`${e}-button--secondary`,this.loading&&`${e}-button--loading`,this.ghost&&`${e}-button--ghost`],tabindex:this.mergedFocusable?0:-1,type:this.attrType,style:this.cssVars,disabled:this.disabled,onClick:this.handleClick,onBlur:this.handleBlur,onMousedown:this.handleMousedown,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},this.iconPlacement==="right"&&o,h($v,{width:!0},{default:()=>lt(this.$slots.icon,r=>(this.loading||this.renderIcon||r)&&h("span",{class:`${e}-button__icon`,style:{margin:Mr(this.$slots.default)?"0":""}},h(vr,null,{default:()=>this.loading?h(gr,Object.assign({clsPrefix:e,key:"loading",class:`${e}-icon-slot`,strokeWidth:20},this.spinProps)):h("div",{key:"icon",class:`${e}-icon-slot`,role:"none"},this.renderIcon?this.renderIcon():r)})))}),this.iconPlacement==="left"&&o,this.text?null:h(bP,{ref:"waveElRef",clsPrefix:e}),this.showBorder?h("div",{"aria-hidden":!0,class:`${e}-button__border`,style:this.customColorCssVars}):null,this.showBorder?h("div",{"aria-hidden":!0,class:`${e}-button__state-border`,style:this.customColorCssVars}):null)}}),AP={paddingSmall:"12px 16px 12px",paddingMedium:"19px 24px 20px",paddingLarge:"23px 32px 24px",paddingHuge:"27px 40px 28px",titleFontSizeSmall:"16px",titleFontSizeMedium:"18px",titleFontSizeLarge:"18px",titleFontSizeHuge:"18px",closeIconSize:"18px",closeSize:"22px"};function IP(e){const{primaryColor:t,borderRadius:n,lineHeight:o,fontSize:r,cardColor:i,textColor2:l,textColor1:a,dividerColor:s,fontWeightStrong:d,closeIconColor:c,closeIconColorHover:f,closeIconColorPressed:v,closeColorHover:g,closeColorPressed:u,modalColor:p,boxShadow1:b,popoverColor:m,actionColor:y}=e;return Object.assign(Object.assign({},AP),{lineHeight:o,color:i,colorModal:p,colorPopover:m,colorTarget:t,colorEmbedded:y,colorEmbeddedModal:y,colorEmbeddedPopover:y,textColor:l,titleTextColor:a,borderColor:s,actionColor:y,titleFontWeight:d,closeColorHover:g,closeColorPressed:u,closeBorderRadius:n,closeIconColor:c,closeIconColorHover:f,closeIconColorPressed:v,fontSizeSmall:r,fontSizeMedium:r,fontSizeLarge:r,fontSizeHuge:r,boxShadow:b,borderRadius:n})}const Wv={name:"Card",common:gt,self:IP},Pf=P("card-content",` + flex: 1; + min-width: 0; + box-sizing: border-box; + padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left); + font-size: var(--n-font-size); +`),LP=I([P("card",` + font-size: var(--n-font-size); + line-height: var(--n-line-height); + display: flex; + flex-direction: column; + width: 100%; + box-sizing: border-box; + position: relative; + border-radius: var(--n-border-radius); + background-color: var(--n-color); + color: var(--n-text-color); + word-break: break-word; + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `,[mp({background:"var(--n-color-modal)"}),H("hoverable",[I("&:hover","box-shadow: var(--n-box-shadow);")]),H("content-segmented",[I(">",[P("card-content",` + padding-top: var(--n-padding-bottom); + `),j("content-scrollbar",[I(">",[P("scrollbar-container",[I(">",[P("card-content",` + padding-top: var(--n-padding-bottom); + `)])])])])])]),H("content-soft-segmented",[I(">",[P("card-content",` + margin: 0 var(--n-padding-left); + padding: var(--n-padding-bottom) 0; + `),j("content-scrollbar",[I(">",[P("scrollbar-container",[I(">",[P("card-content",` + margin: 0 var(--n-padding-left); + padding: var(--n-padding-bottom) 0; + `)])])])])])]),H("footer-segmented",[I(">",[j("footer",` + padding-top: var(--n-padding-bottom); + `)])]),H("footer-soft-segmented",[I(">",[j("footer",` + padding: var(--n-padding-bottom) 0; + margin: 0 var(--n-padding-left); + `)])]),I(">",[P("card-header",` + box-sizing: border-box; + display: flex; + align-items: center; + font-size: var(--n-title-font-size); + padding: + var(--n-padding-top) + var(--n-padding-left) + var(--n-padding-bottom) + var(--n-padding-left); + `,[j("main",` + font-weight: var(--n-title-font-weight); + transition: color .3s var(--n-bezier); + flex: 1; + min-width: 0; + color: var(--n-title-text-color); + `),j("extra",` + display: flex; + align-items: center; + font-size: var(--n-font-size); + font-weight: 400; + transition: color .3s var(--n-bezier); + color: var(--n-text-color); + `),j("close",` + margin: 0 0 0 8px; + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `)]),j("action",` + box-sizing: border-box; + transition: + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier); + background-clip: padding-box; + background-color: var(--n-action-color); + `),Pf,P("card-content",[I("&:first-child",` + padding-top: var(--n-padding-bottom); + `)]),j("content-scrollbar",` + display: flex; + flex-direction: column; + `,[I(">",[P("scrollbar-container",[I(">",[Pf])])]),I("&:first-child >",[P("scrollbar-container",[I(">",[P("card-content",` + padding-top: var(--n-padding-bottom); + `)])])])]),j("footer",` + box-sizing: border-box; + padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left); + font-size: var(--n-font-size); + `,[I("&:first-child",` + padding-top: var(--n-padding-bottom); + `)]),j("action",` + background-color: var(--n-action-color); + padding: var(--n-padding-bottom) var(--n-padding-left); + border-bottom-left-radius: var(--n-border-radius); + border-bottom-right-radius: var(--n-border-radius); + `)]),P("card-cover",` + overflow: hidden; + width: 100%; + border-radius: var(--n-border-radius) var(--n-border-radius) 0 0; + `,[I("img",` + display: block; + width: 100%; + `)]),H("bordered",` + border: 1px solid var(--n-border-color); + `,[I("&:target","border-color: var(--n-color-target);")]),H("action-segmented",[I(">",[j("action",[I("&:not(:first-child)",` + border-top: 1px solid var(--n-border-color); + `)])])]),H("content-segmented, content-soft-segmented",[I(">",[P("card-content",` + transition: border-color 0.3s var(--n-bezier); + `,[I("&:not(:first-child)",` + border-top: 1px solid var(--n-border-color); + `)]),j("content-scrollbar",` + transition: border-color 0.3s var(--n-bezier); + `,[I("&:not(:first-child)",` + border-top: 1px solid var(--n-border-color); + `)])])]),H("footer-segmented, footer-soft-segmented",[I(">",[j("footer",` + transition: border-color 0.3s var(--n-bezier); + `,[I("&:not(:first-child)",` + border-top: 1px solid var(--n-border-color); + `)])])]),H("embedded",` + background-color: var(--n-color-embedded); + `)]),sa(P("card",` + background: var(--n-color-modal); + `,[H("embedded",` + background-color: var(--n-color-embedded-modal); + `)])),$d(P("card",` + background: var(--n-color-popover); + `,[H("embedded",` + background-color: var(--n-color-embedded-popover); + `)]))]),ic={title:[String,Function],contentClass:String,contentStyle:[Object,String],contentScrollable:Boolean,headerClass:String,headerStyle:[Object,String],headerExtraClass:String,headerExtraStyle:[Object,String],footerClass:String,footerStyle:[Object,String],embedded:Boolean,segmented:{type:[Boolean,Object],default:!1},size:String,bordered:{type:Boolean,default:!0},closable:Boolean,hoverable:Boolean,role:String,onClose:[Function,Array],tag:{type:String,default:"div"},cover:Function,content:[String,Function],footer:Function,action:Function,headerExtra:Function,closeFocusable:Boolean},DP=Gi(ic),HP=Object.assign(Object.assign({},Be.props),ic),co=pe({name:"Card",props:HP,slots:Object,setup(e){const t=()=>{const{onClose:f}=e;f&&me(f)},{inlineThemeDisabled:n,mergedClsPrefixRef:o,mergedRtlRef:r,mergedComponentPropsRef:i}=Ye(e),l=Be("Card","-card",LP,Wv,e,o),a=Bt("Card",r,o),s=O(()=>{var f,v;return e.size||((v=(f=i?.value)===null||f===void 0?void 0:f.Card)===null||v===void 0?void 0:v.size)||"medium"}),d=O(()=>{const f=s.value,{self:{color:v,colorModal:g,colorTarget:u,textColor:p,titleTextColor:b,titleFontWeight:m,borderColor:y,actionColor:$,borderRadius:S,lineHeight:x,closeIconColor:R,closeIconColorHover:C,closeIconColorPressed:w,closeColorHover:k,closeColorPressed:F,closeBorderRadius:M,closeIconSize:_,closeSize:T,boxShadow:B,colorPopover:D,colorEmbedded:K,colorEmbeddedModal:N,colorEmbeddedPopover:V,[de("padding",f)]:ie,[de("fontSize",f)]:he,[de("titleFontSize",f)]:J},common:{cubicBezierEaseInOut:re}}=l.value,{top:ye,left:Z,bottom:le}=Ft(ie);return{"--n-bezier":re,"--n-border-radius":S,"--n-color":v,"--n-color-modal":g,"--n-color-popover":D,"--n-color-embedded":K,"--n-color-embedded-modal":N,"--n-color-embedded-popover":V,"--n-color-target":u,"--n-text-color":p,"--n-line-height":x,"--n-action-color":$,"--n-title-text-color":b,"--n-title-font-weight":m,"--n-close-icon-color":R,"--n-close-icon-color-hover":C,"--n-close-icon-color-pressed":w,"--n-close-color-hover":k,"--n-close-color-pressed":F,"--n-border-color":y,"--n-box-shadow":B,"--n-padding-top":ye,"--n-padding-bottom":le,"--n-padding-left":Z,"--n-font-size":he,"--n-title-font-size":J,"--n-close-size":T,"--n-close-icon-size":_,"--n-close-border-radius":M}}),c=n?vt("card",O(()=>s.value[0]),d,e):void 0;return{rtlEnabled:a,mergedClsPrefix:o,mergedTheme:l,handleCloseClick:t,cssVars:n?void 0:d,themeClass:c?.themeClass,onRender:c?.onRender}},render(){const{segmented:e,bordered:t,hoverable:n,mergedClsPrefix:o,rtlEnabled:r,onRender:i,embedded:l,tag:a,$slots:s}=this;return i?.(),h(a,{class:[`${o}-card`,this.themeClass,l&&`${o}-card--embedded`,{[`${o}-card--rtl`]:r,[`${o}-card--content-scrollable`]:this.contentScrollable,[`${o}-card--content${typeof e!="boolean"&&e.content==="soft"?"-soft":""}-segmented`]:e===!0||e!==!1&&e.content,[`${o}-card--footer${typeof e!="boolean"&&e.footer==="soft"?"-soft":""}-segmented`]:e===!0||e!==!1&&e.footer,[`${o}-card--action-segmented`]:e===!0||e!==!1&&e.action,[`${o}-card--bordered`]:t,[`${o}-card--hoverable`]:n}],style:this.cssVars,role:this.role},lt(s.cover,d=>{const c=this.cover?Rn([this.cover()]):d;return c&&h("div",{class:`${o}-card-cover`,role:"none"},c)}),lt(s.header,d=>{const{title:c}=this,f=c?Rn(typeof c=="function"?[c()]:[c]):d;return f||this.closable?h("div",{class:[`${o}-card-header`,this.headerClass],style:this.headerStyle,role:"heading"},h("div",{class:`${o}-card-header__main`,role:"heading"},f),lt(s["header-extra"],v=>{const g=this.headerExtra?Rn([this.headerExtra()]):v;return g&&h("div",{class:[`${o}-card-header__extra`,this.headerExtraClass],style:this.headerExtraStyle},g)}),this.closable&&h(Kr,{clsPrefix:o,class:`${o}-card-header__close`,onClick:this.handleCloseClick,focusable:this.closeFocusable,absolute:!0})):null}),lt(s.default,d=>{const{content:c}=this,f=c?Rn(typeof c=="function"?[c()]:[c]):d;return f?this.contentScrollable?h(bo,{class:`${o}-card__content-scrollbar`,contentClass:[`${o}-card-content`,this.contentClass],contentStyle:this.contentStyle},f):h("div",{class:[`${o}-card-content`,this.contentClass],style:this.contentStyle,role:"none"},f):null}),lt(s.footer,d=>{const c=this.footer?Rn([this.footer()]):d;return c&&h("div",{class:[`${o}-card__footer`,this.footerClass],style:this.footerStyle,role:"none"},c)}),lt(s.action,d=>{const c=this.action?Rn([this.action()]):d;return c&&h("div",{class:`${o}-card__action`,role:"none"},c)}))}}),NP={sizeSmall:"14px",sizeMedium:"16px",sizeLarge:"18px",labelPadding:"0 8px",labelFontWeight:"400"};function jP(e){const{baseColor:t,inputColorDisabled:n,cardColor:o,modalColor:r,popoverColor:i,textColorDisabled:l,borderColor:a,primaryColor:s,textColor2:d,fontSizeSmall:c,fontSizeMedium:f,fontSizeLarge:v,borderRadiusSmall:g,lineHeight:u}=e;return Object.assign(Object.assign({},NP),{labelLineHeight:u,fontSizeSmall:c,fontSizeMedium:f,fontSizeLarge:v,borderRadius:g,color:t,colorChecked:s,colorDisabled:n,colorDisabledChecked:n,colorTableHeader:o,colorTableHeaderModal:r,colorTableHeaderPopover:i,checkMarkColor:t,checkMarkColorDisabled:l,checkMarkColorDisabledChecked:l,border:`1px solid ${a}`,borderDisabled:`1px solid ${a}`,borderDisabledChecked:`1px solid ${a}`,borderChecked:`1px solid ${s}`,borderFocus:`1px solid ${s}`,boxShadowFocus:`0 0 0 2px ${Ue(s,{alpha:.3})}`,textColor:d,textColorDisabled:l})}const Vv={name:"Checkbox",common:gt,self:jP},Kv="n-checkbox-group",WP={min:Number,max:Number,size:String,value:Array,defaultValue:{type:Array,default:null},disabled:{type:Boolean,default:void 0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onChange:[Function,Array]},VP=pe({name:"CheckboxGroup",props:WP,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=No(e),{mergedSizeRef:o,mergedDisabledRef:r}=n,i=E(e.defaultValue),l=O(()=>e.value),a=qt(l,i),s=O(()=>{var f;return((f=a.value)===null||f===void 0?void 0:f.length)||0}),d=O(()=>Array.isArray(a.value)?new Set(a.value):new Set);function c(f,v){const{nTriggerFormInput:g,nTriggerFormChange:u}=n,{onChange:p,"onUpdate:value":b,onUpdateValue:m}=e;if(Array.isArray(a.value)){const y=Array.from(a.value),$=y.findIndex(S=>S===v);f?~$||(y.push(v),m&&me(m,y,{actionType:"check",value:v}),b&&me(b,y,{actionType:"check",value:v}),g(),u(),i.value=y,p&&me(p,y)):~$&&(y.splice($,1),m&&me(m,y,{actionType:"uncheck",value:v}),b&&me(b,y,{actionType:"uncheck",value:v}),p&&me(p,y),i.value=y,g(),u())}else f?(m&&me(m,[v],{actionType:"check",value:v}),b&&me(b,[v],{actionType:"check",value:v}),p&&me(p,[v]),i.value=[v],g(),u()):(m&&me(m,[],{actionType:"uncheck",value:v}),b&&me(b,[],{actionType:"uncheck",value:v}),p&&me(p,[]),i.value=[],g(),u())}return qe(Kv,{checkedCountRef:s,maxRef:we(e,"max"),minRef:we(e,"min"),valueSetRef:d,disabledRef:r,mergedSizeRef:o,toggleCheckbox:c}),{mergedClsPrefix:t}},render(){return h("div",{class:`${this.mergedClsPrefix}-checkbox-group`,role:"group"},this.$slots)}}),KP=()=>h("svg",{viewBox:"0 0 64 64",class:"check-icon"},h("path",{d:"M50.42,16.76L22.34,39.45l-8.1-11.46c-1.12-1.58-3.3-1.96-4.88-0.84c-1.58,1.12-1.95,3.3-0.84,4.88l10.26,14.51 c0.56,0.79,1.42,1.31,2.38,1.45c0.16,0.02,0.32,0.03,0.48,0.03c0.8,0,1.57-0.27,2.2-0.78l30.99-25.03c1.5-1.21,1.74-3.42,0.52-4.92 C54.13,15.78,51.93,15.55,50.42,16.76z"})),UP=()=>h("svg",{viewBox:"0 0 100 100",class:"line-icon"},h("path",{d:"M80.2,55.5H21.4c-2.8,0-5.1-2.5-5.1-5.5l0,0c0-3,2.3-5.5,5.1-5.5h58.7c2.8,0,5.1,2.5,5.1,5.5l0,0C85.2,53.1,82.9,55.5,80.2,55.5z"})),GP=I([P("checkbox",` + font-size: var(--n-font-size); + outline: none; + cursor: pointer; + display: inline-flex; + flex-wrap: nowrap; + align-items: flex-start; + word-break: break-word; + line-height: var(--n-size); + --n-merged-color-table: var(--n-color-table); + `,[H("show-label","line-height: var(--n-label-line-height);"),I("&:hover",[P("checkbox-box",[j("border","border: var(--n-border-checked);")])]),I("&:focus:not(:active)",[P("checkbox-box",[j("border",` + border: var(--n-border-focus); + box-shadow: var(--n-box-shadow-focus); + `)])]),H("inside-table",[P("checkbox-box",` + background-color: var(--n-merged-color-table); + `)]),H("checked",[P("checkbox-box",` + background-color: var(--n-color-checked); + `,[P("checkbox-icon",[I(".check-icon",` + opacity: 1; + transform: scale(1); + `)])])]),H("indeterminate",[P("checkbox-box",[P("checkbox-icon",[I(".check-icon",` + opacity: 0; + transform: scale(.5); + `),I(".line-icon",` + opacity: 1; + transform: scale(1); + `)])])]),H("checked, indeterminate",[I("&:focus:not(:active)",[P("checkbox-box",[j("border",` + border: var(--n-border-checked); + box-shadow: var(--n-box-shadow-focus); + `)])]),P("checkbox-box",` + background-color: var(--n-color-checked); + border-left: 0; + border-top: 0; + `,[j("border",{border:"var(--n-border-checked)"})])]),H("disabled",{cursor:"not-allowed"},[H("checked",[P("checkbox-box",` + background-color: var(--n-color-disabled-checked); + `,[j("border",{border:"var(--n-border-disabled-checked)"}),P("checkbox-icon",[I(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled-checked)"})])])]),P("checkbox-box",` + background-color: var(--n-color-disabled); + `,[j("border",` + border: var(--n-border-disabled); + `),P("checkbox-icon",[I(".check-icon, .line-icon",` + fill: var(--n-check-mark-color-disabled); + `)])]),j("label",` + color: var(--n-text-color-disabled); + `)]),P("checkbox-box-wrapper",` + position: relative; + width: var(--n-size); + flex-shrink: 0; + flex-grow: 0; + user-select: none; + -webkit-user-select: none; + `),P("checkbox-box",` + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + height: var(--n-size); + width: var(--n-size); + display: inline-block; + box-sizing: border-box; + border-radius: var(--n-border-radius); + background-color: var(--n-color); + transition: background-color 0.3s var(--n-bezier); + `,[j("border",` + transition: + border-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + border-radius: inherit; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + border: var(--n-border); + `),P("checkbox-icon",` + display: flex; + align-items: center; + justify-content: center; + position: absolute; + left: 1px; + right: 1px; + top: 1px; + bottom: 1px; + `,[I(".check-icon, .line-icon",` + width: 100%; + fill: var(--n-check-mark-color); + opacity: 0; + transform: scale(0.5); + transform-origin: center; + transition: + fill 0.3s var(--n-bezier), + transform 0.3s var(--n-bezier), + opacity 0.3s var(--n-bezier), + border-color 0.3s var(--n-bezier); + `),an({left:"1px",top:"1px"})])]),j("label",` + color: var(--n-text-color); + transition: color .3s var(--n-bezier); + user-select: none; + -webkit-user-select: none; + padding: var(--n-label-padding); + font-weight: var(--n-label-font-weight); + `,[I("&:empty",{display:"none"})])]),sa(P("checkbox",` + --n-merged-color-table: var(--n-color-table-modal); + `)),$d(P("checkbox",` + --n-merged-color-table: var(--n-color-table-popover); + `))]),qP=Object.assign(Object.assign({},Be.props),{size:String,checked:{type:[Boolean,String,Number],default:void 0},defaultChecked:{type:[Boolean,String,Number],default:!1},value:[String,Number],disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:String,focusable:{type:Boolean,default:!0},checkedValue:{type:[Boolean,String,Number],default:!0},uncheckedValue:{type:[Boolean,String,Number],default:!1},"onUpdate:checked":[Function,Array],onUpdateChecked:[Function,Array],privateInsideTable:Boolean,onChange:[Function,Array]}),lc=pe({name:"Checkbox",props:qP,setup(e){const t=Ee(Kv,null),n=E(null),{mergedClsPrefixRef:o,inlineThemeDisabled:r,mergedRtlRef:i,mergedComponentPropsRef:l}=Ye(e),a=E(e.defaultChecked),d=qt(we(e,"checked"),a),c=ot(()=>{if(t){const C=t.valueSetRef.value;return C&&e.value!==void 0?C.has(e.value):!1}else return d.value===e.checkedValue}),f=No(e,{mergedSize(C){var w,k;const{size:F}=e;if(F!==void 0)return F;if(t){const{value:_}=t.mergedSizeRef;if(_!==void 0)return _}if(C){const{mergedSize:_}=C;if(_!==void 0)return _.value}const M=(k=(w=l?.value)===null||w===void 0?void 0:w.Checkbox)===null||k===void 0?void 0:k.size;return M||"medium"},mergedDisabled(C){const{disabled:w}=e;if(w!==void 0)return w;if(t){if(t.disabledRef.value)return!0;const{maxRef:{value:k},checkedCountRef:F}=t;if(k!==void 0&&F.value>=k&&!c.value)return!0;const{minRef:{value:M}}=t;if(M!==void 0&&F.value<=M&&c.value)return!0}return C?C.disabled.value:!1}}),{mergedDisabledRef:v,mergedSizeRef:g}=f,u=Be("Checkbox","-checkbox",GP,Vv,e,o);function p(C){if(t&&e.value!==void 0)t.toggleCheckbox(!c.value,e.value);else{const{onChange:w,"onUpdate:checked":k,onUpdateChecked:F}=e,{nTriggerFormInput:M,nTriggerFormChange:_}=f,T=c.value?e.uncheckedValue:e.checkedValue;k&&me(k,T,C),F&&me(F,T,C),w&&me(w,T,C),M(),_(),a.value=T}}function b(C){v.value||p(C)}function m(C){if(!v.value)switch(C.key){case" ":case"Enter":p(C)}}function y(C){C.key===" "&&C.preventDefault()}const $={focus:()=>{var C;(C=n.value)===null||C===void 0||C.focus()},blur:()=>{var C;(C=n.value)===null||C===void 0||C.blur()}},S=Bt("Checkbox",i,o),x=O(()=>{const{value:C}=g,{common:{cubicBezierEaseInOut:w},self:{borderRadius:k,color:F,colorChecked:M,colorDisabled:_,colorTableHeader:T,colorTableHeaderModal:B,colorTableHeaderPopover:D,checkMarkColor:K,checkMarkColorDisabled:N,border:V,borderFocus:ie,borderDisabled:he,borderChecked:J,boxShadowFocus:re,textColor:ye,textColorDisabled:Z,checkMarkColorDisabledChecked:le,colorDisabledChecked:$e,borderDisabledChecked:ze,labelPadding:Ae,labelLineHeight:Te,labelFontWeight:ne,[de("fontSize",C)]:Oe,[de("size",C)]:z}}=u.value;return{"--n-label-line-height":Te,"--n-label-font-weight":ne,"--n-size":z,"--n-bezier":w,"--n-border-radius":k,"--n-border":V,"--n-border-checked":J,"--n-border-focus":ie,"--n-border-disabled":he,"--n-border-disabled-checked":ze,"--n-box-shadow-focus":re,"--n-color":F,"--n-color-checked":M,"--n-color-table":T,"--n-color-table-modal":B,"--n-color-table-popover":D,"--n-color-disabled":_,"--n-color-disabled-checked":$e,"--n-text-color":ye,"--n-text-color-disabled":Z,"--n-check-mark-color":K,"--n-check-mark-color-disabled":N,"--n-check-mark-color-disabled-checked":le,"--n-font-size":Oe,"--n-label-padding":Ae}}),R=r?vt("checkbox",O(()=>g.value[0]),x,e):void 0;return Object.assign(f,$,{rtlEnabled:S,selfRef:n,mergedClsPrefix:o,mergedDisabled:v,renderedChecked:c,mergedTheme:u,labelId:ar(),handleClick:b,handleKeyUp:m,handleKeyDown:y,cssVars:r?void 0:x,themeClass:R?.themeClass,onRender:R?.onRender})},render(){var e;const{$slots:t,renderedChecked:n,mergedDisabled:o,indeterminate:r,privateInsideTable:i,cssVars:l,labelId:a,label:s,mergedClsPrefix:d,focusable:c,handleKeyUp:f,handleKeyDown:v,handleClick:g}=this;(e=this.onRender)===null||e===void 0||e.call(this);const u=lt(t.default,p=>s||p?h("span",{class:`${d}-checkbox__label`,id:a},s||p):null);return h("div",{ref:"selfRef",class:[`${d}-checkbox`,this.themeClass,this.rtlEnabled&&`${d}-checkbox--rtl`,n&&`${d}-checkbox--checked`,o&&`${d}-checkbox--disabled`,r&&`${d}-checkbox--indeterminate`,i&&`${d}-checkbox--inside-table`,u&&`${d}-checkbox--show-label`],tabindex:o||!c?void 0:0,role:"checkbox","aria-checked":r?"mixed":n,"aria-labelledby":a,style:l,onKeyup:f,onKeydown:v,onClick:g,onMousedown:()=>{ct("selectstart",window,p=>{p.preventDefault()},{once:!0})}},h("div",{class:`${d}-checkbox-box-wrapper`}," ",h("div",{class:`${d}-checkbox-box`},h(vr,null,{default:()=>this.indeterminate?h("div",{key:"indeterminate",class:`${d}-checkbox-icon`},UP()):h("div",{key:"check",class:`${d}-checkbox-icon`},KP())}),h("div",{class:`${d}-checkbox-box__border`}))),u)}}),XP={abstract:Boolean,bordered:{type:Boolean,default:void 0},clsPrefix:String,locale:Object,dateLocale:Object,namespace:String,rtl:Array,tag:{type:String,default:"div"},hljs:Object,katex:Object,theme:Object,themeOverrides:Object,componentOptions:Object,icons:Object,breakpoints:Object,preflightStyleDisabled:Boolean,styleMountTarget:Object,inlineThemeDisabled:{type:Boolean,default:void 0},as:{type:String,validator:()=>(Zn("config-provider","`as` is deprecated, please use `tag` instead."),!0),default:void 0}},Uv=pe({name:"ConfigProvider",alias:["App"],props:XP,setup(e){const t=Ee(Fn,null),n=O(()=>{const{theme:p}=e;if(p===null)return;const b=t?.mergedThemeRef.value;return p===void 0?b:b===void 0?p:Object.assign({},b,p)}),o=O(()=>{const{themeOverrides:p}=e;if(p!==null){if(p===void 0)return t?.mergedThemeOverridesRef.value;{const b=t?.mergedThemeOverridesRef.value;return b===void 0?p:hi({},b,p)}}}),r=ot(()=>{const{namespace:p}=e;return p===void 0?t?.mergedNamespaceRef.value:p}),i=ot(()=>{const{bordered:p}=e;return p===void 0?t?.mergedBorderedRef.value:p}),l=O(()=>{const{icons:p}=e;return p===void 0?t?.mergedIconsRef.value:p}),a=O(()=>{const{componentOptions:p}=e;return p!==void 0?p:t?.mergedComponentPropsRef.value}),s=O(()=>{const{clsPrefix:p}=e;return p!==void 0?p:t?t.mergedClsPrefixRef.value:Il}),d=O(()=>{var p;const{rtl:b}=e;if(b===void 0)return t?.mergedRtlRef.value;const m={};for(const y of b)m[y.name]=_s(y),(p=y.peers)===null||p===void 0||p.forEach($=>{$.name in m||(m[$.name]=_s($))});return m}),c=O(()=>e.breakpoints||t?.mergedBreakpointsRef.value),f=e.inlineThemeDisabled||t?.inlineThemeDisabled,v=e.preflightStyleDisabled||t?.preflightStyleDisabled,g=e.styleMountTarget||t?.styleMountTarget,u=O(()=>{const{value:p}=n,{value:b}=o,m=b&&Object.keys(b).length!==0,y=p?.name;return y?m?`${y}-${Mi(JSON.stringify(o.value))}`:y:m?Mi(JSON.stringify(o.value)):""});return qe(Fn,{mergedThemeHashRef:u,mergedBreakpointsRef:c,mergedRtlRef:d,mergedIconsRef:l,mergedComponentPropsRef:a,mergedBorderedRef:i,mergedNamespaceRef:r,mergedClsPrefixRef:s,mergedLocaleRef:O(()=>{const{locale:p}=e;if(p!==null)return p===void 0?t?.mergedLocaleRef.value:p}),mergedDateLocaleRef:O(()=>{const{dateLocale:p}=e;if(p!==null)return p===void 0?t?.mergedDateLocaleRef.value:p}),mergedHljsRef:O(()=>{const{hljs:p}=e;return p===void 0?t?.mergedHljsRef.value:p}),mergedKatexRef:O(()=>{const{katex:p}=e;return p===void 0?t?.mergedKatexRef.value:p}),mergedThemeRef:n,mergedThemeOverridesRef:o,inlineThemeDisabled:f||!1,preflightStyleDisabled:v||!1,styleMountTarget:g}),{mergedClsPrefix:s,mergedBordered:i,mergedNamespace:r,mergedTheme:n,mergedThemeOverrides:o}},render(){var e,t,n,o;return this.abstract?(o=(n=this.$slots).default)===null||o===void 0?void 0:o.call(n):h(this.as||this.tag,{class:`${this.mergedClsPrefix||Il}-config-provider`},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))}});function YP(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}const ac={name:"Popselect",common:gt,peers:{Popover:Ur,InternalSelectMenu:oc},self:YP},Gv="n-popselect",ZP=P("popselect-menu",` + box-shadow: var(--n-menu-box-shadow); +`),sc={multiple:Boolean,value:{type:[String,Number,Array],default:null},cancelable:Boolean,options:{type:Array,default:()=>[]},size:String,scrollable:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onMouseenter:Function,onMouseleave:Function,renderLabel:Function,showCheckmark:{type:Boolean,default:void 0},nodeProps:Function,virtualScroll:Boolean,onChange:[Function,Array]},$f=Gi(sc),JP=pe({name:"PopselectPanel",props:sc,setup(e){const t=Ee(Gv),{mergedClsPrefixRef:n,inlineThemeDisabled:o,mergedComponentPropsRef:r}=Ye(e),i=O(()=>{var u,p;return e.size||((p=(u=r?.value)===null||u===void 0?void 0:u.Popselect)===null||p===void 0?void 0:p.size)||"medium"}),l=Be("Popselect","-pop-select",ZP,ac,t.props,n),a=O(()=>ba(e.options,jv("value","children")));function s(u,p){const{onUpdateValue:b,"onUpdate:value":m,onChange:y}=e;b&&me(b,u,p),m&&me(m,u,p),y&&me(y,u,p)}function d(u){f(u.key)}function c(u){!yn(u,"action")&&!yn(u,"empty")&&!yn(u,"header")&&u.preventDefault()}function f(u){const{value:{getNode:p}}=a;if(e.multiple)if(Array.isArray(e.value)){const b=[],m=[];let y=!0;e.value.forEach($=>{if($===u){y=!1;return}const S=p($);S&&(b.push(S.key),m.push(S.rawNode))}),y&&(b.push(u),m.push(p(u).rawNode)),s(b,m)}else{const b=p(u);b&&s([u],[b.rawNode])}else if(e.value===u&&e.cancelable)s(null,null);else{const b=p(u);b&&s(u,b.rawNode);const{"onUpdate:show":m,onUpdateShow:y}=t.props;m&&me(m,!1),y&&me(y,!1),t.setShow(!1)}Rt(()=>{t.syncPosition()})}tt(we(e,"options"),()=>{Rt(()=>{t.syncPosition()})});const v=O(()=>{const{self:{menuBoxShadow:u}}=l.value;return{"--n-menu-box-shadow":u}}),g=o?vt("select",void 0,v,t.props):void 0;return{mergedTheme:t.mergedThemeRef,mergedClsPrefix:n,treeMate:a,handleToggle:d,handleMenuMousedown:c,cssVars:o?void 0:v,themeClass:g?.themeClass,onRender:g?.onRender,mergedSize:i,scrollbarProps:t.props.scrollbarProps}},render(){var e;return(e=this.onRender)===null||e===void 0||e.call(this),h(Ev,{clsPrefix:this.mergedClsPrefix,focusable:!0,nodeProps:this.nodeProps,class:[`${this.mergedClsPrefix}-popselect-menu`,this.themeClass],style:this.cssVars,theme:this.mergedTheme.peers.InternalSelectMenu,themeOverrides:this.mergedTheme.peerOverrides.InternalSelectMenu,multiple:this.multiple,treeMate:this.treeMate,size:this.mergedSize,value:this.value,virtualScroll:this.virtualScroll,scrollable:this.scrollable,scrollbarProps:this.scrollbarProps,renderLabel:this.renderLabel,onToggle:this.handleToggle,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseenter,onMousedown:this.handleMenuMousedown,showCheckmark:this.showCheckmark},{header:()=>{var t,n;return((n=(t=this.$slots).header)===null||n===void 0?void 0:n.call(t))||[]},action:()=>{var t,n;return((n=(t=this.$slots).action)===null||n===void 0?void 0:n.call(t))||[]},empty:()=>{var t,n;return((n=(t=this.$slots).empty)===null||n===void 0?void 0:n.call(t))||[]}})}}),QP=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Be.props),dr(Nr,["showArrow","arrow"])),{placement:Object.assign(Object.assign({},Nr.placement),{default:"bottom"}),trigger:{type:String,default:"hover"}}),sc),{scrollbarProps:Object}),e$=pe({name:"Popselect",props:QP,slots:Object,inheritAttrs:!1,__popover__:!0,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=Be("Popselect","-popselect",void 0,ac,e,t),o=E(null);function r(){var a;(a=o.value)===null||a===void 0||a.syncPosition()}function i(a){var s;(s=o.value)===null||s===void 0||s.setShow(a)}return qe(Gv,{props:e,mergedThemeRef:n,syncPosition:r,setShow:i}),Object.assign(Object.assign({},{syncPosition:r,setShow:i}),{popoverInstRef:o,mergedTheme:n})},render(){const{mergedTheme:e}=this,t={theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:{padding:"0"},ref:"popoverInstRef",internalRenderBody:(n,o,r,i,l)=>{const{$attrs:a}=this;return h(JP,Object.assign({},a,{class:[a.class,n],style:[a.style,...r]},Eo(this.$props,$f),{ref:qp(o),onMouseenter:Si([i,a.onMouseenter]),onMouseleave:Si([l,a.onMouseleave])}),{header:()=>{var s,d;return(d=(s=this.$slots).header)===null||d===void 0?void 0:d.call(s)},action:()=>{var s,d;return(d=(s=this.$slots).action)===null||d===void 0?void 0:d.call(s)},empty:()=>{var s,d;return(d=(s=this.$slots).empty)===null||d===void 0?void 0:d.call(s)}})}};return h(Zi,Object.assign({},dr(this.$props,$f),t,{internalDeactivateImmediately:!0}),{trigger:()=>{var n,o;return(o=(n=this.$slots).default)===null||o===void 0?void 0:o.call(n)}})}});function t$(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}const qv={name:"Select",common:gt,peers:{InternalSelection:Iv,InternalSelectMenu:oc},self:t$},n$=I([P("select",` + z-index: auto; + outline: none; + width: 100%; + position: relative; + font-weight: var(--n-font-weight); + `),P("select-menu",` + margin: 4px 0; + box-shadow: var(--n-menu-box-shadow); + `,[Yi({originalTransition:"background-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier)"})])]),o$=Object.assign(Object.assign({},Be.props),{to:Yn.propTo,bordered:{type:Boolean,default:void 0},clearable:Boolean,clearCreatedOptionsOnClear:{type:Boolean,default:!0},clearFilterAfterSelect:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},defaultValue:{type:[String,Number,Array],default:null},keyboard:{type:Boolean,default:!0},value:[String,Number,Array],placeholder:String,menuProps:Object,multiple:Boolean,size:String,menuSize:{type:String},filterable:Boolean,disabled:{type:Boolean,default:void 0},remote:Boolean,loading:Boolean,filter:Function,placement:{type:String,default:"bottom-start"},widthMode:{type:String,default:"trigger"},tag:Boolean,onCreate:Function,fallbackOption:{type:[Function,Boolean],default:void 0},show:{type:Boolean,default:void 0},showArrow:{type:Boolean,default:!0},maxTagCount:[Number,String],ellipsisTagPopoverProps:Object,consistentMenuWidth:{type:Boolean,default:!0},virtualScroll:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},childrenField:{type:String,default:"children"},renderLabel:Function,renderOption:Function,renderTag:Function,"onUpdate:value":[Function,Array],inputProps:Object,nodeProps:Function,ignoreComposition:{type:Boolean,default:!0},showOnFocus:Boolean,onUpdateValue:[Function,Array],onBlur:[Function,Array],onClear:[Function,Array],onFocus:[Function,Array],onScroll:[Function,Array],onSearch:[Function,Array],onUpdateShow:[Function,Array],"onUpdate:show":[Function,Array],displayDirective:{type:String,default:"show"},resetMenuOnOptionsChange:{type:Boolean,default:!0},status:String,showCheckmark:{type:Boolean,default:!0},scrollbarProps:Object,onChange:[Function,Array],items:Array}),zo=pe({name:"Select",props:o$,slots:Object,setup(e){const{mergedClsPrefixRef:t,mergedBorderedRef:n,namespaceRef:o,inlineThemeDisabled:r,mergedComponentPropsRef:i}=Ye(e),l=Be("Select","-select",n$,qv,e,t),a=E(e.defaultValue),d=qt(we(e,"value"),a),c=E(!1),f=E(""),v=Bl(e,["items","options"]),g=E([]),u=E([]),p=O(()=>u.value.concat(g.value).concat(v.value)),b=O(()=>{const{filter:A}=e;if(A)return A;const{labelField:X,valueField:be}=e;return(_e,xe)=>{if(!xe)return!1;const ke=xe[X];if(typeof ke=="string")return gs(_e,ke);const Ce=xe[be];return typeof Ce=="string"?gs(_e,Ce):typeof Ce=="number"?gs(_e,String(Ce)):!1}}),m=O(()=>{if(e.remote)return v.value;{const{value:A}=p,{value:X}=f;return!X.length||!e.filterable?A:zP(A,b.value,X,e.childrenField)}}),y=O(()=>{const{valueField:A,childrenField:X}=e,be=jv(A,X);return ba(m.value,be)}),$=O(()=>TP(p.value,e.valueField,e.childrenField)),S=E(!1),x=qt(we(e,"show"),S),R=E(null),C=E(null),w=E(null),{localeRef:k}=Xi("Select"),F=O(()=>{var A;return(A=e.placeholder)!==null&&A!==void 0?A:k.value.placeholder}),M=[],_=E(new Map),T=O(()=>{const{fallbackOption:A}=e;if(A===void 0){const{labelField:X,valueField:be}=e;return _e=>({[X]:String(_e),[be]:_e})}return A===!1?!1:X=>Object.assign(A(X),{value:X})});function B(A){const X=e.remote,{value:be}=_,{value:_e}=$,{value:xe}=T,ke=[];return A.forEach(Ce=>{if(_e.has(Ce))ke.push(_e.get(Ce));else if(X&&be.has(Ce))ke.push(be.get(Ce));else if(xe){const Fe=xe(Ce);Fe&&ke.push(Fe)}}),ke}const D=O(()=>{if(e.multiple){const{value:A}=d;return Array.isArray(A)?B(A):[]}return null}),K=O(()=>{const{value:A}=d;return!e.multiple&&!Array.isArray(A)?A===null?null:B([A])[0]||null:null}),N=No(e,{mergedSize:A=>{var X,be;const{size:_e}=e;if(_e)return _e;const{mergedSize:xe}=A||{};if(xe?.value)return xe.value;const ke=(be=(X=i?.value)===null||X===void 0?void 0:X.Select)===null||be===void 0?void 0:be.size;return ke||"medium"}}),{mergedSizeRef:V,mergedDisabledRef:ie,mergedStatusRef:he}=N;function J(A,X){const{onChange:be,"onUpdate:value":_e,onUpdateValue:xe}=e,{nTriggerFormChange:ke,nTriggerFormInput:Ce}=N;be&&me(be,A,X),xe&&me(xe,A,X),_e&&me(_e,A,X),a.value=A,ke(),Ce()}function re(A){const{onBlur:X}=e,{nTriggerFormBlur:be}=N;X&&me(X,A),be()}function ye(){const{onClear:A}=e;A&&me(A)}function Z(A){const{onFocus:X,showOnFocus:be}=e,{nTriggerFormFocus:_e}=N;X&&me(X,A),_e(),be&&Te()}function le(A){const{onSearch:X}=e;X&&me(X,A)}function $e(A){const{onScroll:X}=e;X&&me(X,A)}function ze(){var A;const{remote:X,multiple:be}=e;if(X){const{value:_e}=_;if(be){const{valueField:xe}=e;(A=D.value)===null||A===void 0||A.forEach(ke=>{_e.set(ke[xe],ke)})}else{const xe=K.value;xe&&_e.set(xe[e.valueField],xe)}}}function Ae(A){const{onUpdateShow:X,"onUpdate:show":be}=e;X&&me(X,A),be&&me(be,A),S.value=A}function Te(){ie.value||(Ae(!0),S.value=!0,e.filterable&&at())}function ne(){Ae(!1)}function Oe(){f.value="",u.value=M}const z=E(!1);function L(){e.filterable&&(z.value=!0)}function ee(){e.filterable&&(z.value=!1,x.value||Oe())}function se(){ie.value||(x.value?e.filterable?at():ne():Te())}function ae(A){var X,be;!((be=(X=w.value)===null||X===void 0?void 0:X.selfRef)===null||be===void 0)&&be.contains(A.relatedTarget)||(c.value=!1,re(A),ne())}function Q(A){Z(A),c.value=!0}function ue(){c.value=!0}function ve(A){var X;!((X=R.value)===null||X===void 0)&&X.$el.contains(A.relatedTarget)||(c.value=!1,re(A),ne())}function fe(){var A;(A=R.value)===null||A===void 0||A.focus(),ne()}function oe(A){var X;x.value&&(!((X=R.value)===null||X===void 0)&&X.$el.contains(Dr(A))||ne())}function q(A){if(!Array.isArray(A))return[];if(T.value)return Array.from(A);{const{remote:X}=e,{value:be}=$;if(X){const{value:_e}=_;return A.filter(xe=>be.has(xe)||_e.has(xe))}else return A.filter(_e=>be.has(_e))}}function G(A){W(A.rawNode)}function W(A){if(ie.value)return;const{tag:X,remote:be,clearFilterAfterSelect:_e,valueField:xe}=e;if(X&&!be){const{value:ke}=u,Ce=ke[0]||null;if(Ce){const Fe=g.value;Fe.length?Fe.push(Ce):g.value=[Ce],u.value=M}}if(be&&_.value.set(A[xe],A),e.multiple){const ke=q(d.value),Ce=ke.findIndex(Fe=>Fe===A[xe]);if(~Ce){if(ke.splice(Ce,1),X&&!be){const Fe=Y(A[xe]);~Fe&&(g.value.splice(Fe,1),_e&&(f.value=""))}}else ke.push(A[xe]),_e&&(f.value="");J(ke,B(ke))}else{if(X&&!be){const ke=Y(A[xe]);~ke?g.value=[g.value[ke]]:g.value=M}Xe(),ne(),J(A[xe],A)}}function Y(A){return g.value.findIndex(be=>be[e.valueField]===A)}function Se(A){x.value||Te();const{value:X}=A.target;f.value=X;const{tag:be,remote:_e}=e;if(le(X),be&&!_e){if(!X){u.value=M;return}const{onCreate:xe}=e,ke=xe?xe(X):{[e.labelField]:X,[e.valueField]:X},{valueField:Ce,labelField:Fe}=e;v.value.some(Ze=>Ze[Ce]===ke[Ce]||Ze[Fe]===ke[Fe])||g.value.some(Ze=>Ze[Ce]===ke[Ce]||Ze[Fe]===ke[Fe])?u.value=M:u.value=[ke]}}function Le(A){A.stopPropagation();const{multiple:X,tag:be,remote:_e,clearCreatedOptionsOnClear:xe}=e;!X&&e.filterable&&ne(),be&&!_e&&xe&&(g.value=M),ye(),X?J([],[]):J(null,null)}function Ie(A){!yn(A,"action")&&!yn(A,"empty")&&!yn(A,"header")&&A.preventDefault()}function De(A){$e(A)}function Ge(A){var X,be,_e,xe,ke;if(!e.keyboard){A.preventDefault();return}switch(A.key){case" ":if(e.filterable)break;A.preventDefault();case"Enter":if(!(!((X=R.value)===null||X===void 0)&&X.isComposing)){if(x.value){const Ce=(be=w.value)===null||be===void 0?void 0:be.getPendingTmNode();Ce?G(Ce):e.filterable||(ne(),Xe())}else if(Te(),e.tag&&z.value){const Ce=u.value[0];if(Ce){const Fe=Ce[e.valueField],{value:Ze}=d;e.multiple&&Array.isArray(Ze)&&Ze.includes(Fe)||W(Ce)}}}A.preventDefault();break;case"ArrowUp":if(A.preventDefault(),e.loading)return;x.value&&((_e=w.value)===null||_e===void 0||_e.prev());break;case"ArrowDown":if(A.preventDefault(),e.loading)return;x.value?(xe=w.value)===null||xe===void 0||xe.next():Te();break;case"Escape":x.value&&(Px(A),ne()),(ke=R.value)===null||ke===void 0||ke.focus();break}}function Xe(){var A;(A=R.value)===null||A===void 0||A.focus()}function at(){var A;(A=R.value)===null||A===void 0||A.focusInput()}function mt(){var A;x.value&&((A=C.value)===null||A===void 0||A.syncPosition())}ze(),tt(we(e,"options"),ze);const ft={focus:()=>{var A;(A=R.value)===null||A===void 0||A.focus()},focusInput:()=>{var A;(A=R.value)===null||A===void 0||A.focusInput()},blur:()=>{var A;(A=R.value)===null||A===void 0||A.blur()},blurInput:()=>{var A;(A=R.value)===null||A===void 0||A.blurInput()}},Re=O(()=>{const{self:{menuBoxShadow:A}}=l.value;return{"--n-menu-box-shadow":A}}),te=r?vt("select",void 0,Re,e):void 0;return Object.assign(Object.assign({},ft),{mergedStatus:he,mergedClsPrefix:t,mergedBordered:n,namespace:o,treeMate:y,isMounted:jr(),triggerRef:R,menuRef:w,pattern:f,uncontrolledShow:S,mergedShow:x,adjustedTo:Yn(e),uncontrolledValue:a,mergedValue:d,followerRef:C,localizedPlaceholder:F,selectedOption:K,selectedOptions:D,mergedSize:V,mergedDisabled:ie,focused:c,activeWithoutMenuOpen:z,inlineThemeDisabled:r,onTriggerInputFocus:L,onTriggerInputBlur:ee,handleTriggerOrMenuResize:mt,handleMenuFocus:ue,handleMenuBlur:ve,handleMenuTabOut:fe,handleTriggerClick:se,handleToggle:G,handleDeleteOption:W,handlePatternInput:Se,handleClear:Le,handleTriggerBlur:ae,handleTriggerFocus:Q,handleKeydown:Ge,handleMenuAfterLeave:Oe,handleMenuClickOutside:oe,handleMenuScroll:De,handleMenuKeydown:Ge,handleMenuMousedown:Ie,mergedTheme:l,cssVars:r?void 0:Re,themeClass:te?.themeClass,onRender:te?.onRender})},render(){return h("div",{class:`${this.mergedClsPrefix}-select`},h(Ed,null,{default:()=>[h(Md,null,{default:()=>h(pP,{ref:"triggerRef",inlineThemeDisabled:this.inlineThemeDisabled,status:this.mergedStatus,inputProps:this.inputProps,clsPrefix:this.mergedClsPrefix,showArrow:this.showArrow,maxTagCount:this.maxTagCount,ellipsisTagPopoverProps:this.ellipsisTagPopoverProps,bordered:this.mergedBordered,active:this.activeWithoutMenuOpen||this.mergedShow,pattern:this.pattern,placeholder:this.localizedPlaceholder,selectedOption:this.selectedOption,selectedOptions:this.selectedOptions,multiple:this.multiple,renderTag:this.renderTag,renderLabel:this.renderLabel,filterable:this.filterable,clearable:this.clearable,disabled:this.mergedDisabled,size:this.mergedSize,theme:this.mergedTheme.peers.InternalSelection,labelField:this.labelField,valueField:this.valueField,themeOverrides:this.mergedTheme.peerOverrides.InternalSelection,loading:this.loading,focused:this.focused,onClick:this.handleTriggerClick,onDeleteOption:this.handleDeleteOption,onPatternInput:this.handlePatternInput,onClear:this.handleClear,onBlur:this.handleTriggerBlur,onFocus:this.handleTriggerFocus,onKeydown:this.handleKeydown,onPatternBlur:this.onTriggerInputBlur,onPatternFocus:this.onTriggerInputFocus,onResize:this.handleTriggerOrMenuResize,ignoreComposition:this.ignoreComposition},{arrow:()=>{var e,t;return[(t=(e=this.$slots).arrow)===null||t===void 0?void 0:t.call(e)]}})}),h(Ad,{ref:"followerRef",show:this.mergedShow,to:this.adjustedTo,teleportDisabled:this.adjustedTo===Yn.tdkey,containerClass:this.namespace,width:this.consistentMenuWidth?"target":void 0,minWidth:"target",placement:this.placement},{default:()=>h(pn,{name:"fade-in-scale-up-transition",appear:this.isMounted,onAfterLeave:this.handleMenuAfterLeave},{default:()=>{var e,t,n;return this.mergedShow||this.displayDirective==="show"?((e=this.onRender)===null||e===void 0||e.call(this),qn(h(Ev,Object.assign({},this.menuProps,{ref:"menuRef",onResize:this.handleTriggerOrMenuResize,inlineThemeDisabled:this.inlineThemeDisabled,virtualScroll:this.consistentMenuWidth&&this.virtualScroll,class:[`${this.mergedClsPrefix}-select-menu`,this.themeClass,(t=this.menuProps)===null||t===void 0?void 0:t.class],clsPrefix:this.mergedClsPrefix,focusable:!0,labelField:this.labelField,valueField:this.valueField,autoPending:!0,nodeProps:this.nodeProps,theme:this.mergedTheme.peers.InternalSelectMenu,themeOverrides:this.mergedTheme.peerOverrides.InternalSelectMenu,treeMate:this.treeMate,multiple:this.multiple,size:this.menuSize,renderOption:this.renderOption,renderLabel:this.renderLabel,value:this.mergedValue,style:[(n=this.menuProps)===null||n===void 0?void 0:n.style,this.cssVars],onToggle:this.handleToggle,onScroll:this.handleMenuScroll,onFocus:this.handleMenuFocus,onBlur:this.handleMenuBlur,onKeydown:this.handleMenuKeydown,onTabOut:this.handleMenuTabOut,onMousedown:this.handleMenuMousedown,show:this.mergedShow,showCheckmark:this.showCheckmark,resetMenuOnOptionsChange:this.resetMenuOnOptionsChange,scrollbarProps:this.scrollbarProps}),{empty:()=>{var o,r;return[(r=(o=this.$slots).empty)===null||r===void 0?void 0:r.call(o)]},header:()=>{var o,r;return[(r=(o=this.$slots).header)===null||r===void 0?void 0:r.call(o)]},action:()=>{var o,r;return[(r=(o=this.$slots).action)===null||r===void 0?void 0:r.call(o)]}}),this.displayDirective==="show"?[[Fo,this.mergedShow],[Ii,this.handleMenuClickOutside,void 0,{capture:!0}]]:[[Ii,this.handleMenuClickOutside,void 0,{capture:!0}]])):null}})})]}))}}),r$={itemPaddingSmall:"0 4px",itemMarginSmall:"0 0 0 8px",itemMarginSmallRtl:"0 8px 0 0",itemPaddingMedium:"0 4px",itemMarginMedium:"0 0 0 8px",itemMarginMediumRtl:"0 8px 0 0",itemPaddingLarge:"0 4px",itemMarginLarge:"0 0 0 8px",itemMarginLargeRtl:"0 8px 0 0",buttonIconSizeSmall:"14px",buttonIconSizeMedium:"16px",buttonIconSizeLarge:"18px",inputWidthSmall:"60px",selectWidthSmall:"unset",inputMarginSmall:"0 0 0 8px",inputMarginSmallRtl:"0 8px 0 0",selectMarginSmall:"0 0 0 8px",prefixMarginSmall:"0 8px 0 0",suffixMarginSmall:"0 0 0 8px",inputWidthMedium:"60px",selectWidthMedium:"unset",inputMarginMedium:"0 0 0 8px",inputMarginMediumRtl:"0 8px 0 0",selectMarginMedium:"0 0 0 8px",prefixMarginMedium:"0 8px 0 0",suffixMarginMedium:"0 0 0 8px",inputWidthLarge:"60px",selectWidthLarge:"unset",inputMarginLarge:"0 0 0 8px",inputMarginLargeRtl:"0 8px 0 0",selectMarginLarge:"0 0 0 8px",prefixMarginLarge:"0 8px 0 0",suffixMarginLarge:"0 0 0 8px"};function i$(e){const{textColor2:t,primaryColor:n,primaryColorHover:o,primaryColorPressed:r,inputColorDisabled:i,textColorDisabled:l,borderColor:a,borderRadius:s,fontSizeTiny:d,fontSizeSmall:c,fontSizeMedium:f,heightTiny:v,heightSmall:g,heightMedium:u}=e;return Object.assign(Object.assign({},r$),{buttonColor:"#0000",buttonColorHover:"#0000",buttonColorPressed:"#0000",buttonBorder:`1px solid ${a}`,buttonBorderHover:`1px solid ${a}`,buttonBorderPressed:`1px solid ${a}`,buttonIconColor:t,buttonIconColorHover:t,buttonIconColorPressed:t,itemTextColor:t,itemTextColorHover:o,itemTextColorPressed:r,itemTextColorActive:n,itemTextColorDisabled:l,itemColor:"#0000",itemColorHover:"#0000",itemColorPressed:"#0000",itemColorActive:"#0000",itemColorActiveHover:"#0000",itemColorDisabled:i,itemBorder:"1px solid #0000",itemBorderHover:"1px solid #0000",itemBorderPressed:"1px solid #0000",itemBorderActive:`1px solid ${n}`,itemBorderDisabled:`1px solid ${a}`,itemBorderRadius:s,itemSizeSmall:v,itemSizeMedium:g,itemSizeLarge:u,itemFontSizeSmall:d,itemFontSizeMedium:c,itemFontSizeLarge:f,jumperFontSizeSmall:d,jumperFontSizeMedium:c,jumperFontSizeLarge:f,jumperTextColor:t,jumperTextColorDisabled:l})}const Xv={name:"Pagination",common:gt,peers:{Select:qv,Input:Dv,Popselect:ac},self:i$},_f=` + background: var(--n-item-color-hover); + color: var(--n-item-text-color-hover); + border: var(--n-item-border-hover); +`,zf=[H("button",` + background: var(--n-button-color-hover); + border: var(--n-button-border-hover); + color: var(--n-button-icon-color-hover); + `)],l$=P("pagination",` + display: flex; + vertical-align: middle; + font-size: var(--n-item-font-size); + flex-wrap: nowrap; +`,[P("pagination-prefix",` + display: flex; + align-items: center; + margin: var(--n-prefix-margin); + `),P("pagination-suffix",` + display: flex; + align-items: center; + margin: var(--n-suffix-margin); + `),I("> *:not(:first-child)",` + margin: var(--n-item-margin); + `),P("select",` + width: var(--n-select-width); + `),I("&.transition-disabled",[P("pagination-item","transition: none!important;")]),P("pagination-quick-jumper",` + white-space: nowrap; + display: flex; + color: var(--n-jumper-text-color); + transition: color .3s var(--n-bezier); + align-items: center; + font-size: var(--n-jumper-font-size); + `,[P("input",` + margin: var(--n-input-margin); + width: var(--n-input-width); + `)]),P("pagination-item",` + position: relative; + cursor: pointer; + user-select: none; + -webkit-user-select: none; + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + min-width: var(--n-item-size); + height: var(--n-item-size); + padding: var(--n-item-padding); + background-color: var(--n-item-color); + color: var(--n-item-text-color); + border-radius: var(--n-item-border-radius); + border: var(--n-item-border); + fill: var(--n-button-icon-color); + transition: + color .3s var(--n-bezier), + border-color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + fill .3s var(--n-bezier); + `,[H("button",` + background: var(--n-button-color); + color: var(--n-button-icon-color); + border: var(--n-button-border); + padding: 0; + `,[P("base-icon",` + font-size: var(--n-button-icon-size); + `)]),dt("disabled",[H("hover",_f,zf),I("&:hover",_f,zf),I("&:active",` + background: var(--n-item-color-pressed); + color: var(--n-item-text-color-pressed); + border: var(--n-item-border-pressed); + `,[H("button",` + background: var(--n-button-color-pressed); + border: var(--n-button-border-pressed); + color: var(--n-button-icon-color-pressed); + `)]),H("active",` + background: var(--n-item-color-active); + color: var(--n-item-text-color-active); + border: var(--n-item-border-active); + `,[I("&:hover",` + background: var(--n-item-color-active-hover); + `)])]),H("disabled",` + cursor: not-allowed; + color: var(--n-item-text-color-disabled); + `,[H("active, button",` + background-color: var(--n-item-color-disabled); + border: var(--n-item-border-disabled); + `)])]),H("disabled",` + cursor: not-allowed; + `,[P("pagination-quick-jumper",` + color: var(--n-jumper-text-color-disabled); + `)]),H("simple",` + display: flex; + align-items: center; + flex-wrap: nowrap; + `,[P("pagination-quick-jumper",[P("input",` + margin: 0; + `)])])]);function Yv(e){var t;if(!e)return 10;const{defaultPageSize:n}=e;if(n!==void 0)return n;const o=(t=e.pageSizes)===null||t===void 0?void 0:t[0];return typeof o=="number"?o:o?.value||10}function a$(e,t,n,o){let r=!1,i=!1,l=1,a=t;if(t===1)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:a,fastBackwardTo:l,items:[{type:"page",label:1,active:e===1,mayBeFastBackward:!1,mayBeFastForward:!1}]};if(t===2)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:a,fastBackwardTo:l,items:[{type:"page",label:1,active:e===1,mayBeFastBackward:!1,mayBeFastForward:!1},{type:"page",label:2,active:e===2,mayBeFastBackward:!0,mayBeFastForward:!1}]};const s=1,d=t;let c=e,f=e;const v=(n-5)/2;f+=Math.ceil(v),f=Math.min(Math.max(f,s+n-3),d-2),c-=Math.floor(v),c=Math.max(Math.min(c,d-n+3),s+2);let g=!1,u=!1;c>s+2&&(g=!0),f=s+1&&p.push({type:"page",label:s+1,mayBeFastBackward:!0,mayBeFastForward:!1,active:e===s+1});for(let b=c;b<=f;++b)p.push({type:"page",label:b,mayBeFastBackward:!1,mayBeFastForward:!1,active:e===b});return u?(i=!0,a=f+1,p.push({type:"fast-forward",active:!1,label:void 0,options:o?Tf(f+1,d-1):null})):f===d-2&&p[p.length-1].label!==d-1&&p.push({type:"page",mayBeFastForward:!0,mayBeFastBackward:!1,label:d-1,active:e===d-1}),p[p.length-1].label!==d&&p.push({type:"page",mayBeFastForward:!1,mayBeFastBackward:!1,label:d,active:e===d}),{hasFastBackward:r,hasFastForward:i,fastBackwardTo:l,fastForwardTo:a,items:p}}function Tf(e,t){const n=[];for(let o=e;o<=t;++o)n.push({label:`${o}`,value:o});return n}const s$=Object.assign(Object.assign({},Be.props),{simple:Boolean,page:Number,defaultPage:{type:Number,default:1},itemCount:Number,pageCount:Number,defaultPageCount:{type:Number,default:1},showSizePicker:Boolean,pageSize:Number,defaultPageSize:Number,pageSizes:{type:Array,default(){return[10]}},showQuickJumper:Boolean,size:String,disabled:Boolean,pageSlot:{type:Number,default:9},selectProps:Object,prev:Function,next:Function,goto:Function,prefix:Function,suffix:Function,label:Function,displayOrder:{type:Array,default:["pages","size-picker","quick-jumper"]},to:Yn.propTo,showQuickJumpDropdown:{type:Boolean,default:!0},scrollbarProps:Object,"onUpdate:page":[Function,Array],onUpdatePage:[Function,Array],"onUpdate:pageSize":[Function,Array],onUpdatePageSize:[Function,Array],onPageSizeChange:[Function,Array],onChange:[Function,Array]}),d$=pe({name:"Pagination",props:s$,slots:Object,setup(e){const{mergedComponentPropsRef:t,mergedClsPrefixRef:n,inlineThemeDisabled:o,mergedRtlRef:r}=Ye(e),i=O(()=>{var ne,Oe;return e.size||((Oe=(ne=t?.value)===null||ne===void 0?void 0:ne.Pagination)===null||Oe===void 0?void 0:Oe.size)||"medium"}),l=Be("Pagination","-pagination",l$,Xv,e,n),{localeRef:a}=Xi("Pagination"),s=E(null),d=E(e.defaultPage),c=E(Yv(e)),f=qt(we(e,"page"),d),v=qt(we(e,"pageSize"),c),g=O(()=>{const{itemCount:ne}=e;if(ne!==void 0)return Math.max(1,Math.ceil(ne/v.value));const{pageCount:Oe}=e;return Oe!==void 0?Math.max(Oe,1):1}),u=E("");en(()=>{e.simple,u.value=String(f.value)});const p=E(!1),b=E(!1),m=E(!1),y=E(!1),$=()=>{e.disabled||(p.value=!0,K())},S=()=>{e.disabled||(p.value=!1,K())},x=()=>{b.value=!0,K()},R=()=>{b.value=!1,K()},C=ne=>{N(ne)},w=O(()=>a$(f.value,g.value,e.pageSlot,e.showQuickJumpDropdown));en(()=>{w.value.hasFastBackward?w.value.hasFastForward||(p.value=!1,m.value=!1):(b.value=!1,y.value=!1)});const k=O(()=>{const ne=a.value.selectionSuffix;return e.pageSizes.map(Oe=>typeof Oe=="number"?{label:`${Oe} / ${ne}`,value:Oe}:Oe)}),F=O(()=>{var ne,Oe;return((Oe=(ne=t?.value)===null||ne===void 0?void 0:ne.Pagination)===null||Oe===void 0?void 0:Oe.inputSize)||Iu(i.value)}),M=O(()=>{var ne,Oe;return((Oe=(ne=t?.value)===null||ne===void 0?void 0:ne.Pagination)===null||Oe===void 0?void 0:Oe.selectSize)||Iu(i.value)}),_=O(()=>(f.value-1)*v.value),T=O(()=>{const ne=f.value*v.value-1,{itemCount:Oe}=e;return Oe!==void 0&&ne>Oe-1?Oe-1:ne}),B=O(()=>{const{itemCount:ne}=e;return ne!==void 0?ne:(e.pageCount||1)*v.value}),D=Bt("Pagination",r,n);function K(){Rt(()=>{var ne;const{value:Oe}=s;Oe&&(Oe.classList.add("transition-disabled"),(ne=s.value)===null||ne===void 0||ne.offsetWidth,Oe.classList.remove("transition-disabled"))})}function N(ne){if(ne===f.value)return;const{"onUpdate:page":Oe,onUpdatePage:z,onChange:L,simple:ee}=e;Oe&&me(Oe,ne),z&&me(z,ne),L&&me(L,ne),d.value=ne,ee&&(u.value=String(ne))}function V(ne){if(ne===v.value)return;const{"onUpdate:pageSize":Oe,onUpdatePageSize:z,onPageSizeChange:L}=e;Oe&&me(Oe,ne),z&&me(z,ne),L&&me(L,ne),c.value=ne,g.value{f.value,v.value,K()});const Ae=O(()=>{const ne=i.value,{self:{buttonBorder:Oe,buttonBorderHover:z,buttonBorderPressed:L,buttonIconColor:ee,buttonIconColorHover:se,buttonIconColorPressed:ae,itemTextColor:Q,itemTextColorHover:ue,itemTextColorPressed:ve,itemTextColorActive:fe,itemTextColorDisabled:oe,itemColor:q,itemColorHover:G,itemColorPressed:W,itemColorActive:Y,itemColorActiveHover:Se,itemColorDisabled:Le,itemBorder:Ie,itemBorderHover:De,itemBorderPressed:Ge,itemBorderActive:Xe,itemBorderDisabled:at,itemBorderRadius:mt,jumperTextColor:ft,jumperTextColorDisabled:Re,buttonColor:te,buttonColorHover:A,buttonColorPressed:X,[de("itemPadding",ne)]:be,[de("itemMargin",ne)]:_e,[de("inputWidth",ne)]:xe,[de("selectWidth",ne)]:ke,[de("inputMargin",ne)]:Ce,[de("selectMargin",ne)]:Fe,[de("jumperFontSize",ne)]:Ze,[de("prefixMargin",ne)]:Lt,[de("suffixMargin",ne)]:Et,[de("itemSize",ne)]:Dt,[de("buttonIconSize",ne)]:zt,[de("itemFontSize",ne)]:Ht,[`${de("itemMargin",ne)}Rtl`]:on,[`${de("inputMargin",ne)}Rtl`]:Nt},common:{cubicBezierEaseInOut:Xt}}=l.value;return{"--n-prefix-margin":Lt,"--n-suffix-margin":Et,"--n-item-font-size":Ht,"--n-select-width":ke,"--n-select-margin":Fe,"--n-input-width":xe,"--n-input-margin":Ce,"--n-input-margin-rtl":Nt,"--n-item-size":Dt,"--n-item-text-color":Q,"--n-item-text-color-disabled":oe,"--n-item-text-color-hover":ue,"--n-item-text-color-active":fe,"--n-item-text-color-pressed":ve,"--n-item-color":q,"--n-item-color-hover":G,"--n-item-color-disabled":Le,"--n-item-color-active":Y,"--n-item-color-active-hover":Se,"--n-item-color-pressed":W,"--n-item-border":Ie,"--n-item-border-hover":De,"--n-item-border-disabled":at,"--n-item-border-active":Xe,"--n-item-border-pressed":Ge,"--n-item-padding":be,"--n-item-border-radius":mt,"--n-bezier":Xt,"--n-jumper-font-size":Ze,"--n-jumper-text-color":ft,"--n-jumper-text-color-disabled":Re,"--n-item-margin":_e,"--n-item-margin-rtl":on,"--n-button-icon-size":zt,"--n-button-icon-color":ee,"--n-button-icon-color-hover":se,"--n-button-icon-color-pressed":ae,"--n-button-color-hover":A,"--n-button-color":te,"--n-button-color-pressed":X,"--n-button-border":Oe,"--n-button-border-hover":z,"--n-button-border-pressed":L}}),Te=o?vt("pagination",O(()=>{let ne="";return ne+=i.value[0],ne}),Ae,e):void 0;return{rtlEnabled:D,mergedClsPrefix:n,locale:a,selfRef:s,mergedPage:f,pageItems:O(()=>w.value.items),mergedItemCount:B,jumperValue:u,pageSizeOptions:k,mergedPageSize:v,inputSize:F,selectSize:M,mergedTheme:l,mergedPageCount:g,startIndex:_,endIndex:T,showFastForwardMenu:m,showFastBackwardMenu:y,fastForwardActive:p,fastBackwardActive:b,handleMenuSelect:C,handleFastForwardMouseenter:$,handleFastForwardMouseleave:S,handleFastBackwardMouseenter:x,handleFastBackwardMouseleave:R,handleJumperInput:ze,handleBackwardClick:he,handleForwardClick:ie,handlePageItemClick:$e,handleSizePickerChange:ye,handleQuickJumperChange:le,cssVars:o?void 0:Ae,themeClass:Te?.themeClass,onRender:Te?.onRender}},render(){const{$slots:e,mergedClsPrefix:t,disabled:n,cssVars:o,mergedPage:r,mergedPageCount:i,pageItems:l,showSizePicker:a,showQuickJumper:s,mergedTheme:d,locale:c,inputSize:f,selectSize:v,mergedPageSize:g,pageSizeOptions:u,jumperValue:p,simple:b,prev:m,next:y,prefix:$,suffix:S,label:x,goto:R,handleJumperInput:C,handleSizePickerChange:w,handleBackwardClick:k,handlePageItemClick:F,handleForwardClick:M,handleQuickJumperChange:_,onRender:T}=this;T?.();const B=$||e.prefix,D=S||e.suffix,K=m||e.prev,N=y||e.next,V=x||e.label;return h("div",{ref:"selfRef",class:[`${t}-pagination`,this.themeClass,this.rtlEnabled&&`${t}-pagination--rtl`,n&&`${t}-pagination--disabled`,b&&`${t}-pagination--simple`],style:o},B?h("div",{class:`${t}-pagination-prefix`},B({page:r,pageSize:g,pageCount:i,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null,this.displayOrder.map(ie=>{switch(ie){case"pages":return h(nt,null,h("div",{class:[`${t}-pagination-item`,!K&&`${t}-pagination-item--button`,(r<=1||r>i||n)&&`${t}-pagination-item--disabled`],onClick:k},K?K({page:r,pageSize:g,pageCount:i,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount}):h(kt,{clsPrefix:t},{default:()=>this.rtlEnabled?h(vf,null):h(ff,null)})),b?h(nt,null,h("div",{class:`${t}-pagination-quick-jumper`},h(Br,{value:p,onUpdateValue:C,size:f,placeholder:"",disabled:n,theme:d.peers.Input,themeOverrides:d.peerOverrides.Input,onChange:_}))," /"," ",i):l.map((he,J)=>{let re,ye,Z;const{type:le}=he;switch(le){case"page":const ze=he.label;V?re=V({type:"page",node:ze,active:he.active}):re=ze;break;case"fast-forward":const Ae=this.fastForwardActive?h(kt,{clsPrefix:t},{default:()=>this.rtlEnabled?h(hf,null):h(pf,null)}):h(kt,{clsPrefix:t},{default:()=>h(gf,null)});V?re=V({type:"fast-forward",node:Ae,active:this.fastForwardActive||this.showFastForwardMenu}):re=Ae,ye=this.handleFastForwardMouseenter,Z=this.handleFastForwardMouseleave;break;case"fast-backward":const Te=this.fastBackwardActive?h(kt,{clsPrefix:t},{default:()=>this.rtlEnabled?h(pf,null):h(hf,null)}):h(kt,{clsPrefix:t},{default:()=>h(gf,null)});V?re=V({type:"fast-backward",node:Te,active:this.fastBackwardActive||this.showFastBackwardMenu}):re=Te,ye=this.handleFastBackwardMouseenter,Z=this.handleFastBackwardMouseleave;break}const $e=h("div",{key:J,class:[`${t}-pagination-item`,he.active&&`${t}-pagination-item--active`,le!=="page"&&(le==="fast-backward"&&this.showFastBackwardMenu||le==="fast-forward"&&this.showFastForwardMenu)&&`${t}-pagination-item--hover`,n&&`${t}-pagination-item--disabled`,le==="page"&&`${t}-pagination-item--clickable`],onClick:()=>{F(he)},onMouseenter:ye,onMouseleave:Z},re);if(le==="page"&&!he.mayBeFastBackward&&!he.mayBeFastForward)return $e;{const ze=he.type==="page"?he.mayBeFastBackward?"fast-backward":"fast-forward":he.type;return he.type!=="page"&&!he.options?$e:h(e$,{to:this.to,key:ze,disabled:n,trigger:"hover",virtualScroll:!0,style:{width:"60px"},theme:d.peers.Popselect,themeOverrides:d.peerOverrides.Popselect,builtinThemeOverrides:{peers:{InternalSelectMenu:{height:"calc(var(--n-option-height) * 4.6)"}}},nodeProps:()=>({style:{justifyContent:"center"}}),show:le==="page"?!1:le==="fast-backward"?this.showFastBackwardMenu:this.showFastForwardMenu,onUpdateShow:Ae=>{le!=="page"&&(Ae?le==="fast-backward"?this.showFastBackwardMenu=Ae:this.showFastForwardMenu=Ae:(this.showFastBackwardMenu=!1,this.showFastForwardMenu=!1))},options:he.type!=="page"&&he.options?he.options:[],onUpdateValue:this.handleMenuSelect,scrollable:!0,scrollbarProps:this.scrollbarProps,showCheckmark:!1},{default:()=>$e})}}),h("div",{class:[`${t}-pagination-item`,!N&&`${t}-pagination-item--button`,{[`${t}-pagination-item--disabled`]:r<1||r>=i||n}],onClick:M},N?N({page:r,pageSize:g,pageCount:i,itemCount:this.mergedItemCount,startIndex:this.startIndex,endIndex:this.endIndex}):h(kt,{clsPrefix:t},{default:()=>this.rtlEnabled?h(ff,null):h(vf,null)})));case"size-picker":return!b&&a?h(zo,Object.assign({consistentMenuWidth:!1,placeholder:"",showCheckmark:!1,to:this.to},this.selectProps,{size:v,options:u,value:g,disabled:n,scrollbarProps:this.scrollbarProps,theme:d.peers.Select,themeOverrides:d.peerOverrides.Select,onUpdateValue:w})):null;case"quick-jumper":return!b&&s?h("div",{class:`${t}-pagination-quick-jumper`},R?R():$n(this.$slots.goto,()=>[c.goto]),h(Br,{value:p,onUpdateValue:C,size:f,placeholder:"",disabled:n,theme:d.peers.Input,themeOverrides:d.peerOverrides.Input,onChange:_})):null;default:return null}}),D?h("div",{class:`${t}-pagination-suffix`},D({page:r,pageSize:g,pageCount:i,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null)}}),c$={padding:"4px 0",optionIconSizeSmall:"14px",optionIconSizeMedium:"16px",optionIconSizeLarge:"16px",optionIconSizeHuge:"18px",optionSuffixWidthSmall:"14px",optionSuffixWidthMedium:"14px",optionSuffixWidthLarge:"16px",optionSuffixWidthHuge:"16px",optionIconSuffixWidthSmall:"32px",optionIconSuffixWidthMedium:"32px",optionIconSuffixWidthLarge:"36px",optionIconSuffixWidthHuge:"36px",optionPrefixWidthSmall:"14px",optionPrefixWidthMedium:"14px",optionPrefixWidthLarge:"16px",optionPrefixWidthHuge:"16px",optionIconPrefixWidthSmall:"36px",optionIconPrefixWidthMedium:"36px",optionIconPrefixWidthLarge:"40px",optionIconPrefixWidthHuge:"40px"};function u$(e){const{primaryColor:t,textColor2:n,dividerColor:o,hoverColor:r,popoverColor:i,invertedColor:l,borderRadius:a,fontSizeSmall:s,fontSizeMedium:d,fontSizeLarge:c,fontSizeHuge:f,heightSmall:v,heightMedium:g,heightLarge:u,heightHuge:p,textColor3:b,opacityDisabled:m}=e;return Object.assign(Object.assign({},c$),{optionHeightSmall:v,optionHeightMedium:g,optionHeightLarge:u,optionHeightHuge:p,borderRadius:a,fontSizeSmall:s,fontSizeMedium:d,fontSizeLarge:c,fontSizeHuge:f,optionTextColor:n,optionTextColorHover:n,optionTextColorActive:t,optionTextColorChildActive:t,color:i,dividerColor:o,suffixColor:n,prefixColor:n,optionColorHover:r,optionColorActive:Ue(t,{alpha:.1}),groupHeaderTextColor:b,optionTextColorInverted:"#BBB",optionTextColorHoverInverted:"#FFF",optionTextColorActiveInverted:"#FFF",optionTextColorChildActiveInverted:"#FFF",colorInverted:l,dividerColorInverted:"#BBB",suffixColorInverted:"#BBB",prefixColorInverted:"#BBB",optionColorHoverInverted:t,optionColorActiveInverted:t,groupHeaderTextColorInverted:"#AAA",optionOpacityDisabled:m})}const Zv={name:"Dropdown",common:gt,peers:{Popover:Ur},self:u$},f$={padding:"8px 14px"};function h$(e){const{borderRadius:t,boxShadow2:n,baseColor:o}=e;return Object.assign(Object.assign({},f$),{borderRadius:t,boxShadow:n,color:rt(o,"rgba(0, 0, 0, .85)"),textColor:o})}const Jv={name:"Tooltip",common:gt,peers:{Popover:Ur},self:h$},Qv={name:"Ellipsis",common:gt,peers:{Tooltip:Jv}},p$={radioSizeSmall:"14px",radioSizeMedium:"16px",radioSizeLarge:"18px",labelPadding:"0 8px",labelFontWeight:"400"};function v$(e){const{borderColor:t,primaryColor:n,baseColor:o,textColorDisabled:r,inputColorDisabled:i,textColor2:l,opacityDisabled:a,borderRadius:s,fontSizeSmall:d,fontSizeMedium:c,fontSizeLarge:f,heightSmall:v,heightMedium:g,heightLarge:u,lineHeight:p}=e;return Object.assign(Object.assign({},p$),{labelLineHeight:p,buttonHeightSmall:v,buttonHeightMedium:g,buttonHeightLarge:u,fontSizeSmall:d,fontSizeMedium:c,fontSizeLarge:f,boxShadow:`inset 0 0 0 1px ${t}`,boxShadowActive:`inset 0 0 0 1px ${n}`,boxShadowFocus:`inset 0 0 0 1px ${n}, 0 0 0 2px ${Ue(n,{alpha:.2})}`,boxShadowHover:`inset 0 0 0 1px ${n}`,boxShadowDisabled:`inset 0 0 0 1px ${t}`,color:o,colorDisabled:i,colorActive:"#0000",textColor:l,textColorDisabled:r,dotColorActive:n,dotColorDisabled:t,buttonBorderColor:t,buttonBorderColorActive:n,buttonBorderColorHover:t,buttonColor:o,buttonColorActive:o,buttonTextColor:l,buttonTextColorActive:n,buttonTextColorHover:n,opacityDisabled:a,buttonBoxShadowFocus:`inset 0 0 0 1px ${n}, 0 0 0 2px ${Ue(n,{alpha:.3})}`,buttonBoxShadowHover:"inset 0 0 0 1px #0000",buttonBoxShadow:"inset 0 0 0 1px #0000",buttonBorderRadius:s})}const dc={name:"Radio",common:gt,self:v$},g$={thPaddingSmall:"8px",thPaddingMedium:"12px",thPaddingLarge:"12px",tdPaddingSmall:"8px",tdPaddingMedium:"12px",tdPaddingLarge:"12px",sorterSize:"15px",resizableContainerSize:"8px",resizableSize:"2px",filterSize:"15px",paginationMargin:"12px 0 0 0",emptyPadding:"48px 0",actionPadding:"8px 12px",actionButtonMargin:"0 8px 0 0"};function b$(e){const{cardColor:t,modalColor:n,popoverColor:o,textColor2:r,textColor1:i,tableHeaderColor:l,tableColorHover:a,iconColor:s,primaryColor:d,fontWeightStrong:c,borderRadius:f,lineHeight:v,fontSizeSmall:g,fontSizeMedium:u,fontSizeLarge:p,dividerColor:b,heightSmall:m,opacityDisabled:y,tableColorStriped:$}=e;return Object.assign(Object.assign({},g$),{actionDividerColor:b,lineHeight:v,borderRadius:f,fontSizeSmall:g,fontSizeMedium:u,fontSizeLarge:p,borderColor:rt(t,b),tdColorHover:rt(t,a),tdColorSorting:rt(t,a),tdColorStriped:rt(t,$),thColor:rt(t,l),thColorHover:rt(rt(t,l),a),thColorSorting:rt(rt(t,l),a),tdColor:t,tdTextColor:r,thTextColor:i,thFontWeight:c,thButtonColorHover:a,thIconColor:s,thIconColorActive:d,borderColorModal:rt(n,b),tdColorHoverModal:rt(n,a),tdColorSortingModal:rt(n,a),tdColorStripedModal:rt(n,$),thColorModal:rt(n,l),thColorHoverModal:rt(rt(n,l),a),thColorSortingModal:rt(rt(n,l),a),tdColorModal:n,borderColorPopover:rt(o,b),tdColorHoverPopover:rt(o,a),tdColorSortingPopover:rt(o,a),tdColorStripedPopover:rt(o,$),thColorPopover:rt(o,l),thColorHoverPopover:rt(rt(o,l),a),thColorSortingPopover:rt(rt(o,l),a),tdColorPopover:o,boxShadowBefore:"inset -12px 0 8px -12px rgba(0, 0, 0, .18)",boxShadowAfter:"inset 12px 0 8px -12px rgba(0, 0, 0, .18)",loadingColor:d,loadingSize:m,opacityLoading:y})}const m$={name:"DataTable",common:gt,peers:{Button:rc,Checkbox:Vv,Radio:dc,Pagination:Xv,Scrollbar:jo,Empty:nc,Popover:Ur,Ellipsis:Qv,Dropdown:Zv},self:b$},y$=Object.assign(Object.assign({},Be.props),{onUnstableColumnResize:Function,pagination:{type:[Object,Boolean],default:!1},paginateSinglePage:{type:Boolean,default:!0},minHeight:[Number,String],maxHeight:[Number,String],columns:{type:Array,default:()=>[]},rowClassName:[String,Function],rowProps:Function,rowKey:Function,summary:[Function],data:{type:Array,default:()=>[]},loading:Boolean,bordered:{type:Boolean,default:void 0},bottomBordered:{type:Boolean,default:void 0},striped:Boolean,scrollX:[Number,String],defaultCheckedRowKeys:{type:Array,default:()=>[]},checkedRowKeys:Array,singleLine:{type:Boolean,default:!0},singleColumn:Boolean,size:String,remote:Boolean,defaultExpandedRowKeys:{type:Array,default:[]},defaultExpandAll:Boolean,expandedRowKeys:Array,stickyExpandedRows:Boolean,virtualScroll:Boolean,virtualScrollX:Boolean,virtualScrollHeader:Boolean,headerHeight:{type:Number,default:28},heightForRow:Function,minRowHeight:{type:Number,default:28},tableLayout:{type:String,default:"auto"},allowCheckingNotLoaded:Boolean,cascade:{type:Boolean,default:!0},childrenKey:{type:String,default:"children"},indent:{type:Number,default:16},flexHeight:Boolean,summaryPlacement:{type:String,default:"bottom"},paginationBehaviorOnFilter:{type:String,default:"current"},filterIconPopoverProps:Object,scrollbarProps:Object,renderCell:Function,renderExpandIcon:Function,spinProps:Object,getCsvCell:Function,getCsvHeader:Function,onLoad:Function,"onUpdate:page":[Function,Array],onUpdatePage:[Function,Array],"onUpdate:pageSize":[Function,Array],onUpdatePageSize:[Function,Array],"onUpdate:sorter":[Function,Array],onUpdateSorter:[Function,Array],"onUpdate:filters":[Function,Array],onUpdateFilters:[Function,Array],"onUpdate:checkedRowKeys":[Function,Array],onUpdateCheckedRowKeys:[Function,Array],"onUpdate:expandedRowKeys":[Function,Array],onUpdateExpandedRowKeys:[Function,Array],onScroll:Function,onPageChange:[Function,Array],onPageSizeChange:[Function,Array],onSorterChange:[Function,Array],onFiltersChange:[Function,Array],onCheckedRowKeysChange:[Function,Array]}),En="n-data-table",eg=40,tg=40;function Ff(e){if(e.type==="selection")return e.width===void 0?eg:Pt(e.width);if(e.type==="expand")return e.width===void 0?tg:Pt(e.width);if(!("children"in e))return typeof e.width=="string"?Pt(e.width):e.width}function x$(e){var t,n;if(e.type==="selection")return Gt((t=e.width)!==null&&t!==void 0?t:eg);if(e.type==="expand")return Gt((n=e.width)!==null&&n!==void 0?n:tg);if(!("children"in e))return Gt(e.width)}function Sn(e){return e.type==="selection"?"__n_selection__":e.type==="expand"?"__n_expand__":e.key}function Of(e){return e&&(typeof e=="object"?Object.assign({},e):e)}function w$(e){return e==="ascend"?1:e==="descend"?-1:0}function C$(e,t,n){return n!==void 0&&(e=Math.min(e,typeof n=="number"?n:Number.parseFloat(n))),t!==void 0&&(e=Math.max(e,typeof t=="number"?t:Number.parseFloat(t))),e}function S$(e,t){if(t!==void 0)return{width:t,minWidth:t,maxWidth:t};const n=x$(e),{minWidth:o,maxWidth:r}=e;return{width:n,minWidth:Gt(o)||n,maxWidth:Gt(r)}}function R$(e,t,n){return typeof n=="function"?n(e,t):n||""}function bs(e){return e.filterOptionValues!==void 0||e.filterOptionValue===void 0&&e.defaultFilterOptionValues!==void 0}function ms(e){return"children"in e?!1:!!e.sorter}function ng(e){return"children"in e&&e.children.length?!1:!!e.resizable}function Ef(e){return"children"in e?!1:!!e.filter&&(!!e.filterOptions||!!e.renderFilterMenu)}function Mf(e){if(e){if(e==="descend")return"ascend"}else return"descend";return!1}function k$(e,t){if(e.sorter===void 0)return null;const{customNextSortOrder:n}=e;return t===null||t.columnKey!==e.key?{columnKey:e.key,sorter:e.sorter,order:Mf(!1)}:Object.assign(Object.assign({},t),{order:(n||Mf)(t.order)})}function og(e,t){return t.find(n=>n.columnKey===e.key&&n.order)!==void 0}function P$(e){return typeof e=="string"?e.replace(/,/g,"\\,"):e==null?"":`${e}`.replace(/,/g,"\\,")}function $$(e,t,n,o){const r=e.filter(a=>a.type!=="expand"&&a.type!=="selection"&&a.allowExport!==!1),i=r.map(a=>o?o(a):a.title).join(","),l=t.map(a=>r.map(s=>n?n(a[s.key],a,s):P$(a[s.key])).join(","));return[i,...l].join(` +`)}const _$=pe({name:"DataTableBodyCheckbox",props:{rowKey:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!0},onUpdateChecked:{type:Function,required:!0}},setup(e){const{mergedCheckedRowKeySetRef:t,mergedInderminateRowKeySetRef:n}=Ee(En);return()=>{const{rowKey:o}=e;return h(lc,{privateInsideTable:!0,disabled:e.disabled,indeterminate:n.value.has(o),checked:t.value.has(o),onUpdateChecked:e.onUpdateChecked})}}}),z$=P("radio",` + line-height: var(--n-label-line-height); + outline: none; + position: relative; + user-select: none; + -webkit-user-select: none; + display: inline-flex; + align-items: flex-start; + flex-wrap: nowrap; + font-size: var(--n-font-size); + word-break: break-word; +`,[H("checked",[j("dot",` + background-color: var(--n-color-active); + `)]),j("dot-wrapper",` + position: relative; + flex-shrink: 0; + flex-grow: 0; + width: var(--n-radio-size); + `),P("radio-input",` + position: absolute; + border: 0; + width: 0; + height: 0; + opacity: 0; + margin: 0; + `),j("dot",` + position: absolute; + top: 50%; + left: 0; + transform: translateY(-50%); + height: var(--n-radio-size); + width: var(--n-radio-size); + background: var(--n-color); + box-shadow: var(--n-box-shadow); + border-radius: 50%; + transition: + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + `,[I("&::before",` + content: ""; + opacity: 0; + position: absolute; + left: 4px; + top: 4px; + height: calc(100% - 8px); + width: calc(100% - 8px); + border-radius: 50%; + transform: scale(.8); + background: var(--n-dot-color-active); + transition: + opacity .3s var(--n-bezier), + background-color .3s var(--n-bezier), + transform .3s var(--n-bezier); + `),H("checked",{boxShadow:"var(--n-box-shadow-active)"},[I("&::before",` + opacity: 1; + transform: scale(1); + `)])]),j("label",` + color: var(--n-text-color); + padding: var(--n-label-padding); + font-weight: var(--n-label-font-weight); + display: inline-block; + transition: color .3s var(--n-bezier); + `),dt("disabled",` + cursor: pointer; + `,[I("&:hover",[j("dot",{boxShadow:"var(--n-box-shadow-hover)"})]),H("focus",[I("&:not(:active)",[j("dot",{boxShadow:"var(--n-box-shadow-focus)"})])])]),H("disabled",` + cursor: not-allowed; + `,[j("dot",{boxShadow:"var(--n-box-shadow-disabled)",backgroundColor:"var(--n-color-disabled)"},[I("&::before",{backgroundColor:"var(--n-dot-color-disabled)"}),H("checked",` + opacity: 1; + `)]),j("label",{color:"var(--n-text-color-disabled)"}),P("radio-input",` + cursor: not-allowed; + `)])]),T$={name:String,value:{type:[String,Number,Boolean],default:"on"},checked:{type:Boolean,default:void 0},defaultChecked:Boolean,disabled:{type:Boolean,default:void 0},label:String,size:String,onUpdateChecked:[Function,Array],"onUpdate:checked":[Function,Array],checkedValue:{type:Boolean,default:void 0}},rg="n-radio-group";function F$(e){const t=Ee(rg,null),{mergedClsPrefixRef:n,mergedComponentPropsRef:o}=Ye(e),r=No(e,{mergedSize(S){var x,R;const{size:C}=e;if(C!==void 0)return C;if(t){const{mergedSizeRef:{value:k}}=t;if(k!==void 0)return k}if(S)return S.mergedSize.value;const w=(R=(x=o?.value)===null||x===void 0?void 0:x.Radio)===null||R===void 0?void 0:R.size;return w||"medium"},mergedDisabled(S){return!!(e.disabled||t?.disabledRef.value||S?.disabled.value)}}),{mergedSizeRef:i,mergedDisabledRef:l}=r,a=E(null),s=E(null),d=E(e.defaultChecked),f=qt(we(e,"checked"),d),v=ot(()=>t?t.valueRef.value===e.value:f.value),g=ot(()=>{const{name:S}=e;if(S!==void 0)return S;if(t)return t.nameRef.value}),u=E(!1);function p(){if(t){const{doUpdateValue:S}=t,{value:x}=e;me(S,x)}else{const{onUpdateChecked:S,"onUpdate:checked":x}=e,{nTriggerFormInput:R,nTriggerFormChange:C}=r;S&&me(S,!0),x&&me(x,!0),R(),C(),d.value=!0}}function b(){l.value||v.value||p()}function m(){b(),a.value&&(a.value.checked=v.value)}function y(){u.value=!1}function $(){u.value=!0}return{mergedClsPrefix:t?t.mergedClsPrefixRef:n,inputRef:a,labelRef:s,mergedName:g,mergedDisabled:l,renderSafeChecked:v,focus:u,mergedSize:i,handleRadioInputChange:m,handleRadioInputBlur:y,handleRadioInputFocus:$}}const O$=Object.assign(Object.assign({},Be.props),T$),ig=pe({name:"Radio",props:O$,setup(e){const t=F$(e),n=Be("Radio","-radio",z$,dc,e,t.mergedClsPrefix),o=O(()=>{const{mergedSize:{value:d}}=t,{common:{cubicBezierEaseInOut:c},self:{boxShadow:f,boxShadowActive:v,boxShadowDisabled:g,boxShadowFocus:u,boxShadowHover:p,color:b,colorDisabled:m,colorActive:y,textColor:$,textColorDisabled:S,dotColorActive:x,dotColorDisabled:R,labelPadding:C,labelLineHeight:w,labelFontWeight:k,[de("fontSize",d)]:F,[de("radioSize",d)]:M}}=n.value;return{"--n-bezier":c,"--n-label-line-height":w,"--n-label-font-weight":k,"--n-box-shadow":f,"--n-box-shadow-active":v,"--n-box-shadow-disabled":g,"--n-box-shadow-focus":u,"--n-box-shadow-hover":p,"--n-color":b,"--n-color-active":y,"--n-color-disabled":m,"--n-dot-color-active":x,"--n-dot-color-disabled":R,"--n-font-size":F,"--n-radio-size":M,"--n-text-color":$,"--n-text-color-disabled":S,"--n-label-padding":C}}),{inlineThemeDisabled:r,mergedClsPrefixRef:i,mergedRtlRef:l}=Ye(e),a=Bt("Radio",l,i),s=r?vt("radio",O(()=>t.mergedSize.value[0]),o,e):void 0;return Object.assign(t,{rtlEnabled:a,cssVars:r?void 0:o,themeClass:s?.themeClass,onRender:s?.onRender})},render(){const{$slots:e,mergedClsPrefix:t,onRender:n,label:o}=this;return n?.(),h("label",{class:[`${t}-radio`,this.themeClass,this.rtlEnabled&&`${t}-radio--rtl`,this.mergedDisabled&&`${t}-radio--disabled`,this.renderSafeChecked&&`${t}-radio--checked`,this.focus&&`${t}-radio--focus`],style:this.cssVars},h("div",{class:`${t}-radio__dot-wrapper`}," ",h("div",{class:[`${t}-radio__dot`,this.renderSafeChecked&&`${t}-radio__dot--checked`]}),h("input",{ref:"inputRef",type:"radio",class:`${t}-radio-input`,value:this.value,name:this.mergedName,checked:this.renderSafeChecked,disabled:this.mergedDisabled,onChange:this.handleRadioInputChange,onFocus:this.handleRadioInputFocus,onBlur:this.handleRadioInputBlur})),lt(e.default,r=>!r&&!o?null:h("div",{ref:"labelRef",class:`${t}-radio__label`},r||o)))}}),E$=P("radio-group",` + display: inline-block; + font-size: var(--n-font-size); +`,[j("splitor",` + display: inline-block; + vertical-align: bottom; + width: 1px; + transition: + background-color .3s var(--n-bezier), + opacity .3s var(--n-bezier); + background: var(--n-button-border-color); + `,[H("checked",{backgroundColor:"var(--n-button-border-color-active)"}),H("disabled",{opacity:"var(--n-opacity-disabled)"})]),H("button-group",` + white-space: nowrap; + height: var(--n-height); + line-height: var(--n-height); + `,[P("radio-button",{height:"var(--n-height)",lineHeight:"var(--n-height)"}),j("splitor",{height:"var(--n-height)"})]),P("radio-button",` + vertical-align: bottom; + outline: none; + position: relative; + user-select: none; + -webkit-user-select: none; + display: inline-block; + box-sizing: border-box; + padding-left: 14px; + padding-right: 14px; + white-space: nowrap; + transition: + background-color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + border-color .3s var(--n-bezier), + color .3s var(--n-bezier); + background: var(--n-button-color); + color: var(--n-button-text-color); + border-top: 1px solid var(--n-button-border-color); + border-bottom: 1px solid var(--n-button-border-color); + `,[P("radio-input",` + pointer-events: none; + position: absolute; + border: 0; + border-radius: inherit; + left: 0; + right: 0; + top: 0; + bottom: 0; + opacity: 0; + z-index: 1; + `),j("state-border",` + z-index: 1; + pointer-events: none; + position: absolute; + box-shadow: var(--n-button-box-shadow); + transition: box-shadow .3s var(--n-bezier); + left: -1px; + bottom: -1px; + right: -1px; + top: -1px; + `),I("&:first-child",` + border-top-left-radius: var(--n-button-border-radius); + border-bottom-left-radius: var(--n-button-border-radius); + border-left: 1px solid var(--n-button-border-color); + `,[j("state-border",` + border-top-left-radius: var(--n-button-border-radius); + border-bottom-left-radius: var(--n-button-border-radius); + `)]),I("&:last-child",` + border-top-right-radius: var(--n-button-border-radius); + border-bottom-right-radius: var(--n-button-border-radius); + border-right: 1px solid var(--n-button-border-color); + `,[j("state-border",` + border-top-right-radius: var(--n-button-border-radius); + border-bottom-right-radius: var(--n-button-border-radius); + `)]),dt("disabled",` + cursor: pointer; + `,[I("&:hover",[j("state-border",` + transition: box-shadow .3s var(--n-bezier); + box-shadow: var(--n-button-box-shadow-hover); + `),dt("checked",{color:"var(--n-button-text-color-hover)"})]),H("focus",[I("&:not(:active)",[j("state-border",{boxShadow:"var(--n-button-box-shadow-focus)"})])])]),H("checked",` + background: var(--n-button-color-active); + color: var(--n-button-text-color-active); + border-color: var(--n-button-border-color-active); + `),H("disabled",` + cursor: not-allowed; + opacity: var(--n-opacity-disabled); + `)])]);function M$(e,t,n){var o;const r=[];let i=!1;for(let l=0;l{const{value:x}=n,{common:{cubicBezierEaseInOut:R},self:{buttonBorderColor:C,buttonBorderColorActive:w,buttonBorderRadius:k,buttonBoxShadow:F,buttonBoxShadowFocus:M,buttonBoxShadowHover:_,buttonColor:T,buttonColorActive:B,buttonTextColor:D,buttonTextColorActive:K,buttonTextColorHover:N,opacityDisabled:V,[de("buttonHeight",x)]:ie,[de("fontSize",x)]:he}}=f.value;return{"--n-font-size":he,"--n-bezier":R,"--n-button-border-color":C,"--n-button-border-color-active":w,"--n-button-border-radius":k,"--n-button-box-shadow":F,"--n-button-box-shadow-focus":M,"--n-button-box-shadow-hover":_,"--n-button-color":T,"--n-button-color-active":B,"--n-button-text-color":D,"--n-button-text-color-hover":N,"--n-button-text-color-active":K,"--n-height":ie,"--n-opacity-disabled":V}}),S=d?vt("radio-group",O(()=>n.value[0]),$,e):void 0;return{selfElRef:t,rtlEnabled:y,mergedClsPrefix:s,mergedValue:u,handleFocusout:m,handleFocusin:b,cssVars:d?void 0:$,themeClass:S?.themeClass,onRender:S?.onRender}},render(){var e;const{mergedValue:t,mergedClsPrefix:n,handleFocusin:o,handleFocusout:r}=this,{children:i,isButtonGroup:l}=M$(Un(Dd(this)),t,n);return(e=this.onRender)===null||e===void 0||e.call(this),h("div",{onFocusin:o,onFocusout:r,ref:"selfElRef",class:[`${n}-radio-group`,this.rtlEnabled&&`${n}-radio-group--rtl`,this.themeClass,l&&`${n}-radio-group--button-group`],style:this.cssVars},i)}}),I$=pe({name:"DataTableBodyRadio",props:{rowKey:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!0},onUpdateChecked:{type:Function,required:!0}},setup(e){const{mergedCheckedRowKeySetRef:t,componentId:n}=Ee(En);return()=>{const{rowKey:o}=e;return h(ig,{name:n,disabled:e.disabled,checked:t.value.has(o),onUpdateChecked:e.onUpdateChecked})}}}),L$=Object.assign(Object.assign({},Nr),Be.props),D$=pe({name:"Tooltip",props:L$,slots:Object,__popover__:!0,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=Be("Tooltip","-tooltip",void 0,Jv,e,t),o=E(null);return Object.assign(Object.assign({},{syncPosition(){o.value.syncPosition()},setShow(i){o.value.setShow(i)}}),{popoverRef:o,mergedTheme:n,popoverThemeOverrides:O(()=>n.value.self)})},render(){const{mergedTheme:e,internalExtraClass:t}=this;return h(Zi,Object.assign(Object.assign({},this.$props),{theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:this.popoverThemeOverrides,internalExtraClass:t.concat("tooltip"),ref:"popoverRef"}),this.$slots)}}),lg=P("ellipsis",{overflow:"hidden"},[dt("line-clamp",` + white-space: nowrap; + display: inline-block; + vertical-align: bottom; + max-width: 100%; + `),H("line-clamp",` + display: -webkit-inline-box; + -webkit-box-orient: vertical; + `),H("cursor-pointer",` + cursor: pointer; + `)]);function td(e){return`${e}-ellipsis--line-clamp`}function nd(e,t){return`${e}-ellipsis--cursor-${t}`}const ag=Object.assign(Object.assign({},Be.props),{expandTrigger:String,lineClamp:[Number,String],tooltip:{type:[Boolean,Object],default:!0}}),cc=pe({name:"Ellipsis",inheritAttrs:!1,props:ag,slots:Object,setup(e,{slots:t,attrs:n}){const o=Xp(),r=Be("Ellipsis","-ellipsis",lg,Qv,e,o),i=E(null),l=E(null),a=E(null),s=E(!1),d=O(()=>{const{lineClamp:b}=e,{value:m}=s;return b!==void 0?{textOverflow:"","-webkit-line-clamp":m?"":b}:{textOverflow:m?"":"ellipsis","-webkit-line-clamp":""}});function c(){let b=!1;const{value:m}=s;if(m)return!0;const{value:y}=i;if(y){const{lineClamp:$}=e;if(g(y),$!==void 0)b=y.scrollHeight<=y.offsetHeight;else{const{value:S}=l;S&&(b=S.getBoundingClientRect().width<=y.getBoundingClientRect().width)}u(y,b)}return b}const f=O(()=>e.expandTrigger==="click"?()=>{var b;const{value:m}=s;m&&((b=a.value)===null||b===void 0||b.setShow(!1)),s.value=!m}:void 0);na(()=>{var b;e.tooltip&&((b=a.value)===null||b===void 0||b.setShow(!1))});const v=()=>h("span",Object.assign({},nn(n,{class:[`${o.value}-ellipsis`,e.lineClamp!==void 0?td(o.value):void 0,e.expandTrigger==="click"?nd(o.value,"pointer"):void 0],style:d.value}),{ref:"triggerRef",onClick:f.value,onMouseenter:e.expandTrigger==="click"?c:void 0}),e.lineClamp?t:h("span",{ref:"triggerInnerRef"},t));function g(b){if(!b)return;const m=d.value,y=td(o.value);e.lineClamp!==void 0?p(b,y,"add"):p(b,y,"remove");for(const $ in m)b.style[$]!==m[$]&&(b.style[$]=m[$])}function u(b,m){const y=nd(o.value,"pointer");e.expandTrigger==="click"&&!m?p(b,y,"add"):p(b,y,"remove")}function p(b,m,y){y==="add"?b.classList.contains(m)||b.classList.add(m):b.classList.contains(m)&&b.classList.remove(m)}return{mergedTheme:r,triggerRef:i,triggerInnerRef:l,tooltipRef:a,handleClick:f,renderTrigger:v,getTooltipDisabled:c}},render(){var e;const{tooltip:t,renderTrigger:n,$slots:o}=this;if(t){const{mergedTheme:r}=this;return h(D$,Object.assign({ref:"tooltipRef",placement:"top"},t,{getDisabled:this.getTooltipDisabled,theme:r.peers.Tooltip,themeOverrides:r.peerOverrides.Tooltip}),{trigger:n,default:(e=o.tooltip)!==null&&e!==void 0?e:o.default})}else return n()}}),H$=pe({name:"PerformantEllipsis",props:ag,inheritAttrs:!1,setup(e,{attrs:t,slots:n}){const o=E(!1),r=Xp();return pr("-ellipsis",lg,r),{mouseEntered:o,renderTrigger:()=>{const{lineClamp:l}=e,a=r.value;return h("span",Object.assign({},nn(t,{class:[`${a}-ellipsis`,l!==void 0?td(a):void 0,e.expandTrigger==="click"?nd(a,"pointer"):void 0],style:l===void 0?{textOverflow:"ellipsis"}:{"-webkit-line-clamp":l}}),{onMouseenter:()=>{o.value=!0}}),l?n:h("span",null,n))}}},render(){return this.mouseEntered?h(cc,nn({},this.$attrs,this.$props),this.$slots):this.renderTrigger()}}),N$=pe({name:"DataTableCell",props:{clsPrefix:{type:String,required:!0},row:{type:Object,required:!0},index:{type:Number,required:!0},column:{type:Object,required:!0},isSummary:Boolean,mergedTheme:{type:Object,required:!0},renderCell:Function},render(){var e;const{isSummary:t,column:n,row:o,renderCell:r}=this;let i;const{render:l,key:a,ellipsis:s}=n;if(l&&!t?i=l(o,this.index):t?i=(e=o[a])===null||e===void 0?void 0:e.value:i=r?r(Ks(o,a),o,n):Ks(o,a),s)if(typeof s=="object"){const{mergedTheme:d}=this;return n.ellipsisComponent==="performant-ellipsis"?h(H$,Object.assign({},s,{theme:d.peers.Ellipsis,themeOverrides:d.peerOverrides.Ellipsis}),{default:()=>i}):h(cc,Object.assign({},s,{theme:d.peers.Ellipsis,themeOverrides:d.peerOverrides.Ellipsis}),{default:()=>i})}else return h("span",{class:`${this.clsPrefix}-data-table-td__ellipsis`},i);return i}}),Bf=pe({name:"DataTableExpandTrigger",props:{clsPrefix:{type:String,required:!0},expanded:Boolean,loading:Boolean,onClick:{type:Function,required:!0},renderExpandIcon:{type:Function},rowData:{type:Object,required:!0}},render(){const{clsPrefix:e}=this;return h("div",{class:[`${e}-data-table-expand-trigger`,this.expanded&&`${e}-data-table-expand-trigger--expanded`],onClick:this.onClick,onMousedown:t=>{t.preventDefault()}},h(vr,null,{default:()=>this.loading?h(gr,{key:"loading",clsPrefix:this.clsPrefix,radius:85,strokeWidth:15,scale:.88}):this.renderExpandIcon?this.renderExpandIcon({expanded:this.expanded,rowData:this.rowData}):h(kt,{clsPrefix:e,key:"base-icon"},{default:()=>h(Pv,null)})}))}}),j$=pe({name:"DataTableFilterMenu",props:{column:{type:Object,required:!0},radioGroupName:{type:String,required:!0},multiple:{type:Boolean,required:!0},value:{type:[Array,String,Number],default:null},options:{type:Array,required:!0},onConfirm:{type:Function,required:!0},onClear:{type:Function,required:!0},onChange:{type:Function,required:!0}},setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:n}=Ye(e),o=Bt("DataTable",n,t),{mergedClsPrefixRef:r,mergedThemeRef:i,localeRef:l}=Ee(En),a=E(e.value),s=O(()=>{const{value:u}=a;return Array.isArray(u)?u:null}),d=O(()=>{const{value:u}=a;return bs(e.column)?Array.isArray(u)&&u.length&&u[0]||null:Array.isArray(u)?null:u});function c(u){e.onChange(u)}function f(u){e.multiple&&Array.isArray(u)?a.value=u:bs(e.column)&&!Array.isArray(u)?a.value=[u]:a.value=u}function v(){c(a.value),e.onConfirm()}function g(){e.multiple||bs(e.column)?c([]):c(null),e.onClear()}return{mergedClsPrefix:r,rtlEnabled:o,mergedTheme:i,locale:l,checkboxGroupValue:s,radioGroupValue:d,handleChange:f,handleConfirmClick:v,handleClearClick:g}},render(){const{mergedTheme:e,locale:t,mergedClsPrefix:n}=this;return h("div",{class:[`${n}-data-table-filter-menu`,this.rtlEnabled&&`${n}-data-table-filter-menu--rtl`]},h(bo,null,{default:()=>{const{checkboxGroupValue:o,handleChange:r}=this;return this.multiple?h(VP,{value:o,class:`${n}-data-table-filter-menu__group`,onUpdateValue:r},{default:()=>this.options.map(i=>h(lc,{key:i.value,theme:e.peers.Checkbox,themeOverrides:e.peerOverrides.Checkbox,value:i.value},{default:()=>i.label}))}):h(A$,{name:this.radioGroupName,class:`${n}-data-table-filter-menu__group`,value:this.radioGroupValue,onUpdateValue:this.handleChange},{default:()=>this.options.map(i=>h(ig,{key:i.value,value:i.value,theme:e.peers.Radio,themeOverrides:e.peerOverrides.Radio},{default:()=>i.label}))})}}),h("div",{class:`${n}-data-table-filter-menu__action`},h(It,{size:"tiny",theme:e.peers.Button,themeOverrides:e.peerOverrides.Button,onClick:this.handleClearClick},{default:()=>t.clear}),h(It,{theme:e.peers.Button,themeOverrides:e.peerOverrides.Button,type:"primary",size:"tiny",onClick:this.handleConfirmClick},{default:()=>t.confirm})))}}),W$=pe({name:"DataTableRenderFilter",props:{render:{type:Function,required:!0},active:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},render(){const{render:e,active:t,show:n}=this;return e({active:t,show:n})}});function V$(e,t,n){const o=Object.assign({},e);return o[t]=n,o}const K$=pe({name:"DataTableFilterButton",props:{column:{type:Object,required:!0},options:{type:Array,default:()=>[]}},setup(e){const{mergedComponentPropsRef:t}=Ye(),{mergedThemeRef:n,mergedClsPrefixRef:o,mergedFilterStateRef:r,filterMenuCssVarsRef:i,paginationBehaviorOnFilterRef:l,doUpdatePage:a,doUpdateFilters:s,filterIconPopoverPropsRef:d}=Ee(En),c=E(!1),f=r,v=O(()=>e.column.filterMultiple!==!1),g=O(()=>{const $=f.value[e.column.key];if($===void 0){const{value:S}=v;return S?[]:null}return $}),u=O(()=>{const{value:$}=g;return Array.isArray($)?$.length>0:$!==null}),p=O(()=>{var $,S;return((S=($=t?.value)===null||$===void 0?void 0:$.DataTable)===null||S===void 0?void 0:S.renderFilter)||e.column.renderFilter});function b($){const S=V$(f.value,e.column.key,$);s(S,e.column),l.value==="first"&&a(1)}function m(){c.value=!1}function y(){c.value=!1}return{mergedTheme:n,mergedClsPrefix:o,active:u,showPopover:c,mergedRenderFilter:p,filterIconPopoverProps:d,filterMultiple:v,mergedFilterValue:g,filterMenuCssVars:i,handleFilterChange:b,handleFilterMenuConfirm:y,handleFilterMenuCancel:m}},render(){const{mergedTheme:e,mergedClsPrefix:t,handleFilterMenuCancel:n,filterIconPopoverProps:o}=this;return h(Zi,Object.assign({show:this.showPopover,onUpdateShow:r=>this.showPopover=r,trigger:"click",theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,placement:"bottom"},o,{style:{padding:0}}),{trigger:()=>{const{mergedRenderFilter:r}=this;if(r)return h(W$,{"data-data-table-filter":!0,render:r,active:this.active,show:this.showPopover});const{renderFilterIcon:i}=this.column;return h("div",{"data-data-table-filter":!0,class:[`${t}-data-table-filter`,{[`${t}-data-table-filter--active`]:this.active,[`${t}-data-table-filter--show`]:this.showPopover}]},i?i({active:this.active,show:this.showPopover}):h(kt,{clsPrefix:t},{default:()=>h(ik,null)}))},default:()=>{const{renderFilterMenu:r}=this.column;return r?r({hide:n}):h(j$,{style:this.filterMenuCssVars,radioGroupName:String(this.column.key),multiple:this.filterMultiple,value:this.mergedFilterValue,options:this.options,column:this.column,onChange:this.handleFilterChange,onClear:this.handleFilterMenuCancel,onConfirm:this.handleFilterMenuConfirm})}})}}),U$=pe({name:"ColumnResizeButton",props:{onResizeStart:Function,onResize:Function,onResizeEnd:Function},setup(e){const{mergedClsPrefixRef:t}=Ee(En),n=E(!1);let o=0;function r(s){return s.clientX}function i(s){var d;s.preventDefault();const c=n.value;o=r(s),n.value=!0,c||(ct("mousemove",window,l),ct("mouseup",window,a),(d=e.onResizeStart)===null||d===void 0||d.call(e))}function l(s){var d;(d=e.onResize)===null||d===void 0||d.call(e,r(s)-o)}function a(){var s;n.value=!1,(s=e.onResizeEnd)===null||s===void 0||s.call(e),et("mousemove",window,l),et("mouseup",window,a)}return xt(()=>{et("mousemove",window,l),et("mouseup",window,a)}),{mergedClsPrefix:t,active:n,handleMousedown:i}},render(){const{mergedClsPrefix:e}=this;return h("span",{"data-data-table-resizable":!0,class:[`${e}-data-table-resize-button`,this.active&&`${e}-data-table-resize-button--active`],onMousedown:this.handleMousedown})}}),G$=pe({name:"DataTableRenderSorter",props:{render:{type:Function,required:!0},order:{type:[String,Boolean],default:!1}},render(){const{render:e,order:t}=this;return e({order:t})}}),q$=pe({name:"SortIcon",props:{column:{type:Object,required:!0}},setup(e){const{mergedComponentPropsRef:t}=Ye(),{mergedSortStateRef:n,mergedClsPrefixRef:o}=Ee(En),r=O(()=>n.value.find(s=>s.columnKey===e.column.key)),i=O(()=>r.value!==void 0),l=O(()=>{const{value:s}=r;return s&&i.value?s.order:!1}),a=O(()=>{var s,d;return((d=(s=t?.value)===null||s===void 0?void 0:s.DataTable)===null||d===void 0?void 0:d.renderSorter)||e.column.renderSorter});return{mergedClsPrefix:o,active:i,mergedSortOrder:l,mergedRenderSorter:a}},render(){const{mergedRenderSorter:e,mergedSortOrder:t,mergedClsPrefix:n}=this,{renderSorterIcon:o}=this.column;return e?h(G$,{render:e,order:t}):h("span",{class:[`${n}-data-table-sorter`,t==="ascend"&&`${n}-data-table-sorter--asc`,t==="descend"&&`${n}-data-table-sorter--desc`]},o?o({order:t}):h(kt,{clsPrefix:n},{default:()=>h(JR,null)}))}}),uc="n-dropdown-menu",ma="n-dropdown",Af="n-dropdown-option",sg=pe({name:"DropdownDivider",props:{clsPrefix:{type:String,required:!0}},render(){return h("div",{class:`${this.clsPrefix}-dropdown-divider`})}}),X$=pe({name:"DropdownGroupHeader",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){const{showIconRef:e,hasSubmenuRef:t}=Ee(uc),{renderLabelRef:n,labelFieldRef:o,nodePropsRef:r,renderOptionRef:i}=Ee(ma);return{labelField:o,showIcon:e,hasSubmenu:t,renderLabel:n,nodeProps:r,renderOption:i}},render(){var e;const{clsPrefix:t,hasSubmenu:n,showIcon:o,nodeProps:r,renderLabel:i,renderOption:l}=this,{rawNode:a}=this.tmNode,s=h("div",Object.assign({class:`${t}-dropdown-option`},r?.(a)),h("div",{class:`${t}-dropdown-option-body ${t}-dropdown-option-body--group`},h("div",{"data-dropdown-option":!0,class:[`${t}-dropdown-option-body__prefix`,o&&`${t}-dropdown-option-body__prefix--show-icon`]},wt(a.icon)),h("div",{class:`${t}-dropdown-option-body__label`,"data-dropdown-option":!0},i?i(a):wt((e=a.title)!==null&&e!==void 0?e:a[this.labelField])),h("div",{class:[`${t}-dropdown-option-body__suffix`,n&&`${t}-dropdown-option-body__suffix--has-submenu`],"data-dropdown-option":!0})));return l?l({node:s,option:a}):s}});function Y$(e){const{textColorBase:t,opacity1:n,opacity2:o,opacity3:r,opacity4:i,opacity5:l}=e;return{color:t,opacity1Depth:n,opacity2Depth:o,opacity3Depth:r,opacity4Depth:i,opacity5Depth:l}}const Z$={common:gt,self:Y$},J$=P("icon",` + height: 1em; + width: 1em; + line-height: 1em; + text-align: center; + display: inline-block; + position: relative; + fill: currentColor; +`,[H("color-transition",{transition:"color .3s var(--n-bezier)"}),H("depth",{color:"var(--n-color)"},[I("svg",{opacity:"var(--n-opacity)",transition:"opacity .3s var(--n-bezier)"})]),I("svg",{height:"1em",width:"1em"})]),Q$=Object.assign(Object.assign({},Be.props),{depth:[String,Number],size:[Number,String],color:String,component:[Object,Function]}),e2=pe({_n_icon__:!0,name:"Icon",inheritAttrs:!1,props:Q$,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=Ye(e),o=Be("Icon","-icon",J$,Z$,e,t),r=O(()=>{const{depth:l}=e,{common:{cubicBezierEaseInOut:a},self:s}=o.value;if(l!==void 0){const{color:d,[`opacity${l}Depth`]:c}=s;return{"--n-bezier":a,"--n-color":d,"--n-opacity":c}}return{"--n-bezier":a,"--n-color":"","--n-opacity":""}}),i=n?vt("icon",O(()=>`${e.depth||"d"}`),r,e):void 0;return{mergedClsPrefix:t,mergedStyle:O(()=>{const{size:l,color:a}=e;return{fontSize:Gt(l),color:a}}),cssVars:n?void 0:r,themeClass:i?.themeClass,onRender:i?.onRender}},render(){var e;const{$parent:t,depth:n,mergedClsPrefix:o,component:r,onRender:i,themeClass:l}=this;return!((e=t?.$options)===null||e===void 0)&&e._n_icon__&&Zn("icon","don't wrap `n-icon` inside `n-icon`"),i?.(),h("i",nn(this.$attrs,{role:"img",class:[`${o}-icon`,l,{[`${o}-icon--depth`]:n,[`${o}-icon--color-transition`]:n!==void 0}],style:[this.cssVars,this.mergedStyle]}),r?h(r):this.$slots)}});function od(e,t){return e.type==="submenu"||e.type===void 0&&e[t]!==void 0}function t2(e){return e.type==="group"}function dg(e){return e.type==="divider"}function n2(e){return e.type==="render"}const cg=pe({name:"DropdownOption",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null},placement:{type:String,default:"right-start"},props:Object,scrollable:Boolean},setup(e){const t=Ee(ma),{hoverKeyRef:n,keyboardKeyRef:o,lastToggledSubmenuKeyRef:r,pendingKeyPathRef:i,activeKeyPathRef:l,animatedRef:a,mergedShowRef:s,renderLabelRef:d,renderIconRef:c,labelFieldRef:f,childrenFieldRef:v,renderOptionRef:g,nodePropsRef:u,menuPropsRef:p}=t,b=Ee(Af,null),m=Ee(uc),y=Ee(Ui),$=O(()=>e.tmNode.rawNode),S=O(()=>{const{value:N}=v;return od(e.tmNode.rawNode,N)}),x=O(()=>{const{disabled:N}=e.tmNode;return N}),R=O(()=>{if(!S.value)return!1;const{key:N,disabled:V}=e.tmNode;if(V)return!1;const{value:ie}=n,{value:he}=o,{value:J}=r,{value:re}=i;return ie!==null?re.includes(N):he!==null?re.includes(N)&&re[re.length-1]!==N:J!==null?re.includes(N):!1}),C=O(()=>o.value===null&&!a.value),w=zy(R,300,C),k=O(()=>!!b?.enteringSubmenuRef.value),F=E(!1);qe(Af,{enteringSubmenuRef:F});function M(){F.value=!0}function _(){F.value=!1}function T(){const{parentKey:N,tmNode:V}=e;V.disabled||s.value&&(r.value=N,o.value=null,n.value=V.key)}function B(){const{tmNode:N}=e;N.disabled||s.value&&n.value!==N.key&&T()}function D(N){if(e.tmNode.disabled||!s.value)return;const{relatedTarget:V}=N;V&&!yn({target:V},"dropdownOption")&&!yn({target:V},"scrollbarRail")&&(n.value=null)}function K(){const{value:N}=S,{tmNode:V}=e;s.value&&!N&&!V.disabled&&(t.doSelect(V.key,V.rawNode),t.doUpdateShow(!1))}return{labelField:f,renderLabel:d,renderIcon:c,siblingHasIcon:m.showIconRef,siblingHasSubmenu:m.hasSubmenuRef,menuProps:p,popoverBody:y,animated:a,mergedShowSubmenu:O(()=>w.value&&!k.value),rawNode:$,hasSubmenu:S,pending:ot(()=>{const{value:N}=i,{key:V}=e.tmNode;return N.includes(V)}),childActive:ot(()=>{const{value:N}=l,{key:V}=e.tmNode,ie=N.findIndex(he=>V===he);return ie===-1?!1:ie{const{value:N}=l,{key:V}=e.tmNode,ie=N.findIndex(he=>V===he);return ie===-1?!1:ie===N.length-1}),mergedDisabled:x,renderOption:g,nodeProps:u,handleClick:K,handleMouseMove:B,handleMouseEnter:T,handleMouseLeave:D,handleSubmenuBeforeEnter:M,handleSubmenuAfterEnter:_}},render(){var e,t;const{animated:n,rawNode:o,mergedShowSubmenu:r,clsPrefix:i,siblingHasIcon:l,siblingHasSubmenu:a,renderLabel:s,renderIcon:d,renderOption:c,nodeProps:f,props:v,scrollable:g}=this;let u=null;if(r){const y=(e=this.menuProps)===null||e===void 0?void 0:e.call(this,o,o.children);u=h(ug,Object.assign({},y,{clsPrefix:i,scrollable:this.scrollable,tmNodes:this.tmNode.children,parentKey:this.tmNode.key}))}const p={class:[`${i}-dropdown-option-body`,this.pending&&`${i}-dropdown-option-body--pending`,this.active&&`${i}-dropdown-option-body--active`,this.childActive&&`${i}-dropdown-option-body--child-active`,this.mergedDisabled&&`${i}-dropdown-option-body--disabled`],onMousemove:this.handleMouseMove,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onClick:this.handleClick},b=f?.(o),m=h("div",Object.assign({class:[`${i}-dropdown-option`,b?.class],"data-dropdown-option":!0},b),h("div",nn(p,v),[h("div",{class:[`${i}-dropdown-option-body__prefix`,l&&`${i}-dropdown-option-body__prefix--show-icon`]},[d?d(o):wt(o.icon)]),h("div",{"data-dropdown-option":!0,class:`${i}-dropdown-option-body__label`},s?s(o):wt((t=o[this.labelField])!==null&&t!==void 0?t:o.title)),h("div",{"data-dropdown-option":!0,class:[`${i}-dropdown-option-body__suffix`,a&&`${i}-dropdown-option-body__suffix--has-submenu`]},this.hasSubmenu?h(e2,null,{default:()=>h(Pv,null)}):null)]),this.hasSubmenu?h(Ed,null,{default:()=>[h(Md,null,{default:()=>h("div",{class:`${i}-dropdown-offset-container`},h(Ad,{show:this.mergedShowSubmenu,placement:this.placement,to:g&&this.popoverBody||void 0,teleportDisabled:!g},{default:()=>h("div",{class:`${i}-dropdown-menu-wrapper`},n?h(pn,{onBeforeEnter:this.handleSubmenuBeforeEnter,onAfterEnter:this.handleSubmenuAfterEnter,name:"fade-in-scale-up-transition",appear:!0},{default:()=>u}):u)}))})]}):null);return c?c({node:m,option:o}):m}}),o2=pe({name:"NDropdownGroup",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null}},render(){const{tmNode:e,parentKey:t,clsPrefix:n}=this,{children:o}=e;return h(nt,null,h(X$,{clsPrefix:n,tmNode:e,key:e.key}),o?.map(r=>{const{rawNode:i}=r;return i.show===!1?null:dg(i)?h(sg,{clsPrefix:n,key:r.key}):r.isGroup?(Zn("dropdown","`group` node is not allowed to be put in `group` node."),null):h(cg,{clsPrefix:n,tmNode:r,parentKey:t,key:r.key})}))}}),r2=pe({name:"DropdownRenderOption",props:{tmNode:{type:Object,required:!0}},render(){const{rawNode:{render:e,props:t}}=this.tmNode;return h("div",t,[e?.()])}}),ug=pe({name:"DropdownMenu",props:{scrollable:Boolean,showArrow:Boolean,arrowStyle:[String,Object],clsPrefix:{type:String,required:!0},tmNodes:{type:Array,default:()=>[]},parentKey:{type:[String,Number],default:null}},setup(e){const{renderIconRef:t,childrenFieldRef:n}=Ee(ma);qe(uc,{showIconRef:O(()=>{const r=t.value;return e.tmNodes.some(i=>{var l;if(i.isGroup)return(l=i.children)===null||l===void 0?void 0:l.some(({rawNode:s})=>r?r(s):s.icon);const{rawNode:a}=i;return r?r(a):a.icon})}),hasSubmenuRef:O(()=>{const{value:r}=n;return e.tmNodes.some(i=>{var l;if(i.isGroup)return(l=i.children)===null||l===void 0?void 0:l.some(({rawNode:s})=>od(s,r));const{rawNode:a}=i;return od(a,r)})})});const o=E(null);return qe(ua,null),qe(ca,null),qe(Ui,o),{bodyRef:o}},render(){const{parentKey:e,clsPrefix:t,scrollable:n}=this,o=this.tmNodes.map(r=>{const{rawNode:i}=r;return i.show===!1?null:n2(i)?h(r2,{tmNode:r,key:r.key}):dg(i)?h(sg,{clsPrefix:t,key:r.key}):t2(i)?h(o2,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key}):h(cg,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key,props:i.props,scrollable:n})});return h("div",{class:[`${t}-dropdown-menu`,n&&`${t}-dropdown-menu--scrollable`],ref:"bodyRef"},n?h(zv,{contentClass:`${t}-dropdown-menu__content`},{default:()=>o}):o,this.showArrow?Bv({clsPrefix:t,arrowStyle:this.arrowStyle,arrowClass:void 0,arrowWrapperClass:void 0,arrowWrapperStyle:void 0}):null)}}),i2=P("dropdown-menu",` + transform-origin: var(--v-transform-origin); + background-color: var(--n-color); + border-radius: var(--n-border-radius); + box-shadow: var(--n-box-shadow); + position: relative; + transition: + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); +`,[Yi(),P("dropdown-option",` + position: relative; + `,[I("a",` + text-decoration: none; + color: inherit; + outline: none; + `,[I("&::before",` + content: ""; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `)]),P("dropdown-option-body",` + display: flex; + cursor: pointer; + position: relative; + height: var(--n-option-height); + line-height: var(--n-option-height); + font-size: var(--n-font-size); + color: var(--n-option-text-color); + transition: color .3s var(--n-bezier); + `,[I("&::before",` + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 4px; + right: 4px; + transition: background-color .3s var(--n-bezier); + border-radius: var(--n-border-radius); + `),dt("disabled",[H("pending",` + color: var(--n-option-text-color-hover); + `,[j("prefix, suffix",` + color: var(--n-option-text-color-hover); + `),I("&::before","background-color: var(--n-option-color-hover);")]),H("active",` + color: var(--n-option-text-color-active); + `,[j("prefix, suffix",` + color: var(--n-option-text-color-active); + `),I("&::before","background-color: var(--n-option-color-active);")]),H("child-active",` + color: var(--n-option-text-color-child-active); + `,[j("prefix, suffix",` + color: var(--n-option-text-color-child-active); + `)])]),H("disabled",` + cursor: not-allowed; + opacity: var(--n-option-opacity-disabled); + `),H("group",` + font-size: calc(var(--n-font-size) - 1px); + color: var(--n-group-header-text-color); + `,[j("prefix",` + width: calc(var(--n-option-prefix-width) / 2); + `,[H("show-icon",` + width: calc(var(--n-option-icon-prefix-width) / 2); + `)])]),j("prefix",` + width: var(--n-option-prefix-width); + display: flex; + justify-content: center; + align-items: center; + color: var(--n-prefix-color); + transition: color .3s var(--n-bezier); + z-index: 1; + `,[H("show-icon",` + width: var(--n-option-icon-prefix-width); + `),P("icon",` + font-size: var(--n-option-icon-size); + `)]),j("label",` + white-space: nowrap; + flex: 1; + z-index: 1; + `),j("suffix",` + box-sizing: border-box; + flex-grow: 0; + flex-shrink: 0; + display: flex; + justify-content: flex-end; + align-items: center; + min-width: var(--n-option-suffix-width); + padding: 0 8px; + transition: color .3s var(--n-bezier); + color: var(--n-suffix-color); + z-index: 1; + `,[H("has-submenu",` + width: var(--n-option-icon-suffix-width); + `),P("icon",` + font-size: var(--n-option-icon-size); + `)]),P("dropdown-menu","pointer-events: all;")]),P("dropdown-offset-container",` + pointer-events: none; + position: absolute; + left: 0; + right: 0; + top: -4px; + bottom: -4px; + `)]),P("dropdown-divider",` + transition: background-color .3s var(--n-bezier); + background-color: var(--n-divider-color); + height: 1px; + margin: 4px 0; + `),P("dropdown-menu-wrapper",` + transform-origin: var(--v-transform-origin); + width: fit-content; + `),I(">",[P("scrollbar",` + height: inherit; + max-height: inherit; + `)]),dt("scrollable",` + padding: var(--n-padding); + `),H("scrollable",[j("content",` + padding: var(--n-padding); + `)])]),l2={animated:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},size:String,inverted:Boolean,placement:{type:String,default:"bottom"},onSelect:[Function,Array],options:{type:Array,default:()=>[]},menuProps:Function,showArrow:Boolean,renderLabel:Function,renderIcon:Function,renderOption:Function,nodeProps:Function,labelField:{type:String,default:"label"},keyField:{type:String,default:"key"},childrenField:{type:String,default:"children"},value:[String,Number]},a2=Object.keys(Nr),s2=Object.assign(Object.assign(Object.assign({},Nr),l2),Be.props),d2=pe({name:"Dropdown",inheritAttrs:!1,props:s2,setup(e){const t=E(!1),n=qt(we(e,"show"),t),o=O(()=>{const{keyField:B,childrenField:D}=e;return ba(e.options,{getKey(K){return K[B]},getDisabled(K){return K.disabled===!0},getIgnored(K){return K.type==="divider"||K.type==="render"},getChildren(K){return K[D]}})}),r=O(()=>o.value.treeNodes),i=E(null),l=E(null),a=E(null),s=O(()=>{var B,D,K;return(K=(D=(B=i.value)!==null&&B!==void 0?B:l.value)!==null&&D!==void 0?D:a.value)!==null&&K!==void 0?K:null}),d=O(()=>o.value.getPath(s.value).keyPath),c=O(()=>o.value.getPath(e.value).keyPath),f=ot(()=>e.keyboard&&n.value);$y({keydown:{ArrowUp:{prevent:!0,handler:C},ArrowRight:{prevent:!0,handler:R},ArrowDown:{prevent:!0,handler:w},ArrowLeft:{prevent:!0,handler:x},Enter:{prevent:!0,handler:k},Escape:S}},f);const{mergedClsPrefixRef:v,inlineThemeDisabled:g,mergedComponentPropsRef:u}=Ye(e),p=O(()=>{var B,D;return e.size||((D=(B=u?.value)===null||B===void 0?void 0:B.Dropdown)===null||D===void 0?void 0:D.size)||"medium"}),b=Be("Dropdown","-dropdown",i2,Zv,e,v);qe(ma,{labelFieldRef:we(e,"labelField"),childrenFieldRef:we(e,"childrenField"),renderLabelRef:we(e,"renderLabel"),renderIconRef:we(e,"renderIcon"),hoverKeyRef:i,keyboardKeyRef:l,lastToggledSubmenuKeyRef:a,pendingKeyPathRef:d,activeKeyPathRef:c,animatedRef:we(e,"animated"),mergedShowRef:n,nodePropsRef:we(e,"nodeProps"),renderOptionRef:we(e,"renderOption"),menuPropsRef:we(e,"menuProps"),doSelect:m,doUpdateShow:y}),tt(n,B=>{!e.animated&&!B&&$()});function m(B,D){const{onSelect:K}=e;K&&me(K,B,D)}function y(B){const{"onUpdate:show":D,onUpdateShow:K}=e;D&&me(D,B),K&&me(K,B),t.value=B}function $(){i.value=null,l.value=null,a.value=null}function S(){y(!1)}function x(){M("left")}function R(){M("right")}function C(){M("up")}function w(){M("down")}function k(){const B=F();B?.isLeaf&&n.value&&(m(B.key,B.rawNode),y(!1))}function F(){var B;const{value:D}=o,{value:K}=s;return!D||K===null?null:(B=D.getNode(K))!==null&&B!==void 0?B:null}function M(B){const{value:D}=s,{value:{getFirstAvailableNode:K}}=o;let N=null;if(D===null){const V=K();V!==null&&(N=V.key)}else{const V=F();if(V){let ie;switch(B){case"down":ie=V.getNext();break;case"up":ie=V.getPrev();break;case"right":ie=V.getChild();break;case"left":ie=V.getParent();break}ie&&(N=ie.key)}}N!==null&&(i.value=null,l.value=N)}const _=O(()=>{const{inverted:B}=e,D=p.value,{common:{cubicBezierEaseInOut:K},self:N}=b.value,{padding:V,dividerColor:ie,borderRadius:he,optionOpacityDisabled:J,[de("optionIconSuffixWidth",D)]:re,[de("optionSuffixWidth",D)]:ye,[de("optionIconPrefixWidth",D)]:Z,[de("optionPrefixWidth",D)]:le,[de("fontSize",D)]:$e,[de("optionHeight",D)]:ze,[de("optionIconSize",D)]:Ae}=N,Te={"--n-bezier":K,"--n-font-size":$e,"--n-padding":V,"--n-border-radius":he,"--n-option-height":ze,"--n-option-prefix-width":le,"--n-option-icon-prefix-width":Z,"--n-option-suffix-width":ye,"--n-option-icon-suffix-width":re,"--n-option-icon-size":Ae,"--n-divider-color":ie,"--n-option-opacity-disabled":J};return B?(Te["--n-color"]=N.colorInverted,Te["--n-option-color-hover"]=N.optionColorHoverInverted,Te["--n-option-color-active"]=N.optionColorActiveInverted,Te["--n-option-text-color"]=N.optionTextColorInverted,Te["--n-option-text-color-hover"]=N.optionTextColorHoverInverted,Te["--n-option-text-color-active"]=N.optionTextColorActiveInverted,Te["--n-option-text-color-child-active"]=N.optionTextColorChildActiveInverted,Te["--n-prefix-color"]=N.prefixColorInverted,Te["--n-suffix-color"]=N.suffixColorInverted,Te["--n-group-header-text-color"]=N.groupHeaderTextColorInverted):(Te["--n-color"]=N.color,Te["--n-option-color-hover"]=N.optionColorHover,Te["--n-option-color-active"]=N.optionColorActive,Te["--n-option-text-color"]=N.optionTextColor,Te["--n-option-text-color-hover"]=N.optionTextColorHover,Te["--n-option-text-color-active"]=N.optionTextColorActive,Te["--n-option-text-color-child-active"]=N.optionTextColorChildActive,Te["--n-prefix-color"]=N.prefixColor,Te["--n-suffix-color"]=N.suffixColor,Te["--n-group-header-text-color"]=N.groupHeaderTextColor),Te}),T=g?vt("dropdown",O(()=>`${p.value[0]}${e.inverted?"i":""}`),_,e):void 0;return{mergedClsPrefix:v,mergedTheme:b,mergedSize:p,tmNodes:r,mergedShow:n,handleAfterLeave:()=>{e.animated&&$()},doUpdateShow:y,cssVars:g?void 0:_,themeClass:T?.themeClass,onRender:T?.onRender}},render(){const e=(o,r,i,l,a)=>{var s;const{mergedClsPrefix:d,menuProps:c}=this;(s=this.onRender)===null||s===void 0||s.call(this);const f=c?.(void 0,this.tmNodes.map(g=>g.rawNode))||{},v={ref:qp(r),class:[o,`${d}-dropdown`,`${d}-dropdown--${this.mergedSize}-size`,this.themeClass],clsPrefix:d,tmNodes:this.tmNodes,style:[...i,this.cssVars],showArrow:this.showArrow,arrowStyle:this.arrowStyle,scrollable:this.scrollable,onMouseenter:l,onMouseleave:a};return h(ug,nn(this.$attrs,v,f))},{mergedTheme:t}=this,n={show:this.mergedShow,theme:t.peers.Popover,themeOverrides:t.peerOverrides.Popover,internalOnAfterLeave:this.handleAfterLeave,internalRenderBody:e,onUpdateShow:this.doUpdateShow,"onUpdate:show":void 0};return h(Zi,Object.assign({},Eo(this.$props,a2),n),{trigger:()=>{var o,r;return(r=(o=this.$slots).default)===null||r===void 0?void 0:r.call(o)}})}}),fg="_n_all__",hg="_n_none__";function c2(e,t,n,o){return e?r=>{for(const i of e)switch(r){case fg:n(!0);return;case hg:o(!0);return;default:if(typeof i=="object"&&i.key===r){i.onSelect(t.value);return}}}:()=>{}}function u2(e,t){return e?e.map(n=>{switch(n){case"all":return{label:t.checkTableAll,key:fg};case"none":return{label:t.uncheckTableAll,key:hg};default:return n}}):[]}const f2=pe({name:"DataTableSelectionMenu",props:{clsPrefix:{type:String,required:!0}},setup(e){const{props:t,localeRef:n,checkOptionsRef:o,rawPaginatedDataRef:r,doCheckAll:i,doUncheckAll:l}=Ee(En),a=O(()=>c2(o.value,r,i,l)),s=O(()=>u2(o.value,n.value));return()=>{var d,c,f,v;const{clsPrefix:g}=e;return h(d2,{theme:(c=(d=t.theme)===null||d===void 0?void 0:d.peers)===null||c===void 0?void 0:c.Dropdown,themeOverrides:(v=(f=t.themeOverrides)===null||f===void 0?void 0:f.peers)===null||v===void 0?void 0:v.Dropdown,options:s.value,onSelect:a.value},{default:()=>h(kt,{clsPrefix:g,class:`${g}-data-table-check-extra`},{default:()=>h(kv,null)})})}}});function ys(e){return typeof e.title=="function"?e.title(e):e.title}const h2=pe({props:{clsPrefix:{type:String,required:!0},id:{type:String,required:!0},cols:{type:Array,required:!0},width:String},render(){const{clsPrefix:e,id:t,cols:n,width:o}=this;return h("table",{style:{tableLayout:"fixed",width:o},class:`${e}-data-table-table`},h("colgroup",null,n.map(r=>h("col",{key:r.key,style:r.style}))),h("thead",{"data-n-id":t,class:`${e}-data-table-thead`},this.$slots))}}),pg=pe({name:"DataTableHeader",props:{discrete:{type:Boolean,default:!0}},setup(){const{mergedClsPrefixRef:e,scrollXRef:t,fixedColumnLeftMapRef:n,fixedColumnRightMapRef:o,mergedCurrentPageRef:r,allRowsCheckedRef:i,someRowsCheckedRef:l,rowsRef:a,colsRef:s,mergedThemeRef:d,checkOptionsRef:c,mergedSortStateRef:f,componentId:v,mergedTableLayoutRef:g,headerCheckboxDisabledRef:u,virtualScrollHeaderRef:p,headerHeightRef:b,onUnstableColumnResize:m,doUpdateResizableWidth:y,handleTableHeaderScroll:$,deriveNextSorter:S,doUncheckAll:x,doCheckAll:R}=Ee(En),C=E(),w=E({});function k(D){const K=w.value[D];return K?.getBoundingClientRect().width}function F(){i.value?x():R()}function M(D,K){if(yn(D,"dataTableFilter")||yn(D,"dataTableResizable")||!ms(K))return;const N=f.value.find(ie=>ie.columnKey===K.key)||null,V=k$(K,N);S(V)}const _=new Map;function T(D){_.set(D.key,k(D.key))}function B(D,K){const N=_.get(D.key);if(N===void 0)return;const V=N+K,ie=C$(V,D.minWidth,D.maxWidth);m(V,ie,D,k),y(D,ie)}return{cellElsRef:w,componentId:v,mergedSortState:f,mergedClsPrefix:e,scrollX:t,fixedColumnLeftMap:n,fixedColumnRightMap:o,currentPage:r,allRowsChecked:i,someRowsChecked:l,rows:a,cols:s,mergedTheme:d,checkOptions:c,mergedTableLayout:g,headerCheckboxDisabled:u,headerHeight:b,virtualScrollHeader:p,virtualListRef:C,handleCheckboxUpdateChecked:F,handleColHeaderClick:M,handleTableHeaderScroll:$,handleColumnResizeStart:T,handleColumnResize:B}},render(){const{cellElsRef:e,mergedClsPrefix:t,fixedColumnLeftMap:n,fixedColumnRightMap:o,currentPage:r,allRowsChecked:i,someRowsChecked:l,rows:a,cols:s,mergedTheme:d,checkOptions:c,componentId:f,discrete:v,mergedTableLayout:g,headerCheckboxDisabled:u,mergedSortState:p,virtualScrollHeader:b,handleColHeaderClick:m,handleCheckboxUpdateChecked:y,handleColumnResizeStart:$,handleColumnResize:S}=this,x=(k,F,M)=>k.map(({column:_,colIndex:T,colSpan:B,rowSpan:D,isLast:K})=>{var N,V;const ie=Sn(_),{ellipsis:he}=_,J=()=>_.type==="selection"?_.multiple!==!1?h(nt,null,h(lc,{key:r,privateInsideTable:!0,checked:i,indeterminate:l,disabled:u,onUpdateChecked:y}),c?h(f2,{clsPrefix:t}):null):null:h(nt,null,h("div",{class:`${t}-data-table-th__title-wrapper`},h("div",{class:`${t}-data-table-th__title`},he===!0||he&&!he.tooltip?h("div",{class:`${t}-data-table-th__ellipsis`},ys(_)):he&&typeof he=="object"?h(cc,Object.assign({},he,{theme:d.peers.Ellipsis,themeOverrides:d.peerOverrides.Ellipsis}),{default:()=>ys(_)}):ys(_)),ms(_)?h(q$,{column:_}):null),Ef(_)?h(K$,{column:_,options:_.filterOptions}):null,ng(_)?h(U$,{onResizeStart:()=>{$(_)},onResize:le=>{S(_,le)}}):null),re=ie in n,ye=ie in o,Z=F&&!_.fixed?"div":"th";return h(Z,{ref:le=>e[ie]=le,key:ie,style:[F&&!_.fixed?{position:"absolute",left:pt(F(T)),top:0,bottom:0}:{left:pt((N=n[ie])===null||N===void 0?void 0:N.start),right:pt((V=o[ie])===null||V===void 0?void 0:V.start)},{width:pt(_.width),textAlign:_.titleAlign||_.align,height:M}],colspan:B,rowspan:D,"data-col-key":ie,class:[`${t}-data-table-th`,(re||ye)&&`${t}-data-table-th--fixed-${re?"left":"right"}`,{[`${t}-data-table-th--sorting`]:og(_,p),[`${t}-data-table-th--filterable`]:Ef(_),[`${t}-data-table-th--sortable`]:ms(_),[`${t}-data-table-th--selection`]:_.type==="selection",[`${t}-data-table-th--last`]:K},_.className],onClick:_.type!=="selection"&&_.type!=="expand"&&!("children"in _)?le=>{m(le,_)}:void 0},J())});if(b){const{headerHeight:k}=this;let F=0,M=0;return s.forEach(_=>{_.column.fixed==="left"?F++:_.column.fixed==="right"&&M++}),h(Ld,{ref:"virtualListRef",class:`${t}-data-table-base-table-header`,style:{height:pt(k)},onScroll:this.handleTableHeaderScroll,columns:s,itemSize:k,showScrollbar:!1,items:[{}],itemResizable:!1,visibleItemsTag:h2,visibleItemsProps:{clsPrefix:t,id:f,cols:s,width:Gt(this.scrollX)},renderItemWithCols:({startColIndex:_,endColIndex:T,getLeft:B})=>{const D=s.map((N,V)=>({column:N.column,isLast:V===s.length-1,colIndex:N.index,colSpan:1,rowSpan:1})).filter(({column:N},V)=>!!(_<=V&&V<=T||N.fixed)),K=x(D,B,pt(k));return K.splice(F,0,h("th",{colspan:s.length-F-M,style:{pointerEvents:"none",visibility:"hidden",height:0}})),h("tr",{style:{position:"relative"}},K)}},{default:({renderedItemWithCols:_})=>_})}const R=h("thead",{class:`${t}-data-table-thead`,"data-n-id":f},a.map(k=>h("tr",{class:`${t}-data-table-tr`},x(k,null,void 0))));if(!v)return R;const{handleTableHeaderScroll:C,scrollX:w}=this;return h("div",{class:`${t}-data-table-base-table-header`,onScroll:C},h("table",{class:`${t}-data-table-table`,style:{minWidth:Gt(w),tableLayout:g}},h("colgroup",null,s.map(k=>h("col",{key:k.key,style:k.style}))),R))}});function p2(e,t){const n=[];function o(r,i){r.forEach(l=>{l.children&&t.has(l.key)?(n.push({tmNode:l,striped:!1,key:l.key,index:i}),o(l.children,i)):n.push({key:l.key,tmNode:l,striped:!1,index:i})})}return e.forEach(r=>{n.push(r);const{children:i}=r.tmNode;i&&t.has(r.key)&&o(i,r.index)}),n}const v2=pe({props:{clsPrefix:{type:String,required:!0},id:{type:String,required:!0},cols:{type:Array,required:!0},onMouseenter:Function,onMouseleave:Function},render(){const{clsPrefix:e,id:t,cols:n,onMouseenter:o,onMouseleave:r}=this;return h("table",{style:{tableLayout:"fixed"},class:`${e}-data-table-table`,onMouseenter:o,onMouseleave:r},h("colgroup",null,n.map(i=>h("col",{key:i.key,style:i.style}))),h("tbody",{"data-n-id":t,class:`${e}-data-table-tbody`},this.$slots))}}),g2=pe({name:"DataTableBody",props:{onResize:Function,showHeader:Boolean,flexHeight:Boolean,bodyStyle:Object},setup(e){const{slots:t,bodyWidthRef:n,mergedExpandedRowKeysRef:o,mergedClsPrefixRef:r,mergedThemeRef:i,scrollXRef:l,colsRef:a,paginatedDataRef:s,rawPaginatedDataRef:d,fixedColumnLeftMapRef:c,fixedColumnRightMapRef:f,mergedCurrentPageRef:v,rowClassNameRef:g,leftActiveFixedColKeyRef:u,leftActiveFixedChildrenColKeysRef:p,rightActiveFixedColKeyRef:b,rightActiveFixedChildrenColKeysRef:m,renderExpandRef:y,hoverKeyRef:$,summaryRef:S,mergedSortStateRef:x,virtualScrollRef:R,virtualScrollXRef:C,heightForRowRef:w,minRowHeightRef:k,componentId:F,mergedTableLayoutRef:M,childTriggerColIndexRef:_,indentRef:T,rowPropsRef:B,stripedRef:D,loadingRef:K,onLoadRef:N,loadingKeySetRef:V,expandableRef:ie,stickyExpandedRowsRef:he,renderExpandIconRef:J,summaryPlacementRef:re,treeMateRef:ye,scrollbarPropsRef:Z,setHeaderScrollLeft:le,doUpdateExpandedRowKeys:$e,handleTableBodyScroll:ze,doCheck:Ae,doUncheck:Te,renderCell:ne,xScrollableRef:Oe,explicitlyScrollableRef:z}=Ee(En),L=Ee(Fn),ee=E(null),se=E(null),ae=E(null),Q=O(()=>{var Re,te;return(te=(Re=L?.mergedComponentPropsRef.value)===null||Re===void 0?void 0:Re.DataTable)===null||te===void 0?void 0:te.renderEmpty}),ue=ot(()=>s.value.length===0),ve=ot(()=>R.value&&!ue.value);let fe="";const oe=O(()=>new Set(o.value));function q(Re){var te;return(te=ye.value.getNode(Re))===null||te===void 0?void 0:te.rawNode}function G(Re,te,A){const X=q(Re.key);if(!X){Zn("data-table",`fail to get row data with key ${Re.key}`);return}if(A){const be=s.value.findIndex(_e=>_e.key===fe);if(be!==-1){const _e=s.value.findIndex(Fe=>Fe.key===Re.key),xe=Math.min(be,_e),ke=Math.max(be,_e),Ce=[];s.value.slice(xe,ke+1).forEach(Fe=>{Fe.disabled||Ce.push(Fe.key)}),te?Ae(Ce,!1,X):Te(Ce,X),fe=Re.key;return}}te?Ae(Re.key,!1,X):Te(Re.key,X),fe=Re.key}function W(Re){const te=q(Re.key);if(!te){Zn("data-table",`fail to get row data with key ${Re.key}`);return}Ae(Re.key,!0,te)}function Y(){if(ve.value)return Ie();const{value:Re}=ee;return Re?Re.containerRef:null}function Se(Re,te){var A;if(V.value.has(Re))return;const{value:X}=o,be=X.indexOf(Re),_e=Array.from(X);~be?(_e.splice(be,1),$e(_e)):te&&!te.isLeaf&&!te.shallowLoaded?(V.value.add(Re),(A=N.value)===null||A===void 0||A.call(N,te.rawNode).then(()=>{const{value:xe}=o,ke=Array.from(xe);~ke.indexOf(Re)||ke.push(Re),$e(ke)}).finally(()=>{V.value.delete(Re)})):(_e.push(Re),$e(_e))}function Le(){$.value=null}function Ie(){const{value:Re}=se;return Re?.listElRef||null}function De(){const{value:Re}=se;return Re?.itemsElRef||null}function Ge(Re){var te;ze(Re),(te=ee.value)===null||te===void 0||te.sync()}function Xe(Re){var te;const{onResize:A}=e;A&&A(Re),(te=ee.value)===null||te===void 0||te.sync()}const at={getScrollContainer:Y,scrollTo(Re,te){var A,X;R.value?(A=se.value)===null||A===void 0||A.scrollTo(Re,te):(X=ee.value)===null||X===void 0||X.scrollTo(Re,te)}},mt=I([({props:Re})=>{const te=X=>X===null?null:I(`[data-n-id="${Re.componentId}"] [data-col-key="${X}"]::after`,{boxShadow:"var(--n-box-shadow-after)"}),A=X=>X===null?null:I(`[data-n-id="${Re.componentId}"] [data-col-key="${X}"]::before`,{boxShadow:"var(--n-box-shadow-before)"});return I([te(Re.leftActiveFixedColKey),A(Re.rightActiveFixedColKey),Re.leftActiveFixedChildrenColKeys.map(X=>te(X)),Re.rightActiveFixedChildrenColKeys.map(X=>A(X))])}]);let ft=!1;return en(()=>{const{value:Re}=u,{value:te}=p,{value:A}=b,{value:X}=m;if(!ft&&Re===null&&A===null)return;const be={leftActiveFixedColKey:Re,leftActiveFixedChildrenColKeys:te,rightActiveFixedColKey:A,rightActiveFixedChildrenColKeys:X,componentId:F};mt.mount({id:`n-${F}`,force:!0,props:be,anchorMetaName:Hr,parent:L?.styleMountTarget}),ft=!0}),ra(()=>{mt.unmount({id:`n-${F}`,parent:L?.styleMountTarget})}),Object.assign({bodyWidth:n,summaryPlacement:re,dataTableSlots:t,componentId:F,scrollbarInstRef:ee,virtualListRef:se,emptyElRef:ae,summary:S,mergedClsPrefix:r,mergedTheme:i,mergedRenderEmpty:Q,scrollX:l,cols:a,loading:K,shouldDisplayVirtualList:ve,empty:ue,paginatedDataAndInfo:O(()=>{const{value:Re}=D;let te=!1;return{data:s.value.map(Re?(X,be)=>(X.isLeaf||(te=!0),{tmNode:X,key:X.key,striped:be%2===1,index:be}):(X,be)=>(X.isLeaf||(te=!0),{tmNode:X,key:X.key,striped:!1,index:be})),hasChildren:te}}),rawPaginatedData:d,fixedColumnLeftMap:c,fixedColumnRightMap:f,currentPage:v,rowClassName:g,renderExpand:y,mergedExpandedRowKeySet:oe,hoverKey:$,mergedSortState:x,virtualScroll:R,virtualScrollX:C,heightForRow:w,minRowHeight:k,mergedTableLayout:M,childTriggerColIndex:_,indent:T,rowProps:B,loadingKeySet:V,expandable:ie,stickyExpandedRows:he,renderExpandIcon:J,scrollbarProps:Z,setHeaderScrollLeft:le,handleVirtualListScroll:Ge,handleVirtualListResize:Xe,handleMouseleaveTable:Le,virtualListContainer:Ie,virtualListContent:De,handleTableBodyScroll:ze,handleCheckboxUpdateChecked:G,handleRadioUpdateChecked:W,handleUpdateExpanded:Se,renderCell:ne,explicitlyScrollable:z,xScrollable:Oe},at)},render(){const{mergedTheme:e,scrollX:t,mergedClsPrefix:n,explicitlyScrollable:o,xScrollable:r,loadingKeySet:i,onResize:l,setHeaderScrollLeft:a,empty:s,shouldDisplayVirtualList:d}=this,c={minWidth:Gt(t)||"100%"};t&&(c.width="100%");const f=()=>h("div",{class:[`${n}-data-table-empty`,this.loading&&`${n}-data-table-empty--hide`],style:[this.bodyStyle,r?"position: sticky; left: 0; width: var(--n-scrollbar-current-width);":void 0],ref:"emptyElRef"},$n(this.dataTableSlots.empty,()=>{var g;return[((g=this.mergedRenderEmpty)===null||g===void 0?void 0:g.call(this))||h(Ov,{theme:this.mergedTheme.peers.Empty,themeOverrides:this.mergedTheme.peerOverrides.Empty})]})),v=h(bo,Object.assign({},this.scrollbarProps,{ref:"scrollbarInstRef",scrollable:o||r,class:`${n}-data-table-base-table-body`,style:s?"height: initial;":this.bodyStyle,theme:e.peers.Scrollbar,themeOverrides:e.peerOverrides.Scrollbar,contentStyle:c,container:d?this.virtualListContainer:void 0,content:d?this.virtualListContent:void 0,horizontalRailStyle:{zIndex:3},verticalRailStyle:{zIndex:3},internalExposeWidthCssVar:r&&s,xScrollable:r,onScroll:d?void 0:this.handleTableBodyScroll,internalOnUpdateScrollLeft:a,onResize:l}),{default:()=>{if(this.empty&&!this.showHeader&&(this.explicitlyScrollable||this.xScrollable))return f();const g={},u={},{cols:p,paginatedDataAndInfo:b,mergedTheme:m,fixedColumnLeftMap:y,fixedColumnRightMap:$,currentPage:S,rowClassName:x,mergedSortState:R,mergedExpandedRowKeySet:C,stickyExpandedRows:w,componentId:k,childTriggerColIndex:F,expandable:M,rowProps:_,handleMouseleaveTable:T,renderExpand:B,summary:D,handleCheckboxUpdateChecked:K,handleRadioUpdateChecked:N,handleUpdateExpanded:V,heightForRow:ie,minRowHeight:he,virtualScrollX:J}=this,{length:re}=p;let ye;const{data:Z,hasChildren:le}=b,$e=le?p2(Z,C):Z;if(D){const Q=D(this.rawPaginatedData);if(Array.isArray(Q)){const ue=Q.map((ve,fe)=>({isSummaryRow:!0,key:`__n_summary__${fe}`,tmNode:{rawNode:ve,disabled:!0},index:-1}));ye=this.summaryPlacement==="top"?[...ue,...$e]:[...$e,...ue]}else{const ue={isSummaryRow:!0,key:"__n_summary__",tmNode:{rawNode:Q,disabled:!0},index:-1};ye=this.summaryPlacement==="top"?[ue,...$e]:[...$e,ue]}}else ye=$e;const ze=le?{width:pt(this.indent)}:void 0,Ae=[];ye.forEach(Q=>{B&&C.has(Q.key)&&(!M||M(Q.tmNode.rawNode))?Ae.push(Q,{isExpandedRow:!0,key:`${Q.key}-expand`,tmNode:Q.tmNode,index:Q.index}):Ae.push(Q)});const{length:Te}=Ae,ne={};Z.forEach(({tmNode:Q},ue)=>{ne[ue]=Q.key});const Oe=w?this.bodyWidth:null,z=Oe===null?void 0:`${Oe}px`,L=this.virtualScrollX?"div":"td";let ee=0,se=0;J&&p.forEach(Q=>{Q.column.fixed==="left"?ee++:Q.column.fixed==="right"&&se++});const ae=({rowInfo:Q,displayedRowIndex:ue,isVirtual:ve,isVirtualX:fe,startColIndex:oe,endColIndex:q,getLeft:G})=>{const{index:W}=Q;if("isExpandedRow"in Q){const{tmNode:{key:A,rawNode:X}}=Q;return h("tr",{class:`${n}-data-table-tr ${n}-data-table-tr--expanded`,key:`${A}__expand`},h("td",{class:[`${n}-data-table-td`,`${n}-data-table-td--last-col`,ue+1===Te&&`${n}-data-table-td--last-row`],colspan:re},w?h("div",{class:`${n}-data-table-expand`,style:{width:z}},B(X,W)):B(X,W)))}const Y="isSummaryRow"in Q,Se=!Y&&Q.striped,{tmNode:Le,key:Ie}=Q,{rawNode:De}=Le,Ge=C.has(Ie),Xe=_?_(De,W):void 0,at=typeof x=="string"?x:R$(De,W,x),mt=fe?p.filter((A,X)=>!!(oe<=X&&X<=q||A.column.fixed)):p,ft=fe?pt(ie?.(De,W)||he):void 0,Re=mt.map(A=>{var X,be,_e,xe,ke;const Ce=A.index;if(ue in g){const je=g[ue],Ve=je.indexOf(Ce);if(~Ve)return je.splice(Ve,1),null}const{column:Fe}=A,Ze=Sn(A),{rowSpan:Lt,colSpan:Et}=Fe,Dt=Y?((X=Q.tmNode.rawNode[Ze])===null||X===void 0?void 0:X.colSpan)||1:Et?Et(De,W):1,zt=Y?((be=Q.tmNode.rawNode[Ze])===null||be===void 0?void 0:be.rowSpan)||1:Lt?Lt(De,W):1,Ht=Ce+Dt===re,on=ue+zt===Te,Nt=zt>1;if(Nt&&(u[ue]={[Ce]:[]}),Dt>1||Nt)for(let je=ue;je{V(Ie,Q.tmNode)}})]:null,Fe.type==="selection"?Y?null:Fe.multiple===!1?h(I$,{key:S,rowKey:Ie,disabled:Q.tmNode.disabled,onUpdateChecked:()=>{N(Q.tmNode)}}):h(_$,{key:S,rowKey:Ie,disabled:Q.tmNode.disabled,onUpdateChecked:(je,Ve)=>{K(Q.tmNode,je,Ve.shiftKey)}}):Fe.type==="expand"?Y?null:!Fe.expandable||!((ke=Fe.expandable)===null||ke===void 0)&&ke.call(Fe,De)?h(Bf,{clsPrefix:n,rowData:De,expanded:Ge,renderExpandIcon:this.renderExpandIcon,onClick:()=>{V(Ie,null)}}):null:h(N$,{clsPrefix:n,index:W,row:De,column:Fe,isSummary:Y,mergedTheme:m,renderCell:this.renderCell}))});return fe&&ee&&se&&Re.splice(ee,0,h("td",{colspan:p.length-ee-se,style:{pointerEvents:"none",visibility:"hidden",height:0}})),h("tr",Object.assign({},Xe,{onMouseenter:A=>{var X;this.hoverKey=Ie,(X=Xe?.onMouseenter)===null||X===void 0||X.call(Xe,A)},key:Ie,class:[`${n}-data-table-tr`,Y&&`${n}-data-table-tr--summary`,Se&&`${n}-data-table-tr--striped`,Ge&&`${n}-data-table-tr--expanded`,at,Xe?.class],style:[Xe?.style,fe&&{height:ft}]}),Re)};return this.shouldDisplayVirtualList?h(Ld,{ref:"virtualListRef",items:Ae,itemSize:this.minRowHeight,visibleItemsTag:v2,visibleItemsProps:{clsPrefix:n,id:k,cols:p,onMouseleave:T},showScrollbar:!1,onResize:this.handleVirtualListResize,onScroll:this.handleVirtualListScroll,itemsStyle:c,itemResizable:!J,columns:p,renderItemWithCols:J?({itemIndex:Q,item:ue,startColIndex:ve,endColIndex:fe,getLeft:oe})=>ae({displayedRowIndex:Q,isVirtual:!0,isVirtualX:!0,rowInfo:ue,startColIndex:ve,endColIndex:fe,getLeft:oe}):void 0},{default:({item:Q,index:ue,renderedItemWithCols:ve})=>ve||ae({rowInfo:Q,displayedRowIndex:ue,isVirtual:!0,isVirtualX:!1,startColIndex:0,endColIndex:0,getLeft(fe){return 0}})}):h(nt,null,h("table",{class:`${n}-data-table-table`,onMouseleave:T,style:{tableLayout:this.mergedTableLayout}},h("colgroup",null,p.map(Q=>h("col",{key:Q.key,style:Q.style}))),this.showHeader?h(pg,{discrete:!1}):null,this.empty?null:h("tbody",{"data-n-id":k,class:`${n}-data-table-tbody`},Ae.map((Q,ue)=>ae({rowInfo:Q,displayedRowIndex:ue,isVirtual:!1,isVirtualX:!1,startColIndex:-1,endColIndex:-1,getLeft(ve){return-1}})))),this.empty&&this.xScrollable?f():null)}});return this.empty?this.explicitlyScrollable||this.xScrollable?v:h(Kn,{onResize:this.onResize},{default:f}):v}}),b2=pe({name:"MainTable",setup(){const{mergedClsPrefixRef:e,rightFixedColumnsRef:t,leftFixedColumnsRef:n,bodyWidthRef:o,maxHeightRef:r,minHeightRef:i,flexHeightRef:l,virtualScrollHeaderRef:a,syncScrollState:s,scrollXRef:d}=Ee(En),c=E(null),f=E(null),v=E(null),g=E(!(n.value.length||t.value.length)),u=O(()=>({maxHeight:Gt(r.value),minHeight:Gt(i.value)}));function p($){o.value=$.contentRect.width,s(),g.value||(g.value=!0)}function b(){var $;const{value:S}=c;return S?a.value?(($=S.virtualListRef)===null||$===void 0?void 0:$.listElRef)||null:S.$el:null}function m(){const{value:$}=f;return $?$.getScrollContainer():null}const y={getBodyElement:m,getHeaderElement:b,scrollTo($,S){var x;(x=f.value)===null||x===void 0||x.scrollTo($,S)}};return en(()=>{const{value:$}=v;if(!$)return;const S=`${e.value}-data-table-base-table--transition-disabled`;g.value?setTimeout(()=>{$.classList.remove(S)},0):$.classList.add(S)}),Object.assign({maxHeight:r,mergedClsPrefix:e,selfElRef:v,headerInstRef:c,bodyInstRef:f,bodyStyle:u,flexHeight:l,handleBodyResize:p,scrollX:d},y)},render(){const{mergedClsPrefix:e,maxHeight:t,flexHeight:n}=this,o=t===void 0&&!n;return h("div",{class:`${e}-data-table-base-table`,ref:"selfElRef"},o?null:h(pg,{ref:"headerInstRef"}),h(g2,{ref:"bodyInstRef",bodyStyle:this.bodyStyle,showHeader:o,flexHeight:n,onResize:this.handleBodyResize}))}}),If=y2(),m2=I([P("data-table",` + width: 100%; + font-size: var(--n-font-size); + display: flex; + flex-direction: column; + position: relative; + --n-merged-th-color: var(--n-th-color); + --n-merged-td-color: var(--n-td-color); + --n-merged-border-color: var(--n-border-color); + --n-merged-th-color-hover: var(--n-th-color-hover); + --n-merged-th-color-sorting: var(--n-th-color-sorting); + --n-merged-td-color-hover: var(--n-td-color-hover); + --n-merged-td-color-sorting: var(--n-td-color-sorting); + --n-merged-td-color-striped: var(--n-td-color-striped); + `,[P("data-table-wrapper",` + flex-grow: 1; + display: flex; + flex-direction: column; + `),H("flex-height",[I(">",[P("data-table-wrapper",[I(">",[P("data-table-base-table",` + display: flex; + flex-direction: column; + flex-grow: 1; + `,[I(">",[P("data-table-base-table-body","flex-basis: 0;",[I("&:last-child","flex-grow: 1;")])])])])])])]),I(">",[P("data-table-loading-wrapper",` + color: var(--n-loading-color); + font-size: var(--n-loading-size); + position: absolute; + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + transition: color .3s var(--n-bezier); + display: flex; + align-items: center; + justify-content: center; + `,[Yi({originalTransform:"translateX(-50%) translateY(-50%)"})])]),P("data-table-expand-placeholder",` + margin-right: 8px; + display: inline-block; + width: 16px; + height: 1px; + `),P("data-table-indent",` + display: inline-block; + height: 1px; + `),P("data-table-expand-trigger",` + display: inline-flex; + margin-right: 8px; + cursor: pointer; + font-size: 16px; + vertical-align: -0.2em; + position: relative; + width: 16px; + height: 16px; + color: var(--n-td-text-color); + transition: color .3s var(--n-bezier); + `,[H("expanded",[P("icon","transform: rotate(90deg);",[an({originalTransform:"rotate(90deg)"})]),P("base-icon","transform: rotate(90deg);",[an({originalTransform:"rotate(90deg)"})])]),P("base-loading",` + color: var(--n-loading-color); + transition: color .3s var(--n-bezier); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `,[an()]),P("icon",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `,[an()]),P("base-icon",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `,[an()])]),P("data-table-thead",` + transition: background-color .3s var(--n-bezier); + background-color: var(--n-merged-th-color); + `),P("data-table-tr",` + position: relative; + box-sizing: border-box; + background-clip: padding-box; + transition: background-color .3s var(--n-bezier); + `,[P("data-table-expand",` + position: sticky; + left: 0; + overflow: hidden; + margin: calc(var(--n-th-padding) * -1); + padding: var(--n-th-padding); + box-sizing: border-box; + `),H("striped","background-color: var(--n-merged-td-color-striped);",[P("data-table-td","background-color: var(--n-merged-td-color-striped);")]),dt("summary",[I("&:hover","background-color: var(--n-merged-td-color-hover);",[I(">",[P("data-table-td","background-color: var(--n-merged-td-color-hover);")])])])]),P("data-table-th",` + padding: var(--n-th-padding); + position: relative; + text-align: start; + box-sizing: border-box; + background-color: var(--n-merged-th-color); + border-color: var(--n-merged-border-color); + border-bottom: 1px solid var(--n-merged-border-color); + color: var(--n-th-text-color); + transition: + border-color .3s var(--n-bezier), + color .3s var(--n-bezier), + background-color .3s var(--n-bezier); + font-weight: var(--n-th-font-weight); + `,[H("filterable",` + padding-right: 36px; + `,[H("sortable",` + padding-right: calc(var(--n-th-padding) + 36px); + `)]),If,H("selection",` + padding: 0; + text-align: center; + line-height: 0; + z-index: 3; + `),j("title-wrapper",` + display: flex; + align-items: center; + flex-wrap: nowrap; + max-width: 100%; + `,[j("title",` + flex: 1; + min-width: 0; + `)]),j("ellipsis",` + display: inline-block; + vertical-align: bottom; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + max-width: 100%; + `),H("hover",` + background-color: var(--n-merged-th-color-hover); + `),H("sorting",` + background-color: var(--n-merged-th-color-sorting); + `),H("sortable",` + cursor: pointer; + `,[j("ellipsis",` + max-width: calc(100% - 18px); + `),I("&:hover",` + background-color: var(--n-merged-th-color-hover); + `)]),P("data-table-sorter",` + height: var(--n-sorter-size); + width: var(--n-sorter-size); + margin-left: 4px; + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + vertical-align: -0.2em; + color: var(--n-th-icon-color); + transition: color .3s var(--n-bezier); + `,[P("base-icon","transition: transform .3s var(--n-bezier)"),H("desc",[P("base-icon",` + transform: rotate(0deg); + `)]),H("asc",[P("base-icon",` + transform: rotate(-180deg); + `)]),H("asc, desc",` + color: var(--n-th-icon-color-active); + `)]),P("data-table-resize-button",` + width: var(--n-resizable-container-size); + position: absolute; + top: 0; + right: calc(var(--n-resizable-container-size) / 2); + bottom: 0; + cursor: col-resize; + user-select: none; + `,[I("&::after",` + width: var(--n-resizable-size); + height: 50%; + position: absolute; + top: 50%; + left: calc(var(--n-resizable-container-size) / 2); + bottom: 0; + background-color: var(--n-merged-border-color); + transform: translateY(-50%); + transition: background-color .3s var(--n-bezier); + z-index: 1; + content: ''; + `),H("active",[I("&::after",` + background-color: var(--n-th-icon-color-active); + `)]),I("&:hover::after",` + background-color: var(--n-th-icon-color-active); + `)]),P("data-table-filter",` + position: absolute; + z-index: auto; + right: 0; + width: 36px; + top: 0; + bottom: 0; + cursor: pointer; + display: flex; + justify-content: center; + align-items: center; + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + font-size: var(--n-filter-size); + color: var(--n-th-icon-color); + `,[I("&:hover",` + background-color: var(--n-th-button-color-hover); + `),H("show",` + background-color: var(--n-th-button-color-hover); + `),H("active",` + background-color: var(--n-th-button-color-hover); + color: var(--n-th-icon-color-active); + `)])]),P("data-table-td",` + padding: var(--n-td-padding); + text-align: start; + box-sizing: border-box; + border: none; + background-color: var(--n-merged-td-color); + color: var(--n-td-text-color); + border-bottom: 1px solid var(--n-merged-border-color); + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `,[H("expand",[P("data-table-expand-trigger",` + margin-right: 0; + `)]),H("last-row",` + border-bottom: 0 solid var(--n-merged-border-color); + `,[I("&::after",` + bottom: 0 !important; + `),I("&::before",` + bottom: 0 !important; + `)]),H("summary",` + background-color: var(--n-merged-th-color); + `),H("hover",` + background-color: var(--n-merged-td-color-hover); + `),H("sorting",` + background-color: var(--n-merged-td-color-sorting); + `),j("ellipsis",` + display: inline-block; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + max-width: 100%; + vertical-align: bottom; + max-width: calc(100% - var(--indent-offset, -1.5) * 16px - 24px); + `),H("selection, expand",` + text-align: center; + padding: 0; + line-height: 0; + `),If]),P("data-table-empty",` + box-sizing: border-box; + padding: var(--n-empty-padding); + flex-grow: 1; + flex-shrink: 0; + opacity: 1; + display: flex; + align-items: center; + justify-content: center; + transition: opacity .3s var(--n-bezier); + `,[H("hide",` + opacity: 0; + `)]),j("pagination",` + margin: var(--n-pagination-margin); + display: flex; + justify-content: flex-end; + `),P("data-table-wrapper",` + position: relative; + opacity: 1; + transition: opacity .3s var(--n-bezier), border-color .3s var(--n-bezier); + border-top-left-radius: var(--n-border-radius); + border-top-right-radius: var(--n-border-radius); + line-height: var(--n-line-height); + `),H("loading",[P("data-table-wrapper",` + opacity: var(--n-opacity-loading); + pointer-events: none; + `)]),H("single-column",[P("data-table-td",` + border-bottom: 0 solid var(--n-merged-border-color); + `,[I("&::after, &::before",` + bottom: 0 !important; + `)])]),dt("single-line",[P("data-table-th",` + border-right: 1px solid var(--n-merged-border-color); + `,[H("last",` + border-right: 0 solid var(--n-merged-border-color); + `)]),P("data-table-td",` + border-right: 1px solid var(--n-merged-border-color); + `,[H("last-col",` + border-right: 0 solid var(--n-merged-border-color); + `)])]),H("bordered",[P("data-table-wrapper",` + border: 1px solid var(--n-merged-border-color); + border-bottom-left-radius: var(--n-border-radius); + border-bottom-right-radius: var(--n-border-radius); + overflow: hidden; + `)]),P("data-table-base-table",[H("transition-disabled",[P("data-table-th",[I("&::after, &::before","transition: none;")]),P("data-table-td",[I("&::after, &::before","transition: none;")])])]),H("bottom-bordered",[P("data-table-td",[H("last-row",` + border-bottom: 1px solid var(--n-merged-border-color); + `)])]),P("data-table-table",` + font-variant-numeric: tabular-nums; + width: 100%; + word-break: break-word; + transition: background-color .3s var(--n-bezier); + border-collapse: separate; + border-spacing: 0; + background-color: var(--n-merged-td-color); + `),P("data-table-base-table-header",` + border-top-left-radius: calc(var(--n-border-radius) - 1px); + border-top-right-radius: calc(var(--n-border-radius) - 1px); + z-index: 3; + overflow: scroll; + flex-shrink: 0; + transition: border-color .3s var(--n-bezier); + scrollbar-width: none; + `,[I("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` + display: none; + width: 0; + height: 0; + `)]),P("data-table-check-extra",` + transition: color .3s var(--n-bezier); + color: var(--n-th-icon-color); + position: absolute; + font-size: 14px; + right: -4px; + top: 50%; + transform: translateY(-50%); + z-index: 1; + `)]),P("data-table-filter-menu",[P("scrollbar",` + max-height: 240px; + `),j("group",` + display: flex; + flex-direction: column; + padding: 12px 12px 0 12px; + `,[P("checkbox",` + margin-bottom: 12px; + margin-right: 0; + `),P("radio",` + margin-bottom: 12px; + margin-right: 0; + `)]),j("action",` + padding: var(--n-action-padding); + display: flex; + flex-wrap: nowrap; + justify-content: space-evenly; + border-top: 1px solid var(--n-action-divider-color); + `,[P("button",[I("&:not(:last-child)",` + margin: var(--n-action-button-margin); + `),I("&:last-child",` + margin-right: 0; + `)])]),P("divider",` + margin: 0 !important; + `)]),sa(P("data-table",` + --n-merged-th-color: var(--n-th-color-modal); + --n-merged-td-color: var(--n-td-color-modal); + --n-merged-border-color: var(--n-border-color-modal); + --n-merged-th-color-hover: var(--n-th-color-hover-modal); + --n-merged-td-color-hover: var(--n-td-color-hover-modal); + --n-merged-th-color-sorting: var(--n-th-color-hover-modal); + --n-merged-td-color-sorting: var(--n-td-color-hover-modal); + --n-merged-td-color-striped: var(--n-td-color-striped-modal); + `)),$d(P("data-table",` + --n-merged-th-color: var(--n-th-color-popover); + --n-merged-td-color: var(--n-td-color-popover); + --n-merged-border-color: var(--n-border-color-popover); + --n-merged-th-color-hover: var(--n-th-color-hover-popover); + --n-merged-td-color-hover: var(--n-td-color-hover-popover); + --n-merged-th-color-sorting: var(--n-th-color-hover-popover); + --n-merged-td-color-sorting: var(--n-td-color-hover-popover); + --n-merged-td-color-striped: var(--n-td-color-striped-popover); + `))]);function y2(){return[H("fixed-left",` + left: 0; + position: sticky; + z-index: 2; + `,[I("&::after",` + pointer-events: none; + content: ""; + width: 36px; + display: inline-block; + position: absolute; + top: 0; + bottom: -1px; + transition: box-shadow .2s var(--n-bezier); + right: -36px; + `)]),H("fixed-right",` + right: 0; + position: sticky; + z-index: 1; + `,[I("&::before",` + pointer-events: none; + content: ""; + width: 36px; + display: inline-block; + position: absolute; + top: 0; + bottom: -1px; + transition: box-shadow .2s var(--n-bezier); + left: -36px; + `)])]}function x2(e,t){const{paginatedDataRef:n,treeMateRef:o,selectionColumnRef:r}=t,i=E(e.defaultCheckedRowKeys),l=O(()=>{var x;const{checkedRowKeys:R}=e,C=R===void 0?i.value:R;return((x=r.value)===null||x===void 0?void 0:x.multiple)===!1?{checkedKeys:C.slice(0,1),indeterminateKeys:[]}:o.value.getCheckedKeys(C,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded})}),a=O(()=>l.value.checkedKeys),s=O(()=>l.value.indeterminateKeys),d=O(()=>new Set(a.value)),c=O(()=>new Set(s.value)),f=O(()=>{const{value:x}=d;return n.value.reduce((R,C)=>{const{key:w,disabled:k}=C;return R+(!k&&x.has(w)?1:0)},0)}),v=O(()=>n.value.filter(x=>x.disabled).length),g=O(()=>{const{length:x}=n.value,{value:R}=c;return f.value>0&&f.valueR.has(C.key))}),u=O(()=>{const{length:x}=n.value;return f.value!==0&&f.value===x-v.value}),p=O(()=>n.value.length===0);function b(x,R,C){const{"onUpdate:checkedRowKeys":w,onUpdateCheckedRowKeys:k,onCheckedRowKeysChange:F}=e,M=[],{value:{getNode:_}}=o;x.forEach(T=>{var B;const D=(B=_(T))===null||B===void 0?void 0:B.rawNode;M.push(D)}),w&&me(w,x,M,{row:R,action:C}),k&&me(k,x,M,{row:R,action:C}),F&&me(F,x,M,{row:R,action:C}),i.value=x}function m(x,R=!1,C){if(!e.loading){if(R){b(Array.isArray(x)?x.slice(0,1):[x],C,"check");return}b(o.value.check(x,a.value,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,C,"check")}}function y(x,R){e.loading||b(o.value.uncheck(x,a.value,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,R,"uncheck")}function $(x=!1){const{value:R}=r;if(!R||e.loading)return;const C=[];(x?o.value.treeNodes:n.value).forEach(w=>{w.disabled||C.push(w.key)}),b(o.value.check(C,a.value,{cascade:!0,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,void 0,"checkAll")}function S(x=!1){const{value:R}=r;if(!R||e.loading)return;const C=[];(x?o.value.treeNodes:n.value).forEach(w=>{w.disabled||C.push(w.key)}),b(o.value.uncheck(C,a.value,{cascade:!0,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,void 0,"uncheckAll")}return{mergedCheckedRowKeySetRef:d,mergedCheckedRowKeysRef:a,mergedInderminateRowKeySetRef:c,someRowsCheckedRef:g,allRowsCheckedRef:u,headerCheckboxDisabledRef:p,doUpdateCheckedRowKeys:b,doCheckAll:$,doUncheckAll:S,doCheck:m,doUncheck:y}}function w2(e,t){const n=ot(()=>{for(const d of e.columns)if(d.type==="expand")return d.renderExpand}),o=ot(()=>{let d;for(const c of e.columns)if(c.type==="expand"){d=c.expandable;break}return d}),r=E(e.defaultExpandAll?n?.value?(()=>{const d=[];return t.value.treeNodes.forEach(c=>{var f;!((f=o.value)===null||f===void 0)&&f.call(o,c.rawNode)&&d.push(c.key)}),d})():t.value.getNonLeafKeys():e.defaultExpandedRowKeys),i=we(e,"expandedRowKeys"),l=we(e,"stickyExpandedRows"),a=qt(i,r);function s(d){const{onUpdateExpandedRowKeys:c,"onUpdate:expandedRowKeys":f}=e;c&&me(c,d),f&&me(f,d),r.value=d}return{stickyExpandedRowsRef:l,mergedExpandedRowKeysRef:a,renderExpandRef:n,expandableRef:o,doUpdateExpandedRowKeys:s}}function C2(e,t){const n=[],o=[],r=[],i=new WeakMap;let l=-1,a=0,s=!1,d=0;function c(v,g){g>l&&(n[g]=[],l=g),v.forEach(u=>{if("children"in u)c(u.children,g+1);else{const p="key"in u?u.key:void 0;o.push({key:Sn(u),style:S$(u,p!==void 0?Gt(t(p)):void 0),column:u,index:d++,width:u.width===void 0?128:Number(u.width)}),a+=1,s||(s=!!u.ellipsis),r.push(u)}})}c(e,0),d=0;function f(v,g){let u=0;v.forEach(p=>{var b;if("children"in p){const m=d,y={column:p,colIndex:d,colSpan:0,rowSpan:1,isLast:!1};f(p.children,g+1),p.children.forEach($=>{var S,x;y.colSpan+=(x=(S=i.get($))===null||S===void 0?void 0:S.colSpan)!==null&&x!==void 0?x:0}),m+y.colSpan===a&&(y.isLast=!0),i.set(p,y),n[g].push(y)}else{if(d1&&(u=d+m);const y=d+m===a,$={column:p,colSpan:m,colIndex:d,rowSpan:l-g+1,isLast:y};i.set(p,$),n[g].push($),d+=1}})}return f(e,0),{hasEllipsis:s,rows:n,cols:o,dataRelatedCols:r}}function S2(e,t){const n=O(()=>C2(e.columns,t));return{rowsRef:O(()=>n.value.rows),colsRef:O(()=>n.value.cols),hasEllipsisRef:O(()=>n.value.hasEllipsis),dataRelatedColsRef:O(()=>n.value.dataRelatedCols)}}function R2(){const e=E({});function t(r){return e.value[r]}function n(r,i){ng(r)&&"key"in r&&(e.value[r.key]=i)}function o(){e.value={}}return{getResizableWidth:t,doUpdateResizableWidth:n,clearResizableWidth:o}}function k2(e,{mainTableInstRef:t,mergedCurrentPageRef:n,bodyWidthRef:o,maxHeightRef:r,mergedTableLayoutRef:i}){const l=O(()=>e.scrollX!==void 0||r.value!==void 0||e.flexHeight),a=O(()=>{const T=!l.value&&i.value==="auto";return e.scrollX!==void 0||T});let s=0;const d=E(),c=E(null),f=E([]),v=E(null),g=E([]),u=O(()=>Gt(e.scrollX)),p=O(()=>e.columns.filter(T=>T.fixed==="left")),b=O(()=>e.columns.filter(T=>T.fixed==="right")),m=O(()=>{const T={};let B=0;function D(K){K.forEach(N=>{const V={start:B,end:0};T[Sn(N)]=V,"children"in N?(D(N.children),V.end=B):(B+=Ff(N)||0,V.end=B)})}return D(p.value),T}),y=O(()=>{const T={};let B=0;function D(K){for(let N=K.length-1;N>=0;--N){const V=K[N],ie={start:B,end:0};T[Sn(V)]=ie,"children"in V?(D(V.children),ie.end=B):(B+=Ff(V)||0,ie.end=B)}}return D(b.value),T});function $(){var T,B;const{value:D}=p;let K=0;const{value:N}=m;let V=null;for(let ie=0;ie(((T=N[he])===null||T===void 0?void 0:T.start)||0)-K)V=he,K=((B=N[he])===null||B===void 0?void 0:B.end)||0;else break}c.value=V}function S(){f.value=[];let T=e.columns.find(B=>Sn(B)===c.value);for(;T&&"children"in T;){const B=T.children.length;if(B===0)break;const D=T.children[B-1];f.value.push(Sn(D)),T=D}}function x(){var T,B;const{value:D}=b,K=Number(e.scrollX),{value:N}=o;if(N===null)return;let V=0,ie=null;const{value:he}=y;for(let J=D.length-1;J>=0;--J){const re=Sn(D[J]);if(Math.round(s+(((T=he[re])===null||T===void 0?void 0:T.start)||0)+N-V)Sn(B)===v.value);for(;T&&"children"in T&&T.children.length;){const B=T.children[0];g.value.push(Sn(B)),T=B}}function C(){const T=t.value?t.value.getHeaderElement():null,B=t.value?t.value.getBodyElement():null;return{header:T,body:B}}function w(){const{body:T}=C();T&&(T.scrollTop=0)}function k(){d.value!=="body"?Ai(M):d.value=void 0}function F(T){var B;(B=e.onScroll)===null||B===void 0||B.call(e,T),d.value!=="head"?Ai(M):d.value=void 0}function M(){const{header:T,body:B}=C();if(!B)return;const{value:D}=o;if(D!==null){if(T){const K=s-T.scrollLeft;d.value=K!==0?"head":"body",d.value==="head"?(s=T.scrollLeft,B.scrollLeft=s):(s=B.scrollLeft,T.scrollLeft=s)}else s=B.scrollLeft;$(),S(),x(),R()}}function _(T){const{header:B}=C();B&&(B.scrollLeft=T,M())}return tt(n,()=>{w()}),{styleScrollXRef:u,fixedColumnLeftMapRef:m,fixedColumnRightMapRef:y,leftFixedColumnsRef:p,rightFixedColumnsRef:b,leftActiveFixedColKeyRef:c,leftActiveFixedChildrenColKeysRef:f,rightActiveFixedColKeyRef:v,rightActiveFixedChildrenColKeysRef:g,syncScrollState:M,handleTableBodyScroll:F,handleTableHeaderScroll:k,setHeaderScrollLeft:_,explicitlyScrollableRef:l,xScrollableRef:a}}function vl(e){return typeof e=="object"&&typeof e.multiple=="number"?e.multiple:!1}function P2(e,t){return t&&(e===void 0||e==="default"||typeof e=="object"&&e.compare==="default")?$2(t):typeof e=="function"?e:e&&typeof e=="object"&&e.compare&&e.compare!=="default"?e.compare:!1}function $2(e){return(t,n)=>{const o=t[e],r=n[e];return o==null?r==null?0:-1:r==null?1:typeof o=="number"&&typeof r=="number"?o-r:typeof o=="string"&&typeof r=="string"?o.localeCompare(r):0}}function _2(e,{dataRelatedColsRef:t,filteredDataRef:n}){const o=[];t.value.forEach(g=>{var u;g.sorter!==void 0&&v(o,{columnKey:g.key,sorter:g.sorter,order:(u=g.defaultSortOrder)!==null&&u!==void 0?u:!1})});const r=E(o),i=O(()=>{const g=t.value.filter(b=>b.type!=="selection"&&b.sorter!==void 0&&(b.sortOrder==="ascend"||b.sortOrder==="descend"||b.sortOrder===!1)),u=g.filter(b=>b.sortOrder!==!1);if(u.length)return u.map(b=>({columnKey:b.key,order:b.sortOrder,sorter:b.sorter}));if(g.length)return[];const{value:p}=r;return Array.isArray(p)?p:p?[p]:[]}),l=O(()=>{const g=i.value.slice().sort((u,p)=>{const b=vl(u.sorter)||0;return(vl(p.sorter)||0)-b});return g.length?n.value.slice().sort((p,b)=>{let m=0;return g.some(y=>{const{columnKey:$,sorter:S,order:x}=y,R=P2(S,$);return R&&x&&(m=R(p.rawNode,b.rawNode),m!==0)?(m=m*w$(x),!0):!1}),m}):n.value});function a(g){let u=i.value.slice();return g&&vl(g.sorter)!==!1?(u=u.filter(p=>vl(p.sorter)!==!1),v(u,g),u):g||null}function s(g){const u=a(g);d(u)}function d(g){const{"onUpdate:sorter":u,onUpdateSorter:p,onSorterChange:b}=e;u&&me(u,g),p&&me(p,g),b&&me(b,g),r.value=g}function c(g,u="ascend"){if(!g)f();else{const p=t.value.find(m=>m.type!=="selection"&&m.type!=="expand"&&m.key===g);if(!p?.sorter)return;const b=p.sorter;s({columnKey:g,sorter:b,order:u})}}function f(){d(null)}function v(g,u){const p=g.findIndex(b=>u?.columnKey&&b.columnKey===u.columnKey);p!==void 0&&p>=0?g[p]=u:g.push(u)}return{clearSorter:f,sort:c,sortedDataRef:l,mergedSortStateRef:i,deriveNextSorter:s}}function z2(e,{dataRelatedColsRef:t}){const n=O(()=>{const J=re=>{for(let ye=0;ye{const{childrenKey:J}=e;return ba(e.data,{ignoreEmptyChildren:!0,getKey:e.rowKey,getChildren:re=>re[J],getDisabled:re=>{var ye,Z;return!!(!((Z=(ye=n.value)===null||ye===void 0?void 0:ye.disabled)===null||Z===void 0)&&Z.call(ye,re))}})}),r=ot(()=>{const{columns:J}=e,{length:re}=J;let ye=null;for(let Z=0;Z{const J=t.value.filter(Z=>Z.filterOptionValues!==void 0||Z.filterOptionValue!==void 0),re={};return J.forEach(Z=>{var le;Z.type==="selection"||Z.type==="expand"||(Z.filterOptionValues===void 0?re[Z.key]=(le=Z.filterOptionValue)!==null&&le!==void 0?le:null:re[Z.key]=Z.filterOptionValues)}),Object.assign(Of(i.value),re)}),c=O(()=>{const J=d.value,{columns:re}=e;function ye($e){return(ze,Ae)=>!!~String(Ae[$e]).indexOf(String(ze))}const{value:{treeNodes:Z}}=o,le=[];return re.forEach($e=>{$e.type==="selection"||$e.type==="expand"||"children"in $e||le.push([$e.key,$e])}),Z?Z.filter($e=>{const{rawNode:ze}=$e;for(const[Ae,Te]of le){let ne=J[Ae];if(ne==null||(Array.isArray(ne)||(ne=[ne]),!ne.length))continue;const Oe=Te.filter==="default"?ye(Ae):Te.filter;if(Te&&typeof Oe=="function")if(Te.filterMode==="and"){if(ne.some(z=>!Oe(z,ze)))return!1}else{if(ne.some(z=>Oe(z,ze)))continue;return!1}}return!0}):[]}),{sortedDataRef:f,deriveNextSorter:v,mergedSortStateRef:g,sort:u,clearSorter:p}=_2(e,{dataRelatedColsRef:t,filteredDataRef:c});t.value.forEach(J=>{var re;if(J.filter){const ye=J.defaultFilterOptionValues;J.filterMultiple?i.value[J.key]=ye||[]:ye!==void 0?i.value[J.key]=ye===null?[]:ye:i.value[J.key]=(re=J.defaultFilterOptionValue)!==null&&re!==void 0?re:null}});const b=O(()=>{const{pagination:J}=e;if(J!==!1)return J.page}),m=O(()=>{const{pagination:J}=e;if(J!==!1)return J.pageSize}),y=qt(b,a),$=qt(m,s),S=ot(()=>{const J=y.value;return e.remote?J:Math.max(1,Math.min(Math.ceil(c.value.length/$.value),J))}),x=O(()=>{const{pagination:J}=e;if(J){const{pageCount:re}=J;if(re!==void 0)return re}}),R=O(()=>{if(e.remote)return o.value.treeNodes;if(!e.pagination)return f.value;const J=$.value,re=(S.value-1)*J;return f.value.slice(re,re+J)}),C=O(()=>R.value.map(J=>J.rawNode));function w(J){const{pagination:re}=e;if(re){const{onChange:ye,"onUpdate:page":Z,onUpdatePage:le}=re;ye&&me(ye,J),le&&me(le,J),Z&&me(Z,J),_(J)}}function k(J){const{pagination:re}=e;if(re){const{onPageSizeChange:ye,"onUpdate:pageSize":Z,onUpdatePageSize:le}=re;ye&&me(ye,J),le&&me(le,J),Z&&me(Z,J),T(J)}}const F=O(()=>{if(e.remote){const{pagination:J}=e;if(J){const{itemCount:re}=J;if(re!==void 0)return re}return}return c.value.length}),M=O(()=>Object.assign(Object.assign({},e.pagination),{onChange:void 0,onUpdatePage:void 0,onUpdatePageSize:void 0,onPageSizeChange:void 0,"onUpdate:page":w,"onUpdate:pageSize":k,page:S.value,pageSize:$.value,pageCount:F.value===void 0?x.value:void 0,itemCount:F.value}));function _(J){const{"onUpdate:page":re,onPageChange:ye,onUpdatePage:Z}=e;Z&&me(Z,J),re&&me(re,J),ye&&me(ye,J),a.value=J}function T(J){const{"onUpdate:pageSize":re,onPageSizeChange:ye,onUpdatePageSize:Z}=e;ye&&me(ye,J),Z&&me(Z,J),re&&me(re,J),s.value=J}function B(J,re){const{onUpdateFilters:ye,"onUpdate:filters":Z,onFiltersChange:le}=e;ye&&me(ye,J,re),Z&&me(Z,J,re),le&&me(le,J,re),i.value=J}function D(J,re,ye,Z){var le;(le=e.onUnstableColumnResize)===null||le===void 0||le.call(e,J,re,ye,Z)}function K(J){_(J)}function N(){V()}function V(){ie({})}function ie(J){he(J)}function he(J){J?J&&(i.value=Of(J)):i.value={}}return{treeMateRef:o,mergedCurrentPageRef:S,mergedPaginationRef:M,paginatedDataRef:R,rawPaginatedDataRef:C,mergedFilterStateRef:d,mergedSortStateRef:g,hoverKeyRef:E(null),selectionColumnRef:n,childTriggerColIndexRef:r,doUpdateFilters:B,deriveNextSorter:v,doUpdatePageSize:T,doUpdatePage:_,onUnstableColumnResize:D,filter:he,filters:ie,clearFilter:N,clearFilters:V,clearSorter:p,page:K,sort:u}}const fc=pe({name:"DataTable",alias:["AdvancedTable"],props:y$,slots:Object,setup(e,{slots:t}){const{mergedBorderedRef:n,mergedClsPrefixRef:o,inlineThemeDisabled:r,mergedRtlRef:i,mergedComponentPropsRef:l}=Ye(e),a=Bt("DataTable",i,o),s=O(()=>{var xe,ke;return e.size||((ke=(xe=l?.value)===null||xe===void 0?void 0:xe.DataTable)===null||ke===void 0?void 0:ke.size)||"medium"}),d=O(()=>{const{bottomBordered:xe}=e;return n.value?!1:xe!==void 0?xe:!0}),c=Be("DataTable","-data-table",m2,m$,e,o),f=E(null),v=E(null),{getResizableWidth:g,clearResizableWidth:u,doUpdateResizableWidth:p}=R2(),{rowsRef:b,colsRef:m,dataRelatedColsRef:y,hasEllipsisRef:$}=S2(e,g),{treeMateRef:S,mergedCurrentPageRef:x,paginatedDataRef:R,rawPaginatedDataRef:C,selectionColumnRef:w,hoverKeyRef:k,mergedPaginationRef:F,mergedFilterStateRef:M,mergedSortStateRef:_,childTriggerColIndexRef:T,doUpdatePage:B,doUpdateFilters:D,onUnstableColumnResize:K,deriveNextSorter:N,filter:V,filters:ie,clearFilter:he,clearFilters:J,clearSorter:re,page:ye,sort:Z}=z2(e,{dataRelatedColsRef:y}),le=xe=>{const{fileName:ke="data.csv",keepOriginalData:Ce=!1}=xe||{},Fe=Ce?e.data:C.value,Ze=$$(e.columns,Fe,e.getCsvCell,e.getCsvHeader),Lt=new Blob([Ze],{type:"text/csv;charset=utf-8"}),Et=URL.createObjectURL(Lt);Rx(Et,ke.endsWith(".csv")?ke:`${ke}.csv`),URL.revokeObjectURL(Et)},{doCheckAll:$e,doUncheckAll:ze,doCheck:Ae,doUncheck:Te,headerCheckboxDisabledRef:ne,someRowsCheckedRef:Oe,allRowsCheckedRef:z,mergedCheckedRowKeySetRef:L,mergedInderminateRowKeySetRef:ee}=x2(e,{selectionColumnRef:w,treeMateRef:S,paginatedDataRef:R}),{stickyExpandedRowsRef:se,mergedExpandedRowKeysRef:ae,renderExpandRef:Q,expandableRef:ue,doUpdateExpandedRowKeys:ve}=w2(e,S),fe=we(e,"maxHeight"),oe=O(()=>e.virtualScroll||e.flexHeight||e.maxHeight!==void 0||$.value?"fixed":e.tableLayout),{handleTableBodyScroll:q,handleTableHeaderScroll:G,syncScrollState:W,setHeaderScrollLeft:Y,leftActiveFixedColKeyRef:Se,leftActiveFixedChildrenColKeysRef:Le,rightActiveFixedColKeyRef:Ie,rightActiveFixedChildrenColKeysRef:De,leftFixedColumnsRef:Ge,rightFixedColumnsRef:Xe,fixedColumnLeftMapRef:at,fixedColumnRightMapRef:mt,xScrollableRef:ft,explicitlyScrollableRef:Re}=k2(e,{bodyWidthRef:f,mainTableInstRef:v,mergedCurrentPageRef:x,maxHeightRef:fe,mergedTableLayoutRef:oe}),{localeRef:te}=Xi("DataTable");qe(En,{xScrollableRef:ft,explicitlyScrollableRef:Re,props:e,treeMateRef:S,renderExpandIconRef:we(e,"renderExpandIcon"),loadingKeySetRef:E(new Set),slots:t,indentRef:we(e,"indent"),childTriggerColIndexRef:T,bodyWidthRef:f,componentId:ar(),hoverKeyRef:k,mergedClsPrefixRef:o,mergedThemeRef:c,scrollXRef:O(()=>e.scrollX),rowsRef:b,colsRef:m,paginatedDataRef:R,leftActiveFixedColKeyRef:Se,leftActiveFixedChildrenColKeysRef:Le,rightActiveFixedColKeyRef:Ie,rightActiveFixedChildrenColKeysRef:De,leftFixedColumnsRef:Ge,rightFixedColumnsRef:Xe,fixedColumnLeftMapRef:at,fixedColumnRightMapRef:mt,mergedCurrentPageRef:x,someRowsCheckedRef:Oe,allRowsCheckedRef:z,mergedSortStateRef:_,mergedFilterStateRef:M,loadingRef:we(e,"loading"),rowClassNameRef:we(e,"rowClassName"),mergedCheckedRowKeySetRef:L,mergedExpandedRowKeysRef:ae,mergedInderminateRowKeySetRef:ee,localeRef:te,expandableRef:ue,stickyExpandedRowsRef:se,rowKeyRef:we(e,"rowKey"),renderExpandRef:Q,summaryRef:we(e,"summary"),virtualScrollRef:we(e,"virtualScroll"),virtualScrollXRef:we(e,"virtualScrollX"),heightForRowRef:we(e,"heightForRow"),minRowHeightRef:we(e,"minRowHeight"),virtualScrollHeaderRef:we(e,"virtualScrollHeader"),headerHeightRef:we(e,"headerHeight"),rowPropsRef:we(e,"rowProps"),stripedRef:we(e,"striped"),checkOptionsRef:O(()=>{const{value:xe}=w;return xe?.options}),rawPaginatedDataRef:C,filterMenuCssVarsRef:O(()=>{const{self:{actionDividerColor:xe,actionPadding:ke,actionButtonMargin:Ce}}=c.value;return{"--n-action-padding":ke,"--n-action-button-margin":Ce,"--n-action-divider-color":xe}}),onLoadRef:we(e,"onLoad"),mergedTableLayoutRef:oe,maxHeightRef:fe,minHeightRef:we(e,"minHeight"),flexHeightRef:we(e,"flexHeight"),headerCheckboxDisabledRef:ne,paginationBehaviorOnFilterRef:we(e,"paginationBehaviorOnFilter"),summaryPlacementRef:we(e,"summaryPlacement"),filterIconPopoverPropsRef:we(e,"filterIconPopoverProps"),scrollbarPropsRef:we(e,"scrollbarProps"),syncScrollState:W,doUpdatePage:B,doUpdateFilters:D,getResizableWidth:g,onUnstableColumnResize:K,clearResizableWidth:u,doUpdateResizableWidth:p,deriveNextSorter:N,doCheck:Ae,doUncheck:Te,doCheckAll:$e,doUncheckAll:ze,doUpdateExpandedRowKeys:ve,handleTableHeaderScroll:G,handleTableBodyScroll:q,setHeaderScrollLeft:Y,renderCell:we(e,"renderCell")});const A={filter:V,filters:ie,clearFilters:J,clearSorter:re,page:ye,sort:Z,clearFilter:he,downloadCsv:le,scrollTo:(xe,ke)=>{var Ce;(Ce=v.value)===null||Ce===void 0||Ce.scrollTo(xe,ke)}},X=O(()=>{const xe=s.value,{common:{cubicBezierEaseInOut:ke},self:{borderColor:Ce,tdColorHover:Fe,tdColorSorting:Ze,tdColorSortingModal:Lt,tdColorSortingPopover:Et,thColorSorting:Dt,thColorSortingModal:zt,thColorSortingPopover:Ht,thColor:on,thColorHover:Nt,tdColor:Xt,tdTextColor:Mt,thTextColor:U,thFontWeight:ce,thButtonColorHover:Me,thIconColor:je,thIconColorActive:Ve,filterSize:Je,borderRadius:rn,lineHeight:ln,tdColorModal:Cn,thColorModal:eo,borderColorModal:to,thColorHoverModal:Wo,tdColorHoverModal:qr,borderColorPopover:Xr,thColorPopover:Yr,tdColorPopover:Zr,tdColorHoverPopover:mo,thColorHoverPopover:yo,paginationMargin:Sa,emptyPadding:Ra,boxShadowAfter:ka,boxShadowBefore:Pa,sorterSize:$a,resizableContainerSize:_a,resizableSize:za,loadingColor:Ta,loadingSize:Fa,opacityLoading:Oa,tdColorStriped:Ea,tdColorStripedModal:Ma,tdColorStripedPopover:Ba,[de("fontSize",xe)]:Aa,[de("thPadding",xe)]:Ia,[de("tdPadding",xe)]:La}}=c.value;return{"--n-font-size":Aa,"--n-th-padding":Ia,"--n-td-padding":La,"--n-bezier":ke,"--n-border-radius":rn,"--n-line-height":ln,"--n-border-color":Ce,"--n-border-color-modal":to,"--n-border-color-popover":Xr,"--n-th-color":on,"--n-th-color-hover":Nt,"--n-th-color-modal":eo,"--n-th-color-hover-modal":Wo,"--n-th-color-popover":Yr,"--n-th-color-hover-popover":yo,"--n-td-color":Xt,"--n-td-color-hover":Fe,"--n-td-color-modal":Cn,"--n-td-color-hover-modal":qr,"--n-td-color-popover":Zr,"--n-td-color-hover-popover":mo,"--n-th-text-color":U,"--n-td-text-color":Mt,"--n-th-font-weight":ce,"--n-th-button-color-hover":Me,"--n-th-icon-color":je,"--n-th-icon-color-active":Ve,"--n-filter-size":Je,"--n-pagination-margin":Sa,"--n-empty-padding":Ra,"--n-box-shadow-before":Pa,"--n-box-shadow-after":ka,"--n-sorter-size":$a,"--n-resizable-container-size":_a,"--n-resizable-size":za,"--n-loading-size":Fa,"--n-loading-color":Ta,"--n-opacity-loading":Oa,"--n-td-color-striped":Ea,"--n-td-color-striped-modal":Ma,"--n-td-color-striped-popover":Ba,"--n-td-color-sorting":Ze,"--n-td-color-sorting-modal":Lt,"--n-td-color-sorting-popover":Et,"--n-th-color-sorting":Dt,"--n-th-color-sorting-modal":zt,"--n-th-color-sorting-popover":Ht}}),be=r?vt("data-table",O(()=>s.value[0]),X,e):void 0,_e=O(()=>{if(!e.pagination)return!1;if(e.paginateSinglePage)return!0;const xe=F.value,{pageCount:ke}=xe;return ke!==void 0?ke>1:xe.itemCount&&xe.pageSize&&xe.itemCount>xe.pageSize});return Object.assign({mainTableInstRef:v,mergedClsPrefix:o,rtlEnabled:a,mergedTheme:c,paginatedData:R,mergedBordered:n,mergedBottomBordered:d,mergedPagination:F,mergedShowPagination:_e,cssVars:r?void 0:X,themeClass:be?.themeClass,onRender:be?.onRender},A)},render(){const{mergedClsPrefix:e,themeClass:t,onRender:n,$slots:o,spinProps:r}=this;return n?.(),h("div",{class:[`${e}-data-table`,this.rtlEnabled&&`${e}-data-table--rtl`,t,{[`${e}-data-table--bordered`]:this.mergedBordered,[`${e}-data-table--bottom-bordered`]:this.mergedBottomBordered,[`${e}-data-table--single-line`]:this.singleLine,[`${e}-data-table--single-column`]:this.singleColumn,[`${e}-data-table--loading`]:this.loading,[`${e}-data-table--flex-height`]:this.flexHeight}],style:this.cssVars},h("div",{class:`${e}-data-table-wrapper`},h(b2,{ref:"mainTableInstRef"})),this.mergedShowPagination?h("div",{class:`${e}-data-table__pagination`},h(d$,Object.assign({theme:this.mergedTheme.peers.Pagination,themeOverrides:this.mergedTheme.peerOverrides.Pagination,disabled:this.loading},this.mergedPagination))):null,h(pn,{name:"fade-in-scale-up-transition"},{default:()=>this.loading?h("div",{class:`${e}-data-table-loading-wrapper`},$n(o.loading,()=>[h(gr,Object.assign({clsPrefix:e,strokeWidth:20},r))])):null}))}}),vg="n-dialog-provider",gg="n-dialog-api",T2="n-dialog-reactive-list";function F2(){const e=Ee(gg,null);return e===null&&sr("use-dialog","No outer founded."),e}const O2={titleFontSize:"18px",padding:"16px 28px 20px 28px",iconSize:"28px",actionSpace:"12px",contentMargin:"8px 0 16px 0",iconMargin:"0 4px 0 0",iconMarginIconTop:"4px 0 8px 0",closeSize:"22px",closeIconSize:"18px",closeMargin:"20px 26px 0 0",closeMarginIconTop:"10px 16px 0 0"};function E2(e){const{textColor1:t,textColor2:n,modalColor:o,closeIconColor:r,closeIconColorHover:i,closeIconColorPressed:l,closeColorHover:a,closeColorPressed:s,infoColor:d,successColor:c,warningColor:f,errorColor:v,primaryColor:g,dividerColor:u,borderRadius:p,fontWeightStrong:b,lineHeight:m,fontSize:y}=e;return Object.assign(Object.assign({},O2),{fontSize:y,lineHeight:m,border:`1px solid ${u}`,titleTextColor:t,textColor:n,color:o,closeColorHover:a,closeColorPressed:s,closeIconColor:r,closeIconColorHover:i,closeIconColorPressed:l,closeBorderRadius:p,iconColor:g,iconColorInfo:d,iconColorSuccess:c,iconColorWarning:f,iconColorError:v,borderRadius:p,titleFontWeight:b})}const bg={name:"Dialog",common:gt,peers:{Button:rc},self:E2},ya={icon:Function,type:{type:String,default:"default"},title:[String,Function],closable:{type:Boolean,default:!0},negativeText:String,positiveText:String,positiveButtonProps:Object,negativeButtonProps:Object,content:[String,Function],action:Function,showIcon:{type:Boolean,default:!0},loading:Boolean,bordered:Boolean,iconPlacement:String,titleClass:[String,Array],titleStyle:[String,Object],contentClass:[String,Array],contentStyle:[String,Object],actionClass:[String,Array],actionStyle:[String,Object],onPositiveClick:Function,onNegativeClick:Function,onClose:Function,closeFocusable:Boolean},mg=Gi(ya),M2=I([P("dialog",` + --n-icon-margin: var(--n-icon-margin-top) var(--n-icon-margin-right) var(--n-icon-margin-bottom) var(--n-icon-margin-left); + word-break: break-word; + line-height: var(--n-line-height); + position: relative; + background: var(--n-color); + color: var(--n-text-color); + box-sizing: border-box; + margin: auto; + border-radius: var(--n-border-radius); + padding: var(--n-padding); + transition: + border-color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `,[j("icon",` + color: var(--n-icon-color); + `),H("bordered",` + border: var(--n-border); + `),H("icon-top",[j("close",` + margin: var(--n-close-margin); + `),j("icon",` + margin: var(--n-icon-margin); + `),j("content",` + text-align: center; + `),j("title",` + justify-content: center; + `),j("action",` + justify-content: center; + `)]),H("icon-left",[j("icon",` + margin: var(--n-icon-margin); + `),H("closable",[j("title",` + padding-right: calc(var(--n-close-size) + 6px); + `)])]),j("close",` + position: absolute; + right: 0; + top: 0; + margin: var(--n-close-margin); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + z-index: 1; + `),j("content",` + font-size: var(--n-font-size); + margin: var(--n-content-margin); + position: relative; + word-break: break-word; + `,[H("last","margin-bottom: 0;")]),j("action",` + display: flex; + justify-content: flex-end; + `,[I("> *:not(:last-child)",` + margin-right: var(--n-action-space); + `)]),j("icon",` + font-size: var(--n-icon-size); + transition: color .3s var(--n-bezier); + `),j("title",` + transition: color .3s var(--n-bezier); + display: flex; + align-items: center; + font-size: var(--n-title-font-size); + font-weight: var(--n-title-font-weight); + color: var(--n-title-text-color); + `),P("dialog-icon-container",` + display: flex; + justify-content: center; + `)]),sa(P("dialog",` + width: 446px; + max-width: calc(100vw - 32px); + `)),P("dialog",[mp(` + width: 446px; + max-width: calc(100vw - 32px); + `)])]),B2={default:()=>h(Wl,null),info:()=>h(Wl,null),success:()=>h(Jd,null),warning:()=>h(Qd,null),error:()=>h(Zd,null)},yg=pe({name:"Dialog",alias:["NimbusConfirmCard","Confirm"],props:Object.assign(Object.assign({},Be.props),ya),slots:Object,setup(e){const{mergedComponentPropsRef:t,mergedClsPrefixRef:n,inlineThemeDisabled:o,mergedRtlRef:r}=Ye(e),i=Bt("Dialog",r,n),l=O(()=>{var g,u;const{iconPlacement:p}=e;return p||((u=(g=t?.value)===null||g===void 0?void 0:g.Dialog)===null||u===void 0?void 0:u.iconPlacement)||"left"});function a(g){const{onPositiveClick:u}=e;u&&u(g)}function s(g){const{onNegativeClick:u}=e;u&&u(g)}function d(){const{onClose:g}=e;g&&g()}const c=Be("Dialog","-dialog",M2,bg,e,n),f=O(()=>{const{type:g}=e,u=l.value,{common:{cubicBezierEaseInOut:p},self:{fontSize:b,lineHeight:m,border:y,titleTextColor:$,textColor:S,color:x,closeBorderRadius:R,closeColorHover:C,closeColorPressed:w,closeIconColor:k,closeIconColorHover:F,closeIconColorPressed:M,closeIconSize:_,borderRadius:T,titleFontWeight:B,titleFontSize:D,padding:K,iconSize:N,actionSpace:V,contentMargin:ie,closeSize:he,[u==="top"?"iconMarginIconTop":"iconMargin"]:J,[u==="top"?"closeMarginIconTop":"closeMargin"]:re,[de("iconColor",g)]:ye}}=c.value,Z=Ft(J);return{"--n-font-size":b,"--n-icon-color":ye,"--n-bezier":p,"--n-close-margin":re,"--n-icon-margin-top":Z.top,"--n-icon-margin-right":Z.right,"--n-icon-margin-bottom":Z.bottom,"--n-icon-margin-left":Z.left,"--n-icon-size":N,"--n-close-size":he,"--n-close-icon-size":_,"--n-close-border-radius":R,"--n-close-color-hover":C,"--n-close-color-pressed":w,"--n-close-icon-color":k,"--n-close-icon-color-hover":F,"--n-close-icon-color-pressed":M,"--n-color":x,"--n-text-color":S,"--n-border-radius":T,"--n-padding":K,"--n-line-height":m,"--n-border":y,"--n-content-margin":ie,"--n-title-font-size":D,"--n-title-font-weight":B,"--n-title-text-color":$,"--n-action-space":V}}),v=o?vt("dialog",O(()=>`${e.type[0]}${l.value[0]}`),f,e):void 0;return{mergedClsPrefix:n,rtlEnabled:i,mergedIconPlacement:l,mergedTheme:c,handlePositiveClick:a,handleNegativeClick:s,handleCloseClick:d,cssVars:o?void 0:f,themeClass:v?.themeClass,onRender:v?.onRender}},render(){var e;const{bordered:t,mergedIconPlacement:n,cssVars:o,closable:r,showIcon:i,title:l,content:a,action:s,negativeText:d,positiveText:c,positiveButtonProps:f,negativeButtonProps:v,handlePositiveClick:g,handleNegativeClick:u,mergedTheme:p,loading:b,type:m,mergedClsPrefix:y}=this;(e=this.onRender)===null||e===void 0||e.call(this);const $=i?h(kt,{clsPrefix:y,class:`${y}-dialog__icon`},{default:()=>lt(this.$slots.icon,x=>x||(this.icon?wt(this.icon):B2[this.type]()))}):null,S=lt(this.$slots.action,x=>x||c||d||s?h("div",{class:[`${y}-dialog__action`,this.actionClass],style:this.actionStyle},x||(s?[wt(s)]:[this.negativeText&&h(It,Object.assign({theme:p.peers.Button,themeOverrides:p.peerOverrides.Button,ghost:!0,size:"small",onClick:u},v),{default:()=>wt(this.negativeText)}),this.positiveText&&h(It,Object.assign({theme:p.peers.Button,themeOverrides:p.peerOverrides.Button,size:"small",type:m==="default"?"primary":m,disabled:b,loading:b,onClick:g},f),{default:()=>wt(this.positiveText)})])):null);return h("div",{class:[`${y}-dialog`,this.themeClass,this.closable&&`${y}-dialog--closable`,`${y}-dialog--icon-${n}`,t&&`${y}-dialog--bordered`,this.rtlEnabled&&`${y}-dialog--rtl`],style:o,role:"dialog"},r?lt(this.$slots.close,x=>{const R=[`${y}-dialog__close`,this.rtlEnabled&&`${y}-dialog--rtl`];return x?h("div",{class:R},x):h(Kr,{focusable:this.closeFocusable,clsPrefix:y,class:R,onClick:this.handleCloseClick})}):null,i&&n==="top"?h("div",{class:`${y}-dialog-icon-container`},$):null,h("div",{class:[`${y}-dialog__title`,this.titleClass],style:this.titleStyle},i&&n==="left"?$:null,$n(this.$slots.header,()=>[wt(l)])),h("div",{class:[`${y}-dialog__content`,S?"":`${y}-dialog__content--last`,this.contentClass],style:this.contentStyle},$n(this.$slots.default,()=>[wt(a)])),S)}});function A2(e){const{modalColor:t,textColor2:n,boxShadow3:o}=e;return{color:t,textColor:n,boxShadow:o}}const I2={name:"Modal",common:gt,peers:{Scrollbar:jo,Dialog:bg,Card:Wv},self:A2},L2="n-modal-provider",xg="n-modal-api",D2="n-modal-reactive-list";function H2(){const e=Ee(xg,null);return e===null&&sr("use-modal","No outer founded."),e}const rd="n-draggable";function N2(e,t){let n;const o=O(()=>e.value!==!1),r=O(()=>o.value?rd:""),i=O(()=>{const s=e.value;return s===!0||s===!1?!0:s?s.bounds!=="none":!0});function l(s){const d=s.querySelector(`.${rd}`);if(!d||!r.value)return;let c=0,f=0,v=0,g=0,u=0,p=0,b,m=null,y=null;function $(C){C.preventDefault(),b=C;const{x:w,y:k,right:F,bottom:M}=s.getBoundingClientRect();f=w,g=k,c=window.innerWidth-F,v=window.innerHeight-M;const{left:_,top:T}=s.style;u=+T.slice(0,-2),p=+_.slice(0,-2)}function S(){y&&(s.style.top=`${y.y}px`,s.style.left=`${y.x}px`,y=null),m=null}function x(C){if(!b)return;const{clientX:w,clientY:k}=b;let F=C.clientX-w,M=C.clientY-k;i.value&&(F>c?F=c:-F>f&&(F=-f),M>v?M=v:-M>g&&(M=-g));const _=F+p,T=M+u;y={x:_,y:T},m||(m=requestAnimationFrame(S))}function R(){b=void 0,m&&(cancelAnimationFrame(m),m=null),y&&(s.style.top=`${y.y}px`,s.style.left=`${y.x}px`,y=null),t.onEnd(s)}ct("mousedown",d,$),ct("mousemove",window,x),ct("mouseup",window,R),n=()=>{m&&cancelAnimationFrame(m),et("mousedown",d,$),et("mousemove",window,x),et("mouseup",window,R)}}function a(){n&&(n(),n=void 0)}return ra(a),{stopDrag:a,startDrag:l,draggableRef:o,draggableClassRef:r}}const hc=Object.assign(Object.assign({},ic),ya),j2=Gi(hc),W2=pe({name:"ModalBody",inheritAttrs:!1,slots:Object,props:Object.assign(Object.assign({show:{type:Boolean,required:!0},preset:String,displayDirective:{type:String,required:!0},trapFocus:{type:Boolean,default:!0},autoFocus:{type:Boolean,default:!0},blockScroll:Boolean,draggable:{type:[Boolean,Object],default:!1},maskHidden:Boolean},hc),{renderMask:Function,onClickoutside:Function,onBeforeLeave:{type:Function,required:!0},onAfterLeave:{type:Function,required:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0},onClose:{type:Function,required:!0},onAfterEnter:Function,onEsc:Function}),setup(e){const t=E(null),n=E(null),o=E(e.show),r=E(null),i=E(null),l=Ee($p);let a=null;tt(we(e,"show"),w=>{w&&(a=l.getMousePosition())},{immediate:!0});const{stopDrag:s,startDrag:d,draggableRef:c,draggableClassRef:f}=N2(we(e,"draggable"),{onEnd:w=>{p(w)}}),v=O(()=>Ar([e.titleClass,f.value])),g=O(()=>Ar([e.headerClass,f.value]));tt(we(e,"show"),w=>{w&&(o.value=!0)}),Fy(O(()=>e.blockScroll&&o.value));function u(){if(l.transformOriginRef.value==="center")return"";const{value:w}=r,{value:k}=i;if(w===null||k===null)return"";if(n.value){const F=n.value.containerScrollTop;return`${w}px ${k+F}px`}return""}function p(w){if(l.transformOriginRef.value==="center"||!a||!n.value)return;const k=n.value.containerScrollTop,{offsetLeft:F,offsetTop:M}=w,_=a.y,T=a.x;r.value=-(F-T),i.value=-(M-_-k),w.style.transformOrigin=u()}function b(w){Rt(()=>{p(w)})}function m(w){w.style.transformOrigin=u(),e.onBeforeLeave()}function y(w){const k=w;c.value&&d(k),e.onAfterEnter&&e.onAfterEnter(k)}function $(){o.value=!1,r.value=null,i.value=null,s(),e.onAfterLeave()}function S(){const{onClose:w}=e;w&&w()}function x(){e.onNegativeClick()}function R(){e.onPositiveClick()}const C=E(null);return tt(C,w=>{w&&Rt(()=>{const k=w.el;k&&t.value!==k&&(t.value=k)})}),qe(ua,t),qe(ca,null),qe(Ui,null),{mergedTheme:l.mergedThemeRef,appear:l.appearRef,isMounted:l.isMountedRef,mergedClsPrefix:l.mergedClsPrefixRef,bodyRef:t,scrollbarRef:n,draggableClass:f,displayed:o,childNodeRef:C,cardHeaderClass:g,dialogTitleClass:v,handlePositiveClick:R,handleNegativeClick:x,handleCloseClick:S,handleAfterEnter:y,handleAfterLeave:$,handleBeforeLeave:m,handleEnter:b}},render(){const{$slots:e,$attrs:t,handleEnter:n,handleAfterEnter:o,handleAfterLeave:r,handleBeforeLeave:i,preset:l,mergedClsPrefix:a}=this;let s=null;if(!l){if(s=Tx("default",e.default,{draggableClass:this.draggableClass}),!s){Zn("modal","default slot is empty");return}s=hn(s),s.props=nn({class:`${a}-modal`},t,s.props||{})}return this.displayDirective==="show"||this.displayed||this.show?qn(h("div",{role:"none",class:[`${a}-modal-body-wrapper`,this.maskHidden&&`${a}-modal-body-wrapper--mask-hidden`]},h(bo,{ref:"scrollbarRef",theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar,contentClass:`${a}-modal-scroll-content`},{default:()=>{var d;return[(d=this.renderMask)===null||d===void 0?void 0:d.call(this),h(Kp,{disabled:!this.trapFocus||this.maskHidden,active:this.show,onEsc:this.onEsc,autoFocus:this.autoFocus},{default:()=>{var c;return h(pn,{name:"fade-in-scale-up-transition",appear:(c=this.appear)!==null&&c!==void 0?c:this.isMounted,onEnter:n,onAfterEnter:o,onAfterLeave:r,onBeforeLeave:i},{default:()=>{const f=[[Fo,this.show]],{onClickoutside:v}=this;return v&&f.push([Ii,this.onClickoutside,void 0,{capture:!0}]),qn(this.preset==="confirm"||this.preset==="dialog"?h(yg,Object.assign({},this.$attrs,{class:[`${a}-modal`,this.$attrs.class],ref:"bodyRef",theme:this.mergedTheme.peers.Dialog,themeOverrides:this.mergedTheme.peerOverrides.Dialog},Eo(this.$props,mg),{titleClass:this.dialogTitleClass,"aria-modal":"true"}),e):this.preset==="card"?h(co,Object.assign({},this.$attrs,{ref:"bodyRef",class:[`${a}-modal`,this.$attrs.class],theme:this.mergedTheme.peers.Card,themeOverrides:this.mergedTheme.peerOverrides.Card},Eo(this.$props,DP),{headerClass:this.cardHeaderClass,"aria-modal":"true",role:"dialog"}),e):this.childNodeRef=s,f)}})}})]}})),[[Fo,this.displayDirective==="if"||this.displayed||this.show]]):null}}),V2=I([P("modal-container",` + position: fixed; + left: 0; + top: 0; + height: 0; + width: 0; + display: flex; + `),P("modal-mask",` + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-color: rgba(0, 0, 0, .4); + `,[ec({enterDuration:".25s",leaveDuration:".25s",enterCubicBezier:"var(--n-bezier-ease-out)",leaveCubicBezier:"var(--n-bezier-ease-out)"})]),P("modal-body-wrapper",` + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + overflow: visible; + `,[P("modal-scroll-content",` + min-height: 100%; + display: flex; + position: relative; + `),H("mask-hidden","pointer-events: none;",[P("modal-scroll-content",[I("> *",` + pointer-events: all; + `)])])]),P("modal",` + position: relative; + align-self: center; + color: var(--n-text-color); + margin: auto; + box-shadow: var(--n-box-shadow); + `,[Yi({duration:".25s",enterScale:".5"}),I(`.${rd}`,` + cursor: move; + user-select: none; + `)])]),wg=Object.assign(Object.assign(Object.assign(Object.assign({},Be.props),{show:Boolean,showMask:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},preset:String,to:[String,Object],displayDirective:{type:String,default:"if"},transformOrigin:{type:String,default:"mouse"},zIndex:Number,autoFocus:{type:Boolean,default:!0},trapFocus:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},blockScroll:{type:Boolean,default:!0}}),hc),{draggable:[Boolean,Object],onEsc:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],onAfterEnter:Function,onBeforeLeave:Function,onAfterLeave:Function,onClose:Function,onPositiveClick:Function,onNegativeClick:Function,onMaskClick:Function,internalDialog:Boolean,internalModal:Boolean,internalAppear:{type:Boolean,default:void 0},overlayStyle:[String,Object],onBeforeHide:Function,onAfterHide:Function,onHide:Function,unstableShowMask:{type:Boolean,default:void 0}}),xa=pe({name:"Modal",inheritAttrs:!1,props:wg,slots:Object,setup(e){const t=E(null),{mergedClsPrefixRef:n,namespaceRef:o,inlineThemeDisabled:r}=Ye(e),i=Be("Modal","-modal",V2,I2,e,n),l=Td(64),a=zd(),s=jr(),d=e.internalDialog?Ee(vg,null):null,c=e.internalModal?Ee(_y,null):null,f=Ty();function v(R){const{onUpdateShow:C,"onUpdate:show":w,onHide:k}=e;C&&me(C,R),w&&me(w,R),k&&!R&&k(R)}function g(){const{onClose:R}=e;R?Promise.resolve(R()).then(C=>{C!==!1&&v(!1)}):v(!1)}function u(){const{onPositiveClick:R}=e;R?Promise.resolve(R()).then(C=>{C!==!1&&v(!1)}):v(!1)}function p(){const{onNegativeClick:R}=e;R?Promise.resolve(R()).then(C=>{C!==!1&&v(!1)}):v(!1)}function b(){const{onBeforeLeave:R,onBeforeHide:C}=e;R&&me(R),C&&C()}function m(){const{onAfterLeave:R,onAfterHide:C}=e;R&&me(R),C&&C()}function y(R){var C;const{onMaskClick:w}=e;w&&w(R),e.maskClosable&&!((C=t.value)===null||C===void 0)&&C.contains(Dr(R))&&v(!1)}function $(R){var C;(C=e.onEsc)===null||C===void 0||C.call(e),e.show&&e.closeOnEsc&&$x(R)&&(f.value||v(!1))}qe($p,{getMousePosition:()=>{const R=d||c;if(R){const{clickedRef:C,clickedPositionRef:w}=R;if(C.value&&w.value)return w.value}return l.value?a.value:null},mergedClsPrefixRef:n,mergedThemeRef:i,isMountedRef:s,appearRef:we(e,"internalAppear"),transformOriginRef:we(e,"transformOrigin")});const S=O(()=>{const{common:{cubicBezierEaseOut:R},self:{boxShadow:C,color:w,textColor:k}}=i.value;return{"--n-bezier-ease-out":R,"--n-box-shadow":C,"--n-color":w,"--n-text-color":k}}),x=r?vt("theme-class",void 0,S,e):void 0;return{mergedClsPrefix:n,namespace:o,isMounted:s,containerRef:t,presetProps:O(()=>Eo(e,j2)),handleEsc:$,handleAfterLeave:m,handleClickoutside:y,handleBeforeLeave:b,doUpdateShow:v,handleNegativeClick:p,handlePositiveClick:u,handleCloseClick:g,cssVars:r?void 0:S,themeClass:x?.themeClass,onRender:x?.onRender}},render(){const{mergedClsPrefix:e}=this;return h(Ep,{to:this.to,show:this.show},{default:()=>{var t;(t=this.onRender)===null||t===void 0||t.call(this);const{showMask:n}=this;return qn(h("div",{role:"none",ref:"containerRef",class:[`${e}-modal-container`,this.themeClass,this.namespace],style:this.cssVars},h(W2,Object.assign({style:this.overlayStyle},this.$attrs,{ref:"bodyWrapper",displayDirective:this.displayDirective,show:this.show,preset:this.preset,autoFocus:this.autoFocus,trapFocus:this.trapFocus,draggable:this.draggable,blockScroll:this.blockScroll,maskHidden:!n},this.presetProps,{onEsc:this.handleEsc,onClose:this.handleCloseClick,onNegativeClick:this.handleNegativeClick,onPositiveClick:this.handlePositiveClick,onBeforeLeave:this.handleBeforeLeave,onAfterEnter:this.onAfterEnter,onAfterLeave:this.handleAfterLeave,onClickoutside:n?void 0:this.handleClickoutside,renderMask:n?()=>{var o;return h(pn,{name:"fade-in-transition",key:"mask",appear:(o=this.internalAppear)!==null&&o!==void 0?o:this.isMounted},{default:()=>this.show?h("div",{"aria-hidden":!0,ref:"containerRef",class:`${e}-modal-mask`,onClick:this.handleClickoutside}):null})}:void 0}),this.$slots)),[[Bd,{zIndex:this.zIndex,enabled:this.show}]])}})}}),K2=Object.assign(Object.assign({},ya),{onAfterEnter:Function,onAfterLeave:Function,transformOrigin:String,blockScroll:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},onEsc:Function,autoFocus:{type:Boolean,default:!0},internalStyle:[String,Object],maskClosable:{type:Boolean,default:!0},zIndex:Number,onPositiveClick:Function,onNegativeClick:Function,onClose:Function,onMaskClick:Function,draggable:[Boolean,Object]}),U2=pe({name:"DialogEnvironment",props:Object.assign(Object.assign({},K2),{internalKey:{type:String,required:!0},to:[String,Object],onInternalAfterLeave:{type:Function,required:!0}}),setup(e){const t=E(!0);function n(){const{onInternalAfterLeave:c,internalKey:f,onAfterLeave:v}=e;c&&c(f),v&&v()}function o(c){const{onPositiveClick:f}=e;f?Promise.resolve(f(c)).then(v=>{v!==!1&&s()}):s()}function r(c){const{onNegativeClick:f}=e;f?Promise.resolve(f(c)).then(v=>{v!==!1&&s()}):s()}function i(){const{onClose:c}=e;c?Promise.resolve(c()).then(f=>{f!==!1&&s()}):s()}function l(c){const{onMaskClick:f,maskClosable:v}=e;f&&(f(c),v&&s())}function a(){const{onEsc:c}=e;c&&c()}function s(){t.value=!1}function d(c){t.value=c}return{show:t,hide:s,handleUpdateShow:d,handleAfterLeave:n,handleCloseClick:i,handleNegativeClick:r,handlePositiveClick:o,handleMaskClick:l,handleEsc:a}},render(){const{handlePositiveClick:e,handleUpdateShow:t,handleNegativeClick:n,handleCloseClick:o,handleAfterLeave:r,handleMaskClick:i,handleEsc:l,to:a,zIndex:s,maskClosable:d,show:c}=this;return h(xa,{show:c,onUpdateShow:t,onMaskClick:i,onEsc:l,to:a,zIndex:s,maskClosable:d,onAfterEnter:this.onAfterEnter,onAfterLeave:r,closeOnEsc:this.closeOnEsc,blockScroll:this.blockScroll,autoFocus:this.autoFocus,transformOrigin:this.transformOrigin,draggable:this.draggable,internalAppear:!0,internalDialog:!0},{default:({draggableClass:f})=>h(yg,Object.assign({},Eo(this.$props,mg),{titleClass:Ar([this.titleClass,f]),style:this.internalStyle,onClose:o,onNegativeClick:n,onPositiveClick:e}))})}}),G2={injectionKey:String,to:[String,Object]},q2=pe({name:"DialogProvider",props:G2,setup(){const e=E([]),t={};function n(a={}){const s=ar(),d=_n(Object.assign(Object.assign({},a),{key:s,destroy:()=>{var c;(c=t[`n-dialog-${s}`])===null||c===void 0||c.hide()}}));return e.value.push(d),d}const o=["info","success","warning","error"].map(a=>s=>n(Object.assign(Object.assign({},s),{type:a})));function r(a){const{value:s}=e;s.splice(s.findIndex(d=>d.key===a),1)}function i(){Object.values(t).forEach(a=>{a?.hide()})}const l={create:n,destroyAll:i,info:o[0],success:o[1],warning:o[2],error:o[3]};return qe(gg,l),qe(vg,{clickedRef:Td(64),clickedPositionRef:zd()}),qe(T2,e),Object.assign(Object.assign({},l),{dialogList:e,dialogInstRefs:t,handleAfterLeave:r})},render(){var e,t;return h(nt,null,[this.dialogList.map(n=>h(U2,dr(n,["destroy","style"],{internalStyle:n.style,to:this.to,ref:o=>{o===null?delete this.dialogInstRefs[`n-dialog-${n.key}`]:this.dialogInstRefs[`n-dialog-${n.key}`]=o},internalKey:n.key,onInternalAfterLeave:this.handleAfterLeave}))),(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)])}}),Cg="n-loading-bar",Sg="n-loading-bar-api";function X2(e){const{primaryColor:t,errorColor:n}=e;return{colorError:n,colorLoading:t,height:"2px"}}const Y2={common:gt,self:X2},Z2=P("loading-bar-container",` + z-index: 5999; + position: fixed; + top: 0; + left: 0; + right: 0; + height: 2px; +`,[ec({enterDuration:"0.3s",leaveDuration:"0.8s"}),P("loading-bar",` + width: 100%; + transition: + max-width 4s linear, + background .2s linear; + height: var(--n-height); + `,[H("starting",` + background: var(--n-color-loading); + `),H("finishing",` + background: var(--n-color-loading); + transition: + max-width .2s linear, + background .2s linear; + `),H("error",` + background: var(--n-color-error); + transition: + max-width .2s linear, + background .2s linear; + `)])]);var gl=function(e,t,n,o){function r(i){return i instanceof n?i:new n(function(l){l(i)})}return new(n||(n=Promise))(function(i,l){function a(c){try{d(o.next(c))}catch(f){l(f)}}function s(c){try{d(o.throw(c))}catch(f){l(f)}}function d(c){c.done?i(c.value):r(c.value).then(a,s)}d((o=o.apply(e,t||[])).next())})};function bl(e,t){return`${t}-loading-bar ${t}-loading-bar--${e}`}const J2=pe({name:"LoadingBar",props:{containerClass:String,containerStyle:[String,Object]},setup(){const{inlineThemeDisabled:e}=Ye(),{props:t,mergedClsPrefixRef:n}=Ee(Cg),o=E(null),r=E(!1),i=E(!1),l=E(!1),a=E(!1);let s=!1;const d=E(!1),c=O(()=>{const{loadingBarStyle:x}=t;return x?x[d.value?"error":"loading"]:""});function f(){return gl(this,void 0,void 0,function*(){r.value=!1,l.value=!1,s=!1,d.value=!1,a.value=!0,yield Rt(),a.value=!1})}function v(){return gl(this,arguments,void 0,function*(x=0,R=80,C="starting"){if(i.value=!0,yield f(),s)return;l.value=!0,yield Rt();const w=o.value;w&&(w.style.maxWidth=`${x}%`,w.style.transition="none",w.offsetWidth,w.className=bl(C,n.value),w.style.transition="",w.style.maxWidth=`${R}%`)})}function g(){return gl(this,void 0,void 0,function*(){if(s||d.value)return;i.value&&(yield Rt()),s=!0;const x=o.value;x&&(x.className=bl("finishing",n.value),x.style.maxWidth="100%",x.offsetWidth,l.value=!1)})}function u(){if(!(s||d.value))if(!l.value)v(100,100,"error").then(()=>{d.value=!0;const x=o.value;x&&(x.className=bl("error",n.value),x.offsetWidth,l.value=!1)});else{d.value=!0;const x=o.value;if(!x)return;x.className=bl("error",n.value),x.style.maxWidth="100%",x.offsetWidth,l.value=!1}}function p(){r.value=!0}function b(){r.value=!1}function m(){return gl(this,void 0,void 0,function*(){yield f()})}const y=Be("LoadingBar","-loading-bar",Z2,Y2,t,n),$=O(()=>{const{self:{height:x,colorError:R,colorLoading:C}}=y.value;return{"--n-height":x,"--n-color-loading":C,"--n-color-error":R}}),S=e?vt("loading-bar",void 0,$,t):void 0;return{mergedClsPrefix:n,loadingBarRef:o,started:i,loading:l,entering:r,transitionDisabled:a,start:v,error:u,finish:g,handleEnter:p,handleAfterEnter:b,handleAfterLeave:m,mergedLoadingBarStyle:c,cssVars:e?void 0:$,themeClass:S?.themeClass,onRender:S?.onRender}},render(){if(!this.started)return null;const{mergedClsPrefix:e}=this;return h(pn,{name:"fade-in-transition",appear:!0,onEnter:this.handleEnter,onAfterEnter:this.handleAfterEnter,onAfterLeave:this.handleAfterLeave,css:!this.transitionDisabled},{default:()=>{var t;return(t=this.onRender)===null||t===void 0||t.call(this),qn(h("div",{class:[`${e}-loading-bar-container`,this.themeClass,this.containerClass],style:this.containerStyle},h("div",{ref:"loadingBarRef",class:[`${e}-loading-bar`],style:[this.cssVars,this.mergedLoadingBarStyle]})),[[Fo,this.loading||!this.loading&&this.entering]])}})}}),Q2=Object.assign(Object.assign({},Be.props),{to:{type:[String,Object,Boolean],default:void 0},containerClass:String,containerStyle:[String,Object],loadingBarStyle:{type:Object}}),e_=pe({name:"LoadingBarProvider",props:Q2,setup(e){const t=jr(),n=E(null),o={start(){var i;t.value?(i=n.value)===null||i===void 0||i.start():Rt(()=>{var l;(l=n.value)===null||l===void 0||l.start()})},error(){var i;t.value?(i=n.value)===null||i===void 0||i.error():Rt(()=>{var l;(l=n.value)===null||l===void 0||l.error()})},finish(){var i;t.value?(i=n.value)===null||i===void 0||i.finish():Rt(()=>{var l;(l=n.value)===null||l===void 0||l.finish()})}},{mergedClsPrefixRef:r}=Ye(e);return qe(Sg,o),qe(Cg,{props:e,mergedClsPrefixRef:r}),Object.assign(o,{loadingBarRef:n})},render(){var e,t;return h(nt,null,h(ea,{disabled:this.to===!1,to:this.to||"body"},h(J2,{ref:"loadingBarRef",containerStyle:this.containerStyle,containerClass:this.containerClass})),(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))}});function t_(){const e=Ee(Sg,null);return e===null&&sr("use-loading-bar","No outer founded."),e}const Rg="n-message-api",kg="n-message-provider",n_={margin:"0 0 8px 0",padding:"10px 20px",maxWidth:"720px",minWidth:"420px",iconMargin:"0 10px 0 0",closeMargin:"0 0 0 10px",closeSize:"20px",closeIconSize:"16px",iconSize:"20px",fontSize:"14px"};function o_(e){const{textColor2:t,closeIconColor:n,closeIconColorHover:o,closeIconColorPressed:r,infoColor:i,successColor:l,errorColor:a,warningColor:s,popoverColor:d,boxShadow2:c,primaryColor:f,lineHeight:v,borderRadius:g,closeColorHover:u,closeColorPressed:p}=e;return Object.assign(Object.assign({},n_),{closeBorderRadius:g,textColor:t,textColorInfo:t,textColorSuccess:t,textColorError:t,textColorWarning:t,textColorLoading:t,color:d,colorInfo:d,colorSuccess:d,colorError:d,colorWarning:d,colorLoading:d,boxShadow:c,boxShadowInfo:c,boxShadowSuccess:c,boxShadowError:c,boxShadowWarning:c,boxShadowLoading:c,iconColor:t,iconColorInfo:i,iconColorSuccess:l,iconColorWarning:s,iconColorError:a,iconColorLoading:f,closeColorHover:u,closeColorPressed:p,closeIconColor:n,closeIconColorHover:o,closeIconColorPressed:r,closeColorHoverInfo:u,closeColorPressedInfo:p,closeIconColorInfo:n,closeIconColorHoverInfo:o,closeIconColorPressedInfo:r,closeColorHoverSuccess:u,closeColorPressedSuccess:p,closeIconColorSuccess:n,closeIconColorHoverSuccess:o,closeIconColorPressedSuccess:r,closeColorHoverError:u,closeColorPressedError:p,closeIconColorError:n,closeIconColorHoverError:o,closeIconColorPressedError:r,closeColorHoverWarning:u,closeColorPressedWarning:p,closeIconColorWarning:n,closeIconColorHoverWarning:o,closeIconColorPressedWarning:r,closeColorHoverLoading:u,closeColorPressedLoading:p,closeIconColorLoading:n,closeIconColorHoverLoading:o,closeIconColorPressedLoading:r,loadingColor:f,lineHeight:v,borderRadius:g,border:"0"})}const r_={common:gt,self:o_},Pg={icon:Function,type:{type:String,default:"info"},content:[String,Number,Function],showIcon:{type:Boolean,default:!0},closable:Boolean,keepAliveOnHover:Boolean,spinProps:Object,onClose:Function,onMouseenter:Function,onMouseleave:Function},i_=I([P("message-wrapper",` + margin: var(--n-margin); + z-index: 0; + transform-origin: top center; + display: flex; + `,[xP({overflow:"visible",originalTransition:"transform .3s var(--n-bezier)",enterToProps:{transform:"scale(1)"},leaveToProps:{transform:"scale(0.85)"}})]),P("message",` + box-sizing: border-box; + display: flex; + align-items: center; + transition: + color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + transform .3s var(--n-bezier), + margin-bottom .3s var(--n-bezier); + padding: var(--n-padding); + border-radius: var(--n-border-radius); + border: var(--n-border); + flex-wrap: nowrap; + overflow: hidden; + max-width: var(--n-max-width); + color: var(--n-text-color); + background-color: var(--n-color); + box-shadow: var(--n-box-shadow); + `,[j("content",` + display: inline-block; + line-height: var(--n-line-height); + font-size: var(--n-font-size); + `),j("icon",` + position: relative; + margin: var(--n-icon-margin); + height: var(--n-icon-size); + width: var(--n-icon-size); + font-size: var(--n-icon-size); + flex-shrink: 0; + `,[["default","info","success","warning","error","loading"].map(e=>H(`${e}-type`,[I("> *",` + color: var(--n-icon-color-${e}); + transition: color .3s var(--n-bezier); + `)])),I("> *",` + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + `,[an()])]),j("close",` + margin: var(--n-close-margin); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + flex-shrink: 0; + `,[I("&:hover",` + color: var(--n-close-icon-color-hover); + `),I("&:active",` + color: var(--n-close-icon-color-pressed); + `)])]),P("message-container",` + z-index: 6000; + position: fixed; + height: 0; + overflow: visible; + display: flex; + flex-direction: column; + align-items: center; + `,[H("top",` + top: 12px; + left: 0; + right: 0; + `),H("top-left",` + top: 12px; + left: 12px; + right: 0; + align-items: flex-start; + `),H("top-right",` + top: 12px; + left: 0; + right: 12px; + align-items: flex-end; + `),H("bottom",` + bottom: 4px; + left: 0; + right: 0; + justify-content: flex-end; + `),H("bottom-left",` + bottom: 4px; + left: 12px; + right: 0; + justify-content: flex-end; + align-items: flex-start; + `),H("bottom-right",` + bottom: 4px; + left: 0; + right: 12px; + justify-content: flex-end; + align-items: flex-end; + `)])]),l_={info:()=>h(Wl,null),success:()=>h(Jd,null),warning:()=>h(Qd,null),error:()=>h(Zd,null),default:()=>null},a_=pe({name:"Message",props:Object.assign(Object.assign({},Pg),{render:Function}),setup(e){const{inlineThemeDisabled:t,mergedRtlRef:n}=Ye(e),{props:o,mergedClsPrefixRef:r}=Ee(kg),i=Bt("Message",n,r),l=Be("Message","-message",i_,r_,o,r),a=O(()=>{const{type:d}=e,{common:{cubicBezierEaseInOut:c},self:{padding:f,margin:v,maxWidth:g,iconMargin:u,closeMargin:p,closeSize:b,iconSize:m,fontSize:y,lineHeight:$,borderRadius:S,border:x,iconColorInfo:R,iconColorSuccess:C,iconColorWarning:w,iconColorError:k,iconColorLoading:F,closeIconSize:M,closeBorderRadius:_,[de("textColor",d)]:T,[de("boxShadow",d)]:B,[de("color",d)]:D,[de("closeColorHover",d)]:K,[de("closeColorPressed",d)]:N,[de("closeIconColor",d)]:V,[de("closeIconColorPressed",d)]:ie,[de("closeIconColorHover",d)]:he}}=l.value;return{"--n-bezier":c,"--n-margin":v,"--n-padding":f,"--n-max-width":g,"--n-font-size":y,"--n-icon-margin":u,"--n-icon-size":m,"--n-close-icon-size":M,"--n-close-border-radius":_,"--n-close-size":b,"--n-close-margin":p,"--n-text-color":T,"--n-color":D,"--n-box-shadow":B,"--n-icon-color-info":R,"--n-icon-color-success":C,"--n-icon-color-warning":w,"--n-icon-color-error":k,"--n-icon-color-loading":F,"--n-close-color-hover":K,"--n-close-color-pressed":N,"--n-close-icon-color":V,"--n-close-icon-color-pressed":ie,"--n-close-icon-color-hover":he,"--n-line-height":$,"--n-border-radius":S,"--n-border":x}}),s=t?vt("message",O(()=>e.type[0]),a,{}):void 0;return{mergedClsPrefix:r,rtlEnabled:i,messageProviderProps:o,handleClose(){var d;(d=e.onClose)===null||d===void 0||d.call(e)},cssVars:t?void 0:a,themeClass:s?.themeClass,onRender:s?.onRender,placement:o.placement}},render(){const{render:e,type:t,closable:n,content:o,mergedClsPrefix:r,cssVars:i,themeClass:l,onRender:a,icon:s,handleClose:d,showIcon:c}=this;a?.();let f;return h("div",{class:[`${r}-message-wrapper`,l],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:[{alignItems:this.placement.startsWith("top")?"flex-start":"flex-end"},i]},e?e(this.$props):h("div",{class:[`${r}-message ${r}-message--${t}-type`,this.rtlEnabled&&`${r}-message--rtl`]},(f=s_(s,t,r,this.spinProps))&&c?h("div",{class:`${r}-message__icon ${r}-message__icon--${t}-type`},h(vr,null,{default:()=>f})):null,h("div",{class:`${r}-message__content`},wt(o)),n?h(Kr,{clsPrefix:r,class:`${r}-message__close`,onClick:d,absolute:!0}):null))}});function s_(e,t,n,o){if(typeof e=="function")return e();{const r=t==="loading"?h(gr,Object.assign({clsPrefix:n,strokeWidth:24,scale:.85},o)):l_[t]();return r?h(kt,{clsPrefix:n,key:t},{default:()=>r}):null}}const d_=pe({name:"MessageEnvironment",props:Object.assign(Object.assign({},Pg),{duration:{type:Number,default:3e3},onAfterLeave:Function,onLeave:Function,internalKey:{type:String,required:!0},onInternalAfterLeave:Function,onHide:Function,onAfterHide:Function}),setup(e){let t=null;const n=E(!0);Ct(()=>{o()});function o(){const{duration:c}=e;c&&(t=window.setTimeout(l,c))}function r(c){c.currentTarget===c.target&&t!==null&&(window.clearTimeout(t),t=null)}function i(c){c.currentTarget===c.target&&o()}function l(){const{onHide:c}=e;n.value=!1,t&&(window.clearTimeout(t),t=null),c&&c()}function a(){const{onClose:c}=e;c&&c(),l()}function s(){const{onAfterLeave:c,onInternalAfterLeave:f,onAfterHide:v,internalKey:g}=e;c&&c(),f&&f(g),v&&v()}function d(){l()}return{show:n,hide:l,handleClose:a,handleAfterLeave:s,handleMouseleave:i,handleMouseenter:r,deactivate:d}},render(){return h($v,{appear:!0,onAfterLeave:this.handleAfterLeave,onLeave:this.onLeave},{default:()=>[this.show?h(a_,{content:this.content,type:this.type,icon:this.icon,showIcon:this.showIcon,closable:this.closable,spinProps:this.spinProps,onClose:this.handleClose,onMouseenter:this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.keepAliveOnHover?this.handleMouseleave:void 0}):null]})}}),c_=Object.assign(Object.assign({},Be.props),{to:[String,Object],duration:{type:Number,default:3e3},keepAliveOnHover:Boolean,max:Number,placement:{type:String,default:"top"},closable:Boolean,containerClass:String,containerStyle:[String,Object]}),u_=pe({name:"MessageProvider",props:c_,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=E([]),o=E({}),r={create(s,d){return i(s,Object.assign({type:"default"},d))},info(s,d){return i(s,Object.assign(Object.assign({},d),{type:"info"}))},success(s,d){return i(s,Object.assign(Object.assign({},d),{type:"success"}))},warning(s,d){return i(s,Object.assign(Object.assign({},d),{type:"warning"}))},error(s,d){return i(s,Object.assign(Object.assign({},d),{type:"error"}))},loading(s,d){return i(s,Object.assign(Object.assign({},d),{type:"loading"}))},destroyAll:a};qe(kg,{props:e,mergedClsPrefixRef:t}),qe(Rg,r);function i(s,d){const c=ar(),f=_n(Object.assign(Object.assign({},d),{content:s,key:c,destroy:()=>{var g;(g=o.value[c])===null||g===void 0||g.hide()}})),{max:v}=e;return v&&n.value.length>=v&&n.value.shift(),n.value.push(f),f}function l(s){n.value.splice(n.value.findIndex(d=>d.key===s),1),delete o.value[s]}function a(){Object.values(o.value).forEach(s=>{s.hide()})}return Object.assign({mergedClsPrefix:t,messageRefs:o,messageList:n,handleAfterLeave:l},r)},render(){var e,t,n;return h(nt,null,(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e),this.messageList.length?h(ea,{to:(n=this.to)!==null&&n!==void 0?n:"body"},h("div",{class:[`${this.mergedClsPrefix}-message-container`,`${this.mergedClsPrefix}-message-container--${this.placement}`,this.containerClass],key:"message-container",style:this.containerStyle},this.messageList.map(o=>h(d_,Object.assign({ref:r=>{r&&(this.messageRefs[o.key]=r)},internalKey:o.key,onInternalAfterLeave:this.handleAfterLeave},dr(o,["destroy"],void 0),{duration:o.duration===void 0?this.duration:o.duration,keepAliveOnHover:o.keepAliveOnHover===void 0?this.keepAliveOnHover:o.keepAliveOnHover,closable:o.closable===void 0?this.closable:o.closable}))))):null)}});function f_(){const e=Ee(Rg,null);return e===null&&sr("use-message","No outer founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),e}const h_=pe({name:"ModalEnvironment",props:Object.assign(Object.assign({},wg),{internalKey:{type:String,required:!0},onInternalAfterLeave:{type:Function,required:!0}}),setup(e){const t=E(!0);function n(){const{onInternalAfterLeave:c,internalKey:f,onAfterLeave:v}=e;c&&c(f),v&&v()}function o(){const{onPositiveClick:c}=e;c?Promise.resolve(c()).then(f=>{f!==!1&&s()}):s()}function r(){const{onNegativeClick:c}=e;c?Promise.resolve(c()).then(f=>{f!==!1&&s()}):s()}function i(){const{onClose:c}=e;c?Promise.resolve(c()).then(f=>{f!==!1&&s()}):s()}function l(c){const{onMaskClick:f,maskClosable:v}=e;f&&(f(c),v&&s())}function a(){const{onEsc:c}=e;c&&c()}function s(){t.value=!1}function d(c){t.value=c}return{show:t,hide:s,handleUpdateShow:d,handleAfterLeave:n,handleCloseClick:i,handleNegativeClick:r,handlePositiveClick:o,handleMaskClick:l,handleEsc:a}},render(){const{handleUpdateShow:e,handleAfterLeave:t,handleMaskClick:n,handleEsc:o,show:r}=this;return h(xa,Object.assign({},this.$props,{show:r,onUpdateShow:e,onMaskClick:n,onEsc:o,onAfterLeave:t,internalAppear:!0,internalModal:!0}),this.$slots)}}),p_={to:[String,Object]},v_=pe({name:"ModalProvider",props:p_,setup(){const e=E([]),t={};function n(l={}){const a=ar(),s=_n(Object.assign(Object.assign({},l),{key:a,destroy:()=>{var d;(d=t[`n-modal-${a}`])===null||d===void 0||d.hide()}}));return e.value.push(s),s}function o(l){const{value:a}=e;a.splice(a.findIndex(s=>s.key===l),1)}function r(){Object.values(t).forEach(l=>{l?.hide()})}const i={create:n,destroyAll:r};return qe(xg,i),qe(L2,{clickedRef:Td(64),clickedPositionRef:zd()}),qe(D2,e),Object.assign(Object.assign({},i),{modalList:e,modalInstRefs:t,handleAfterLeave:o})},render(){var e,t;return h(nt,null,[this.modalList.map(n=>{var o;return h(h_,dr(n,["destroy","render"],{to:(o=n.to)!==null&&o!==void 0?o:this.to,ref:r=>{r===null?delete this.modalInstRefs[`n-modal-${n.key}`]:this.modalInstRefs[`n-modal-${n.key}`]=r},internalKey:n.key,onInternalAfterLeave:this.handleAfterLeave}),{default:n.render})}),(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)])}}),g_={closeMargin:"16px 12px",closeSize:"20px",closeIconSize:"16px",width:"365px",padding:"16px",titleFontSize:"16px",metaFontSize:"12px",descriptionFontSize:"12px"};function b_(e){const{textColor2:t,successColor:n,infoColor:o,warningColor:r,errorColor:i,popoverColor:l,closeIconColor:a,closeIconColorHover:s,closeIconColorPressed:d,closeColorHover:c,closeColorPressed:f,textColor1:v,textColor3:g,borderRadius:u,fontWeightStrong:p,boxShadow2:b,lineHeight:m,fontSize:y}=e;return Object.assign(Object.assign({},g_),{borderRadius:u,lineHeight:m,fontSize:y,headerFontWeight:p,iconColor:t,iconColorSuccess:n,iconColorInfo:o,iconColorWarning:r,iconColorError:i,color:l,textColor:t,closeIconColor:a,closeIconColorHover:s,closeIconColorPressed:d,closeBorderRadius:u,closeColorHover:c,closeColorPressed:f,headerTextColor:v,descriptionTextColor:g,actionTextColor:t,boxShadow:b})}const m_={name:"Notification",common:gt,peers:{Scrollbar:jo},self:b_},wa="n-notification-provider",y_=pe({name:"NotificationContainer",props:{scrollable:{type:Boolean,required:!0},placement:{type:String,required:!0}},setup(){const{mergedThemeRef:e,mergedClsPrefixRef:t,wipTransitionCountRef:n}=Ee(wa),o=E(null);return en(()=>{var r,i;n.value>0?(r=o?.value)===null||r===void 0||r.classList.add("transitioning"):(i=o?.value)===null||i===void 0||i.classList.remove("transitioning")}),{selfRef:o,mergedTheme:e,mergedClsPrefix:t,transitioning:n}},render(){const{$slots:e,scrollable:t,mergedClsPrefix:n,mergedTheme:o,placement:r}=this;return h("div",{ref:"selfRef",class:[`${n}-notification-container`,t&&`${n}-notification-container--scrollable`,`${n}-notification-container--${r}`]},t?h(bo,{theme:o.peers.Scrollbar,themeOverrides:o.peerOverrides.Scrollbar,contentStyle:{overflow:"hidden"}},e):e)}}),x_={info:()=>h(Wl,null),success:()=>h(Jd,null),warning:()=>h(Qd,null),error:()=>h(Zd,null),default:()=>null},pc={closable:{type:Boolean,default:!0},type:{type:String,default:"default"},avatar:Function,title:[String,Function],description:[String,Function],content:[String,Function],meta:[String,Function],action:[String,Function],onClose:{type:Function,required:!0},keepAliveOnHover:Boolean,onMouseenter:Function,onMouseleave:Function},w_=Gi(pc),C_=pe({name:"Notification",props:pc,setup(e){const{mergedClsPrefixRef:t,mergedThemeRef:n,props:o}=Ee(wa),{inlineThemeDisabled:r,mergedRtlRef:i}=Ye(),l=Bt("Notification",i,t),a=O(()=>{const{type:d}=e,{self:{color:c,textColor:f,closeIconColor:v,closeIconColorHover:g,closeIconColorPressed:u,headerTextColor:p,descriptionTextColor:b,actionTextColor:m,borderRadius:y,headerFontWeight:$,boxShadow:S,lineHeight:x,fontSize:R,closeMargin:C,closeSize:w,width:k,padding:F,closeIconSize:M,closeBorderRadius:_,closeColorHover:T,closeColorPressed:B,titleFontSize:D,metaFontSize:K,descriptionFontSize:N,[de("iconColor",d)]:V},common:{cubicBezierEaseOut:ie,cubicBezierEaseIn:he,cubicBezierEaseInOut:J}}=n.value,{left:re,right:ye,top:Z,bottom:le}=Ft(F);return{"--n-color":c,"--n-font-size":R,"--n-text-color":f,"--n-description-text-color":b,"--n-action-text-color":m,"--n-title-text-color":p,"--n-title-font-weight":$,"--n-bezier":J,"--n-bezier-ease-out":ie,"--n-bezier-ease-in":he,"--n-border-radius":y,"--n-box-shadow":S,"--n-close-border-radius":_,"--n-close-color-hover":T,"--n-close-color-pressed":B,"--n-close-icon-color":v,"--n-close-icon-color-hover":g,"--n-close-icon-color-pressed":u,"--n-line-height":x,"--n-icon-color":V,"--n-close-margin":C,"--n-close-size":w,"--n-close-icon-size":M,"--n-width":k,"--n-padding-left":re,"--n-padding-right":ye,"--n-padding-top":Z,"--n-padding-bottom":le,"--n-title-font-size":D,"--n-meta-font-size":K,"--n-description-font-size":N}}),s=r?vt("notification",O(()=>e.type[0]),a,o):void 0;return{mergedClsPrefix:t,showAvatar:O(()=>e.avatar||e.type!=="default"),handleCloseClick(){e.onClose()},rtlEnabled:l,cssVars:r?void 0:a,themeClass:s?.themeClass,onRender:s?.onRender}},render(){var e;const{mergedClsPrefix:t}=this;return(e=this.onRender)===null||e===void 0||e.call(this),h("div",{class:[`${t}-notification-wrapper`,this.themeClass],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:this.cssVars},h("div",{class:[`${t}-notification`,this.rtlEnabled&&`${t}-notification--rtl`,this.themeClass,{[`${t}-notification--closable`]:this.closable,[`${t}-notification--show-avatar`]:this.showAvatar}],style:this.cssVars},this.showAvatar?h("div",{class:`${t}-notification__avatar`},this.avatar?wt(this.avatar):this.type!=="default"?h(kt,{clsPrefix:t},{default:()=>x_[this.type]()}):null):null,this.closable?h(Kr,{clsPrefix:t,class:`${t}-notification__close`,onClick:this.handleCloseClick}):null,h("div",{ref:"bodyRef",class:`${t}-notification-main`},this.title?h("div",{class:`${t}-notification-main__header`},wt(this.title)):null,this.description?h("div",{class:`${t}-notification-main__description`},wt(this.description)):null,this.content?h("pre",{class:`${t}-notification-main__content`},wt(this.content)):null,this.meta||this.action?h("div",{class:`${t}-notification-main-footer`},this.meta?h("div",{class:`${t}-notification-main-footer__meta`},wt(this.meta)):null,this.action?h("div",{class:`${t}-notification-main-footer__action`},wt(this.action)):null):null)))}}),S_=Object.assign(Object.assign({},pc),{duration:Number,onClose:Function,onLeave:Function,onAfterEnter:Function,onAfterLeave:Function,onHide:Function,onAfterShow:Function,onAfterHide:Function}),R_=pe({name:"NotificationEnvironment",props:Object.assign(Object.assign({},S_),{internalKey:{type:String,required:!0},onInternalAfterLeave:{type:Function,required:!0}}),setup(e){const{wipTransitionCountRef:t}=Ee(wa),n=E(!0);let o=null;function r(){n.value=!1,o&&window.clearTimeout(o)}function i(u){t.value++,Rt(()=>{u.style.height=`${u.offsetHeight}px`,u.style.maxHeight="0",u.style.transition="none",u.offsetHeight,u.style.transition="",u.style.maxHeight=u.style.height})}function l(u){t.value--,u.style.height="",u.style.maxHeight="";const{onAfterEnter:p,onAfterShow:b}=e;p&&p(),b&&b()}function a(u){t.value++,u.style.maxHeight=`${u.offsetHeight}px`,u.style.height=`${u.offsetHeight}px`,u.offsetHeight}function s(u){const{onHide:p}=e;p&&p(),u.style.maxHeight="0",u.offsetHeight}function d(){t.value--;const{onAfterLeave:u,onInternalAfterLeave:p,onAfterHide:b,internalKey:m}=e;u&&u(),p(m),b&&b()}function c(){const{duration:u}=e;u&&(o=window.setTimeout(r,u))}function f(u){u.currentTarget===u.target&&o!==null&&(window.clearTimeout(o),o=null)}function v(u){u.currentTarget===u.target&&c()}function g(){const{onClose:u}=e;u?Promise.resolve(u()).then(p=>{p!==!1&&r()}):r()}return Ct(()=>{e.duration&&(o=window.setTimeout(r,e.duration))}),{show:n,hide:r,handleClose:g,handleAfterLeave:d,handleLeave:s,handleBeforeLeave:a,handleAfterEnter:l,handleBeforeEnter:i,handleMouseenter:f,handleMouseleave:v}},render(){return h(pn,{name:"notification-transition",appear:!0,onBeforeEnter:this.handleBeforeEnter,onAfterEnter:this.handleAfterEnter,onBeforeLeave:this.handleBeforeLeave,onLeave:this.handleLeave,onAfterLeave:this.handleAfterLeave},{default:()=>this.show?h(C_,Object.assign({},Eo(this.$props,w_),{onClose:this.handleClose,onMouseenter:this.duration&&this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.duration&&this.keepAliveOnHover?this.handleMouseleave:void 0})):null})}}),k_=I([P("notification-container",` + z-index: 4000; + position: fixed; + overflow: visible; + display: flex; + flex-direction: column; + align-items: flex-end; + `,[I(">",[P("scrollbar",` + width: initial; + overflow: visible; + height: -moz-fit-content !important; + height: fit-content !important; + max-height: 100vh !important; + `,[I(">",[P("scrollbar-container",` + height: -moz-fit-content !important; + height: fit-content !important; + max-height: 100vh !important; + `,[P("scrollbar-content",` + padding-top: 12px; + padding-bottom: 33px; + `)])])])]),H("top, top-right, top-left",` + top: 12px; + `,[I("&.transitioning >",[P("scrollbar",[I(">",[P("scrollbar-container",` + min-height: 100vh !important; + `)])])])]),H("bottom, bottom-right, bottom-left",` + bottom: 12px; + `,[I(">",[P("scrollbar",[I(">",[P("scrollbar-container",[P("scrollbar-content",` + padding-bottom: 12px; + `)])])])]),P("notification-wrapper",` + display: flex; + align-items: flex-end; + margin-bottom: 0; + margin-top: 12px; + `)]),H("top, bottom",` + left: 50%; + transform: translateX(-50%); + `,[P("notification-wrapper",[I("&.notification-transition-enter-from, &.notification-transition-leave-to",` + transform: scale(0.85); + `),I("&.notification-transition-leave-from, &.notification-transition-enter-to",` + transform: scale(1); + `)])]),H("top",[P("notification-wrapper",` + transform-origin: top center; + `)]),H("bottom",[P("notification-wrapper",` + transform-origin: bottom center; + `)]),H("top-right, bottom-right",[P("notification",` + margin-left: 28px; + margin-right: 16px; + `)]),H("top-left, bottom-left",[P("notification",` + margin-left: 16px; + margin-right: 28px; + `)]),H("top-right",` + right: 0; + `,[ml("top-right")]),H("top-left",` + left: 0; + `,[ml("top-left")]),H("bottom-right",` + right: 0; + `,[ml("bottom-right")]),H("bottom-left",` + left: 0; + `,[ml("bottom-left")]),H("scrollable",[H("top-right",` + top: 0; + `),H("top-left",` + top: 0; + `),H("bottom-right",` + bottom: 0; + `),H("bottom-left",` + bottom: 0; + `)]),P("notification-wrapper",` + margin-bottom: 12px; + `,[I("&.notification-transition-enter-from, &.notification-transition-leave-to",` + opacity: 0; + margin-top: 0 !important; + margin-bottom: 0 !important; + `),I("&.notification-transition-leave-from, &.notification-transition-enter-to",` + opacity: 1; + `),I("&.notification-transition-leave-active",` + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + transform .3s var(--n-bezier-ease-in), + max-height .3s var(--n-bezier), + margin-top .3s linear, + margin-bottom .3s linear, + box-shadow .3s var(--n-bezier); + `),I("&.notification-transition-enter-active",` + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + transform .3s var(--n-bezier-ease-out), + max-height .3s var(--n-bezier), + margin-top .3s linear, + margin-bottom .3s linear, + box-shadow .3s var(--n-bezier); + `)]),P("notification",` + background-color: var(--n-color); + color: var(--n-text-color); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier), + opacity .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + font-family: inherit; + font-size: var(--n-font-size); + font-weight: 400; + position: relative; + display: flex; + overflow: hidden; + flex-shrink: 0; + padding-left: var(--n-padding-left); + padding-right: var(--n-padding-right); + width: var(--n-width); + max-width: calc(100vw - 16px - 16px); + border-radius: var(--n-border-radius); + box-shadow: var(--n-box-shadow); + box-sizing: border-box; + opacity: 1; + `,[j("avatar",[P("icon",` + color: var(--n-icon-color); + `),P("base-icon",` + color: var(--n-icon-color); + `)]),H("show-avatar",[P("notification-main",` + margin-left: 40px; + width: calc(100% - 40px); + `)]),H("closable",[P("notification-main",[I("> *:first-child",` + padding-right: 20px; + `)]),j("close",` + position: absolute; + top: 0; + right: 0; + margin: var(--n-close-margin); + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `)]),j("avatar",` + position: absolute; + top: var(--n-padding-top); + left: var(--n-padding-left); + width: 28px; + height: 28px; + font-size: 28px; + display: flex; + align-items: center; + justify-content: center; + `,[P("icon","transition: color .3s var(--n-bezier);")]),P("notification-main",` + padding-top: var(--n-padding-top); + padding-bottom: var(--n-padding-bottom); + box-sizing: border-box; + display: flex; + flex-direction: column; + margin-left: 8px; + width: calc(100% - 8px); + `,[P("notification-main-footer",` + display: flex; + align-items: center; + justify-content: space-between; + margin-top: 12px; + `,[j("meta",` + font-size: var(--n-meta-font-size); + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-description-text-color); + `),j("action",` + cursor: pointer; + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-action-text-color); + `)]),j("header",` + font-weight: var(--n-title-font-weight); + font-size: var(--n-title-font-size); + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-title-text-color); + `),j("description",` + margin-top: 8px; + font-size: var(--n-description-font-size); + white-space: pre-wrap; + word-wrap: break-word; + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-description-text-color); + `),j("content",` + line-height: var(--n-line-height); + margin: 12px 0 0 0; + font-family: inherit; + white-space: pre-wrap; + word-wrap: break-word; + transition: color .3s var(--n-bezier-ease-out); + color: var(--n-text-color); + `,[I("&:first-child","margin: 0;")])])])])]);function ml(e){const n=e.split("-")[1]==="left"?"calc(-100%)":"calc(100%)";return P("notification-wrapper",[I("&.notification-transition-enter-from, &.notification-transition-leave-to",` + transform: translate(${n}, 0); + `),I("&.notification-transition-leave-from, &.notification-transition-enter-to",` + transform: translate(0, 0); + `)])}const $g="n-notification-api",P_=Object.assign(Object.assign({},Be.props),{containerClass:String,containerStyle:[String,Object],to:[String,Object],scrollable:{type:Boolean,default:!0},max:Number,placement:{type:String,default:"top-right"},keepAliveOnHover:Boolean}),$_=pe({name:"NotificationProvider",props:P_,setup(e){const{mergedClsPrefixRef:t}=Ye(e),n=E([]),o={},r=new Set;function i(g){const u=ar(),p=()=>{r.add(u),o[u]&&o[u].hide()},b=_n(Object.assign(Object.assign({},g),{key:u,destroy:p,hide:p,deactivate:p})),{max:m}=e;if(m&&n.value.length-r.size>=m){let y=!1,$=0;for(const S of n.value){if(!r.has(S.key)){o[S.key]&&(S.destroy(),y=!0);break}$++}y||n.value.splice($,1)}return n.value.push(b),b}const l=["info","success","warning","error"].map(g=>u=>i(Object.assign(Object.assign({},u),{type:g})));function a(g){r.delete(g),n.value.splice(n.value.findIndex(u=>u.key===g),1)}const s=Be("Notification","-notification",k_,m_,e,t),d={create:i,info:l[0],success:l[1],warning:l[2],error:l[3],open:f,destroyAll:v},c=E(0);qe($g,d),qe(wa,{props:e,mergedClsPrefixRef:t,mergedThemeRef:s,wipTransitionCountRef:c});function f(g){return i(g)}function v(){Object.values(n.value).forEach(g=>{g.hide()})}return Object.assign({mergedClsPrefix:t,notificationList:n,notificationRefs:o,handleAfterLeave:a},d)},render(){var e,t,n;const{placement:o}=this;return h(nt,null,(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e),this.notificationList.length?h(ea,{to:(n=this.to)!==null&&n!==void 0?n:"body"},h(y_,{class:this.containerClass,style:this.containerStyle,scrollable:this.scrollable&&o!=="top"&&o!=="bottom",placement:o},{default:()=>this.notificationList.map(r=>h(R_,Object.assign({ref:i=>{const l=r.key;i===null?delete this.notificationRefs[l]:this.notificationRefs[l]=i}},dr(r,["destroy","hide","deactivate"]),{internalKey:r.key,onInternalAfterLeave:this.handleAfterLeave,keepAliveOnHover:r.keepAliveOnHover===void 0?this.keepAliveOnHover:r.keepAliveOnHover})))})):null)}});function __(){const e=Ee($g,null);return e===null&&sr("use-notification","No outer `n-notification-provider` found."),e}const z_=pe({name:"InjectionExtractor",props:{onSetup:Function},setup(e,{slots:t}){var n;return(n=e.onSetup)===null||n===void 0||n.call(e),()=>{var o;return(o=t.default)===null||o===void 0?void 0:o.call(t)}}}),T_={message:f_,notification:__,loadingBar:t_,dialog:F2,modal:H2};function F_({providersAndProps:e,configProviderProps:t}){let n=up(r);const o={app:n};function r(){return h(Uv,ge(t),{default:()=>e.map(({type:a,Provider:s,props:d})=>h(s,ge(d),{default:()=>h(z_,{onSetup:()=>o[a]=T_[a]()})}))})}let i;return Do&&(i=document.createElement("div"),document.body.appendChild(i),n.mount(i)),Object.assign({unmount:()=>{var a;if(n===null||i===null){Zn("discrete","unmount call no need because discrete app has been unmounted");return}n.unmount(),(a=i.parentNode)===null||a===void 0||a.removeChild(i),i=null,n=null}},o)}function O_(e,{configProviderProps:t,messageProviderProps:n,dialogProviderProps:o,notificationProviderProps:r,loadingBarProviderProps:i,modalProviderProps:l}={}){const a=[];return e.forEach(d=>{switch(d){case"message":a.push({type:d,Provider:u_,props:n});break;case"notification":a.push({type:d,Provider:$_,props:r});break;case"dialog":a.push({type:d,Provider:q2,props:o});break;case"loadingBar":a.push({type:d,Provider:e_,props:i});break;case"modal":a.push({type:d,Provider:v_,props:l})}}),F_({providersAndProps:a,configProviderProps:t})}const E_={gapSmall:"4px 8px",gapMedium:"8px 12px",gapLarge:"12px 16px"};function M_(){return E_}const B_={self:M_};let xs;function A_(){if(!Do)return!0;if(xs===void 0){const e=document.createElement("div");e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e);const t=e.scrollHeight===1;return document.body.removeChild(e),xs=t}return xs}const I_=Object.assign(Object.assign({},Be.props),{align:String,justify:{type:String,default:"start"},inline:Boolean,vertical:Boolean,reverse:Boolean,size:[String,Number,Array],wrapItem:{type:Boolean,default:!0},itemClass:String,itemStyle:[String,Object],wrap:{type:Boolean,default:!0},internalUseGap:{type:Boolean,default:void 0}}),vc=pe({name:"Space",props:I_,setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:n,mergedComponentPropsRef:o}=Ye(e),r=O(()=>{var a,s;return e.size||((s=(a=o?.value)===null||a===void 0?void 0:a.Space)===null||s===void 0?void 0:s.size)||"medium"}),i=Be("Space","-space",void 0,B_,e,t),l=Bt("Space",n,t);return{useGap:A_(),rtlEnabled:l,mergedClsPrefix:t,margin:O(()=>{const a=r.value;if(Array.isArray(a))return{horizontal:a[0],vertical:a[1]};if(typeof a=="number")return{horizontal:a,vertical:a};const{self:{[de("gap",a)]:s}}=i.value,{row:d,col:c}=ey(s);return{horizontal:Pt(c),vertical:Pt(d)}})}},render(){const{vertical:e,reverse:t,align:n,inline:o,justify:r,itemClass:i,itemStyle:l,margin:a,wrap:s,mergedClsPrefix:d,rtlEnabled:c,useGap:f,wrapItem:v,internalUseGap:g}=this,u=Un(Dd(this),!1);if(!u.length)return null;const p=`${a.horizontal}px`,b=`${a.horizontal/2}px`,m=`${a.vertical}px`,y=`${a.vertical/2}px`,$=u.length-1,S=r.startsWith("space-");return h("div",{role:"none",class:[`${d}-space`,c&&`${d}-space--rtl`],style:{display:o?"inline-flex":"flex",flexDirection:e&&!t?"column":e&&t?"column-reverse":!e&&t?"row-reverse":"row",justifyContent:["start","end"].includes(r)?`flex-${r}`:r,flexWrap:!s||e?"nowrap":"wrap",marginTop:f||e?"":`-${y}`,marginBottom:f||e?"":`-${y}`,alignItems:n,gap:f?`${a.vertical}px ${a.horizontal}px`:""}},!v&&(f||g)?u:u.map((x,R)=>x.type===$t?x:h("div",{role:"none",class:i,style:[l,{maxWidth:"100%"},f?"":e?{marginBottom:R!==$?m:""}:c?{marginLeft:S?r==="space-between"&&R===$?"":b:R!==$?p:"",marginRight:S?r==="space-between"&&R===0?"":b:"",paddingTop:y,paddingBottom:y}:{marginRight:S?r==="space-between"&&R===$?"":b:R!==$?p:"",marginLeft:S?r==="space-between"&&R===0?"":b:"",paddingTop:y,paddingBottom:y}]},x)))}});function L_(e){const{baseColor:t,textColor2:n,bodyColor:o,cardColor:r,dividerColor:i,actionColor:l,scrollbarColor:a,scrollbarColorHover:s,invertedColor:d}=e;return{textColor:n,textColorInverted:"#FFF",color:o,colorEmbedded:l,headerColor:r,headerColorInverted:d,footerColor:l,footerColorInverted:d,headerBorderColor:i,headerBorderColorInverted:d,footerBorderColor:i,footerBorderColorInverted:d,siderBorderColor:i,siderBorderColorInverted:d,siderColor:r,siderColorInverted:d,siderToggleButtonBorder:`1px solid ${i}`,siderToggleButtonColor:t,siderToggleButtonIconColor:n,siderToggleButtonIconColorInverted:n,siderToggleBarColor:rt(o,a),siderToggleBarColorHover:rt(o,s),__invertScrollbar:"true"}}const _g={name:"Layout",common:gt,peers:{Scrollbar:jo},self:L_},D_={buttonHeightSmall:"14px",buttonHeightMedium:"18px",buttonHeightLarge:"22px",buttonWidthSmall:"14px",buttonWidthMedium:"18px",buttonWidthLarge:"22px",buttonWidthPressedSmall:"20px",buttonWidthPressedMedium:"24px",buttonWidthPressedLarge:"28px",railHeightSmall:"18px",railHeightMedium:"22px",railHeightLarge:"26px",railWidthSmall:"32px",railWidthMedium:"40px",railWidthLarge:"48px"};function H_(e){const{primaryColor:t,opacityDisabled:n,borderRadius:o,textColor3:r}=e;return Object.assign(Object.assign({},D_),{iconColor:r,textColor:"white",loadingColor:t,opacityDisabled:n,railColor:"rgba(0, 0, 0, .14)",railColorActive:t,buttonBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",buttonColor:"#FFF",railBorderRadiusSmall:o,railBorderRadiusMedium:o,railBorderRadiusLarge:o,buttonBorderRadiusSmall:o,buttonBorderRadiusMedium:o,buttonBorderRadiusLarge:o,boxShadowFocus:`0 0 0 2px ${Ue(t,{alpha:.2})}`})}const N_={common:gt,self:H_},j_={tabFontSizeSmall:"14px",tabFontSizeMedium:"14px",tabFontSizeLarge:"16px",tabGapSmallLine:"36px",tabGapMediumLine:"36px",tabGapLargeLine:"36px",tabGapSmallLineVertical:"8px",tabGapMediumLineVertical:"8px",tabGapLargeLineVertical:"8px",tabPaddingSmallLine:"6px 0",tabPaddingMediumLine:"10px 0",tabPaddingLargeLine:"14px 0",tabPaddingVerticalSmallLine:"6px 12px",tabPaddingVerticalMediumLine:"8px 16px",tabPaddingVerticalLargeLine:"10px 20px",tabGapSmallBar:"36px",tabGapMediumBar:"36px",tabGapLargeBar:"36px",tabGapSmallBarVertical:"8px",tabGapMediumBarVertical:"8px",tabGapLargeBarVertical:"8px",tabPaddingSmallBar:"4px 0",tabPaddingMediumBar:"6px 0",tabPaddingLargeBar:"10px 0",tabPaddingVerticalSmallBar:"6px 12px",tabPaddingVerticalMediumBar:"8px 16px",tabPaddingVerticalLargeBar:"10px 20px",tabGapSmallCard:"4px",tabGapMediumCard:"4px",tabGapLargeCard:"4px",tabGapSmallCardVertical:"4px",tabGapMediumCardVertical:"4px",tabGapLargeCardVertical:"4px",tabPaddingSmallCard:"8px 16px",tabPaddingMediumCard:"10px 20px",tabPaddingLargeCard:"12px 24px",tabPaddingSmallSegment:"4px 0",tabPaddingMediumSegment:"6px 0",tabPaddingLargeSegment:"8px 0",tabPaddingVerticalLargeSegment:"0 8px",tabPaddingVerticalSmallCard:"8px 12px",tabPaddingVerticalMediumCard:"10px 16px",tabPaddingVerticalLargeCard:"12px 20px",tabPaddingVerticalSmallSegment:"0 4px",tabPaddingVerticalMediumSegment:"0 6px",tabGapSmallSegment:"0",tabGapMediumSegment:"0",tabGapLargeSegment:"0",tabGapSmallSegmentVertical:"0",tabGapMediumSegmentVertical:"0",tabGapLargeSegmentVertical:"0",panePaddingSmall:"8px 0 0 0",panePaddingMedium:"12px 0 0 0",panePaddingLarge:"16px 0 0 0",closeSize:"18px",closeIconSize:"14px"};function W_(e){const{textColor2:t,primaryColor:n,textColorDisabled:o,closeIconColor:r,closeIconColorHover:i,closeIconColorPressed:l,closeColorHover:a,closeColorPressed:s,tabColor:d,baseColor:c,dividerColor:f,fontWeight:v,textColor1:g,borderRadius:u,fontSize:p,fontWeightStrong:b}=e;return Object.assign(Object.assign({},j_),{colorSegment:d,tabFontSizeCard:p,tabTextColorLine:g,tabTextColorActiveLine:n,tabTextColorHoverLine:n,tabTextColorDisabledLine:o,tabTextColorSegment:g,tabTextColorActiveSegment:t,tabTextColorHoverSegment:t,tabTextColorDisabledSegment:o,tabTextColorBar:g,tabTextColorActiveBar:n,tabTextColorHoverBar:n,tabTextColorDisabledBar:o,tabTextColorCard:g,tabTextColorHoverCard:g,tabTextColorActiveCard:n,tabTextColorDisabledCard:o,barColor:n,closeIconColor:r,closeIconColorHover:i,closeIconColorPressed:l,closeColorHover:a,closeColorPressed:s,closeBorderRadius:u,tabColor:d,tabColorSegment:c,tabBorderColor:f,tabFontWeightActive:v,tabFontWeight:v,tabBorderRadius:u,paneTextColor:t,fontWeightStrong:b})}const V_={common:gt,self:W_},Lf=1,zg="n-grid",Tg=1,K_={span:{type:[Number,String],default:Tg},offset:{type:[Number,String],default:0},suffix:Boolean,privateOffset:Number,privateSpan:Number,privateColStart:Number,privateShow:{type:Boolean,default:!0}},bn=pe({__GRID_ITEM__:!0,name:"GridItem",alias:["Gi"],props:K_,setup(){const{isSsrRef:e,xGapRef:t,itemStyleRef:n,overflowRef:o,layoutShiftDisabledRef:r}=Ee(zg),i=Lo();return{overflow:o,itemStyle:n,layoutShiftDisabled:r,mergedXGap:O(()=>pt(t.value||0)),deriveStyle:()=>{e.value;const{privateSpan:l=Tg,privateShow:a=!0,privateColStart:s=void 0,privateOffset:d=0}=i.vnode.props,{value:c}=t,f=pt(c||0);return{display:a?"":"none",gridColumn:`${s??`span ${l}`} / span ${l}`,marginLeft:d?`calc((100% - (${l} - 1) * ${f}) / ${l} * ${d} + ${f} * ${d})`:""}}}},render(){var e,t;if(this.layoutShiftDisabled){const{span:n,offset:o,mergedXGap:r}=this;return h("div",{style:{gridColumn:`span ${n} / span ${n}`,marginLeft:o?`calc((100% - (${n} - 1) * ${r}) / ${n} * ${o} + ${r} * ${o})`:""}},this.$slots)}return h("div",{style:[this.itemStyle,this.deriveStyle()]},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e,{overflow:this.overflow}))}}),U_={xs:0,s:640,m:1024,l:1280,xl:1536,xxl:1920},Fg=24,ws="__ssr__",G_={layoutShiftDisabled:Boolean,responsive:{type:[String,Boolean],default:"self"},cols:{type:[Number,String],default:Fg},itemResponsive:Boolean,collapsed:Boolean,collapsedRows:{type:Number,default:1},itemStyle:[Object,String],xGap:{type:[Number,String],default:0},yGap:{type:[Number,String],default:0}},id=pe({name:"Grid",inheritAttrs:!1,props:G_,setup(e){const{mergedClsPrefixRef:t,mergedBreakpointsRef:n}=Ye(e),o=/^\d+$/,r=E(void 0),i=Py(n?.value||U_),l=ot(()=>!!(e.itemResponsive||!o.test(e.cols.toString())||!o.test(e.xGap.toString())||!o.test(e.yGap.toString()))),a=O(()=>{if(l.value)return e.responsive==="self"?r.value:i.value}),s=ot(()=>{var m;return(m=Number(xr(e.cols.toString(),a.value)))!==null&&m!==void 0?m:Fg}),d=ot(()=>xr(e.xGap.toString(),a.value)),c=ot(()=>xr(e.yGap.toString(),a.value)),f=m=>{r.value=m.contentRect.width},v=m=>{Ai(f,m)},g=E(!1),u=O(()=>{if(e.responsive==="self")return v}),p=E(!1),b=E();return Ct(()=>{const{value:m}=b;m&&m.hasAttribute(ws)&&(m.removeAttribute(ws),p.value=!0)}),qe(zg,{layoutShiftDisabledRef:we(e,"layoutShiftDisabled"),isSsrRef:p,itemStyleRef:we(e,"itemStyle"),xGapRef:d,overflowRef:g}),{isSsr:!Do,contentEl:b,mergedClsPrefix:t,style:O(()=>e.layoutShiftDisabled?{width:"100%",display:"grid",gridTemplateColumns:`repeat(${e.cols}, minmax(0, 1fr))`,columnGap:pt(e.xGap),rowGap:pt(e.yGap)}:{width:"100%",display:"grid",gridTemplateColumns:`repeat(${s.value}, minmax(0, 1fr))`,columnGap:pt(d.value),rowGap:pt(c.value)}),isResponsive:l,responsiveQuery:a,responsiveCols:s,handleResize:u,overflow:g}},render(){if(this.layoutShiftDisabled)return h("div",nn({ref:"contentEl",class:`${this.mergedClsPrefix}-grid`,style:this.style},this.$attrs),this.$slots);const e=()=>{var t,n,o,r,i,l,a;this.overflow=!1;const s=Un(Dd(this)),d=[],{collapsed:c,collapsedRows:f,responsiveCols:v,responsiveQuery:g}=this;s.forEach(y=>{var $,S,x,R,C;if((($=y?.type)===null||$===void 0?void 0:$.__GRID_ITEM__)!==!0)return;if(Fx(y)){const F=hn(y);F.props?F.props.privateShow=!1:F.props={privateShow:!1},d.push({child:F,rawChildSpan:0});return}y.dirs=((S=y.dirs)===null||S===void 0?void 0:S.filter(({dir:F})=>F!==Fo))||null,((x=y.dirs)===null||x===void 0?void 0:x.length)===0&&(y.dirs=null);const w=hn(y),k=Number((C=xr((R=w.props)===null||R===void 0?void 0:R.span,g))!==null&&C!==void 0?C:Lf);k!==0&&d.push({child:w,rawChildSpan:k})});let u=0;const p=(t=d[d.length-1])===null||t===void 0?void 0:t.child;if(p?.props){const y=(n=p.props)===null||n===void 0?void 0:n.suffix;y!==void 0&&y!==!1&&(u=Number((r=xr((o=p.props)===null||o===void 0?void 0:o.span,g))!==null&&r!==void 0?r:Lf),p.props.privateSpan=u,p.props.privateColStart=v+1-u,p.props.privateShow=(i=p.props.privateShow)!==null&&i!==void 0?i:!0)}let b=0,m=!1;for(const{child:y,rawChildSpan:$}of d){if(m&&(this.overflow=!0),!m){const S=Number((a=xr((l=y.props)===null||l===void 0?void 0:l.offset,g))!==null&&a!==void 0?a:0),x=Math.min($+S,v);if(y.props?(y.props.privateSpan=x,y.props.privateOffset=S):y.props={privateSpan:x,privateOffset:S},c){const R=b%v;x+R>v&&(b+=v-R),x+b+u>f*v?m=!0:b+=x}}m&&(y.props?y.props.privateShow!==!0&&(y.props.privateShow=!1):y.props={privateShow:!1})}return h("div",nn({ref:"contentEl",class:`${this.mergedClsPrefix}-grid`,style:this.style,[ws]:this.isSsr||void 0},this.$attrs),d.map(({child:y})=>y))};return this.isResponsive&&this.responsive==="self"?h(Kn,{onResize:this.handleResize},{default:e}):e()}}),Og={type:String,default:"static"},q_=P("layout",` + color: var(--n-text-color); + background-color: var(--n-color); + box-sizing: border-box; + position: relative; + z-index: auto; + flex: auto; + overflow: hidden; + transition: + box-shadow .3s var(--n-bezier), + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); +`,[P("layout-scroll-container",` + overflow-x: hidden; + box-sizing: border-box; + height: 100%; + `),H("absolute-positioned",` + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + `)]),X_={embedded:Boolean,position:Og,nativeScrollbar:{type:Boolean,default:!0},scrollbarProps:Object,onScroll:Function,contentClass:String,contentStyle:{type:[String,Object],default:""},hasSider:Boolean,siderPlacement:{type:String,default:"left"}},Y_="n-layout";function Eg(e){return pe({name:e?"LayoutContent":"Layout",props:Object.assign(Object.assign({},Be.props),X_),setup(t){const n=E(null),o=E(null),{mergedClsPrefixRef:r,inlineThemeDisabled:i}=Ye(t),l=Be("Layout","-layout",q_,_g,t,r);function a(p,b){if(t.nativeScrollbar){const{value:m}=n;m&&(b===void 0?m.scrollTo(p):m.scrollTo(p,b))}else{const{value:m}=o;m&&m.scrollTo(p,b)}}qe(Y_,t);let s=0,d=0;const c=p=>{var b;const m=p.target;s=m.scrollLeft,d=m.scrollTop,(b=t.onScroll)===null||b===void 0||b.call(t,p)};zp(()=>{if(t.nativeScrollbar){const p=n.value;p&&(p.scrollTop=d,p.scrollLeft=s)}});const f={display:"flex",flexWrap:"nowrap",width:"100%",flexDirection:"row"},v={scrollTo:a},g=O(()=>{const{common:{cubicBezierEaseInOut:p},self:b}=l.value;return{"--n-bezier":p,"--n-color":t.embedded?b.colorEmbedded:b.color,"--n-text-color":b.textColor}}),u=i?vt("layout",O(()=>t.embedded?"e":""),g,t):void 0;return Object.assign({mergedClsPrefix:r,scrollableElRef:n,scrollbarInstRef:o,hasSiderStyle:f,mergedTheme:l,handleNativeElScroll:c,cssVars:i?void 0:g,themeClass:u?.themeClass,onRender:u?.onRender},v)},render(){var t;const{mergedClsPrefix:n,hasSider:o}=this;(t=this.onRender)===null||t===void 0||t.call(this);const r=o?this.hasSiderStyle:void 0,i=[this.themeClass,e&&`${n}-layout-content`,`${n}-layout`,`${n}-layout--${this.position}-positioned`];return h("div",{class:i,style:this.cssVars},this.nativeScrollbar?h("div",{ref:"scrollableElRef",class:[`${n}-layout-scroll-container`,this.contentClass],style:[this.contentStyle,r],onScroll:this.handleNativeElScroll},this.$slots):h(bo,Object.assign({},this.scrollbarProps,{onScroll:this.onScroll,ref:"scrollbarInstRef",theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar,contentClass:this.contentClass,contentStyle:[this.contentStyle,r]}),this.$slots))}})}const Z_=Eg(!1),J_=Eg(!0),Q_=P("layout-header",` + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + box-shadow .3s var(--n-bezier), + border-color .3s var(--n-bezier); + box-sizing: border-box; + width: 100%; + background-color: var(--n-color); + color: var(--n-text-color); +`,[H("absolute-positioned",` + position: absolute; + left: 0; + right: 0; + top: 0; + `),H("bordered",` + border-bottom: solid 1px var(--n-border-color); + `)]),ez={position:Og,inverted:Boolean,bordered:{type:Boolean,default:!1}},tz=pe({name:"LayoutHeader",props:Object.assign(Object.assign({},Be.props),ez),setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=Ye(e),o=Be("Layout","-layout-header",Q_,_g,e,t),r=O(()=>{const{common:{cubicBezierEaseInOut:l},self:a}=o.value,s={"--n-bezier":l};return e.inverted?(s["--n-color"]=a.headerColorInverted,s["--n-text-color"]=a.textColorInverted,s["--n-border-color"]=a.headerBorderColorInverted):(s["--n-color"]=a.headerColor,s["--n-text-color"]=a.textColor,s["--n-border-color"]=a.headerBorderColor),s}),i=n?vt("layout-header",O(()=>e.inverted?"a":"b"),r,e):void 0;return{mergedClsPrefix:t,cssVars:n?void 0:r,themeClass:i?.themeClass,onRender:i?.onRender}},render(){var e;const{mergedClsPrefix:t}=this;return(e=this.onRender)===null||e===void 0||e.call(this),h("div",{class:[`${t}-layout-header`,this.themeClass,this.position&&`${t}-layout-header--${this.position}-positioned`,this.bordered&&`${t}-layout-header--bordered`],style:this.cssVars},this.$slots)}}),nz=P("switch",` + height: var(--n-height); + min-width: var(--n-width); + vertical-align: middle; + user-select: none; + -webkit-user-select: none; + display: inline-flex; + outline: none; + justify-content: center; + align-items: center; +`,[j("children-placeholder",` + height: var(--n-rail-height); + display: flex; + flex-direction: column; + overflow: hidden; + pointer-events: none; + visibility: hidden; + `),j("rail-placeholder",` + display: flex; + flex-wrap: none; + `),j("button-placeholder",` + width: calc(1.75 * var(--n-rail-height)); + height: var(--n-rail-height); + `),P("base-loading",` + position: absolute; + top: 50%; + left: 50%; + transform: translateX(-50%) translateY(-50%); + font-size: calc(var(--n-button-width) - 4px); + color: var(--n-loading-color); + transition: color .3s var(--n-bezier); + `,[an({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),j("checked, unchecked",` + transition: color .3s var(--n-bezier); + color: var(--n-text-color); + box-sizing: border-box; + position: absolute; + white-space: nowrap; + top: 0; + bottom: 0; + display: flex; + align-items: center; + line-height: 1; + `),j("checked",` + right: 0; + padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset)); + `),j("unchecked",` + left: 0; + justify-content: flex-end; + padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset)); + `),I("&:focus",[j("rail",` + box-shadow: var(--n-box-shadow-focus); + `)]),H("round",[j("rail","border-radius: calc(var(--n-rail-height) / 2);",[j("button","border-radius: calc(var(--n-button-height) / 2);")])]),dt("disabled",[dt("icon",[H("rubber-band",[H("pressed",[j("rail",[j("button","max-width: var(--n-button-width-pressed);")])]),j("rail",[I("&:active",[j("button","max-width: var(--n-button-width-pressed);")])]),H("active",[H("pressed",[j("rail",[j("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])]),j("rail",[I("&:active",[j("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])])])])])]),H("active",[j("rail",[j("button","left: calc(100% - var(--n-button-width) - var(--n-offset))")])]),j("rail",` + overflow: hidden; + height: var(--n-rail-height); + min-width: var(--n-rail-width); + border-radius: var(--n-rail-border-radius); + cursor: pointer; + position: relative; + transition: + opacity .3s var(--n-bezier), + background .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + background-color: var(--n-rail-color); + `,[j("button-icon",` + color: var(--n-icon-color); + transition: color .3s var(--n-bezier); + font-size: calc(var(--n-button-height) - 4px); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + line-height: 1; + `,[an()]),j("button",` + align-items: center; + top: var(--n-offset); + left: var(--n-offset); + height: var(--n-button-height); + width: var(--n-button-width-pressed); + max-width: var(--n-button-width); + border-radius: var(--n-button-border-radius); + background-color: var(--n-button-color); + box-shadow: var(--n-button-box-shadow); + box-sizing: border-box; + cursor: inherit; + content: ""; + position: absolute; + transition: + background-color .3s var(--n-bezier), + left .3s var(--n-bezier), + opacity .3s var(--n-bezier), + max-width .3s var(--n-bezier), + box-shadow .3s var(--n-bezier); + `)]),H("active",[j("rail","background-color: var(--n-rail-color-active);")]),H("loading",[j("rail",` + cursor: wait; + `)]),H("disabled",[j("rail",` + cursor: not-allowed; + opacity: .5; + `)])]),oz=Object.assign(Object.assign({},Be.props),{size:String,value:{type:[String,Number,Boolean],default:void 0},loading:Boolean,defaultValue:{type:[String,Number,Boolean],default:!1},disabled:{type:Boolean,default:void 0},round:{type:Boolean,default:!0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],checkedValue:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,Boolean],default:!1},railStyle:Function,rubberBand:{type:Boolean,default:!0},spinProps:Object,onChange:[Function,Array]});let si;const Cs=pe({name:"Switch",props:oz,slots:Object,setup(e){si===void 0&&(typeof CSS<"u"?typeof CSS.supports<"u"?si=CSS.supports("width","max(1px)"):si=!1:si=!0);const{mergedClsPrefixRef:t,inlineThemeDisabled:n,mergedComponentPropsRef:o}=Ye(e),r=Be("Switch","-switch",nz,N_,e,t),i=No(e,{mergedSize(k){var F,M;if(e.size!==void 0)return e.size;if(k)return k.mergedSize.value;const _=(M=(F=o?.value)===null||F===void 0?void 0:F.Switch)===null||M===void 0?void 0:M.size;return _||"medium"}}),{mergedSizeRef:l,mergedDisabledRef:a}=i,s=E(e.defaultValue),c=qt(we(e,"value"),s),f=O(()=>c.value===e.checkedValue),v=E(!1),g=E(!1),u=O(()=>{const{railStyle:k}=e;if(k)return k({focused:g.value,checked:f.value})});function p(k){const{"onUpdate:value":F,onChange:M,onUpdateValue:_}=e,{nTriggerFormInput:T,nTriggerFormChange:B}=i;F&&me(F,k),_&&me(_,k),M&&me(M,k),s.value=k,T(),B()}function b(){const{nTriggerFormFocus:k}=i;k()}function m(){const{nTriggerFormBlur:k}=i;k()}function y(){e.loading||a.value||(c.value!==e.checkedValue?p(e.checkedValue):p(e.uncheckedValue))}function $(){g.value=!0,b()}function S(){g.value=!1,m(),v.value=!1}function x(k){e.loading||a.value||k.key===" "&&(c.value!==e.checkedValue?p(e.checkedValue):p(e.uncheckedValue),v.value=!1)}function R(k){e.loading||a.value||k.key===" "&&(k.preventDefault(),v.value=!0)}const C=O(()=>{const{value:k}=l,{self:{opacityDisabled:F,railColor:M,railColorActive:_,buttonBoxShadow:T,buttonColor:B,boxShadowFocus:D,loadingColor:K,textColor:N,iconColor:V,[de("buttonHeight",k)]:ie,[de("buttonWidth",k)]:he,[de("buttonWidthPressed",k)]:J,[de("railHeight",k)]:re,[de("railWidth",k)]:ye,[de("railBorderRadius",k)]:Z,[de("buttonBorderRadius",k)]:le},common:{cubicBezierEaseInOut:$e}}=r.value;let ze,Ae,Te;return si?(ze=`calc((${re} - ${ie}) / 2)`,Ae=`max(${re}, ${ie})`,Te=`max(${ye}, calc(${ye} + ${ie} - ${re}))`):(ze=pt((Pt(re)-Pt(ie))/2),Ae=pt(Math.max(Pt(re),Pt(ie))),Te=Pt(re)>Pt(ie)?ye:pt(Pt(ye)+Pt(ie)-Pt(re))),{"--n-bezier":$e,"--n-button-border-radius":le,"--n-button-box-shadow":T,"--n-button-color":B,"--n-button-width":he,"--n-button-width-pressed":J,"--n-button-height":ie,"--n-height":Ae,"--n-offset":ze,"--n-opacity-disabled":F,"--n-rail-border-radius":Z,"--n-rail-color":M,"--n-rail-color-active":_,"--n-rail-height":re,"--n-rail-width":ye,"--n-width":Te,"--n-box-shadow-focus":D,"--n-loading-color":K,"--n-text-color":N,"--n-icon-color":V}}),w=n?vt("switch",O(()=>l.value[0]),C,e):void 0;return{handleClick:y,handleBlur:S,handleFocus:$,handleKeyup:x,handleKeydown:R,mergedRailStyle:u,pressed:v,mergedClsPrefix:t,mergedValue:c,checked:f,mergedDisabled:a,cssVars:n?void 0:C,themeClass:w?.themeClass,onRender:w?.onRender}},render(){const{mergedClsPrefix:e,mergedDisabled:t,checked:n,mergedRailStyle:o,onRender:r,$slots:i}=this;r?.();const{checked:l,unchecked:a,icon:s,"checked-icon":d,"unchecked-icon":c}=i,f=!(Mr(s)&&Mr(d)&&Mr(c));return h("div",{role:"switch","aria-checked":n,class:[`${e}-switch`,this.themeClass,f&&`${e}-switch--icon`,n&&`${e}-switch--active`,t&&`${e}-switch--disabled`,this.round&&`${e}-switch--round`,this.loading&&`${e}-switch--loading`,this.pressed&&`${e}-switch--pressed`,this.rubberBand&&`${e}-switch--rubber-band`],tabindex:this.mergedDisabled?void 0:0,style:this.cssVars,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},h("div",{class:`${e}-switch__rail`,"aria-hidden":"true",style:o},lt(l,v=>lt(a,g=>v||g?h("div",{"aria-hidden":!0,class:`${e}-switch__children-placeholder`},h("div",{class:`${e}-switch__rail-placeholder`},h("div",{class:`${e}-switch__button-placeholder`}),v),h("div",{class:`${e}-switch__rail-placeholder`},h("div",{class:`${e}-switch__button-placeholder`}),g)):null)),h("div",{class:`${e}-switch__button`},lt(s,v=>lt(d,g=>lt(c,u=>h(vr,null,{default:()=>this.loading?h(gr,Object.assign({key:"loading",clsPrefix:e,strokeWidth:20},this.spinProps)):this.checked&&(g||v)?h("div",{class:`${e}-switch__button-icon`,key:g?"checked-icon":"icon"},g||v):!this.checked&&(u||v)?h("div",{class:`${e}-switch__button-icon`,key:u?"unchecked-icon":"icon"},u||v):null})))),lt(l,v=>v&&h("div",{key:"checked",class:`${e}-switch__checked`},v)),lt(a,v=>v&&h("div",{key:"unchecked",class:`${e}-switch__unchecked`},v)))))}}),gc="n-tabs",Mg={tab:[String,Number,Object,Function],name:{type:[String,Number],required:!0},disabled:Boolean,displayDirective:{type:String,default:"if"},closable:{type:Boolean,default:void 0},tabProps:Object,label:[String,Number,Object,Function]},yl=pe({__TAB_PANE__:!0,name:"TabPane",alias:["TabPanel"],props:Mg,slots:Object,setup(e){const t=Ee(gc,null);return t||sr("tab-pane","`n-tab-pane` must be placed inside `n-tabs`."),{style:t.paneStyleRef,class:t.paneClassRef,mergedClsPrefix:t.mergedClsPrefixRef}},render(){return h("div",{class:[`${this.mergedClsPrefix}-tab-pane`,this.class],style:this.style},this.$slots)}}),rz=Object.assign({internalLeftPadded:Boolean,internalAddable:Boolean,internalCreatedByPane:Boolean},dr(Mg,["displayDirective"])),ld=pe({__TAB__:!0,inheritAttrs:!1,name:"Tab",props:rz,setup(e){const{mergedClsPrefixRef:t,valueRef:n,typeRef:o,closableRef:r,tabStyleRef:i,addTabStyleRef:l,tabClassRef:a,addTabClassRef:s,tabChangeIdRef:d,onBeforeLeaveRef:c,triggerRef:f,handleAdd:v,activateTab:g,handleClose:u}=Ee(gc);return{trigger:f,mergedClosable:O(()=>{if(e.internalAddable)return!1;const{closable:p}=e;return p===void 0?r.value:p}),style:i,addStyle:l,tabClass:a,addTabClass:s,clsPrefix:t,value:n,type:o,handleClose(p){p.stopPropagation(),!e.disabled&&u(e.name)},activateTab(){if(e.disabled)return;if(e.internalAddable){v();return}const{name:p}=e,b=++d.id;if(p!==n.value){const{value:m}=c;m?Promise.resolve(m(e.name,n.value)).then(y=>{y&&d.id===b&&g(p)}):g(p)}}}},render(){const{internalAddable:e,clsPrefix:t,name:n,disabled:o,label:r,tab:i,value:l,mergedClosable:a,trigger:s,$slots:{default:d}}=this,c=r??i;return h("div",{class:`${t}-tabs-tab-wrapper`},this.internalLeftPadded?h("div",{class:`${t}-tabs-tab-pad`}):null,h("div",Object.assign({key:n,"data-name":n,"data-disabled":o?!0:void 0},nn({class:[`${t}-tabs-tab`,l===n&&`${t}-tabs-tab--active`,o&&`${t}-tabs-tab--disabled`,a&&`${t}-tabs-tab--closable`,e&&`${t}-tabs-tab--addable`,e?this.addTabClass:this.tabClass],onClick:s==="click"?this.activateTab:void 0,onMouseenter:s==="hover"?this.activateTab:void 0,style:e?this.addStyle:this.style},this.internalCreatedByPane?this.tabProps||{}:this.$attrs)),h("span",{class:`${t}-tabs-tab__label`},e?h(nt,null,h("div",{class:`${t}-tabs-tab__height-placeholder`}," "),h(kt,{clsPrefix:t},{default:()=>h(ZR,null)})):d?d():typeof c=="object"?c:wt(c??n)),a&&this.type==="card"?h(Kr,{clsPrefix:t,class:`${t}-tabs-tab__close`,onClick:this.handleClose,disabled:o}):null))}}),iz=P("tabs",` + box-sizing: border-box; + width: 100%; + display: flex; + flex-direction: column; + transition: + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier); +`,[H("segment-type",[P("tabs-rail",[I("&.transition-disabled",[P("tabs-capsule",` + transition: none; + `)])])]),H("top",[P("tab-pane",` + padding: var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left); + `)]),H("left",[P("tab-pane",` + padding: var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left) var(--n-pane-padding-top); + `)]),H("left, right",` + flex-direction: row; + `,[P("tabs-bar",` + width: 2px; + right: 0; + transition: + top .2s var(--n-bezier), + max-height .2s var(--n-bezier), + background-color .3s var(--n-bezier); + `),P("tabs-tab",` + padding: var(--n-tab-padding-vertical); + `)]),H("right",` + flex-direction: row-reverse; + `,[P("tab-pane",` + padding: var(--n-pane-padding-left) var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom); + `),P("tabs-bar",` + left: 0; + `)]),H("bottom",` + flex-direction: column-reverse; + justify-content: flex-end; + `,[P("tab-pane",` + padding: var(--n-pane-padding-bottom) var(--n-pane-padding-right) var(--n-pane-padding-top) var(--n-pane-padding-left); + `),P("tabs-bar",` + top: 0; + `)]),P("tabs-rail",` + position: relative; + padding: 3px; + border-radius: var(--n-tab-border-radius); + width: 100%; + background-color: var(--n-color-segment); + transition: background-color .3s var(--n-bezier); + display: flex; + align-items: center; + `,[P("tabs-capsule",` + border-radius: var(--n-tab-border-radius); + position: absolute; + pointer-events: none; + background-color: var(--n-tab-color-segment); + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .08); + transition: transform 0.3s var(--n-bezier); + `),P("tabs-tab-wrapper",` + flex-basis: 0; + flex-grow: 1; + display: flex; + align-items: center; + justify-content: center; + `,[P("tabs-tab",` + overflow: hidden; + border-radius: var(--n-tab-border-radius); + width: 100%; + display: flex; + align-items: center; + justify-content: center; + `,[H("active",` + font-weight: var(--n-font-weight-strong); + color: var(--n-tab-text-color-active); + `),I("&:hover",` + color: var(--n-tab-text-color-hover); + `)])])]),H("flex",[P("tabs-nav",` + width: 100%; + position: relative; + `,[P("tabs-wrapper",` + width: 100%; + `,[P("tabs-tab",` + margin-right: 0; + `)])])]),P("tabs-nav",` + box-sizing: border-box; + line-height: 1.5; + display: flex; + transition: border-color .3s var(--n-bezier); + `,[j("prefix, suffix",` + display: flex; + align-items: center; + `),j("prefix","padding-right: 16px;"),j("suffix","padding-left: 16px;")]),H("top, bottom",[I(">",[P("tabs-nav",[P("tabs-nav-scroll-wrapper",[I("&::before",` + top: 0; + bottom: 0; + left: 0; + width: 20px; + `),I("&::after",` + top: 0; + bottom: 0; + right: 0; + width: 20px; + `),H("shadow-start",[I("&::before",` + box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, .12); + `)]),H("shadow-end",[I("&::after",` + box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, .12); + `)])])])])]),H("left, right",[P("tabs-nav-scroll-content",` + flex-direction: column; + `),I(">",[P("tabs-nav",[P("tabs-nav-scroll-wrapper",[I("&::before",` + top: 0; + left: 0; + right: 0; + height: 20px; + `),I("&::after",` + bottom: 0; + left: 0; + right: 0; + height: 20px; + `),H("shadow-start",[I("&::before",` + box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, .12); + `)]),H("shadow-end",[I("&::after",` + box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, .12); + `)])])])])]),P("tabs-nav-scroll-wrapper",` + flex: 1; + position: relative; + overflow: hidden; + `,[P("tabs-nav-y-scroll",` + height: 100%; + width: 100%; + overflow-y: auto; + scrollbar-width: none; + `,[I("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` + width: 0; + height: 0; + display: none; + `)]),I("&::before, &::after",` + transition: box-shadow .3s var(--n-bezier); + pointer-events: none; + content: ""; + position: absolute; + z-index: 1; + `)]),P("tabs-nav-scroll-content",` + display: flex; + position: relative; + min-width: 100%; + min-height: 100%; + width: fit-content; + box-sizing: border-box; + `),P("tabs-wrapper",` + display: inline-flex; + flex-wrap: nowrap; + position: relative; + `),P("tabs-tab-wrapper",` + display: flex; + flex-wrap: nowrap; + flex-shrink: 0; + flex-grow: 0; + `),P("tabs-tab",` + cursor: pointer; + white-space: nowrap; + flex-wrap: nowrap; + display: inline-flex; + align-items: center; + color: var(--n-tab-text-color); + font-size: var(--n-tab-font-size); + background-clip: padding-box; + padding: var(--n-tab-padding); + transition: + box-shadow .3s var(--n-bezier), + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + border-color .3s var(--n-bezier); + `,[H("disabled",{cursor:"not-allowed"}),j("close",` + margin-left: 6px; + transition: + background-color .3s var(--n-bezier), + color .3s var(--n-bezier); + `),j("label",` + display: flex; + align-items: center; + z-index: 1; + `)]),P("tabs-bar",` + position: absolute; + bottom: 0; + height: 2px; + border-radius: 1px; + background-color: var(--n-bar-color); + transition: + left .2s var(--n-bezier), + max-width .2s var(--n-bezier), + opacity .3s var(--n-bezier), + background-color .3s var(--n-bezier); + `,[I("&.transition-disabled",` + transition: none; + `),H("disabled",` + background-color: var(--n-tab-text-color-disabled) + `)]),P("tabs-pane-wrapper",` + position: relative; + overflow: hidden; + transition: max-height .2s var(--n-bezier); + `),P("tab-pane",` + color: var(--n-pane-text-color); + width: 100%; + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + opacity .2s var(--n-bezier); + left: 0; + right: 0; + top: 0; + `,[I("&.next-transition-leave-active, &.prev-transition-leave-active, &.next-transition-enter-active, &.prev-transition-enter-active",` + transition: + color .3s var(--n-bezier), + background-color .3s var(--n-bezier), + transform .2s var(--n-bezier), + opacity .2s var(--n-bezier); + `),I("&.next-transition-leave-active, &.prev-transition-leave-active",` + position: absolute; + `),I("&.next-transition-enter-from, &.prev-transition-leave-to",` + transform: translateX(32px); + opacity: 0; + `),I("&.next-transition-leave-to, &.prev-transition-enter-from",` + transform: translateX(-32px); + opacity: 0; + `),I("&.next-transition-leave-from, &.next-transition-enter-to, &.prev-transition-leave-from, &.prev-transition-enter-to",` + transform: translateX(0); + opacity: 1; + `)]),P("tabs-tab-pad",` + box-sizing: border-box; + width: var(--n-tab-gap); + flex-grow: 0; + flex-shrink: 0; + `),H("line-type, bar-type",[P("tabs-tab",` + font-weight: var(--n-tab-font-weight); + box-sizing: border-box; + vertical-align: bottom; + `,[I("&:hover",{color:"var(--n-tab-text-color-hover)"}),H("active",` + color: var(--n-tab-text-color-active); + font-weight: var(--n-tab-font-weight-active); + `),H("disabled",{color:"var(--n-tab-text-color-disabled)"})])]),P("tabs-nav",[H("line-type",[H("top",[j("prefix, suffix",` + border-bottom: 1px solid var(--n-tab-border-color); + `),P("tabs-nav-scroll-content",` + border-bottom: 1px solid var(--n-tab-border-color); + `),P("tabs-bar",` + bottom: -1px; + `)]),H("left",[j("prefix, suffix",` + border-right: 1px solid var(--n-tab-border-color); + `),P("tabs-nav-scroll-content",` + border-right: 1px solid var(--n-tab-border-color); + `),P("tabs-bar",` + right: -1px; + `)]),H("right",[j("prefix, suffix",` + border-left: 1px solid var(--n-tab-border-color); + `),P("tabs-nav-scroll-content",` + border-left: 1px solid var(--n-tab-border-color); + `),P("tabs-bar",` + left: -1px; + `)]),H("bottom",[j("prefix, suffix",` + border-top: 1px solid var(--n-tab-border-color); + `),P("tabs-nav-scroll-content",` + border-top: 1px solid var(--n-tab-border-color); + `),P("tabs-bar",` + top: -1px; + `)]),j("prefix, suffix",` + transition: border-color .3s var(--n-bezier); + `),P("tabs-nav-scroll-content",` + transition: border-color .3s var(--n-bezier); + `),P("tabs-bar",` + border-radius: 0; + `)]),H("card-type",[j("prefix, suffix",` + transition: border-color .3s var(--n-bezier); + `),P("tabs-pad",` + flex-grow: 1; + transition: border-color .3s var(--n-bezier); + `),P("tabs-tab-pad",` + transition: border-color .3s var(--n-bezier); + `),P("tabs-tab",` + font-weight: var(--n-tab-font-weight); + border: 1px solid var(--n-tab-border-color); + background-color: var(--n-tab-color); + box-sizing: border-box; + position: relative; + vertical-align: bottom; + display: flex; + justify-content: space-between; + font-size: var(--n-tab-font-size); + color: var(--n-tab-text-color); + `,[H("addable",` + padding-left: 8px; + padding-right: 8px; + font-size: 16px; + justify-content: center; + `,[j("height-placeholder",` + width: 0; + font-size: var(--n-tab-font-size); + `),dt("disabled",[I("&:hover",` + color: var(--n-tab-text-color-hover); + `)])]),H("closable","padding-right: 8px;"),H("active",` + background-color: #0000; + font-weight: var(--n-tab-font-weight-active); + color: var(--n-tab-text-color-active); + `),H("disabled","color: var(--n-tab-text-color-disabled);")])]),H("left, right",` + flex-direction: column; + `,[j("prefix, suffix",` + padding: var(--n-tab-padding-vertical); + `),P("tabs-wrapper",` + flex-direction: column; + `),P("tabs-tab-wrapper",` + flex-direction: column; + `,[P("tabs-tab-pad",` + height: var(--n-tab-gap-vertical); + width: 100%; + `)])]),H("top",[H("card-type",[P("tabs-scroll-padding","border-bottom: 1px solid var(--n-tab-border-color);"),j("prefix, suffix",` + border-bottom: 1px solid var(--n-tab-border-color); + `),P("tabs-tab",` + border-top-left-radius: var(--n-tab-border-radius); + border-top-right-radius: var(--n-tab-border-radius); + `,[H("active",` + border-bottom: 1px solid #0000; + `)]),P("tabs-tab-pad",` + border-bottom: 1px solid var(--n-tab-border-color); + `),P("tabs-pad",` + border-bottom: 1px solid var(--n-tab-border-color); + `)])]),H("left",[H("card-type",[P("tabs-scroll-padding","border-right: 1px solid var(--n-tab-border-color);"),j("prefix, suffix",` + border-right: 1px solid var(--n-tab-border-color); + `),P("tabs-tab",` + border-top-left-radius: var(--n-tab-border-radius); + border-bottom-left-radius: var(--n-tab-border-radius); + `,[H("active",` + border-right: 1px solid #0000; + `)]),P("tabs-tab-pad",` + border-right: 1px solid var(--n-tab-border-color); + `),P("tabs-pad",` + border-right: 1px solid var(--n-tab-border-color); + `)])]),H("right",[H("card-type",[P("tabs-scroll-padding","border-left: 1px solid var(--n-tab-border-color);"),j("prefix, suffix",` + border-left: 1px solid var(--n-tab-border-color); + `),P("tabs-tab",` + border-top-right-radius: var(--n-tab-border-radius); + border-bottom-right-radius: var(--n-tab-border-radius); + `,[H("active",` + border-left: 1px solid #0000; + `)]),P("tabs-tab-pad",` + border-left: 1px solid var(--n-tab-border-color); + `),P("tabs-pad",` + border-left: 1px solid var(--n-tab-border-color); + `)])]),H("bottom",[H("card-type",[P("tabs-scroll-padding","border-top: 1px solid var(--n-tab-border-color);"),j("prefix, suffix",` + border-top: 1px solid var(--n-tab-border-color); + `),P("tabs-tab",` + border-bottom-left-radius: var(--n-tab-border-radius); + border-bottom-right-radius: var(--n-tab-border-radius); + `,[H("active",` + border-top: 1px solid #0000; + `)]),P("tabs-tab-pad",` + border-top: 1px solid var(--n-tab-border-color); + `),P("tabs-pad",` + border-top: 1px solid var(--n-tab-border-color); + `)])])])]),Ss=UR,lz=Object.assign(Object.assign({},Be.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:"click"},type:{type:String,default:"bar"},closable:Boolean,justifyContent:String,size:String,placement:{type:String,default:"top"},tabStyle:[String,Object],tabClass:String,addTabStyle:[String,Object],addTabClass:String,barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),az=pe({name:"Tabs",props:lz,slots:Object,setup(e,{slots:t}){var n,o,r,i;const{mergedClsPrefixRef:l,inlineThemeDisabled:a,mergedComponentPropsRef:s}=Ye(e),d=Be("Tabs","-tabs",iz,V_,e,l),c=E(null),f=E(null),v=E(null),g=E(null),u=E(null),p=E(null),b=E(!0),m=E(!0),y=Bl(e,["labelSize","size"]),$=O(()=>{var q,G;if(y.value)return y.value;const W=(G=(q=s?.value)===null||q===void 0?void 0:q.Tabs)===null||G===void 0?void 0:G.size;return W||"medium"}),S=Bl(e,["activeName","value"]),x=E((o=(n=S.value)!==null&&n!==void 0?n:e.defaultValue)!==null&&o!==void 0?o:t.default?(i=(r=Un(t.default())[0])===null||r===void 0?void 0:r.props)===null||i===void 0?void 0:i.name:null),R=qt(S,x),C={id:0},w=O(()=>{if(!(!e.justifyContent||e.type==="card"))return{display:"flex",justifyContent:e.justifyContent}});tt(R,()=>{C.id=0,T(),B()});function k(){var q;const{value:G}=R;return G===null?null:(q=c.value)===null||q===void 0?void 0:q.querySelector(`[data-name="${G}"]`)}function F(q){if(e.type==="card")return;const{value:G}=f;if(!G)return;const W=G.style.opacity==="0";if(q){const Y=`${l.value}-tabs-bar--disabled`,{barWidth:Se,placement:Le}=e;if(q.dataset.disabled==="true"?G.classList.add(Y):G.classList.remove(Y),["top","bottom"].includes(Le)){if(_(["top","maxHeight","height"]),typeof Se=="number"&&q.offsetWidth>=Se){const Ie=Math.floor((q.offsetWidth-Se)/2)+q.offsetLeft;G.style.left=`${Ie}px`,G.style.maxWidth=`${Se}px`}else G.style.left=`${q.offsetLeft}px`,G.style.maxWidth=`${q.offsetWidth}px`;G.style.width="8192px",W&&(G.style.transition="none"),G.offsetWidth,W&&(G.style.transition="",G.style.opacity="1")}else{if(_(["left","maxWidth","width"]),typeof Se=="number"&&q.offsetHeight>=Se){const Ie=Math.floor((q.offsetHeight-Se)/2)+q.offsetTop;G.style.top=`${Ie}px`,G.style.maxHeight=`${Se}px`}else G.style.top=`${q.offsetTop}px`,G.style.maxHeight=`${q.offsetHeight}px`;G.style.height="8192px",W&&(G.style.transition="none"),G.offsetHeight,W&&(G.style.transition="",G.style.opacity="1")}}}function M(){if(e.type==="card")return;const{value:q}=f;q&&(q.style.opacity="0")}function _(q){const{value:G}=f;if(G)for(const W of q)G.style[W]=""}function T(){if(e.type==="card")return;const q=k();q?F(q):M()}function B(){var q;const G=(q=u.value)===null||q===void 0?void 0:q.$el;if(!G)return;const W=k();if(!W)return;const{scrollLeft:Y,offsetWidth:Se}=G,{offsetLeft:Le,offsetWidth:Ie}=W;Y>Le?G.scrollTo({top:0,left:Le,behavior:"smooth"}):Le+Ie>Y+Se&&G.scrollTo({top:0,left:Le+Ie-Se,behavior:"smooth"})}const D=E(null);let K=0,N=null;function V(q){const G=D.value;if(G){K=q.getBoundingClientRect().height;const W=`${K}px`,Y=()=>{G.style.height=W,G.style.maxHeight=W};N?(Y(),N(),N=null):N=Y}}function ie(q){const G=D.value;if(G){const W=q.getBoundingClientRect().height,Y=()=>{document.body.offsetHeight,G.style.maxHeight=`${W}px`,G.style.height=`${Math.max(K,W)}px`};N?(N(),N=null,Y()):N=Y}}function he(){const q=D.value;if(q){q.style.maxHeight="",q.style.height="";const{paneWrapperStyle:G}=e;if(typeof G=="string")q.style.cssText=G;else if(G){const{maxHeight:W,height:Y}=G;W!==void 0&&(q.style.maxHeight=W),Y!==void 0&&(q.style.height=Y)}}}const J={value:[]},re=E("next");function ye(q){const G=R.value;let W="next";for(const Y of J.value){if(Y===G)break;if(Y===q){W="prev";break}}re.value=W,Z(q)}function Z(q){const{onActiveNameChange:G,onUpdateValue:W,"onUpdate:value":Y}=e;G&&me(G,q),W&&me(W,q),Y&&me(Y,q),x.value=q}function le(q){const{onClose:G}=e;G&&me(G,q)}function $e(){const{value:q}=f;if(!q)return;const G="transition-disabled";q.classList.add(G),T(),q.classList.remove(G)}const ze=E(null);function Ae({transitionDisabled:q}){const G=c.value;if(!G)return;q&&G.classList.add("transition-disabled");const W=k();W&&ze.value&&(ze.value.style.width=`${W.offsetWidth}px`,ze.value.style.height=`${W.offsetHeight}px`,ze.value.style.transform=`translateX(${W.offsetLeft-Pt(getComputedStyle(G).paddingLeft)}px)`,q&&ze.value.offsetWidth),q&&G.classList.remove("transition-disabled")}tt([R],()=>{e.type==="segment"&&Rt(()=>{Ae({transitionDisabled:!1})})}),Ct(()=>{e.type==="segment"&&Ae({transitionDisabled:!0})});let Te=0;function ne(q){var G;if(q.contentRect.width===0&&q.contentRect.height===0||Te===q.contentRect.width)return;Te=q.contentRect.width;const{type:W}=e;if((W==="line"||W==="bar")&&$e(),W!=="segment"){const{placement:Y}=e;ae((Y==="top"||Y==="bottom"?(G=u.value)===null||G===void 0?void 0:G.$el:p.value)||null)}}const Oe=Ss(ne,64);tt([()=>e.justifyContent,()=>e.size],()=>{Rt(()=>{const{type:q}=e;(q==="line"||q==="bar")&&$e()})});const z=E(!1);function L(q){var G;const{target:W,contentRect:{width:Y,height:Se}}=q,Le=W.parentElement.parentElement.offsetWidth,Ie=W.parentElement.parentElement.offsetHeight,{placement:De}=e;if(!z.value)De==="top"||De==="bottom"?LeGe.$el.offsetWidth&&(z.value=!1):Ie-Se>Ge.$el.offsetHeight&&(z.value=!1)}ae(((G=u.value)===null||G===void 0?void 0:G.$el)||null)}const ee=Ss(L,64);function se(){const{onAdd:q}=e;q&&q(),Rt(()=>{const G=k(),{value:W}=u;!G||!W||W.scrollTo({left:G.offsetLeft,top:0,behavior:"smooth"})})}function ae(q){if(!q)return;const{placement:G}=e;if(G==="top"||G==="bottom"){const{scrollLeft:W,scrollWidth:Y,offsetWidth:Se}=q;b.value=W<=0,m.value=W+Se>=Y}else{const{scrollTop:W,scrollHeight:Y,offsetHeight:Se}=q;b.value=W<=0,m.value=W+Se>=Y}}const Q=Ss(q=>{ae(q.target)},64);qe(gc,{triggerRef:we(e,"trigger"),tabStyleRef:we(e,"tabStyle"),tabClassRef:we(e,"tabClass"),addTabStyleRef:we(e,"addTabStyle"),addTabClassRef:we(e,"addTabClass"),paneClassRef:we(e,"paneClass"),paneStyleRef:we(e,"paneStyle"),mergedClsPrefixRef:l,typeRef:we(e,"type"),closableRef:we(e,"closable"),valueRef:R,tabChangeIdRef:C,onBeforeLeaveRef:we(e,"onBeforeLeave"),activateTab:ye,handleClose:le,handleAdd:se}),kp(()=>{T(),B()}),en(()=>{const{value:q}=v;if(!q)return;const{value:G}=l,W=`${G}-tabs-nav-scroll-wrapper--shadow-start`,Y=`${G}-tabs-nav-scroll-wrapper--shadow-end`;b.value?q.classList.remove(W):q.classList.add(W),m.value?q.classList.remove(Y):q.classList.add(Y)});const ue={syncBarPosition:()=>{T()}},ve=()=>{Ae({transitionDisabled:!0})},fe=O(()=>{const{value:q}=$,{type:G}=e,W={card:"Card",bar:"Bar",line:"Line",segment:"Segment"}[G],Y=`${q}${W}`,{self:{barColor:Se,closeIconColor:Le,closeIconColorHover:Ie,closeIconColorPressed:De,tabColor:Ge,tabBorderColor:Xe,paneTextColor:at,tabFontWeight:mt,tabBorderRadius:ft,tabFontWeightActive:Re,colorSegment:te,fontWeightStrong:A,tabColorSegment:X,closeSize:be,closeIconSize:_e,closeColorHover:xe,closeColorPressed:ke,closeBorderRadius:Ce,[de("panePadding",q)]:Fe,[de("tabPadding",Y)]:Ze,[de("tabPaddingVertical",Y)]:Lt,[de("tabGap",Y)]:Et,[de("tabGap",`${Y}Vertical`)]:Dt,[de("tabTextColor",G)]:zt,[de("tabTextColorActive",G)]:Ht,[de("tabTextColorHover",G)]:on,[de("tabTextColorDisabled",G)]:Nt,[de("tabFontSize",q)]:Xt},common:{cubicBezierEaseInOut:Mt}}=d.value;return{"--n-bezier":Mt,"--n-color-segment":te,"--n-bar-color":Se,"--n-tab-font-size":Xt,"--n-tab-text-color":zt,"--n-tab-text-color-active":Ht,"--n-tab-text-color-disabled":Nt,"--n-tab-text-color-hover":on,"--n-pane-text-color":at,"--n-tab-border-color":Xe,"--n-tab-border-radius":ft,"--n-close-size":be,"--n-close-icon-size":_e,"--n-close-color-hover":xe,"--n-close-color-pressed":ke,"--n-close-border-radius":Ce,"--n-close-icon-color":Le,"--n-close-icon-color-hover":Ie,"--n-close-icon-color-pressed":De,"--n-tab-color":Ge,"--n-tab-font-weight":mt,"--n-tab-font-weight-active":Re,"--n-tab-padding":Ze,"--n-tab-padding-vertical":Lt,"--n-tab-gap":Et,"--n-tab-gap-vertical":Dt,"--n-pane-padding-left":Ft(Fe,"left"),"--n-pane-padding-right":Ft(Fe,"right"),"--n-pane-padding-top":Ft(Fe,"top"),"--n-pane-padding-bottom":Ft(Fe,"bottom"),"--n-font-weight-strong":A,"--n-tab-color-segment":X}}),oe=a?vt("tabs",O(()=>`${$.value[0]}${e.type[0]}`),fe,e):void 0;return Object.assign({mergedClsPrefix:l,mergedValue:R,renderedNames:new Set,segmentCapsuleElRef:ze,tabsPaneWrapperRef:D,tabsElRef:c,barElRef:f,addTabInstRef:g,xScrollInstRef:u,scrollWrapperElRef:v,addTabFixed:z,tabWrapperStyle:w,handleNavResize:Oe,mergedSize:$,handleScroll:Q,handleTabsResize:ee,cssVars:a?void 0:fe,themeClass:oe?.themeClass,animationDirection:re,renderNameListRef:J,yScrollElRef:p,handleSegmentResize:ve,onAnimationBeforeLeave:V,onAnimationEnter:ie,onAnimationAfterEnter:he,onRender:oe?.onRender},ue)},render(){const{mergedClsPrefix:e,type:t,placement:n,addTabFixed:o,addable:r,mergedSize:i,renderNameListRef:l,onRender:a,paneWrapperClass:s,paneWrapperStyle:d,$slots:{default:c,prefix:f,suffix:v}}=this;a?.();const g=c?Un(c()).filter(x=>x.type.__TAB_PANE__===!0):[],u=c?Un(c()).filter(x=>x.type.__TAB__===!0):[],p=!u.length,b=t==="card",m=t==="segment",y=!b&&!m&&this.justifyContent;l.value=[];const $=()=>{const x=h("div",{style:this.tabWrapperStyle,class:`${e}-tabs-wrapper`},y?null:h("div",{class:`${e}-tabs-scroll-padding`,style:n==="top"||n==="bottom"?{width:`${this.tabsPadding}px`}:{height:`${this.tabsPadding}px`}}),p?g.map((R,C)=>(l.value.push(R.props.name),Rs(h(ld,Object.assign({},R.props,{internalCreatedByPane:!0,internalLeftPadded:C!==0&&(!y||y==="center"||y==="start"||y==="end")}),R.children?{default:R.children.tab}:void 0)))):u.map((R,C)=>(l.value.push(R.props.name),Rs(C!==0&&!y?Nf(R):R))),!o&&r&&b?Hf(r,(p?g.length:u.length)!==0):null,y?null:h("div",{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return h("div",{ref:"tabsElRef",class:`${e}-tabs-nav-scroll-content`},b&&r?h(Kn,{onResize:this.handleTabsResize},{default:()=>x}):x,b?h("div",{class:`${e}-tabs-pad`}):null,b?null:h("div",{ref:"barElRef",class:`${e}-tabs-bar`}))},S=m?"top":n;return h("div",{class:[`${e}-tabs`,this.themeClass,`${e}-tabs--${t}-type`,`${e}-tabs--${i}-size`,y&&`${e}-tabs--flex`,`${e}-tabs--${S}`],style:this.cssVars},h("div",{class:[`${e}-tabs-nav--${t}-type`,`${e}-tabs-nav--${S}`,`${e}-tabs-nav`]},lt(f,x=>x&&h("div",{class:`${e}-tabs-nav__prefix`},x)),m?h(Kn,{onResize:this.handleSegmentResize},{default:()=>h("div",{class:`${e}-tabs-rail`,ref:"tabsElRef"},h("div",{class:`${e}-tabs-capsule`,ref:"segmentCapsuleElRef"},h("div",{class:`${e}-tabs-wrapper`},h("div",{class:`${e}-tabs-tab`}))),p?g.map((x,R)=>(l.value.push(x.props.name),h(ld,Object.assign({},x.props,{internalCreatedByPane:!0,internalLeftPadded:R!==0}),x.children?{default:x.children.tab}:void 0))):u.map((x,R)=>(l.value.push(x.props.name),R===0?x:Nf(x))))}):h(Kn,{onResize:this.handleNavResize},{default:()=>h("div",{class:`${e}-tabs-nav-scroll-wrapper`,ref:"scrollWrapperElRef"},["top","bottom"].includes(S)?h(xx,{ref:"xScrollInstRef",onScroll:this.handleScroll},{default:$}):h("div",{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:"yScrollElRef"},$()))}),o&&r&&b?Hf(r,!0):null,lt(v,x=>x&&h("div",{class:`${e}-tabs-nav__suffix`},x))),p&&(this.animated&&(S==="top"||S==="bottom")?h("div",{ref:"tabsPaneWrapperRef",style:d,class:[`${e}-tabs-pane-wrapper`,s]},Df(g,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):Df(g,this.mergedValue,this.renderedNames)))}});function Df(e,t,n,o,r,i,l){const a=[];return e.forEach(s=>{const{name:d,displayDirective:c,"display-directive":f}=s.props,v=u=>c===u||f===u,g=t===d;if(s.key!==void 0&&(s.key=d),g||v("show")||v("show:lazy")&&n.has(d)){n.has(d)||n.add(d);const u=!v("if");a.push(u?qn(s,[[Fo,g]]):s)}}),l?h(dp,{name:`${l}-transition`,onBeforeLeave:o,onEnter:r,onAfterEnter:i},{default:()=>a}):a}function Hf(e,t){return h(ld,{ref:"addTabInstRef",key:"__addable",name:"__addable",internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e=="object"&&e.disabled})}function Nf(e){const t=hn(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function Rs(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes("internalLeftPadded")||e.dynamicProps.push("internalLeftPadded"):e.dynamicProps=["internalLeftPadded"],e}const sz="modulepreload",dz=function(e){return"/"+e},jf={},ad=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){let d=function(c){return Promise.all(c.map(f=>Promise.resolve(f).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};var l=d;document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),s=a?.nonce||a?.getAttribute("nonce");r=d(n.map(c=>{if(c=dz(c),c in jf)return;jf[c]=!0;const f=c.endsWith(".css"),v=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${v}`))return;const g=document.createElement("link");if(g.rel=f?"stylesheet":sz,f||(g.as="script"),g.crossOrigin="",g.href=c,s&&g.setAttribute("nonce",s),document.head.appendChild(g),f)return new Promise((u,p)=>{g.addEventListener("load",u),g.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(a){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=a,window.dispatchEvent(s),!s.defaultPrevented)throw a}return r.then(a=>{for(const s of a||[])s.status==="rejected"&&i(s.reason);return t().catch(i)})},cz={__name:"RuntimeBadge",props:{type:{type:String,default:"default"},text:{type:String,default:""}},setup(e){return(t,n)=>(Xn(),Oi(ge(ki),{type:e.type,bordered:!1,round:""},{default:Ne(()=>[Kt(Xo(e.text),1)]),_:1},8,["type"]))}},uz={class:"flex items-center gap-3","data-tauri-drag-region":""},fz={__name:"AppTopBar",props:{runtimeText:{type:String,default:""},runtimeTagType:{type:String,default:"default"},onStartMove:{type:Function,required:!0},onMinimize:{type:Function,required:!0},onMaximizeOrRestore:{type:Function,required:!0},onClose:{type:Function,required:!0},onOpenDevtools:{type:Function,required:!0},onRestartApp:{type:Function,required:!0}},setup(e){return(t,n)=>(Xn(),Vi("div",{class:"inner drag-region","data-tauri-drag-region":"",onMousedown:n[6]||(n[6]=(...o)=>e.onStartMove&&e.onStartMove(...o)),onDblclick:n[7]||(n[7]=(...o)=>e.onMaximizeOrRestore&&e.onMaximizeOrRestore(...o))},[Qe("div",uz,[n[8]||(n[8]=Qe("div",{class:"w-8 h-8 rounded-lg bg-cyan-100 text-cyan-700 flex items-center justify-center font-bold"},"识",-1)),n[9]||(n[9]=Qe("div",{class:"text-[16px] font-semibold text-slate-800"},"识流 AI 助手",-1)),Pe(cz,{type:e.runtimeTagType,text:e.runtimeText},null,8,["type","text"])]),Qe("div",{class:"window-actions",onMousedown:n[5]||(n[5]=yr(()=>{},["stop"]))},[Qe("button",{class:"win-btn",type:"button",onClick:n[0]||(n[0]=yr((...o)=>e.onOpenDevtools&&e.onOpenDevtools(...o),["stop"]))},"调"),Qe("button",{class:"win-btn",type:"button",onClick:n[1]||(n[1]=yr((...o)=>e.onRestartApp&&e.onRestartApp(...o),["stop"]))},"重"),Qe("button",{class:"win-btn",type:"button",onClick:n[2]||(n[2]=yr((...o)=>e.onMinimize&&e.onMinimize(...o),["stop"]))},"—"),Qe("button",{class:"win-btn",type:"button",onClick:n[3]||(n[3]=yr((...o)=>e.onMaximizeOrRestore&&e.onMaximizeOrRestore(...o),["stop"]))},"□"),Qe("button",{class:"win-btn close",type:"button",onClick:n[4]||(n[4]=yr((...o)=>e.onClose&&e.onClose(...o),["stop"]))},"✕")],32)],32))}};function hz(e){if(!e)return"";const t=new Date(e);if(Number.isNaN(t.getTime()))return String(e);const n=t.getFullYear(),o=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),i=String(t.getHours()).padStart(2,"0"),l=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0");return`${n}-${o}-${r} ${i}:${l}:${a}`}const pz=[{title:"时间",key:"created_at",width:180,render:e=>hz(e.created_at)},{title:"微信用户",key:"wx_nickname",width:180},{title:"方向",key:"direction",width:90,render:e=>e.direction==="out"?"发送":"接收"},{title:"内容",key:"content",minWidth:320},{title:"气泡方向",key:"ocr_bubble_side",width:100},{title:"置信度",key:"ocr_confidence",width:90}],vz="http://127.0.0.1:5000";function gz(e){return e?e.startsWith("/")?e:`/${e}`:"/"}function bz(e){return/^https?:\/\//i.test(String(e||""))}function mz(){const e=String(window.__APP_BACKEND_URL||"").trim();return e?e.endsWith("/")?e.slice(0,-1):e:""}function yz(){return!!window.__TAURI_INTERNALS__}function Ca(e){if(bz(e))return e;const t=gz(e),n=mz();return n?`${n}${t}`:yz()?`${vz}${t}`:t}async function br(e){return(await fetch(Ca(e))).json()}async function Gr(e,t){const n=new URLSearchParams(t);return(await fetch(Ca(e),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n})).json()}async function xz(e,t){return(await fetch(Ca(e),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t||{})})).json()}function wz(e){return new EventSource(Ca(e))}function Cz(){return br("/api/bot/status")}function Bg(e={}){const t=new URLSearchParams;Object.entries(e).forEach(([o,r])=>{r==null||r===""||t.set(o,String(r))});const n=t.toString()?`?${t.toString()}`:"";return br(`/api/logs/v2/events${n}`)}function Sz(e=300){return br(`/api/logs/v2/summary?limit=${encodeURIComponent(e)}`)}function Rz(e="bot",t=80){return Bg({module:e,size:t,page:1})}function kz(e){return br(`/api/logs/v2/event/${encodeURIComponent(e)}`)}function Pz(e=""){return xz("/api/logs/v2/clear",{module:e})}function $z(){return Gr("/api/bot/start",{})}function _z(){return Gr("/api/bot/stop",{})}function zz(e,t,n){const o=E(null),r=E(null),i=E(null),l=E(!1),a=E(0),s=O(()=>e.listener_runtime_status==="running"?"运行中":e.listener_runtime_status==="starting"?"启动中":e.listener_runtime_status==="stopping"?"停止中":e.listener_runtime_status==="error"?"异常":"已停止"),d=O(()=>e.listener_runtime_status==="running"?"success":e.listener_runtime_status==="starting"||e.listener_runtime_status==="stopping"?"warning":e.listener_runtime_status==="error"?"error":"default");function c(S,x){const R=String(S?.status||"stopped").toLowerCase();if(e.listener_runtime_status=R,R==="running"||R==="starting"?e.listener_enabled=!0:R==="stopped"||R==="error"?e.listener_enabled=!1:e.listener_enabled=!!x,R==="error"){const C=String(S?.last_error||"").trim().split(` +`).slice(-1)[0]||"";C&&C!==lastNotifiedError.value?(lastNotifiedError.value=C,n.error(`监听启动异常: ${C}`)):!C&&lastNotifiedError.value!=="__unknown__"&&(lastNotifiedError.value="__unknown__",n.error("监听启动异常,请检查微信环境、日志与配置"))}}async function f(){const S=await Cz();S.success&&c(S,e.listener_enabled)}function v(){a.value=Date.now()}function g(){r.value&&(clearInterval(r.value),r.value=null)}function u(){i.value&&(clearInterval(i.value),i.value=null)}function p({reconnect:S=!1}={}){if(g(),u(),o.value){const x=o.value;o.value=null,x.onopen=null,x.onerror=null,x.close()}l.value=!1,S&&y(!0)}function b(){r.value||(r.value=setInterval(()=>{f().catch(()=>{})},15e3))}function m(){i.value||(i.value=setInterval(()=>{const S=a.value||0;if(!o.value){y();return}S&&Date.now()-S<=45e3||(b(),p({reconnect:!0}))},1e4))}function y(S=!1){if(!l.value&&!(o.value&&!S)){o.value&&S&&p(),l.value=!0;try{const x=wz("/api/bot/status/stream");o.value=x,x.addEventListener("status",R=>{v();try{const C=JSON.parse(R.data||"{}");C.success&&c(C,e.listener_enabled),g()}catch{}}),x.addEventListener("ping",()=>{v(),g()}),x.onopen=()=>{l.value=!1,v(),g()},x.onerror=()=>{l.value=!1,b()}}catch{l.value=!1,b()}}}async function $(S){try{e.listener_enabled=!!S,e.listener_runtime_status=S?"starting":"stopping";const x=await(S?$z():_z());if(!x.success)throw new Error(x.error||"操作失败");e.listener_runtime_status=x.status||(S?"running":"stopped"),e.listener_enabled=x.status==="running"||x.status==="starting",await t()}catch(x){n.error(`监听切换失败: ${x}`),await t()}}return xt(()=>{p()}),{runtimeText:s,runtimeTagType:d,refreshBotStatus:f,connectBotStatusStream:y,startStatusHealthCheck:m,onListenerChange:$,closeStatusStream:p,applyBotStatus:c}}function Tz(e=50){return br(`/api/rules?action=messages_recent&limit=${e}`)}function Fz(e){const t=E(!1),n=E([]);async function o(r=50){t.value=!0;try{const i=await Tz(r);n.value=i.data||[]}catch(i){e.error(`加载消息失败: ${i}`)}finally{t.value=!1}}return{loadingMessages:t,messages:n,loadMessages:o}}function Oz(){return br("/api/rules?action=settings_get")}function Ez(e){return Gr("/api/rules",{action:"settings_set",...e})}function Mz(e){const t=_n({auto_reply_enabled:!1,listener_enabled:!1,listener_runtime_status:"stopped",full_auto_reply_enabled:!1,reply_fallback_mode:"ai"});async function n(r){try{const i=await Oz();if(!i.success)return;t.auto_reply_enabled=!!i.auto_reply_enabled,t.full_auto_reply_enabled=!!i.full_auto_reply_enabled,t.reply_fallback_mode=i.reply_fallback_mode||"ai",r({status:i.listener_runtime_status||"stopped"},i.listener_enabled)}catch(i){e.error(`加载设置失败: ${i}`)}}async function o(r,i){try{const l=await Ez(r);if(!l.success){e.error(l.message||"保存失败");return}await n(i)}catch(l){e.error(`保存失败: ${l}`)}}return{settings:t,loadSettings:n,saveSettings:o}}let $o=null,Ul=null;async function Wf(){if($o&&Ul)return!0;if(!window.__TAURI_INTERNALS__)return!1;try{const[{getCurrentWindow:e},{invoke:t}]=await Promise.all([ad(()=>import("./window-B1zSvOyk.js"),__vite__mapDeps([0,1])),ad(()=>import("./core-DhEqZVGG.js"),[])]);return $o=e(),Ul={invoke:t},!0}catch{return!1}}function Bz(){const e=E(null),t=E("browser");async function n(){if(window.qt&&window.QWebChannel){t.value="qt",new window.QWebChannel(window.qt.webChannelTransport,r=>{e.value=r.objects.windowBridge||null});return}if(await Wf()){t.value="tauri";return}t.value="browser"}async function o(r){const i=e.value;if(i&&typeof i[r]=="function"){i[r]();return}if(await Wf()){if(r==="start_move"){await $o.startDragging();return}if(r==="minimize"){await $o.minimize();return}if(r==="maximize_or_restore"){await $o.isMaximized()?await $o.unmaximize():await $o.maximize();return}if(r==="close_window"){await $o.close();return}if(r==="open_devtools"){try{await Ul.invoke("open_devtools")}catch{}return}if(r==="restart_app")try{await Ul.invoke("restart_backend")}catch{}}}return{bridgeMode:t,initWindowBridge:n,startMove:()=>o("start_move"),minimizeWindow:()=>o("minimize"),maximizeOrRestore:()=>o("maximize_or_restore"),closeWindow:()=>o("close_window"),openDevtools:()=>o("open_devtools"),restartApp:()=>o("restart_app")}}const Az={class:"py-3"},Iz={__name:"MessagesView",props:{columns:{type:Array,required:!0},messages:{type:Array,required:!0},loading:{type:Boolean,required:!0},onRefresh:{type:Function,required:!0}},setup(e){return(t,n)=>(Xn(),Vi("div",Az,[Pe(ge(co),{class:"panel",size:"small",bordered:!1},{"header-extra":Ne(()=>[Pe(ge(It),{onClick:e.onRefresh},{default:Ne(()=>[...n[0]||(n[0]=[Kt("刷新",-1)])]),_:1},8,["onClick"])]),default:Ne(()=>[Pe(ge(fc),{columns:e.columns,data:e.messages,loading:e.loading,pagination:{pageSize:10},"max-height":520},null,8,["columns","data","loading"])]),_:1})]))}},Lz=[{label:"AI兜底回复",value:"ai"},{label:"不回复",value:"none"}],Dz=[{label:"包含",value:"contain"},{label:"完全匹配",value:"equal"}],Hz=[{label:"全部匹配方式",value:""},{label:"包含",value:"contain"},{label:"完全匹配",value:"equal"}],Nz=[{label:"全部状态",value:""},{label:"启用",value:1},{label:"暂停",value:0}],jz={class:"py-3 panel-view-shell"},Wz={class:"row-line flex items-center justify-between"},Vz={class:"row-line flex items-center justify-between"},Kz={class:"row-line flex items-center justify-between"},Uz={class:"pt-3 max-w-[240px]"},Gz={__name:"PanelView",props:{settings:{type:Object,required:!0},onListenerChange:{type:Function,required:!0},onSaveSettings:{type:Function,required:!0}},setup(e){const t=e,n=E("bot"),o=E([]),r=E(""),i=E(!1),l=E(""),a=E(null);async function s(){i.value=!0;try{const c=await Rz(n.value,120);if(!c?.success)throw new Error(c?.message||"接口返回失败");o.value=Array.isArray(c.lines)?c.lines:[],r.value=c.path||"",l.value=""}catch(c){l.value=c?.message||String(c)}finally{i.value=!1}}function d(){a.value&&clearInterval(a.value),a.value=setInterval(s,2e3)}return Ct(async()=>{await s(),d()}),tt(n,()=>{s()}),xt(()=>{a.value&&(clearInterval(a.value),a.value=null)}),(c,f)=>(Xn(),Vi("div",jz,[Pe(ge(co),{class:"panel compact-card",title:"监听与回复设置",size:"small",bordered:!1},{default:Ne(()=>[Qe("div",Wz,[f[3]||(f[3]=Qe("div",null,[Qe("div",{class:"label-title"},"监听"),Qe("div",{class:"label-desc"},"执行监听开始监听微信")],-1)),Pe(ge(Cs),{value:t.settings.listener_enabled,"onUpdate:value":t.onListenerChange},null,8,["value","onUpdate:value"])]),Qe("div",Vz,[f[4]||(f[4]=Qe("div",null,[Qe("div",{class:"label-title"},"自动回复"),Qe("div",{class:"label-desc"},"开启后自动回复微信收到的信息")],-1)),Pe(ge(Cs),{value:t.settings.auto_reply_enabled,"onUpdate:value":f[0]||(f[0]=v=>t.onSaveSettings({auto_reply_enabled:v?"1":"0"}))},null,8,["value"])]),Qe("div",Kz,[f[5]||(f[5]=Qe("div",null,[Qe("div",{class:"label-title"},"全量回复"),Qe("div",{class:"label-desc"},"开启后回复所有消息")],-1)),Pe(ge(Cs),{value:t.settings.full_auto_reply_enabled,"onUpdate:value":f[1]||(f[1]=v=>t.onSaveSettings({full_auto_reply_enabled:v?"1":"0"}))},null,8,["value"])]),Qe("div",Uz,[Pe(ge(zo),{options:ge(Lz),value:t.settings.reply_fallback_mode,"onUpdate:value":f[2]||(f[2]=v=>t.onSaveSettings({reply_fallback_mode:v||"ai"}))},null,8,["options","value"])])]),_:1})]))}};function qz(){return br("/api/rules?action=list")}function Xz(e){return Gr("/api/rules",{action:"create",...e})}function Yz(e){return Gr("/api/rules",{action:"toggle",...e})}function Zz(e){return Gr("/api/rules",{action:"delete",id:e})}function Jz(e){const t=E(!1),n=E(!1),o=E(!1),r=E([]),i=_n({keyword:"",match_type:"",status:""}),l=_n({keyword:"",match_type:"contain",reply_text:""}),a=O(()=>r.value.filter(u=>!(i.keyword&&!String(u.keyword||"").toLowerCase().includes(i.keyword.toLowerCase())||i.match_type&&u.match_type!==i.match_type||i.status!==""&&Number(u.is_active)!==Number(i.status))));async function s(){t.value=!0;try{const u=await qz();r.value=u.data||[]}catch(u){e.error(`加载规则失败: ${u}`)}finally{t.value=!1}}async function d(){if(!l.keyword.trim()||!l.reply_text.trim()){e.warning("请填写关键词和回复内容");return}n.value=!0;try{const u=await Xz({keyword:l.keyword.trim(),match_type:l.match_type,reply_text:l.reply_text.trim()});if(!u.success){e.error(u.message||"新增失败");return}e.success("新增成功"),l.keyword="",l.reply_text="",o.value=!1,await s()}catch(u){e.error(`新增失败: ${u}`)}finally{n.value=!1}}async function c(u){try{const p=await Yz({id:String(u.id),is_active:Number(u.is_active)===1?"0":"1"});if(!p.success){e.error(p.message||"切换失败");return}await s()}catch(p){e.error(`切换失败: ${p}`)}}async function f(u){try{const p=await Zz(String(u.id));if(!p.success){e.error(p.message||"删除失败");return}e.success("删除成功"),await s()}catch(p){e.error(`删除失败: ${p}`)}}function v(){i.keyword="",i.match_type="",i.status="",s()}return{loadingRules:t,creatingRule:n,showCreateRuleModal:o,filters:i,createForm:l,filteredRules:a,ruleColumns:[{title:"关键词",key:"keyword",minWidth:140},{title:"匹配方式",key:"match_type",width:120,render:u=>u.match_type==="equal"?"完全匹配":"包含"},{title:"回复内容",key:"reply_text",minWidth:220},{title:"状态",key:"is_active",width:110,render:u=>h(ki,{type:Number(u.is_active)===1?"success":"default",bordered:!1,round:!0},{default:()=>Number(u.is_active)===1?"启用":"暂停"})},{title:"操作",key:"actions",width:190,render:u=>h(vc,{size:8},{default:()=>[h(It,{size:"small",secondary:!0,type:Number(u.is_active)===1?"warning":"success",onClick:()=>c(u)},{default:()=>Number(u.is_active)===1?"停用":"启用"}),h(It,{size:"small",secondary:!0,type:"error",onClick:()=>f(u)},{default:()=>"删除"})]})}],loadRules:s,submitCreateRule:d,resetFilters:v}}const Qz={class:"py-3"},eT={class:"flex justify-end"},tT={class:"flex justify-end gap-2"},nT={__name:"RulesView",props:{message:{type:Object,required:!0}},setup(e,{expose:t}){const n=e,{loadingRules:o,creatingRule:r,showCreateRuleModal:i,filters:l,createForm:a,filteredRules:s,ruleColumns:d,loadRules:c,submitCreateRule:f,resetFilters:v}=Jz(n.message);return Ct(()=>{c()}),t({loadRules:c}),(g,u)=>(Xn(),Vi("div",Qz,[Pe(ge(co),{class:"panel compact-card mb-3",title:"筛选",size:"small",bordered:!1},{default:Ne(()=>[Pe(ge(id),{cols:24,"x-gap":12,"y-gap":12},{default:Ne(()=>[Pe(ge(bn),{span:6},{default:Ne(()=>[Pe(ge(Br),{value:ge(l).keyword,"onUpdate:value":u[0]||(u[0]=p=>ge(l).keyword=p),placeholder:"关键词"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:5},{default:Ne(()=>[Pe(ge(zo),{value:ge(l).match_type,"onUpdate:value":u[1]||(u[1]=p=>ge(l).match_type=p),options:ge(Hz)},null,8,["value","options"])]),_:1}),Pe(ge(bn),{span:5},{default:Ne(()=>[Pe(ge(zo),{value:ge(l).status,"onUpdate:value":u[2]||(u[2]=p=>ge(l).status=p),options:ge(Nz)},null,8,["value","options"])]),_:1}),Pe(ge(bn),{span:8,class:"flex justify-end"},{default:Ne(()=>[Pe(ge(vc),null,{default:Ne(()=>[Pe(ge(It),{type:"primary",onClick:ge(c)},{default:Ne(()=>[...u[9]||(u[9]=[Kt("搜索",-1)])]),_:1},8,["onClick"]),Pe(ge(It),{onClick:ge(v)},{default:Ne(()=>[...u[10]||(u[10]=[Kt("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1})]),_:1}),Pe(ge(co),{class:"panel compact-card mb-3",title:"新增规则",size:"small",bordered:!1},{default:Ne(()=>[Qe("div",eT,[Pe(ge(It),{type:"primary",onClick:u[3]||(u[3]=p=>i.value=!0)},{default:Ne(()=>[...u[11]||(u[11]=[Kt("新增回复规则",-1)])]),_:1})])]),_:1}),Pe(ge(xa),{show:ge(i),preset:"card",title:"新增回复规则",class:"w-[640px]","mask-closable":!1,"onUpdate:show":u[8]||(u[8]=p=>i.value=p)},{footer:Ne(()=>[Qe("div",tT,[Pe(ge(It),{onClick:u[7]||(u[7]=p=>i.value=!1)},{default:Ne(()=>[...u[12]||(u[12]=[Kt("取消",-1)])]),_:1}),Pe(ge(It),{type:"primary",loading:ge(r),onClick:ge(f)},{default:Ne(()=>[...u[13]||(u[13]=[Kt("确认新增",-1)])]),_:1},8,["loading","onClick"])])]),default:Ne(()=>[Pe(ge(id),{cols:24,"x-gap":12,"y-gap":12},{default:Ne(()=>[Pe(ge(bn),{span:24},{default:Ne(()=>[Pe(ge(Br),{value:ge(a).keyword,"onUpdate:value":u[4]||(u[4]=p=>ge(a).keyword=p),placeholder:"关键词"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:24},{default:Ne(()=>[Pe(ge(zo),{value:ge(a).match_type,"onUpdate:value":u[5]||(u[5]=p=>ge(a).match_type=p),options:ge(Dz)},null,8,["value","options"])]),_:1}),Pe(ge(bn),{span:24},{default:Ne(()=>[Pe(ge(Br),{value:ge(a).reply_text,"onUpdate:value":u[6]||(u[6]=p=>ge(a).reply_text=p),type:"textarea",autosize:{minRows:3,maxRows:6},placeholder:"回复内容"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["show"]),Pe(ge(co),{class:"panel",size:"small",bordered:!1},{default:Ne(()=>[Pe(ge(fc),{columns:ge(d),data:ge(s),loading:ge(o),pagination:{pageSize:10},"max-height":360},null,8,["columns","data","loading"])]),_:1})]))}},oT={class:"py-3"},rT={style:{color:"#8c8c8c","font-size":"12px"}},iT={style:{"margin-left":"12px"}},lT={style:{"margin-left":"12px"}},aT={style:{"max-height":"520px",overflow:"auto",margin:"0","font-size":"12px","white-space":"pre-wrap","word-break":"break-all"}},sT={__name:"LogsView",setup(e){const t=E(null),n=E(!1),o=E(!1),r=E(""),i=E(""),l=E(""),a=E(""),s=E(""),d=E(!1),c=E([]),f=E({error_count:0,fallback_count:0,top_reasons:[],domain_counts:[]}),v=[{label:"全部功能域",value:""},{label:"接口",value:"api"},{label:"机器人",value:"bot"},{label:"OCR",value:"ocr"},{label:"AI",value:"ai"},{label:"数据库",value:"db"},{label:"截图",value:"capture"}],g=[{label:"全部模块",value:""},{label:"接口(api)",value:"api"},{label:"机器人(bot)",value:"bot"},{label:"OCR(ocr)",value:"ocr"},{label:"AI(ai)",value:"ai"},{label:"数据库(db)",value:"db"},{label:"截图(capture)",value:"capture"},{label:"审计(audit)",value:"audit"},{label:"错误(error)",value:"error"}],u=[{label:"全部级别",value:""},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"}],p={api:"接口",bot:"机器人",ocr:"OCR",ai:"AI",db:"数据库",capture:"截图"},b=O(()=>(Array.isArray(f.value?.domain_counts)?f.value.domain_counts:[]).filter(M=>Number(M?.count||0)>0).map(M=>`${p[M.domain]||M.domain}: ${M.count}`).join(" | ")),m=O(()=>{let F=c.value;return a.value&&(F=F.filter(M=>String(M.domain||"")===a.value)),d.value&&(F=F.filter(M=>{const _=String(M.level||"").toUpperCase(),T=String(M.status||"").toLowerCase();return _==="ERROR"||_==="WARNING"||T==="failed"||T==="fail"})),F});function y(F){const M=String(F||"").trim();if(!M)return"-";const _=new Date(M);if(Number.isNaN(_.getTime()))return M.replace("T"," ").replace(/\.\d+([+-]\d{2}:?\d{2}|Z)?$/,"");const T=_.getFullYear(),B=String(_.getMonth()+1).padStart(2,"0"),D=String(_.getDate()).padStart(2,"0"),K=String(_.getHours()).padStart(2,"0"),N=String(_.getMinutes()).padStart(2,"0"),V=String(_.getSeconds()).padStart(2,"0");return`${T}-${B}-${D} ${K}:${N}:${V}`}async function $(F){o.value=!0,r.value="加载中...";const M=String(F?.event_id||"").trim();if(!M){r.value=JSON.stringify(F||{},null,2);return}try{const _=await kz(M);r.value=JSON.stringify(_?.item||F||{},null,2)}catch{r.value=JSON.stringify(F||{},null,2)}}async function S(){await Pz(l.value||""),await R()}const x=[{title:"时间",key:"ts",width:170,render:F=>y(F.ts)},{title:"功能域",key:"domain",width:90},{title:"级别",key:"level",width:90},{title:"模块",key:"module",width:90},{title:"事件",key:"event",width:220},{title:"阶段",key:"stage",width:90},{title:"状态",key:"status",width:90},{title:"trace_id",key:"trace_id",width:180},{title:"原因",key:"reason",width:160},{title:"消息",key:"message",minWidth:260},{title:"操作",key:"actions",width:100,render:F=>h(It,{size:"tiny",quaternary:!0,type:"primary",onClick:()=>$(F)},{default:()=>"JSON"})}];async function R(){n.value=!0;try{const[F,M]=await Promise.all([Bg({module:l.value,level:s.value,keyword:i.value,page:1,size:200}),Sz(300)]);c.value=Array.isArray(F?.items)?F.items:[],f.value=M||{error_count:0,fallback_count:0,top_reasons:[],domain_counts:[]}}catch{c.value=[],f.value={error_count:0,fallback_count:0,top_reasons:[],domain_counts:[]}}finally{n.value=!1}}function C(){a.value="",l.value="",s.value="",i.value="",d.value=!1,R()}function w(){d.value=!d.value}function k(){t.value&&clearInterval(t.value),t.value=setInterval(()=>{R()},2e3)}return Ct(async()=>{await R(),k()}),xt(()=>{t.value&&(clearInterval(t.value),t.value=null)}),(F,M)=>(Xn(),Vi("div",oT,[Pe(ge(co),{class:"panel compact-card mb-3",title:"筛选",size:"small",bordered:!1},{default:Ne(()=>[Pe(ge(id),{cols:24,"x-gap":12,"y-gap":12},{default:Ne(()=>[Pe(ge(bn),{span:4},{default:Ne(()=>[Pe(ge(zo),{value:a.value,"onUpdate:value":M[0]||(M[0]=_=>a.value=_),options:v,placeholder:"功能域"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:4},{default:Ne(()=>[Pe(ge(zo),{value:l.value,"onUpdate:value":M[1]||(M[1]=_=>l.value=_),options:g,placeholder:"模块"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:4},{default:Ne(()=>[Pe(ge(zo),{value:s.value,"onUpdate:value":M[2]||(M[2]=_=>s.value=_),options:u,placeholder:"级别"},null,8,["value"])]),_:1}),Pe(ge(bn),{span:6},{default:Ne(()=>[Pe(ge(Br),{value:i.value,"onUpdate:value":M[3]||(M[3]=_=>i.value=_),placeholder:"关键词过滤",onKeydown:k0(R,["enter"])},null,8,["value"])]),_:1}),Pe(ge(bn),{span:6,class:"flex justify-end"},{default:Ne(()=>[Pe(ge(vc),null,{default:Ne(()=>[Pe(ge(It),{type:d.value?"error":"default",onClick:w},{default:Ne(()=>[Kt(Xo(d.value?"仅异常:开":"仅异常:关"),1)]),_:1},8,["type"]),Pe(ge(It),{type:"warning",onClick:S},{default:Ne(()=>[...M[5]||(M[5]=[Kt("清除日志",-1)])]),_:1}),Pe(ge(It),{type:"primary",loading:n.value,onClick:R},{default:Ne(()=>[...M[6]||(M[6]=[Kt("搜索",-1)])]),_:1},8,["loading"]),Pe(ge(It),{onClick:C},{default:Ne(()=>[...M[7]||(M[7]=[Kt("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),Pe(ge(co),{class:"panel compact-card mb-3",title:"统计",size:"small",bordered:!1},{default:Ne(()=>[Qe("div",rT,[Qe("span",null,"错误数: "+Xo(f.value.error_count||0),1),Qe("span",iT,"回退数: "+Xo(f.value.fallback_count||0),1),Qe("span",lT,Xo(b.value||"域分布: 无"),1)])]),_:1}),Pe(ge(co),{class:"panel",size:"small",bordered:!1},{default:Ne(()=>[Pe(ge(fc),{columns:x,data:m.value,loading:n.value,pagination:{pageSize:20},"max-height":560,size:"small",striped:""},null,8,["data","loading"])]),_:1}),Pe(ge(xa),{show:o.value,"onUpdate:show":M[4]||(M[4]=_=>o.value=_),preset:"card",title:"日志JSON",style:{width:"760px"}},{default:Ne(()=>[Qe("pre",aT,Xo(r.value),1)]),_:1},8,["show"])]))}},dT={class:"inner content-scroll"},cT={class:"tab-wrap"},uT={__name:"App",setup(e){const t=window.$message,n=E("panel"),o=E(null),r=E(null),i=E(null),{initWindowBridge:l,startMove:a,minimizeWindow:s,maximizeOrRestore:d,closeWindow:c,openDevtools:f,restartApp:v}=Bz(),{settings:g,loadSettings:u,saveSettings:p}=Mz(t),{loadingMessages:b,messages:m,loadMessages:y}=Fz(t),{runtimeText:$,runtimeTagType:S,refreshBotStatus:x,connectBotStatusStream:R,startStatusHealthCheck:C,onListenerChange:w,closeStatusStream:k,applyBotStatus:F}=zz(g,()=>u(F),t);function M(){o.value&&(clearInterval(o.value),o.value=null),r.value&&(clearInterval(r.value),r.value=null)}async function _(){if(window.__TAURI_INTERNALS__)try{const{invoke:B}=await ad(async()=>{const{invoke:K}=await import("./core-DhEqZVGG.js");return{invoke:K}},[]),D=await B("get_backend_bootstrap_error");D&&t.error(`后端启动失败:${D}`)}catch{}}function T(B){n.value=B,B==="rules"&&i.value?.loadRules?.(),B==="messages"&&y()}return Ct(async()=>{l(),await _(),await u(F),await x().catch(()=>{}),R(),C(),await y(),o.value=setInterval(()=>u(F),3e4),r.value=setInterval(()=>{n.value==="messages"&&y()},5e3)}),xt(()=>{M(),k()}),(B,D)=>(Xn(),Oi(ge(Uv),{"theme-overrides":{common:{primaryColor:"#22c1c3",primaryColorHover:"#1ba8aa",primaryColorPressed:"#169295",borderRadius:"10px"}}},{default:Ne(()=>[Pe(ge(Z_),{class:"page-shell"},{default:Ne(()=>[Pe(ge(tz),{class:"topbar"},{default:Ne(()=>[Pe(fz,{"runtime-text":ge($),"runtime-tag-type":ge(S),"on-start-move":ge(a),"on-minimize":ge(s),"on-maximize-or-restore":ge(d),"on-close":ge(c),"on-open-devtools":ge(f),"on-restart-app":ge(v)},null,8,["runtime-text","runtime-tag-type","on-start-move","on-minimize","on-maximize-or-restore","on-close","on-open-devtools","on-restart-app"])]),_:1}),Pe(ge(J_),{class:"content-root","content-style":"padding:16px 0 16px;height:100%;overflow:hidden;"},{default:Ne(()=>[Qe("div",dT,[D[0]||(D[0]=Qe("div",{class:"panel hero p-4 mb-3"},[Qe("div",{class:"text-[15px] font-semibold text-slate-800 mb-1"},"管理后台"),Qe("div",{class:"text-[13px] text-slate-600"},"组件化管理页面(已移除系统原生窗口栏)。")],-1)),Qe("div",cT,[Pe(ge(az),{class:"app-tabs",type:"segment",animated:"",value:n.value,"onUpdate:value":T},{default:Ne(()=>[Pe(ge(yl),{class:"app-tab-pane",name:"panel",tab:"面板"},{default:Ne(()=>[Pe(Gz,{settings:ge(g),"on-listener-change":ge(w),"on-save-settings":K=>ge(p)(K,ge(F))},null,8,["settings","on-listener-change","on-save-settings"])]),_:1}),Pe(ge(yl),{class:"app-tab-pane",name:"rules",tab:"回复匹配配置"},{default:Ne(()=>[Pe(nT,{ref_key:"rulesViewRef",ref:i,message:ge(t)},null,8,["message"])]),_:1}),Pe(ge(yl),{class:"app-tab-pane",name:"logs",tab:"运行日志"},{default:Ne(()=>[Pe(sT)]),_:1}),Pe(ge(yl),{class:"app-tab-pane",name:"messages",tab:"历史消息"},{default:Ne(()=>[Pe(Iz,{columns:ge(pz),messages:ge(m),loading:ge(b),"on-refresh":ge(y)},null,8,["columns","messages","loading","on-refresh"])]),_:1})]),_:1},8,["value"])])])]),_:1})]),_:1})]),_:1}))}};function fT(){return new Promise((e,t)=>{if(window.QWebChannel){e();return}const n=document.createElement("script");n.src="qrc:///qtwebchannel/qwebchannel.js",n.onload=()=>e(),n.onerror=t,document.head.appendChild(n)})}async function hT(){if(window.qt&&!window.QWebChannel)try{await fT()}catch{}const{message:e}=O_(["message"]);window.$message=e,up(uT).mount("#app")}hT()});export default pT(); diff --git a/frontend/dist/assets/window-B1zSvOyk.js b/frontend/dist/assets/window-B1zSvOyk.js new file mode 100644 index 0000000..a49b7d3 --- /dev/null +++ b/frontend/dist/assets/window-B1zSvOyk.js @@ -0,0 +1 @@ +import{SERIALIZE_TO_IPC_FN as o,invoke as t,transformCallback as x,Resource as I}from"./core-DhEqZVGG.js";class O{constructor(...e){this.type="Logical",e.length===1?"Logical"in e[0]?(this.width=e[0].Logical.width,this.height=e[0].Logical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toPhysical(e){return new h(this.width*e,this.height*e)}[o](){return{width:this.width,height:this.height}}toJSON(){return this[o]()}}class h{constructor(...e){this.type="Physical",e.length===1?"Physical"in e[0]?(this.width=e[0].Physical.width,this.height=e[0].Physical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toLogical(e){return new O(this.width/e,this.height/e)}[o](){return{width:this.width,height:this.height}}toJSON(){return this[o]()}}class c{constructor(e){this.size=e}toLogical(e){return this.size instanceof O?this.size:this.size.toLogical(e)}toPhysical(e){return this.size instanceof h?this.size:this.size.toPhysical(e)}[o](){return{[`${this.size.type}`]:{width:this.size.width,height:this.size.height}}}toJSON(){return this[o]()}}class A{constructor(...e){this.type="Logical",e.length===1?"Logical"in e[0]?(this.x=e[0].Logical.x,this.y=e[0].Logical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toPhysical(e){return new u(this.x*e,this.y*e)}[o](){return{x:this.x,y:this.y}}toJSON(){return this[o]()}}class u{constructor(...e){this.type="Physical",e.length===1?"Physical"in e[0]?(this.x=e[0].Physical.x,this.y=e[0].Physical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toLogical(e){return new A(this.x/e,this.y/e)}[o](){return{x:this.x,y:this.y}}toJSON(){return this[o]()}}class w{constructor(e){this.position=e}toLogical(e){return this.position instanceof A?this.position:this.position.toLogical(e)}toPhysical(e){return this.position instanceof u?this.position:this.position.toPhysical(e)}[o](){return{[`${this.position.type}`]:{x:this.position.x,y:this.position.y}}}toJSON(){return this[o]()}}var a;(function(i){i.WINDOW_RESIZED="tauri://resize",i.WINDOW_MOVED="tauri://move",i.WINDOW_CLOSE_REQUESTED="tauri://close-requested",i.WINDOW_DESTROYED="tauri://destroyed",i.WINDOW_FOCUS="tauri://focus",i.WINDOW_BLUR="tauri://blur",i.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",i.WINDOW_THEME_CHANGED="tauri://theme-changed",i.WINDOW_CREATED="tauri://window-created",i.WINDOW_SUSPENDED="tauri://suspended",i.WINDOW_RESUMED="tauri://resumed",i.WEBVIEW_CREATED="tauri://webview-created",i.DRAG_ENTER="tauri://drag-enter",i.DRAG_OVER="tauri://drag-over",i.DRAG_DROP="tauri://drag-drop",i.DRAG_LEAVE="tauri://drag-leave"})(a||(a={}));async function N(i,e){window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(i,e),await t("plugin:event|unlisten",{event:i,eventId:e})}async function S(i,e,n){var l;const s=typeof n?.target=="string"?{kind:"AnyLabel",label:n.target}:(l=n?.target)!==null&&l!==void 0?l:{kind:"Any"};return t("plugin:event|listen",{event:i,target:s,handler:x(e)}).then(p=>async()=>N(i,p))}async function L(i,e,n){return S(i,l=>{N(i,l.id),e(l)},n)}async function R(i,e){await t("plugin:event|emit",{event:i,payload:e})}async function P(i,e,n){await t("plugin:event|emit_to",{target:typeof i=="string"?{kind:"AnyLabel",label:i}:i,event:e,payload:n})}class d extends I{constructor(e){super(e)}static async new(e,n,l){return t("plugin:image|new",{rgba:b(e),width:n,height:l}).then(s=>new d(s))}static async fromBytes(e){return t("plugin:image|from_bytes",{bytes:b(e)}).then(n=>new d(n))}static async fromPath(e){return t("plugin:image|from_path",{path:e}).then(n=>new d(n))}async rgba(){return t("plugin:image|rgba",{rid:this.rid}).then(e=>new Uint8Array(e))}async size(){return t("plugin:image|size",{rid:this.rid})}}function b(i){return i==null?null:typeof i=="string"?i:i instanceof d?i.rid:i}var m;(function(i){i[i.Critical=1]="Critical",i[i.Informational=2]="Informational"})(m||(m={}));class k{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}var v;(function(i){i.None="none",i.Normal="normal",i.Indeterminate="indeterminate",i.Paused="paused",i.Error="error"})(v||(v={}));function E(){return new C(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function g(){return t("plugin:window|get_all_windows").then(i=>i.map(e=>new C(e,{skip:!0})))}const _=["tauri://created","tauri://error"];class C{constructor(e,n={}){var l;this.label=e,this.listeners=Object.create(null),n?.skip||t("plugin:window|create",{options:{...n,parent:typeof n.parent=="string"?n.parent:(l=n.parent)===null||l===void 0?void 0:l.label,label:e}}).then(async()=>this.emit("tauri://created")).catch(async s=>this.emit("tauri://error",s))}static async getByLabel(e){var n;return(n=(await g()).find(l=>l.label===e))!==null&&n!==void 0?n:null}static getCurrent(){return E()}static async getAll(){return g()}static async getFocusedWindow(){for(const e of await g())if(await e.isFocused())return e;return null}async listen(e,n){return this._handleTauriEvent(e,n)?()=>{const l=this.listeners[e];l.splice(l.indexOf(n),1)}:S(e,n,{target:{kind:"Window",label:this.label}})}async once(e,n){return this._handleTauriEvent(e,n)?()=>{const l=this.listeners[e];l.splice(l.indexOf(n),1)}:L(e,n,{target:{kind:"Window",label:this.label}})}async emit(e,n){if(_.includes(e)){for(const l of this.listeners[e]||[])l({event:e,id:-1,payload:n});return}return R(e,n)}async emitTo(e,n,l){if(_.includes(n)){for(const s of this.listeners[n]||[])s({event:n,id:-1,payload:l});return}return P(e,n,l)}_handleTauriEvent(e,n){return _.includes(e)?(e in this.listeners?this.listeners[e].push(n):this.listeners[e]=[n],!0):!1}async scaleFactor(){return t("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return t("plugin:window|inner_position",{label:this.label}).then(e=>new u(e))}async outerPosition(){return t("plugin:window|outer_position",{label:this.label}).then(e=>new u(e))}async innerSize(){return t("plugin:window|inner_size",{label:this.label}).then(e=>new h(e))}async outerSize(){return t("plugin:window|outer_size",{label:this.label}).then(e=>new h(e))}async isFullscreen(){return t("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return t("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return t("plugin:window|is_maximized",{label:this.label})}async isFocused(){return t("plugin:window|is_focused",{label:this.label})}async isDecorated(){return t("plugin:window|is_decorated",{label:this.label})}async isResizable(){return t("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return t("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return t("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return t("plugin:window|is_closable",{label:this.label})}async isVisible(){return t("plugin:window|is_visible",{label:this.label})}async title(){return t("plugin:window|title",{label:this.label})}async theme(){return t("plugin:window|theme",{label:this.label})}async isAlwaysOnTop(){return t("plugin:window|is_always_on_top",{label:this.label})}async activityName(){return t("plugin:window|activity_name",{label:this.label})}async sceneIdentifier(){return t("plugin:window|scene_identifier",{label:this.label})}async center(){return t("plugin:window|center",{label:this.label})}async requestUserAttention(e){let n=null;return e&&(e===m.Critical?n={type:"Critical"}:n={type:"Informational"}),t("plugin:window|request_user_attention",{label:this.label,value:n})}async setResizable(e){return t("plugin:window|set_resizable",{label:this.label,value:e})}async setEnabled(e){return t("plugin:window|set_enabled",{label:this.label,value:e})}async isEnabled(){return t("plugin:window|is_enabled",{label:this.label})}async setMaximizable(e){return t("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return t("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return t("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return t("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return t("plugin:window|maximize",{label:this.label})}async unmaximize(){return t("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return t("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return t("plugin:window|minimize",{label:this.label})}async unminimize(){return t("plugin:window|unminimize",{label:this.label})}async show(){return t("plugin:window|show",{label:this.label})}async hide(){return t("plugin:window|hide",{label:this.label})}async close(){return t("plugin:window|close",{label:this.label})}async destroy(){return t("plugin:window|destroy",{label:this.label})}async setDecorations(e){return t("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return t("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return t("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return t("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return t("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return t("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return t("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){return t("plugin:window|set_size",{label:this.label,value:e instanceof c?e:new c(e)})}async setMinSize(e){return t("plugin:window|set_min_size",{label:this.label,value:e instanceof c?e:e?new c(e):null})}async setMaxSize(e){return t("plugin:window|set_max_size",{label:this.label,value:e instanceof c?e:e?new c(e):null})}async setSizeConstraints(e){function n(l){return l?{Logical:l}:null}return t("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:n(e?.minWidth),minHeight:n(e?.minHeight),maxWidth:n(e?.maxWidth),maxHeight:n(e?.maxHeight)}})}async setPosition(e){return t("plugin:window|set_position",{label:this.label,value:e instanceof w?e:new w(e)})}async setFullscreen(e){return t("plugin:window|set_fullscreen",{label:this.label,value:e})}async setSimpleFullscreen(e){return t("plugin:window|set_simple_fullscreen",{label:this.label,value:e})}async setFocus(){return t("plugin:window|set_focus",{label:this.label})}async setFocusable(e){return t("plugin:window|set_focusable",{label:this.label,value:e})}async setIcon(e){return t("plugin:window|set_icon",{label:this.label,value:b(e)})}async setSkipTaskbar(e){return t("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return t("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return t("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return t("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setBackgroundColor(e){return t("plugin:window|set_background_color",{color:e})}async setCursorPosition(e){return t("plugin:window|set_cursor_position",{label:this.label,value:e instanceof w?e:new w(e)})}async setIgnoreCursorEvents(e){return t("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return t("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return t("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setBadgeCount(e){return t("plugin:window|set_badge_count",{label:this.label,value:e})}async setBadgeLabel(e){return t("plugin:window|set_badge_label",{label:this.label,value:e})}async setOverlayIcon(e){return t("plugin:window|set_overlay_icon",{label:this.label,value:e?b(e):void 0})}async setProgressBar(e){return t("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return t("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async setTitleBarStyle(e){return t("plugin:window|set_title_bar_style",{label:this.label,value:e})}async setTheme(e){return t("plugin:window|set_theme",{label:this.label,value:e})}async onResized(e){return this.listen(a.WINDOW_RESIZED,n=>{n.payload=new h(n.payload),e(n)})}async onMoved(e){return this.listen(a.WINDOW_MOVED,n=>{n.payload=new u(n.payload),e(n)})}async onCloseRequested(e){return this.listen(a.WINDOW_CLOSE_REQUESTED,async n=>{const l=new k(n);await e(l),l.isPreventDefault()||await this.destroy()})}async onDragDropEvent(e){const n=await this.listen(a.DRAG_ENTER,r=>{e({...r,payload:{type:"enter",paths:r.payload.paths,position:new u(r.payload.position)}})}),l=await this.listen(a.DRAG_OVER,r=>{e({...r,payload:{type:"over",position:new u(r.payload.position)}})}),s=await this.listen(a.DRAG_DROP,r=>{e({...r,payload:{type:"drop",paths:r.payload.paths,position:new u(r.payload.position)}})}),p=await this.listen(a.DRAG_LEAVE,r=>{e({...r,payload:{type:"leave"}})});return()=>{n(),s(),l(),p()}}async onFocusChanged(e){const n=await this.listen(a.WINDOW_FOCUS,s=>{e({...s,payload:!0})}),l=await this.listen(a.WINDOW_BLUR,s=>{e({...s,payload:!1})});return()=>{n(),l()}}async onScaleChanged(e){return this.listen(a.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(a.WINDOW_THEME_CHANGED,e)}}var D;(function(i){i.Disabled="disabled",i.Throttle="throttle",i.Suspend="suspend"})(D||(D={}));var f;(function(i){i.Default="default",i.FluentOverlay="fluentOverlay"})(f||(f={}));var W;(function(i){i.AppearanceBased="appearanceBased",i.Light="light",i.Dark="dark",i.MediumLight="mediumLight",i.UltraDark="ultraDark",i.Titlebar="titlebar",i.Selection="selection",i.Menu="menu",i.Popover="popover",i.Sidebar="sidebar",i.HeaderView="headerView",i.Sheet="sheet",i.WindowBackground="windowBackground",i.HudWindow="hudWindow",i.FullScreenUI="fullScreenUI",i.Tooltip="tooltip",i.ContentBackground="contentBackground",i.UnderWindowBackground="underWindowBackground",i.UnderPageBackground="underPageBackground",i.Mica="mica",i.Blur="blur",i.Acrylic="acrylic",i.Tabbed="tabbed",i.TabbedDark="tabbedDark",i.TabbedLight="tabbedLight"})(W||(W={}));var z;(function(i){i.FollowsWindowActiveState="followsWindowActiveState",i.Active="active",i.Inactive="inactive"})(z||(z={}));function y(i){return i===null?null:{name:i.name,scaleFactor:i.scaleFactor,position:new u(i.position),size:new h(i.size),workArea:{position:new u(i.workArea.position),size:new h(i.workArea.size)}}}async function T(){return t("plugin:window|current_monitor").then(y)}async function B(){return t("plugin:window|primary_monitor").then(y)}async function F(i,e){return t("plugin:window|monitor_from_point",{x:i,y:e}).then(y)}async function U(){return t("plugin:window|available_monitors").then(i=>i.map(y))}async function G(){return t("plugin:window|cursor_position").then(i=>new u(i))}export{k as CloseRequestedEvent,W as Effect,z as EffectState,A as LogicalPosition,O as LogicalSize,u as PhysicalPosition,h as PhysicalSize,v as ProgressBarStatus,m as UserAttentionType,C as Window,U as availableMonitors,T as currentMonitor,G as cursorPosition,g as getAllWindows,E as getCurrentWindow,F as monitorFromPoint,B as primaryMonitor}; diff --git a/frontend/dist/index.html b/frontend/dist/index.html new file mode 100644 index 0000000..07709cd --- /dev/null +++ b/frontend/dist/index.html @@ -0,0 +1,14 @@ + + + + + + 识流 AI 助手 + + + + + +
+ + diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..62ec9f8 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,13 @@ + + + + + + 识流 AI 助手 + + + +
+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..674a12c --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,1817 @@ +{ + "name": "ai-shiliu-frontend", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ai-shiliu-frontend", + "version": "0.1.0", + "dependencies": { + "@tauri-apps/api": "^2.8.0", + "naive-ui": "^2.43.1", + "vue": "^3.5.22" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.11.2", + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.1.5" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@css-render/plugin-bem": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.14.tgz", + "integrity": "sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==", + "license": "MIT", + "peerDependencies": { + "css-render": "~0.15.14" + } + }, + "node_modules/@css-render/vue3-ssr": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/@css-render/vue3-ssr/-/vue3-ssr-0.15.14.tgz", + "integrity": "sha512-//8027GSbxE9n3QlD73xFY6z4ZbHbvrOVB7AO6hsmrEzGbg+h2A09HboUyDgu+xsmj7JnvJD39Irt+2D0+iV8g==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "license": "Apache-2.0" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.4.tgz", + "integrity": "sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.4.tgz", + "integrity": "sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.4.tgz", + "integrity": "sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.4.tgz", + "integrity": "sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.4.tgz", + "integrity": "sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.4.tgz", + "integrity": "sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.4.tgz", + "integrity": "sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.4.tgz", + "integrity": "sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.4.tgz", + "integrity": "sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.4.tgz", + "integrity": "sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.4.tgz", + "integrity": "sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.4.tgz", + "integrity": "sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.4.tgz", + "integrity": "sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.4.tgz", + "integrity": "sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.4.tgz", + "integrity": "sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.4.tgz", + "integrity": "sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.4.tgz", + "integrity": "sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.4.tgz", + "integrity": "sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.4.tgz", + "integrity": "sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.4.tgz", + "integrity": "sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.4.tgz", + "integrity": "sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.4.tgz", + "integrity": "sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.4.tgz", + "integrity": "sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.4.tgz", + "integrity": "sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.4.tgz", + "integrity": "sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tauri-apps/api": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.11.0.tgz", + "integrity": "sha512-7CinYODhky9lmO23xHnUFv0Xt43fbtWMyxZcLcRBlFkcgXKuEirBvHpmtJ89YMhyeGcq20Wuc47Fa4XjyniywA==", + "license": "Apache-2.0 OR MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, + "node_modules/@tauri-apps/cli": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.11.2.tgz", + "integrity": "sha512-bk3HemqvGRoy+5D/dVMUQHKMYLglD0jVnMm/0iGMH6ufZ+p8r14m6BpIixwij3PBvZdvORUp1YifTD8QxVZ1Nw==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "bin": { + "tauri": "tauri.js" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + }, + "optionalDependencies": { + "@tauri-apps/cli-darwin-arm64": "2.11.2", + "@tauri-apps/cli-darwin-x64": "2.11.2", + "@tauri-apps/cli-linux-arm-gnueabihf": "2.11.2", + "@tauri-apps/cli-linux-arm64-gnu": "2.11.2", + "@tauri-apps/cli-linux-arm64-musl": "2.11.2", + "@tauri-apps/cli-linux-riscv64-gnu": "2.11.2", + "@tauri-apps/cli-linux-x64-gnu": "2.11.2", + "@tauri-apps/cli-linux-x64-musl": "2.11.2", + "@tauri-apps/cli-win32-arm64-msvc": "2.11.2", + "@tauri-apps/cli-win32-ia32-msvc": "2.11.2", + "@tauri-apps/cli-win32-x64-msvc": "2.11.2" + } + }, + "node_modules/@tauri-apps/cli-darwin-arm64": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.11.2.tgz", + "integrity": "sha512-+4UZzLt+eOAEQCwgd+TqKgyUJMrvx+BgdXLLaqJYmPqzP+nE6YZr/hY6CWLYGQb8jFn99jEkmC6uA3tNvamA1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-darwin-x64": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.11.2.tgz", + "integrity": "sha512-VjYYtZUPqDMLutSfJEyxFE3Bz+DPi7c8wC3imckgvciLDZLq4qwKJxBicg0BXGhXjJsl8vKWgWRFNMPELQ+Xyg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.11.2.tgz", + "integrity": "sha512-yMemD6f4i95AQriS8EazyOFzbE34yjnP16i3IOzpHGQvBoy2DjypFMFBq0NtPuITURv/cOGguRtHR5d79/9CSA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.11.2.tgz", + "integrity": "sha512-cgI91D2wL8GSgoWwZXDqt+DwnuZCP2/bz03QAE4TrhgAKIsrB4hX26W/H1EONPUUNkqrsgeCD0wU6pcNjV/5kw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.11.2.tgz", + "integrity": "sha512-X1rm0BERqAAggtYTESSgXrS3sz4Sb/OiPiz54UqISlXW+GkR3vNIGnsy/lejNmoXGVqri3Q53BCfQiclOIyRPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-riscv64-gnu": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.11.2.tgz", + "integrity": "sha512-usbMLJbT3KtkOrBMDVeGYNM35aTHXx38SJSzTMSqqjeUIOQ+iVPjb2yAGNAE+KqmBbAx4FOFIyMeKXx2M/JKGQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.11.2.tgz", + "integrity": "sha512-Ru4gwJKPG0ctVGchRGpRup4Y4lW2SSfFnrbQcyHhCliKy4g8Qz97TrUgCur4CbWyAgKxvGh3SjrkA0LDYzDGiw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-musl": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.11.2.tgz", + "integrity": "sha512-eUm7T6clN1MMmNSRQ9gaWsQdyehQx2Gmn5hht/QUlqZQI/qcP2OJK5dnaxqwFzCr2HdsEo9ydxaqcS1oJzMvUw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-arm64-msvc": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.11.2.tgz", + "integrity": "sha512-HeeZW80jU+gVTOEX4X/hC6NVSAdDVXajwP5fxIZ/3z9WvUC7qrudX2GMTilYq6Dg0e0sk0XgsAJD1hZ5wPBXUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.11.2.tgz", + "integrity": "sha512-YhjQNZcXfbkCLyazSv1nPnJ9iRFE1wm6kc51FDbU10/Dk09io+6PAGMLjkxnX2GdM0qMnDmTjstY8mTDVvtKeA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.11.2.tgz", + "integrity": "sha512-d2JchlFIpZevZVReyqhQOekJmb1UH3rhZ5VX6sH3ty9ETE0TKQavpihvoScUXfKKpW6HZC0MrFGRU0ZtD+w3gA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.24", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz", + "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.7.tgz", + "integrity": "sha512-km+p+XdSz9Sxm5rqUbqcSfZYaAniKxWBj1KURl+Jr7UaPvvX7BmaWMdP69I5rrFDeQGyxAG7NXdc57vz+snhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.34.tgz", + "integrity": "sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/shared": "3.5.34", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.34.tgz", + "integrity": "sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.34.tgz", + "integrity": "sha512-D/ihr6uZeIt6r+pVZf46RWT1fAsLFMbUP7k8G1VkiiWexriED9GrX3echHd4Abbt17zjlfiFJ8z7a3BxZOPNjg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@vue/compiler-core": "3.5.34", + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.14", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.34.tgz", + "integrity": "sha512-cDtTHKibkThKGHH1SP+WdccquNRYQDFH6rRjQCqT9G2ltFAfoR5pUftpab/z+aM5mW9HLLVQW7hfKKQe/1GBeQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.34.tgz", + "integrity": "sha512-y9XDjCEuBp+98k+UL5dbYkh57AHU4o6cxZedOPXw3bmrZZYLQsVHguGurq7hVrPCSrQtrnz1f9dssyFr+dMXfQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.34.tgz", + "integrity": "sha512-mKeBYvu8tcMSLhypAHBmriUFfWXKTCF/23Z4jiCoYK3UtWepkliViNLuR90V9XOyD62mUxs9p1jsrpK3CCGIzw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/shared": "3.5.34" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.34.tgz", + "integrity": "sha512-e8kZzERmCwUnBRVsgSQlAfrfU2rGoy0FFKPBXSlfEjc/O3KfA7QP0t1/2ZylrbchjmIKB4dPTd07A6WPr0eOrg==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.34", + "@vue/runtime-core": "3.5.34", + "@vue/shared": "3.5.34", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.34.tgz", + "integrity": "sha512-nHxmJoTrKsmrkbILRhkC9gY1G3moZbJTqCzDd7DOOzG5KH9oeJ0Unqrff5f9v0pW//jES05ZkJcNtfE8JjOIew==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "vue": "3.5.34" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.34.tgz", + "integrity": "sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==", + "license": "MIT" + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/css-render": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/css-render/-/css-render-0.15.14.tgz", + "integrity": "sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "~0.8.0", + "csstype": "~3.0.5" + } + }, + "node_modules/css-render/node_modules/csstype": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/date-fns-tz": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-3.2.0.tgz", + "integrity": "sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==", + "license": "MIT", + "peerDependencies": { + "date-fns": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/evtd": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/evtd/-/evtd-0.2.4.tgz", + "integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/highlight.js": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/naive-ui": { + "version": "2.44.1", + "resolved": "https://registry.npmjs.org/naive-ui/-/naive-ui-2.44.1.tgz", + "integrity": "sha512-reo8Esw0p58liZwbUutC7meW24Xbn3EwNv91zReWKm2W4JPu+zfgJRn/F7aO0BFmvN+h2brA2M5lRvYqLq4kuA==", + "license": "MIT", + "dependencies": { + "@css-render/plugin-bem": "^0.15.14", + "@css-render/vue3-ssr": "^0.15.14", + "@types/lodash": "^4.17.20", + "@types/lodash-es": "^4.17.12", + "async-validator": "^4.2.5", + "css-render": "^0.15.14", + "csstype": "^3.1.3", + "date-fns": "^4.1.0", + "date-fns-tz": "^3.2.0", + "evtd": "^0.2.4", + "highlight.js": "^11.8.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "seemly": "^0.3.10", + "treemate": "^0.3.11", + "vdirs": "^0.1.8", + "vooks": "^0.2.12", + "vueuc": "^0.4.65" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.4.tgz", + "integrity": "sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.4", + "@rollup/rollup-android-arm64": "4.60.4", + "@rollup/rollup-darwin-arm64": "4.60.4", + "@rollup/rollup-darwin-x64": "4.60.4", + "@rollup/rollup-freebsd-arm64": "4.60.4", + "@rollup/rollup-freebsd-x64": "4.60.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.4", + "@rollup/rollup-linux-arm-musleabihf": "4.60.4", + "@rollup/rollup-linux-arm64-gnu": "4.60.4", + "@rollup/rollup-linux-arm64-musl": "4.60.4", + "@rollup/rollup-linux-loong64-gnu": "4.60.4", + "@rollup/rollup-linux-loong64-musl": "4.60.4", + "@rollup/rollup-linux-ppc64-gnu": "4.60.4", + "@rollup/rollup-linux-ppc64-musl": "4.60.4", + "@rollup/rollup-linux-riscv64-gnu": "4.60.4", + "@rollup/rollup-linux-riscv64-musl": "4.60.4", + "@rollup/rollup-linux-s390x-gnu": "4.60.4", + "@rollup/rollup-linux-x64-gnu": "4.60.4", + "@rollup/rollup-linux-x64-musl": "4.60.4", + "@rollup/rollup-openbsd-x64": "4.60.4", + "@rollup/rollup-openharmony-arm64": "4.60.4", + "@rollup/rollup-win32-arm64-msvc": "4.60.4", + "@rollup/rollup-win32-ia32-msvc": "4.60.4", + "@rollup/rollup-win32-x64-gnu": "4.60.4", + "@rollup/rollup-win32-x64-msvc": "4.60.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/seemly": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/seemly/-/seemly-0.3.10.tgz", + "integrity": "sha512-2+SMxtG1PcsL0uyhkumlOU6Qo9TAQ/WyH7tthnPIOQB05/12jz9naq6GZ6iZ6ApVsO3rr2gsnTf3++OV63kE1Q==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/treemate": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/treemate/-/treemate-0.3.11.tgz", + "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==", + "license": "MIT" + }, + "node_modules/vdirs": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/vdirs/-/vdirs-0.1.8.tgz", + "integrity": "sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==", + "license": "MIT", + "dependencies": { + "evtd": "^0.2.2" + }, + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/vite": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.3.tgz", + "integrity": "sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vooks": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/vooks/-/vooks-0.2.12.tgz", + "integrity": "sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==", + "license": "MIT", + "dependencies": { + "evtd": "^0.2.2" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue": { + "version": "3.5.34", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.34.tgz", + "integrity": "sha512-WdLBG9gm02OgJIG9axd5Hpx0TFLdzVgfG2evFFu8Rur5O/IoGc5cMjnjh3tPL6GnRGsYvUhBSKVPYVcxRKpMCA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.34", + "@vue/compiler-sfc": "3.5.34", + "@vue/runtime-dom": "3.5.34", + "@vue/server-renderer": "3.5.34", + "@vue/shared": "3.5.34" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vueuc": { + "version": "0.4.65", + "resolved": "https://registry.npmjs.org/vueuc/-/vueuc-0.4.65.tgz", + "integrity": "sha512-lXuMl+8gsBmruudfxnMF9HW4be8rFziylXFu1VHVNbLVhRTXXV4njvpRuJapD/8q+oFEMSfQMH16E/85VoWRyQ==", + "license": "MIT", + "dependencies": { + "@css-render/vue3-ssr": "^0.15.10", + "@juggle/resize-observer": "^3.3.1", + "css-render": "^0.15.10", + "evtd": "^0.2.4", + "seemly": "^0.3.6", + "vdirs": "^0.1.4", + "vooks": "^0.2.4" + }, + "peerDependencies": { + "vue": "^3.0.11" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..aa68c2b --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,25 @@ +{ + "name": "ai-shiliu-frontend", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "backend:build": "scripts\\backend-build.bat", + "release:prepare": "npm run build && npm run backend:build", + "tauri:dev": "tauri dev", + "tauri:build": "npm run release:prepare && tauri build" + }, + "dependencies": { + "@tauri-apps/api": "^2.8.0", + "naive-ui": "^2.43.1", + "vue": "^3.5.22" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.11.2", + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.1.5" + } +} diff --git a/frontend/scripts/backend-build.bat b/frontend/scripts/backend-build.bat new file mode 100644 index 0000000..6d247b7 --- /dev/null +++ b/frontend/scripts/backend-build.bat @@ -0,0 +1,49 @@ +@echo off +setlocal enabledelayedexpansion + +set "ROOT=%~dp0..\.." +for %%I in ("%ROOT%") do set "ROOT=%%~fI" +set "PYTHON=%ROOT%\.venv\Scripts\python.exe" + +if not exist "%PYTHON%" ( + echo Missing .venv\Scripts\python.exe + exit /b 1 +) + +"%PYTHON%" -m pip show rapidocr-onnxruntime >nul 2>nul +set "HAS_RAPIDOCR=%ERRORLEVEL%" +"%PYTHON%" -m pip show onnxruntime >nul 2>nul +set "HAS_ONNXRUNTIME=%ERRORLEVEL%" +if not "%HAS_RAPIDOCR%"=="0" goto install_ocr +if not "%HAS_ONNXRUNTIME%"=="0" goto install_ocr +goto after_install + +:install_ocr +"%PYTHON%" -m pip install -r "%ROOT%\requirements.txt" +if errorlevel 1 exit /b 1 + +:after_install +"%PYTHON%" -m PyInstaller --version >nul +if errorlevel 1 exit /b 1 + +set "RESOURCES=%ROOT%\frontend\src-tauri\resources" +set "BACKEND_OUT=%RESOURCES%\backend" +set "BUILD_ROOT=%ROOT%\.build\pyinstaller" +set "STALE_ROOT=%ROOT%\.build\stale-resources" + +if exist "%BACKEND_OUT%" ( + rmdir /s /q "%BACKEND_OUT%" 2>nul + if exist "%BACKEND_OUT%" ( + if not exist "%STALE_ROOT%" mkdir "%STALE_ROOT%" + set "STALE_NAME=backend-%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%" + set "STALE_NAME=!STALE_NAME: =0!" + move "%BACKEND_OUT%" "%STALE_ROOT%\!STALE_NAME!" >nul + ) +) + +if not exist "%RESOURCES%" mkdir "%RESOURCES%" + +"%PYTHON%" -m PyInstaller --noconfirm --clean --onedir --name backend --distpath "%RESOURCES%" --workpath "%BUILD_ROOT%\work" --specpath "%BUILD_ROOT%\spec" --paths "%ROOT%" --collect-all rapidocr_onnxruntime --collect-all onnxruntime --copy-metadata rapidocr-onnxruntime --copy-metadata onnxruntime --add-data "%ROOT%\app;app" "%ROOT%\backend_main.py" +if errorlevel 1 exit /b 1 + +exit /b 0 diff --git a/frontend/src-tauri/.gitignore b/frontend/src-tauri/.gitignore new file mode 100644 index 0000000..502406b --- /dev/null +++ b/frontend/src-tauri/.gitignore @@ -0,0 +1,4 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ +/gen/schemas diff --git a/frontend/src-tauri/Cargo.lock b/frontend/src-tauri/Cargo.lock new file mode 100644 index 0000000..99a34e1 --- /dev/null +++ b/frontend/src-tauri/Cargo.lock @@ -0,0 +1,4941 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.17", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_log-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" + +[[package]] +name = "android_logger" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb4e440d04be07da1f1bf44fb4495ebd58669372fe0cffa6e48595ac5bd88a3" +dependencies = [ + "android_log-sys", + "env_filter", + "log", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "app" +version = "0.1.0" +dependencies = [ + "log", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-log", +] + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +dependencies = [ + "serde_core", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "borsh" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" +dependencies = [ + "borsh-derive", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" +dependencies = [ + "once_cell", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + +[[package]] +name = "byte-unit" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6d47a4e2961fb8721bcfc54feae6455f2f64e7054f9bc67e875f0e77f4c58d" +dependencies = [ + "rust_decimal", + "schemars 1.2.1", + "serde", + "utf8-width", +] + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.11.1", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.2.62" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" +dependencies = [ + "bitflags 2.11.1", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.11.1", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "phf", + "smallvec", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "ctor" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dbus" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b942602992bb7acfd1f51c49811c58a610ef9181b6e66f3e519d79b540a3bf73" +dependencies = [ + "libc", + "libdbus-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "powerfmt", + "serde_core", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.117", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.11.1", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dlopen2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dom_query" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" +dependencies = [ + "bit-set", + "cssparser", + "foldhash 0.2.0", + "html5ever", + "precomputed-hash", + "selectors", + "tendril", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dtor" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31a88c8d26de40ed18fe748c547845aa39de1db3afd958f8cb91579f3644bcb" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 1.1.2+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "env_filter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "fern" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29" +dependencies = [ + "log", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-executor" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.11.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +dependencies = [ + "log", + "markup5ever", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png 0.17.16", +] + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "js-sys" +version = "0.3.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" +dependencies = [ + "cfg-if", + "futures-util", + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.11.1", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + +[[package]] +name = "libdbus-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +dependencies = [ + "libc", +] + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +dependencies = [ + "value-bag", +] + +[[package]] +name = "markup5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +dependencies = [ + "log", + "tendril", + "web_atoms", +] + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae8844f63b5b118e334e205585b8c5c17b984121dbdb179d44aeb087ffad3cb" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.18", + "windows-sys 0.61.2", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.11.1", + "jni-sys 0.3.1", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys 0.3.1", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-conv" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.11.1", + "block2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.11.1", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.11.1", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.11.1", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-location" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.11.1", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.11.1", + "block2", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.11.1", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.11.1", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.11.1", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-location", + "objc2-core-text", + "objc2-foundation", + "objc2-quartz-core", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.11.1", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros", + "phf_shared", + "serde", +] + +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "plist" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092791278e026273c1b65bbdcfbba3a300f2994c896bd01ab01da613c29c46f1" +dependencies = [ + "base64 0.22.1", + "indexmap 2.14.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "png" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" +dependencies = [ + "bitflags 2.11.1", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.11+spec-1.1.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quick-xml" +version = "0.39.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.11.1", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqwest" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "rkyv" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rust_decimal" +version = "1.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c5108e3d4d903e21aac27f12ba5377b6b34f9f44b325e4894c7924169d06995" +dependencies = [ + "arrayvec", + "borsh", + "bytes", + "num-traits", + "rand", + "rkyv", + "serde", + "serde_json", + "wasm-bindgen", +] + +[[package]] +name = "rustc-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.117", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "selectors" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +dependencies = [ + "bitflags 2.11.1", + "cssparser", + "derive_more", + "log", + "new_debug_unreachable", + "phf", + "phf_codegen", + "precomputed-hash", + "rustc-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_with" +version = "3.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e72c1c2cb7b223fafb600a619537a871c2818583d619401b785e7c0b746ccde2" +dependencies = [ + "base64 0.22.1", + "bs58", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90c488738ecb4fb0262f41f43bc40efc5868d9fb744319ddf5f5317f417bfac" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "servo_arc" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simd-adler32" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "string_cache_codegen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.35.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33f7f9e486ade65fcf1e45c440f9236c904f5c1002cdc7fc6ae582777345ce4" +dependencies = [ + "bitflags 2.11.1", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dbus", + "dispatch2", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "libc", + "log", + "ndk", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "once_cell", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "437404997acf375d85f1177afa7e11bb971f274ed6a7b83a2a3e339015f4cc28" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.18", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa1f9055fc23919a54e4e125052bed16ed04aef0487086e758fe01a67b451c7" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a0319528a025a38c4078e7dae2c446f4e63620ddb0659a643ede1cb38f90e9" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.16", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.117", + "tauri-utils", + "thiserror 2.0.18", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6cb4e3896c21d2f6da5b31251d2faea0153bba56ed0e970f918115dbee4924" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e126abc9e84e35cdfd01596140a73a1850cdb0df0a23acf0185776c30b469a6e" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "walkdir", +] + +[[package]] +name = "tauri-plugin-log" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7545bd67f070a4500432c826e2e0682146a1d6712aee22a2786490156b574d93" +dependencies = [ + "android_logger", + "byte-unit", + "fern", + "log", + "objc2", + "objc2-foundation", + "serde", + "serde_json", + "serde_repr", + "swift-rs", + "tauri", + "tauri-plugin", + "thiserror 2.0.18", + "time", +] + +[[package]] +name = "tauri-runtime" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48222d7116c8807eaa6fe2f372e023fae125084e61e6eca6d70b7961cdf129ef" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b83849ee63ecb27a8e8d0fe51915ca215076914aca43f96db1179f0f415f6cd9" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092379df9a707631978e6c56b1bc2401d387f01e2d4a3c123360d167bbb9aa95" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dom_query", + "dunce", + "glob", + "http", + "infer", + "json-patch", + "log", + "memchr", + "phf", + "plist", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.18", + "toml 1.1.2+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +dependencies = [ + "dunce", + "embed-resource", + "toml 1.1.2+spec-1.1.0", +] + +[[package]] +name = "tendril" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24" +dependencies = [ + "new_debug_unreachable", + "utf-8", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "time" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" + +[[package]] +name = "time-macros" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.52.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + +[[package]] +name = "toml" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.3", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.25.11+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.3", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow 1.0.3", +] + +[[package]] +name = "toml_writer" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68d6fdd9f81c2819c9a8b0e0cd91660e7746a8e6ea2ba7c6b2b057985f6bcb51" +dependencies = [ + "bitflags 2.11.1", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15edbb0d80583e85ee8df283410038e17314df5cba30da2087a54a85216c0773" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.18", + "windows-sys 0.61.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1292c0d970b54115d14f2492fe0170adf21d68a1de108eebc51c1df4f346a091" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" +dependencies = [ + "getrandom 0.4.2", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "value-bag" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0" + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.3+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +dependencies = [ + "wit-bindgen 0.57.1", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.117", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.14.0", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.1", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web_atoms" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538" +dependencies = [ + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.18", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + +[[package]] +name = "winnow" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.14.0", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.1", + "indexmap 2.14.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.14.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "wry" +version = "0.55.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dom_query", + "dpi", + "dunce", + "gdkx11", + "gtk", + "http", + "javascriptcore-rs", + "jni", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/frontend/src-tauri/Cargo.toml b/frontend/src-tauri/Cargo.toml new file mode 100644 index 0000000..b3cdfff --- /dev/null +++ b/frontend/src-tauri/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "app" +version = "0.1.0" +description = "A Tauri App" +authors = ["you"] +license = "" +repository = "" +edition = "2021" +rust-version = "1.77.2" + +[lib] +name = "app_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2.6.2", features = [] } + +[dependencies] +serde_json = "1.0" +serde = { version = "1.0", features = ["derive"] } +log = "0.4" +tauri = { version = "2.11.2", features = ["devtools"] } +tauri-plugin-log = "2" diff --git a/frontend/src-tauri/build.rs b/frontend/src-tauri/build.rs new file mode 100644 index 0000000..795b9b7 --- /dev/null +++ b/frontend/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/frontend/src-tauri/capabilities/default.json b/frontend/src-tauri/capabilities/default.json new file mode 100644 index 0000000..4005a7c --- /dev/null +++ b/frontend/src-tauri/capabilities/default.json @@ -0,0 +1,17 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "enables the default permissions", + "windows": [ + "main" + ], + "permissions": [ + "core:default", + "core:window:allow-close", + "core:window:allow-minimize", + "core:window:allow-maximize", + "core:window:allow-unmaximize", + "core:window:allow-is-maximized", + "core:window:allow-start-dragging" + ] +} diff --git a/frontend/src-tauri/icons/128x128.png b/frontend/src-tauri/icons/128x128.png new file mode 100644 index 0000000..77e7d23 Binary files /dev/null and b/frontend/src-tauri/icons/128x128.png differ diff --git a/frontend/src-tauri/icons/128x128@2x.png b/frontend/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000..0f7976f Binary files /dev/null and b/frontend/src-tauri/icons/128x128@2x.png differ diff --git a/frontend/src-tauri/icons/32x32.png b/frontend/src-tauri/icons/32x32.png new file mode 100644 index 0000000..98fda06 Binary files /dev/null and b/frontend/src-tauri/icons/32x32.png differ diff --git a/frontend/src-tauri/icons/Square107x107Logo.png b/frontend/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000..f35d84f Binary files /dev/null and b/frontend/src-tauri/icons/Square107x107Logo.png differ diff --git a/frontend/src-tauri/icons/Square142x142Logo.png b/frontend/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 0000000..1823bb2 Binary files /dev/null and b/frontend/src-tauri/icons/Square142x142Logo.png differ diff --git a/frontend/src-tauri/icons/Square150x150Logo.png b/frontend/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000..dc2b22c Binary files /dev/null and b/frontend/src-tauri/icons/Square150x150Logo.png differ diff --git a/frontend/src-tauri/icons/Square284x284Logo.png b/frontend/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000..0ed3984 Binary files /dev/null and b/frontend/src-tauri/icons/Square284x284Logo.png differ diff --git a/frontend/src-tauri/icons/Square30x30Logo.png b/frontend/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000..60bf0ea Binary files /dev/null and b/frontend/src-tauri/icons/Square30x30Logo.png differ diff --git a/frontend/src-tauri/icons/Square310x310Logo.png b/frontend/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000..c8ca0ad Binary files /dev/null and b/frontend/src-tauri/icons/Square310x310Logo.png differ diff --git a/frontend/src-tauri/icons/Square44x44Logo.png b/frontend/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000..8756459 Binary files /dev/null and b/frontend/src-tauri/icons/Square44x44Logo.png differ diff --git a/frontend/src-tauri/icons/Square71x71Logo.png b/frontend/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000..2c8023c Binary files /dev/null and b/frontend/src-tauri/icons/Square71x71Logo.png differ diff --git a/frontend/src-tauri/icons/Square89x89Logo.png b/frontend/src-tauri/icons/Square89x89Logo.png new file mode 100644 index 0000000..2c5e603 Binary files /dev/null and b/frontend/src-tauri/icons/Square89x89Logo.png differ diff --git a/frontend/src-tauri/icons/StoreLogo.png b/frontend/src-tauri/icons/StoreLogo.png new file mode 100644 index 0000000..17d142c Binary files /dev/null and b/frontend/src-tauri/icons/StoreLogo.png differ diff --git a/frontend/src-tauri/icons/icon.icns b/frontend/src-tauri/icons/icon.icns new file mode 100644 index 0000000..a2993ad Binary files /dev/null and b/frontend/src-tauri/icons/icon.icns differ diff --git a/frontend/src-tauri/icons/icon.ico b/frontend/src-tauri/icons/icon.ico new file mode 100644 index 0000000..06c23c8 Binary files /dev/null and b/frontend/src-tauri/icons/icon.ico differ diff --git a/frontend/src-tauri/icons/icon.png b/frontend/src-tauri/icons/icon.png new file mode 100644 index 0000000..d1756ce Binary files /dev/null and b/frontend/src-tauri/icons/icon.png differ diff --git a/frontend/src-tauri/resources/.gitkeep b/frontend/src-tauri/resources/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src-tauri/src/lib.rs b/frontend/src-tauri/src/lib.rs new file mode 100644 index 0000000..16efe4d --- /dev/null +++ b/frontend/src-tauri/src/lib.rs @@ -0,0 +1,356 @@ +use std::{ + collections::HashMap, + net::TcpStream, + path::{Path, PathBuf}, + process::{Child, Command, Stdio}, + sync::Mutex, + thread, + time::{Duration, Instant}, +}; + +use tauri::{AppHandle, Manager, RunEvent}; + +struct AppState { + backend_child: Mutex>, + backend_bootstrap_error: Mutex>, +} + +struct RuntimePaths { + app_data_dir: PathBuf, + log_root_dir: PathBuf, + runtime_log_dir: PathBuf, + bot_log_file: PathBuf, + ocr_log_file: PathBuf, + ocr_save_dir: PathBuf, + blocked_row_cache_file: PathBuf, +} + +struct BackendLaunchPlan { + program: PathBuf, + args: Vec, + working_dir: PathBuf, + envs: HashMap, +} + +fn project_root() -> PathBuf { + PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .parent() + .and_then(|p| p.parent()) + .map(|p| p.to_path_buf()) + .expect("project root not found") +} + +fn backend_python() -> PathBuf { + project_root().join(".venv").join("Scripts").join("python.exe") +} + +fn backend_entry() -> PathBuf { + project_root().join("backend_main.py") +} + +fn normalize_mode(value: &str) -> String { + let mode = value.trim().to_ascii_lowercase(); + match mode.as_str() { + "release" | "prod" | "production" | "bundle" | "packaged" => "release".to_string(), + _ => "dev".to_string(), + } +} + +fn backend_mode() -> String { + std::env::var("OPENCLAW_BACKEND_MODE") + .map(|value| normalize_mode(&value)) + .unwrap_or_else(|_| { + if cfg!(debug_assertions) { + "dev".to_string() + } else { + "release".to_string() + } + }) +} + +fn backend_addr() -> String { + std::env::var("APP_HOST") + .map(|host| { + let port = std::env::var("APP_PORT").unwrap_or_else(|_| "5000".to_string()); + format!("{}:{}", host, port) + }) + .unwrap_or_else(|_| "127.0.0.1:5000".to_string()) +} + +fn is_backend_alive() -> bool { + TcpStream::connect(backend_addr()).is_ok() +} + +fn wait_for_backend(child: &mut Child, timeout: Duration) -> Result<(), String> { + let started = Instant::now(); + while started.elapsed() < timeout { + if is_backend_alive() { + return Ok(()); + } + if let Ok(Some(status)) = child.try_wait() { + return Err(format!("独立后台进程已退出,退出码: {}", status)); + } + thread::sleep(Duration::from_millis(200)); + } + Err(format!("后台启动超时,未监听 {}", backend_addr())) +} + +fn ensure_dir(path: &Path) -> Result<(), String> { + std::fs::create_dir_all(path).map_err(|err| format!("创建目录失败 {}: {}", path.display(), err)) +} + +fn resolve_runtime_paths(app: &AppHandle) -> Result { + let app_data_dir = app + .path() + .app_local_data_dir() + .map_err(|err| format!("获取应用数据目录失败: {}", err))?; + let log_root_dir = app_data_dir.join("logs"); + let runtime_log_dir = log_root_dir.join("runtime"); + let bot_log_file = runtime_log_dir.join("bot").join("wechat_multi_chat_bot.log"); + let ocr_log_file = runtime_log_dir.join("ocr").join("wechat_ocr.log"); + let ocr_save_dir = log_root_dir.join("ocr_debug_images"); + let blocked_row_cache_file = log_root_dir.join("state").join("blocked_rows.json"); + + ensure_dir(&app_data_dir)?; + ensure_dir(&runtime_log_dir.join("bot"))?; + ensure_dir(&runtime_log_dir.join("ocr"))?; + ensure_dir(&ocr_save_dir)?; + ensure_dir( + blocked_row_cache_file + .parent() + .ok_or_else(|| "状态缓存目录无效".to_string())?, + )?; + + Ok(RuntimePaths { + app_data_dir, + log_root_dir, + runtime_log_dir, + bot_log_file, + ocr_log_file, + ocr_save_dir, + blocked_row_cache_file, + }) +} + +fn runtime_envs(app: &AppHandle, mode: &str) -> Result, String> { + let paths = resolve_runtime_paths(app)?; + let mut envs = HashMap::new(); + envs.insert("APP_NAME".to_string(), "AiShiliu".to_string()); + envs.insert("APP_DATA_DIR".to_string(), paths.app_data_dir.display().to_string()); + envs.insert("LOG_ROOT_DIR".to_string(), paths.log_root_dir.display().to_string()); + envs.insert( + "RUNTIME_LOG_DIR".to_string(), + paths.runtime_log_dir.display().to_string(), + ); + envs.insert("BOT_LOG_FILE".to_string(), paths.bot_log_file.display().to_string()); + envs.insert("OCR_LOG_FILE".to_string(), paths.ocr_log_file.display().to_string()); + envs.insert("OCR_SAVE_DIR".to_string(), paths.ocr_save_dir.display().to_string()); + envs.insert( + "BLOCKED_ROW_CACHE_FILE".to_string(), + paths.blocked_row_cache_file.display().to_string(), + ); + + envs.insert("OPENCLAW_BACKEND_MODE".to_string(), mode.to_string()); + envs.insert("OPENCLAW_RUNTIME_MODE".to_string(), mode.to_string()); + Ok(envs) +} + +fn release_backend_candidates(app: &AppHandle) -> Result, String> { + let resource_dir = app + .path() + .resource_dir() + .map_err(|err| format!("获取资源目录失败: {}", err))?; + let exe_dir = std::env::current_exe() + .map_err(|err| format!("获取主程序路径失败: {}", err))? + .parent() + .map(Path::to_path_buf) + .ok_or_else(|| "无法解析主程序目录".to_string())?; + + Ok(vec![ + resource_dir.join("backend").join("backend.exe"), + resource_dir.join("backend.exe"), + exe_dir.join("resources").join("backend").join("backend.exe"), + exe_dir.join("resources").join("backend.exe"), + exe_dir.join("backend").join("backend.exe"), + exe_dir.join("backend.exe"), + ]) +} + +fn release_working_dir(app: &AppHandle) -> Result { + let resource_dir = app + .path() + .resource_dir() + .map_err(|err| format!("获取资源目录失败: {}", err))?; + Ok(resource_dir) +} + +fn resolve_backend_launch_plan(app: &AppHandle) -> Result { + let mode = backend_mode(); + let envs = runtime_envs(app, &mode)?; + + if mode == "release" { + let candidates = release_backend_candidates(app)?; + let program = candidates + .into_iter() + .find(|candidate| candidate.exists()) + .ok_or_else(|| "未找到发布态后端程序 backend.exe".to_string())?; + let working_dir = release_working_dir(app)?; + return Ok(BackendLaunchPlan { + program, + args: Vec::new(), + working_dir, + envs, + }); + } + + let python = backend_python(); + if !python.exists() { + return Err(format!("未找到后端解释器: {}", python.display())); + } + let entry = backend_entry(); + if !entry.exists() { + return Err(format!("未找到后端入口: {}", entry.display())); + } + Ok(BackendLaunchPlan { + program: python, + args: vec![entry], + working_dir: project_root(), + envs, + }) +} + +fn spawn_backend(app: &AppHandle) -> Result<(), String> { + if is_backend_alive() { + return Ok(()); + } + + let plan = resolve_backend_launch_plan(app)?; + let mut command = Command::new(&plan.program); + command.current_dir(&plan.working_dir); + for arg in &plan.args { + command.arg(arg); + } + for (key, value) in &plan.envs { + command.env(key, value); + } + command + .env("OPENCLAW_PROJECT_VENV_REEXEC", "1") + .stdout(Stdio::null()) + .stderr(Stdio::null()); + + let mut child = command + .spawn() + .map_err(|err| format!("启动后台失败: {}", err))?; + if let Err(err) = wait_for_backend(&mut child, Duration::from_secs(20)) { + let _ = child.kill(); + let _ = child.wait(); + return Err(err); + } + let state = app.state::(); + let mut guard = state + .backend_child + .lock() + .map_err(|_| "后台状态锁定失败".to_string())?; + *guard = Some(child); + Ok(()) +} + +fn ps_single_quote(value: &str) -> String { + format!("'{}'", value.replace('\'', "''")) +} + +fn cleanup_orphan_backend_processes(app: &AppHandle, mode: &str) { + let script = if mode == "release" { + let targets = release_backend_candidates(app) + .unwrap_or_default() + .into_iter() + .map(|path| ps_single_quote(&path.display().to_string())) + .collect::>() + .join(","); + if targets.is_empty() { + return; + } + format!("$targets=@({}); Get-CimInstance Win32_Process | Where-Object {{ $_.ExecutablePath -and ($targets -contains $_.ExecutablePath) }} | ForEach-Object {{ Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }}", targets) + } else { + "Get-CimInstance Win32_Process | Where-Object { $_.Name -ieq 'python.exe' -and $_.CommandLine -match 'backend_main.py' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }".to_string() + }; + let _ = Command::new("powershell") + .arg("-NoProfile") + .arg("-ExecutionPolicy") + .arg("Bypass") + .arg("-Command") + .arg(script) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .status(); +} + +fn terminate_backend(app: &AppHandle) { + if let Some(state) = app.try_state::() { + if let Ok(mut guard) = state.backend_child.lock() { + if let Some(mut child) = guard.take() { + let _ = child.kill(); + let _ = child.wait(); + } + } + } + cleanup_orphan_backend_processes(app, &backend_mode()); +} + +#[tauri::command] +fn open_devtools(app: AppHandle) -> Result<(), String> { + let webview = app + .get_webview_window("main") + .ok_or_else(|| "未找到主窗口".to_string())?; + webview.open_devtools(); + Ok(()) +} + +#[tauri::command] +fn get_backend_bootstrap_error(app: AppHandle) -> Result, String> { + let state = app.state::(); + let guard = state + .backend_bootstrap_error + .lock() + .map_err(|_| "后台启动错误状态锁定失败".to_string())?; + Ok(guard.clone()) +} + +#[tauri::command] +fn restart_backend(app: AppHandle) -> Result<(), String> { + terminate_backend(&app); + spawn_backend(&app)?; + Ok(()) +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + tauri::Builder::default() + .manage(AppState { + backend_child: Mutex::new(None), + backend_bootstrap_error: Mutex::new(None), + }) + .invoke_handler(tauri::generate_handler![open_devtools, get_backend_bootstrap_error, restart_backend]) + .setup(|app| { + if cfg!(debug_assertions) { + app.handle().plugin( + tauri_plugin_log::Builder::default() + .level(log::LevelFilter::Info) + .build(), + )?; + } + if let Err(err) = spawn_backend(app.handle()) { + if let Ok(mut guard) = app.state::().backend_bootstrap_error.lock() { + *guard = Some(err.clone()); + } + } + Ok(()) + }) + .build(tauri::generate_context!()) + .expect("error while building tauri application") + .run(|app, event| { + if matches!(event, RunEvent::Exit | RunEvent::ExitRequested { .. }) { + terminate_backend(app); + } + }); +} diff --git a/frontend/src-tauri/src/main.rs b/frontend/src-tauri/src/main.rs new file mode 100644 index 0000000..ad5fe83 --- /dev/null +++ b/frontend/src-tauri/src/main.rs @@ -0,0 +1,6 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + app_lib::run(); +} diff --git a/frontend/src-tauri/tauri.conf.json b/frontend/src-tauri/tauri.conf.json new file mode 100644 index 0000000..651ddb0 --- /dev/null +++ b/frontend/src-tauri/tauri.conf.json @@ -0,0 +1,51 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "识流 AI 助手", + "version": "0.1.0", + "identifier": "com.shiliu.aiassistant", + "build": { + "frontendDist": "../dist", + "devUrl": "http://localhost:1420", + "beforeDevCommand": "npm run dev", + "beforeBuildCommand": "" + }, + "app": { + "windows": [ + { + "title": "识流 AI 助手", + "width": 1280, + "height": 920, + "minWidth": 1100, + "minHeight": 760, + "resizable": true, + "fullscreen": false, + "decorations": false + } + ], + "security": { + "csp": null + } + }, + "bundle": { + "active": true, + "targets": "all", + "resources": [ + "resources/**/*" + ], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "android": { + "debugApplicationIdSuffix": ".debug" + }, + "windows": { + "wix": { + "language": "zh-CN" + } + } + } +} diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 0000000..cb8cafe --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,149 @@ + + + diff --git a/frontend/src/api/bot.js b/frontend/src/api/bot.js new file mode 100644 index 0000000..502165f --- /dev/null +++ b/frontend/src/api/bot.js @@ -0,0 +1,43 @@ +import { getJson, postForm, postJson } from './http' + +export function getBotStatus() { + return getJson('/api/bot/status') +} + +export function getLogEvents(params = {}) { + const query = new URLSearchParams() + Object.entries(params).forEach(([key, value]) => { + if (value === undefined || value === null || value === '') return + query.set(key, String(value)) + }) + const suffix = query.toString() ? `?${query.toString()}` : '' + return getJson(`/api/logs/v2/events${suffix}`) +} + +export function getLogSummary(limit = 300) { + return getJson(`/api/logs/v2/summary?limit=${encodeURIComponent(limit)}`) +} + +export function getLogTrace(traceId) { + return getJson(`/api/logs/v2/trace/${encodeURIComponent(traceId)}`) +} + +export function getBotLogs(kind = 'bot', limit = 80) { + return getLogEvents({ module: kind, size: limit, page: 1 }) +} + +export function getLogEventJson(eventId) { + return getJson(`/api/logs/v2/event/${encodeURIComponent(eventId)}`) +} + +export function clearLogs(module = '') { + return postJson('/api/logs/v2/clear', { module }) +} + +export function startBot() { + return postForm('/api/bot/start', {}) +} + +export function stopBot() { + return postForm('/api/bot/stop', {}) +} diff --git a/frontend/src/api/client.js b/frontend/src/api/client.js new file mode 100644 index 0000000..439d5bb --- /dev/null +++ b/frontend/src/api/client.js @@ -0,0 +1 @@ +export { getJson, postForm } from './http' diff --git a/frontend/src/api/http.js b/frontend/src/api/http.js new file mode 100644 index 0000000..28554e8 --- /dev/null +++ b/frontend/src/api/http.js @@ -0,0 +1,57 @@ +const DEFAULT_BACKEND_ORIGIN = 'http://127.0.0.1:5000' + +function normalizePath(path) { + if (!path) return '/' + return path.startsWith('/') ? path : `/${path}` +} + +function isAbsoluteUrl(url) { + return /^https?:\/\//i.test(String(url || '')) +} + +function getConfiguredBackendOrigin() { + const raw = String(window.__APP_BACKEND_URL || '').trim() + if (!raw) return '' + return raw.endsWith('/') ? raw.slice(0, -1) : raw +} + +export function isTauriRuntime() { + return !!window.__TAURI_INTERNALS__ +} + +export function resolveApiUrl(path) { + if (isAbsoluteUrl(path)) return path + const normalizedPath = normalizePath(path) + const backendOrigin = getConfiguredBackendOrigin() + if (backendOrigin) return `${backendOrigin}${normalizedPath}` + if (isTauriRuntime()) return `${DEFAULT_BACKEND_ORIGIN}${normalizedPath}` + return normalizedPath +} + +export async function getJson(url) { + const resp = await fetch(resolveApiUrl(url)) + return resp.json() +} + +export async function postForm(url, payload) { + const body = new URLSearchParams(payload) + const resp = await fetch(resolveApiUrl(url), { + method: 'POST', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + body, + }) + return resp.json() +} + +export async function postJson(url, payload) { + const resp = await fetch(resolveApiUrl(url), { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload || {}), + }) + return resp.json() +} + +export function createEventSource(url) { + return new EventSource(resolveApiUrl(url)) +} diff --git a/frontend/src/api/messages.js b/frontend/src/api/messages.js new file mode 100644 index 0000000..7c5b9ea --- /dev/null +++ b/frontend/src/api/messages.js @@ -0,0 +1,5 @@ +import { getJson } from './http' + +export function getRecentMessages(limit = 50) { + return getJson(`/api/rules?action=messages_recent&limit=${limit}`) +} diff --git a/frontend/src/api/rules.js b/frontend/src/api/rules.js new file mode 100644 index 0000000..88aa02c --- /dev/null +++ b/frontend/src/api/rules.js @@ -0,0 +1,17 @@ +import { getJson, postForm } from './http' + +export function getRules() { + return getJson('/api/rules?action=list') +} + +export function createRule(payload) { + return postForm('/api/rules', { action: 'create', ...payload }) +} + +export function toggleRule(payload) { + return postForm('/api/rules', { action: 'toggle', ...payload }) +} + +export function deleteRule(id) { + return postForm('/api/rules', { action: 'delete', id }) +} diff --git a/frontend/src/api/settings.js b/frontend/src/api/settings.js new file mode 100644 index 0000000..8d9c98f --- /dev/null +++ b/frontend/src/api/settings.js @@ -0,0 +1,9 @@ +import { getJson, postForm } from './http' + +export function getSettings() { + return getJson('/api/rules?action=settings_get') +} + +export function saveSettings(payload) { + return postForm('/api/rules', { action: 'settings_set', ...payload }) +} diff --git a/frontend/src/components/AppTopBar.vue b/frontend/src/components/AppTopBar.vue new file mode 100644 index 0000000..2ecb13e --- /dev/null +++ b/frontend/src/components/AppTopBar.vue @@ -0,0 +1,55 @@ + + + diff --git a/frontend/src/components/RuntimeBadge.vue b/frontend/src/components/RuntimeBadge.vue new file mode 100644 index 0000000..1dbab65 --- /dev/null +++ b/frontend/src/components/RuntimeBadge.vue @@ -0,0 +1,18 @@ + + + diff --git a/frontend/src/composables/useBotStatus.js b/frontend/src/composables/useBotStatus.js new file mode 100644 index 0000000..a0d91d3 --- /dev/null +++ b/frontend/src/composables/useBotStatus.js @@ -0,0 +1,177 @@ +import { computed, onBeforeUnmount, ref } from 'vue' +import { getBotStatus, startBot, stopBot } from '../api/bot' +import { createEventSource } from '../api/http' + +export function useBotStatus(settings, loadSettings, message) { + const statusEventSource = ref(null) + const statusFallbackTimer = ref(null) + const statusHealthTimer = ref(null) + const statusConnecting = ref(false) + const lastStatusStreamAt = ref(0) + + const runtimeText = computed(() => { + if (settings.listener_runtime_status === 'running') return '运行中' + if (settings.listener_runtime_status === 'starting') return '启动中' + if (settings.listener_runtime_status === 'stopping') return '停止中' + if (settings.listener_runtime_status === 'error') return '异常' + return '已停止' + }) + + const runtimeTagType = computed(() => { + if (settings.listener_runtime_status === 'running') return 'success' + if (settings.listener_runtime_status === 'starting' || settings.listener_runtime_status === 'stopping') return 'warning' + if (settings.listener_runtime_status === 'error') return 'error' + return 'default' + }) + + function applyBotStatus(bot, fallbackEnabled) { + const nextStatus = String(bot?.status || 'stopped').toLowerCase() + settings.listener_runtime_status = nextStatus + if (nextStatus === 'running' || nextStatus === 'starting') settings.listener_enabled = true + else if (nextStatus === 'stopped' || nextStatus === 'error') settings.listener_enabled = false + else settings.listener_enabled = !!fallbackEnabled + + if (nextStatus === 'error') { + const detail = String(bot?.last_error || '').trim().split('\n').slice(-1)[0] || '' + if (detail && detail !== lastNotifiedError.value) { + lastNotifiedError.value = detail + message.error(`监听启动异常: ${detail}`) + } else if (!detail && lastNotifiedError.value !== '__unknown__') { + lastNotifiedError.value = '__unknown__' + message.error('监听启动异常,请检查微信环境、日志与配置') + } + } + } + + async function refreshBotStatus() { + const bot = await getBotStatus() + if (bot.success) applyBotStatus(bot, settings.listener_enabled) + } + + function touchStatusStream() { + lastStatusStreamAt.value = Date.now() + } + + function clearStatusFallbackTimer() { + if (statusFallbackTimer.value) { + clearInterval(statusFallbackTimer.value) + statusFallbackTimer.value = null + } + } + + function clearStatusHealthTimer() { + if (statusHealthTimer.value) { + clearInterval(statusHealthTimer.value) + statusHealthTimer.value = null + } + } + + function closeStatusStream({ reconnect = false } = {}) { + clearStatusFallbackTimer() + clearStatusHealthTimer() + if (statusEventSource.value) { + const source = statusEventSource.value + statusEventSource.value = null + source.onopen = null + source.onerror = null + source.close() + } + statusConnecting.value = false + if (reconnect) { + connectBotStatusStream(true) + } + } + + function ensureStatusFallbackPolling() { + if (statusFallbackTimer.value) return + statusFallbackTimer.value = setInterval(() => { + refreshBotStatus().catch(() => {}) + }, 15000) + } + + function startStatusHealthCheck() { + if (statusHealthTimer.value) return + statusHealthTimer.value = setInterval(() => { + const lastAt = lastStatusStreamAt.value || 0 + if (!statusEventSource.value) { + connectBotStatusStream() + return + } + if (lastAt && Date.now() - lastAt <= 45000) { + return + } + ensureStatusFallbackPolling() + closeStatusStream({ reconnect: true }) + }, 10000) + } + + function connectBotStatusStream(force = false) { + if (statusConnecting.value) return + if (statusEventSource.value && !force) return + if (statusEventSource.value && force) { + closeStatusStream() + } + statusConnecting.value = true + try { + const source = createEventSource('/api/bot/status/stream') + statusEventSource.value = source + source.addEventListener('status', (event) => { + touchStatusStream() + try { + const payload = JSON.parse(event.data || '{}') + if (payload.success) { + applyBotStatus(payload, settings.listener_enabled) + } + clearStatusFallbackTimer() + } catch (_) { + } + }) + source.addEventListener('ping', () => { + touchStatusStream() + clearStatusFallbackTimer() + }) + source.onopen = () => { + statusConnecting.value = false + touchStatusStream() + clearStatusFallbackTimer() + } + source.onerror = () => { + statusConnecting.value = false + ensureStatusFallbackPolling() + } + } catch (_) { + statusConnecting.value = false + ensureStatusFallbackPolling() + } + } + + async function onListenerChange(value) { + try { + settings.listener_enabled = !!value + settings.listener_runtime_status = value ? 'starting' : 'stopping' + const data = await (value ? startBot() : stopBot()) + if (!data.success) throw new Error(data.error || '操作失败') + settings.listener_runtime_status = data.status || (value ? 'running' : 'stopped') + settings.listener_enabled = data.status === 'running' || data.status === 'starting' + await loadSettings() + } catch (error) { + message.error(`监听切换失败: ${error}`) + await loadSettings() + } + } + + onBeforeUnmount(() => { + closeStatusStream() + }) + + return { + runtimeText, + runtimeTagType, + refreshBotStatus, + connectBotStatusStream, + startStatusHealthCheck, + onListenerChange, + closeStatusStream, + applyBotStatus, + } +} diff --git a/frontend/src/composables/useMessages.js b/frontend/src/composables/useMessages.js new file mode 100644 index 0000000..1bc2c50 --- /dev/null +++ b/frontend/src/composables/useMessages.js @@ -0,0 +1,25 @@ +import { ref } from 'vue' +import { getRecentMessages } from '../api/messages' + +export function useMessages(message) { + const loadingMessages = ref(false) + const messages = ref([]) + + async function loadMessages(limit = 50) { + loadingMessages.value = true + try { + const data = await getRecentMessages(limit) + messages.value = data.data || [] + } catch (error) { + message.error(`加载消息失败: ${error}`) + } finally { + loadingMessages.value = false + } + } + + return { + loadingMessages, + messages, + loadMessages, + } +} diff --git a/frontend/src/composables/useRulesManager.js b/frontend/src/composables/useRulesManager.js new file mode 100644 index 0000000..62e5f19 --- /dev/null +++ b/frontend/src/composables/useRulesManager.js @@ -0,0 +1,132 @@ +import { computed, h, reactive, ref } from 'vue' +import { NButton, NSpace, NTag } from 'naive-ui' +import { createRule, deleteRule, getRules, toggleRule } from '../api/rules' + +export function useRulesManager(message) { + const loadingRules = ref(false) + const creatingRule = ref(false) + const showCreateRuleModal = ref(false) + const rules = ref([]) + const filters = reactive({ keyword: '', match_type: '', status: '' }) + const createForm = reactive({ keyword: '', match_type: 'contain', reply_text: '' }) + + const filteredRules = computed(() => { + return rules.value.filter((row) => { + if (filters.keyword && !String(row.keyword || '').toLowerCase().includes(filters.keyword.toLowerCase())) return false + if (filters.match_type && row.match_type !== filters.match_type) return false + if (filters.status !== '' && Number(row.is_active) !== Number(filters.status)) return false + return true + }) + }) + + async function loadRules() { + loadingRules.value = true + try { + const data = await getRules() + rules.value = data.data || [] + } catch (error) { + message.error(`加载规则失败: ${error}`) + } finally { + loadingRules.value = false + } + } + + async function submitCreateRule() { + if (!createForm.keyword.trim() || !createForm.reply_text.trim()) { + message.warning('请填写关键词和回复内容') + return + } + creatingRule.value = true + try { + const data = await createRule({ + keyword: createForm.keyword.trim(), + match_type: createForm.match_type, + reply_text: createForm.reply_text.trim(), + }) + if (!data.success) { + message.error(data.message || '新增失败') + return + } + message.success('新增成功') + createForm.keyword = '' + createForm.reply_text = '' + showCreateRuleModal.value = false + await loadRules() + } catch (error) { + message.error(`新增失败: ${error}`) + } finally { + creatingRule.value = false + } + } + + async function handleToggleRule(row) { + try { + const data = await toggleRule({ + id: String(row.id), + is_active: Number(row.is_active) === 1 ? '0' : '1', + }) + if (!data.success) { + message.error(data.message || '切换失败') + return + } + await loadRules() + } catch (error) { + message.error(`切换失败: ${error}`) + } + } + + async function handleDeleteRule(row) { + try { + const data = await deleteRule(String(row.id)) + if (!data.success) { + message.error(data.message || '删除失败') + return + } + message.success('删除成功') + await loadRules() + } catch (error) { + message.error(`删除失败: ${error}`) + } + } + + function resetFilters() { + filters.keyword = '' + filters.match_type = '' + filters.status = '' + loadRules() + } + + const ruleColumns = [ + { title: '关键词', key: 'keyword', minWidth: 140 }, + { title: '匹配方式', key: 'match_type', width: 120, render: (row) => row.match_type === 'equal' ? '完全匹配' : '包含' }, + { title: '回复内容', key: 'reply_text', minWidth: 220 }, + { + title: '状态', key: 'is_active', width: 110, + render: (row) => h(NTag, { type: Number(row.is_active) === 1 ? 'success' : 'default', bordered: false, round: true }, { + default: () => Number(row.is_active) === 1 ? '启用' : '暂停', + }), + }, + { + title: '操作', key: 'actions', width: 190, + render: (row) => h(NSpace, { size: 8 }, { + default: () => [ + h(NButton, { size: 'small', secondary: true, type: Number(row.is_active) === 1 ? 'warning' : 'success', onClick: () => handleToggleRule(row) }, { default: () => Number(row.is_active) === 1 ? '停用' : '启用' }), + h(NButton, { size: 'small', secondary: true, type: 'error', onClick: () => handleDeleteRule(row) }, { default: () => '删除' }), + ], + }), + }, + ] + + return { + loadingRules, + creatingRule, + showCreateRuleModal, + filters, + createForm, + filteredRules, + ruleColumns, + loadRules, + submitCreateRule, + resetFilters, + } +} diff --git a/frontend/src/composables/useSettings.js b/frontend/src/composables/useSettings.js new file mode 100644 index 0000000..677e8ce --- /dev/null +++ b/frontend/src/composables/useSettings.js @@ -0,0 +1,44 @@ +import { reactive } from 'vue' +import { getSettings, saveSettings as saveSettingsApi } from '../api/settings' + +export function useSettings(message) { + const settings = reactive({ + auto_reply_enabled: false, + listener_enabled: false, + listener_runtime_status: 'stopped', + full_auto_reply_enabled: false, + reply_fallback_mode: 'ai', + }) + + async function loadSettings(applyBotStatus) { + try { + const data = await getSettings() + if (!data.success) return + settings.auto_reply_enabled = !!data.auto_reply_enabled + settings.full_auto_reply_enabled = !!data.full_auto_reply_enabled + settings.reply_fallback_mode = data.reply_fallback_mode || 'ai' + applyBotStatus({ status: data.listener_runtime_status || 'stopped' }, data.listener_enabled) + } catch (error) { + message.error(`加载设置失败: ${error}`) + } + } + + async function saveSettings(payload, applyBotStatus) { + try { + const data = await saveSettingsApi(payload) + if (!data.success) { + message.error(data.message || '保存失败') + return + } + await loadSettings(applyBotStatus) + } catch (error) { + message.error(`保存失败: ${error}`) + } + } + + return { + settings, + loadSettings, + saveSettings, + } +} diff --git a/frontend/src/composables/useWindowBridge.js b/frontend/src/composables/useWindowBridge.js new file mode 100644 index 0000000..9022454 --- /dev/null +++ b/frontend/src/composables/useWindowBridge.js @@ -0,0 +1,94 @@ +import { ref } from 'vue' + +let tauriWindow = null +let tauriCore = null + +async function ensureTauriModules() { + if (tauriWindow && tauriCore) return true + if (!window.__TAURI_INTERNALS__) return false + try { + const [{ getCurrentWindow }, { invoke }] = await Promise.all([ + import('@tauri-apps/api/window'), + import('@tauri-apps/api/core'), + ]) + tauriWindow = getCurrentWindow() + tauriCore = { invoke } + return true + } catch { + return false + } +} + +export function useWindowBridge() { + const windowBridge = ref(null) + const bridgeMode = ref('browser') + + async function initWindowBridge() { + if (window.qt && window.QWebChannel) { + bridgeMode.value = 'qt' + new window.QWebChannel(window.qt.webChannelTransport, (channel) => { + windowBridge.value = channel.objects.windowBridge || null + }) + return + } + if (await ensureTauriModules()) { + bridgeMode.value = 'tauri' + return + } + bridgeMode.value = 'browser' + } + + async function invoke(methodName) { + const bridge = windowBridge.value + if (bridge && typeof bridge[methodName] === 'function') { + bridge[methodName]() + return + } + if (!(await ensureTauriModules())) return + if (methodName === 'start_move') { + await tauriWindow.startDragging() + return + } + if (methodName === 'minimize') { + await tauriWindow.minimize() + return + } + if (methodName === 'maximize_or_restore') { + const maximized = await tauriWindow.isMaximized() + if (maximized) { + await tauriWindow.unmaximize() + } else { + await tauriWindow.maximize() + } + return + } + if (methodName === 'close_window') { + await tauriWindow.close() + return + } + if (methodName === 'open_devtools') { + try { + await tauriCore.invoke('open_devtools') + } catch { + } + return + } + if (methodName === 'restart_app') { + try { + await tauriCore.invoke('restart_backend') + } catch { + } + } + } + + return { + bridgeMode, + initWindowBridge, + startMove: () => invoke('start_move'), + minimizeWindow: () => invoke('minimize'), + maximizeOrRestore: () => invoke('maximize_or_restore'), + closeWindow: () => invoke('close_window'), + openDevtools: () => invoke('open_devtools'), + restartApp: () => invoke('restart_app'), + } +} diff --git a/frontend/src/constants/messageColumns.js b/frontend/src/constants/messageColumns.js new file mode 100644 index 0000000..775dc11 --- /dev/null +++ b/frontend/src/constants/messageColumns.js @@ -0,0 +1,10 @@ +import { formatDateTime } from '../utils/datetime' + +export const messageColumns = [ + { title: '时间', key: 'created_at', width: 180, render: (row) => formatDateTime(row.created_at) }, + { title: '微信用户', key: 'wx_nickname', width: 180 }, + { title: '方向', key: 'direction', width: 90, render: (row) => row.direction === 'out' ? '发送' : '接收' }, + { title: '内容', key: 'content', minWidth: 320 }, + { title: '气泡方向', key: 'ocr_bubble_side', width: 100 }, + { title: '置信度', key: 'ocr_confidence', width: 90 }, +] diff --git a/frontend/src/constants/options.js b/frontend/src/constants/options.js new file mode 100644 index 0000000..34f6cdf --- /dev/null +++ b/frontend/src/constants/options.js @@ -0,0 +1,21 @@ +export const fallbackModeOptions = [ + { label: 'AI兜底回复', value: 'ai' }, + { label: '不回复', value: 'none' }, +] + +export const matchTypeOptions = [ + { label: '包含', value: 'contain' }, + { label: '完全匹配', value: 'equal' }, +] + +export const matchTypeFilterOptions = [ + { label: '全部匹配方式', value: '' }, + { label: '包含', value: 'contain' }, + { label: '完全匹配', value: 'equal' }, +] + +export const ruleStatusOptions = [ + { label: '全部状态', value: '' }, + { label: '启用', value: 1 }, + { label: '暂停', value: 0 }, +] diff --git a/frontend/src/main.js b/frontend/src/main.js new file mode 100644 index 0000000..3ac6bb7 --- /dev/null +++ b/frontend/src/main.js @@ -0,0 +1,33 @@ +import { createApp } from 'vue' +import { createDiscreteApi } from 'naive-ui' +import App from './App.vue' +import './styles.css' + +function loadQtWebChannelScript() { + return new Promise((resolve, reject) => { + if (window.QWebChannel) { + resolve() + return + } + const script = document.createElement('script') + script.src = 'qrc:///qtwebchannel/qwebchannel.js' + script.onload = () => resolve() + script.onerror = reject + document.head.appendChild(script) + }) +} + +async function bootstrap() { + if (window.qt && !window.QWebChannel) { + try { + await loadQtWebChannelScript() + } catch (_) { + } + } + + const { message } = createDiscreteApi(['message']) + window.$message = message + createApp(App).mount('#app') +} + +bootstrap() diff --git a/frontend/src/styles.css b/frontend/src/styles.css new file mode 100644 index 0000000..8b1af62 --- /dev/null +++ b/frontend/src/styles.css @@ -0,0 +1,299 @@ +:root { + --bg: #f2f4f7; + --panel: #ffffff; + --line: #e5e7eb; + --text: #111827; + --muted: #6b7280; + --brand: #22c1c3; +} + +* { + box-sizing: border-box; +} + +html, +body, +#app { + height: 100%; +} + +body { + margin: 0; + background: linear-gradient(180deg, #f5f7fb 0%, #eef2f7 100%); + color: var(--text); + font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif; + overflow: hidden; +} + +button, +input, +select, +textarea { + font: inherit; +} + +.page-shell { + height: 100vh; + overflow: hidden; +} + +.content-root { + height: calc(100vh - 48px); + overflow: hidden; + display: flex; + flex-direction: column; +} + +.content-scroll { + flex: 1; + min-height: 0; + overflow: hidden; + display: flex; + flex-direction: column; +} + +.topbar { + height: 48px; + background: rgba(255, 255, 255, 0.92); + border-bottom: 1px solid var(--line); + backdrop-filter: blur(8px); + position: sticky; + top: 0; + z-index: 20; + user-select: none; +} + +.drag-region { + height: 100%; + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + cursor: default; +} + +.inner { + width: min(1320px, calc(100vw - 24px)); + margin: 0 auto; +} + +.window-actions { + display: flex; + align-items: center; + gap: 4px; +} + +.win-btn { + width: 32px; + height: 28px; + border-radius: 8px; + border: 1px solid #e7ecf2; + background: #fff; + color: #4b5563; + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 14px; + line-height: 1; + cursor: pointer; +} + +.win-btn:hover { + background: #f5f7fb; +} + +.win-btn.close:hover { + background: #fee2e2; + color: #991b1b; + border-color: #fecaca; +} + +.panel { + background: var(--panel); + border: 1px solid #edf0f4; + border-radius: 14px; + box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04); +} + +.hero { + background: linear-gradient(120deg, rgba(34, 193, 195, 0.15), rgba(124, 58, 237, 0.08)); + border: 1px solid #dff4f5; +} + +.tab-wrap { + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; + background: #fff; + border: 1px solid #e8ecf2; + border-radius: 12px; + padding: 8px 12px 0; + box-shadow: 0 6px 14px rgba(15, 23, 42, 0.03); + overflow: hidden; +} + +.app-tabs, +.app-tabs .n-tabs-nav-scroll-content, +.app-tabs .n-tabs-pane-wrapper, +.app-tabs .n-tab-pane, +.app-tab-pane { + min-height: 0; +} + +.app-tabs { + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; +} + +.app-tabs .n-tabs-nav { + flex: 0 0 auto; +} + +.app-tabs .n-tabs-pane-wrapper { + flex: 1; + min-height: 0; +} + +.app-tabs .n-tab-pane, +.app-tab-pane { + height: 100%; + display: flex; + flex-direction: column; +} + +.app-tab-pane > * { + flex: 1; + min-height: 0; +} + +.label-title { + font-weight: 600; + font-size: 14px; + color: #1f2937; +} + +.label-desc { + font-size: 12px; + color: #6b7280; + margin-top: 2px; +} + +.row-line { + border-bottom: 1px dashed #edf1f5; + padding: 14px 0; +} + +.row-line:last-child { + border-bottom: 0; +} + +.compact-card .n-card-header { + padding-bottom: 8px !important; +} + +.compact-card .n-card__content { + padding-top: 0 !important; +} + +.panel-view-shell { + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; + gap: 16px; +} + +.logs-view-shell { + flex: 1; + min-height: 0; + padding: 12px 0; +} + +.log-panel { + flex: 1; + min-height: 0; + height: 100%; + display: flex; + flex-direction: column; +} + +.log-panel .n-card__content { + flex: 1; + min-height: 0; + height: 100%; + display: flex; + flex-direction: column; +} + +.log-panel .n-card-header { + flex: 0 0 auto; +} + +.log-toolbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-bottom: 12px; + flex-wrap: wrap; +} + +.log-toolbar-right { + display: flex; + align-items: center; + gap: 12px; + min-width: 0; +} + +.log-path { + color: #6b7280; + font-size: 12px; + max-width: 520px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.log-stream-wrap { + height: clamp(320px, calc(100vh - 320px), 680px); + min-height: 320px; + max-height: 680px; + border: 1px solid #e6ebf2; + border-radius: 12px; + background: #0f172a; + overflow-y: auto; + overflow-x: hidden; +} + +.log-stream { + margin: 0; + padding: 14px 16px; + font-size: 12px; + line-height: 1.6; + white-space: pre-wrap; + word-break: break-word; + font-family: Consolas, "SFMono-Regular", Monaco, monospace; +} + +.log-line { + white-space: pre-wrap; +} + +.log-line--error { + color: #fca5a5; +} + +.log-line--warning { + color: #fde68a; +} + +.log-line--info { + color: #bfdbfe; +} + +.log-line--debug { + color: #cbd5e1; +} diff --git a/frontend/src/utils/datetime.js b/frontend/src/utils/datetime.js new file mode 100644 index 0000000..e2a13df --- /dev/null +++ b/frontend/src/utils/datetime.js @@ -0,0 +1,12 @@ +export function formatDateTime(value) { + if (!value) return '' + const d = new Date(value) + if (Number.isNaN(d.getTime())) return String(value) + const y = d.getFullYear() + const m = String(d.getMonth() + 1).padStart(2, '0') + const day = String(d.getDate()).padStart(2, '0') + const hh = String(d.getHours()).padStart(2, '0') + const mm = String(d.getMinutes()).padStart(2, '0') + const ss = String(d.getSeconds()).padStart(2, '0') + return `${y}-${m}-${day} ${hh}:${mm}:${ss}` +} diff --git a/frontend/src/views/LogsView.vue b/frontend/src/views/LogsView.vue new file mode 100644 index 0000000..f1c92bf --- /dev/null +++ b/frontend/src/views/LogsView.vue @@ -0,0 +1,228 @@ + + + diff --git a/frontend/src/views/MessagesView.vue b/frontend/src/views/MessagesView.vue new file mode 100644 index 0000000..cf589a5 --- /dev/null +++ b/frontend/src/views/MessagesView.vue @@ -0,0 +1,31 @@ + + + diff --git a/frontend/src/views/PanelView.vue b/frontend/src/views/PanelView.vue new file mode 100644 index 0000000..cb0bad8 --- /dev/null +++ b/frontend/src/views/PanelView.vue @@ -0,0 +1,115 @@ + + + diff --git a/frontend/src/views/RulesView.vue b/frontend/src/views/RulesView.vue new file mode 100644 index 0000000..3d1a91d --- /dev/null +++ b/frontend/src/views/RulesView.vue @@ -0,0 +1,76 @@ + + + diff --git a/frontend/vite.config.js b/frontend/vite.config.js new file mode 100644 index 0000000..bb747ed --- /dev/null +++ b/frontend/vite.config.js @@ -0,0 +1,17 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +export default defineConfig({ + plugins: [vue()], + server: { + host: 'localhost', + port: 1420, + proxy: { + '/api': 'http://127.0.0.1:5000', + }, + }, + build: { + outDir: 'dist', + emptyOutDir: true, + }, +}) diff --git a/legacy/.htaccess b/legacy/.htaccess new file mode 100644 index 0000000..e69de29 diff --git a/legacy/README_BOT.md b/legacy/README_BOT.md new file mode 100644 index 0000000..8e70f92 --- /dev/null +++ b/legacy/README_BOT.md @@ -0,0 +1,143 @@ +# 微信 AI 自动回复机器人 - 安装使用指南 + +## 📦 安装依赖 + +```bash +pip install wcferry requests +``` + +## 🚀 快速开始 + +### 1. 启动 PHP 后端服务 +确保 phpstudy 已启动,访问 http://127.0.0.1/shiliu_ai/admin.html 确认后端正常 + +### 2. 登录微信 +在电脑上打开微信并登录(必须是 Windows 微信客户端) + +### 3. 运行机器人 +```bash +python wechat_bot.py +``` + +## ✨ 功能特性 + +### 新版本 (wechat_bot.py) - 推荐使用 ✅ +- ✅ 基于 WeChatFerry 框架 +- ✅ 无需 OCR,100% 准确识别消息 +- ✅ 不需要固定窗口位置 +- ✅ 自动回复私聊消息 +- ✅ 可选开启群聊回复 +- ✅ 支持 DeepSeek AI 智能回复 +- ✅ 支持关键词规则匹配 +- ✅ 所有消息记录到数据库 + +### 旧版本 (wechat_auto.py) - 已保留 +- 基于 OCR 识别 +- 需要固定窗口位置 +- 识别准确率较低 +- 仅供参考学习 + +### 手动测试版 (wechat_manual.py) +- 手动输入消息测试 AI 回复 +- 用于调试和测试 + +## ⚙️ 配置说明 + +### 修改 wechat_bot.py 中的配置: + +```python +# PHP 后端接口地址 +BACKEND_URL = "http://127.0.0.1/shiliu_ai/api_receive_message.php" + +# 是否自动回复群聊(默认只回复私聊) +ENABLE_GROUP_REPLY = False # 改为 True 可开启群聊回复 +``` + +### 修改 config.php 配置 AI: + +```php +// 选择 AI 提供商:mock / openai / deepseek +define('AI_PROVIDER', 'deepseek'); + +// DeepSeek API 配置 +define('DEEPSEEK_API_KEY', '你的API密钥'); +define('DEEPSEEK_API_BASE', 'https://api.deepseek.com'); +define('DEEPSEEK_MODEL', 'deepseek-chat'); +``` + +## 📝 使用流程 + +1. **接收消息** → 机器人自动监听微信消息 +2. **规则匹配** → 先检查是否有关键词规则 +3. **AI 回复** → 没有规则则调用 DeepSeek 生成回复 +4. **自动发送** → 将回复发送给用户 +5. **记录保存** → 所有消息保存到数据库 + +## 🎯 管理后台 + +访问 http://127.0.0.1/shiliu_ai/admin.html 可以: +- 查看消息记录 +- 管理自动回复规则 +- 配置系统设置 + +## 🔧 常见问题 + +### Q: 提示 "WeChatFerry 初始化失败" +**A:** 确保: +1. 微信已经登录 +2. 已安装 wcferry: `pip install wcferry` +3. 使用的是 Windows 微信客户端 + +### Q: 机器人没有回复 +**A:** 检查: +1. PHP 后端是否正常运行 +2. 查看日志文件 `wechat_bot.log` +3. 确认 DeepSeek API Key 是否正确 + +### Q: 想要回复群聊消息 +**A:** 修改 `wechat_bot.py` 中的配置: +```python +ENABLE_GROUP_REPLY = True +``` + +### Q: 如何添加关键词规则 +**A:** 访问管理后台 admin.html,在"自动回复规则"中添加 + +## 📂 文件说明 + +``` +shiliu_ai/ +├── wechat_bot.py # 新版机器人(推荐使用)⭐ +├── wechat_auto.py # 旧版 OCR 机器人(已保留) +├── wechat_manual.py # 手动测试工具 +├── config.php # 配置文件 +├── ai_helper.php # AI 调用逻辑 +├── api_receive_message.php # 消息接收接口 +├── admin.html # 管理后台 +├── database.sql # 数据库结构 +└── wechat_bot.log # 运行日志 +``` + +## 🎉 开始使用 + +```bash +# 1. 安装依赖 +pip install wcferry requests + +# 2. 确保微信已登录 + +# 3. 启动机器人 +python wechat_bot.py + +# 4. 发送消息测试 +``` + +## 📞 技术支持 + +如有问题,请查看日志文件: +- `wechat_bot.log` - 机器人运行日志 +- `wechat_auto.log` - 旧版机器人日志(如果使用) + +--- + +**祝使用愉快!🎊** diff --git a/legacy/ai_helper.php b/legacy/ai_helper.php new file mode 100644 index 0000000..cd47ece --- /dev/null +++ b/legacy/ai_helper.php @@ -0,0 +1,310 @@ +query($sql); + $rules = $stmt->fetchAll(); + + $contentLower = mb_strtolower($content, 'UTF-8'); + error_log("=== 规则匹配开始 ==="); + error_log("用户消息原文: '{$content}'"); + error_log("转小写后: '{$contentLower}'"); + error_log("规则总数: " . count($rules)); + + foreach ($rules as $rule) { + $keyword = trim((string)$rule['keyword']); + if ($keyword === '') { + error_log("规则ID {$rule['id']}: 关键词为空,跳过"); + continue; + } + $kwLower = mb_strtolower($keyword, 'UTF-8'); + error_log("规则ID {$rule['id']}: 关键词='{$keyword}', 小写='{$kwLower}', 类型={$rule['match_type']}"); + + if ($rule['match_type'] === 'equal') { + if ($contentLower === $kwLower) { + error_log("✓ 完全匹配成功!返回规则ID {$rule['id']}"); + return $rule; + } else { + error_log("✗ 完全匹配失败: '{$contentLower}' !== '{$kwLower}'"); + } + } else { // contain + if (mb_strpos($contentLower, $kwLower, 0, 'UTF-8') !== false) { + error_log("✓ 包含匹配成功!返回规则ID {$rule['id']}"); + return $rule; + } else { + error_log("✗ 包含匹配失败"); + } + } + } + + error_log("未找到任何匹配规则"); + error_log("=== 规则匹配结束 ==="); + return null; +} + +/** + * 简单系统配置读取 / 写入 + */ +function get_setting(string $key, $default = null) +{ + $pdo = get_pdo(); + $stmt = $pdo->prepare("SELECT `value` FROM settings WHERE `key` = :k LIMIT 1"); + $stmt->execute([':k' => $key]); + $row = $stmt->fetch(); + if (!$row) { + return $default; + } + return $row['value']; +} + +function set_setting(string $key, string $value): void +{ + $pdo = get_pdo(); + $stmt = $pdo->prepare(" + INSERT INTO settings(`key`, `value`, updated_at) + VALUES(:k, :v, NOW()) + ON DUPLICATE KEY UPDATE `value` = VALUES(`value`), updated_at = NOW() + "); + $stmt->execute([':k' => $key, ':v' => $value]); +} + +/** + * 调用大模型 API(这里以 OpenAI 为例) + * 如你用国内模型,可在此处替换调用逻辑。 + */ +function call_ai(string $prompt, string $userId = ''): string +{ + error_log("=== 调用AI开始 ==="); + error_log("用户消息: '{$prompt}'"); + error_log("AI提供商: " . AI_PROVIDER); + + if (AI_PROVIDER === 'mock') { + return '【自动回复】你刚才说了:' . mb_substr($prompt, 0, 100, 'UTF-8'); + } + + // OpenAI 兼容接口 + if (AI_PROVIDER === 'openai') { + $url = rtrim(OPENAI_API_BASE, '/') . '/chat/completions'; + $headers = [ + 'Content-Type: application/json', + 'Authorization: ' . 'Bearer ' . OPENAI_API_KEY, + ]; + + $payload = [ + 'model' => OPENAI_MODEL, + 'messages' => [ + [ + 'role' => 'system', + 'content' => '你是一个专业的微信私域运营助手,用简洁自然的中文回复用户。', + ], + [ + 'role' => 'user', + 'content' => $prompt, + ], + ], + 'temperature' => 0.7, + 'user' => $userId ?: null, + ]; + + return do_llm_request($url, $headers, $payload); + } + + // DeepSeek(OpenAI 兼容风格) + if (AI_PROVIDER === 'deepseek') { + $url = rtrim(DEEPSEEK_API_BASE, '/') . '/chat/completions'; + error_log("请求URL: {$url}"); + $headers = [ + 'Content-Type: application/json', + 'Authorization: Bearer ' . DEEPSEEK_API_KEY, + ]; + + $payload = [ + 'model' => DEEPSEEK_MODEL, + 'messages' => [ + [ + 'role' => 'system', + 'content' => '你是一个简洁高效的微信助手。回复要求:1.一句话回答,不超过50字 2.不要啰嗦重复 3.直接回答问题,不要客套话 4.不要使用emoji表情', + ], + [ + 'role' => 'user', + 'content' => $prompt, + ], + ], + 'temperature' => 0.7, + 'max_tokens' => 100, // 限制回复长度 + 'user' => $userId ?: null, + ]; + + return do_llm_request($url, $headers, $payload); + } + + // Dify(对话型应用) + if (AI_PROVIDER === 'dify') { + $url = rtrim(DIFY_API_BASE, '/') . '/chat-messages'; + error_log("请求URL: {$url}"); + $headers = [ + 'Content-Type: application/json', + 'Authorization: Bearer ' . DIFY_API_KEY, + ]; + + $payload = [ + 'inputs' => (object)[], + 'query' => $prompt, + 'response_mode' => 'streaming', + 'user' => $userId ?: DIFY_USER, + 'conversation_id' => '', + ]; + + error_log("Dify payload: " . json_encode($payload, JSON_UNESCAPED_UNICODE)); + return do_dify_request($url, $headers, $payload); + } + + // 其他厂商可在此扩展 + return 'AI_PROVIDER 未配置正确,请检查 config.php。'; +} + +/** + * Dify 专用请求封装 + */ +function do_dify_request(string $url, array $headers, array $payload): string +{ + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload, JSON_UNESCAPED_UNICODE)); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 增加超时时间,支持streaming + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($ch, CURLOPT_BUFFERSIZE, 128); // 小缓冲区,支持流式读取 + curl_setopt($ch, CURLOPT_NOPROGRESS, false); // 允许进度回调 + + $response = curl_exec($ch); + if ($response === false) { + $err = curl_error($ch); + curl_close($ch); + error_log("cURL错误: {$err}"); + return '抱歉,Dify 服务暂时不可用,请稍后再试~(网络错误:' . $err . ')'; + } + $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + error_log("HTTP状态码: {$statusCode}"); + error_log("响应内容长度: " . strlen($response)); + error_log("响应内容: {$response}"); + + // 处理空响应 + if (empty($response)) { + error_log("Dify返回空响应"); + return '抱歉,Dify 服务返回空响应,请检查API配置。'; + } + + // 处理streaming模式的响应(SSE格式) + if (strpos($response, 'data:') !== false || strpos($response, 'event:') !== false) { + error_log("检测到streaming模式响应"); + $lines = explode("\n", $response); + $fullAnswer = ''; + + foreach ($lines as $line) { + $line = trim($line); + if (strpos($line, 'data:') === 0) { + $jsonStr = trim(substr($line, 5)); + if (empty($jsonStr) || $jsonStr === '[DONE]') { + continue; + } + + $data = json_decode($jsonStr, true); + if (json_last_error() === JSON_ERROR_NONE) { + // Dify streaming格式:{"event":"message","answer":"内容"} + if (isset($data['answer'])) { + $fullAnswer .= $data['answer']; + } + // 或者 {"event":"agent_message","answer":"内容"} + if (isset($data['event']) && $data['event'] === 'agent_message' && isset($data['answer'])) { + $fullAnswer .= $data['answer']; + } + } + } + } + + if (!empty($fullAnswer)) { + error_log("Dify回复(streaming): {$fullAnswer}"); + error_log("=== 调用AI结束 ==="); + return trim($fullAnswer); + } + } + + // 处理blocking模式的响应(JSON格式) + $data = json_decode($response, true); + if ($statusCode >= 400 || !is_array($data)) { + $msg = $data['message'] ?? '未知错误'; + error_log("Dify API错误: {$msg}"); + return '抱歉,Dify 服务请求失败,请稍后再试~(状态码 ' . $statusCode . ':' . $msg . ')'; + } + + // Dify 返回格式:{"answer": "回复内容", "conversation_id": "xxx"} + $content = $data['answer'] ?? ''; + if (!$content) { + error_log("Dify返回内容为空"); + error_log("完整响应: " . print_r($data, true)); + return '抱歉,Dify 暂时没有合理的回复。'; + } + error_log("Dify回复(blocking): {$content}"); + error_log("=== 调用AI结束 ==="); + return trim($content); +} + +/** + * 通用大模型 HTTP 请求封装 + */ +function do_llm_request(string $url, array $headers, array $payload): string +{ + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload, JSON_UNESCAPED_UNICODE)); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 增加超时时间,支持streaming + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($ch, CURLOPT_BUFFERSIZE, 128); // 小缓冲区,支持流式读取 + curl_setopt($ch, CURLOPT_NOPROGRESS, false); // 允许进度回调 + + $response = curl_exec($ch); + if ($response === false) { + $err = curl_error($ch); + curl_close($ch); + error_log("cURL错误: {$err}"); + return '抱歉,AI 服务暂时不可用,请稍后再试~(网络错误:' . $err . ')'; + } + $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + error_log("HTTP状态码: {$statusCode}"); + error_log("响应内容: {$response}"); + + $data = json_decode($response, true); + if ($statusCode >= 400 || !is_array($data)) { + $msg = $data['error']['message'] ?? '未知错误'; + error_log("API错误: {$msg}"); + return '抱歉,AI 服务请求失败,请稍后再试~(状态码 ' . $statusCode . ':' . $msg . ')'; + } + + $content = $data['choices'][0]['message']['content'] ?? ''; + if (!$content) { + error_log("AI返回内容为空"); + return '抱歉,AI 暂时没有合理的回复。'; + } + error_log("AI回复: {$content}"); + error_log("=== 调用AI结束 ==="); + return trim($content); +} diff --git a/legacy/ai_helper_backup.txt b/legacy/ai_helper_backup.txt new file mode 100644 index 0000000..c2f938f Binary files /dev/null and b/legacy/ai_helper_backup.txt differ diff --git a/legacy/api_receive_message.php b/legacy/api_receive_message.php new file mode 100644 index 0000000..a57e9b9 --- /dev/null +++ b/legacy/api_receive_message.php @@ -0,0 +1,97 @@ + 'Method not allowed'], 405); +} + +$raw = file_get_contents('php://input'); +$data = json_decode($raw, true); +if (!is_array($data)) { + $data = $_POST; // 兼容表单 +} + +$content = trim((string)($data['content'] ?? '')); +$wxUserId = trim((string)($data['wx_user_id'] ?? '')); +$wxNickname = trim((string)($data['wx_nickname'] ?? '')); +$isFriendRequest = (int)($data['is_friend_request'] ?? 0); + +if ($content === '' && !$isFriendRequest) { + json_response(['error' => 'content is empty'], 400); +} + +try { + $pdo = get_pdo(); + $pdo->beginTransaction(); + + // 记录收到的消息 + $stmt = $pdo->prepare(" + INSERT INTO messages (wx_user_id, wx_nickname, direction, content, is_friend_request, created_at) + VALUES (:uid, :nick, 'in', :content, :fr, NOW()) + "); + $stmt->execute([ + ':uid' => $wxUserId, + ':nick' => $wxNickname, + ':content' => $content, + ':fr' => $isFriendRequest, + ]); + $inMsgId = (int)$pdo->lastInsertId(); + + $autoOn = get_setting('auto_reply_enabled', '1') === '1'; + $replyText = ''; + $usedRuleId = null; + + if ($autoOn) { + // 先规则匹配 + $rule = find_rule_reply($content); + if ($rule) { + $replyText = (string)$rule['reply_text']; + $usedRuleId = (int)$rule['id']; + // 调试信息 + error_log("匹配到规则ID: {$usedRuleId}, 关键词: {$rule['keyword']}, 回复: {$replyText}"); + } else { + // 没有规则就走 AI + error_log("未匹配到规则,调用AI,用户消息: {$content}"); + $replyText = call_ai($content, $wxUserId); + error_log("AI返回: {$replyText}"); + } + } + + $shouldReply = $autoOn && $replyText !== ''; + $replyMsgId = null; + + if ($shouldReply) { + $stmt2 = $pdo->prepare(" + INSERT INTO messages (wx_user_id, wx_nickname, direction, content, is_ai_reply, rule_id, created_at) + VALUES (:uid, :nick, 'out', :content, :is_ai, :rule_id, NOW()) + "); + $stmt2->execute([ + ':uid' => $wxUserId, + ':nick' => $wxNickname, + ':content' => $replyText, + ':is_ai' => 1, + ':rule_id' => $usedRuleId, + ]); + $replyMsgId = (int)$pdo->lastInsertId(); + } + + $pdo->commit(); + + json_response([ + 'success' => true, + 'should_reply' => $shouldReply, + 'reply_text' => $replyText, + 'in_message_id' => $inMsgId, + 'reply_message_id' => $replyMsgId, + ]); +} catch (Throwable $e) { + if (isset($pdo) && $pdo->inTransaction()) { + $pdo->rollBack(); + } + json_response(['error' => 'server_error', 'message' => $e->getMessage()], 500); +} + + diff --git a/legacy/api_rules.php b/legacy/api_rules.php new file mode 100644 index 0000000..27997dc --- /dev/null +++ b/legacy/api_rules.php @@ -0,0 +1,99 @@ +query("SELECT * FROM auto_reply_rules ORDER BY id DESC"); + $rules = $stmt->fetchAll(); + json_response(['success' => true, 'data' => $rules]); + break; + + case 'create': + $keyword = trim((string)($_POST['keyword'] ?? '')); + $matchType = $_POST['match_type'] ?? 'contain'; + $replyText = trim((string)($_POST['reply_text'] ?? '')); + $isActive = (int)($_POST['is_active'] ?? 1); + + if ($keyword === '' || $replyText === '') { + json_response(['success' => false, 'message' => '关键词和回复内容不能为空']); + } + + if (!in_array($matchType, ['contain', 'equal'], true)) { + $matchType = 'contain'; + } + + $stmt = $pdo->prepare(" + INSERT INTO auto_reply_rules(keyword, match_type, reply_text, is_active, created_at, updated_at) + VALUES(:kw, :mt, :rt, :act, NOW(), NOW()) + "); + $stmt->execute([ + ':kw' => $keyword, + ':mt' => $matchType, + ':rt' => $replyText, + ':act' => $isActive, + ]); + json_response(['success' => true]); + break; + + case 'toggle': + $id = (int)($_POST['id'] ?? 0); + $isActive = (int)($_POST['is_active'] ?? 0); + if ($id <= 0) { + json_response(['success' => false, 'message' => '参数错误']); + } + $stmt = $pdo->prepare("UPDATE auto_reply_rules SET is_active = :act, updated_at = NOW() WHERE id = :id"); + $stmt->execute([':act' => $isActive, ':id' => $id]); + json_response(['success' => true]); + break; + + case 'delete': + $id = (int)($_POST['id'] ?? 0); + if ($id <= 0) { + json_response(['success' => false, 'message' => '参数错误']); + } + $stmt = $pdo->prepare("DELETE FROM auto_reply_rules WHERE id = :id"); + $stmt->execute([':id' => $id]); + json_response(['success' => true]); + break; + + case 'settings_get': + $autoOn = get_setting('auto_reply_enabled', '1'); + json_response(['success' => true, 'auto_reply_enabled' => $autoOn === '1']); + break; + + case 'settings_set': + $autoOn = ($_POST['auto_reply_enabled'] ?? '1') === '1' ? '1' : '0'; + set_setting('auto_reply_enabled', $autoOn); + json_response(['success' => true]); + break; + + case 'messages_recent': + $limit = max(1, min(100, (int)($_GET['limit'] ?? 50))); + $stmt = $pdo->prepare(" + SELECT * FROM messages + ORDER BY id DESC + LIMIT :lim + "); + $stmt->bindValue(':lim', $limit, PDO::PARAM_INT); + $stmt->execute(); + $rows = $stmt->fetchAll(); + json_response(['success' => true, 'data' => $rows]); + break; + + default: + json_response(['success' => false, 'message' => '未知操作']); + } +} catch (Throwable $e) { + json_response(['success' => false, 'message' => $e->getMessage()]); +} + + diff --git a/legacy/config.php b/legacy/config.php new file mode 100644 index 0000000..0569e29 --- /dev/null +++ b/legacy/config.php @@ -0,0 +1,44 @@ + PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false, + ]; + + $pdo = new PDO($dsn, DB_USER, DB_PASS, $options); + return $pdo; +} + + diff --git a/legacy/install_ocr.bat b/legacy/install_ocr.bat new file mode 100644 index 0000000..18cb19b --- /dev/null +++ b/legacy/install_ocr.bat @@ -0,0 +1,33 @@ +@echo off +chcp 65001 +echo ======================================== +echo 安装OCR微信机器人依赖 +echo ======================================== +echo. + +echo [1/5] 安装基础依赖... +pip install pillow pyautogui pyperclip opencv-python numpy requests -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [2/5] 安装PaddleOCR(推荐,准确率最高)... +pip install paddlepaddle paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [3/5] 备用:安装EasyOCR... +pip install easyocr -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [4/5] 安装键盘控制库... +pip install keyboard -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo ======================================== +echo 安装完成! +echo ======================================== +echo. +echo 使用方法: +echo 1. 打开微信并登录 +echo 2. 打开要自动回复的聊天窗口 +echo 3. 运行: python wechat_bot_fixed.py +echo. +pause diff --git a/legacy/install_wechat_bot.bat b/legacy/install_wechat_bot.bat new file mode 100644 index 0000000..9584abf --- /dev/null +++ b/legacy/install_wechat_bot.bat @@ -0,0 +1,37 @@ +@echo off +chcp 65001 +echo ======================================== +echo 安装微信自动回复依赖 +echo ======================================== +echo. + +echo [1/3] 安装UI自动化库(推荐)... +pip install uiautomation pyperclip requests -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [2/3] 安装OCR版本依赖(备用)... +pip install opencv-python numpy pillow pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo [3/3] 安装PaddleOCR(可选)... +pip install paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple + +echo. +echo ======================================== +echo 安装完成! +echo ======================================== +echo. +echo 使用方法: +echo. +echo 方案1:UI自动化版(推荐) +echo - 无需OCR,直接读取微信UI +echo - 不受窗口位置影响 +echo - 识别准确率100%% +echo 运行: python wechat_ui_bot.py +echo. +echo 方案2:OCR识别版(备用) +echo - 使用图像识别 +echo - 需要固定窗口位置 +echo 运行: python wechat_auto.py +echo. +pause diff --git a/legacy/nginx.htaccess b/legacy/nginx.htaccess new file mode 100644 index 0000000..cc2badf --- /dev/null +++ b/legacy/nginx.htaccess @@ -0,0 +1,6 @@ +location / { + if (!-e $request_filename) { + rewrite ^(.*)$ /index.php?s=$1 last; + break; + } +} \ No newline at end of file diff --git a/legacy/run_all.py b/legacy/run_all.py new file mode 100644 index 0000000..34933fc --- /dev/null +++ b/legacy/run_all.py @@ -0,0 +1,31 @@ +import os +import time +import threading +import webbrowser + +import py_backend +from wechat_multi_chat_bot import WechatMultiChatBot + +HOST = os.getenv("APP_HOST", "127.0.0.1") +PORT = int(os.getenv("APP_PORT", "5000")) +OPEN_BROWSER = os.getenv("OPEN_BROWSER", "1") == "1" + + +def run_backend(): + py_backend.start_backend(host=HOST, port=PORT) + + +def run_bot(): + bot = WechatMultiChatBot() + bot.run_forever() + + +if __name__ == "__main__": + backend_thread = threading.Thread(target=run_backend, daemon=True) + backend_thread.start() + + time.sleep(1.5) + if OPEN_BROWSER: + webbrowser.open(f"http://{HOST}:{PORT}/admin.html") + + run_bot() diff --git a/legacy/test_dify.php b/legacy/test_dify.php new file mode 100644 index 0000000..7ef87fd --- /dev/null +++ b/legacy/test_dify.php @@ -0,0 +1,57 @@ + (object)[], // 空对象 + 'query' => '你好', + 'response_mode' => 'blocking', + 'user' => DIFY_USER, +]; + +echo "请求数据:\n"; +echo json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n"; + +$ch = curl_init($url); +curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); +curl_setopt($ch, CURLOPT_POST, true); +curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload, JSON_UNESCAPED_UNICODE)); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); +curl_setopt($ch, CURLOPT_TIMEOUT, 30); +curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); +curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + +echo "发送请求...\n"; +$response = curl_exec($ch); +$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); +curl_close($ch); + +echo "HTTP状态码: {$statusCode}\n"; +echo "响应内容:\n"; +echo $response . "\n\n"; + +if ($statusCode == 200) { + $data = json_decode($response, true); + if (isset($data['answer'])) { + echo "✓ 成功!AI回复: " . $data['answer'] . "\n"; + } else { + echo "✗ 响应格式错误\n"; + } +} else { + echo "✗ 请求失败\n"; +} diff --git a/legacy/test_dify_v2.php b/legacy/test_dify_v2.php new file mode 100644 index 0000000..8ae0d6e --- /dev/null +++ b/legacy/test_dify_v2.php @@ -0,0 +1,81 @@ + (object)[], // 空对象 + 'query' => '你好', + 'response_mode' => 'blocking', + 'user' => DIFY_USER, +]; + +echo "请求数据:\n"; +echo json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n\n"; + +$ch = curl_init($url); +curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); +curl_setopt($ch, CURLOPT_POST, true); +curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload, JSON_UNESCAPED_UNICODE)); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); +curl_setopt($ch, CURLOPT_TIMEOUT, 30); +curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); +curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); +curl_setopt($ch, CURLOPT_VERBOSE, true); // 开启详细输出 + +echo "发送请求...\n"; +$response = curl_exec($ch); +$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); +$error = curl_error($ch); +curl_close($ch); + +echo "HTTP状态码: {$statusCode}\n"; +echo "响应内容长度: " . strlen($response) . " 字节\n"; + +if ($error) { + echo "cURL错误: {$error}\n"; +} + +echo "\n响应内容:\n"; +if (empty($response)) { + echo "(空响应)\n\n"; +} else { + echo $response . "\n\n"; +} + +if ($statusCode == 200) { + if (empty($response)) { + echo "✗ 响应为空\n\n"; + echo "可能的原因:\n"; + echo "1. Dify应用未发布或已停用\n"; + echo "2. API Key不正确\n"; + echo "3. response_mode='blocking' 不支持(试试改成 'streaming')\n"; + echo "4. Dify服务器问题\n"; + } else { + $data = json_decode($response, true); + if (json_last_error() !== JSON_ERROR_NONE) { + echo "✗ JSON解析失败: " . json_last_error_msg() . "\n"; + } elseif (isset($data['answer'])) { + echo "✓ 成功!AI回复: " . $data['answer'] . "\n"; + } else { + echo "✗ 响应格式错误\n"; + echo "JSON内容: " . print_r($data, true) . "\n"; + } + } +} else { + echo "✗ 请求失败(HTTP {$statusCode})\n"; +} diff --git a/legacy/wechat_bot_optimized.py b/legacy/wechat_bot_optimized.py new file mode 100644 index 0000000..fcc1f4e --- /dev/null +++ b/legacy/wechat_bot_optimized.py @@ -0,0 +1,486 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +微信自动回复机器人 - 优化版 +整合开源项目优点: +1. 快速红点检测(numpy矩阵运算,比逐像素快100倍) +2. 智能区域过滤(只检测特定X坐标范围) +3. 性能统计(详细的耗时分析) +""" + +import os +import time +import hashlib +import logging +import base64 +from datetime import datetime +from io import BytesIO +import cv2 +import numpy as np + +import requests +import pyperclip +import pyautogui +from PIL import ImageGrab +import uiautomation as auto + +# ========== 配置 ========== + +BAIDU_API_KEY = "ElIQN30iAqpEGi9zv0VlrtQX" +BAIDU_SECRET_KEY = "7wrO2wDTx7FehuelgG0NCBDFOklnqSz0" +BACKEND_URL = "http://127.0.0.1/shiliu_ai/api_receive_message.php" +LOOP_INTERVAL = 3 + +# 红点检测配置(借鉴开源项目的精确检测) +RED_DOT_CONFIG = { + 'target_color_bgr': np.array([81, 81, 255]), # 微信红点BGR颜色 + 'color_tolerance': 10, # 颜色容差 + 'x_range': (60, 200), # 检测区域X坐标范围 +} + +NO_REPLY_KEYWORDS = [ + "谢谢", "好的", "嗯", "哦", "ok", "收到", + "[图片]", "[语音]", "[视频]", "[文件]" +] + +# ========== 日志 ========== + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + handlers=[ + logging.FileHandler("wechat_bot_optimized.log", encoding="utf-8"), + logging.StreamHandler() + ], +) +logger = logging.getLogger(__name__) + +# ========== OCR类 ========== + +class BaiduOCR: + """百度OCR识别""" + + def __init__(self): + self.access_token = self._get_access_token() + logger.info("✓ 百度OCR初始化成功") + + def _get_access_token(self): + url = "https://aip.baidubce.com/oauth/2.0/token" + params = { + "grant_type": "client_credentials", + "client_id": BAIDU_API_KEY, + "client_secret": BAIDU_SECRET_KEY + } + response = requests.post(url, params=params) + return response.json().get("access_token") + + def recognize(self, image_bytes): + url = f"https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={self.access_token}" + + payload = { + 'image': base64.b64encode(image_bytes).decode('utf-8'), + 'detect_direction': 'false', + 'paragraph': 'false', + 'probability': 'false' + } + + headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + 'Accept': 'application/json' + } + + response = requests.post(url, headers=headers, data=payload) + result = response.json() + + if 'words_result' in result: + return [item['words'] for item in result['words_result']] + return [] + +# ========== 微信机器人类(优化版)========== + +class WechatBotOptimized: + """微信自动回复机器人 - 优化版""" + + def __init__(self): + self.ocr = BaiduOCR() + self.processed_messages = {} + self.running = False + self.performance_stats = { + 'red_dot_detect': [], + 'ocr_recognize': [], + 'total_process': [] + } + + def get_window_rect(self): + """获取微信窗口位置""" + try: + wechat_window = auto.WindowControl(searchDepth=1, Name="微信") + if wechat_window.Exists(0, 0): + rect = wechat_window.BoundingRectangle + return { + 'left': rect.left, + 'top': rect.top, + 'right': rect.right, + 'bottom': rect.bottom, + 'width': rect.right - rect.left, + 'height': rect.bottom - rect.top + } + except Exception as e: + logger.error(f"获取窗口失败: {e}") + return None + + def get_contact_list_rect(self, window_rect): + """获取联系人列表区域""" + left = window_rect['left'] + 10 + top = window_rect['top'] + 50 + right = window_rect['left'] + int(window_rect['width'] * 0.25) - 10 + bottom = window_rect['bottom'] - 50 + + return { + 'left': left, + 'top': top, + 'right': right, + 'bottom': bottom + } + + def detect_red_dots_fast(self, window_rect): + """ + 快速红点检测(借鉴开源项目) + 使用numpy矩阵运算,比逐像素遍历快100倍 + """ + start_time = time.time() + contact_rect = self.get_contact_list_rect(window_rect) + + try: + # 截图 + screenshot = ImageGrab.grab(bbox=( + contact_rect['left'], contact_rect['top'], + contact_rect['right'], contact_rect['bottom'] + )) + + # 转换为numpy数组(BGR格式) + img_np = np.array(screenshot) + img_bgr = cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR) + + # 获取配置 + target_color = RED_DOT_CONFIG['target_color_bgr'] + tolerance = RED_DOT_CONFIG['color_tolerance'] + x_range = RED_DOT_CONFIG['x_range'] + + # 生成坐标网格(性能优化关键!) + height, width = img_bgr.shape[:2] + x_coords, y_coords = np.meshgrid( + np.arange(width), + np.arange(height) + ) + + # 颜色匹配(矩阵运算,比循环快100倍) + lower_bound = target_color - tolerance + upper_bound = target_color + tolerance + color_mask = np.all((lower_bound <= img_bgr) & (img_bgr <= upper_bound), axis=-1) + + # 区域过滤(只检测特定X坐标范围) + region_mask = (x_coords >= x_range[0]) & (x_coords <= x_range[1]) + + # 获取候选坐标 + matched_points = np.column_stack(( + x_coords[color_mask & region_mask], + y_coords[color_mask & region_mask] + )) + + if matched_points.size == 0: + return [] + + # 按Y坐标分组(同一联系人的多个红点合并) + red_dots = [] + used = set() + + for i, point in enumerate(matched_points): + if i in used: + continue + + # 找到Y坐标相近的点 + group = [point] + for j, other in enumerate(matched_points): + if j != i and j not in used: + if abs(point[1] - other[1]) < 50: + group.append(other) + used.add(j) + + # 计算平均位置 + avg_x = int(np.mean([p[0] for p in group])) + avg_y = int(np.mean([p[1] for p in group])) + + red_dots.append({ + 'x': contact_rect['left'] + avg_x, + 'y': contact_rect['top'] + avg_y + }) + used.add(i) + + # 记录性能 + elapsed = time.time() - start_time + self.performance_stats['red_dot_detect'].append(elapsed) + + return red_dots + + except Exception as e: + logger.error(f"红点检测失败: {e}") + return [] + + def click_contact_by_red_dot(self, red_dot, window_rect): + """点击联系人""" + contact_rect = self.get_contact_list_rect(window_rect) + + click_x = (contact_rect['left'] + contact_rect['right']) // 2 + click_y = red_dot['y'] + + pyautogui.click(click_x, click_y) + time.sleep(2.5) + + logger.info(f"点击联系人位置: ({click_x}, {click_y})") + + def get_latest_message_area(self, window_rect): + """获取最新消息区域""" + chat_left = window_rect['left'] + int(window_rect['width'] * 0.30) + chat_right = window_rect['right'] - 20 + chat_top = window_rect['top'] + int(window_rect['height'] * 0.15) + chat_bottom = window_rect['bottom'] - int(window_rect['height'] * 0.20) + + return { + 'left': chat_left, + 'top': max(chat_bottom - 300, chat_top), + 'right': chat_right, + 'bottom': chat_bottom + } + + def process_current_chat(self, window_rect, contact_key): + """处理当前聊天""" + start_time = time.time() + msg_rect = self.get_latest_message_area(window_rect) + + try: + screenshot = ImageGrab.grab(bbox=( + msg_rect['left'], msg_rect['top'], + msg_rect['right'], msg_rect['bottom'] + )) + + # OCR识别 + ocr_start = time.time() + img_byte_arr = BytesIO() + screenshot.save(img_byte_arr, format='PNG') + img_bytes = img_byte_arr.getvalue() + + lines = self.ocr.recognize(img_bytes) + ocr_elapsed = time.time() - ocr_start + self.performance_stats['ocr_recognize'].append(ocr_elapsed) + + if not lines: + return False + + # 过滤消息(严格过滤) + import re + valid_lines = [] + for line in lines: + if len(line) < 3: + continue + if re.match(r'^\d{1,2}:\d{2}$', line): + continue + if any(char in line for char in ['©', 'ò', 'v0', 'V0']): + continue + valid_lines.append(line) + + if not valid_lines: + return False + + latest = valid_lines[-1] + + print(f" [识别] {latest}") + + # 判断是否需要回复 + if not self.should_reply(latest): + print(f" [跳过] 不需要回复") + return False + + if not self.is_new_message(latest, contact_key): + print(f" [跳过] 已处理") + return False + + print(f" [新消息] {latest}") + + # 获取AI回复 + reply = self.get_ai_reply(latest) + if reply: + print(f" [AI回复] {reply}") + self.send_message(reply, window_rect) + + # 记录性能 + total_elapsed = time.time() - start_time + self.performance_stats['total_process'].append(total_elapsed) + + return True + + return False + + except Exception as e: + logger.error(f"处理聊天失败: {e}") + return False + + def should_reply(self, message): + """判断是否需要回复""" + if not message or len(message) < 2: + return False + + for keyword in NO_REPLY_KEYWORDS: + if keyword in message: + return False + + return True + + def is_new_message(self, message, contact_key): + """判断是否为新消息""" + msg_hash = hashlib.md5(message.encode()).hexdigest() + + if contact_key in self.processed_messages: + if msg_hash in self.processed_messages[contact_key]: + return False + else: + self.processed_messages[contact_key] = set() + + self.processed_messages[contact_key].add(msg_hash) + return True + + def get_ai_reply(self, message): + """获取AI回复""" + try: + response = requests.post( + BACKEND_URL, + json={'message': message}, + timeout=10 + ) + + if response.status_code == 200: + data = response.json() + return data.get('reply', '') + except Exception as e: + logger.error(f"AI回复失败: {e}") + + return None + + def send_message(self, text, window_rect): + """发送消息""" + try: + original_clipboard = pyperclip.paste() + + pyperclip.copy(text) + time.sleep(0.1) + + pyautogui.hotkey('ctrl', 'v') + time.sleep(0.1) + + pyautogui.press('enter') + time.sleep(0.3) + + pyperclip.copy(original_clipboard) + + print(f"✓ 已发送") + + except Exception as e: + logger.error(f"发送消息失败: {e}") + + def print_performance_stats(self): + """打印性能统计""" + if not self.performance_stats['red_dot_detect']: + return + + print("\n" + "="*70) + print("性能统计") + print("="*70) + + avg_red_dot = np.mean(self.performance_stats['red_dot_detect']) * 1000 + avg_ocr = np.mean(self.performance_stats['ocr_recognize']) * 1000 if self.performance_stats['ocr_recognize'] else 0 + avg_total = np.mean(self.performance_stats['total_process']) * 1000 if self.performance_stats['total_process'] else 0 + + print(f"红点检测平均耗时: {avg_red_dot:.1f}ms") + print(f"OCR识别平均耗时: {avg_ocr:.1f}ms") + print(f"总处理平均耗时: {avg_total:.1f}ms") + print("="*70 + "\n") + + def run_forever(self): + """启动监听""" + print("=" * 70) + print("微信自动回复(优化版)") + print("=" * 70) + print("\n优化特性:") + print(" ✓ 快速红点检测(numpy矩阵运算,比逐像素快100倍)") + print(" ✓ 智能区域过滤(只检测特定X坐标范围)") + print(" ✓ 性能统计(详细的耗时分析)") + print("=" * 70) + print("\n监听中... 按 Ctrl+C 停止\n") + + self.running = True + round_count = 0 + + # 初始化窗口 + logger.info("正在查找微信窗口...") + window_rect = self.get_window_rect() + if not window_rect: + logger.error("未找到微信窗口") + return + logger.info("✓ 找到微信窗口") + + while self.running: + try: + round_count += 1 + print(f"\n{'='*70}") + print(f"[第 {round_count} 轮检查] {datetime.now().strftime('%H:%M:%S')}") + print(f"{'='*70}") + + # 快速检测红点 + red_dots = self.detect_red_dots_fast(window_rect) + + if not red_dots: + print("未检测到新消息") + time.sleep(LOOP_INTERVAL) + continue + + print(f"检测到 {len(red_dots)} 个新消息") + + # 处理每个红点 + for i, red_dot in enumerate(red_dots, 1): + print(f"\n[处理第 {i}/{len(red_dots)} 个新消息]") + + self.click_contact_by_red_dot(red_dot, window_rect) + + contact_key = f"{red_dot['x']}_{red_dot['y']}" + self.process_current_chat(window_rect, contact_key) + + time.sleep(1) + + # 每10轮打印一次性能统计 + if round_count % 10 == 0: + self.print_performance_stats() + + print(f"\n本轮处理完成,等待 {LOOP_INTERVAL} 秒...\n") + time.sleep(LOOP_INTERVAL) + + except Exception as e: + logger.error(f"循环出错: {e}") + import traceback + traceback.print_exc() + time.sleep(3) + + def stop(self): + self.running = False + + +if __name__ == "__main__": + try: + bot = WechatBotOptimized() + bot.run_forever() + except KeyboardInterrupt: + bot.stop() + print("\n程序已停止") + except Exception as e: + print(f"\n错误: {e}") + import traceback + traceback.print_exc() diff --git a/main.py b/main.py new file mode 100644 index 0000000..b13deda --- /dev/null +++ b/main.py @@ -0,0 +1,62 @@ +import os +import subprocess +import sys +from pathlib import Path + +PROJECT_ROOT = Path(__file__).resolve().parent +VENV_ROOT = PROJECT_ROOT / ".venv" +VENV_DIR = VENV_ROOT / "Scripts" +VENV_PYTHON = VENV_DIR / "python.exe" +VENV_PYTHONW = VENV_DIR / "pythonw.exe" + + +def _resolve(path): + try: + return Path(path).resolve() + except Exception: + return None + + +def _running_in_project_venv(): + current_prefix = _resolve(sys.prefix) + if current_prefix == _resolve(VENV_ROOT): + return True + current_executable = _resolve(sys.executable) + allowed_targets = {_resolve(VENV_PYTHON), _resolve(VENV_PYTHONW)} + return current_executable in allowed_targets + + +def _pick_reexec_python(): + current_name = Path(sys.executable).name.lower() + if current_name == "pythonw.exe" and VENV_PYTHONW.exists(): + return VENV_PYTHONW + if VENV_PYTHON.exists(): + return VENV_PYTHON + if VENV_PYTHONW.exists(): + return VENV_PYTHONW + raise RuntimeError(f"未找到项目 .venv 解释器: {VENV_PYTHON}") + + +def ensure_project_venv(): + if _running_in_project_venv(): + return + if os.environ.get("OPENCLAW_PROJECT_VENV_REEXEC") == "1": + raise RuntimeError("重启后仍未进入项目 .venv,请检查 .venv 是否损坏或系统 Python 安装是否异常") + env = os.environ.copy() + env["OPENCLAW_PROJECT_VENV_REEXEC"] = "1" + target_python = _pick_reexec_python() + subprocess.Popen([str(target_python), str(PROJECT_ROOT / "main.py")], cwd=str(PROJECT_ROOT), env=env) + raise SystemExit(0) + + +ensure_project_venv() + +from PySide6.QtWidgets import QApplication + +from app.presentation.main_window import MainWindow + + +if __name__ == "__main__": + app = QApplication(sys.argv) + w = MainWindow() + sys.exit(app.exec()) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..17b5720 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,17 @@ +opencv-contrib-python==4.13.0.92 +numpy==2.2.6 +requests==2.32.5 +pyperclip==1.11.0 +pyautogui==0.9.54 +Pillow==12.2.0 +uiautomation==2.0.29 +keyboard==0.13.5 +Flask==3.1.2 +PySide6==6.10.0 +PySide6-Essentials==6.10.0 +PySide6-Addons==6.10.0 +PyMySQL==1.1.2 +python-dotenv==1.1.1 + +rapidocr-onnxruntime==1.4.4 +onnxruntime==1.23.2 diff --git a/vendor/paddleocr/.gitkeep b/vendor/paddleocr/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vendor/paddleocr/models/.gitkeep b/vendor/paddleocr/models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.jpg b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.jpg new file mode 100644 index 0000000..0312ba8 Binary files /dev/null and b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.jpg differ diff --git a/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.json b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.json new file mode 100644 index 0000000..3245f94 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/img_textline180_demo_res.json @@ -0,0 +1,13 @@ +{ + "input_path": "/root/.paddlex/predict_input/img_textline180_demo.jpg", + "page_index": null, + "class_ids": [ + 1 + ], + "scores": [ + 0.9926199913024902 + ], + "label_names": [ + "180_degree" + ] +} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.json b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.json new file mode 100644 index 0000000..7491116 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.json @@ -0,0 +1 @@ +{"base_code":{"magic":"pir","trainable":true,"version":1},"program":{"regions":[{"#":"region_0","blocks":[{"#":"block_0","args":[],"ops":[{"#":"p","A":[0,1,1,"linear_0.b_0_deepcopy_145"],"DA":[],"O":{"%":1,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_0.w_0_deepcopy_144"],"DA":[],"O":{"%":2,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1280,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_31.w_0_deepcopy_143"],"DA":[],"O":{"%":3,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1280,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_2_deepcopy_142"],"DA":[],"O":{"%":4,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_1_deepcopy_141"],"DA":[],"O":{"%":5,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.b_0_deepcopy_140"],"DA":[],"O":{"%":6,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_0_deepcopy_139"],"DA":[],"O":{"%":7,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_30.w_0_deepcopy_138"],"DA":[],"O":{"%":8,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_29.b_0_deepcopy_137"],"DA":[],"O":{"%":9,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_29.w_0_deepcopy_136"],"DA":[],"O":{"%":10,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,128,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_28.b_0_deepcopy_135"],"DA":[],"O":{"%":11,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_28.w_0_deepcopy_134"],"DA":[],"O":{"%":12,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_2_deepcopy_133"],"DA":[],"O":{"%":13,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_1_deepcopy_132"],"DA":[],"O":{"%":14,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.b_0_deepcopy_131"],"DA":[],"O":{"%":15,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_0_deepcopy_130"],"DA":[],"O":{"%":16,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_27.w_0_deepcopy_129"],"DA":[],"O":{"%":17,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_2_deepcopy_128"],"DA":[],"O":{"%":18,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_1_deepcopy_127"],"DA":[],"O":{"%":19,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.b_0_deepcopy_126"],"DA":[],"O":{"%":20,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_0_deepcopy_125"],"DA":[],"O":{"%":21,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_26.w_0_deepcopy_124"],"DA":[],"O":{"%":22,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_25.b_0_deepcopy_123"],"DA":[],"O":{"%":23,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_25.w_0_deepcopy_122"],"DA":[],"O":{"%":24,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_24.b_0_deepcopy_121"],"DA":[],"O":{"%":25,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_24.w_0_deepcopy_120"],"DA":[],"O":{"%":26,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_2_deepcopy_119"],"DA":[],"O":{"%":27,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_1_deepcopy_118"],"DA":[],"O":{"%":28,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.b_0_deepcopy_117"],"DA":[],"O":{"%":29,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_0_deepcopy_116"],"DA":[],"O":{"%":30,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_23.w_0_deepcopy_115"],"DA":[],"O":{"%":31,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_2_deepcopy_114"],"DA":[],"O":{"%":32,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_1_deepcopy_113"],"DA":[],"O":{"%":33,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.b_0_deepcopy_112"],"DA":[],"O":{"%":34,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_0_deepcopy_111"],"DA":[],"O":{"%":35,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_22.w_0_deepcopy_110"],"DA":[],"O":{"%":36,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_2_deepcopy_109"],"DA":[],"O":{"%":37,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_1_deepcopy_108"],"DA":[],"O":{"%":38,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.b_0_deepcopy_107"],"DA":[],"O":{"%":39,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_0_deepcopy_106"],"DA":[],"O":{"%":40,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_21.w_0_deepcopy_105"],"DA":[],"O":{"%":41,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_2_deepcopy_104"],"DA":[],"O":{"%":42,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_1_deepcopy_103"],"DA":[],"O":{"%":43,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.b_0_deepcopy_102"],"DA":[],"O":{"%":44,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_0_deepcopy_101"],"DA":[],"O":{"%":45,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_20.w_0_deepcopy_100"],"DA":[],"O":{"%":46,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_2_deepcopy_99"],"DA":[],"O":{"%":47,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_1_deepcopy_98"],"DA":[],"O":{"%":48,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.b_0_deepcopy_97"],"DA":[],"O":{"%":49,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_0_deepcopy_96"],"DA":[],"O":{"%":50,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_19.w_0_deepcopy_95"],"DA":[],"O":{"%":51,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_2_deepcopy_94"],"DA":[],"O":{"%":52,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_1_deepcopy_93"],"DA":[],"O":{"%":53,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.b_0_deepcopy_92"],"DA":[],"O":{"%":54,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_0_deepcopy_91"],"DA":[],"O":{"%":55,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_18.w_0_deepcopy_90"],"DA":[],"O":{"%":56,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_2_deepcopy_89"],"DA":[],"O":{"%":57,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_1_deepcopy_88"],"DA":[],"O":{"%":58,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.b_0_deepcopy_87"],"DA":[],"O":{"%":59,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_0_deepcopy_86"],"DA":[],"O":{"%":60,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_17.w_0_deepcopy_85"],"DA":[],"O":{"%":61,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_2_deepcopy_84"],"DA":[],"O":{"%":62,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_1_deepcopy_83"],"DA":[],"O":{"%":63,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.b_0_deepcopy_82"],"DA":[],"O":{"%":64,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_0_deepcopy_81"],"DA":[],"O":{"%":65,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_16.w_0_deepcopy_80"],"DA":[],"O":{"%":66,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_2_deepcopy_79"],"DA":[],"O":{"%":67,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_1_deepcopy_78"],"DA":[],"O":{"%":68,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.b_0_deepcopy_77"],"DA":[],"O":{"%":69,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_0_deepcopy_76"],"DA":[],"O":{"%":70,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_15.w_0_deepcopy_75"],"DA":[],"O":{"%":71,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_2_deepcopy_74"],"DA":[],"O":{"%":72,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_1_deepcopy_73"],"DA":[],"O":{"%":73,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.b_0_deepcopy_72"],"DA":[],"O":{"%":74,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_0_deepcopy_71"],"DA":[],"O":{"%":75,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_14.w_0_deepcopy_70"],"DA":[],"O":{"%":76,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_2_deepcopy_69"],"DA":[],"O":{"%":77,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_1_deepcopy_68"],"DA":[],"O":{"%":78,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.b_0_deepcopy_67"],"DA":[],"O":{"%":79,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_0_deepcopy_66"],"DA":[],"O":{"%":80,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_13.w_0_deepcopy_65"],"DA":[],"O":{"%":81,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_2_deepcopy_64"],"DA":[],"O":{"%":82,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_1_deepcopy_63"],"DA":[],"O":{"%":83,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.b_0_deepcopy_62"],"DA":[],"O":{"%":84,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_0_deepcopy_61"],"DA":[],"O":{"%":85,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_12.w_0_deepcopy_60"],"DA":[],"O":{"%":86,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,128,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_2_deepcopy_59"],"DA":[],"O":{"%":87,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_1_deepcopy_58"],"DA":[],"O":{"%":88,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.b_0_deepcopy_57"],"DA":[],"O":{"%":89,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_0_deepcopy_56"],"DA":[],"O":{"%":90,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_11.w_0_deepcopy_55"],"DA":[],"O":{"%":91,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_2_deepcopy_54"],"DA":[],"O":{"%":92,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_1_deepcopy_53"],"DA":[],"O":{"%":93,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.b_0_deepcopy_52"],"DA":[],"O":{"%":94,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_0_deepcopy_51"],"DA":[],"O":{"%":95,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_10.w_0_deepcopy_50"],"DA":[],"O":{"%":96,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,128,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_2_deepcopy_49"],"DA":[],"O":{"%":97,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_1_deepcopy_48"],"DA":[],"O":{"%":98,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.b_0_deepcopy_47"],"DA":[],"O":{"%":99,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_0_deepcopy_46"],"DA":[],"O":{"%":100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_9.w_0_deepcopy_45"],"DA":[],"O":{"%":101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_2_deepcopy_44"],"DA":[],"O":{"%":102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_1_deepcopy_43"],"DA":[],"O":{"%":103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.b_0_deepcopy_42"],"DA":[],"O":{"%":104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_0_deepcopy_41"],"DA":[],"O":{"%":105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_8.w_0_deepcopy_40"],"DA":[],"O":{"%":106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_2_deepcopy_39"],"DA":[],"O":{"%":107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_1_deepcopy_38"],"DA":[],"O":{"%":108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.b_0_deepcopy_37"],"DA":[],"O":{"%":109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_0_deepcopy_36"],"DA":[],"O":{"%":110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_7.w_0_deepcopy_35"],"DA":[],"O":{"%":111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_2_deepcopy_34"],"DA":[],"O":{"%":112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_1_deepcopy_33"],"DA":[],"O":{"%":113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.b_0_deepcopy_32"],"DA":[],"O":{"%":114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_0_deepcopy_31"],"DA":[],"O":{"%":115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_6.w_0_deepcopy_30"],"DA":[],"O":{"%":116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_2_deepcopy_29"],"DA":[],"O":{"%":117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_1_deepcopy_28"],"DA":[],"O":{"%":118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.b_0_deepcopy_27"],"DA":[],"O":{"%":119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_0_deepcopy_26"],"DA":[],"O":{"%":120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_5.w_0_deepcopy_25"],"DA":[],"O":{"%":121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_2_deepcopy_24"],"DA":[],"O":{"%":122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_1_deepcopy_23"],"DA":[],"O":{"%":123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.b_0_deepcopy_22"],"DA":[],"O":{"%":124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_0_deepcopy_21"],"DA":[],"O":{"%":125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_4.w_0_deepcopy_20"],"DA":[],"O":{"%":126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_2_deepcopy_19"],"DA":[],"O":{"%":127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_1_deepcopy_18"],"DA":[],"O":{"%":128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.b_0_deepcopy_17"],"DA":[],"O":{"%":129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_0_deepcopy_16"],"DA":[],"O":{"%":130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_3.w_0_deepcopy_15"],"DA":[],"O":{"%":131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_2_deepcopy_14"],"DA":[],"O":{"%":132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_1_deepcopy_13"],"DA":[],"O":{"%":133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.b_0_deepcopy_12"],"DA":[],"O":{"%":134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_0_deepcopy_11"],"DA":[],"O":{"%":135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_2.w_0_deepcopy_10"],"DA":[],"O":{"%":136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,16,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_2_deepcopy_9"],"DA":[],"O":{"%":137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_1_deepcopy_8"],"DA":[],"O":{"%":138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.b_0_deepcopy_7"],"DA":[],"O":{"%":139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_0_deepcopy_6"],"DA":[],"O":{"%":140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_1.w_0_deepcopy_5"],"DA":[],"O":{"%":141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_2_deepcopy_4"],"DA":[],"O":{"%":142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_1_deepcopy_3"],"DA":[],"O":{"%":143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.b_0_deepcopy_2"],"DA":[],"O":{"%":144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_0_deepcopy_1"],"DA":[],"O":{"%":145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_0.w_0_deepcopy_0"],"DA":[],"O":{"%":146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16,3,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"1.data","A":[{"AT":{"#":"0.a_str","D":"x"},"N":"name"},{"AT":{"#":"1.a_intarray","D":[-1,3,80,160]},"N":"shape"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[0,0,""]},"N":"place"}],"I":[],"O":[{"%":147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3,80,160],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":147},{"%":146}],"O":[{"%":148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":148},{"%":143},{"%":142},{"%":145},{"%":144}],"O":[{"%":149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}},{"%":150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":149}],"O":[{"%":155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":16},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":155},{"%":141}],"O":[{"%":156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":156},{"%":138},{"%":137},{"%":140},{"%":139}],"O":[{"%":157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}},{"%":158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":161,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":157}],"O":[{"%":163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":163},{"%":136}],"O":[{"%":164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":164},{"%":133},{"%":132},{"%":135},{"%":134}],"O":[{"%":165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,40,80],"NCHW",[],0]}},{"%":166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":165}],"O":[{"%":171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,40,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":32},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":171},{"%":131}],"O":[{"%":172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":172},{"%":128},{"%":127},{"%":130},{"%":129}],"O":[{"%":173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,20,80],"NCHW",[],0]}},{"%":174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":173}],"O":[{"%":179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":179},{"%":126}],"O":[{"%":180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":180},{"%":123},{"%":122},{"%":125},{"%":124}],"O":[{"%":181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}},{"%":182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":181}],"O":[{"%":187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":64},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":187},{"%":121}],"O":[{"%":188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":188},{"%":118},{"%":117},{"%":120},{"%":119}],"O":[{"%":189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}},{"%":190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":189}],"O":[{"%":195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":195},{"%":116}],"O":[{"%":196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":196},{"%":113},{"%":112},{"%":115},{"%":114}],"O":[{"%":197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}},{"%":198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_1/DepthwiseSeparable_1/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":197}],"O":[{"%":203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,20,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":64},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":203},{"%":111}],"O":[{"%":204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":204},{"%":108},{"%":107},{"%":110},{"%":109}],"O":[{"%":205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,10,80],"NCHW",[],0]}},{"%":206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":205}],"O":[{"%":211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":211},{"%":106}],"O":[{"%":212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":212},{"%":103},{"%":102},{"%":105},{"%":104}],"O":[{"%":213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}},{"%":214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":213}],"O":[{"%":219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":128},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":219},{"%":101}],"O":[{"%":220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":220},{"%":98},{"%":97},{"%":100},{"%":99}],"O":[{"%":221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}},{"%":222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":221}],"O":[{"%":227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":227},{"%":96}],"O":[{"%":228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":228},{"%":93},{"%":92},{"%":95},{"%":94}],"O":[{"%":229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}},{"%":230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_2/DepthwiseSeparable_1/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":229}],"O":[{"%":235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,10,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":128},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":235},{"%":91}],"O":[{"%":236,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":236},{"%":88},{"%":87},{"%":90},{"%":89}],"O":[{"%":237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,5,80],"NCHW",[],0]}},{"%":238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":237}],"O":[{"%":243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":243},{"%":86}],"O":[{"%":244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":244},{"%":83},{"%":82},{"%":85},{"%":84}],"O":[{"%":245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":249,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":245}],"O":[{"%":251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":251},{"%":81}],"O":[{"%":252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":252},{"%":78},{"%":77},{"%":80},{"%":79}],"O":[{"%":253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":253}],"O":[{"%":259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":259},{"%":76}],"O":[{"%":260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":260},{"%":73},{"%":72},{"%":75},{"%":74}],"O":[{"%":261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_1/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":261}],"O":[{"%":267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":267},{"%":71}],"O":[{"%":268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":268},{"%":68},{"%":67},{"%":70},{"%":69}],"O":[{"%":269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":274,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":269}],"O":[{"%":275,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":275},{"%":66}],"O":[{"%":276,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":276},{"%":63},{"%":62},{"%":65},{"%":64}],"O":[{"%":277,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":278,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":279,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":280,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":281,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":282,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_2/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":277}],"O":[{"%":283,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":283},{"%":61}],"O":[{"%":284,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":284},{"%":58},{"%":57},{"%":60},{"%":59}],"O":[{"%":285,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":286,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":287,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":288,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":289,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":290,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":285}],"O":[{"%":291,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":291},{"%":56}],"O":[{"%":292,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":292},{"%":53},{"%":52},{"%":55},{"%":54}],"O":[{"%":293,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":294,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":295,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":296,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":297,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":298,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_3/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":293}],"O":[{"%":299,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":299},{"%":51}],"O":[{"%":300,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":300},{"%":48},{"%":47},{"%":50},{"%":49}],"O":[{"%":301,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":302,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":303,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":304,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":305,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":306,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":301}],"O":[{"%":307,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":307},{"%":46}],"O":[{"%":308,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":308},{"%":43},{"%":42},{"%":45},{"%":44}],"O":[{"%":309,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":310,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":311,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":312,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":313,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":314,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_4/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":309}],"O":[{"%":315,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":315},{"%":41}],"O":[{"%":316,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":316},{"%":38},{"%":37},{"%":40},{"%":39}],"O":[{"%":317,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":318,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":319,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":320,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":321,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":322,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":317}],"O":[{"%":323,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":323},{"%":36}],"O":[{"%":324,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":324},{"%":33},{"%":32},{"%":35},{"%":34}],"O":[{"%":325,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}},{"%":326,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":327,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":328,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":329,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":330,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_3/DepthwiseSeparable_5/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":325}],"O":[{"%":331,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,5,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":256},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":331},{"%":31}],"O":[{"%":332,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":332},{"%":28},{"%":27},{"%":30},{"%":29}],"O":[{"%":333,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,3,80],"NCHW",[],0]}},{"%":334,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":335,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":336,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":337,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":338,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":333}],"O":[{"%":339,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":340,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":false},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"avg"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":true},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[{"%":339},{"%":340}],"O":[{"%":341,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":341},{"%":26}],"O":[{"%":342,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":343,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":25},{"%":343}],"O":[{"%":344,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":342},{"%":344}],"O":[{"%":345,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/ReLU/"},"N":"struct_name"}],"I":[{"%":345}],"O":[{"%":346,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":346},{"%":24}],"O":[{"%":347,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":348,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":23},{"%":348}],"O":[{"%":349,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":347},{"%":349}],"O":[{"%":350,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardsigmoid","A":[{"AT":{"#":"0.a_f32","D":0.16666670143604279},"N":"slope"},{"AT":{"#":"0.a_f32","D":0.5},"N":"offset"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/Hardsigmoid/"},"N":"struct_name"}],"I":[{"%":350}],"O":[{"%":351,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.multiply","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/SEModule/"},"N":"struct_name"}],"I":[{"%":339},{"%":351}],"O":[{"%":352,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":352},{"%":22}],"O":[{"%":353,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":353},{"%":19},{"%":18},{"%":21},{"%":20}],"O":[{"%":354,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}},{"%":355,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":356,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":357,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":358,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":359,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":354}],"O":[{"%":360,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":512},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":360},{"%":17}],"O":[{"%":361,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":361},{"%":14},{"%":13},{"%":16},{"%":15}],"O":[{"%":362,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}},{"%":363,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":364,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":365,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":366,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":367,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer/Hardswish/"},"N":"struct_name"}],"I":[{"%":362}],"O":[{"%":368,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":369,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":false},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"avg"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":true},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[{"%":368},{"%":369}],"O":[{"%":370,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":370},{"%":12}],"O":[{"%":371,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":372,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":11},{"%":372}],"O":[{"%":373,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,128,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":371},{"%":373}],"O":[{"%":374,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/ReLU/"},"N":"struct_name"}],"I":[{"%":374}],"O":[{"%":375,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":375},{"%":10}],"O":[{"%":376,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":377,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":9},{"%":377}],"O":[{"%":378,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":376},{"%":378}],"O":[{"%":379,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardsigmoid","A":[{"AT":{"#":"0.a_f32","D":0.16666670143604279},"N":"slope"},{"AT":{"#":"0.a_f32","D":0.5},"N":"offset"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/Hardsigmoid/"},"N":"struct_name"}],"I":[{"%":379}],"O":[{"%":380,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.multiply","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/SEModule/"},"N":"struct_name"}],"I":[{"%":368},{"%":380}],"O":[{"%":381,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":381},{"%":8}],"O":[{"%":382,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":382},{"%":5},{"%":4},{"%":7},{"%":6}],"O":[{"%":383,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}},{"%":384,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":385,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":386,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":387,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":388,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Sequential_4/DepthwiseSeparable_1/ConvBNLayer_1/Hardswish/"},"N":"struct_name"}],"I":[{"%":383}],"O":[{"%":389,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,3,80],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":390,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":false},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"avg"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":true},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPLCNet/AdaptiveAvgPool2D/"},"N":"struct_name"}],"I":[{"%":389},{"%":390}],"O":[{"%":391,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Conv2D/"},"N":"struct_name"}],"I":[{"%":391},{"%":3}],"O":[{"%":392,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1280,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.hardswish","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Hardswish/"},"N":"struct_name"}],"I":[{"%":392}],"O":[{"%":393,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1280,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.20000000298023224},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":394,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"downgrade_in_infer"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Dropout/"},"N":"struct_name"}],"I":[{"%":393},{"%":0},{"%":394}],"O":[{"%":395,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1280,1,1],"NCHW",[],0]}},{"%":396,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,1280,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.flatten","A":[{"AT":{"#":"0.a_i32","D":1},"N":"start_axis"},{"AT":{"#":"0.a_i32","D":3},"N":"stop_axis"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Flatten/"},"N":"struct_name"}],"I":[{"%":395}],"O":[{"%":397,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1280],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/PPLCNet/Linear/"},"N":"struct_name"}],"I":[{"%":397},{"%":2}],"O":[{"%":398,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPLCNet/Linear/"},"N":"struct_name"}],"I":[{"%":398},{"%":1}],"O":[{"%":399,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.softmax","A":[{"AT":{"#":"0.a_i32","D":-1},"N":"axis"},{"AT":{"#":"0.a_str","D":"/Softmax/"},"N":"struct_name"}],"I":[{"%":399}],"O":[{"%":400,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.fetch","A":[{"AT":{"#":"0.a_str","D":"fetch_name_0"},"N":"name"},{"AT":{"#":"0.a_i32","D":0},"N":"col"}],"I":[{"%":400}],"O":[{"%":401,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"persistable"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]}]}]}]}} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.yml b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.yml new file mode 100644 index 0000000..6197759 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-LCNet_x1_0_textline_ori/inference.yml @@ -0,0 +1,46 @@ +Global: + model_name: PP-LCNet_x1_0_textline_ori +Hpi: + backend_configs: + paddle_infer: + trt_dynamic_shapes: &id001 + x: + - - 1 + - 3 + - 80 + - 160 + - - 1 + - 3 + - 80 + - 160 + - - 8 + - 3 + - 80 + - 160 + tensorrt: + dynamic_shapes: *id001 +PreProcess: + transform_ops: + - ResizeImage: + size: + - 160 + - 80 + - NormalizeImage: + channel_num: 3 + mean: + - 0.485 + - 0.456 + - 0.406 + order: '' + scale: 0.00392156862745098 + std: + - 0.229 + - 0.224 + - 0.225 + - ToCHWImage: null +PostProcess: + Topk: + topk: 1 + label_list: + - 0_degree + - 180_degree diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/.msc b/vendor/paddleocr/official_models/PP-OCRv5_server_det/.msc new file mode 100644 index 0000000..8d9cbbe Binary files /dev/null and b/vendor/paddleocr/official_models/PP-OCRv5_server_det/.msc differ diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/.mv b/vendor/paddleocr/official_models/PP-OCRv5_server_det/.mv new file mode 100644 index 0000000..9427b67 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/.mv @@ -0,0 +1 @@ +Revision:master,CreatedAt:1751519009 \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/README.md b/vendor/paddleocr/official_models/PP-OCRv5_server_det/README.md new file mode 100644 index 0000000..e653b28 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/README.md @@ -0,0 +1,220 @@ +--- +license: apache-2.0 +library_name: PaddleOCR +language: +- en +- zh +pipeline_tag: image-to-text +tags: +- OCR +- PaddlePaddle +- PaddleOCR +--- + +# PP-OCRv5_server_det + +## Introduction + +PP-OCRv5_server_det is one of the PP-OCRv5_det series, the latest generation of text detection models developed by the PaddleOCR team. Designed for high-performance applications, it supports the detection of text in diverse scenarios—including handwriting, vertical, rotated, and curved text—across multiple languages such as Simplified Chinese, Traditional Chinese, English, and Japanese. Key features include robust handling of complex layouts, varying text sizes, and challenging backgrounds, making it suitable for practical applications like document analysis, license plate recognition, and scene text detection. The key accuracy metrics are as follow: + +| Handwritten Chinese | Handwritten English | Printed Chinese | Printed English | Traditional Chinese | Ancient Text | Japanese | General Scenario | Pinyin | Rotation | Distortion | Artistic Text | Average | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 0.803 | 0.841 | 0.945 | 0.917 | 0.815 | 0.676 | 0.772 | 0.797 | 0.671 | 0.8 | 0.876 | 0.673 | 0.827 | + +## Quick Start + +### Installation + +1. PaddlePaddle + +Please refer to the following commands to install PaddlePaddle using pip: + +```bash +# for CUDA11.8 +python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ + +# for CUDA12.6 +python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/ + +# for CPU +python -m pip install paddlepaddle==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/ +``` + +For details about PaddlePaddle installation, please refer to the [PaddlePaddle official website](https://www.paddlepaddle.org.cn/en/install/quick). + +2. PaddleOCR + +Install the latest version of the PaddleOCR inference package from PyPI: + +```bash +python -m pip install paddleocr +``` + +### Model Usage + +You can quickly experience the functionality with a single command: + +```bash +paddleocr text_detection \ + --model_name PP-OCRv5_server_det \ + -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/3ul2Rq4Sk5Cn-l69D695U.png +``` + +You can also integrate the model inference of the text detection module into your project. Before running the following code, please download the sample image to your local machine. + +```python +from paddleocr import TextDetection +model = TextDetection(model_name="PP-OCRv5_server_det") +output = model.predict(input="3ul2Rq4Sk5Cn-l69D695U.png", batch_size=1) +for res in output: + res.print() + res.save_to_img(save_path="./output/") + res.save_to_json(save_path="./output/res.json") +``` + +After running, the obtained result is as follows: + +```json +{'res': {'input_path': '/root/.paddlex/predict_input/3ul2Rq4Sk5Cn-l69D695U.png', 'page_index': None, 'dt_polys': array([[[ 632, 1429], + ..., + [ 632, 1450]], + + ..., + + [[ 353, 102], + ..., + [ 353, 125]]], dtype=int16), 'dt_scores': [0.8436300312712586, 0.7779392262863483, ..., 0.8491056329808098]}} +``` + +The visualized image is as follows: + +![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/rs6R4Ij5bfSeQ4mwLhcz6.jpeg) + +For details about usage command and descriptions of parameters, please refer to the [Document](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/module_usage/text_detection.html#iii-quick-start). + +### Pipeline Usage + +The ability of a single model is limited. But the pipeline consists of several models can provide more capacity to resolve difficult problems in real-world scenarios. + +#### PP-OCRv5 + +The general OCR pipeline is used to solve text recognition tasks by extracting text information from images and outputting it in text form. And there are 5 modules in the pipeline: +* Document Image Orientation Classification Module (Optional) +* Text Image Unwarping Module (Optional) +* Text Line Orientation Classification Module (Optional) +* Text Detection Module +* Text Recognition Module + +Run a single command to quickly experience the OCR pipeline: + +```bash +paddleocr ocr -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/3ul2Rq4Sk5Cn-l69D695U.png \ + --text_detection_model_name PP-OCRv5_server_det \ + --text_recognition_model_name PP-OCRv5_server_rec \ + --use_doc_orientation_classify False \ + --use_doc_unwarping False \ + --use_textline_orientation True \ + --save_path ./output \ + --device gpu:0 +``` + +Results are printed to the terminal: + +```json +{'res': {'input_path': '/root/.paddlex/predict_input/3ul2Rq4Sk5Cn-l69D695U.png', 'page_index': None, 'model_settings': {'use_doc_preprocessor': True, 'use_textline_orientation': True}, 'doc_preprocessor_res': {'input_path': None, 'page_index': None, 'model_settings': {'use_doc_orientation_classify': False, 'use_doc_unwarping': False}, 'angle': -1}, 'dt_polys': array([[[ 352, 105], + ..., + [ 352, 128]], + + ..., + + [[ 632, 1431], + ..., + [ 632, 1447]]], dtype=int16), 'text_det_params': {'limit_side_len': 64, 'limit_type': 'min', 'thresh': 0.3, 'max_side_limit': 4000, 'box_thresh': 0.6, 'unclip_ratio': 1.5}, 'text_type': 'general', 'textline_orientation_angles': array([0, ..., 0]), 'text_rec_score_thresh': 0.0, 'rec_texts': ['Algorithms for the Markov Entropy Decomposition', 'Andrew J. Ferris and David Poulin', 'Département de Physique, Université de Sherbrooke, Québec, JlK 2R1, Canada', '(Dated: October 31, 2018)', 'The Markov entropy decomposition (MED) is a recently-proposed, cluster-based simulation method for fi-', 'nite temperature quantum systems with arbitrary geometry. In this paper, we detail numerical algorithms for', 'performing the required steps of the MED, principally solving a minimization problem with a preconditioned', 'arXiv:1212.1442v1 [cond-mat.stat-mech] 6Dec 2012', "Newton's algorithm, as well as how to extract global susceptibilities and thermal responses. We demonstrate", 'the power of the method with the spin-1/2 XXZ model on the 2D square lattice, including the extraction of', 'critical points and details of each phase. Although the method shares some qualitative similarities with exact-', 'diagonalization, we show the MED is both more accurate and significantly more flexible.', 'PACS numbers: 05.10.−a,02.50.Ng, 03.67.−a,74.40.Kb', 'I.INTRODUCTION', 'This approximation becomes exact in the case of a 1D quan', 'tum (or classical) Markov chain [10], and leads to an expo-', 'Although the equations governing quantum many-body', 'nential reduction of cost for exact entropy calculations when', 'systems are simple to write down, finding solutions for the', 'the global density matrix is a higher-dimensional Markov net-', 'majority of systems remains incredibly difficult. Modern', 'work state [12, 13].', 'physics finds itself in need of new tools to compute the emer-', 'The second approximation used in the MED approach is', 'gent behavior of large, many-body systems.', 'related to the N-representibility problem. Given a set of lo-', 'There has been a great variety of tools developed to tackle', 'cal but overlapping reduced density matrices {pi}, it is a very', 'many-body problems, but in general, large 2D and 3D quan-', 'challenging problem to determine if there exists a global den-', 'tum systems remain hard to deal with. Most systems are', 'sity operator which is positive semi-definite and whose partial', 'thought to be non-integrable, so exact analytic solutions are', 'trace agrees with each ρi. This problem is QMA-hard (the', 'not usually expected. Direct numerical diagonalization can be', 'quantum analogue of NP) [14, 15], and is hopelessly diffi-', 'performed for relatively small systems — however the emer-', 'cult to enforce. Thus, the second approximation employed', 'gent behavior of a system in the thermodynamic limit may be', 'involves ignoring global consistency with a positive opera-', 'difficult to extract, especially in systems with large correlation', 'tor, while requiring local consistency on any overlapping re-', 'lengths. Monte Carlo approaches are technically exact (up to', 'gions between the ρi. At the zero-temperature limit, the MED', 'sampling error), but suffer from the so-called sign problem', 'approach becomes analogous to the variational nth-order re-', 'for fermionic, frustrated, or dynamical problems. Thus we are', 'duced density matrix approach, where positivity is enforced', 'limited to search for clever approximations to solve the ma-', 'on all reduced density matrices of size n [16–18].', 'jority of many-body problems.', 'The MED approach is an extremely flexible cluster method.', 'Over the past century, hundreds of such approximations', 'applicable to both translationally invariant systems of any di-', 'have been proposed, and we will mention just a few notable', 'mension in the thermodynamic limit, as well as finite systems', 'examples applicable to quantum lattice models. Mean-field', 'or systems without translational invariance (e.g. disordered', 'theory is simple and frequently arrives at the correct quali-', 'lattices, or harmonically trapped atoms in optical lattices).', 'tative description, but often fails when correlations are im-', 'The free energy given by MED is guaranteed to lower bound', 'portant. Density-matrix renormalisation group (DMRG) [1]', 'the true free energy, which in turn lower-bounds the ground', 'is efficient and extremely accurate at solving 1D problems,', 'state energy — thus providing a natural complement to varia-', 'but the computational cost grows exponentially with system', 'tional approaches which upper-bound the ground state energy.', 'size in two- or higher-dimensions [2, 3]. Related tensor-', 'The ability to provide a rigorous ground-state energy window', 'network techniques designed for 2D systems are still in their', 'is a powerful validation tool, creating a very compelling rea-', 'infancy [4–6]. Series-expansion methods [7] can be success-', 'son to use this approach.', 'ful, but may diverge or otherwise converge slowly, obscuring', 'In this paper we paper we present a pedagogical introduc-', 'the state in certain regimes. There exist a variety of cluster-', 'tion to MED, including numerical implementation issues and', 'based techniques, such as dynamical-mean-field theory [8]', 'applications to 2D quantum lattice models in the thermody-', 'and density-matrix embedding [9]', 'namiclimit.InSec.II.wegiveabriefderiyationofthe', 'Here we discuss the so-called Markov entropy decompo-', 'Markov entropy decomposition. Section III outlines a robust', 'sition (MED), recently proposed by Poulin & Hastings [10]', 'numerical strategy for optimizing the clusters that make up', '(and analogous to a slightly earlier classical algorithm [11]).', 'the decomposition. In Sec. IV we show how we can extend', 'This is a self-consistent cluster method for finite temperature', 'these algorithms to extract non-trivial information, such as', 'systems that takes advantage of an approximation of the (von', 'specific heat and susceptibilities. We present an application of', 'Neumann) entropy. In [10], it was shown that the entropy', 'the method to the spin-1/2 XXZ model on a 2D square lattice', 'per site can be rigorously upper bounded using only local in-', 'in Sec. V, describing how to characterize the phase diagram', 'formation — a local, reduced density matrix on N sites, say.', 'and determine critical points, before concluding in Sec. VI.'], 'rec_scores': array([0.99276221, ..., 0.95760632]), 'rec_polys': array([[[ 352, 105], + ..., + [ 352, 128]], + + ..., + + [[ 632, 1431], + ..., + [ 632, 1447]]], dtype=int16), 'rec_boxes': array([[ 352, ..., 128], + ..., + [ 632, ..., 1447]], dtype=int16)}} +``` + +If save_path is specified, the visualization results will be saved under `save_path`. The visualization output is shown below: + +![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/SfWsVpad7eKD3I2uLYpnS.png) + +The command-line method is for quick experience. For project integration, also only a few codes are needed as well: + +```python +from paddleocr import PaddleOCR + +ocr = PaddleOCR( + text_detection_model_name="PP-OCRv5_server_det", + text_recognition_model_name="PP-OCRv5_server_rec", + use_doc_orientation_classify=False, # Disables document orientation classification model via this parameter + use_doc_unwarping=False, # Disables text image rectification model via this parameter + use_textline_orientation=False, # Disables text line orientation classification model via this parameter +) +result = ocr.predict("./3ul2Rq4Sk5Cn-l69D695U.png") +for res in result: + res.print() + res.save_to_img("output") + res.save_to_json("output") +``` + +For details about usage command and descriptions of parameters, please refer to the [Document](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/pipeline_usage/OCR.html#2-quick-start). + +#### PP-StructureV3 + +Layout analysis is a technique used to extract structured information from document images. PP-StructureV3 includes the following six modules: +* Layout Detection Module +* General OCR Pipeline +* Document Image Preprocessing Pipeline (Optional) +* Table Recognition Pipeline (Optional) +* Seal Recognition Pipeline (Optional) +* Formula Recognition Pipeline (Optional) + +Run a single command to quickly experience the PP-StructureV3 pipeline: + +```bash +paddleocr pp_structurev3 -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/mG4tnwfrvECoFMu-S9mxo.png \ + --text_detection_model_name PP-OCRv5_server_det \ + --use_doc_orientation_classify False \ + --use_doc_unwarping False \ + --use_textline_orientation False \ + --device gpu:0 +``` + +Results would be printed to the terminal. If save_path is specified, the results will be saved under `save_path`. The predicted markdown visualization is shown below: + +![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/SfxF0X4drBTNGnfFOtZij.png) + +Just a few lines of code can experience the inference of the pipeline. Taking the PP-StructureV3 pipeline as an example: + +```python +from paddleocr import PPStructureV3 + +pipeline = PPStructureV3( + text_detection_model_name="PP-OCRv5_server_det", + use_doc_orientation_classify=False, # Use use_doc_orientation_classify to enable/disable document orientation classification model + use_doc_unwarping=False, # Use use_doc_unwarping to enable/disable document unwarping module + use_textline_orientation=False, # Use use_textline_orientation to enable/disable textline orientation classification model + device="gpu:0", # Use device to specify GPU for model inference + ) +output = pipeline.predict("./pp_structure_v3_demo.png") +for res in output: + res.print() # Print the structured prediction output + res.save_to_json(save_path="output") ## Save the current image's structured result in JSON format + res.save_to_markdown(save_path="output") ## Save the current image's result in Markdown format +``` + +The default model used in pipeline is `PP-OCRv5_server_det`, and you can specify other text detection model by argument `text_detection_model_name`. And you can also use the local model file by argument `text_detection_model_dir`. For details about usage command and descriptions of parameters, please refer to the [Document](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/pipeline_usage/PP-StructureV3.html#2-quick-start). + +## Links + +[PaddleOCR Repo](https://github.com/paddlepaddle/paddleocr) + +[PaddleOCR Documentation](https://paddlepaddle.github.io/PaddleOCR/latest/en/index.html) diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/config.json b/vendor/paddleocr/official_models/PP-OCRv5_server_det/config.json new file mode 100644 index 0000000..5d2c6fe --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/config.json @@ -0,0 +1,111 @@ +{ + "Global": { + "model_name": "PP-OCRv5_server_det" + }, + "Hpi": { + "backend_configs": { + "paddle_infer": { + "trt_dynamic_shapes": { + "x": [ + [ + 1, + 3, + 32, + 32 + ], + [ + 1, + 3, + 736, + 736 + ], + [ + 1, + 3, + 4000, + 4000 + ] + ] + } + }, + "tensorrt": { + "dynamic_shapes": { + "x": [ + [ + 1, + 3, + 32, + 32 + ], + [ + 1, + 3, + 736, + 736 + ], + [ + 1, + 3, + 4000, + 4000 + ] + ] + } + } + } + }, + "PreProcess": { + "transform_ops": [ + { + "DecodeImage": { + "channel_first": false, + "img_mode": "BGR" + } + }, + { + "DetLabelEncode": null + }, + { + "DetResizeForTest": { + "resize_long": 960 + } + }, + { + "NormalizeImage": { + "mean": [ + 0.485, + 0.456, + 0.406 + ], + "order": "hwc", + "scale": "1./255.", + "std": [ + 0.229, + 0.224, + 0.225 + ] + } + }, + { + "ToCHWImage": null + }, + { + "KeepKeys": { + "keep_keys": [ + "image", + "shape", + "polys", + "ignore_tags" + ] + } + } + ] + }, + "PostProcess": { + "name": "DBPostProcess", + "thresh": 0.3, + "box_thresh": 0.6, + "max_candidates": 1000, + "unclip_ratio": 1.5 + } +} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.json b/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.json new file mode 100644 index 0000000..7b582d6 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.json @@ -0,0 +1 @@ +{"base_code":{"magic":"pir","trainable":true,"version":1},"program":{"regions":[{"#":"region_0","blocks":[{"#":"block_0","args":[],"ops":[{"#":"p","A":[0,1,1,"conv2d_143.b_0"],"DA":[],"O":{"%":1,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_143.w_0"],"DA":[],"O":{"%":2,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_4.w_2"],"DA":[],"O":{"%":3,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_4.w_1"],"DA":[],"O":{"%":4,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_4.b_0"],"DA":[],"O":{"%":5,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_4.w_0"],"DA":[],"O":{"%":6,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_142.w_0"],"DA":[],"O":{"%":7,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,65,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_transpose_1.b_0"],"DA":[],"O":{"%":8,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_transpose_1.w_0"],"DA":[],"O":{"%":9,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,1,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_1.w_2"],"DA":[],"O":{"%":10,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_1.w_1"],"DA":[],"O":{"%":11,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_1.b_0"],"DA":[],"O":{"%":12,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_1.w_0"],"DA":[],"O":{"%":13,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_transpose_0.b_0"],"DA":[],"O":{"%":14,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_transpose_0.w_0"],"DA":[],"O":{"%":15,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_0.w_2"],"DA":[],"O":{"%":16,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_0.w_1"],"DA":[],"O":{"%":17,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_0.b_0"],"DA":[],"O":{"%":18,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm_0.w_0"],"DA":[],"O":{"%":19,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_140.w_0"],"DA":[],"O":{"%":20,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_2"],"DA":[],"O":{"%":21,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_1"],"DA":[],"O":{"%":22,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.b_0"],"DA":[],"O":{"%":23,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_0"],"DA":[],"O":{"%":24,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_139.b_0"],"DA":[],"O":{"%":25,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_139.w_0"],"DA":[],"O":{"%":26,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_138.b_0"],"DA":[],"O":{"%":27,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_138.w_0"],"DA":[],"O":{"%":28,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_137.b_0"],"DA":[],"O":{"%":29,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_137.w_0"],"DA":[],"O":{"%":30,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_136.b_0"],"DA":[],"O":{"%":31,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_136.w_0"],"DA":[],"O":{"%":32,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_135.b_0"],"DA":[],"O":{"%":33,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_135.w_0"],"DA":[],"O":{"%":34,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_134.b_0"],"DA":[],"O":{"%":35,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_134.w_0"],"DA":[],"O":{"%":36,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_133.b_0"],"DA":[],"O":{"%":37,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_133.w_0"],"DA":[],"O":{"%":38,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_132.b_0"],"DA":[],"O":{"%":39,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_132.w_0"],"DA":[],"O":{"%":40,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_131.b_0"],"DA":[],"O":{"%":41,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_131.w_0"],"DA":[],"O":{"%":42,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_130.b_0"],"DA":[],"O":{"%":43,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_130.w_0"],"DA":[],"O":{"%":44,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_129.b_0"],"DA":[],"O":{"%":45,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_129.w_0"],"DA":[],"O":{"%":46,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_2"],"DA":[],"O":{"%":47,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_1"],"DA":[],"O":{"%":48,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.b_0"],"DA":[],"O":{"%":49,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_0"],"DA":[],"O":{"%":50,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_128.b_0"],"DA":[],"O":{"%":51,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_128.w_0"],"DA":[],"O":{"%":52,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_127.b_0"],"DA":[],"O":{"%":53,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_127.w_0"],"DA":[],"O":{"%":54,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_126.b_0"],"DA":[],"O":{"%":55,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_126.w_0"],"DA":[],"O":{"%":56,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_125.b_0"],"DA":[],"O":{"%":57,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_125.w_0"],"DA":[],"O":{"%":58,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_124.b_0"],"DA":[],"O":{"%":59,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_124.w_0"],"DA":[],"O":{"%":60,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_123.b_0"],"DA":[],"O":{"%":61,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_123.w_0"],"DA":[],"O":{"%":62,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_122.b_0"],"DA":[],"O":{"%":63,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_122.w_0"],"DA":[],"O":{"%":64,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_121.b_0"],"DA":[],"O":{"%":65,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_121.w_0"],"DA":[],"O":{"%":66,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_120.b_0"],"DA":[],"O":{"%":67,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_120.w_0"],"DA":[],"O":{"%":68,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_119.b_0"],"DA":[],"O":{"%":69,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_119.w_0"],"DA":[],"O":{"%":70,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_118.b_0"],"DA":[],"O":{"%":71,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_118.w_0"],"DA":[],"O":{"%":72,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_2"],"DA":[],"O":{"%":73,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_1"],"DA":[],"O":{"%":74,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.b_0"],"DA":[],"O":{"%":75,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_0"],"DA":[],"O":{"%":76,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_117.b_0"],"DA":[],"O":{"%":77,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_117.w_0"],"DA":[],"O":{"%":78,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_116.b_0"],"DA":[],"O":{"%":79,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_116.w_0"],"DA":[],"O":{"%":80,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_115.b_0"],"DA":[],"O":{"%":81,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_115.w_0"],"DA":[],"O":{"%":82,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_114.b_0"],"DA":[],"O":{"%":83,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_114.w_0"],"DA":[],"O":{"%":84,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_113.b_0"],"DA":[],"O":{"%":85,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_113.w_0"],"DA":[],"O":{"%":86,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_112.b_0"],"DA":[],"O":{"%":87,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_112.w_0"],"DA":[],"O":{"%":88,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_111.b_0"],"DA":[],"O":{"%":89,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_111.w_0"],"DA":[],"O":{"%":90,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_110.b_0"],"DA":[],"O":{"%":91,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_110.w_0"],"DA":[],"O":{"%":92,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_109.b_0"],"DA":[],"O":{"%":93,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_109.w_0"],"DA":[],"O":{"%":94,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_108.b_0"],"DA":[],"O":{"%":95,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_108.w_0"],"DA":[],"O":{"%":96,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_107.b_0"],"DA":[],"O":{"%":97,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_107.w_0"],"DA":[],"O":{"%":98,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_2"],"DA":[],"O":{"%":99,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_1"],"DA":[],"O":{"%":100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.b_0"],"DA":[],"O":{"%":101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_0"],"DA":[],"O":{"%":102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_106.b_0"],"DA":[],"O":{"%":103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_106.w_0"],"DA":[],"O":{"%":104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_105.b_0"],"DA":[],"O":{"%":105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_105.w_0"],"DA":[],"O":{"%":106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_104.b_0"],"DA":[],"O":{"%":107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_104.w_0"],"DA":[],"O":{"%":108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_103.b_0"],"DA":[],"O":{"%":109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_103.w_0"],"DA":[],"O":{"%":110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_102.b_0"],"DA":[],"O":{"%":111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_102.w_0"],"DA":[],"O":{"%":112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_101.b_0"],"DA":[],"O":{"%":113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_101.w_0"],"DA":[],"O":{"%":114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,1,7],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_100.b_0"],"DA":[],"O":{"%":115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_100.w_0"],"DA":[],"O":{"%":116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,3,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_99.b_0"],"DA":[],"O":{"%":117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_99.w_0"],"DA":[],"O":{"%":118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,5,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_98.b_0"],"DA":[],"O":{"%":119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_98.w_0"],"DA":[],"O":{"%":120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,32,7,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_97.b_0"],"DA":[],"O":{"%":121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_97.w_0"],"DA":[],"O":{"%":122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_96.b_0"],"DA":[],"O":{"%":123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_96.w_0"],"DA":[],"O":{"%":124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_95.w_0"],"DA":[],"O":{"%":125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_91.w_0"],"DA":[],"O":{"%":126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_87.w_0"],"DA":[],"O":{"%":127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_83.w_0"],"DA":[],"O":{"%":128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_94.w_0"],"DA":[],"O":{"%":129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_90.w_0"],"DA":[],"O":{"%":130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_86.w_0"],"DA":[],"O":{"%":131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_93.w_0"],"DA":[],"O":{"%":132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_89.w_0"],"DA":[],"O":{"%":133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_85.w_0"],"DA":[],"O":{"%":134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_82.w_0"],"DA":[],"O":{"%":135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,256,9,9],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_92.w_0"],"DA":[],"O":{"%":136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,2048,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_88.w_0"],"DA":[],"O":{"%":137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_84.w_0"],"DA":[],"O":{"%":138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_81.w_0"],"DA":[],"O":{"%":139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,128,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_2"],"DA":[],"O":{"%":140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_1"],"DA":[],"O":{"%":141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.b_0"],"DA":[],"O":{"%":142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_0"],"DA":[],"O":{"%":143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_79.w_0"],"DA":[],"O":{"%":144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_2"],"DA":[],"O":{"%":145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_1"],"DA":[],"O":{"%":146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.b_0"],"DA":[],"O":{"%":147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_0"],"DA":[],"O":{"%":148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_78.w_0"],"DA":[],"O":{"%":149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,3328,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_2"],"DA":[],"O":{"%":150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_1"],"DA":[],"O":{"%":151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.b_0"],"DA":[],"O":{"%":152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_0"],"DA":[],"O":{"%":153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_77.w_0"],"DA":[],"O":{"%":154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_2"],"DA":[],"O":{"%":155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_1"],"DA":[],"O":{"%":156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.b_0"],"DA":[],"O":{"%":157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_0"],"DA":[],"O":{"%":158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_76.w_0"],"DA":[],"O":{"%":159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_2"],"DA":[],"O":{"%":160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_1"],"DA":[],"O":{"%":161,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.b_0"],"DA":[],"O":{"%":162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_0"],"DA":[],"O":{"%":163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_75.w_0"],"DA":[],"O":{"%":164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_2"],"DA":[],"O":{"%":165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_1"],"DA":[],"O":{"%":166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.b_0"],"DA":[],"O":{"%":167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_0"],"DA":[],"O":{"%":168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_74.w_0"],"DA":[],"O":{"%":169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_2"],"DA":[],"O":{"%":170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_1"],"DA":[],"O":{"%":171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.b_0"],"DA":[],"O":{"%":172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_0"],"DA":[],"O":{"%":173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_73.w_0"],"DA":[],"O":{"%":174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_2"],"DA":[],"O":{"%":175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_1"],"DA":[],"O":{"%":176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.b_0"],"DA":[],"O":{"%":177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_0"],"DA":[],"O":{"%":178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_72.w_0"],"DA":[],"O":{"%":179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_2"],"DA":[],"O":{"%":180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_1"],"DA":[],"O":{"%":181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.b_0"],"DA":[],"O":{"%":182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_0"],"DA":[],"O":{"%":183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_71.w_0"],"DA":[],"O":{"%":184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_2"],"DA":[],"O":{"%":185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_1"],"DA":[],"O":{"%":186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.b_0"],"DA":[],"O":{"%":187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_0"],"DA":[],"O":{"%":188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_70.w_0"],"DA":[],"O":{"%":189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_2"],"DA":[],"O":{"%":190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_1"],"DA":[],"O":{"%":191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.b_0"],"DA":[],"O":{"%":192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_0"],"DA":[],"O":{"%":193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_69.w_0"],"DA":[],"O":{"%":194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_2"],"DA":[],"O":{"%":195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_1"],"DA":[],"O":{"%":196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.b_0"],"DA":[],"O":{"%":197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_0"],"DA":[],"O":{"%":198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_68.w_0"],"DA":[],"O":{"%":199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_2"],"DA":[],"O":{"%":200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_1"],"DA":[],"O":{"%":201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.b_0"],"DA":[],"O":{"%":202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_0"],"DA":[],"O":{"%":203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_67.w_0"],"DA":[],"O":{"%":204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_2"],"DA":[],"O":{"%":205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_1"],"DA":[],"O":{"%":206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.b_0"],"DA":[],"O":{"%":207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_0"],"DA":[],"O":{"%":208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_66.w_0"],"DA":[],"O":{"%":209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_2"],"DA":[],"O":{"%":210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_1"],"DA":[],"O":{"%":211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.b_0"],"DA":[],"O":{"%":212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_0"],"DA":[],"O":{"%":213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_65.w_0"],"DA":[],"O":{"%":214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_2"],"DA":[],"O":{"%":215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_1"],"DA":[],"O":{"%":216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.b_0"],"DA":[],"O":{"%":217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_0"],"DA":[],"O":{"%":218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_64.w_0"],"DA":[],"O":{"%":219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_2"],"DA":[],"O":{"%":220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_1"],"DA":[],"O":{"%":221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.b_0"],"DA":[],"O":{"%":222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_0"],"DA":[],"O":{"%":223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_63.w_0"],"DA":[],"O":{"%":224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,2176,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_2"],"DA":[],"O":{"%":225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_1"],"DA":[],"O":{"%":226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.b_0"],"DA":[],"O":{"%":227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_0"],"DA":[],"O":{"%":228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_62.w_0"],"DA":[],"O":{"%":229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_2"],"DA":[],"O":{"%":230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_1"],"DA":[],"O":{"%":231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.b_0"],"DA":[],"O":{"%":232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_0"],"DA":[],"O":{"%":233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_61.w_0"],"DA":[],"O":{"%":234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_2"],"DA":[],"O":{"%":235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_1"],"DA":[],"O":{"%":236,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.b_0"],"DA":[],"O":{"%":237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_0"],"DA":[],"O":{"%":238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_60.w_0"],"DA":[],"O":{"%":239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_2"],"DA":[],"O":{"%":240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_1"],"DA":[],"O":{"%":241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.b_0"],"DA":[],"O":{"%":242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_0"],"DA":[],"O":{"%":243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_59.w_0"],"DA":[],"O":{"%":244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_2"],"DA":[],"O":{"%":245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_1"],"DA":[],"O":{"%":246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.b_0"],"DA":[],"O":{"%":247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_0"],"DA":[],"O":{"%":248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_58.w_0"],"DA":[],"O":{"%":249,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_2"],"DA":[],"O":{"%":250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_1"],"DA":[],"O":{"%":251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.b_0"],"DA":[],"O":{"%":252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_0"],"DA":[],"O":{"%":253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_57.w_0"],"DA":[],"O":{"%":254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_2"],"DA":[],"O":{"%":255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_1"],"DA":[],"O":{"%":256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.b_0"],"DA":[],"O":{"%":257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_0"],"DA":[],"O":{"%":258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_56.w_0"],"DA":[],"O":{"%":259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_2"],"DA":[],"O":{"%":260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_1"],"DA":[],"O":{"%":261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.b_0"],"DA":[],"O":{"%":262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_0"],"DA":[],"O":{"%":263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_55.w_0"],"DA":[],"O":{"%":264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_2"],"DA":[],"O":{"%":265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_1"],"DA":[],"O":{"%":266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.b_0"],"DA":[],"O":{"%":267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_0"],"DA":[],"O":{"%":268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_54.w_0"],"DA":[],"O":{"%":269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_2"],"DA":[],"O":{"%":270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_1"],"DA":[],"O":{"%":271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.b_0"],"DA":[],"O":{"%":272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_0"],"DA":[],"O":{"%":273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_53.w_0"],"DA":[],"O":{"%":274,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_2"],"DA":[],"O":{"%":275,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_1"],"DA":[],"O":{"%":276,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.b_0"],"DA":[],"O":{"%":277,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_0"],"DA":[],"O":{"%":278,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_52.w_0"],"DA":[],"O":{"%":279,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_2"],"DA":[],"O":{"%":280,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_1"],"DA":[],"O":{"%":281,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.b_0"],"DA":[],"O":{"%":282,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_0"],"DA":[],"O":{"%":283,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_51.w_0"],"DA":[],"O":{"%":284,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_2"],"DA":[],"O":{"%":285,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_1"],"DA":[],"O":{"%":286,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.b_0"],"DA":[],"O":{"%":287,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_0"],"DA":[],"O":{"%":288,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_50.w_0"],"DA":[],"O":{"%":289,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_2"],"DA":[],"O":{"%":290,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_1"],"DA":[],"O":{"%":291,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.b_0"],"DA":[],"O":{"%":292,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_0"],"DA":[],"O":{"%":293,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_49.w_0"],"DA":[],"O":{"%":294,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,2176,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_2"],"DA":[],"O":{"%":295,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_1"],"DA":[],"O":{"%":296,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.b_0"],"DA":[],"O":{"%":297,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_0"],"DA":[],"O":{"%":298,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_48.w_0"],"DA":[],"O":{"%":299,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_2"],"DA":[],"O":{"%":300,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_1"],"DA":[],"O":{"%":301,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.b_0"],"DA":[],"O":{"%":302,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_0"],"DA":[],"O":{"%":303,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_47.w_0"],"DA":[],"O":{"%":304,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_2"],"DA":[],"O":{"%":305,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_1"],"DA":[],"O":{"%":306,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.b_0"],"DA":[],"O":{"%":307,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_0"],"DA":[],"O":{"%":308,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_46.w_0"],"DA":[],"O":{"%":309,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_2"],"DA":[],"O":{"%":310,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_1"],"DA":[],"O":{"%":311,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.b_0"],"DA":[],"O":{"%":312,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_0"],"DA":[],"O":{"%":313,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_45.w_0"],"DA":[],"O":{"%":314,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_2"],"DA":[],"O":{"%":315,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_1"],"DA":[],"O":{"%":316,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.b_0"],"DA":[],"O":{"%":317,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_0"],"DA":[],"O":{"%":318,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_44.w_0"],"DA":[],"O":{"%":319,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_2"],"DA":[],"O":{"%":320,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_1"],"DA":[],"O":{"%":321,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.b_0"],"DA":[],"O":{"%":322,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_0"],"DA":[],"O":{"%":323,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_43.w_0"],"DA":[],"O":{"%":324,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_2"],"DA":[],"O":{"%":325,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_1"],"DA":[],"O":{"%":326,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.b_0"],"DA":[],"O":{"%":327,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_0"],"DA":[],"O":{"%":328,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_42.w_0"],"DA":[],"O":{"%":329,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_2"],"DA":[],"O":{"%":330,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_1"],"DA":[],"O":{"%":331,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.b_0"],"DA":[],"O":{"%":332,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_0"],"DA":[],"O":{"%":333,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_41.w_0"],"DA":[],"O":{"%":334,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_2"],"DA":[],"O":{"%":335,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_1"],"DA":[],"O":{"%":336,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.b_0"],"DA":[],"O":{"%":337,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_0"],"DA":[],"O":{"%":338,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_40.w_0"],"DA":[],"O":{"%":339,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_2"],"DA":[],"O":{"%":340,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_1"],"DA":[],"O":{"%":341,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.b_0"],"DA":[],"O":{"%":342,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_0"],"DA":[],"O":{"%":343,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_39.w_0"],"DA":[],"O":{"%":344,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_2"],"DA":[],"O":{"%":345,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_1"],"DA":[],"O":{"%":346,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.b_0"],"DA":[],"O":{"%":347,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_0"],"DA":[],"O":{"%":348,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_38.w_0"],"DA":[],"O":{"%":349,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_2"],"DA":[],"O":{"%":350,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_1"],"DA":[],"O":{"%":351,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.b_0"],"DA":[],"O":{"%":352,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_0"],"DA":[],"O":{"%":353,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_37.w_0"],"DA":[],"O":{"%":354,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_2"],"DA":[],"O":{"%":355,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_1"],"DA":[],"O":{"%":356,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.b_0"],"DA":[],"O":{"%":357,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_0"],"DA":[],"O":{"%":358,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_36.w_0"],"DA":[],"O":{"%":359,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_2"],"DA":[],"O":{"%":360,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_1"],"DA":[],"O":{"%":361,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.b_0"],"DA":[],"O":{"%":362,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_0"],"DA":[],"O":{"%":363,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_35.w_0"],"DA":[],"O":{"%":364,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1664,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_2"],"DA":[],"O":{"%":365,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_1"],"DA":[],"O":{"%":366,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.b_0"],"DA":[],"O":{"%":367,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_0"],"DA":[],"O":{"%":368,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_34.w_0"],"DA":[],"O":{"%":369,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_2"],"DA":[],"O":{"%":370,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_1"],"DA":[],"O":{"%":371,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.b_0"],"DA":[],"O":{"%":372,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_0"],"DA":[],"O":{"%":373,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_33.w_0"],"DA":[],"O":{"%":374,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_2"],"DA":[],"O":{"%":375,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_1"],"DA":[],"O":{"%":376,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.b_0"],"DA":[],"O":{"%":377,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_0"],"DA":[],"O":{"%":378,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_32.w_0"],"DA":[],"O":{"%":379,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_2"],"DA":[],"O":{"%":380,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_1"],"DA":[],"O":{"%":381,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.b_0"],"DA":[],"O":{"%":382,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_0"],"DA":[],"O":{"%":383,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_31.w_0"],"DA":[],"O":{"%":384,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_2"],"DA":[],"O":{"%":385,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_1"],"DA":[],"O":{"%":386,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.b_0"],"DA":[],"O":{"%":387,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_0"],"DA":[],"O":{"%":388,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_30.w_0"],"DA":[],"O":{"%":389,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_2"],"DA":[],"O":{"%":390,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_1"],"DA":[],"O":{"%":391,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.b_0"],"DA":[],"O":{"%":392,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_0"],"DA":[],"O":{"%":393,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_29.w_0"],"DA":[],"O":{"%":394,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_2"],"DA":[],"O":{"%":395,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_1"],"DA":[],"O":{"%":396,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.b_0"],"DA":[],"O":{"%":397,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_0"],"DA":[],"O":{"%":398,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_28.w_0"],"DA":[],"O":{"%":399,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_2"],"DA":[],"O":{"%":400,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_1"],"DA":[],"O":{"%":401,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.b_0"],"DA":[],"O":{"%":402,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_0"],"DA":[],"O":{"%":403,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_27.w_0"],"DA":[],"O":{"%":404,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_2"],"DA":[],"O":{"%":405,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_1"],"DA":[],"O":{"%":406,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.b_0"],"DA":[],"O":{"%":407,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_0"],"DA":[],"O":{"%":408,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_26.w_0"],"DA":[],"O":{"%":409,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_2"],"DA":[],"O":{"%":410,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_1"],"DA":[],"O":{"%":411,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.b_0"],"DA":[],"O":{"%":412,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_0"],"DA":[],"O":{"%":413,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_25.w_0"],"DA":[],"O":{"%":414,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_2"],"DA":[],"O":{"%":415,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_1"],"DA":[],"O":{"%":416,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.b_0"],"DA":[],"O":{"%":417,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_0"],"DA":[],"O":{"%":418,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_24.w_0"],"DA":[],"O":{"%":419,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_2"],"DA":[],"O":{"%":420,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_1"],"DA":[],"O":{"%":421,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.b_0"],"DA":[],"O":{"%":422,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_0"],"DA":[],"O":{"%":423,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_23.w_0"],"DA":[],"O":{"%":424,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_2"],"DA":[],"O":{"%":425,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_1"],"DA":[],"O":{"%":426,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.b_0"],"DA":[],"O":{"%":427,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_0"],"DA":[],"O":{"%":428,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_22.w_0"],"DA":[],"O":{"%":429,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_2"],"DA":[],"O":{"%":430,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_1"],"DA":[],"O":{"%":431,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.b_0"],"DA":[],"O":{"%":432,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_0"],"DA":[],"O":{"%":433,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_21.w_0"],"DA":[],"O":{"%":434,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_2"],"DA":[],"O":{"%":435,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_1"],"DA":[],"O":{"%":436,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.b_0"],"DA":[],"O":{"%":437,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_0"],"DA":[],"O":{"%":438,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_20.w_0"],"DA":[],"O":{"%":439,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,704,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_2"],"DA":[],"O":{"%":440,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_1"],"DA":[],"O":{"%":441,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.b_0"],"DA":[],"O":{"%":442,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_0"],"DA":[],"O":{"%":443,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_19.w_0"],"DA":[],"O":{"%":444,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_2"],"DA":[],"O":{"%":445,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_1"],"DA":[],"O":{"%":446,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.b_0"],"DA":[],"O":{"%":447,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_0"],"DA":[],"O":{"%":448,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_18.w_0"],"DA":[],"O":{"%":449,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_2"],"DA":[],"O":{"%":450,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_1"],"DA":[],"O":{"%":451,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.b_0"],"DA":[],"O":{"%":452,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_0"],"DA":[],"O":{"%":453,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_17.w_0"],"DA":[],"O":{"%":454,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_2"],"DA":[],"O":{"%":455,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_1"],"DA":[],"O":{"%":456,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.b_0"],"DA":[],"O":{"%":457,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_0"],"DA":[],"O":{"%":458,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_16.w_0"],"DA":[],"O":{"%":459,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_2"],"DA":[],"O":{"%":460,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_1"],"DA":[],"O":{"%":461,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.b_0"],"DA":[],"O":{"%":462,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_0"],"DA":[],"O":{"%":463,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_15.w_0"],"DA":[],"O":{"%":464,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_2"],"DA":[],"O":{"%":465,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_1"],"DA":[],"O":{"%":466,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.b_0"],"DA":[],"O":{"%":467,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_0"],"DA":[],"O":{"%":468,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_14.w_0"],"DA":[],"O":{"%":469,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,128,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_2"],"DA":[],"O":{"%":470,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_1"],"DA":[],"O":{"%":471,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.b_0"],"DA":[],"O":{"%":472,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_0"],"DA":[],"O":{"%":473,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_13.w_0"],"DA":[],"O":{"%":474,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_2"],"DA":[],"O":{"%":475,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_1"],"DA":[],"O":{"%":476,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.b_0"],"DA":[],"O":{"%":477,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_0"],"DA":[],"O":{"%":478,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_12.w_0"],"DA":[],"O":{"%":479,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_2"],"DA":[],"O":{"%":480,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_1"],"DA":[],"O":{"%":481,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.b_0"],"DA":[],"O":{"%":482,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_0"],"DA":[],"O":{"%":483,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_11.w_0"],"DA":[],"O":{"%":484,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,336,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_2"],"DA":[],"O":{"%":485,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_1"],"DA":[],"O":{"%":486,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.b_0"],"DA":[],"O":{"%":487,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_0"],"DA":[],"O":{"%":488,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_10.w_0"],"DA":[],"O":{"%":489,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_2"],"DA":[],"O":{"%":490,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_1"],"DA":[],"O":{"%":491,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.b_0"],"DA":[],"O":{"%":492,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_0"],"DA":[],"O":{"%":493,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_9.w_0"],"DA":[],"O":{"%":494,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_2"],"DA":[],"O":{"%":495,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_1"],"DA":[],"O":{"%":496,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.b_0"],"DA":[],"O":{"%":497,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_0"],"DA":[],"O":{"%":498,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_8.w_0"],"DA":[],"O":{"%":499,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_2"],"DA":[],"O":{"%":500,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_1"],"DA":[],"O":{"%":501,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.b_0"],"DA":[],"O":{"%":502,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_0"],"DA":[],"O":{"%":503,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_7.w_0"],"DA":[],"O":{"%":504,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_2"],"DA":[],"O":{"%":505,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_1"],"DA":[],"O":{"%":506,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.b_0"],"DA":[],"O":{"%":507,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_0"],"DA":[],"O":{"%":508,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_6.w_0"],"DA":[],"O":{"%":509,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_2"],"DA":[],"O":{"%":510,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_1"],"DA":[],"O":{"%":511,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.b_0"],"DA":[],"O":{"%":512,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_0"],"DA":[],"O":{"%":513,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_5.w_0"],"DA":[],"O":{"%":514,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_2"],"DA":[],"O":{"%":515,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_1"],"DA":[],"O":{"%":516,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.b_0"],"DA":[],"O":{"%":517,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_0"],"DA":[],"O":{"%":518,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_4.w_0"],"DA":[],"O":{"%":519,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_2"],"DA":[],"O":{"%":520,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_1"],"DA":[],"O":{"%":521,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.b_0"],"DA":[],"O":{"%":522,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_0"],"DA":[],"O":{"%":523,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_3.w_0"],"DA":[],"O":{"%":524,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_2"],"DA":[],"O":{"%":525,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_1"],"DA":[],"O":{"%":526,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.b_0"],"DA":[],"O":{"%":527,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_0"],"DA":[],"O":{"%":528,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_2.w_0"],"DA":[],"O":{"%":529,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,16,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_2"],"DA":[],"O":{"%":530,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_1"],"DA":[],"O":{"%":531,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.b_0"],"DA":[],"O":{"%":532,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_0"],"DA":[],"O":{"%":533,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_1.w_0"],"DA":[],"O":{"%":534,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16,32,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_2"],"DA":[],"O":{"%":535,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_1"],"DA":[],"O":{"%":536,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.b_0"],"DA":[],"O":{"%":537,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_0"],"DA":[],"O":{"%":538,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_0.w_0"],"DA":[],"O":{"%":539,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,3,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"1.data","A":[{"AT":{"#":"0.a_str","D":"x"},"N":"name"},{"AT":{"#":"1.a_intarray","D":[-1,3,-1,-1]},"N":"shape"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[0,0,""]},"N":"place"}],"I":[],"O":[{"%":540,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":540},{"%":539}],"O":[{"%":541,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":541},{"%":536},{"%":535},{"%":538},{"%":537}],"O":[{"%":542,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}},{"%":543,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":544,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":545,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":546,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":547,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":542}],"O":[{"%":548,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":548},{"%":534}],"O":[{"%":549,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":549},{"%":531},{"%":530},{"%":533},{"%":532}],"O":[{"%":550,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,-1,-1],"NCHW",[],0]}},{"%":551,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":552,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":553,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":554,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":555,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":550}],"O":[{"%":556,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":556},{"%":529}],"O":[{"%":557,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":557},{"%":526},{"%":525},{"%":528},{"%":527}],"O":[{"%":558,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}},{"%":559,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":560,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":561,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":562,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":563,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":558}],"O":[{"%":564,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2},{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/MaxPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":565,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":true},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"max"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":false},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/MaxPool2D/"},"N":"struct_name"}],"I":[{"%":548},{"%":565}],"O":[{"%":566,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[],"O":[{"%":567,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[{"%":566},{"%":564}],"O":[{"%":568,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[{"%":568},{"%":567}],"O":[{"%":569,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":569},{"%":524}],"O":[{"%":570,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":570},{"%":521},{"%":520},{"%":523},{"%":522}],"O":[{"%":571,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}},{"%":572,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":573,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":574,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":575,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":576,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":571}],"O":[{"%":577,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":577},{"%":519}],"O":[{"%":578,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":578},{"%":516},{"%":515},{"%":518},{"%":517}],"O":[{"%":579,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":580,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":581,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":582,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":583,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":584,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":579}],"O":[{"%":585,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":585},{"%":514}],"O":[{"%":586,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":586},{"%":511},{"%":510},{"%":513},{"%":512}],"O":[{"%":587,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":588,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":589,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":590,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":591,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":592,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":587}],"O":[{"%":593,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":593},{"%":509}],"O":[{"%":594,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":594},{"%":506},{"%":505},{"%":508},{"%":507}],"O":[{"%":595,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":596,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":597,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":598,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":599,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":600,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":595}],"O":[{"%":601,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":601},{"%":504}],"O":[{"%":602,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":602},{"%":501},{"%":500},{"%":503},{"%":502}],"O":[{"%":603,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":604,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":605,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":606,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":607,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":608,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":603}],"O":[{"%":609,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":609},{"%":499}],"O":[{"%":610,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":610},{"%":496},{"%":495},{"%":498},{"%":497}],"O":[{"%":611,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":612,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":613,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":614,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":615,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":616,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":611}],"O":[{"%":617,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":617},{"%":494}],"O":[{"%":618,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":618},{"%":491},{"%":490},{"%":493},{"%":492}],"O":[{"%":619,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":620,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":621,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":622,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":623,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":624,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":619}],"O":[{"%":625,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/Conv2D/"},"N":"struct_name"}],"I":[{"%":625},{"%":489}],"O":[{"%":626,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":626},{"%":486},{"%":485},{"%":488},{"%":487}],"O":[{"%":627,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}},{"%":628,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":629,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":630,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":631,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":632,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/ReLU/"},"N":"struct_name"}],"I":[{"%":627}],"O":[{"%":633,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":634,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":585},{"%":593},{"%":601},{"%":609},{"%":617},{"%":625},{"%":633}],"O":[{"%":635,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":635},{"%":634}],"O":[{"%":636,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,336,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/Conv2D/"},"N":"struct_name"}],"I":[{"%":636},{"%":484}],"O":[{"%":637,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":637},{"%":481},{"%":480},{"%":483},{"%":482}],"O":[{"%":638,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":639,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":640,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":641,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":642,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":643,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/ReLU/"},"N":"struct_name"}],"I":[{"%":638}],"O":[{"%":644,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/Conv2D/"},"N":"struct_name"}],"I":[{"%":644},{"%":479}],"O":[{"%":645,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":645},{"%":476},{"%":475},{"%":478},{"%":477}],"O":[{"%":646,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}},{"%":647,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":648,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":649,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":650,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":651,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/ReLU/"},"N":"struct_name"}],"I":[{"%":646}],"O":[{"%":652,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":128},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":652},{"%":474}],"O":[{"%":653,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":653},{"%":471},{"%":470},{"%":473},{"%":472}],"O":[{"%":654,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]}},{"%":655,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":656,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":657,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":658,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":659,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":654},{"%":469}],"O":[{"%":660,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":660},{"%":466},{"%":465},{"%":468},{"%":467}],"O":[{"%":661,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":662,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":663,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":664,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":665,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":666,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":661}],"O":[{"%":667,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":667},{"%":464}],"O":[{"%":668,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":668},{"%":461},{"%":460},{"%":463},{"%":462}],"O":[{"%":669,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":670,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":671,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":672,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":673,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":674,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":669}],"O":[{"%":675,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":675},{"%":459}],"O":[{"%":676,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":676},{"%":456},{"%":455},{"%":458},{"%":457}],"O":[{"%":677,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":678,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":679,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":680,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":681,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":682,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":677}],"O":[{"%":683,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":683},{"%":454}],"O":[{"%":684,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":684},{"%":451},{"%":450},{"%":453},{"%":452}],"O":[{"%":685,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":686,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":687,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":688,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":689,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":690,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":685}],"O":[{"%":691,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":691},{"%":449}],"O":[{"%":692,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":692},{"%":446},{"%":445},{"%":448},{"%":447}],"O":[{"%":693,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":694,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":695,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":696,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":697,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":698,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":693}],"O":[{"%":699,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/Conv2D/"},"N":"struct_name"}],"I":[{"%":699},{"%":444}],"O":[{"%":700,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":700},{"%":441},{"%":440},{"%":443},{"%":442}],"O":[{"%":701,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}},{"%":702,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":703,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":704,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":705,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":706,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/ReLU/"},"N":"struct_name"}],"I":[{"%":701}],"O":[{"%":707,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":708,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":654},{"%":667},{"%":675},{"%":683},{"%":691},{"%":699},{"%":707}],"O":[{"%":709,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":709},{"%":708}],"O":[{"%":710,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,704,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/Conv2D/"},"N":"struct_name"}],"I":[{"%":710},{"%":439}],"O":[{"%":711,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":711},{"%":436},{"%":435},{"%":438},{"%":437}],"O":[{"%":712,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}},{"%":713,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":714,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":715,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":716,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":717,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/ReLU/"},"N":"struct_name"}],"I":[{"%":712}],"O":[{"%":718,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/Conv2D/"},"N":"struct_name"}],"I":[{"%":718},{"%":434}],"O":[{"%":719,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":719},{"%":431},{"%":430},{"%":433},{"%":432}],"O":[{"%":720,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":721,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":722,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":723,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":724,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":725,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/ReLU/"},"N":"struct_name"}],"I":[{"%":720}],"O":[{"%":726,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":512},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":726},{"%":429}],"O":[{"%":727,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":727},{"%":426},{"%":425},{"%":428},{"%":427}],"O":[{"%":728,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":729,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":730,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":731,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":732,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":733,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":728},{"%":424}],"O":[{"%":734,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":734},{"%":421},{"%":420},{"%":423},{"%":422}],"O":[{"%":735,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":736,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":737,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":738,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":739,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":740,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":735},{"%":419}],"O":[{"%":741,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":741},{"%":416},{"%":415},{"%":418},{"%":417}],"O":[{"%":742,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":743,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":744,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":745,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":746,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":747,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":742}],"O":[{"%":748,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":748},{"%":414}],"O":[{"%":749,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":749},{"%":411},{"%":410},{"%":413},{"%":412}],"O":[{"%":750,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":751,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":752,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":753,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":754,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":755,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":750},{"%":409}],"O":[{"%":756,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":756},{"%":406},{"%":405},{"%":408},{"%":407}],"O":[{"%":757,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":758,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":759,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":760,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":761,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":762,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":757}],"O":[{"%":763,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":763},{"%":404}],"O":[{"%":764,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":764},{"%":401},{"%":400},{"%":403},{"%":402}],"O":[{"%":765,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":766,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":767,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":768,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":769,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":770,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":765},{"%":399}],"O":[{"%":771,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":771},{"%":396},{"%":395},{"%":398},{"%":397}],"O":[{"%":772,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":773,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":774,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":775,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":776,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":777,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":772}],"O":[{"%":778,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":778},{"%":394}],"O":[{"%":779,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":779},{"%":391},{"%":390},{"%":393},{"%":392}],"O":[{"%":780,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":781,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":782,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":783,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":784,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":785,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":780},{"%":389}],"O":[{"%":786,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":786},{"%":386},{"%":385},{"%":388},{"%":387}],"O":[{"%":787,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":788,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":789,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":790,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":791,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":792,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":787}],"O":[{"%":793,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":793},{"%":384}],"O":[{"%":794,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":794},{"%":381},{"%":380},{"%":383},{"%":382}],"O":[{"%":795,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":796,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":797,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":798,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":799,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":800,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":795},{"%":379}],"O":[{"%":801,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":801},{"%":376},{"%":375},{"%":378},{"%":377}],"O":[{"%":802,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":803,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":804,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":805,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":806,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":807,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":802}],"O":[{"%":808,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":808},{"%":374}],"O":[{"%":809,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":809},{"%":371},{"%":370},{"%":373},{"%":372}],"O":[{"%":810,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":811,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":812,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":813,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":814,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":815,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":810},{"%":369}],"O":[{"%":816,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":816},{"%":366},{"%":365},{"%":368},{"%":367}],"O":[{"%":817,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":818,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":819,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":820,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":821,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":822,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":817}],"O":[{"%":823,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":824,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":728},{"%":748},{"%":763},{"%":778},{"%":793},{"%":808},{"%":823}],"O":[{"%":825,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":825},{"%":824}],"O":[{"%":826,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1664,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":826},{"%":364}],"O":[{"%":827,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":827},{"%":361},{"%":360},{"%":363},{"%":362}],"O":[{"%":828,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":829,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":830,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":831,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":832,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":833,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":828}],"O":[{"%":834,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":834},{"%":359}],"O":[{"%":835,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":835},{"%":356},{"%":355},{"%":358},{"%":357}],"O":[{"%":836,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":837,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":838,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":839,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":840,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":841,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":836}],"O":[{"%":842,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":842},{"%":354}],"O":[{"%":843,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":843},{"%":351},{"%":350},{"%":353},{"%":352}],"O":[{"%":844,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":845,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":846,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":847,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":848,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":849,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":844},{"%":349}],"O":[{"%":850,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":850},{"%":346},{"%":345},{"%":348},{"%":347}],"O":[{"%":851,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":852,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":853,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":854,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":855,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":856,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":851}],"O":[{"%":857,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":857},{"%":344}],"O":[{"%":858,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":858},{"%":341},{"%":340},{"%":343},{"%":342}],"O":[{"%":859,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":860,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":861,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":862,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":863,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":864,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":859},{"%":339}],"O":[{"%":865,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":865},{"%":336},{"%":335},{"%":338},{"%":337}],"O":[{"%":866,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":867,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":868,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":869,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":870,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":871,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":866}],"O":[{"%":872,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":872},{"%":334}],"O":[{"%":873,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":873},{"%":331},{"%":330},{"%":333},{"%":332}],"O":[{"%":874,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":875,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":876,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":877,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":878,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":879,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":874},{"%":329}],"O":[{"%":880,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":880},{"%":326},{"%":325},{"%":328},{"%":327}],"O":[{"%":881,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":882,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":883,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":884,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":885,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":886,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":881}],"O":[{"%":887,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":887},{"%":324}],"O":[{"%":888,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":888},{"%":321},{"%":320},{"%":323},{"%":322}],"O":[{"%":889,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":890,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":891,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":892,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":893,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":894,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":889},{"%":319}],"O":[{"%":895,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":895},{"%":316},{"%":315},{"%":318},{"%":317}],"O":[{"%":896,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":897,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":898,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":899,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":900,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":901,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":896}],"O":[{"%":902,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":902},{"%":314}],"O":[{"%":903,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":903},{"%":311},{"%":310},{"%":313},{"%":312}],"O":[{"%":904,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":905,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":906,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":907,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":908,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":909,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":904},{"%":309}],"O":[{"%":910,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":910},{"%":306},{"%":305},{"%":308},{"%":307}],"O":[{"%":911,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":912,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":913,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":914,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":915,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":916,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":911}],"O":[{"%":917,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":917},{"%":304}],"O":[{"%":918,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":918},{"%":301},{"%":300},{"%":303},{"%":302}],"O":[{"%":919,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":920,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":921,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":922,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":923,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":924,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":919},{"%":299}],"O":[{"%":925,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":925},{"%":296},{"%":295},{"%":298},{"%":297}],"O":[{"%":926,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":927,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":928,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":929,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":930,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":931,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":926}],"O":[{"%":932,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[],"O":[{"%":933,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":842},{"%":857},{"%":872},{"%":887},{"%":902},{"%":917},{"%":932}],"O":[{"%":934,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":934},{"%":933}],"O":[{"%":935,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2176,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":935},{"%":294}],"O":[{"%":936,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":936},{"%":291},{"%":290},{"%":293},{"%":292}],"O":[{"%":937,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":938,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":939,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":940,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":941,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":942,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":937}],"O":[{"%":943,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":943},{"%":289}],"O":[{"%":944,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":944},{"%":286},{"%":285},{"%":288},{"%":287}],"O":[{"%":945,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":946,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":947,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":948,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":949,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":950,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":945}],"O":[{"%":951,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":951},{"%":842}],"O":[{"%":952,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":952},{"%":284}],"O":[{"%":953,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":953},{"%":281},{"%":280},{"%":283},{"%":282}],"O":[{"%":954,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":955,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":956,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":957,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":958,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":959,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":954},{"%":279}],"O":[{"%":960,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":960},{"%":276},{"%":275},{"%":278},{"%":277}],"O":[{"%":961,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":962,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":963,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":964,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":965,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":966,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":961}],"O":[{"%":967,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":967},{"%":274}],"O":[{"%":968,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":968},{"%":271},{"%":270},{"%":273},{"%":272}],"O":[{"%":969,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":970,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":971,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":972,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":973,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":974,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":969},{"%":269}],"O":[{"%":975,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":975},{"%":266},{"%":265},{"%":268},{"%":267}],"O":[{"%":976,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":977,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":978,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":979,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":980,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":981,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":976}],"O":[{"%":982,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":982},{"%":264}],"O":[{"%":983,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":983},{"%":261},{"%":260},{"%":263},{"%":262}],"O":[{"%":984,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":985,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":986,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":987,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":988,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":989,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":984},{"%":259}],"O":[{"%":990,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":990},{"%":256},{"%":255},{"%":258},{"%":257}],"O":[{"%":991,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":992,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":993,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":994,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":995,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":996,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":991}],"O":[{"%":997,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":997},{"%":254}],"O":[{"%":998,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":998},{"%":251},{"%":250},{"%":253},{"%":252}],"O":[{"%":999,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1000,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1001,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1002,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1003,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1004,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":999},{"%":249}],"O":[{"%":1005,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1005},{"%":246},{"%":245},{"%":248},{"%":247}],"O":[{"%":1006,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1007,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1008,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1009,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1010,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1011,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1006}],"O":[{"%":1012,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1012},{"%":244}],"O":[{"%":1013,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1013},{"%":241},{"%":240},{"%":243},{"%":242}],"O":[{"%":1014,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1015,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1016,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1017,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1018,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1019,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1014},{"%":239}],"O":[{"%":1020,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1020},{"%":236},{"%":235},{"%":238},{"%":237}],"O":[{"%":1021,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1022,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1023,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1024,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1025,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1026,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1021}],"O":[{"%":1027,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1027},{"%":234}],"O":[{"%":1028,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1028},{"%":231},{"%":230},{"%":233},{"%":232}],"O":[{"%":1029,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1030,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1031,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1032,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1033,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1034,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1029},{"%":229}],"O":[{"%":1035,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1035},{"%":226},{"%":225},{"%":228},{"%":227}],"O":[{"%":1036,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}},{"%":1037,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1038,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1039,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1040,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":1041,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1036}],"O":[{"%":1042,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1043,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":952},{"%":967},{"%":982},{"%":997},{"%":1012},{"%":1027},{"%":1042}],"O":[{"%":1044,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":1044},{"%":1043}],"O":[{"%":1045,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2176,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1045},{"%":224}],"O":[{"%":1046,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1046},{"%":221},{"%":220},{"%":223},{"%":222}],"O":[{"%":1047,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}},{"%":1048,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":1049,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":1050,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":1051,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":1052,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":1047}],"O":[{"%":1053,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1053},{"%":219}],"O":[{"%":1054,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1054},{"%":216},{"%":215},{"%":218},{"%":217}],"O":[{"%":1055,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":1056,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1057,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1058,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1059,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1060,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1055}],"O":[{"%":1061,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":1061},{"%":952}],"O":[{"%":1062,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":1024},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1062},{"%":214}],"O":[{"%":1063,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1063},{"%":211},{"%":210},{"%":213},{"%":212}],"O":[{"%":1064,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":1065,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1066,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1067,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1068,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1069,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1064},{"%":209}],"O":[{"%":1070,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1070},{"%":206},{"%":205},{"%":208},{"%":207}],"O":[{"%":1071,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1072,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1073,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1074,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1075,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1076,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1071},{"%":204}],"O":[{"%":1077,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1077},{"%":201},{"%":200},{"%":203},{"%":202}],"O":[{"%":1078,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1079,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1080,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1081,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1082,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1083,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1078}],"O":[{"%":1084,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1084},{"%":199}],"O":[{"%":1085,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1085},{"%":196},{"%":195},{"%":198},{"%":197}],"O":[{"%":1086,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1087,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1088,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1089,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1090,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1091,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1086},{"%":194}],"O":[{"%":1092,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1092},{"%":191},{"%":190},{"%":193},{"%":192}],"O":[{"%":1093,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1094,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1095,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1096,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1097,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1098,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1093}],"O":[{"%":1099,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1099},{"%":189}],"O":[{"%":1100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1100},{"%":186},{"%":185},{"%":188},{"%":187}],"O":[{"%":1101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1101},{"%":184}],"O":[{"%":1107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1107},{"%":181},{"%":180},{"%":183},{"%":182}],"O":[{"%":1108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1108}],"O":[{"%":1114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1114},{"%":179}],"O":[{"%":1115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1115},{"%":176},{"%":175},{"%":178},{"%":177}],"O":[{"%":1116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1116},{"%":174}],"O":[{"%":1122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1122},{"%":171},{"%":170},{"%":173},{"%":172}],"O":[{"%":1123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1123}],"O":[{"%":1129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1129},{"%":169}],"O":[{"%":1130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1130},{"%":166},{"%":165},{"%":168},{"%":167}],"O":[{"%":1131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1131},{"%":164}],"O":[{"%":1137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1137},{"%":161},{"%":160},{"%":163},{"%":162}],"O":[{"%":1138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1138}],"O":[{"%":1144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1144},{"%":159}],"O":[{"%":1145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1145},{"%":156},{"%":155},{"%":158},{"%":157}],"O":[{"%":1146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1146},{"%":154}],"O":[{"%":1152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1152},{"%":151},{"%":150},{"%":153},{"%":152}],"O":[{"%":1153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}},{"%":1154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1153}],"O":[{"%":1159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":1160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":1064},{"%":1084},{"%":1099},{"%":1114},{"%":1129},{"%":1144},{"%":1159}],"O":[{"%":1161,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":1161},{"%":1160}],"O":[{"%":1162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3328,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1162},{"%":149}],"O":[{"%":1163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1163},{"%":146},{"%":145},{"%":148},{"%":147}],"O":[{"%":1164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}},{"%":1165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":1164}],"O":[{"%":1170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1170},{"%":144}],"O":[{"%":1171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1171},{"%":141},{"%":140},{"%":143},{"%":142}],"O":[{"%":1172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,-1,-1],"NCHW",[],0]}},{"%":1173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1172}],"O":[{"%":1178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D/"},"N":"struct_name"}],"I":[{"%":1178},{"%":136}],"O":[{"%":1179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1062},{"%":137}],"O":[{"%":1180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":726},{"%":138}],"O":[{"%":1181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":652},{"%":139}],"O":[{"%":1182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1179},{"%":0},{"%":0},{"%":0}],"O":[{"%":1183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1180},{"%":1183}],"O":[{"%":1184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1184},{"%":0},{"%":0},{"%":0}],"O":[{"%":1185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1181},{"%":1185}],"O":[{"%":1186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1186},{"%":0},{"%":0},{"%":0}],"O":[{"%":1187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1182},{"%":1187}],"O":[{"%":1188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1179},{"%":132}],"O":[{"%":1189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1184},{"%":133}],"O":[{"%":1190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1186},{"%":134}],"O":[{"%":1191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1188},{"%":135}],"O":[{"%":1192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1192},{"%":131}],"O":[{"%":1193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1191},{"%":1193}],"O":[{"%":1194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1194},{"%":130}],"O":[{"%":1195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1190},{"%":1195}],"O":[{"%":1196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1196},{"%":129}],"O":[{"%":1197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1189},{"%":1197}],"O":[{"%":1198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_11/"},"N":"struct_name"}],"I":[{"%":1192},{"%":128}],"O":[{"%":1199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_12/"},"N":"struct_name"}],"I":[{"%":1194},{"%":127}],"O":[{"%":1200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_13/"},"N":"struct_name"}],"I":[{"%":1196},{"%":126}],"O":[{"%":1201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":4},{"#":"0.a_i32","D":4}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/Conv2D_14/"},"N":"struct_name"}],"I":[{"%":1198},{"%":125}],"O":[{"%":1202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D/"},"N":"struct_name"}],"I":[{"%":1202},{"%":46}],"O":[{"%":1203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D/"},"N":"struct_name"}],"I":[{"%":45},{"%":1204}],"O":[{"%":1205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D/"},"N":"struct_name"}],"I":[{"%":1203},{"%":1205}],"O":[{"%":1206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1206},{"%":30}],"O":[{"%":1207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":29},{"%":1208}],"O":[{"%":1209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1207},{"%":1209}],"O":[{"%":1210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1206},{"%":42}],"O":[{"%":1211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":41},{"%":1212}],"O":[{"%":1213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1211},{"%":1213}],"O":[{"%":1214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1206},{"%":36}],"O":[{"%":1215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_3/"},"N":"struct_name"}],"I":[],"O":[{"%":1216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":35},{"%":1216}],"O":[{"%":1217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1215},{"%":1217}],"O":[{"%":1218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1210},{"%":1214}],"O":[{"%":1219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1219},{"%":1218}],"O":[{"%":1220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1220},{"%":28}],"O":[{"%":1221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_4/"},"N":"struct_name"}],"I":[],"O":[{"%":1222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":27},{"%":1222}],"O":[{"%":1223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1221},{"%":1223}],"O":[{"%":1224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1220},{"%":40}],"O":[{"%":1225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_5/"},"N":"struct_name"}],"I":[],"O":[{"%":1226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":39},{"%":1226}],"O":[{"%":1227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1225},{"%":1227}],"O":[{"%":1228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1220},{"%":34}],"O":[{"%":1229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_6/"},"N":"struct_name"}],"I":[],"O":[{"%":1230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":33},{"%":1230}],"O":[{"%":1231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1229},{"%":1231}],"O":[{"%":1232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1224},{"%":1228}],"O":[{"%":1233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1233},{"%":1232}],"O":[{"%":1234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1234},{"%":26}],"O":[{"%":1235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_7/"},"N":"struct_name"}],"I":[],"O":[{"%":1236,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":25},{"%":1236}],"O":[{"%":1237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1235},{"%":1237}],"O":[{"%":1238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1234},{"%":38}],"O":[{"%":1239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_8/"},"N":"struct_name"}],"I":[],"O":[{"%":1240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":37},{"%":1240}],"O":[{"%":1241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1239},{"%":1241}],"O":[{"%":1242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1234},{"%":32}],"O":[{"%":1243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_9/"},"N":"struct_name"}],"I":[],"O":[{"%":1244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":31},{"%":1244}],"O":[{"%":1245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1243},{"%":1245}],"O":[{"%":1246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1238},{"%":1242}],"O":[{"%":1247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1247},{"%":1246}],"O":[{"%":1248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1248},{"%":44}],"O":[{"%":1249,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_10/"},"N":"struct_name"}],"I":[],"O":[{"%":1250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":43},{"%":1250}],"O":[{"%":1251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1249},{"%":1251}],"O":[{"%":1252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1252},{"%":22},{"%":21},{"%":24},{"%":23}],"O":[{"%":1253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/ReLU/"},"N":"struct_name"}],"I":[{"%":1253}],"O":[{"%":1259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock/"},"N":"struct_name"}],"I":[{"%":1202},{"%":1259}],"O":[{"%":1260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1201},{"%":72}],"O":[{"%":1261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":71},{"%":1262}],"O":[{"%":1263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1261},{"%":1263}],"O":[{"%":1264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1264},{"%":56}],"O":[{"%":1265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":55},{"%":1266}],"O":[{"%":1267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1265},{"%":1267}],"O":[{"%":1268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1264},{"%":68}],"O":[{"%":1269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":67},{"%":1270}],"O":[{"%":1271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1269},{"%":1271}],"O":[{"%":1272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1264},{"%":62}],"O":[{"%":1273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_3/"},"N":"struct_name"}],"I":[],"O":[{"%":1274,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":61},{"%":1274}],"O":[{"%":1275,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1273},{"%":1275}],"O":[{"%":1276,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1268},{"%":1272}],"O":[{"%":1277,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1277},{"%":1276}],"O":[{"%":1278,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1278},{"%":54}],"O":[{"%":1279,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_4/"},"N":"struct_name"}],"I":[],"O":[{"%":1280,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":53},{"%":1280}],"O":[{"%":1281,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1279},{"%":1281}],"O":[{"%":1282,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1278},{"%":66}],"O":[{"%":1283,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_5/"},"N":"struct_name"}],"I":[],"O":[{"%":1284,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":65},{"%":1284}],"O":[{"%":1285,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1283},{"%":1285}],"O":[{"%":1286,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1278},{"%":60}],"O":[{"%":1287,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_6/"},"N":"struct_name"}],"I":[],"O":[{"%":1288,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":59},{"%":1288}],"O":[{"%":1289,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1287},{"%":1289}],"O":[{"%":1290,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1282},{"%":1286}],"O":[{"%":1291,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1291},{"%":1290}],"O":[{"%":1292,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1292},{"%":52}],"O":[{"%":1293,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_7/"},"N":"struct_name"}],"I":[],"O":[{"%":1294,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":51},{"%":1294}],"O":[{"%":1295,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1293},{"%":1295}],"O":[{"%":1296,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1292},{"%":64}],"O":[{"%":1297,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_8/"},"N":"struct_name"}],"I":[],"O":[{"%":1298,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":63},{"%":1298}],"O":[{"%":1299,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1297},{"%":1299}],"O":[{"%":1300,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1292},{"%":58}],"O":[{"%":1301,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_9/"},"N":"struct_name"}],"I":[],"O":[{"%":1302,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":57},{"%":1302}],"O":[{"%":1303,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1301},{"%":1303}],"O":[{"%":1304,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1296},{"%":1300}],"O":[{"%":1305,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1305},{"%":1304}],"O":[{"%":1306,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1306},{"%":70}],"O":[{"%":1307,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_10/"},"N":"struct_name"}],"I":[],"O":[{"%":1308,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":69},{"%":1308}],"O":[{"%":1309,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1307},{"%":1309}],"O":[{"%":1310,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1310},{"%":48},{"%":47},{"%":50},{"%":49}],"O":[{"%":1311,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1312,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1313,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1314,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1315,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1316,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1311}],"O":[{"%":1317,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_1/"},"N":"struct_name"}],"I":[{"%":1201},{"%":1317}],"O":[{"%":1318,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":1200},{"%":98}],"O":[{"%":1319,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1320,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":97},{"%":1320}],"O":[{"%":1321,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":1319},{"%":1321}],"O":[{"%":1322,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1322},{"%":82}],"O":[{"%":1323,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1324,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":81},{"%":1324}],"O":[{"%":1325,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1323},{"%":1325}],"O":[{"%":1326,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1322},{"%":94}],"O":[{"%":1327,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1328,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":93},{"%":1328}],"O":[{"%":1329,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1327},{"%":1329}],"O":[{"%":1330,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1322},{"%":88}],"O":[{"%":1331,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_3/"},"N":"struct_name"}],"I":[],"O":[{"%":1332,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":87},{"%":1332}],"O":[{"%":1333,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1331},{"%":1333}],"O":[{"%":1334,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1326},{"%":1330}],"O":[{"%":1335,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1335},{"%":1334}],"O":[{"%":1336,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1336},{"%":80}],"O":[{"%":1337,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_4/"},"N":"struct_name"}],"I":[],"O":[{"%":1338,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":79},{"%":1338}],"O":[{"%":1339,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1337},{"%":1339}],"O":[{"%":1340,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1336},{"%":92}],"O":[{"%":1341,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_5/"},"N":"struct_name"}],"I":[],"O":[{"%":1342,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":91},{"%":1342}],"O":[{"%":1343,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1341},{"%":1343}],"O":[{"%":1344,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1336},{"%":86}],"O":[{"%":1345,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_6/"},"N":"struct_name"}],"I":[],"O":[{"%":1346,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":85},{"%":1346}],"O":[{"%":1347,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1345},{"%":1347}],"O":[{"%":1348,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1340},{"%":1344}],"O":[{"%":1349,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1349},{"%":1348}],"O":[{"%":1350,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1350},{"%":78}],"O":[{"%":1351,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_7/"},"N":"struct_name"}],"I":[],"O":[{"%":1352,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":77},{"%":1352}],"O":[{"%":1353,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1351},{"%":1353}],"O":[{"%":1354,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1350},{"%":90}],"O":[{"%":1355,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_8/"},"N":"struct_name"}],"I":[],"O":[{"%":1356,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":89},{"%":1356}],"O":[{"%":1357,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1355},{"%":1357}],"O":[{"%":1358,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1350},{"%":84}],"O":[{"%":1359,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_9/"},"N":"struct_name"}],"I":[],"O":[{"%":1360,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":83},{"%":1360}],"O":[{"%":1361,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1359},{"%":1361}],"O":[{"%":1362,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1354},{"%":1358}],"O":[{"%":1363,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1363},{"%":1362}],"O":[{"%":1364,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1364},{"%":96}],"O":[{"%":1365,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_10/"},"N":"struct_name"}],"I":[],"O":[{"%":1366,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":95},{"%":1366}],"O":[{"%":1367,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1365},{"%":1367}],"O":[{"%":1368,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1368},{"%":74},{"%":73},{"%":76},{"%":75}],"O":[{"%":1369,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1370,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1371,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1372,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1373,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1374,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/ReLU/"},"N":"struct_name"}],"I":[{"%":1369}],"O":[{"%":1375,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_2/"},"N":"struct_name"}],"I":[{"%":1200},{"%":1375}],"O":[{"%":1376,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":1199},{"%":124}],"O":[{"%":1377,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1378,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":123},{"%":1378}],"O":[{"%":1379,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":1377},{"%":1379}],"O":[{"%":1380,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1380},{"%":108}],"O":[{"%":1381,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1382,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":107},{"%":1382}],"O":[{"%":1383,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_1/"},"N":"struct_name"}],"I":[{"%":1381},{"%":1383}],"O":[{"%":1384,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1380},{"%":120}],"O":[{"%":1385,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_2/"},"N":"struct_name"}],"I":[],"O":[{"%":1386,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":119},{"%":1386}],"O":[{"%":1387,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_2/"},"N":"struct_name"}],"I":[{"%":1385},{"%":1387}],"O":[{"%":1388,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1380},{"%":114}],"O":[{"%":1389,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_3/"},"N":"struct_name"}],"I":[],"O":[{"%":1390,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":113},{"%":1390}],"O":[{"%":1391,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_3/"},"N":"struct_name"}],"I":[{"%":1389},{"%":1391}],"O":[{"%":1392,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1384},{"%":1388}],"O":[{"%":1393,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1393},{"%":1392}],"O":[{"%":1394,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1394},{"%":106}],"O":[{"%":1395,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_4/"},"N":"struct_name"}],"I":[],"O":[{"%":1396,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":105},{"%":1396}],"O":[{"%":1397,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_4/"},"N":"struct_name"}],"I":[{"%":1395},{"%":1397}],"O":[{"%":1398,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1394},{"%":118}],"O":[{"%":1399,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_5/"},"N":"struct_name"}],"I":[],"O":[{"%":1400,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":117},{"%":1400}],"O":[{"%":1401,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_5/"},"N":"struct_name"}],"I":[{"%":1399},{"%":1401}],"O":[{"%":1402,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1394},{"%":112}],"O":[{"%":1403,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_6/"},"N":"struct_name"}],"I":[],"O":[{"%":1404,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":111},{"%":1404}],"O":[{"%":1405,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_6/"},"N":"struct_name"}],"I":[{"%":1403},{"%":1405}],"O":[{"%":1406,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1398},{"%":1402}],"O":[{"%":1407,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1407},{"%":1406}],"O":[{"%":1408,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1408},{"%":104}],"O":[{"%":1409,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_7/"},"N":"struct_name"}],"I":[],"O":[{"%":1410,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":103},{"%":1410}],"O":[{"%":1411,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_7/"},"N":"struct_name"}],"I":[{"%":1409},{"%":1411}],"O":[{"%":1412,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1408},{"%":116}],"O":[{"%":1413,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_8/"},"N":"struct_name"}],"I":[],"O":[{"%":1414,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":115},{"%":1414}],"O":[{"%":1415,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_8/"},"N":"struct_name"}],"I":[{"%":1413},{"%":1415}],"O":[{"%":1416,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1408},{"%":110}],"O":[{"%":1417,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_9/"},"N":"struct_name"}],"I":[],"O":[{"%":1418,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":109},{"%":1418}],"O":[{"%":1419,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,32,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_9/"},"N":"struct_name"}],"I":[{"%":1417},{"%":1419}],"O":[{"%":1420,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1412},{"%":1416}],"O":[{"%":1421,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1421},{"%":1420}],"O":[{"%":1422,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1422},{"%":122}],"O":[{"%":1423,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_10/"},"N":"struct_name"}],"I":[],"O":[{"%":1424,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":121},{"%":1424}],"O":[{"%":1425,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/Conv2D_10/"},"N":"struct_name"}],"I":[{"%":1423},{"%":1425}],"O":[{"%":1426,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1426},{"%":100},{"%":99},{"%":102},{"%":101}],"O":[{"%":1427,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1428,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1429,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1430,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1431,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1432,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/ReLU/"},"N":"struct_name"}],"I":[{"%":1427}],"O":[{"%":1433,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/IntraCLBlock_3/"},"N":"struct_name"}],"I":[{"%":1199},{"%":1433}],"O":[{"%":1434,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":8.0},{"#":"0.a_f32","D":8.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1260},{"%":0},{"%":0},{"%":0}],"O":[{"%":1435,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":4.0},{"#":"0.a_f32","D":4.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1318},{"%":0},{"%":0},{"%":0}],"O":[{"%":1436,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1376},{"%":0},{"%":0},{"%":0}],"O":[{"%":1437,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[],"O":[{"%":1438,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1435},{"%":1436},{"%":1437},{"%":1434}],"O":[{"%":1439,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/LKPAN/"},"N":"struct_name"}],"I":[{"%":1439},{"%":1438}],"O":[{"%":1440,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2D/"},"N":"struct_name"}],"I":[{"%":1440},{"%":20}],"O":[{"%":1441,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":false},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/BatchNorm/"},"N":"struct_name"}],"I":[{"%":1441},{"%":17},{"%":16},{"%":19},{"%":18}],"O":[{"%":1442,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1443,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1444,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1445,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1446,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1447,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/BatchNorm/"},"N":"struct_name"}],"I":[{"%":1442}],"O":[{"%":1448,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[],"O":[{"%":1449,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[0],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.conv2d_transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_array","D":[]},"N":"output_padding"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[{"%":1448},{"%":15},{"%":1449}],"O":[{"%":1450,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":64},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[],"O":[{"%":1451,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[{"%":14},{"%":1451}],"O":[{"%":1452,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,64,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose/"},"N":"struct_name"}],"I":[{"%":1450},{"%":1452}],"O":[{"%":1453,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":false},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/BatchNorm_1/"},"N":"struct_name"}],"I":[{"%":1453},{"%":11},{"%":10},{"%":13},{"%":12}],"O":[{"%":1454,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1455,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1456,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1457,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1458,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1459,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/BatchNorm_1/"},"N":"struct_name"}],"I":[{"%":1454}],"O":[{"%":1460,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1461,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[0],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.conv2d_transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_array","D":[]},"N":"output_padding"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[{"%":1460},{"%":9},{"%":1461}],"O":[{"%":1462,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1463,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[{"%":8},{"%":1463}],"O":[{"%":1464,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,1,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/Conv2DTranspose_1/"},"N":"struct_name"}],"I":[{"%":1462},{"%":1464}],"O":[{"%":1465,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.sigmoid","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Head/"},"N":"struct_name"}],"I":[{"%":1465}],"O":[{"%":1466,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.nearest_interp","A":[{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_d"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_h"},{"AT":{"#":"0.a_i32","D":-1},"N":"out_w"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_f32","D":2.0},{"#":"0.a_f32","D":2.0}]},"N":"scale"},{"AT":{"#":"0.a_str","D":"nearest"},"N":"interp_method"},{"AT":{"#":"0.a_bool","D":false},"N":"align_corners"},{"AT":{"#":"0.a_i32","D":1},"N":"align_mode"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/Upsample/"},"N":"struct_name"}],"I":[{"%":1460},{"%":0},{"%":0},{"%":0}],"O":[{"%":1467,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/"},"N":"struct_name"}],"I":[],"O":[{"%":1468,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/"},"N":"struct_name"}],"I":[{"%":1466},{"%":1467}],"O":[{"%":1469,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/"},"N":"struct_name"}],"I":[{"%":1469},{"%":1468}],"O":[{"%":1470,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,65,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":1470},{"%":7}],"O":[{"%":1471,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":false},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/ConvBNLayer/BatchNorm/"},"N":"struct_name"}],"I":[{"%":1471},{"%":4},{"%":3},{"%":6},{"%":5}],"O":[{"%":1472,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}},{"%":1473,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1474,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1475,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1476,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":1477,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/ConvBNLayer/"},"N":"struct_name"}],"I":[{"%":1472}],"O":[{"%":1478,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":1478},{"%":2}],"O":[{"%":1479,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":1},{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/Conv2D/"},"N":"struct_name"}],"I":[],"O":[{"%":1480,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":1},{"%":1480}],"O":[{"%":1481,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1,1,1,1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/LocalModule/Conv2D/"},"N":"struct_name"}],"I":[{"%":1479},{"%":1481}],"O":[{"%":1482,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.sigmoid","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/"},"N":"struct_name"}],"I":[{"%":1482}],"O":[{"%":1483,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PFHeadLocal/"},"N":"struct_name"}],"I":[{"%":1466},{"%":1483}],"O":[{"%":1484,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.5},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/"},"N":"struct_name"}],"I":[],"O":[{"%":1485,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.scale","A":[{"AT":{"#":"0.a_f32","D":0.0},"N":"bias"},{"AT":{"#":"0.a_bool","D":true},"N":"bias_after_scale"},{"AT":{"#":"0.a_str","D":"/PFHeadLocal/"},"N":"struct_name"}],"I":[{"%":1484},{"%":1485}],"O":[{"%":1486,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.fetch","A":[{"AT":{"#":"0.a_str","D":"fetch_name_0"},"N":"name"},{"AT":{"#":"0.a_i32","D":0},"N":"col"}],"I":[{"%":1486}],"O":[{"%":1487,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"persistable"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]}]}]}]}} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.yml b/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.yml new file mode 100644 index 0000000..c4f1631 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_det/inference.yml @@ -0,0 +1,53 @@ +Global: + model_name: PP-OCRv5_server_det +Hpi: + backend_configs: + paddle_infer: + trt_dynamic_shapes: &id001 + x: + - - 1 + - 3 + - 32 + - 32 + - - 1 + - 3 + - 736 + - 736 + - - 1 + - 3 + - 4000 + - 4000 + tensorrt: + dynamic_shapes: *id001 +PreProcess: + transform_ops: + - DecodeImage: + channel_first: false + img_mode: BGR + - DetLabelEncode: null + - DetResizeForTest: + resize_long: 960 + - NormalizeImage: + mean: + - 0.485 + - 0.456 + - 0.406 + order: hwc + scale: 1./255. + std: + - 0.229 + - 0.224 + - 0.225 + - ToCHWImage: null + - KeepKeys: + keep_keys: + - image + - shape + - polys + - ignore_tags +PostProcess: + name: DBPostProcess + thresh: 0.3 + box_thresh: 0.6 + max_candidates: 1000 + unclip_ratio: 1.5 diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_rec/.msc b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/.msc new file mode 100644 index 0000000..c548141 Binary files /dev/null and b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/.msc differ diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_rec/.mv b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/.mv new file mode 100644 index 0000000..1a9527e --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/.mv @@ -0,0 +1 @@ +Revision:master,CreatedAt:1751519021 \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_rec/README.md b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/README.md new file mode 100644 index 0000000..b51166b --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/README.md @@ -0,0 +1,219 @@ +--- +license: apache-2.0 +library_name: PaddleOCR +language: +- en +- zh +pipeline_tag: image-to-text +tags: +- OCR +- PaddlePaddle +- PaddleOCR +--- + +# PP-OCRv5_server_rec + +## Introduction + +PP-OCRv5_server_rec is one of the PP-OCRv5_rec that are the latest generation text line recognition models developed by PaddleOCR team. It aims to efficiently and accurately support the recognition of four major languages—Simplified Chinese, Traditional Chinese, English, and Japanese—as well as complex text scenarios such as handwriting, vertical text, pinyin, and rare characters using a single model. The key accuracy metrics are as follow: + +| Handwritten Chinese | Handwritten English | Printed Chinese | Printed English | Traditional Chinese | Ancient Text | Japanese | General Scenario | Pinyin | Rotation | Distortion | Artistic Text | Average | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 0.5807 | 0.5806 | 0.9013 | 0.8679 | 0.7472 | 0.6039 | 0.7372 | 0.5946 | 0.8384 | 0.7435 | 0.9314 | 0.6397 | 0.8401 | + +**Note**: If any character (including punctuation) in a line was incorrect, the entire line was marked as wrong. This ensures higher accuracy in practical applications. + +## Quick Start + +### Installation + +1. PaddlePaddle + +Please refer to the following commands to install PaddlePaddle using pip: + +```bash +# for CUDA11.8 +python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ + +# for CUDA12.6 +python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/ + +# for CPU +python -m pip install paddlepaddle==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/ +``` + +For details about PaddlePaddle installation, please refer to the [PaddlePaddle official website](https://www.paddlepaddle.org.cn/en/install/quick). + +2. PaddleOCR + +Install the latest version of the PaddleOCR inference package from PyPI: + +```bash +python -m pip install paddleocr +``` + +### Model Usage + +You can quickly experience the functionality with a single command: + +```bash +paddleocr text_recognition \ + --model_name PP-OCRv5_server_rec \ + -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/2PZfbirjfxA88695lRmgk.jpeg +``` + +You can also integrate the model inference of the text recognition module into your project. Before running the following code, please download the sample image to your local machine. + +```python +from paddleocr import TextRecognition +model = TextRecognition(model_name="PP-OCRv5_server_rec") +output = model.predict(input="2PZfbirjfxA88695lRmgk.jpeg", batch_size=1) +for res in output: + res.print() + res.save_to_img(save_path="./output/") + res.save_to_json(save_path="./output/res.json") +``` + +After running, the obtained result is as follows: + +```json +{'res': {'input_path': '/root/.paddlex/predict_input/2PZfbirjfxA88695lRmgk.jpeg', 'page_index': None, 'rec_text': 'day as a reminder of the', 'rec_score': 0.9534505009651184}} +``` + +The visualized image is as follows: + +![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/ZDuFDBgLkRcinubSjIvpN.png) + +For details about usage command and descriptions of parameters, please refer to the [Document](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/module_usage/text_recognition.html#iii-quick-start). + +### Pipeline Usage + +The ability of a single model is limited. But the pipeline consists of several models can provide more capacity to resolve difficult problems in real-world scenarios. + +#### PP-OCRv5 + +The general OCR pipeline is used to solve text recognition tasks by extracting text information from images and outputting it in string format. And there are 5 modules in the pipeline: +* Document Image Orientation Classification Module (Optional) +* Text Image Unwarping Module (Optional) +* Text Line Orientation Classification Module (Optional) +* Text Detection Module +* Text Recognition Module + +Run a single command to quickly experience the OCR pipeline: + +```bash +paddleocr ocr -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/3ul2Rq4Sk5Cn-l69D695U.png \ + --text_recognition_model_name PP-OCRv5_server_rec \ + --use_doc_orientation_classify False \ + --use_doc_unwarping False \ + --use_textline_orientation True \ + --save_path ./output \ + --device gpu:0 +``` + +Results are printed to the terminal: + +```json +{'res': {'input_path': '/root/.paddlex/predict_input/3ul2Rq4Sk5Cn-l69D695U.png', 'page_index': None, 'model_settings': {'use_doc_preprocessor': True, 'use_textline_orientation': True}, 'doc_preprocessor_res': {'input_path': None, 'page_index': None, 'model_settings': {'use_doc_orientation_classify': False, 'use_doc_unwarping': False}, 'angle': -1}, 'dt_polys': array([[[ 352, 105], + ..., + [ 352, 128]], + + ..., + + [[ 632, 1431], + ..., + [ 632, 1447]]], dtype=int16), 'text_det_params': {'limit_side_len': 64, 'limit_type': 'min', 'thresh': 0.3, 'max_side_limit': 4000, 'box_thresh': 0.6, 'unclip_ratio': 1.5}, 'text_type': 'general', 'textline_orientation_angles': array([0, ..., 0]), 'text_rec_score_thresh': 0.0, 'rec_texts': ['Algorithms for the Markov Entropy Decomposition', 'Andrew J. Ferris and David Poulin', 'Département de Physique, Université de Sherbrooke, Québec, JlK 2R1, Canada', '(Dated: October 31, 2018)', 'The Markov entropy decomposition (MED) is a recently-proposed, cluster-based simulation method for fi-', 'nite temperature quantum systems with arbitrary geometry. In this paper, we detail numerical algorithms for', 'performing the required steps of the MED, principally solving a minimization problem with a preconditioned', 'arXiv:1212.1442v1 [cond-mat.stat-mech] 6Dec 2012', "Newton's algorithm, as well as how to extract global susceptibilities and thermal responses. We demonstrate", 'the power of the method with the spin-1/2 XXZ model on the 2D square lattice, including the extraction of', 'critical points and details of each phase. Although the method shares some qualitative similarities with exact-', 'diagonalization, we show the MED is both more accurate and significantly more flexible.', 'PACS numbers: 05.10.−a,02.50.Ng, 03.67.−a,74.40.Kb', 'I. INTRODUCTION', 'This approximation becomes exact in the case of a 1D quan', 'tum (or classical) Markov chain [10], and leads to an expo-', 'Although the equations governing quantum many-body', 'nential reduction of cost for exact entropy calculations when', 'systems are simple to write down, finding solutions for the', 'the global density matrix is a higher-dimensional Markov net-', 'majority of systems remains incredibly difficult. Modern', 'work state [12, 13].', 'physics finds itself in need of new tools to compute the emer-', 'The second approximation used in the MED approach is', 'gent behavior of large, many-body systems.', 'related to the N-representibility problem. Given a set of lo-', 'There has been a great variety of tools developed to tackle', 'cal but overlapping reduced density matrices {pi}, it is a very', 'many-body problems, but in general, large 2D and 3D quan-', 'challenging problem to determine if there exists a global den-', 'tum systems remain hard to deal with. Most systems are', 'sity operator which is positive semi-definite and whose partial', 'thought to be non-integrable, so exact analytic solutions are', 'trace agrees with each ρi. This problem is QMA-hard (the', 'not usually expected. Direct numerical diagonalization can be', 'quantum analogue of NP) [14, 15], and is hopelessly diffi-', 'performed for relatively small systems — however the emer-', 'cult to enforce. Thus, the second approximation employed', 'gent behavior of a system in the thermodynamic limit may be', 'involves ignoring global consistency with a positive opera-', 'difficult to extract, especially in systems with large correlation', 'tor, while requiring local consistency on any overlapping re-', 'lengths. Monte Carlo approaches are technically exact (up to', 'gions between the ρi. At the zero-temperature limit, the MED', 'sampling error), but suffer from the so-called sign problem', 'approach becomes analogous to the variational nth-order re-', 'for fermionic, frustrated, or dynamical problems. Thus we are', 'duced density matrix approach, where positivity is enforced', 'limited to search for clever approximations to solve the ma-', 'on all reduced density matrices of size n [16–18].', 'jority of many-body problems.', 'The MED approach is an extremely flexible cluster method.', 'Over the past century, hundreds of such approximations', 'applicable to both translationally invariant systems of any di-', 'have been proposed, and we will mention just a few notable', 'mension in the thermodynamic limit, as well as finite systems', 'examples applicable to quantum lattice models. Mean-field', 'or systems without translational invariance (e.g. disordered', 'theory is simple and frequently arrives at the correct quali-', 'lattices, or harmonically trapped atoms in optical lattices).', 'tative description, but often fails when correlations are im-', 'The free energy given by MED is guaranteed to lower bound', 'portant. Density-matrix renormalisation group (DMRG) [1]', 'the true free energy, which in turn lower-bounds the ground', 'is efficient and extremely accurate at solving 1D problems,', 'state energy — thus providing a natural complement to varia-', 'but the computational cost grows exponentially with system', 'tional approaches which upper-bound the ground state energy.', 'size in two- or higher-dimensions [2, 3]. Related tensor-', 'The ability to provide a rigorous ground-state energy window', 'network techniques designed for 2D systems are still in their', 'is a powerful validation tool, creating a very compelling rea-', 'infancy [4–6]. Series-expansion methods [7] can be success-', 'son to use this approach.', 'ful, but may diverge or otherwise converge slowly, obscuring', 'In this paper we paper we present a pedagogical introduc-', 'the state in certain regimes. There exist a variety of cluster-', 'tion to MED, including numerical implementation issues and', 'based techniques, such as dynamical-mean-field theory [8]', 'applications to 2D quantum lattice models in the thermody-', 'and density-matrix embedding [9]', 'namiclimit.InSec.II.wegiveabriefderiyationofthe', 'Here we discuss the so-called Markov entropy decompo-', 'Markov entropy decomposition. Section III outlines a robust', 'sition (MED), recently proposed by Poulin & Hastings [10]', 'numerical strategy for optimizing the clusters that make up', '(and analogous to a slightly earlier classical algorithm [11]).', 'the decomposition. In Sec. IV we show how we can extend', 'This is a self-consistent cluster method for finite temperature', 'these algorithms to extract non-trivial information, such as', 'systems that takes advantage of an approximation of the (von', 'specific heat and susceptibilities. We present an application of', 'Neumann) entropy. In [10], it was shown that the entropy', 'the method to the spin-1/2 XXZ model on a 2D square lattice', 'per site can be rigorously upper bounded using only local in-', 'in Sec. V, describing how to characterize the phase diagram', 'formation — a local, reduced density matrix on N sites, say.', 'and determine critical points, before concluding in Sec. VI.'], 'rec_scores': array([0.99273533, ..., 0.95753616]), 'rec_polys': array([[[ 352, 105], + ..., + [ 352, 128]], + + ..., + + [[ 632, 1431], + ..., + [ 632, 1447]]], dtype=int16), 'rec_boxes': array([[ 352, ..., 128], + ..., + [ 632, ..., 1447]], dtype=int16)}} +``` + +If save_path is specified, the visualization results will be saved under `save_path`. The visualization output is shown below: + +![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/uhwveSX8KU_wMkyU4jEaw.png) + +The command-line method is for quick experience. For project integration, also only a few codes are needed as well: + +```python +from paddleocr import PaddleOCR + +ocr = PaddleOCR( + text_recognition_model_name="PP-OCRv5_server_rec", + use_doc_orientation_classify=False, # Use use_doc_orientation_classify to enable/disable document orientation classification model + use_doc_unwarping=False, # Use use_doc_unwarping to enable/disable document unwarping module + use_textline_orientation=True, # Use use_textline_orientation to enable/disable textline orientation classification model + device="gpu:0", # Use device to specify GPU for model inference +) +result = ocr.predict("https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/3ul2Rq4Sk5Cn-l69D695U.png") +for res in result: + res.print() + res.save_to_img("output") + res.save_to_json("output") +``` + +The default model used in pipeline is `PP-OCRv5_server_rec`, and you can also use the local model file by argument `text_recognition_model_dir`. For details about usage command and descriptions of parameters, please refer to the [Document](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/pipeline_usage/OCR.html#2-quick-start). + +#### PP-StructureV3 + +Layout analysis is a technique used to extract structured information from document images. PP-StructureV3 includes the following six modules: +* Layout Detection Module +* General OCR Subline +* Document Image Preprocessing Subline (Optional) +* Table Recognition Subline (Optional) +* Seal Recognition Subline (Optional) +* Formula Recognition Subline (Optional) + +Run a single command to quickly experience the PP-StructureV3 pipeline: + +```bash +paddleocr pp_structurev3 -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/mG4tnwfrvECoFMu-S9mxo.png \ + --text_recognition_model_name PP-OCRv5_server_rec \ + --use_doc_orientation_classify False \ + --use_doc_unwarping False \ + --use_textline_orientation False \ + --device gpu:0 +``` + +Results are printed to the terminal: + +```json +``` + +If save_path is specified, the visualization results will be saved under `save_path`. The visualization output is shown below: + +![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/8h2nM0gig6aI03BXrPwxo.png) + + +Just a few lines of code can experience the inference of the pipeline. Taking the PP-StructureV3 pipeline as an example: + +```python +from paddleocr import PPStructureV3 + +pipeline = PPStructureV3( + text_recognition_model_name="PP-OCRv5_server_rec", + use_doc_orientation_classify=False, # Use use_doc_orientation_classify to enable/disable document orientation classification model + use_doc_unwarping=False, # Use use_doc_unwarping to enable/disable document unwarping module + use_textline_orientation=False, # Use use_textline_orientation to enable/disable textline orientation classification model + device="gpu:0", # Use device to specify GPU for model inference + ) +output = pipeline.predict("./pp_structure_v3_demo.png") +for res in output: + res.print() # Print the structured prediction output + res.save_to_json(save_path="output") ## Save the current image's structured result in JSON format + res.save_to_markdown(save_path="output") ## Save the current image's result in Markdown format +``` + +The default model used in pipeline is `PP-OCRv5_server_rec`, and you can also use the local model file by argument `text_recognition_model_dir`. For details about usage command and descriptions of parameters, please refer to the [Document](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/pipeline_usage/PP-StructureV3.html#2-quick-start). + +## Links + +[PaddleOCR Repo](https://github.com/paddlepaddle/paddleocr) + +[PaddleOCR Documentation](https://paddlepaddle.github.io/PaddleOCR/latest/en/index.html) diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_rec/config.json b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/config.json new file mode 100644 index 0000000..02221e9 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/config.json @@ -0,0 +1,18480 @@ +{ + "Global": { + "model_name": "PP-OCRv5_server_rec" + }, + "Hpi": { + "backend_configs": { + "paddle_infer": { + "trt_dynamic_shapes": { + "x": [ + [ + 1, + 3, + 48, + 160 + ], + [ + 1, + 3, + 48, + 320 + ], + [ + 8, + 3, + 48, + 3200 + ] + ] + } + }, + "tensorrt": { + "dynamic_shapes": { + "x": [ + [ + 1, + 3, + 48, + 160 + ], + [ + 1, + 3, + 48, + 320 + ], + [ + 8, + 3, + 48, + 3200 + ] + ] + } + } + } + }, + "PreProcess": { + "transform_ops": [ + { + "DecodeImage": { + "channel_first": false, + "img_mode": "BGR" + } + }, + { + "MultiLabelEncode": { + "gtc_encode": "NRTRLabelEncode" + } + }, + { + "RecResizeImg": { + "image_shape": [ + 3, + 48, + 320 + ] + } + }, + { + "KeepKeys": { + "keep_keys": [ + "image", + "label_ctc", + "label_gtc", + "length", + "valid_ratio" + ] + } + } + ] + }, + "PostProcess": { + "name": "CTCLabelDecode", + "character_dict": [ + " ", + "一", + "乙", + "二", + "十", + "丁", + "厂", + "七", + "卜", + "八", + "人", + "入", + "儿", + "匕", + "几", + "九", + "刁", + "了", + "刀", + "力", + "乃", + "又", + "三", + "干", + "于", + "亏", + "工", + "土", + "士", + "才", + "下", + "寸", + "大", + "丈", + "与", + "万", + "上", + "小", + "口", + "山", + "巾", + "千", + "乞", + "川", + "亿", + "个", + "夕", + "久", + "么", + "勺", + "凡", + "丸", + "及", + "广", + "亡", + "门", + "丫", + "义", + "之", + "尸", + "己", + "已", + "巳", + "弓", + "子", + "卫", + "也", + "女", + "刃", + "飞", + "习", + "叉", + "马", + "乡", + "丰", + "王", + "开", + "井", + "天", + "夫", + "元", + "无", + "云", + "专", + "丐", + "扎", + "艺", + "木", + "五", + "支", + "厅", + "不", + "犬", + "太", + "区", + "历", + "歹", + "友", + "尤", + "匹", + "车", + "巨", + "牙", + "屯", + "戈", + "比", + "互", + "切", + "瓦", + "止", + "少", + "曰", + "日", + "中", + "贝", + "冈", + "内", + "水", + "见", + "午", + "牛", + "手", + "气", + "毛", + "壬", + "升", + "夭", + "长", + "仁", + "什", + "片", + "仆", + "化", + "仇", + "币", + "仍", + "仅", + "斤", + "爪", + "反", + "介", + "父", + "从", + "仑", + "今", + "凶", + "分", + "乏", + "公", + "仓", + "月", + "氏", + "勿", + "欠", + "风", + "丹", + "匀", + "乌", + "勾", + "凤", + "六", + "文", + "亢", + "方", + "火", + "为", + "斗", + "忆", + "计", + "订", + "户", + "认", + "冗", + "讥", + "心", + "尺", + "引", + "丑", + "巴", + "孔", + "队", + "办", + "以", + "允", + "予", + "邓", + "劝", + "双", + "书", + "幻", + "玉", + "刊", + "未", + "末", + "示", + "击", + "打", + "巧", + "正", + "扑", + "卉", + "扒", + "功", + "扔", + "去", + "甘", + "世", + "艾", + "古", + "节", + "本", + "术", + "可", + "丙", + "左", + "厉", + "石", + "右", + "布", + "夯", + "戊", + "龙", + "平", + "灭", + "轧", + "东", + "卡", + "北", + "占", + "凸", + "卢", + "业", + "旧", + "帅", + "归", + "旦", + "目", + "且", + "叶", + "甲", + "申", + "叮", + "电", + "号", + "田", + "由", + "只", + "叭", + "史", + "央", + "兄", + "叽", + "叼", + "叫", + "叩", + "叨", + "另", + "叹", + "冉", + "皿", + "凹", + "囚", + "四", + "生", + "矢", + "失", + "乍", + "禾", + "丘", + "付", + "仗", + "代", + "仙", + "们", + "仪", + "白", + "仔", + "他", + "斥", + "瓜", + "乎", + "丛", + "令", + "用", + "甩", + "印", + "尔", + "乐", + "句", + "匆", + "册", + "卯", + "犯", + "外", + "处", + "冬", + "鸟", + "务", + "包", + "饥", + "主", + "市", + "立", + "冯", + "玄", + "闪", + "兰", + "半", + "汁", + "汇", + "头", + "汉", + "宁", + "穴", + "它", + "讨", + "写", + "让", + "礼", + "训", + "议", + "必", + "讯", + "记", + "永", + "司", + "尼", + "民", + "弗", + "弘", + "出", + "辽", + "奶", + "奴", + "召", + "加", + "皮", + "边", + "孕", + "发", + "圣", + "对", + "台", + "矛", + "纠", + "母", + "幼", + "丝", + "邦", + "式", + "迂", + "刑", + "戎", + "动", + "扛", + "寺", + "吉", + "扣", + "考", + "托", + "老", + "巩", + "圾", + "执", + "扩", + "扫", + "地", + "场", + "扬", + "耳", + "芋", + "共", + "芒", + "亚", + "芝", + "朽", + "朴", + "机", + "权", + "过", + "臣", + "吏", + "再", + "协", + "西", + "压", + "厌", + "戌", + "在", + "百", + "有", + "存", + "而", + "页", + "匠", + "夸", + "夺", + "灰", + "达", + "列", + "死", + "成", + "夹", + "夷", + "轨", + "邪", + "尧", + "划", + "迈", + "毕", + "至", + "此", + "贞", + "师", + "尘", + "尖", + "劣", + "光", + "当", + "早", + "吁", + "吐", + "吓", + "虫", + "曲", + "团", + "吕", + "同", + "吊", + "吃", + "因", + "吸", + "吗", + "吆", + "屿", + "屹", + "岁", + "帆", + "回", + "岂", + "则", + "刚", + "网", + "肉", + "年", + "朱", + "先", + "丢", + "廷", + "舌", + "竹", + "迁", + "乔", + "迄", + "伟", + "传", + "乒", + "乓", + "休", + "伍", + "伏", + "优", + "臼", + "伐", + "延", + "仲", + "件", + "任", + "伤", + "价", + "伦", + "份", + "华", + "仰", + "仿", + "伙", + "伪", + "自", + "伊", + "血", + "向", + "似", + "后", + "行", + "舟", + "全", + "会", + "杀", + "合", + "兆", + "企", + "众", + "爷", + "伞", + "创", + "肌", + "肋", + "朵", + "杂", + "危", + "旬", + "旨", + "旭", + "负", + "匈", + "名", + "各", + "多", + "争", + "色", + "壮", + "冲", + "妆", + "冰", + "庄", + "庆", + "亦", + "刘", + "齐", + "交", + "衣", + "次", + "产", + "决", + "亥", + "充", + "妄", + "闭", + "问", + "闯", + "羊", + "并", + "关", + "米", + "灯", + "州", + "汗", + "污", + "江", + "汛", + "池", + "汝", + "汤", + "忙", + "兴", + "宇", + "守", + "宅", + "字", + "安", + "讲", + "讳", + "军", + "讶", + "许", + "讹", + "论", + "讼", + "农", + "讽", + "设", + "访", + "诀", + "寻", + "那", + "迅", + "尽", + "导", + "异", + "弛", + "孙", + "阵", + "阳", + "收", + "阶", + "阴", + "防", + "奸", + "如", + "妇", + "妃", + "好", + "她", + "妈", + "戏", + "羽", + "观", + "欢", + "买", + "红", + "驮", + "纤", + "驯", + "约", + "级", + "纪", + "驰", + "纫", + "巡", + "寿", + "弄", + "麦", + "玖", + "玛", + "形", + "进", + "戒", + "吞", + "远", + "违", + "韧", + "运", + "扶", + "抚", + "坛", + "技", + "坏", + "抠", + "扰", + "扼", + "拒", + "找", + "批", + "址", + "扯", + "走", + "抄", + "贡", + "汞", + "坝", + "攻", + "赤", + "折", + "抓", + "扳", + "抡", + "扮", + "抢", + "孝", + "坎", + "均", + "抑", + "抛", + "投", + "坟", + "坑", + "抗", + "坊", + "抖", + "护", + "壳", + "志", + "块", + "扭", + "声", + "把", + "报", + "拟", + "却", + "抒", + "劫", + "芙", + "芜", + "苇", + "芽", + "花", + "芹", + "芥", + "芬", + "苍", + "芳", + "严", + "芦", + "芯", + "劳", + "克", + "芭", + "苏", + "杆", + "杠", + "杜", + "材", + "村", + "杖", + "杏", + "杉", + "巫", + "极", + "李", + "杨", + "求", + "甫", + "匣", + "更", + "束", + "吾", + "豆", + "两", + "酉", + "丽", + "医", + "辰", + "励", + "否", + "还", + "尬", + "歼", + "来", + "连", + "轩", + "步", + "卤", + "坚", + "肖", + "旱", + "盯", + "呈", + "时", + "吴", + "助", + "县", + "里", + "呆", + "吱", + "吠", + "呕", + "园", + "旷", + "围", + "呀", + "吨", + "足", + "邮", + "男", + "困", + "吵", + "串", + "员", + "呐", + "听", + "吟", + "吩", + "呛", + "吻", + "吹", + "呜", + "吭", + "吧", + "邑", + "吼", + "囤", + "别", + "吮", + "岖", + "岗", + "帐", + "财", + "针", + "钉", + "牡", + "告", + "我", + "乱", + "利", + "秃", + "秀", + "私", + "每", + "兵", + "估", + "体", + "何", + "佐", + "佑", + "但", + "伸", + "佃", + "作", + "伯", + "伶", + "佣", + "低", + "你", + "住", + "位", + "伴", + "身", + "皂", + "伺", + "佛", + "囱", + "近", + "彻", + "役", + "返", + "余", + "希", + "坐", + "谷", + "妥", + "含", + "邻", + "岔", + "肝", + "肛", + "肚", + "肘", + "肠", + "龟", + "甸", + "免", + "狂", + "犹", + "狈", + "角", + "删", + "条", + "彤", + "卵", + "灸", + "岛", + "刨", + "迎", + "饭", + "饮", + "系", + "言", + "冻", + "状", + "亩", + "况", + "床", + "库", + "庇", + "疗", + "吝", + "应", + "这", + "冷", + "庐", + "序", + "辛", + "弃", + "冶", + "忘", + "闰", + "闲", + "间", + "闷", + "判", + "兑", + "灶", + "灿", + "灼", + "弟", + "汪", + "沐", + "沛", + "汰", + "沥", + "沙", + "汽", + "沃", + "沦", + "汹", + "泛", + "沧", + "没", + "沟", + "沪", + "沈", + "沉", + "沁", + "怀", + "忧", + "忱", + "快", + "完", + "宋", + "宏", + "牢", + "究", + "穷", + "灾", + "良", + "证", + "启", + "评", + "补", + "初", + "社", + "祀", + "识", + "诈", + "诉", + "罕", + "诊", + "词", + "译", + "君", + "灵", + "即", + "层", + "屁", + "尿", + "尾", + "迟", + "局", + "改", + "张", + "忌", + "际", + "陆", + "阿", + "陈", + "阻", + "附", + "坠", + "妓", + "妙", + "妖", + "姊", + "妨", + "妒", + "努", + "忍", + "劲", + "矣", + "鸡", + "纬", + "驱", + "纯", + "纱", + "纲", + "纳", + "驳", + "纵", + "纷", + "纸", + "纹", + "纺", + "驴", + "纽", + "奉", + "玩", + "环", + "武", + "青", + "责", + "现", + "玫", + "表", + "规", + "抹", + "卦", + "坷", + "坯", + "拓", + "拢", + "拔", + "坪", + "拣", + "坦", + "担", + "坤", + "押", + "抽", + "拐", + "拖", + "者", + "拍", + "顶", + "拆", + "拎", + "拥", + "抵", + "拘", + "势", + "抱", + "拄", + "垃", + "拉", + "拦", + "幸", + "拌", + "拧", + "拂", + "拙", + "招", + "坡", + "披", + "拨", + "择", + "抬", + "拇", + "拗", + "其", + "取", + "茉", + "苦", + "昔", + "苛", + "若", + "茂", + "苹", + "苗", + "英", + "苟", + "苑", + "苞", + "范", + "直", + "茁", + "茄", + "茎", + "苔", + "茅", + "枉", + "林", + "枝", + "杯", + "枢", + "柜", + "枚", + "析", + "板", + "松", + "枪", + "枫", + "构", + "杭", + "杰", + "述", + "枕", + "丧", + "或", + "画", + "卧", + "事", + "刺", + "枣", + "雨", + "卖", + "郁", + "矾", + "矿", + "码", + "厕", + "奈", + "奔", + "奇", + "奋", + "态", + "欧", + "殴", + "垄", + "妻", + "轰", + "顷", + "转", + "斩", + "轮", + "软", + "到", + "非", + "叔", + "歧", + "肯", + "齿", + "些", + "卓", + "虎", + "虏", + "肾", + "贤", + "尚", + "旺", + "具", + "味", + "果", + "昆", + "国", + "哎", + "咕", + "昌", + "呵", + "畅", + "明", + "易", + "咙", + "昂", + "迪", + "典", + "固", + "忠", + "呻", + "咒", + "咋", + "咐", + "呼", + "鸣", + "咏", + "呢", + "咄", + "咖", + "岸", + "岩", + "帖", + "罗", + "帜", + "帕", + "岭", + "凯", + "败", + "账", + "贩", + "贬", + "购", + "贮", + "图", + "钓", + "制", + "知", + "迭", + "氛", + "垂", + "牧", + "物", + "乖", + "刮", + "秆", + "和", + "季", + "委", + "秉", + "佳", + "侍", + "岳", + "供", + "使", + "例", + "侠", + "侥", + "版", + "侄", + "侦", + "侣", + "侧", + "凭", + "侨", + "佩", + "货", + "侈", + "依", + "卑", + "的", + "迫", + "质", + "欣", + "征", + "往", + "爬", + "彼", + "径", + "所", + "舍", + "金", + "刹", + "命", + "肴", + "斧", + "爸", + "采", + "觅", + "受", + "乳", + "贪", + "念", + "贫", + "忿", + "肤", + "肺", + "肢", + "肿", + "胀", + "朋", + "股", + "肮", + "肪", + "肥", + "服", + "胁", + "周", + "昏", + "鱼", + "兔", + "狐", + "忽", + "狗", + "狞", + "备", + "饰", + "饱", + "饲", + "变", + "京", + "享", + "庞", + "店", + "夜", + "庙", + "府", + "底", + "疟", + "疙", + "疚", + "剂", + "卒", + "郊", + "庚", + "废", + "净", + "盲", + "放", + "刻", + "育", + "氓", + "闸", + "闹", + "郑", + "券", + "卷", + "单", + "炬", + "炒", + "炊", + "炕", + "炎", + "炉", + "沫", + "浅", + "法", + "泄", + "沽", + "河", + "沾", + "泪", + "沮", + "油", + "泊", + "沿", + "泡", + "注", + "泣", + "泞", + "泻", + "泌", + "泳", + "泥", + "沸", + "沼", + "波", + "泼", + "泽", + "治", + "怔", + "怯", + "怖", + "性", + "怕", + "怜", + "怪", + "怡", + "学", + "宝", + "宗", + "定", + "宠", + "宜", + "审", + "宙", + "官", + "空", + "帘", + "宛", + "实", + "试", + "郎", + "诗", + "肩", + "房", + "诚", + "衬", + "衫", + "视", + "祈", + "话", + "诞", + "诡", + "询", + "该", + "详", + "建", + "肃", + "录", + "隶", + "帚", + "屉", + "居", + "届", + "刷", + "屈", + "弧", + "弥", + "弦", + "承", + "孟", + "陋", + "陌", + "孤", + "陕", + "降", + "函", + "限", + "妹", + "姑", + "姐", + "姓", + "妮", + "始", + "姆", + "迢", + "驾", + "叁", + "参", + "艰", + "线", + "练", + "组", + "绅", + "细", + "驶", + "织", + "驹", + "终", + "驻", + "绊", + "驼", + "绍", + "绎", + "经", + "贯", + "契", + "贰", + "奏", + "春", + "帮", + "玷", + "珍", + "玲", + "玻", + "毒", + "型", + "拭", + "挂", + "封", + "持", + "拷", + "拱", + "项", + "垮", + "挎", + "城", + "挟", + "挠", + "政", + "赴", + "赵", + "挡", + "拽", + "哉", + "挺", + "括", + "垢", + "拴", + "拾", + "挑", + "垛", + "指", + "垫", + "挣", + "挤", + "拼", + "挖", + "按", + "挥", + "挪", + "拯", + "某", + "甚", + "荆", + "茸", + "革", + "茬", + "荐", + "巷", + "带", + "草", + "茧", + "茵", + "茶", + "荒", + "茫", + "荡", + "荣", + "荤", + "荧", + "故", + "胡", + "荫", + "荔", + "南", + "药", + "标", + "栈", + "柑", + "枯", + "柄", + "栋", + "相", + "查", + "柏", + "栅", + "柳", + "柱", + "柿", + "栏", + "柠", + "树", + "勃", + "要", + "柬", + "咸", + "威", + "歪", + "研", + "砖", + "厘", + "厚", + "砌", + "砂", + "泵", + "砚", + "砍", + "面", + "耐", + "耍", + "牵", + "鸥", + "残", + "殃", + "轴", + "轻", + "鸦", + "皆", + "韭", + "背", + "战", + "点", + "虐", + "临", + "览", + "竖", + "省", + "削", + "尝", + "昧", + "盹", + "是", + "盼", + "眨", + "哇", + "哄", + "哑", + "显", + "冒", + "映", + "星", + "昨", + "咧", + "昭", + "畏", + "趴", + "胃", + "贵", + "界", + "虹", + "虾", + "蚁", + "思", + "蚂", + "虽", + "品", + "咽", + "骂", + "勋", + "哗", + "咱", + "响", + "哈", + "哆", + "咬", + "咳", + "咪", + "哪", + "哟", + "炭", + "峡", + "罚", + "贱", + "贴", + "贻", + "骨", + "幽", + "钙", + "钝", + "钞", + "钟", + "钢", + "钠", + "钥", + "钦", + "钧", + "钩", + "钮", + "卸", + "缸", + "拜", + "看", + "矩", + "毡", + "氢", + "怎", + "牲", + "选", + "适", + "秒", + "香", + "种", + "秋", + "科", + "重", + "复", + "竿", + "段", + "便", + "俩", + "贷", + "顺", + "修", + "俏", + "保", + "促", + "俄", + "俐", + "侮", + "俭", + "俗", + "俘", + "信", + "皇", + "泉", + "鬼", + "侵", + "禹", + "侯", + "追", + "俊", + "盾", + "待", + "徊", + "衍", + "律", + "很", + "须", + "叙", + "剑", + "逃", + "食", + "盆", + "胚", + "胧", + "胆", + "胜", + "胞", + "胖", + "脉", + "胎", + "勉", + "狭", + "狮", + "独", + "狰", + "狡", + "狱", + "狠", + "贸", + "怨", + "急", + "饵", + "饶", + "蚀", + "饺", + "饼", + "峦", + "弯", + "将", + "奖", + "哀", + "亭", + "亮", + "度", + "迹", + "庭", + "疮", + "疯", + "疫", + "疤", + "咨", + "姿", + "亲", + "音", + "帝", + "施", + "闺", + "闻", + "闽", + "阀", + "阁", + "差", + "养", + "美", + "姜", + "叛", + "送", + "类", + "迷", + "籽", + "娄", + "前", + "首", + "逆", + "兹", + "总", + "炼", + "炸", + "烁", + "炮", + "炫", + "烂", + "剃", + "洼", + "洁", + "洪", + "洒", + "柒", + "浇", + "浊", + "洞", + "测", + "洗", + "活", + "派", + "洽", + "染", + "洛", + "浏", + "济", + "洋", + "洲", + "浑", + "浓", + "津", + "恃", + "恒", + "恢", + "恍", + "恬", + "恤", + "恰", + "恼", + "恨", + "举", + "觉", + "宣", + "宦", + "室", + "宫", + "宪", + "突", + "穿", + "窃", + "客", + "诫", + "冠", + "诬", + "语", + "扁", + "袄", + "祖", + "神", + "祝", + "祠", + "误", + "诱", + "诲", + "说", + "诵", + "垦", + "退", + "既", + "屋", + "昼", + "屏", + "屎", + "费", + "陡", + "逊", + "眉", + "孩", + "陨", + "除", + "险", + "院", + "娃", + "姥", + "姨", + "姻", + "娇", + "姚", + "娜", + "怒", + "架", + "贺", + "盈", + "勇", + "怠", + "癸", + "蚤", + "柔", + "垒", + "绑", + "绒", + "结", + "绕", + "骄", + "绘", + "给", + "绚", + "骆", + "络", + "绝", + "绞", + "骇", + "统", + "耕", + "耘", + "耗", + "耙", + "艳", + "泰", + "秦", + "珠", + "班", + "素", + "匿", + "蚕", + "顽", + "盏", + "匪", + "捞", + "栽", + "捕", + "埂", + "捂", + "振", + "载", + "赶", + "起", + "盐", + "捎", + "捍", + "捏", + "埋", + "捉", + "捆", + "捐", + "损", + "袁", + "捌", + "都", + "哲", + "逝", + "捡", + "挫", + "换", + "挽", + "挚", + "热", + "恐", + "捣", + "壶", + "捅", + "埃", + "挨", + "耻", + "耿", + "耽", + "聂", + "恭", + "莽", + "莱", + "莲", + "莫", + "莉", + "荷", + "获", + "晋", + "恶", + "莹", + "莺", + "真", + "框", + "梆", + "桂", + "桔", + "栖", + "档", + "桐", + "株", + "桥", + "桦", + "栓", + "桃", + "格", + "桩", + "校", + "核", + "样", + "根", + "索", + "哥", + "速", + "逗", + "栗", + "贾", + "酌", + "配", + "翅", + "辱", + "唇", + "夏", + "砸", + "砰", + "砾", + "础", + "破", + "原", + "套", + "逐", + "烈", + "殊", + "殉", + "顾", + "轿", + "较", + "顿", + "毙", + "致", + "柴", + "桌", + "虑", + "监", + "紧", + "党", + "逞", + "晒", + "眠", + "晓", + "哮", + "唠", + "鸭", + "晃", + "哺", + "晌", + "剔", + "晕", + "蚌", + "畔", + "蚣", + "蚊", + "蚪", + "蚓", + "哨", + "哩", + "圃", + "哭", + "哦", + "恩", + "鸯", + "唤", + "唁", + "哼", + "唧", + "啊", + "唉", + "唆", + "罢", + "峭", + "峨", + "峰", + "圆", + "峻", + "贼", + "贿", + "赂", + "赃", + "钱", + "钳", + "钻", + "钾", + "铁", + "铃", + "铅", + "缺", + "氧", + "氨", + "特", + "牺", + "造", + "乘", + "敌", + "秤", + "租", + "积", + "秧", + "秩", + "称", + "秘", + "透", + "笔", + "笑", + "笋", + "债", + "借", + "值", + "倚", + "俺", + "倾", + "倒", + "倘", + "俱", + "倡", + "候", + "赁", + "俯", + "倍", + "倦", + "健", + "臭", + "射", + "躬", + "息", + "倔", + "徒", + "徐", + "殷", + "舰", + "舱", + "般", + "航", + "途", + "拿", + "耸", + "爹", + "舀", + "爱", + "豺", + "豹", + "颁", + "颂", + "翁", + "胰", + "脆", + "脂", + "胸", + "胳", + "脏", + "脐", + "胶", + "脑", + "脓", + "逛", + "狸", + "狼", + "卿", + "逢", + "鸵", + "留", + "鸳", + "皱", + "饿", + "馁", + "凌", + "凄", + "恋", + "桨", + "浆", + "衰", + "衷", + "高", + "郭", + "席", + "准", + "座", + "症", + "病", + "疾", + "斋", + "疹", + "疼", + "疲", + "脊", + "效", + "离", + "紊", + "唐", + "瓷", + "资", + "凉", + "站", + "剖", + "竞", + "部", + "旁", + "旅", + "畜", + "阅", + "羞", + "羔", + "瓶", + "拳", + "粉", + "料", + "益", + "兼", + "烤", + "烘", + "烦", + "烧", + "烛", + "烟", + "烙", + "递", + "涛", + "浙", + "涝", + "浦", + "酒", + "涉", + "消", + "涡", + "浩", + "海", + "涂", + "浴", + "浮", + "涣", + "涤", + "流", + "润", + "涧", + "涕", + "浪", + "浸", + "涨", + "烫", + "涩", + "涌", + "悖", + "悟", + "悄", + "悍", + "悔", + "悯", + "悦", + "害", + "宽", + "家", + "宵", + "宴", + "宾", + "窍", + "窄", + "容", + "宰", + "案", + "请", + "朗", + "诸", + "诺", + "读", + "扇", + "诽", + "袜", + "袖", + "袍", + "被", + "祥", + "课", + "冥", + "谁", + "调", + "冤", + "谅", + "谆", + "谈", + "谊", + "剥", + "恳", + "展", + "剧", + "屑", + "弱", + "陵", + "祟", + "陶", + "陷", + "陪", + "娱", + "娟", + "恕", + "娥", + "娘", + "通", + "能", + "难", + "预", + "桑", + "绢", + "绣", + "验", + "继", + "骏", + "球", + "琐", + "理", + "琉", + "琅", + "捧", + "堵", + "措", + "描", + "域", + "捺", + "掩", + "捷", + "排", + "焉", + "掉", + "捶", + "赦", + "堆", + "推", + "埠", + "掀", + "授", + "捻", + "教", + "掏", + "掐", + "掠", + "掂", + "培", + "接", + "掷", + "控", + "探", + "据", + "掘", + "掺", + "职", + "基", + "聆", + "勘", + "聊", + "娶", + "著", + "菱", + "勒", + "黄", + "菲", + "萌", + "萝", + "菌", + "萎", + "菜", + "萄", + "菊", + "菩", + "萍", + "菠", + "萤", + "营", + "乾", + "萧", + "萨", + "菇", + "械", + "彬", + "梦", + "婪", + "梗", + "梧", + "梢", + "梅", + "检", + "梳", + "梯", + "桶", + "梭", + "救", + "曹", + "副", + "票", + "酝", + "酗", + "厢", + "戚", + "硅", + "硕", + "奢", + "盔", + "爽", + "聋", + "袭", + "盛", + "匾", + "雪", + "辅", + "辆", + "颅", + "虚", + "彪", + "雀", + "堂", + "常", + "眶", + "匙", + "晨", + "睁", + "眯", + "眼", + "悬", + "野", + "啪", + "啦", + "曼", + "晦", + "晚", + "啄", + "啡", + "距", + "趾", + "啃", + "跃", + "略", + "蚯", + "蛀", + "蛇", + "唬", + "累", + "鄂", + "唱", + "患", + "啰", + "唾", + "唯", + "啤", + "啥", + "啸", + "崖", + "崎", + "崭", + "逻", + "崔", + "帷", + "崩", + "崇", + "崛", + "婴", + "圈", + "铐", + "铛", + "铝", + "铜", + "铭", + "铲", + "银", + "矫", + "甜", + "秸", + "梨", + "犁", + "秽", + "移", + "笨", + "笼", + "笛", + "笙", + "符", + "第", + "敏", + "做", + "袋", + "悠", + "偿", + "偶", + "偎", + "偷", + "您", + "售", + "停", + "偏", + "躯", + "兜", + "假", + "衅", + "徘", + "徙", + "得", + "衔", + "盘", + "舶", + "船", + "舵", + "斜", + "盒", + "鸽", + "敛", + "悉", + "欲", + "彩", + "领", + "脚", + "脖", + "脯", + "豚", + "脸", + "脱", + "象", + "够", + "逸", + "猜", + "猪", + "猎", + "猫", + "凰", + "猖", + "猛", + "祭", + "馅", + "馆", + "凑", + "减", + "毫", + "烹", + "庶", + "麻", + "庵", + "痊", + "痒", + "痕", + "廊", + "康", + "庸", + "鹿", + "盗", + "章", + "竟", + "商", + "族", + "旋", + "望", + "率", + "阎", + "阐", + "着", + "羚", + "盖", + "眷", + "粘", + "粗", + "粒", + "断", + "剪", + "兽", + "焊", + "焕", + "清", + "添", + "鸿", + "淋", + "涯", + "淹", + "渠", + "渐", + "淑", + "淌", + "混", + "淮", + "淆", + "渊", + "淫", + "渔", + "淘", + "淳", + "液", + "淤", + "淡", + "淀", + "深", + "涮", + "涵", + "婆", + "梁", + "渗", + "情", + "惜", + "惭", + "悼", + "惧", + "惕", + "惟", + "惊", + "惦", + "悴", + "惋", + "惨", + "惯", + "寇", + "寅", + "寄", + "寂", + "宿", + "窒", + "窑", + "密", + "谋", + "谍", + "谎", + "谐", + "袱", + "祷", + "祸", + "谓", + "谚", + "谜", + "逮", + "敢", + "尉", + "屠", + "弹", + "隋", + "堕", + "随", + "蛋", + "隅", + "隆", + "隐", + "婚", + "婶", + "婉", + "颇", + "颈", + "绩", + "绪", + "续", + "骑", + "绰", + "绳", + "维", + "绵", + "绷", + "绸", + "综", + "绽", + "绿", + "缀", + "巢", + "琴", + "琳", + "琢", + "琼", + "斑", + "替", + "揍", + "款", + "堪", + "塔", + "搭", + "堰", + "揩", + "越", + "趁", + "趋", + "超", + "揽", + "堤", + "提", + "博", + "揭", + "喜", + "彭", + "揣", + "插", + "揪", + "搜", + "煮", + "援", + "搀", + "裁", + "搁", + "搓", + "搂", + "搅", + "壹", + "握", + "搔", + "揉", + "斯", + "期", + "欺", + "联", + "葫", + "散", + "惹", + "葬", + "募", + "葛", + "董", + "葡", + "敬", + "葱", + "蒋", + "蒂", + "落", + "韩", + "朝", + "辜", + "葵", + "棒", + "棱", + "棋", + "椰", + "植", + "森", + "焚", + "椅", + "椒", + "棵", + "棍", + "椎", + "棉", + "棚", + "棕", + "棺", + "榔", + "椭", + "惠", + "惑", + "逼", + "粟", + "棘", + "酣", + "酥", + "厨", + "厦", + "硬", + "硝", + "确", + "硫", + "雁", + "殖", + "裂", + "雄", + "颊", + "雳", + "暂", + "雅", + "翘", + "辈", + "悲", + "紫", + "凿", + "辉", + "敞", + "棠", + "赏", + "掌", + "晴", + "睐", + "暑", + "最", + "晰", + "量", + "鼎", + "喷", + "喳", + "晶", + "喇", + "遇", + "喊", + "遏", + "晾", + "景", + "畴", + "践", + "跋", + "跌", + "跑", + "跛", + "遗", + "蛙", + "蛛", + "蜓", + "蜒", + "蛤", + "喝", + "鹃", + "喂", + "喘", + "喉", + "喻", + "啼", + "喧", + "嵌", + "幅", + "帽", + "赋", + "赌", + "赎", + "赐", + "赔", + "黑", + "铸", + "铺", + "链", + "销", + "锁", + "锄", + "锅", + "锈", + "锋", + "锌", + "锐", + "甥", + "掰", + "短", + "智", + "氮", + "毯", + "氯", + "鹅", + "剩", + "稍", + "程", + "稀", + "税", + "筐", + "等", + "筑", + "策", + "筛", + "筒", + "筏", + "答", + "筋", + "筝", + "傲", + "傅", + "牌", + "堡", + "集", + "焦", + "傍", + "储", + "皓", + "皖", + "粤", + "奥", + "街", + "惩", + "御", + "循", + "艇", + "舒", + "逾", + "番", + "释", + "禽", + "腊", + "脾", + "腋", + "腔", + "腕", + "鲁", + "猩", + "猬", + "猾", + "猴", + "惫", + "然", + "馈", + "馋", + "装", + "蛮", + "就", + "敦", + "斌", + "痘", + "痢", + "痪", + "痛", + "童", + "竣", + "阔", + "善", + "翔", + "羡", + "普", + "粪", + "尊", + "奠", + "道", + "遂", + "曾", + "焰", + "港", + "滞", + "湖", + "湘", + "渣", + "渤", + "渺", + "湿", + "温", + "渴", + "溃", + "溅", + "滑", + "湃", + "渝", + "湾", + "渡", + "游", + "滋", + "渲", + "溉", + "愤", + "慌", + "惰", + "愕", + "愣", + "惶", + "愧", + "愉", + "慨", + "割", + "寒", + "富", + "寓", + "窜", + "窝", + "窖", + "窗", + "窘", + "遍", + "雇", + "裕", + "裤", + "裙", + "禅", + "禄", + "谢", + "谣", + "谤", + "谦", + "犀", + "属", + "屡", + "强", + "粥", + "疏", + "隔", + "隙", + "隘", + "媒", + "絮", + "嫂", + "媚", + "婿", + "登", + "缅", + "缆", + "缉", + "缎", + "缓", + "缔", + "缕", + "骗", + "编", + "骚", + "缘", + "瑟", + "鹉", + "瑞", + "瑰", + "瑙", + "魂", + "肆", + "摄", + "摸", + "填", + "搏", + "塌", + "鼓", + "摆", + "携", + "搬", + "摇", + "搞", + "塘", + "摊", + "聘", + "斟", + "蒜", + "勤", + "靴", + "靶", + "鹊", + "蓝", + "墓", + "幕", + "蓬", + "蓄", + "蒲", + "蓉", + "蒙", + "蒸", + "献", + "椿", + "禁", + "楚", + "楷", + "榄", + "想", + "槐", + "榆", + "楼", + "概", + "赖", + "酪", + "酬", + "感", + "碍", + "碘", + "碑", + "碎", + "碰", + "碗", + "碌", + "尴", + "雷", + "零", + "雾", + "雹", + "辐", + "辑", + "输", + "督", + "频", + "龄", + "鉴", + "睛", + "睹", + "睦", + "瞄", + "睫", + "睡", + "睬", + "嗜", + "鄙", + "嗦", + "愚", + "暖", + "盟", + "歇", + "暗", + "暇", + "照", + "畸", + "跨", + "跷", + "跳", + "跺", + "跪", + "路", + "跤", + "跟", + "遣", + "蜈", + "蜗", + "蛾", + "蜂", + "蜕", + "嗅", + "嗡", + "嗓", + "署", + "置", + "罪", + "罩", + "蜀", + "幌", + "错", + "锚", + "锡", + "锣", + "锤", + "锥", + "锦", + "键", + "锯", + "锰", + "矮", + "辞", + "稚", + "稠", + "颓", + "愁", + "筹", + "签", + "简", + "筷", + "毁", + "舅", + "鼠", + "催", + "傻", + "像", + "躲", + "魁", + "衙", + "微", + "愈", + "遥", + "腻", + "腰", + "腥", + "腮", + "腹", + "腺", + "鹏", + "腾", + "腿", + "鲍", + "猿", + "颖", + "触", + "解", + "煞", + "雏", + "馍", + "馏", + "酱", + "禀", + "痹", + "廓", + "痴", + "痰", + "廉", + "靖", + "新", + "韵", + "意", + "誊", + "粮", + "数", + "煎", + "塑", + "慈", + "煤", + "煌", + "满", + "漠", + "滇", + "源", + "滤", + "滥", + "滔", + "溪", + "溜", + "漓", + "滚", + "溢", + "溯", + "滨", + "溶", + "溺", + "粱", + "滩", + "慎", + "誉", + "塞", + "寞", + "窥", + "窟", + "寝", + "谨", + "褂", + "裸", + "福", + "谬", + "群", + "殿", + "辟", + "障", + "媳", + "嫉", + "嫌", + "嫁", + "叠", + "缚", + "缝", + "缠", + "缤", + "剿", + "静", + "碧", + "璃", + "赘", + "熬", + "墙", + "墟", + "嘉", + "摧", + "赫", + "截", + "誓", + "境", + "摘", + "摔", + "撇", + "聚", + "慕", + "暮", + "摹", + "蔓", + "蔑", + "蔡", + "蔗", + "蔽", + "蔼", + "熙", + "蔚", + "兢", + "模", + "槛", + "榴", + "榜", + "榨", + "榕", + "歌", + "遭", + "酵", + "酷", + "酿", + "酸", + "碟", + "碱", + "碳", + "磁", + "愿", + "需", + "辖", + "辗", + "雌", + "裳", + "颗", + "瞅", + "墅", + "嗽", + "踊", + "蜻", + "蜡", + "蝇", + "蜘", + "蝉", + "嘛", + "嘀", + "赚", + "锹", + "锻", + "镀", + "舞", + "舔", + "稳", + "熏", + "箕", + "算", + "箩", + "管", + "箫", + "舆", + "僚", + "僧", + "鼻", + "魄", + "魅", + "貌", + "膜", + "膊", + "膀", + "鲜", + "疑", + "孵", + "馒", + "裹", + "敲", + "豪", + "膏", + "遮", + "腐", + "瘩", + "瘟", + "瘦", + "辣", + "彰", + "竭", + "端", + "旗", + "精", + "粹", + "歉", + "弊", + "熄", + "熔", + "煽", + "潇", + "漆", + "漱", + "漂", + "漫", + "滴", + "漾", + "演", + "漏", + "慢", + "慷", + "寨", + "赛", + "寡", + "察", + "蜜", + "寥", + "谭", + "肇", + "褐", + "褪", + "谱", + "隧", + "嫩", + "翠", + "熊", + "凳", + "骡", + "缩", + "慧", + "撵", + "撕", + "撒", + "撩", + "趣", + "趟", + "撑", + "撮", + "撬", + "播", + "擒", + "墩", + "撞", + "撤", + "增", + "撰", + "聪", + "鞋", + "鞍", + "蕉", + "蕊", + "蔬", + "蕴", + "横", + "槽", + "樱", + "橡", + "樟", + "橄", + "敷", + "豌", + "飘", + "醋", + "醇", + "醉", + "磕", + "磊", + "磅", + "碾", + "震", + "霄", + "霉", + "瞒", + "题", + "暴", + "瞎", + "嘻", + "嘶", + "嘲", + "嘹", + "影", + "踢", + "踏", + "踩", + "踪", + "蝶", + "蝴", + "蝠", + "蝎", + "蝌", + "蝗", + "蝙", + "嘿", + "嘱", + "幢", + "墨", + "镇", + "镐", + "镑", + "靠", + "稽", + "稻", + "黎", + "稿", + "稼", + "箱", + "篓", + "箭", + "篇", + "僵", + "躺", + "僻", + "德", + "艘", + "膝", + "膛", + "鲤", + "鲫", + "熟", + "摩", + "褒", + "瘪", + "瘤", + "瘫", + "凛", + "颜", + "毅", + "糊", + "遵", + "憋", + "潜", + "澎", + "潮", + "潭", + "鲨", + "澳", + "潘", + "澈", + "澜", + "澄", + "懂", + "憔", + "懊", + "憎", + "额", + "翩", + "褥", + "谴", + "鹤", + "憨", + "慰", + "劈", + "履", + "豫", + "缭", + "撼", + "擂", + "操", + "擅", + "燕", + "蕾", + "薯", + "薛", + "薇", + "擎", + "薪", + "薄", + "颠", + "翰", + "噩", + "橱", + "橙", + "橘", + "整", + "融", + "瓢", + "醒", + "霍", + "霎", + "辙", + "冀", + "餐", + "嘴", + "踱", + "蹄", + "蹂", + "蟆", + "螃", + "器", + "噪", + "鹦", + "赠", + "默", + "黔", + "镜", + "赞", + "穆", + "篮", + "篡", + "篷", + "篱", + "儒", + "邀", + "衡", + "膨", + "雕", + "鲸", + "磨", + "瘾", + "瘸", + "凝", + "辨", + "辩", + "糙", + "糖", + "糕", + "燃", + "濒", + "澡", + "激", + "懒", + "憾", + "懈", + "窿", + "壁", + "避", + "缰", + "缴", + "戴", + "擦", + "藉", + "鞠", + "藏", + "藐", + "檬", + "檐", + "檀", + "礁", + "磷", + "霜", + "霞", + "瞭", + "瞧", + "瞬", + "瞳", + "瞩", + "瞪", + "曙", + "蹋", + "蹈", + "螺", + "蟋", + "蟀", + "嚎", + "赡", + "穗", + "魏", + "簧", + "簇", + "繁", + "徽", + "爵", + "朦", + "臊", + "鳄", + "癌", + "辫", + "赢", + "糟", + "糠", + "燥", + "懦", + "豁", + "臀", + "臂", + "翼", + "骤", + "藕", + "鞭", + "藤", + "覆", + "瞻", + "蹦", + "嚣", + "镰", + "翻", + "鳍", + "鹰", + "瀑", + "襟", + "璧", + "戳", + "孽", + "警", + "蘑", + "藻", + "攀", + "曝", + "蹲", + "蹭", + "蹬", + "巅", + "簸", + "簿", + "蟹", + "颤", + "靡", + "癣", + "瓣", + "羹", + "鳖", + "爆", + "疆", + "鬓", + "壤", + "馨", + "耀", + "躁", + "蠕", + "嚼", + "嚷", + "巍", + "籍", + "鳞", + "魔", + "糯", + "灌", + "譬", + "蠢", + "霸", + "露", + "霹", + "躏", + "黯", + "髓", + "赣", + "囊", + "镶", + "瓤", + "罐", + "矗", + "乂", + "乜", + "兀", + "弋", + "孑", + "孓", + "幺", + "亓", + "韦", + "廿", + "丏", + "卅", + "仄", + "厄", + "仃", + "仉", + "仂", + "兮", + "刈", + "爻", + "卞", + "闩", + "讣", + "尹", + "夬", + "爿", + "毋", + "邗", + "邛", + "艽", + "艿", + "札", + "叵", + "匝", + "丕", + "匜", + "劢", + "卟", + "叱", + "叻", + "仨", + "仕", + "仟", + "仡", + "仫", + "仞", + "卮", + "氐", + "犰", + "刍", + "邝", + "邙", + "汀", + "讦", + "讧", + "讪", + "讫", + "尻", + "阡", + "尕", + "弁", + "驭", + "匡", + "耒", + "玎", + "玑", + "邢", + "圩", + "圬", + "圭", + "扦", + "圪", + "圳", + "圹", + "扪", + "圮", + "圯", + "芊", + "芍", + "芄", + "芨", + "芑", + "芎", + "芗", + "亘", + "厍", + "夼", + "戍", + "尥", + "乩", + "旯", + "曳", + "岌", + "屺", + "凼", + "囡", + "钇", + "缶", + "氘", + "氖", + "牝", + "伎", + "伛", + "伢", + "佤", + "仵", + "伥", + "伧", + "伉", + "伫", + "囟", + "汆", + "刖", + "夙", + "旮", + "刎", + "犷", + "犸", + "舛", + "凫", + "邬", + "饧", + "汕", + "汔", + "汐", + "汲", + "汜", + "汊", + "忖", + "忏", + "讴", + "讵", + "祁", + "讷", + "聿", + "艮", + "厾", + "阱", + "阮", + "阪", + "丞", + "妁", + "牟", + "纡", + "纣", + "纥", + "纨", + "玕", + "玙", + "抟", + "抔", + "圻", + "坂", + "坍", + "坞", + "抃", + "抉", + "㧐", + "芫", + "邯", + "芸", + "芾", + "苈", + "苣", + "芷", + "芮", + "苋", + "芼", + "苌", + "苁", + "芩", + "芪", + "芡", + "芟", + "苄", + "苎", + "苡", + "杌", + "杓", + "杞", + "杈", + "忑", + "孛", + "邴", + "邳", + "矶", + "奁", + "豕", + "忒", + "欤", + "轫", + "迓", + "邶", + "忐", + "卣", + "邺", + "旰", + "呋", + "呒", + "呓", + "呔", + "呖", + "呃", + "旸", + "吡", + "町", + "虬", + "呗", + "吽", + "吣", + "吲", + "帏", + "岐", + "岈", + "岘", + "岑", + "岚", + "兕", + "囵", + "囫", + "钊", + "钋", + "钌", + "迕", + "氙", + "氚", + "牤", + "佞", + "邱", + "攸", + "佚", + "佝", + "佟", + "佗", + "伽", + "彷", + "佘", + "佥", + "孚", + "豸", + "坌", + "肟", + "邸", + "奂", + "劬", + "狄", + "狁", + "鸠", + "邹", + "饨", + "饩", + "饪", + "饫", + "饬", + "亨", + "庑", + "庋", + "疔", + "疖", + "肓", + "闱", + "闳", + "闵", + "羌", + "炀", + "沣", + "沅", + "沔", + "沤", + "沌", + "沏", + "沚", + "汩", + "汨", + "沂", + "汾", + "沨", + "汴", + "汶", + "沆", + "沩", + "泐", + "怃", + "怄", + "忡", + "忤", + "忾", + "怅", + "忻", + "忪", + "怆", + "忭", + "忸", + "诂", + "诃", + "诅", + "诋", + "诌", + "诏", + "诒", + "孜", + "陇", + "陀", + "陂", + "陉", + "妍", + "妩", + "妪", + "妣", + "妊", + "妗", + "妫", + "妞", + "姒", + "妤", + "邵", + "劭", + "刭", + "甬", + "邰", + "纭", + "纰", + "纴", + "纶", + "纾", + "玮", + "玡", + "玭", + "玠", + "玢", + "玥", + "玦", + "盂", + "忝", + "匦", + "坩", + "抨", + "拤", + "坫", + "拈", + "垆", + "抻", + "劼", + "拃", + "拊", + "坼", + "坻", + "㧟", + "坨", + "坭", + "抿", + "坳", + "耶", + "苷", + "苯", + "苤", + "茏", + "苫", + "苜", + "苴", + "苒", + "苘", + "茌", + "苻", + "苓", + "茚", + "茆", + "茑", + "茓", + "茔", + "茕", + "茀", + "苕", + "枥", + "枇", + "杪", + "杳", + "枧", + "杵", + "枨", + "枞", + "枋", + "杻", + "杷", + "杼", + "矸", + "砀", + "刳", + "奄", + "瓯", + "殁", + "郏", + "轭", + "郅", + "鸢", + "盱", + "昊", + "昙", + "杲", + "昃", + "咂", + "呸", + "昕", + "昀", + "旻", + "昉", + "炅", + "咔", + "畀", + "虮", + "咀", + "呷", + "黾", + "呱", + "呤", + "咚", + "咆", + "咛", + "呶", + "呣", + "呦", + "咝", + "岢", + "岿", + "岬", + "岫", + "帙", + "岣", + "峁", + "刿", + "迥", + "岷", + "剀", + "帔", + "峄", + "沓", + "囹", + "罔", + "钍", + "钎", + "钏", + "钒", + "钕", + "钗", + "邾", + "迮", + "牦", + "竺", + "迤", + "佶", + "佬", + "佰", + "侑", + "侉", + "臾", + "岱", + "侗", + "侃", + "侏", + "侩", + "佻", + "佾", + "侪", + "佼", + "佯", + "侬", + "帛", + "阜", + "侔", + "徂", + "刽", + "郄", + "怂", + "籴", + "瓮", + "戗", + "肼", + "䏝", + "肽", + "肱", + "肫", + "剁", + "迩", + "郇", + "狙", + "狎", + "狍", + "狒", + "咎", + "炙", + "枭", + "饯", + "饴", + "冽", + "冼", + "庖", + "疠", + "疝", + "疡", + "兖", + "妾", + "劾", + "炜", + "𬉼", + "炖", + "炘", + "炝", + "炔", + "泔", + "沭", + "泷", + "泸", + "泱", + "泅", + "泗", + "泠", + "泺", + "泖", + "泫", + "泮", + "沱", + "泯", + "泓", + "泾", + "怙", + "怵", + "怦", + "怛", + "怏", + "怍", + "㤘", + "怩", + "怫", + "怿", + "宕", + "穹", + "宓", + "诓", + "诔", + "诖", + "诘", + "戾", + "诙", + "戽", + "郓", + "衩", + "祆", + "祎", + "祉", + "祇", + "诛", + "诜", + "诟", + "诠", + "诣", + "诤", + "诧", + "诨", + "诩", + "戕", + "孢", + "亟", + "陔", + "妲", + "妯", + "姗", + "帑", + "弩", + "孥", + "驽", + "虱", + "迦", + "迨", + "绀", + "绁", + "绂", + "驷", + "驸", + "绉", + "绌", + "驿", + "骀", + "甾", + "珏", + "珐", + "珂", + "珑", + "玳", + "珀", + "顸", + "珉", + "珈", + "拮", + "垭", + "挝", + "垣", + "挞", + "垤", + "赳", + "贲", + "垱", + "垌", + "郝", + "垧", + "垓", + "挦", + "垠", + "茜", + "荚", + "荑", + "贳", + "荜", + "莒", + "茼", + "茴", + "茱", + "莛", + "荞", + "茯", + "荏", + "荇", + "荃", + "荟", + "荀", + "茗", + "荠", + "茭", + "茨", + "垩", + "荥", + "荦", + "荨", + "荩", + "剋", + "荪", + "茹", + "荬", + "荮", + "柰", + "栉", + "柯", + "柘", + "栊", + "柩", + "枰", + "栌", + "柙", + "枵", + "柚", + "枳", + "柞", + "柝", + "栀", + "柢", + "栎", + "枸", + "柈", + "柁", + "枷", + "柽", + "剌", + "酊", + "郦", + "甭", + "砗", + "砘", + "砒", + "斫", + "砭", + "砜", + "奎", + "耷", + "虺", + "殂", + "殇", + "殄", + "殆", + "轱", + "轲", + "轳", + "轶", + "轸", + "虿", + "毖", + "觇", + "尜", + "哐", + "眄", + "眍", + "𠳐", + "郢", + "眇", + "眊", + "眈", + "禺", + "哂", + "咴", + "曷", + "昴", + "昱", + "昵", + "咦", + "哓", + "哔", + "畎", + "毗", + "呲", + "胄", + "畋", + "畈", + "虼", + "虻", + "盅", + "咣", + "哕", + "剐", + "郧", + "咻", + "囿", + "咿", + "哌", + "哙", + "哚", + "咯", + "咩", + "咤", + "哝", + "哏", + "哞", + "峙", + "峣", + "罘", + "帧", + "峒", + "峤", + "峋", + "峥", + "贶", + "钚", + "钛", + "钡", + "钣", + "钤", + "钨", + "钫", + "钯", + "氡", + "氟", + "牯", + "郜", + "秕", + "秭", + "竽", + "笈", + "笃", + "俦", + "俨", + "俅", + "俪", + "叟", + "垡", + "牮", + "俣", + "俚", + "皈", + "俑", + "俟", + "逅", + "徇", + "徉", + "舢", + "俞", + "郗", + "俎", + "郤", + "爰", + "郛", + "瓴", + "胨", + "胪", + "胛", + "胂", + "胙", + "胍", + "胗", + "胝", + "朐", + "胫", + "鸨", + "匍", + "狨", + "狯", + "飑", + "狩", + "狲", + "訇", + "逄", + "昝", + "饷", + "饸", + "饹", + "胤", + "孪", + "娈", + "弈", + "奕", + "庥", + "疬", + "疣", + "疥", + "疭", + "庠", + "竑", + "彦", + "飒", + "闼", + "闾", + "闿", + "阂", + "羑", + "迸", + "籼", + "酋", + "炳", + "炻", + "炽", + "炯", + "烀", + "炷", + "烃", + "洱", + "洹", + "洧", + "洌", + "浃", + "洇", + "洄", + "洙", + "涎", + "洎", + "洫", + "浍", + "洮", + "洵", + "浒", + "浔", + "浕", + "洳", + "恸", + "恓", + "恹", + "恫", + "恺", + "恻", + "恂", + "恪", + "恽", + "宥", + "扃", + "衲", + "衽", + "衿", + "袂", + "祛", + "祜", + "祓", + "祚", + "诮", + "祗", + "祢", + "诰", + "诳", + "鸩", + "昶", + "郡", + "咫", + "弭", + "牁", + "胥", + "陛", + "陟", + "娅", + "姮", + "娆", + "姝", + "姣", + "姘", + "姹", + "怼", + "羿", + "炱", + "矜", + "绔", + "骁", + "骅", + "绗", + "绛", + "骈", + "耖", + "挈", + "珥", + "珙", + "顼", + "珰", + "珩", + "珧", + "珣", + "珞", + "琤", + "珲", + "敖", + "恚", + "埔", + "埕", + "埘", + "埙", + "埚", + "挹", + "耆", + "耄", + "埒", + "捋", + "贽", + "垸", + "捃", + "盍", + "荸", + "莆", + "莳", + "莴", + "莪", + "莠", + "莓", + "莜", + "莅", + "荼", + "莩", + "荽", + "莸", + "荻", + "莘", + "莎", + "莞", + "莨", + "渇", + "鸪", + "莼", + "栲", + "栳", + "郴", + "桓", + "桡", + "桎", + "桢", + "桤", + "梃", + "栝", + "桕", + "桁", + "桧", + "桅", + "栟", + "桉", + "栩", + "逑", + "逋", + "彧", + "鬲", + "豇", + "酐", + "逦", + "厝", + "孬", + "砝", + "砹", + "砺", + "砧", + "砷", + "砟", + "砼", + "砥", + "砣", + "剞", + "砻", + "轼", + "轾", + "辂", + "鸫", + "趸", + "龀", + "鸬", + "虔", + "逍", + "眬", + "唛", + "晟", + "眩", + "眙", + "哧", + "哽", + "唔", + "晁", + "晏", + "鸮", + "趵", + "趿", + "畛", + "蚨", + "蚜", + "蚍", + "蚋", + "蚬", + "蚝", + "蚧", + "唢", + "圄", + "唣", + "唏", + "盎", + "唑", + "崂", + "崃", + "罡", + "罟", + "峪", + "觊", + "赅", + "钰", + "钲", + "钴", + "钵", + "钹", + "钺", + "钽", + "钼", + "钿", + "铀", + "铂", + "铄", + "铆", + "铈", + "铉", + "铊", + "铋", + "铌", + "铍", + "䥽", + "铎", + "氩", + "氤", + "氦", + "毪", + "舐", + "秣", + "秫", + "盉", + "笄", + "笕", + "笊", + "笏", + "笆", + "俸", + "倩", + "俵", + "偌", + "俳", + "俶", + "倬", + "倏", + "恁", + "倭", + "倪", + "俾", + "倜", + "隼", + "隽", + "倌", + "倥", + "臬", + "皋", + "郫", + "倨", + "衄", + "颀", + "徕", + "舫", + "釜", + "奚", + "衾", + "胯", + "胱", + "胴", + "胭", + "脍", + "胼", + "朕", + "脒", + "胺", + "鸱", + "玺", + "鸲", + "狷", + "猁", + "狳", + "猃", + "狺", + "逖", + "桀", + "袅", + "饽", + "凇", + "栾", + "挛", + "亳", + "疳", + "疴", + "疸", + "疽", + "痈", + "疱", + "痂", + "痉", + "衮", + "凋", + "颃", + "恣", + "旆", + "旄", + "旃", + "阃", + "阄", + "訚", + "阆", + "恙", + "粑", + "朔", + "郸", + "烜", + "烨", + "烩", + "烊", + "剡", + "郯", + "烬", + "涑", + "浯", + "涞", + "涟", + "娑", + "涅", + "涠", + "浞", + "涓", + "浥", + "涔", + "浜", + "浠", + "浣", + "浚", + "悚", + "悭", + "悝", + "悒", + "悌", + "悛", + "宸", + "窈", + "剜", + "诹", + "冢", + "诼", + "袒", + "袢", + "祯", + "诿", + "谀", + "谂", + "谄", + "谇", + "屐", + "屙", + "陬", + "勐", + "奘", + "牂", + "蚩", + "陲", + "姬", + "娠", + "娌", + "娉", + "娲", + "娩", + "娴", + "娣", + "娓", + "婀", + "畚", + "逡", + "绠", + "骊", + "绡", + "骋", + "绥", + "绦", + "绨", + "骎", + "邕", + "鸶", + "彗", + "耜", + "焘", + "舂", + "琏", + "琇", + "麸", + "揶", + "埴", + "埯", + "捯", + "掳", + "掴", + "埸", + "埵", + "赧", + "埤", + "捭", + "逵", + "埝", + "堋", + "堍", + "掬", + "鸷", + "掖", + "捽", + "掊", + "堉", + "掸", + "捩", + "掮", + "悫", + "埭", + "埽", + "掇", + "掼", + "聃", + "菁", + "萁", + "菘", + "堇", + "萘", + "萋", + "菽", + "菖", + "萜", + "萸", + "萑", + "棻", + "菔", + "菟", + "萏", + "萃", + "菏", + "菹", + "菪", + "菅", + "菀", + "萦", + "菰", + "菡", + "梵", + "梿", + "梏", + "觋", + "桴", + "桷", + "梓", + "棁", + "桫", + "棂", + "啬", + "郾", + "匮", + "敕", + "豉", + "鄄", + "酞", + "酚", + "戛", + "硎", + "硭", + "硒", + "硖", + "硗", + "硐", + "硇", + "硌", + "鸸", + "瓠", + "匏", + "厩", + "龚", + "殒", + "殓", + "殍", + "赉", + "雩", + "辄", + "堑", + "眭", + "眦", + "啧", + "晡", + "晤", + "眺", + "眵", + "眸", + "圊", + "喏", + "喵", + "啉", + "勖", + "晞", + "唵", + "晗", + "冕", + "啭", + "畦", + "趺", + "啮", + "跄", + "蚶", + "蛄", + "蛎", + "蛆", + "蚰", + "蛊", + "圉", + "蚱", + "蛉", + "蛏", + "蚴", + "啁", + "啕", + "唿", + "啐", + "唼", + "唷", + "啖", + "啵", + "啶", + "啷", + "唳", + "唰", + "啜", + "帻", + "崚", + "崦", + "帼", + "崮", + "崤", + "崆", + "赇", + "赈", + "赊", + "铑", + "铒", + "铗", + "铙", + "铟", + "铠", + "铡", + "铢", + "铣", + "铤", + "铧", + "铨", + "铩", + "铪", + "铫", + "铬", + "铮", + "铯", + "铰", + "铱", + "铳", + "铵", + "铷", + "氪", + "牾", + "鸹", + "秾", + "逶", + "笺", + "筇", + "笸", + "笪", + "笮", + "笠", + "笥", + "笤", + "笳", + "笾", + "笞", + "偾", + "偃", + "偕", + "偈", + "傀", + "偬", + "偻", + "皑", + "皎", + "鸻", + "徜", + "舸", + "舻", + "舴", + "舷", + "龛", + "翎", + "脬", + "脘", + "脲", + "匐", + "猗", + "猡", + "猞", + "猝", + "斛", + "猕", + "馗", + "馃", + "馄", + "鸾", + "孰", + "庹", + "庾", + "痔", + "痍", + "疵", + "翊", + "旌", + "旎", + "袤", + "阇", + "阈", + "阉", + "阊", + "阋", + "阍", + "阏", + "羟", + "粝", + "粕", + "敝", + "焐", + "烯", + "焓", + "烽", + "焖", + "烷", + "焗", + "渍", + "渚", + "淇", + "淅", + "淞", + "渎", + "涿", + "淖", + "挲", + "淠", + "涸", + "渑", + "淦", + "淝", + "淬", + "涪", + "淙", + "涫", + "渌", + "淄", + "惬", + "悻", + "悱", + "惝", + "惘", + "悸", + "惆", + "惚", + "惇", + "惮", + "窕", + "谌", + "谏", + "扈", + "皲", + "谑", + "裆", + "袷", + "裉", + "谒", + "谔", + "谕", + "谖", + "谗", + "谙", + "谛", + "谝", + "逯", + "郿", + "隈", + "粜", + "隍", + "隗", + "婧", + "婊", + "婕", + "娼", + "婢", + "婵", + "胬", + "袈", + "翌", + "恿", + "欸", + "绫", + "骐", + "绮", + "绯", + "绱", + "骒", + "绲", + "骓", + "绶", + "绺", + "绻", + "绾", + "骖", + "缁", + "耠", + "琫", + "琵", + "琶", + "琪", + "瑛", + "琦", + "琥", + "琨", + "靓", + "琰", + "琮", + "琯", + "琬", + "琛", + "琚", + "辇", + "鼋", + "揳", + "堞", + "搽", + "揸", + "揠", + "堙", + "趄", + "揖", + "颉", + "塄", + "揿", + "耋", + "揄", + "蛩", + "蛰", + "塆", + "摒", + "揆", + "掾", + "聒", + "葑", + "葚", + "靰", + "靸", + "葳", + "葺", + "葸", + "萼", + "葆", + "葩", + "葶", + "蒌", + "萱", + "戟", + "葭", + "楮", + "棼", + "椟", + "棹", + "椤", + "棰", + "赍", + "椋", + "椁", + "椪", + "棣", + "椐", + "鹁", + "覃", + "酤", + "酢", + "酡", + "鹂", + "厥", + "殚", + "殛", + "雯", + "雱", + "辊", + "辋", + "椠", + "辍", + "辎", + "斐", + "睄", + "睑", + "睇", + "睃", + "戢", + "喋", + "嗒", + "喃", + "喱", + "喹", + "晷", + "喈", + "跖", + "跗", + "跞", + "跚", + "跎", + "跏", + "跆", + "蛱", + "蛲", + "蛭", + "蛳", + "蛐", + "蛔", + "蛞", + "蛴", + "蛟", + "蛘", + "喁", + "喟", + "啾", + "嗖", + "喑", + "嗟", + "喽", + "嗞", + "喀", + "喔", + "喙", + "嵘", + "嵖", + "崴", + "遄", + "詈", + "嵎", + "崽", + "嵬", + "嵛", + "嵯", + "嵝", + "嵫", + "幄", + "嵋", + "赕", + "铻", + "铼", + "铿", + "锃", + "锂", + "锆", + "锇", + "锉", + "锏", + "锑", + "锒", + "锔", + "锕", + "掣", + "矬", + "氰", + "毳", + "毽", + "犊", + "犄", + "犋", + "鹄", + "犍", + "嵇", + "黍", + "稃", + "稂", + "筚", + "筵", + "筌", + "傣", + "傈", + "舄", + "牍", + "傥", + "傧", + "遑", + "傩", + "遁", + "徨", + "媭", + "畲", + "弑", + "颌", + "翕", + "釉", + "鹆", + "舜", + "貂", + "腈", + "腌", + "腓", + "腆", + "腴", + "腑", + "腚", + "腱", + "鱿", + "鲀", + "鲂", + "颍", + "猢", + "猹", + "猥", + "飓", + "觞", + "觚", + "猱", + "颎", + "飧", + "馇", + "馊", + "亵", + "脔", + "裒", + "痣", + "痨", + "痦", + "痞", + "痤", + "痫", + "痧", + "赓", + "竦", + "瓿", + "啻", + "颏", + "鹇", + "阑", + "阒", + "阕", + "粞", + "遒", + "孳", + "焯", + "焜", + "焙", + "焱", + "鹈", + "湛", + "渫", + "湮", + "湎", + "湜", + "渭", + "湍", + "湫", + "溲", + "湟", + "溆", + "湲", + "湔", + "湉", + "渥", + "湄", + "滁", + "愠", + "惺", + "愦", + "惴", + "愀", + "愎", + "愔", + "喾", + "寐", + "谟", + "扉", + "裢", + "裎", + "裥", + "祾", + "祺", + "谠", + "幂", + "谡", + "谥", + "谧", + "遐", + "孱", + "弼", + "巽", + "骘", + "媪", + "媛", + "婷", + "巯", + "翚", + "皴", + "婺", + "骛", + "缂", + "缃", + "缄", + "彘", + "缇", + "缈", + "缌", + "缑", + "缒", + "缗", + "飨", + "耢", + "瑚", + "瑁", + "瑜", + "瑗", + "瑄", + "瑕", + "遨", + "骜", + "韫", + "髡", + "塬", + "鄢", + "趔", + "趑", + "摅", + "摁", + "蜇", + "搋", + "搪", + "搐", + "搛", + "搠", + "摈", + "彀", + "毂", + "搦", + "搡", + "蓁", + "戡", + "蓍", + "鄞", + "靳", + "蓐", + "蓦", + "鹋", + "蒽", + "蓓", + "蓖", + "蓊", + "蒯", + "蓟", + "蓑", + "蒿", + "蒺", + "蓠", + "蒟", + "蒡", + "蒹", + "蒴", + "蒗", + "蓥", + "颐", + "楔", + "楠", + "楂", + "楝", + "楫", + "楸", + "椴", + "槌", + "楯", + "皙", + "榈", + "槎", + "榉", + "楦", + "楣", + "楹", + "椽", + "裘", + "剽", + "甄", + "酮", + "酰", + "酯", + "酩", + "蜃", + "碛", + "碓", + "硼", + "碉", + "碚", + "碇", + "碜", + "鹌", + "辏", + "龃", + "龅", + "訾", + "粲", + "虞", + "睚", + "嗪", + "韪", + "嗷", + "嗉", + "睨", + "睢", + "雎", + "睥", + "嘟", + "嗑", + "嗫", + "嗬", + "嗔", + "嗝", + "戥", + "嗄", + "煦", + "暄", + "遢", + "暌", + "跬", + "跶", + "跸", + "跐", + "跣", + "跹", + "跻", + "蛸", + "蜊", + "蜍", + "蜉", + "蜣", + "畹", + "蛹", + "嗣", + "嗯", + "嗥", + "嗲", + "嗳", + "嗌", + "嗍", + "嗨", + "嗐", + "嗤", + "嗵", + "罨", + "嵊", + "嵩", + "嵴", + "骰", + "锗", + "锛", + "锜", + "锝", + "锞", + "锟", + "锢", + "锨", + "锩", + "锭", + "锱", + "雉", + "氲", + "犏", + "歃", + "稞", + "稗", + "稔", + "筠", + "筢", + "筮", + "筲", + "筱", + "牒", + "煲", + "敫", + "徭", + "愆", + "艄", + "觎", + "毹", + "貊", + "貅", + "貉", + "颔", + "腠", + "腩", + "腼", + "腭", + "腧", + "塍", + "媵", + "詹", + "鲅", + "鲆", + "鲇", + "鲈", + "稣", + "鲋", + "鲐", + "肄", + "鹐", + "飕", + "觥", + "遛", + "馐", + "鹑", + "亶", + "瘃", + "痱", + "痼", + "痿", + "瘐", + "瘁", + "瘆", + "麂", + "裔", + "歆", + "旒", + "雍", + "阖", + "阗", + "阙", + "羧", + "豢", + "粳", + "猷", + "煳", + "煜", + "煨", + "煅", + "煊", + "煸", + "煺", + "滟", + "溱", + "溘", + "漭", + "滢", + "溥", + "溧", + "溽", + "裟", + "溻", + "溷", + "滗", + "滫", + "溴", + "滏", + "滃", + "滦", + "溏", + "滂", + "滓", + "溟", + "滪", + "愫", + "慑", + "慊", + "鲎", + "骞", + "窦", + "窠", + "窣", + "裱", + "褚", + "裨", + "裾", + "裰", + "禊", + "谩", + "谪", + "媾", + "嫫", + "媲", + "嫒", + "嫔", + "媸", + "缙", + "缜", + "缛", + "辔", + "骝", + "缟", + "缡", + "缢", + "缣", + "骟", + "耥", + "璈", + "瑶", + "瑭", + "獒", + "觏", + "慝", + "嫠", + "韬", + "叆", + "髦", + "摽", + "墁", + "撂", + "摞", + "撄", + "翥", + "踅", + "摭", + "墉", + "墒", + "榖", + "綦", + "蔫", + "蔷", + "靺", + "靼", + "鞅", + "靿", + "甍", + "蔸", + "蔟", + "蔺", + "戬", + "蕖", + "蔻", + "蓿", + "斡", + "鹕", + "蓼", + "榛", + "榧", + "榻", + "榫", + "榭", + "槔", + "榱", + "槁", + "槟", + "槠", + "榷", + "僰", + "酽", + "酶", + "酹", + "厮", + "碡", + "碴", + "碣", + "碲", + "磋", + "臧", + "豨", + "殡", + "霆", + "霁", + "辕", + "蜚", + "裴", + "翡", + "龇", + "龈", + "睿", + "䁖", + "睽", + "嘞", + "嘈", + "嘌", + "嘁", + "嘎", + "暧", + "暝", + "踌", + "踉", + "蜞", + "蜥", + "蜮", + "蝈", + "蜴", + "蜱", + "蜩", + "蜷", + "蜿", + "螂", + "蜢", + "嘘", + "嘡", + "鹗", + "嘣", + "嘤", + "嘚", + "嗾", + "嘧", + "罴", + "罱", + "幔", + "嶂", + "幛", + "赙", + "罂", + "骷", + "骶", + "鹘", + "锲", + "锴", + "锶", + "锷", + "锸", + "锵", + "镁", + "镂", + "犒", + "箐", + "箦", + "箧", + "箍", + "箸", + "箬", + "箅", + "箪", + "箔", + "箜", + "箢", + "箓", + "毓", + "僖", + "儆", + "僳", + "僭", + "劁", + "僮", + "魃", + "魆", + "睾", + "艋", + "鄱", + "膈", + "膑", + "鲑", + "鲔", + "鲚", + "鲛", + "鲟", + "獐", + "觫", + "雒", + "夤", + "馑", + "銮", + "塾", + "麽", + "瘌", + "瘊", + "瘘", + "瘙", + "廖", + "韶", + "旖", + "膂", + "阚", + "鄯", + "鲞", + "粿", + "粼", + "粽", + "糁", + "槊", + "鹚", + "熘", + "熥", + "潢", + "漕", + "滹", + "漯", + "漶", + "潋", + "潴", + "漪", + "漉", + "漳", + "漩", + "澉", + "潍", + "慵", + "搴", + "窨", + "寤", + "綮", + "谮", + "褡", + "褙", + "褓", + "褛", + "褊", + "谯", + "谰", + "谲", + "暨", + "屣", + "鹛", + "嫣", + "嫱", + "嫖", + "嫦", + "嫚", + "嫘", + "嫡", + "鼐", + "翟", + "瞀", + "鹜", + "骠", + "缥", + "缦", + "缧", + "缨", + "骢", + "缪", + "缫", + "耦", + "耧", + "瑾", + "璜", + "璀", + "璎", + "璁", + "璋", + "璇", + "奭", + "髯", + "髫", + "撷", + "撅", + "赭", + "撸", + "鋆", + "撙", + "撺", + "墀", + "聩", + "觐", + "鞑", + "蕙", + "鞒", + "蕈", + "蕨", + "蕤", + "蕞", + "蕺", + "瞢", + "蕃", + "蕲", + "赜", + "槿", + "樯", + "槭", + "樗", + "樘", + "樊", + "槲", + "醌", + "醅", + "靥", + "魇", + "餍", + "磔", + "磙", + "霈", + "辘", + "龉", + "龊", + "觑", + "瞌", + "瞋", + "瞑", + "嘭", + "噎", + "噶", + "颙", + "暹", + "噘", + "踔", + "踝", + "踟", + "踒", + "踬", + "踮", + "踯", + "踺", + "踞", + "蝽", + "蝾", + "蝻", + "蝰", + "蝮", + "螋", + "蝓", + "蝣", + "蝼", + "噗", + "嘬", + "颚", + "噍", + "噢", + "噙", + "噜", + "噌", + "噔", + "颛", + "幞", + "幡", + "嶙", + "嶝", + "骺", + "骼", + "骸", + "镊", + "镉", + "镌", + "镍", + "镏", + "镒", + "镓", + "镔", + "稷", + "箴", + "篑", + "篁", + "篌", + "篆", + "牖", + "儋", + "徵", + "磐", + "虢", + "鹞", + "膘", + "滕", + "鲠", + "鲡", + "鲢", + "鲣", + "鲥", + "鲧", + "鲩", + "獗", + "獠", + "觯", + "馓", + "馔", + "麾", + "廛", + "瘛", + "瘼", + "瘢", + "瘠", + "齑", + "羯", + "羰", + "𥻗", + "遴", + "糌", + "糍", + "糅", + "熜", + "熵", + "熠", + "澍", + "澌", + "潸", + "潦", + "潲", + "鋈", + "潟", + "潼", + "潺", + "憬", + "憧", + "寮", + "窳", + "谳", + "褴", + "褟", + "褫", + "谵", + "熨", + "屦", + "嬉", + "勰", + "戮", + "蝥", + "缬", + "缮", + "缯", + "骣", + "畿", + "耩", + "耨", + "耪", + "璞", + "璟", + "靛", + "璠", + "璘", + "聱", + "螯", + "髻", + "髭", + "髹", + "擀", + "熹", + "甏", + "擞", + "縠", + "磬", + "颞", + "蕻", + "鞘", + "颟", + "薤", + "薨", + "檠", + "薏", + "薮", + "薜", + "薅", + "樾", + "橛", + "橇", + "樵", + "檎", + "橹", + "樽", + "樨", + "橼", + "墼", + "橐", + "翮", + "醛", + "醐", + "醍", + "醚", + "磲", + "赝", + "飙", + "殪", + "霖", + "霏", + "霓", + "錾", + "辚", + "臻", + "遽", + "氅", + "瞟", + "瞠", + "瞰", + "嚄", + "嚆", + "噤", + "暾", + "蹀", + "踹", + "踵", + "踽", + "蹉", + "蹁", + "螨", + "蟒", + "螈", + "螅", + "螭", + "螠", + "螟", + "噱", + "噬", + "噫", + "噻", + "噼", + "罹", + "圜", + "䦃", + "镖", + "镗", + "镘", + "镚", + "镛", + "镝", + "镞", + "镠", + "氇", + "氆", + "憩", + "穑", + "篝", + "篥", + "篦", + "篪", + "篙", + "盥", + "劓", + "翱", + "魉", + "魈", + "徼", + "歙", + "膳", + "膦", + "膙", + "鲮", + "鲱", + "鲲", + "鲳", + "鲴", + "鲵", + "鲷", + "鲻", + "獴", + "獭", + "獬", + "邂", + "鹧", + "廨", + "赟", + "瘰", + "廪", + "瘿", + "瘵", + "瘴", + "癃", + "瘳", + "斓", + "麇", + "麈", + "嬴", + "壅", + "羲", + "糗", + "瞥", + "甑", + "燎", + "燠", + "燔", + "燧", + "濑", + "濉", + "潞", + "澧", + "澹", + "澥", + "澶", + "濂", + "褰", + "寰", + "窸", + "褶", + "禧", + "嬖", + "犟", + "隰", + "嬗", + "颡", + "缱", + "缲", + "缳", + "璨", + "璩", + "璐", + "璪", + "螫", + "擤", + "壕", + "觳", + "罄", + "擢", + "薹", + "鞡", + "鞬", + "薷", + "薰", + "藓", + "藁", + "檄", + "檩", + "懋", + "醢", + "翳", + "礅", + "磴", + "鹩", + "龋", + "龌", + "豳", + "壑", + "黻", + "嚏", + "嚅", + "蹑", + "蹒", + "蹊", + "蟥", + "螬", + "螵", + "疃", + "螳", + "蟑", + "嚓", + "羁", + "罽", + "罾", + "嶷", + "黜", + "黝", + "髁", + "髀", + "镡", + "镢", + "镣", + "镦", + "镧", + "镩", + "镪", + "镫", + "罅", + "黏", + "簌", + "篾", + "篼", + "簖", + "簋", + "鼢", + "黛", + "儡", + "鹪", + "鼾", + "皤", + "魍", + "龠", + "繇", + "貘", + "邈", + "貔", + "臌", + "膻", + "臆", + "臃", + "鲼", + "鲽", + "鳀", + "鳃", + "鳅", + "鳇", + "鳊", + "螽", + "燮", + "鹫", + "襄", + "糜", + "縻", + "膺", + "癍", + "麋", + "懑", + "濡", + "濮", + "濞", + "濠", + "濯", + "蹇", + "謇", + "邃", + "襁", + "檗", + "擘", + "孺", + "隳", + "嬷", + "蟊", + "鹬", + "鍪", + "鏊", + "鳌", + "鬈", + "鬃", + "瞽", + "鞯", + "鞨", + "鞫", + "鞧", + "鞣", + "藜", + "藠", + "藩", + "醪", + "蹙", + "礓", + "燹", + "餮", + "瞿", + "曛", + "颢", + "曜", + "躇", + "蹚", + "鹭", + "蟛", + "蟪", + "蟠", + "蟮", + "鹮", + "黠", + "黟", + "髅", + "髂", + "镬", + "镭", + "镯", + "馥", + "簟", + "簪", + "鼬", + "雠", + "艟", + "鳎", + "鳏", + "鳐", + "癞", + "癔", + "癜", + "癖", + "糨", + "蹩", + "鎏", + "懵", + "彝", + "邋", + "鬏", + "攉", + "攒", + "鞲", + "鞴", + "藿", + "蘧", + "蘅", + "麓", + "醮", + "醯", + "酃", + "霪", + "霭", + "霨", + "黼", + "嚯", + "蹰", + "蹶", + "蹽", + "蹼", + "蹴", + "蹾", + "蹿", + "蠖", + "蠓", + "蟾", + "蠊", + "黢", + "髋", + "髌", + "镲", + "籀", + "籁", + "齁", + "魑", + "艨", + "鳓", + "鳔", + "鳕", + "鳗", + "鳙", + "麒", + "鏖", + "羸", + "㸆", + "瀚", + "瀣", + "瀛", + "襦", + "谶", + "襞", + "骥", + "缵", + "瓒", + "攘", + "蘩", + "蘖", + "醴", + "霰", + "酆", + "矍", + "曦", + "躅", + "鼍", + "巉", + "黩", + "黥", + "黪", + "镳", + "镴", + "黧", + "纂", + "璺", + "鼯", + "臜", + "鳜", + "鳝", + "鳟", + "獾", + "孀", + "骧", + "瓘", + "鼙", + "醺", + "礴", + "颦", + "曩", + "鳢", + "癫", + "麝", + "夔", + "爝", + "灏", + "禳", + "鐾", + "羼", + "蠡", + "耱", + "懿", + "蘸", + "鹳", + "霾", + "氍", + "饕", + "躐", + "髑", + "镵", + "穰", + "饔", + "鬻", + "鬟", + "趱", + "攫", + "攥", + "颧", + "躜", + "鼹", + "癯", + "麟", + "蠲", + "蠹", + "躞", + "衢", + "鑫", + "灞", + "襻", + "纛", + "鬣", + "攮", + "囔", + "馕", + "戆", + "爨", + "齉", + "亍", + "尢", + "彳", + "卬", + "殳", + "𠙶", + "毌", + "邘", + "戋", + "圢", + "氕", + "伋", + "仝", + "冮", + "氿", + "汈", + "氾", + "忉", + "宄", + "讱", + "扞", + "圲", + "圫", + "芏", + "芃", + "朳", + "朸", + "𨙸", + "邨", + "吒", + "吖", + "屼", + "屾", + "辿", + "钆", + "仳", + "伣", + "伈", + "癿", + "甪", + "邠", + "犴", + "冱", + "邡", + "闫", + "汋", + "䜣", + "讻", + "孖", + "纩", + "玒", + "玓", + "玘", + "玚", + "刬", + "坜", + "坉", + "扽", + "坋", + "扺", + "㧑", + "毐", + "芰", + "芣", + "苊", + "苉", + "芘", + "芴", + "芠", + "芤", + "杕", + "杙", + "杄", + "杧", + "杩", + "尪", + "尨", + "轪", + "坒", + "芈", + "旴", + "旵", + "呙", + "㕮", + "岍", + "岠", + "岜", + "呇", + "冏", + "觃", + "岙", + "伾", + "㑇", + "伭", + "佖", + "伲", + "佁", + "飏", + "狃", + "闶", + "汧", + "汫", + "𣲘", + "𣲗", + "沄", + "沘", + "汭", + "㳇", + "沇", + "忮", + "忳", + "忺", + "祃", + "诇", + "邲", + "诎", + "诐", + "屃", + "岊", + "阽", + "䢺", + "阼", + "妧", + "妘", + "𨚕", + "纮", + "驲", + "纻", + "纼", + "玤", + "玞", + "玱", + "玟", + "邽", + "邿", + "坥", + "坰", + "坬", + "坽", + "弆", + "耵", + "䢼", + "𦭜", + "茋", + "苧", + "苾", + "苠", + "枅", + "㭎", + "枘", + "枍", + "矼", + "矻", + "匼", + "旿", + "昇", + "昄", + "昒", + "昈", + "咉", + "咇", + "咍", + "岵", + "岽", + "岨", + "岞", + "峂", + "㟃", + "囷", + "钐", + "钔", + "钖", + "牥", + "佴", + "垈", + "侁", + "侹", + "佸", + "佺", + "隹", + "㑊", + "侂", + "佽", + "侘", + "郈", + "舠", + "郐", + "郃", + "攽", + "肭", + "肸", + "肷", + "狉", + "狝", + "饳", + "忞", + "於", + "炌", + "炆", + "泙", + "沺", + "泂", + "泜", + "泃", + "泇", + "怊", + "峃", + "穸", + "祋", + "祊", + "鸤", + "弢", + "弨", + "陑", + "陎", + "卺", + "乸", + "妭", + "姈", + "迳", + "叕", + "驵", + "䌹", + "驺", + "绋", + "绐", + "砉", + "耔", + "㛃", + "玶", + "珇", + "珅", + "珋", + "玹", + "珌", + "玿", + "韨", + "垚", + "垯", + "垙", + "垲", + "埏", + "垍", + "耇", + "垎", + "垴", + "垟", + "垞", + "挓", + "垵", + "垏", + "拶", + "荖", + "荁", + "荙", + "荛", + "茈", + "茽", + "荄", + "茺", + "荓", + "茳", + "𦰡", + "茛", + "荭", + "㭕", + "柷", + "柃", + "柊", + "枹", + "栐", + "柖", + "郚", + "剅", + "䴓", + "迺", + "厖", + "砆", + "砑", + "砄", + "耏", + "奓", + "䶮", + "轵", + "轷", + "轹", + "轺", + "昺", + "昽", + "盷", + "咡", + "咺", + "昳", + "昣", + "哒", + "昤", + "昫", + "昡", + "咥", + "昪", + "虷", + "虸", + "哃", + "峘", + "耑", + "峛", + "峗", + "峧", + "帡", + "钘", + "钜", + "钪", + "钬", + "钭", + "矧", + "秬", + "俫", + "舁", + "俜", + "俙", + "俍", + "垕", + "衎", + "舣", + "弇", + "侴", + "鸧", + "䏡", + "胠", + "𦙶", + "胈", + "胩", + "胣", + "朏", + "飐", + "訄", + "饻", + "庤", + "疢", + "炣", + "炟", + "㶲", + "洭", + "洘", + "洓", + "洿", + "㳚", + "泚", + "浈", + "浉", + "洸", + "洑", + "洢", + "洈", + "洚", + "洺", + "洨", + "浐", + "㳘", + "洴", + "洣", + "恔", + "宬", + "窀", + "扂", + "袆", + "祏", + "祐", + "祕", + "叚", + "陧", + "陞", + "娀", + "姞", + "姱", + "姤", + "姶", + "姽", + "枲", + "绖", + "骃", + "彖", + "骉", + "恝", + "珪", + "珛", + "珹", + "琊", + "玼", + "珖", + "珽", + "珦", + "珫", + "珒", + "珢", + "珕", + "珝", + "埗", + "垾", + "垺", + "埆", + "垿", + "埌", + "埇", + "莰", + "茝", + "鄀", + "莶", + "莝", + "䓖", + "莙", + "栻", + "桠", + "桄", + "梠", + "栴", + "梴", + "栒", + "酎", + "酏", + "砵", + "砠", + "砫", + "砬", + "硁", + "恧", + "翃", + "郪", + "𨐈", + "辀", + "辁", + "剕", + "赀", + "哢", + "晅", + "晊", + "唝", + "哳", + "哱", + "冔", + "晔", + "晐", + "晖", + "畖", + "蚄", + "蚆", + "帱", + "崁", + "峿", + "崄", + "帨", + "崀", + "赆", + "钷", + "眚", + "甡", + "笫", + "倻", + "倴", + "脩", + "倮", + "倕", + "倞", + "倓", + "倧", + "衃", + "虒", + "舭", + "舯", + "舥", + "瓞", + "鬯", + "鸰", + "脎", + "朓", + "胲", + "虓", + "鱽", + "狴", + "峱", + "狻", + "眢", + "勍", + "痄", + "疰", + "痃", + "竘", + "羖", + "羓", + "桊", + "敉", + "烠", + "烔", + "烶", + "烻", + "涍", + "浡", + "浭", + "浬", + "涄", + "涢", + "涐", + "浰", + "浟", + "浛", + "浼", + "浲", + "涘", + "悈", + "悃", + "悢", + "宧", + "窅", + "窊", + "窎", + "扅", + "扆", + "袪", + "袗", + "袯", + "祧", + "隺", + "堲", + "疍", + "𨺙", + "陴", + "烝", + "砮", + "㛚", + "哿", + "翀", + "翂", + "剟", + "绤", + "骍", + "䂮", + "琎", + "珸", + "珵", + "琄", + "琈", + "琀", + "珺", + "掭", + "堎", + "堐", + "埼", + "掎", + "埫", + "堌", + "晢", + "掞", + "埪", + "壸", + "㙍", + "聍", + "菝", + "萚", + "菥", + "莿", + "䓫", + "勚", + "䓬", + "萆", + "菂", + "菍", + "菼", + "萣", + "䓨", + "菉", + "䓛", + "梼", + "梽", + "桲", + "梾", + "桯", + "梣", + "梌", + "桹", + "敔", + "厣", + "硔", + "硙", + "硚", + "硊", + "硍", + "勔", + "䴕", + "龁", + "逴", + "唪", + "啫", + "翈", + "㫰", + "晙", + "畤", + "趼", + "跂", + "蛃", + "蚲", + "蚺", + "啴", + "䎃", + "崧", + "崟", + "崞", + "崒", + "崌", + "崡", + "铏", + "铕", + "铖", + "铘", + "铚", + "铞", + "铥", + "铴", + "牻", + "牿", + "稆", + "笱", + "笯", + "偰", + "偡", + "鸺", + "偭", + "偲", + "偁", + "㿠", + "鄅", + "偓", + "徛", + "衒", + "舳", + "舲", + "鸼", + "悆", + "鄃", + "瓻", + "䝙", + "脶", + "脞", + "脟", + "䏲", + "鱾", + "猇", + "猊", + "猄", + "觖", + "𠅤", + "庱", + "庼", + "庳", + "痓", + "䴔", + "竫", + "堃", + "阌", + "羝", + "羕", + "焆", + "烺", + "焌", + "淏", + "淟", + "淜", + "淴", + "淯", + "湴", + "涴", + "㥄", + "惛", + "惔", + "悰", + "惙", + "寁", + "逭", + "袼", + "裈", + "祲", + "谞", + "艴", + "弸", + "弶", + "隃", + "婞", + "娵", + "婼", + "媖", + "婳", + "婍", + "婌", + "婫", + "婤", + "婘", + "婠", + "绹", + "骕", + "絜", + "珷", + "琲", + "琡", + "琟", + "琔", + "琭", + "堾", + "堼", + "揕", + "㙘", + "堧", + "喆", + "堨", + "塅", + "堠", + "絷", + "𡎚", + "葜", + "惎", + "萳", + "葙", + "靬", + "葴", + "蒇", + "蒈", + "鄚", + "蒉", + "蓇", + "萩", + "蒐", + "葰", + "葎", + "鄑", + "蒎", + "葖", + "蒄", + "萹", + "棤", + "棽", + "棫", + "椓", + "椑", + "鹀", + "椆", + "棓", + "棬", + "棪", + "椀", + "楗", + "甦", + "酦", + "觌", + "奡", + "皕", + "硪", + "欹", + "詟", + "辌", + "棐", + "龂", + "黹", + "牚", + "睎", + "晫", + "晪", + "晱", + "𧿹", + "蛑", + "畯", + "斝", + "喤", + "崶", + "嵁", + "崾", + "嵅", + "崿", + "嵚", + "翙", + "圌", + "圐", + "赑", + "淼", + "赒", + "铹", + "铽", + "𨱇", + "锊", + "锍", + "锎", + "锓", + "犇", + "颋", + "稌", + "筀", + "筘", + "筜", + "筥", + "筅", + "傃", + "傉", + "翛", + "傒", + "傕", + "舾", + "畬", + "脿", + "腘", + "䐃", + "腙", + "腒", + "鲃", + "猰", + "猯", + "㺄", + "馉", + "鄗", + "廋", + "廆", + "鄌", + "粢", + "遆", + "旐", + "焞", + "欻", + "𣸣", + "溚", + "溁", + "湝", + "渰", + "湓", + "㴔", + "渟", + "溠", + "渼", + "溇", + "湣", + "湑", + "溞", + "愐", + "愃", + "敩", + "甯", + "棨", + "扊", + "裣", + "祼", + "婻", + "媆", + "媞", + "㛹", + "媓", + "媂", + "媄", + "毵", + "矞", + "缊", + "缐", + "骙", + "瑃", + "瑓", + "瑅", + "瑆", + "䴖", + "瑖", + "瑝", + "瑔", + "瑀", + "𤧛", + "瑳", + "瑂", + "嶅", + "瑑", + "遘", + "髢", + "塥", + "堽", + "赪", + "摛", + "塝", + "搒", + "搌", + "蒱", + "蒨", + "蓏", + "蔀", + "蓢", + "蓂", + "蒻", + "蓣", + "椹", + "楪", + "榃", + "榅", + "楒", + "楞", + "楩", + "榇", + "椸", + "楙", + "歅", + "碃", + "碏", + "碈", + "䃅", + "硿", + "鄠", + "辒", + "龆", + "觜", + "䣘", + "暕", + "鹍", + "㬊", + "暅", + "跱", + "蜐", + "蜎", + "嵲", + "赗", + "骱", + "锖", + "锘", + "锳", + "锧", + "锪", + "锫", + "锬", + "稑", + "稙", + "䅟", + "筻", + "筼", + "筶", + "筦", + "筤", + "傺", + "鹎", + "僇", + "艅", + "艉", + "谼", + "貆", + "腽", + "腨", + "腯", + "鲉", + "鲊", + "鲌", + "䲟", + "鲏", + "雊", + "猺", + "飔", + "觟", + "𦝼", + "馌", + "裛", + "廒", + "瘀", + "瘅", + "鄘", + "鹒", + "鄜", + "麀", + "鄣", + "阘", + "煁", + "煃", + "煴", + "煋", + "煟", + "煓", + "滠", + "溍", + "溹", + "滆", + "滉", + "溦", + "溵", + "漷", + "滧", + "滘", + "滍", + "愭", + "慥", + "慆", + "塱", + "裼", + "禋", + "禔", + "禘", + "禒", + "谫", + "鹔", + "愍", + "嫄", + "媱", + "戤", + "戣", + "缞", + "耤", + "瑧", + "瑨", + "瑱", + "瑷", + "瑢", + "斠", + "摏", + "墕", + "墈", + "墐", + "墘", + "摴", + "銎", + "𡐓", + "墚", + "撖", + "靽", + "鞁", + "蔌", + "蔈", + "蓰", + "蔹", + "蔊", + "嘏", + "榰", + "榑", + "槚", + "𣗋", + "槜", + "榍", + "疐", + "酺", + "酾", + "酲", + "酴", + "碶", + "䃎", + "碨", + "𥔲", + "碹", + "碥", + "劂", + "䴗", + "夥", + "瞍", + "鹖", + "㬎", + "跽", + "蜾", + "幖", + "嶍", + "圙", + "𨱏", + "锺", + "锼", + "锽", + "锾", + "锿", + "镃", + "镄", + "镅", + "馝", + "鹙", + "箨", + "箖", + "劄", + "僬", + "僦", + "僔", + "僎", + "槃", + "㙦", + "鲒", + "鲕", + "鲖", + "鲗", + "鲘", + "鲙", + "𩽾", + "夐", + "獍", + "飗", + "凘", + "廑", + "廙", + "瘗", + "瘥", + "瘕", + "鲝", + "鄫", + "熇", + "漹", + "漖", + "潆", + "漤", + "潩", + "漼", + "漴", + "㽏", + "漈", + "漋", + "漻", + "慬", + "窬", + "窭", + "㮾", + "褕", + "禛", + "禚", + "隩", + "嫕", + "嫭", + "嫜", + "嫪", + "㻬", + "麹", + "璆", + "漦", + "叇", + "墣", + "墦", + "墡", + "劐", + "薁", + "蕰", + "蔃", + "鼒", + "槱", + "鹝", + "磏", + "磉", + "殣", + "慭", + "霅", + "暵", + "暲", + "暶", + "踦", + "踣", + "䗖", + "蝘", + "蝲", + "蝤", + "噇", + "噂", + "噀", + "罶", + "嶲", + "嶓", + "㠇", + "嶟", + "嶒", + "镆", + "镈", + "镋", + "镎", + "镕", + "稹", + "儇", + "皞", + "皛", + "䴘", + "艎", + "艏", + "鹟", + "𩾃", + "鲦", + "鲪", + "鲬", + "橥", + "觭", + "鹠", + "鹡", + "糇", + "糈", + "翦", + "鹢", + "鹣", + "熛", + "潖", + "潵", + "㵐", + "澂", + "澛", + "瑬", + "潽", + "潾", + "潏", + "憭", + "憕", + "戭", + "褯", + "禤", + "嫽", + "遹", + "璥", + "璲", + "璒", + "憙", + "擐", + "鄹", + "薳", + "鞔", + "黇", + "蕗", + "薢", + "蕹", + "橞", + "橑", + "橦", + "醑", + "觱", + "磡", + "𥕢", + "磜", + "豮", + "鹾", + "虤", + "暿", + "曌", + "曈", + "㬚", + "蹅", + "踶", + "䗛", + "螗", + "疁", + "㠓", + "幪", + "嶦", + "𨱑", + "馞", + "穄", + "篚", + "篯", + "簉", + "鼽", + "衠", + "盦", + "螣", + "縢", + "鲭", + "鲯", + "鲰", + "鲺", + "鲹", + "亸", + "癀", + "瘭", + "羱", + "糒", + "燋", + "熻", + "燊", + "燚", + "燏", + "濩", + "濋", + "澪", + "澽", + "澴", + "澭", + "澼", + "憷", + "憺", + "懔", + "黉", + "嬛", + "鹨", + "翯", + "璱", + "𤩽", + "璬", + "璮", + "髽", + "擿", + "薿", + "薸", + "檑", + "櫆", + "檞", + "醨", + "繄", + "磹", + "磻", + "瞫", + "瞵", + "蹐", + "蟏", + "㘎", + "镤", + "镥", + "镨", + "𨱔", + "矰", + "穙", + "穜", + "穟", + "簕", + "簃", + "簏", + "儦", + "魋", + "斶", + "艚", + "谿", + "䲠", + "鲾", + "鲿", + "鳁", + "鳂", + "鳈", + "鳉", + "獯", + "䗪", + "馘", + "襕", + "襚", + "螱", + "甓", + "嬬", + "嬥", + "𦈡", + "瓀", + "釐", + "鬶", + "爇", + "鞳", + "鞮", + "藟", + "藦", + "藨", + "鹲", + "檫", + "黡", + "礞", + "礌", + "𥖨", + "蹢", + "蹜", + "蟫", + "䗴", + "嚚", + "髃", + "镮", + "镱", + "酂", + "馧", + "簠", + "簝", + "簰", + "鼫", + "鼩", + "皦", + "臑", + "䲢", + "鳑", + "鳒", + "鹱", + "鹯", + "癗", + "𦒍", + "旞", + "翷", + "冁", + "䎖", + "瀔", + "瀍", + "瀌", + "襜", + "䴙", + "嚭", + "㰀", + "鬷", + "醭", + "蹯", + "蠋", + "翾", + "鳘", + "儳", + "儴", + "鼗", + "𩾌", + "鳚", + "鳛", + "麑", + "麖", + "蠃", + "彟", + "嬿", + "鬒", + "蘘", + "欂", + "醵", + "颥", + "甗", + "𨟠", + "巇", + "酅", + "髎", + "犨", + "𨭉", + "㸌", + "爔", + "瀱", + "瀹", + "瀼", + "瀵", + "襫", + "孅", + "骦", + "耰", + "𤫉", + "瓖", + "鬘", + "趯", + "罍", + "鼱", + "鳠", + "鳡", + "鳣", + "爟", + "爚", + "灈", + "韂", + "糵", + "蘼", + "礵", + "鹴", + "躔", + "皭", + "龢", + "鳤", + "亹", + "籥", + "鼷", + "玃", + "醾", + "齇", + "觿", + "蠼", + "𬣙", + "𬇕", + "𬣞", + "𬘓", + "𫭟", + "𫭢", + "𫇭", + "𫐄", + "𫵷", + "𬇙", + "𬣡", + "𫸩", + "𫘜", + "𬘘", + "𫘝", + "𬨂", + "𬀩", + "𬀪", + "𬬩", + "𫍣", + "𬣳", + "𬩽", + "𬮿", + "𬯀", + "𫰛", + "𬳵", + "𬳶", + "𫠊", + "𬍛", + "鿍", + "𬜬", + "𪾢", + "𪨰", + "𫓧", + "𬬮", + "𬬱", + "𬬭", + "𬘡", + "𬳽", + "𬘩", + "𫄧", + "𪟝", + "𬍤", + "𫭼", + "𬜯", + "𬂩", + "𫠆", + "𬌗", + "𫑡", + "𪨶", + "𬬸", + "𬬻", + "𬬹", + "𬬿", + "𬭁", + "𫢸", + "𫗧", + "𬊈", + "𬒈", + "𬳿", + "𫄨", + "𬘫", + "𫮃", + "鿎", + "𬱖", + "𬟽", + "𫓯", + "𫟹", + "𫟼", + "𬇹", + "𬍡", + "𬤇", + "𫍯", + "𬤊", + "𫍲", + "𬯎", + "𬘬", + "𬘭", + "𬴂", + "𫘦", + "𫟅", + "𬘯", + "𫘧", + "𪣻", + "𬃊", + "𬷕", + "𫐐", + "𬹼", + "𫶇", + "𫖮", + "鿏", + "𬭊", + "𫓶", + "𬭎", + "𫖯", + "𬱟", + "𫛭", + "𫷷", + "𬮱", + "𬊤", + "𬴃", + "𫘨", + "𬪩", + "𬒔", + "𬨎", + "𫐓", + "𫫇", + "𫓹", + "𬭚", + "𬭛", + "𬕂", + "𬶋", + "𬶍", + "𫔶", + "𫌀", + "𫖳", + "𫘪", + "𫘬", + "𫞩", + "𪤗", + "𬸘", + "𬒗", + "𫚖", + "𬭤", + "𫚕", + "𬶐", + "𬶏", + "𬸚", + "𬤝", + "𬙂", + "𬭩", + "𬸣", + "𫍽", + "𬴊", + "𬞟", + "𫟦", + "𬺈", + "𫠜", + "𪩘", + "𬭬", + "𬭯", + "𫗴", + "𬸦", + "𫄷", + "𬭳", + "𬭶", + "𫔍", + "𬭸", + "𬭼", + "𫔎", + "𬸪", + "𬶟", + "𬶠", + "𬶨", + "𫄸", + "𬟁", + "𬙊", + "𬶭", + "𬶮", + "𬙋", + "𬺓", + "𫚭", + "廠", + "蔔", + "兒", + "幾", + "幹", + "虧", + "纔", + "與", + "萬", + "韆", + "億", + "個", + "廣", + "門", + "義", + "衛", + "飛", + "習", + "馬", + "鄉", + "豐", + "開", + "無", + "雲", + "專", + "藝", + "廳", + "區", + "歷", + "曆", + "車", + "貝", + "岡", + "見", + "氣", + "長", + "僕", + "幣", + "僅", + "從", + "侖", + "倉", + "風", + "烏", + "鳳", + "爲", + "鬥", + "憶", + "計", + "訂", + "認", + "譏", + "醜", + "隊", + "辦", + "鄧", + "勸", + "雙", + "書", + "擊", + "撲", + "節", + "術", + "厲", + "龍", + "滅", + "軋", + "東", + "盧", + "業", + "舊", + "帥", + "歸", + "葉", + "電", + "號", + "衹", + "隻", + "嘰", + "嘆", + "們", + "儀", + "叢", + "爾", + "樂", + "處", + "鼕", + "鳥", + "務", + "飢", + "饑", + "馮", + "閃", + "蘭", + "匯", + "彙", + "頭", + "漢", + "寧", + "討", + "寫", + "讓", + "禮", + "訓", + "議", + "訊", + "記", + "齣", + "遼", + "邊", + "發", + "髮", + "聖", + "對", + "臺", + "颱", + "檯", + "糾", + "絲", + "動", + "鞏", + "執", + "擴", + "掃", + "場", + "揚", + "亞", + "樸", + "機", + "權", + "過", + "協", + "壓", + "厭", + "頁", + "誇", + "奪", + "達", + "夾", + "軌", + "堯", + "劃", + "邁", + "畢", + "貞", + "師", + "塵", + "當", + "噹", + "籲", + "嚇", + "蟲", + "麯", + "團", + "糰", + "嗎", + "嶼", + "歲", + "迴", + "豈", + "則", + "剛", + "網", + "硃", + "遷", + "喬", + "偉", + "傳", + "優", + "傷", + "價", + "倫", + "華", + "僞", + "嚮", + "後", + "會", + "殺", + "閤", + "衆", + "爺", + "傘", + "創", + "雜", + "負", + "壯", + "衝", + "妝", + "莊", + "慶", + "劉", + "齊", + "産", + "閉", + "問", + "闖", + "關", + "燈", + "湯", + "興", + "講", + "諱", + "軍", + "訝", + "許", + "訛", + "論", + "訟", + "農", + "諷", + "設", + "訪", + "訣", + "尋", + "盡", + "儘", + "導", + "孫", + "陣", + "陽", + "階", + "陰", + "婦", + "媽", + "戲", + "觀", + "歡", + "買", + "紅", + "馱", + "纖", + "縴", + "馴", + "約", + "級", + "紀", + "馳", + "紉", + "壽", + "麥", + "瑪", + "進", + "遠", + "違", + "韌", + "運", + "撫", + "壇", + "罎", + "壞", + "摳", + "擾", + "貢", + "垻", + "壩", + "摺", + "掄", + "搶", + "墳", + "護", + "殻", + "塊", + "聲", + "報", + "擬", + "蕪", + "葦", + "蒼", + "嚴", + "蘆", + "勞", + "蘇", + "囌", + "極", + "楊", + "兩", + "麗", + "醫", + "勵", + "還", + "殲", + "來", + "連", + "軒", + "鹵", + "滷", + "堅", + "時", + "縣", + "裏", + "嘔", + "園", + "曠", + "圍", + "噸", + "郵", + "睏", + "員", + "聽", + "嗆", + "嗚", + "彆", + "嶇", + "崗", + "帳", + "財", + "針", + "釘", + "亂", + "體", + "傭", + "徹", + "餘", + "穀", + "鄰", + "腸", + "龜", + "猶", + "狽", + "條", + "島", + "飯", + "飲", + "係", + "繫", + "凍", + "狀", + "畝", + "庫", + "療", + "應", + "這", + "廬", + "閏", + "閑", + "間", + "悶", + "竈", + "燦", + "瀝", + "淪", + "滄", + "溝", + "滬", + "瀋", + "懷", + "憂", + "窮", + "證", + "啓", + "評", + "補", + "識", + "詐", + "訴", + "診", + "詞", + "譯", + "靈", + "層", + "遲", + "張", + "際", + "陸", + "陳", + "墜", + "勁", + "鷄", + "緯", + "驅", + "純", + "紗", + "綱", + "納", + "駁", + "縱", + "紛", + "紙", + "紋", + "紡", + "驢", + "紐", + "環", + "責", + "現", + "錶", + "規", + "攏", + "揀", + "擔", + "頂", + "擁", + "勢", + "攔", + "擰", + "撥", + "擇", + "蘋", + "範", + "莖", + "樞", + "櫃", + "闆", + "鬆", + "槍", + "楓", + "構", + "喪", + "畫", + "棗", + "賣", + "鬱", + "礬", + "礦", + "碼", + "厠", + "奮", + "態", + "歐", + "毆", + "壟", + "轟", + "頃", + "轉", + "斬", + "輪", + "軟", + "齒", + "虜", + "腎", + "賢", + "國", + "暢", + "嚨", + "鳴", + "羅", + "幟", + "嶺", + "凱", + "敗", + "賬", + "販", + "貶", + "購", + "貯", + "圖", + "釣", + "製", + "颳", + "俠", + "僥", + "偵", + "側", + "憑", + "僑", + "貨", + "質", + "徑", + "捨", + "覓", + "貪", + "貧", + "膚", + "腫", + "脹", + "骯", + "脅", + "魚", + "獰", + "備", + "飾", + "飽", + "飼", + "變", + "龐", + "廟", + "瘧", + "劑", + "廢", + "閘", + "鬧", + "鄭", + "捲", + "單", + "爐", + "淺", + "濘", + "瀉", + "潑", + "澤", + "憐", + "學", + "寶", + "寵", + "審", + "簾", + "實", + "試", + "詩", + "誠", + "襯", + "視", + "話", + "誕", + "詭", + "詢", + "該", + "詳", + "肅", + "録", + "隸", + "彌", + "瀰", + "陝", + "駕", + "參", + "艱", + "綫", + "練", + "組", + "紳", + "細", + "駛", + "織", + "駒", + "終", + "駐", + "絆", + "駝", + "紹", + "繹", + "經", + "貫", + "貳", + "幫", + "項", + "挾", + "撓", + "趙", + "擋", + "墊", + "擠", + "揮", + "薦", + "帶", + "繭", + "蕩", + "榮", + "葷", + "熒", + "鬍", + "蔭", + "藥", + "標", + "棧", + "棟", + "欄", + "檸", + "樹", + "鹹", + "磚", + "硯", + "麵", + "牽", + "鷗", + "殘", + "軸", + "輕", + "鴉", + "戰", + "點", + "臨", + "覽", + "竪", + "嘗", + "啞", + "顯", + "貴", + "蝦", + "蟻", + "螞", + "雖", + "駡", + "勛", + "嘩", + "響", + "喲", + "峽", + "罰", + "賤", + "貼", + "貽", + "鈣", + "鈍", + "鈔", + "鍾", + "鐘", + "鋼", + "鈉", + "鑰", + "欽", + "鈞", + "鈎", + "鈕", + "氈", + "氫", + "選", + "適", + "種", + "鞦", + "復", + "複", + "倆", + "貸", + "順", + "儉", + "須", + "鬚", + "劍", + "朧", + "膽", + "勝", + "狹", + "獅", + "獨", + "獄", + "貿", + "餌", + "饒", + "蝕", + "餃", + "餅", + "巒", + "彎", + "將", + "奬", + "瘡", + "瘋", + "親", + "閨", + "聞", + "閩", + "閥", + "閣", + "養", + "薑", + "類", + "婁", + "總", + "煉", + "爍", + "爛", + "窪", + "潔", + "灑", + "澆", + "濁", + "測", + "瀏", + "濟", + "渾", + "濃", + "惱", + "舉", + "覺", + "憲", + "竊", + "誡", + "誣", + "語", + "襖", + "誤", + "誘", + "誨", + "説", + "誦", + "墾", + "晝", + "費", + "遜", + "隕", + "險", + "嬌", + "賀", + "壘", + "綁", + "絨", + "結", + "繞", + "驕", + "繪", + "給", + "絢", + "駱", + "絡", + "絶", + "絞", + "駭", + "統", + "艷", + "蠶", + "頑", + "盞", + "撈", + "載", + "趕", + "鹽", + "損", + "撿", + "摯", + "剝", + "熱", + "搗", + "壺", + "聶", + "萊", + "蓮", + "獲", + "穫", + "惡", + "噁", + "瑩", + "鶯", + "檔", + "橋", + "樺", + "樁", + "樣", + "賈", + "礫", + "礎", + "顧", + "轎", + "較", + "頓", + "斃", + "緻", + "慮", + "監", + "緊", + "黨", + "曬", + "曉", + "嘮", + "鴨", + "暈", + "鴦", + "罷", + "圓", + "賊", + "賄", + "賂", + "贜", + "錢", + "鉗", + "鑽", + "鉀", + "鐵", + "鈴", + "鉛", + "犧", + "敵", + "積", + "稱", + "筆", + "債", + "傾", + "賃", + "艦", + "艙", + "聳", + "愛", + "頒", + "頌", + "臟", + "髒", + "臍", + "膠", + "腦", + "膿", + "鴕", + "鴛", + "皺", + "餓", + "餒", + "戀", + "槳", + "漿", + "準", + "癥", + "齋", + "離", + "資", + "競", + "閲", + "煩", + "燒", + "燭", + "遞", + "濤", + "澇", + "渦", + "塗", + "滌", + "潤", + "澗", + "漲", + "燙", + "澀", + "憫", + "寬", + "傢", + "賓", + "竅", + "請", + "諸", + "諾", + "讀", + "誹", + "襪", + "課", + "誰", + "調", + "諒", + "諄", + "談", + "誼", + "懇", + "劇", + "難", + "預", + "絹", + "綉", + "驗", + "繼", + "駿", + "瑣", + "擲", + "據", + "摻", + "職", + "蘿", + "螢", + "營", + "蕭", + "薩", + "夢", + "檢", + "醖", + "碩", + "聾", + "襲", + "輔", + "輛", + "顱", + "懸", + "躍", + "纍", + "囉", + "嘯", + "嶄", + "邏", + "嬰", + "銬", + "鐺", + "鋁", + "銅", + "銘", + "鏟", + "銀", + "矯", + "穢", + "籠", + "償", + "軀", + "釁", + "銜", + "盤", + "鴿", + "斂", + "領", + "臉", + "獵", + "餡", + "館", + "癢", + "鏇", + "閻", + "闡", + "蓋", + "斷", + "獸", + "鴻", + "漸", + "淵", + "漁", + "澱", + "滲", + "慚", + "懼", + "驚", + "慘", + "慣", + "謀", + "諜", + "謊", + "諧", + "禱", + "禍", + "謂", + "諺", + "謎", + "彈", + "墮", + "隨", + "隱", + "嬸", + "頗", + "頸", + "績", + "緒", + "續", + "騎", + "綽", + "繩", + "維", + "綿", + "綳", + "綢", + "綜", + "綻", + "緑", + "綴", + "瓊", + "趨", + "攬", + "攙", + "擱", + "摟", + "攪", + "聯", + "蔣", + "韓", + "橢", + "確", + "頰", + "靂", + "暫", + "翹", + "輩", + "鑿", + "輝", + "賞", + "睞", + "噴", + "疇", + "踐", + "遺", + "鵑", + "賦", + "賭", + "贖", + "賜", + "賠", + "鑄", + "鋪", + "鏈", + "銷", + "鎖", + "鋤", + "鍋", + "銹", + "鋒", + "鋅", + "鋭", + "鵝", + "築", + "篩", + "儲", + "懲", + "禦", + "釋", + "臘", + "魯", + "憊", + "饋", + "饞", + "裝", + "蠻", + "闊", + "糞", + "滯", + "濕", + "潰", + "濺", + "灣", + "憤", + "竄", + "窩", + "褲", + "禪", + "謝", + "謡", + "謗", + "謙", + "屬", + "屢", + "緬", + "纜", + "緝", + "緞", + "緩", + "締", + "縷", + "騙", + "編", + "騷", + "緣", + "鵡", + "攝", + "擺", + "襬", + "攤", + "鵲", + "藍", + "濛", + "懞", + "矇", + "獻", + "欖", + "樓", + "賴", + "礙", + "尷", + "霧", + "輻", + "輯", + "輸", + "頻", + "齡", + "鑒", + "蹺", + "蝸", + "錯", + "錨", + "錫", + "鑼", + "錘", + "錐", + "錦", + "鍵", + "鋸", + "錳", + "辭", + "頽", + "籌", + "簽", + "籤", + "簡", + "膩", + "鵬", + "騰", + "鮑", + "穎", + "觸", + "雛", + "饃", + "餾", + "醬", + "謄", + "糧", + "數", + "滿", + "濾", + "濫", + "灕", + "濱", + "灘", + "譽", + "窺", + "寢", + "謹", + "謬", + "闢", + "縛", + "縫", + "纏", + "繽", + "贅", + "墻", + "衊", + "藹", + "檻", + "釀", + "願", + "轄", + "輾", + "顆", + "踴", + "蠟", + "蠅", + "蟬", + "賺", + "鍬", + "鍛", + "鍍", + "穩", + "籮", + "簫", + "輿", + "鮮", + "饅", + "瀟", + "賽", + "譚", + "譜", + "騾", + "縮", + "攆", + "聰", + "藴", + "櫻", + "飄", + "黴", + "瞞", + "題", + "囑", + "鎮", + "鎬", + "鎊", + "簍", + "鯉", + "鯽", + "癟", + "癱", + "顔", + "鯊", + "瀾", + "額", + "譴", + "鶴", + "繚", + "顛", + "轍", + "鸚", + "贈", + "鏡", + "贊", + "籃", + "籬", + "鯨", + "癮", + "辯", + "瀕", + "懶", + "繮", + "繳", + "矚", + "贍", + "鰐", + "辮", + "贏", + "驟", + "囂", + "鐮", + "鰭", + "鷹", + "巔", + "顫", + "癬", + "鱉", + "鬢", + "鱗", + "躪", + "贛", + "鑲", + "韋", + "閂", + "訃", + "勱", + "芻", + "鄺", + "訐", + "訌", + "訕", + "訖", + "馭", + "璣", + "壙", + "捫", + "薌", + "厙", + "釔", + "傴", + "倀", + "傖", + "獷", + "獁", + "鳬", + "鄔", + "餳", + "懺", + "謳", + "詎", + "訥", + "紆", + "紂", + "紇", + "紈", + "璵", + "摶", + "塢", + "㩳", + "蕓", + "藶", + "莧", + "萇", + "蓯", + "磯", + "奩", + "歟", + "軔", + "鄴", + "嘸", + "囈", + "嚦", + "暘", + "唄", + "幃", + "峴", + "嵐", + "圇", + "釗", + "釙", + "釕", + "僉", + "鳩", + "鄒", + "飩", + "餼", + "飪", + "飫", + "飭", + "廡", + "癤", + "闈", + "閎", + "閔", + "煬", + "灃", + "漚", + "渢", + "潙", + "憮", + "慪", + "愾", + "悵", + "愴", + "詁", + "訶", + "詛", + "詆", + "謅", + "詔", + "詒", + "隴", + "陘", + "嫵", + "嫗", + "嬀", + "剄", + "紜", + "紕", + "紝", + "綸", + "紓", + "瑋", + "匭", + "壚", + "擓", + "蘢", + "蔦", + "塋", + "煢", + "櫪", + "梘", + "棖", + "樅", + "碭", + "甌", + "郟", + "軛", + "鳶", + "曇", + "蟣", + "黽", + "嚀", + "噝", + "巋", + "劌", + "剴", + "嶧", + "釷", + "釺", + "釧", + "釩", + "釹", + "釵", + "儈", + "儕", + "儂", + "劊", + "慫", + "糴", + "戧", + "膞", + "邇", + "梟", + "餞", + "飴", + "癘", + "瘍", + "煒", + "熰", + "熗", + "瀧", + "瀘", + "濼", + "涇", + "㥮", + "懌", + "誆", + "誄", + "詿", + "詰", + "詼", + "鄆", + "禕", + "誅", + "詵", + "詬", + "詮", + "詣", + "諍", + "詫", + "諢", + "詡", + "駑", + "紺", + "紲", + "紱", + "駟", + "駙", + "縐", + "絀", + "驛", + "駘", + "瓏", + "頇", + "埡", + "撾", + "撻", + "賁", + "壋", + "撏", + "莢", + "貰", + "蓽", + "蕎", + "薈", + "薺", + "堊", + "滎", + "犖", + "蕁", + "藎", + "蓀", + "蕒", + "葤", + "櫛", + "櫳", + "櫨", + "櫟", + "檉", + "酈", + "硨", + "碸", + "殤", + "軲", + "軻", + "轤", + "軼", + "軫", + "蠆", + "覘", + "瞘", + "嘵", + "嗶", + "噦", + "剮", + "鄖", + "噲", + "噥", + "嶢", + "幀", + "嶠", + "貺", + "鈈", + "鈦", + "鋇", + "鈑", + "鈐", + "鎢", + "鈁", + "鈀", + "篤", + "儔", + "儼", + "儷", + "腖", + "臚", + "脛", + "鴇", + "獪", + "颮", + "猻", + "餉", + "餄", + "餎", + "孿", + "孌", + "癧", + "瘲", + "颯", + "闥", + "閭", + "闓", + "閡", + "熾", + "烴", + "浹", + "澮", + "滸", + "潯", + "濜", + "慟", + "懨", + "愷", + "惻", + "惲", + "誚", + "禰", + "誥", + "誑", + "鴆", + "婭", + "嬈", + "懟", + "絝", + "驍", + "驊", + "絎", + "絳", + "駢", + "頊", + "璫", + "琿", + "塒", + "塤", + "堝", + "贄", + "蒔", + "萵", + "蕕", + "鴣", + "蒓", + "橈", + "楨", + "榿", + "檜", + "邐", + "礪", + "礱", + "軾", + "輊", + "輅", + "鶇", + "躉", + "齔", + "鸕", + "矓", + "嘜", + "鴞", + "蜆", + "嗩", + "嶗", + "崍", + "覬", + "賅", + "鈺", + "鉦", + "鈷", + "鉢", + "鈸", + "鉞", + "鉭", + "鉬", + "鈿", + "鈾", + "鉑", + "鑠", + "鉚", + "鈰", + "鉉", + "鉈", + "鉍", + "鈮", + "鈹", + "鏺", + "鐸", + "氬", + "筧", + "頎", + "徠", + "膾", + "鴟", + "璽", + "鴝", + "獫", + "裊", + "餑", + "欒", + "攣", + "癰", + "痙", + "頏", + "閫", + "鬮", + "誾", + "閬", + "鄲", + "燁", + "燴", + "燼", + "淶", + "漣", + "潿", + "慳", + "諏", + "諑", + "禎", + "諉", + "諛", + "諗", + "諂", + "誶", + "媧", + "嫻", + "綆", + "驪", + "綃", + "騁", + "綏", + "縧", + "綈", + "駸", + "鷥", + "燾", + "璉", + "麩", + "擄", + "摑", + "鷙", + "撣", + "慤", + "摜", + "縈", + "槤", + "覡", + "欞", + "嗇", + "匱", + "硤", + "磽", + "鴯", + "龔", + "殞", + "殮", + "賚", + "輒", + "塹", + "嘖", + "囀", + "嚙", + "蹌", + "蠣", + "蠱", + "蟶", + "幘", + "幗", + "賕", + "賑", + "賒", + "銠", + "鉺", + "鋏", + "鐃", + "銦", + "鎧", + "鍘", + "銖", + "銑", + "鋌", + "鏵", + "銓", + "鎩", + "鉿", + "銚", + "鉻", + "錚", + "銫", + "鉸", + "銥", + "銃", + "銨", + "銣", + "鴰", + "穠", + "箋", + "籩", + "僨", + "僂", + "皚", + "鴴", + "艫", + "龕", + "玀", + "獼", + "餜", + "餛", + "鸞", + "闍", + "閾", + "閹", + "閶", + "鬩", + "閽", + "閼", + "羥", + "糲", + "燜", + "漬", + "瀆", + "澠", + "愜", + "憚", + "諶", + "諫", + "皸", + "謔", + "襠", + "謁", + "諤", + "諭", + "諼", + "讒", + "諳", + "諦", + "諞", + "糶", + "嬋", + "綾", + "騏", + "綺", + "緋", + "緔", + "騍", + "緄", + "騅", + "綬", + "綹", + "綣", + "綰", + "驂", + "緇", + "靚", + "輦", + "黿", + "頡", + "撳", + "蟄", + "壪", + "蔞", + "櫝", + "欏", + "賫", + "鵓", + "鸝", + "殫", + "輥", + "輞", + "槧", + "輟", + "輜", + "瞼", + "躒", + "蛺", + "蟯", + "螄", + "蠐", + "嘍", + "嶸", + "嶁", + "賧", + "鋙", + "錸", + "鏗", + "鋥", + "鋰", + "鋯", + "鋨", + "銼", + "鐧", + "銻", + "鋃", + "鋦", + "錒", + "犢", + "鵠", + "篳", + "牘", + "儻", + "儐", + "儺", + "嬃", + "頜", + "鵒", + "魷", + "魨", + "魴", + "潁", + "颶", + "觴", + "熲", + "餷", + "餿", + "褻", + "臠", + "癆", + "癇", + "賡", + "頦", + "鷳", + "闌", + "闃", + "闋", + "鵜", + "憒", + "嚳", + "謨", + "褳", + "襇", + "讜", + "謖", + "謚", + "謐", + "騭", + "巰", + "翬", + "騖", + "緙", + "緗", + "緘", + "緹", + "緲", + "緦", + "緱", + "縋", + "緡", + "饗", + "耮", + "驁", + "韞", + "攄", + "擯", + "轂", + "驀", + "鶓", + "薊", + "蘺", + "鎣", + "頤", + "櫚", + "櫸", + "磧", + "磣", + "鵪", + "輳", + "齟", + "齙", + "韙", + "囁", + "躂", + "蹕", + "躚", + "躋", + "噯", + "鍺", + "錛", + "錡", + "鍀", + "錁", + "錕", + "錮", + "鍁", + "錈", + "錠", + "錙", + "覦", + "頷", + "鮁", + "鮃", + "鮎", + "鱸", + "穌", + "鮒", + "鮐", + "鵮", + "颼", + "饈", + "鶉", + "瘮", + "闔", + "闐", + "闕", + "灧", + "瀅", + "潷", + "灤", + "澦", + "懾", + "鱟", + "騫", + "竇", + "謾", + "謫", + "嬡", + "嬪", + "縉", + "縝", + "縟", + "轡", + "騮", + "縞", + "縭", + "縊", + "縑", + "騸", + "覯", + "韜", + "靉", + "攖", + "薔", + "藺", + "鶘", + "檳", + "櫧", + "釅", + "殯", + "霽", + "轅", + "齜", + "齦", + "瞜", + "曖", + "躊", + "蟈", + "鶚", + "嚶", + "羆", + "賻", + "罌", + "鶻", + "鍥", + "鍇", + "鍶", + "鍔", + "鍤", + "鏘", + "鎂", + "鏤", + "簀", + "篋", + "簞", + "籙", + "臏", + "鮭", + "鮪", + "鱭", + "鮫", + "鱘", + "饉", + "鑾", + "瘻", + "闞", + "鮝", + "糝", + "鷀", + "瀲", + "濰", + "譖", + "褸", + "譙", + "讕", + "譎", + "鶥", + "嬙", + "鶩", + "驃", + "縹", + "縵", + "縲", + "纓", + "驄", + "繆", + "繅", + "耬", + "瓔", + "擷", + "擼", + "攛", + "聵", + "覲", + "韃", + "鞽", + "蘄", + "賾", + "檣", + "靨", + "魘", + "饜", + "轆", + "齬", + "齪", + "覷", + "顒", + "躓", + "躑", + "蠑", + "螻", + "顎", + "嚕", + "顓", + "鑷", + "鎘", + "鎸", + "鎳", + "鎦", + "鎰", + "鎵", + "鑌", + "簣", + "鷂", + "鯁", + "鱺", + "鰱", + "鰹", + "鰣", + "鯀", + "鯇", + "觶", + "饊", + "饌", + "齏", + "讞", + "襤", + "譫", + "屨", + "纈", + "繕", + "繒", + "驏", + "擻", + "顳", + "顢", + "藪", + "櫓", + "櫞", + "贋", + "飆", + "鏨", + "轔", + "蟎", + "鐯", + "鏢", + "鏜", + "鏝", + "鏰", + "鏞", + "鏑", + "鏃", + "鏐", + "氌", + "穡", + "魎", + "鯪", + "鯡", + "鯤", + "鯧", + "鯝", + "鯢", + "鯛", + "鯔", + "獺", + "鷓", + "贇", + "癭", + "斕", + "瀨", + "顙", + "繾", + "繰", + "繯", + "蘚", + "鷯", + "齲", + "齷", + "躡", + "蹣", + "羈", + "鐔", + "鐝", + "鐐", + "鐓", + "鑭", + "鑹", + "鏹", + "鐙", + "籪", + "鷦", + "鱝", + "鰈", + "鯷", + "鰓", + "鰍", + "鰉", + "鯿", + "鷲", + "懣", + "鷸", + "鰲", + "韉", + "顥", + "鷺", + "䴉", + "髏", + "鑊", + "鐳", + "鐲", + "讎", + "鰨", + "鰥", + "鰩", + "癩", + "攢", + "靄", + "躥", + "髖", + "髕", + "鑔", + "籟", + "鰳", + "鰾", + "鱈", + "鰻", + "鱅", + "讖", + "驥", + "纘", + "瓚", + "鼉", + "黷", + "黲", + "鑣", + "鑞", + "臢", + "鱖", + "鱔", + "鱒", + "驤", + "顰", + "鱧", + "癲", + "灝", + "鸛", + "鑱", + "趲", + "顴", + "躦", + "饢", + "戇", + "戔", + "訏", + "訒", + "釓", + "俔", + "閆", + "澫", + "訢", + "訩", + "詝", + "紃", + "纊", + "瑒", + "剗", + "塸", + "壢", + "埨", + "撝", + "蔿", + "榪", + "軑", + "軏", + "咼", + "㠣", + "覎", + "㑳", + "颺", + "閌", + "潕", + "湋", + "澐", + "浿", + "諓", + "禡", + "詗", + "詘", + "詖", + "屓", + "彄", + "紘", + "馹", + "馼", + "紵", + "紞", + "駃", + "紖", + "瑲", + "薴", + "棡", + "軝", + "暐", + "晛", + "崬", + "釴", + "釤", + "鍆", + "鍚", + "鄶", + "獮", + "飿", + "嶨", + "詷", + "詪", + "鄩", + "鳲", + "隑", + "隮", + "娙", + "逕", + "駓", + "駔", + "駉", + "絅", + "騶", + "䮄", + "紼", + "紿", + "瓅", + "韍", + "墶", + "塏", + "薘", + "蕘", + "蔄", + "葒", + "鳾", + "龑", + "軹", + "軤", + "轢", + "軺", + "睍", + "曨", + "噠", + "鈃", + "鈇", + "鉅", + "鋹", + "釿", + "錀", + "鈧", + "鈥", + "鈄", + "倈", + "艤", + "鶬", + "颭", + "餏", + "湞", + "溮", + "滻", + "褘", + "絰", + "駰", + "絪", + "駪", + "綎", + "綖", + "驫", + "勣", + "璕", + "𡑍", + "䓣", + "薟", + "藭", + "椏", + "梜", + "頍", + "硜", + "輄", + "輈", + "輇", + "貲", + "嗊", + "曄", + "暉", + "鄳", + "幬", + "輋", + "嶮", + "贐", + "鉥", + "鉕", + "鑪", + "鉮", + "鉊", + "鉧", + "僤", + "鴒", + "魛", + "餗", + "燖", + "溳", + "礐", + "窵", + "襏", + "駼", + "絺", + "綌", + "騂", + "綄", + "璡", + "墠", + "壼", + "聹", + "蘀", + "勩", + "罃", + "檮", + "棶", + "厴", + "䃮", + "磑", + "礄", + "鴷", + "齕", + "頔", + "廼", + "凢", + "亾", + "枒", + "屍", + "匃", + "匄", + "紥", + "紮", + "疋", + "殀", + "讐", + "觔", + "兇", + "宂", + "㕥", + "㠯", + "栞", + "佈", + "佔", + "呌", + "敂", + "冄", + "坵", + "僊", + "怱", + "悤", + "冊", + "夘", + "戼", + "牠", + "妳", + "嬭", + "摃", + "釦", + "攷", + "託", + "衺", + "衕", + "弔", + "喫", + "囙", + "㠶", + "颿", + "秊", + "倣", + "髣", + "佀", + "朶", + "氷", + "決", + "併", + "並", + "竝", + "汙", + "汚", + "異", + "姦", + "廵", + "挵", + "衖", + "搤", + "阯", + "撦", + "埳", + "阬", + "誌", + "㕁", + "卻", + "刦", + "刧", + "刼", + "芲", + "蘤", + "桿", + "槓", + "荳", + "獃", + "唫", + "脗", + "皁", + "彿", + "髴", + "疘", + "刪", + "鉋", + "鑤", + "況", + "牀", + "恡", + "棄", + "洶", + "汎", + "災", + "烖", + "菑", + "禩", + "侷", + "跼", + "坿", + "玅", + "姉", + "妬", + "翫", + "搨", + "柺", + "拕", + "牴", + "觝", + "倖", + "抝", + "盃", + "桮", + "傑", + "逩", + "肎", + "菓", + "崐", + "崑", + "呪", + "虖", + "嘑", + "謼", + "詠", + "㟁", + "嵒", + "巗", + "巖", + "雰", + "稈", + "咊", + "嶽", + "妷", + "姪", + "廹", + "徃", + "餚", + "採", + "寀", + "唸", + "週", + "昬", + "兎", + "兔", + "亯", + "亱", + "䘚", + "淨", + "劵", + "匟", + "㳒", + "灋", + "洩", + "霑", + "淚", + "註", + "恠", + "箒", + "屆", + "絃", + "圅", + "旾", + "珎", + "掛", + "垜", + "艸", + "茘", + "査", + "栢", + "柵", + "栁", + "桺", + "柹", + "韮", + "揹", + "昰", + "閧", + "鬨", + "冐", + "暎", + "嚥", + "倃", + "𠴰", + "偺", + "喒", + "齩", + "欬", + "榘", + "㑺", + "儁", + "敍", + "敘", + "肧", + "脈", + "䘑", + "衇", + "跡", + "蹟", + "砲", + "礮", + "薙", + "鬀", + "恆", + "怳", + "卹", + "䘏", + "賉", + "婣", + "畊", + "揑", + "綑", + "輓", + "恥", + "躭", + "晉", + "棲", + "覈", + "慄", + "翄", + "脣", + "槕", + "㨪", + "螡", + "蟁", + "㤙", + "陗", + "峩", + "峯", + "乗", + "椉", + "咲", + "筍", + "俛", + "頫", + "勌", + "䠶", + "躳", + "慇", + "拏", + "㧱", + "挐", + "脃", + "胷", + "肐", + "貍", + "㽞", + "畱", + "淒", + "悽", + "蓆", + "効", + "傚", + "涼", + "缾", + "菸", + "煙", + "淛", + "湧", + "誖", + "猂", + "醼", + "讌", + "㝠", + "寃", + "孃", + "桒", + "毬", + "瑠", + "璢", + "瑯", + "㨗", + "搥", + "搯", + "蔆", + "惏", + "楳", + "槑", + "捄", + "廂", + "慽", + "慼", + "瞇", + "埜", + "畧", + "虵", + "稭", + "棃", + "犂", + "迻", + "媮", + "兠", + "舩", + "慾", + "綵", + "腳", + "𩓐", + "夠", + "豬", + "貓", + "湊", + "減", + "庻", + "蔴", + "菴", + "朢", + "睠", + "觕", + "麤", + "釬", + "銲", + "痳", + "殽", + "婬", + "滛", + "湻", + "㴱", + "樑", + "顇", + "㝛", + "窰", + "窯", + "琹", + "欵", + "墖", + "趂", + "隄", + "愽", + "揷", + "揫", + "煑", + "朞", + "㪚", + "塟", + "蔥", + "蔕", + "稜", + "棊", + "碁", + "椶", + "偪", + "㕑", + "廚", + "廈", + "鴈", + "冣", + "㝡", + "晳", + "鼃", + "餧", + "餵", + "嗁", + "諠", + "㡌", + "賸", + "筴", + "筞", + "筩", + "栰", + "暠", + "皜", + "踰", + "蝟", + "㪟", + "燄", + "遊", + "媿", + "嘅", + "庽", + "窓", + "牎", + "牕", + "窻", + "徧", + "僱", + "帬", + "裠", + "強", + "彊", + "疎", + "壻", + "瓌", + "䰟", + "皷", + "擕", + "㩗", + "㩦", + "攜", + "懃", + "鞾", + "幙", + "㮣", + "酧", + "詶", + "醻", + "掽", + "踫", + "㼝", + "盌", + "磟", + "覩", + "倸", + "㬉", + "煗", + "煖", + "晻", + "闇", + "炤", + "跥", + "䗬", + "蠭", + "寘", + "辠", + "稺", + "穉", + "燬", + "譭", + "瘉", + "癒", + "顋", + "骽", + "猨", + "蝯", + "稟", + "痺", + "癡", + "亷", + "㢘", + "韻", + "泝", + "遡", + "昚", + "躶", + "臝", + "羣", + "㬪", + "曡", + "疊", + "勦", + "琍", + "瓈", + "𤋮", + "熈", + "牓", + "搾", + "謌", + "堿", + "鹻", + "鹼", + "矁", + "燻", + "髈", + "𤺥", + "辢", + "旂", + "𡚁", + "潄", + "砦", + "詧", + "嫰", + "櫈", + "撐", + "墪", + "譔", + "鞵", + "鞌", + "蕋", + "橤", + "蘂", + "醕", + "譆", + "跴", + "蹤", + "蜨", + "蠍", + "稾", + "殭", + "惪", + "厀", + "襃", + "癅", + "䊀", + "餬", + "潛", + "癄", + "顦", + "鷰", + "藷", + "櫥", + "螎", + "蹏", + "蟇", + "譟", + "簒", + "彫", + "琱", + "鵰", + "餹", + "餻", + "簷", + "粦", + "燐", + "緐", + "幑", + "蹧", + "粇", + "穅", + "臋", + "籐", + "繙", + "飜", + "孼", + "蠏", + "燿", + "蝡", + "稬", + "穤", + "惷", + "覇", + "鑵", + "戹", + "阨", + "剳", + "帀", + "巵", + "亙", + "佇", + "竚", + "穽", + "岅", + "虯", + "𦍑", + "羗", + "啎", + "姙", + "㘭", + "袟", + "袠", + "逈", + "㒺", + "犛", + "氂", + "偘", + "甕", + "罋", + "冺", + "姍", + "蝨", + "琺", + "瑇", + "尅", + "梔", + "斮", + "斲", + "斵", + "暱", + "毘", + "蝱", + "吚", + "哶", + "峝", + "粃", + "竢", + "狥", + "秈", + "烱", + "㳄", + "袵", + "盇", + "涖", + "蒞", + "碪", + "蠔", + "唕", + "倐", + "儵", + "雋", + "皐", + "臯", + "衂", + "䶊", + "臙", + "獧", + "痾", + "皰", + "湼", + "澣", + "濬", + "塚", + "襢", + "娿", + "勅", + "勑", + "戞", + "廐", + "廄", + "眥", + "覜", + "勗", + "啗", + "噉", + "傯", + "挱", + "㥫", + "惥", + "慂", + "陻", + "蕚", + "萲", + "蕿", + "蘐", + "藼", + "櫂", + "箠", + "槨", + "啑", + "蹠", + "蚘", + "痐", + "蛕", + "蜖", + "瘖", + "遯", + "醃", + "飱", + "冪", + "簑", + "枏", + "柟", + "檝", + "楥", + "矴", + "椗", + "嘷", + "獋", + "粺", + "䈰", + "諐", + "齶", + "堘", + "疿", + "雝", + "秔", + "稉", + "槀", + "搉", + "廝", + "叡", + "嘠", + "蜋", + "筯", + "篛", + "麞", + "糉", + "緥", + "璿", + "髥", + "臕", + "餈", + "剹", + "橜", + "罇", + "蜺", + "矙", + "憇", + "翺", + "饍", + "瞖", + "羴", + "羶", + "爕", + "繦", + "騌", + "鬉", + "騣", + "蔾", + "䠀", + "簮", + "躕", + "蹵", + "䝔", + "貛", + "鼴", + "麐", + "塡", + "あ", + "い", + "う", + "え", + "お", + "か", + "き", + "く", + "け", + "こ", + "さ", + "し", + "す", + "せ", + "そ", + "た", + "ち", + "つ", + "て", + "と", + "な", + "に", + "ぬ", + "ね", + "の", + "は", + "ひ", + "ふ", + "へ", + "ほ", + "ま", + "み", + "む", + "め", + "も", + "や", + "ゆ", + "よ", + "ら", + "り", + "る", + "れ", + "ろ", + "わ", + "を", + "ん", + "が", + "ぎ", + "ぐ", + "げ", + "ご", + "ざ", + "じ", + "ず", + "ぜ", + "ぞ", + "だ", + "ぢ", + "づ", + "で", + "ど", + "ば", + "び", + "ぶ", + "べ", + "ぼ", + "ぱ", + "ぴ", + "ぷ", + "ぺ", + "ぽ", + "ぁ", + "ぃ", + "ぅ", + "ぇ", + "ぉ", + "っ", + "ゃ", + "ゅ", + "ょ", + "ゎ", + "ゕ", + "ゖ", + "ア", + "イ", + "ウ", + "エ", + "オ", + "カ", + "キ", + "ク", + "ケ", + "コ", + "サ", + "シ", + "ス", + "セ", + "ソ", + "タ", + "チ", + "ツ", + "テ", + "ト", + "ナ", + "ニ", + "ヌ", + "ネ", + "ノ", + "ハ", + "ヒ", + "フ", + "ヘ", + "ホ", + "マ", + "ミ", + "ム", + "メ", + "モ", + "ヤ", + "ユ", + "ヨ", + "ラ", + "リ", + "ル", + "レ", + "ロ", + "ワ", + "ヲ", + "ン", + "ガ", + "ギ", + "グ", + "ゲ", + "ゴ", + "ザ", + "ジ", + "ズ", + "ゼ", + "ゾ", + "ダ", + "ヂ", + "ヅ", + "デ", + "ド", + "バ", + "ビ", + "ブ", + "ベ", + "ボ", + "パ", + "ピ", + "プ", + "ペ", + "ポ", + "ァ", + "ィ", + "ゥ", + "ェ", + "ォ", + "ッ", + "ャ", + "ュ", + "ョ", + "ヮ", + "ヵ", + "ヶ", + "ヷ", + "ヸ", + "ヹ", + "ヺ", + "・", + "ー", + "ヽ", + "ヾ", + "ヿ", + "ア", + "イ", + "ウ", + "エ", + "オ", + "カ", + "キ", + "ク", + "ケ", + "コ", + "サ", + "シ", + "ス", + "セ", + "ソ", + "タ", + "チ", + "ツ", + "テ", + "ト", + "ナ", + "ニ", + "ヌ", + "ネ", + "ノ", + "ハ", + "ヒ", + "フ", + "ヘ", + "ホ", + "マ", + "ミ", + "ム", + "メ", + "モ", + "ヤ", + "ユ", + "ヨ", + "ラ", + "リ", + "ル", + "レ", + "ロ", + "ワ", + "ヲ", + "ン", + "゙", + "゚", + "ァ", + "ィ", + "ゥ", + "ェ", + "ォ", + "ッ", + "ャ", + "ュ", + "ョ", + "円", + "気", + "糸", + "絵", + "楽", + "帰", + "戸", + "広", + "黒", + "図", + "線", + "読", + "売", + "歩", + "毎", + "亜", + "悪", + "圧", + "扱", + "囲", + "為", + "壱", + "隠", + "栄", + "営", + "駅", + "塩", + "縁", + "艶", + "応", + "桜", + "穏", + "仮", + "価", + "箇", + "ゑ", + "ゝ", + "ゞ", + "ヰ", + "ヴ", + "㈱", + "両", + "丼", + "丿", + "亀", + "仏", + "伝", + "侶", + "俤", + "値", + "倶", + "倹", + "偐", + "偽", + "働", + "儛", + "兌", + "児", + "冑", + "冨", + "凞", + "処", + "凪", + "別", + "剣", + "剤", + "剰", + "劔", + "労", + "勧", + "勲", + "匁", + "匂", + "匲", + "卍", + "単", + "厳", + "収", + "呂", + "呉", + "呑", + "呰", + "唖", + "喚", + "喩", + "喰", + "噛", + "噺", + "嚢", + "囃", + "団", + "圀", + "圏", + "堀", + "堺", + "塀", + "塁", + "塙", + "増", + "墺", + "壊", + "壌", + "壷", + "変", + "奨", + "姫", + "娯", + "嫐", + "嬢", + "嬾", + "孁", + "宍", + "実", + "宮", + "寔", + "寛", + "対", + "専", + "尭", + "峠", + "崋", + "嶋", + "巀", + "巌", + "巣", + "巻", + "帯", + "幇", + "庁", + "廃", + "廻", + "弉", + "弌", + "弐", + "弖", + "弾", + "従", + "徳", + "徴", + "忯", + "恵", + "悩", + "惣", + "懐", + "懽", + "戦", + "戯", + "戻", + "払", + "抜", + "択", + "拝", + "拠", + "拡", + "拵", + "挙", + "挿", + "捗", + "捜", + "掟", + "掲", + "掻", + "揃", + "換", + "揺", + "摂", + "撃", + "撹", + "斉", + "斎", + "旛", + "旡", + "晧", + "晩", + "暁", + "暦", + "曽", + "杁", + "杢", + "杣", + "杮", + "枓", + "枠", + "枡", + "柾", + "栂", + "栃", + "桝", + "桟", + "桾", + "梛", + "梱", + "梲", + "梶", + "椙", + "検", + "椥", + "楕", + "楡", + "楢", + "榊", + "榎", + "槇", + "様", + "槙", + "槻", + "樋", + "権", + "樫", + "橿", + "檥", + "欅", + "歎", + "歓", + "歯", + "歳", + "歴", + "毀", + "沖", + "沢", + "浄", + "涙", + "済", + "渉", + "渋", + "渓", + "渕", + "満", + "滝", + "漑", + "潅", + "澁", + "瀞", + "瀬", + "焔", + "焼", + "煇", + "煕", + "煥", + "燗", + "爼", + "犠", + "狛", + "猟", + "獏", + "獣", + "珊", + "瑤", + "甞", + "畑", + "畠", + "畳", + "畷", + "畺", + "痩", + "癪", + "発", + "県", + "眞", + "砕", + "碕", + "礒", + "禖", + "禿", + "稲", + "穂", + "穣", + "竃", + "竜", + "竴", + "笹", + "筈", + "筬", + "筰", + "箆", + "箏", + "箙", + "篠", + "篭", + "簺", + "籾", + "粂", + "粋", + "粛", + "粧", + "糺", + "紬", + "絁", + "経", + "絖", + "絣", + "絽", + "継", + "続", + "綟", + "総", + "縄", + "縅", + "縒", + "縦", + "繊", + "繋", + "繍", + "繝", + "繧", + "纐", + "纒", + "罠", + "罧", + "罵", + "羂", + "羇", + "羨", + "聟", + "聡", + "聨", + "聴", + "脇", + "脳", + "膣", + "膵", + "臈", + "臓", + "臥", + "舎", + "舖", + "舗", + "舘", + "芿", + "苅", + "茲", + "荊", + "荘", + "莬", + "莵", + "菫", + "萠", + "蔵", + "薗", + "薫", + "薬", + "薭", + "蘊", + "蛍", + "蝋", + "蝿", + "蟷", + "衞", + "衵", + "袙", + "袞", + "袰", + "袴", + "袿", + "裃", + "裡", + "裲", + "褄", + "褌", + "襴", + "襷", + "覗", + "覚", + "覧", + "観", + "訳", + "証", + "諌", + "諚", + "諟", + "諡", + "諮", + "譛", + "譲", + "讃", + "豅", + "豊", + "豎", + "賎", + "賛", + "贔", + "躙", + "躰", + "転", + "軽", + "輌", + "辥", + "辺", + "辻", + "込", + "逓", + "遅", + "遙", + "邉", + "郷", + "酔", + "醗", + "醤", + "醸", + "釈", + "鉄", + "鉇", + "鉤", + "鉱", + "鉾", + "銈", + "銕", + "銭", + "鋲", + "鋳", + "鋺", + "錆", + "錍", + "錣", + "錬", + "錵", + "鍑", + "鍮", + "鍼", + "鎌", + "鎗", + "鎚", + "鎹", + "鐇", + "鐚", + "鐡", + "鑁", + "鑑", + "鑚", + "鑢", + "閇", + "関", + "閦", + "闘", + "陥", + "険", + "隣", + "隷", + "雑", + "雫", + "霊", + "靜", + "靫", + "靭", + "靱", + "鞄", + "鞆", + "頚", + "頬", + "頴", + "頼", + "顕", + "顗", + "餝", + "饂", + "駄", + "駆", + "駈", + "騒", + "験", + "騨", + "髄", + "髙", + "髪", + "髷", + "鯖", + "鯰", + "鯱", + "鰒", + "鰯", + "鰰", + "鳰", + "鴎", + "鴫", + "鵄", + "鵞", + "鵺", + "鶏", + "鹸", + "麁", + "麺", + "麿", + "黌", + "黙", + "鼈", + "齢", + "龗", + "縯", + "蟅", + "坖", + "祂", + "鼂", + "鱚", + "蛻", + "屌", + "呾", + "煔", + "吶", + "扥", + "蚖", + "銂", + "尃", + "夋", + "鵼", + "徬", + "寳", + "彡", + "舨", + "湳", + "麼", + "鍈", + "崈", + "鱣", + "盺", + "拺", + "瑥", + "茷", + "焻", + "奀", + "驎", + "鱰", + "砢", + "痟", + "廱", + "僜", + "瘺", + "鱊", + "擥", + "嶰", + "淓", + "跅", + "浵", + "媗", + "璦", + "煠", + "檊", + "媃", + "峅", + "躄", + "鉟", + "塽", + "蟴", + "鯮", + "弍", + "烒", + "鵵", + "妑", + "孋", + "蚡", + "恊", + "輭", + "廞", + "產", + "曅", + "盜", + "騤", + "囪", + "鱀", + "茇", + "葊", + "逹", + "狓", + "崢", + "趖", + "凃", + "羙", + "鮸", + "昞", + "楿", + "渽", + "圗", + "麪", + "屇", + "鍉", + "葝", + "沯", + "爭", + "幵", + "筭", + "寊", + "銋", + "貮", + "鎭", + "熺", + "昜", + "鍱", + "墬", + "愒", + "磺", + "嚈", + "稘", + "珮", + "釆", + "殑", + "鍩", + "䲁", + "蕷", + "鐿", + "僡", + "佹", + "輶", + "冴", + "襶", + "賔", + "猙", + "辧", + "絛", + "磾", + "韁", + "螔", + "譳", + "礑", + "鋱", + "魩", + "嚗", + "棆", + "牆", + "敟", + "柶", + "瓛", + "魣", + "巎", + "轘", + "襌", + "枼", + "鸌", + "逺", + "錏", + "縡", + "帢", + "騄", + "媼", + "埅", + "鄤", + "萐", + "祙", + "旼", + "詥", + "鶲", + "燉", + "卲", + "銱", + "庲", + "伱", + "氽", + "嵿", + "挻", + "煵", + "窋", + "鐤", + "鮊", + "鱬", + "鰧", + "嬤", + "譞", + "諲", + "脭", + "悳", + "崘", + "阭", + "內", + "袾", + "冚", + "壐", + "咗", + "礠", + "孮", + "痲", + "埈", + "肹", + "鰮", + "鮓", + "濊", + "塜", + "凜", + "蒢", + "噰", + "桼", + "峍", + "焴", + "鶒", + "鋮", + "綠", + "鶹", + "熿", + "毴", + "咟", + "嘥", + "睺", + "繡", + "郎", + "瘞", + "鉶", + "蔎", + "秠", + "緤", + "蝀", + "躝", + "蟜", + "繃", + "囮", + "墫", + "乭", + "胊", + "濙", + "瘓", + "榣", + "鑛", + "鐫", + "嶴", + "甹", + "坮", + "銾", + "蒭", + "睜", + "俋", + "餠", + "榢", + "蓳", + "盋", + "堷", + "鍏", + "苝", + "巛", + "蚵", + "暏", + "熤", + "嬨", + "墎", + "鏽", + "戶", + "菺", + "膮", + "熖", + "睪", + "栜", + "捱", + "榗", + "鍷", + "曧", + "犽", + "韑", + "袓", + "䖝", + "焄", + "喦", + "髲", + "疌", + "㴪", + "侊", + "貐", + "蕅", + "禠", + "蕑", + "囯", + "暊", + "儞", + "佋", + "柎", + "㐱", + "鰤", + "苳", + "鱥", + "謤", + "遶", + "眀", + "鑀", + "羋", + "顏", + "陜", + "銩", + "黶", + "苼", + "蒤", + "棛", + "儫", + "咁", + "抦", + "衚", + "棩", + "焿", + "脫", + "麅", + "玏", + "埧", + "淸", + "黁", + "淽", + "彠", + "鮨", + "沜", + "糀", + "厓", + "楧", + "嶌", + "簹", + "檵", + "鱇", + "嶬", + "廸", + "卽", + "樀", + "贌", + "酼", + "籛", + "沒", + "晸", + "諪", + "蕡", + "妏", + "鄋", + "蒍", + "奧", + "抇", + "蓨", + "薆", + "鱷", + "巘", + "䝉", + "亰", + "寈", + "槩", + "誒", + "麴", + "蕟", + "溎", + "蘗", + "榦", + "斿", + "暟", + "炲", + "拚", + "娖", + "繖", + "橚", + "寜", + "爀", + "饟", + "悅", + "鯏", + "彜", + "眾", + "葯", + "嬝", + "埮", + "獇", + "馛", + "溙", + "瀦", + "熼", + "硓", + "鈢", + "樆", + "輬", + "鰜", + "蔘", + "渙", + "澔", + "嗮", + "旉", + "籜", + "媊", + "燘", + "儚", + "頹", + "缽", + "俽", + "逨", + "鱓", + "郞", + "歊", + "杴", + "珡", + "杋", + "醁", + "鰏", + "鵾", + "鐽", + "鮋", + "巶", + "荅", + "薾", + "囓", + "蹻", + "獎", + "禑", + "鎓", + "榲", + "僴", + "綞", + "尓", + "敭", + "曔", + "褔", + "鬅", + "亊", + "鏦", + "蓘", + "裬", + "鱲", + "薡", + "鰗", + "箑", + "鬪", + "縂", + "璸", + "甙", + "茮", + "辵", + "岻", + "覿", + "滈", + "鯶", + "鑂", + "囶", + "舺", + "溋", + "拋", + "菾", + "敾", + "虨", + "綝", + "蝍", + "醂", + "禨", + "賹", + "廧", + "絕", + "槗", + "徫", + "鎔", + "曮", + "蠂", + "捒", + "堈", + "莕", + "蓪", + "敎", + "禃", + "櫱", + "綧", + "瀶", + "逌", + "浤", + "碻", + "刄", + "逤", + "剏", + "氹", + "菈", + "娫", + "蜛", + "嵗", + "糎", + "螶", + "譓", + "鏳", + "嵙", + "瑊", + "隲", + "檨", + "緈", + "畵", + "砯", + "簗", + "彅", + "鰺", + "騋", + "窶", + "嚒", + "嵻", + "尙", + "頵", + "槰", + "虉", + "醞", + "巂", + "彔", + "偊", + "畇", + "鱨", + "妸", + "塲", + "畐", + "鈫", + "錟", + "磪", + "摠", + "彥", + "璙", + "囝", + "寗", + "耎", + "鮡", + "蘓", + "弅", + "焃", + "飥", + "戙", + "塰", + "儱", + "槺", + "噏", + "魟", + "禵", + "佧", + "咘", + "盪", + "瑈", + "鉲", + "睭", + "鏌", + "鼇", + "郋", + "魮", + "朖", + "滽", + "渃", + "滙", + "熯", + "醿", + "鎅", + "褀", + "鬬", + "巄", + "螥", + "眜", + "釚", + "柉", + "壎", + "峇", + "姸", + "唭", + "鮜", + "鈖", + "嫈", + "壄", + "洤", + "黃", + "伕", + "堦", + "嶔", + "鮰", + "鞞", + "漎", + "鉓", + "鮗", + "壴", + "阝", + "妀", + "矽", + "獢", + "倗", + "銪", + "鴓", + "橒", + "凈", + "哖", + "屚", + "偍", + "瑺", + "媯", + "淍", + "驌", + "椇", + "赬", + "薐", + "糹", + "碽", + "濲", + "釭", + "晭", + "纕", + "寖", + "閞", + "歿", + "呎", + "鶆", + "屄", + "櫿", + "犎", + "旲", + "㙟", + "龎", + "翜", + "螾", + "說", + "衜", + "泆", + "軎", + "鵂", + "荎", + "嚧", + "硂", + "桖", + "褭", + "筊", + "鰷", + "秳", + "戩", + "轀", + "鬹", + "飬", + "卋", + "暸", + "狦", + "搢", + "娋", + "鏴", + "溫", + "毉", + "淰", + "謩", + "餺", + "鵙", + "鳽", + "鮀", + "狶", + "氻", + "轝", + "妺", + "袛", + "蓭", + "梂", + "娛", + "牼", + "稅", + "兿", + "玾", + "煚", + "僩", + "鶿", + "鬄", + "崠", + "鉆", + "鯓", + "蚢", + "庀", + "鵟", + "坣", + "殼", + "悞", + "熅", + "敻", + "鍠", + "曶", + "愼", + "搳", + "姃", + "砳", + "槼", + "臞", + "韾", + "靑", + "鸊", + "薲", + "虛", + "蠄", + "啟", + "鶺", + "苺", + "滾", + "褞", + "仺", + "胇", + "憻", + "郳", + "烉", + "驩", + "冇", + "枖", + "夌", + "搵", + "匸", + "盨", + "櫾", + "霤", + "麊", + "貒", + "噓", + "嗢", + "笩", + "晈", + "冂", + "銳", + "毿", + "慜", + "囧", + "閜", + "娸", + "庢", + "壆", + "馯", + "桱", + "兗", + "葃", + "侅", + "煐", + "鐦", + "藸", + "鷎", + "嵰", + "逎", + "弒", + "匋", + "鐭", + "廔", + "砩", + "孆", + "灴", + "伷", + "兪", + "鴗", + "澯", + "幚", + "旙", + "勻", + "礽", + "婑", + "鱮", + "娍", + "銶", + "吳", + "鍟", + "仼", + "鳧", + "彞", + "娽", + "昛", + "鰼", + "剎", + "佉", + "鉏", + "偸", + "鰆", + "讙", + "橪", + "啱", + "岀", + "孻", + "釪", + "乹", + "鈳", + "漇", + "檦", + "埻", + "祿", + "爌", + "禇", + "鱵", + "㸃", + "梉", + "燝", + "霙", + "炁", + "飮", + "蠙", + "勷", + "鵎", + "儥", + "鐠", + "唻", + "廰", + "嚿", + "嵕", + "墱", + "紑", + "搖", + "瘜", + "皝", + "鸑", + "瀁", + "粵", + "撚", + "巑", + "梀", + "啯", + "眛", + "諴", + "夊", + "僙", + "鍝", + "裖", + "鮣", + "凬", + "飡", + "灊", + "橓", + "嫳", + "筳", + "咑", + "粍", + "瓑", + "璌", + "伃", + "閰", + "傜", + "黐", + "謢", + "驒", + "橫", + "蛯", + "寕", + "蠵", + "瞓", + "旳", + "翏", + "硏", + "寯", + "韡", + "楤", + "鰃", + "朿", + "侞", + "鵯", + "愨", + "祹", + "厔", + "丌", + "盩", + "謏", + "魕", + "啣", + "閱", + "曺", + "枛", + "罉", + "卐", + "樻", + "鷉", + "鯒", + "鋡", + "磱", + "枱", + "攴", + "蠷", + "穈", + "嚟", + "檽", + "趐", + "奐", + "鋐", + "檇", + "薀", + "峼", + "咭", + "訔", + "韠", + "鑴", + "鸐", + "唃", + "捦", + "鸜", + "誴", + "罳", + "璄", + "暃", + "夀", + "賨", + "鞥", + "鈊", + "灡", + "鮍", + "懮", + "籣", + "昐", + "陁", + "襾", + "鮠", + "鈏", + "囍", + "婯", + "艔", + "貭", + "䰾", + "姁", + "禼", + "堖", + "鋶", + "仛", + "鏷", + "謜", + "鑅", + "忬", + "蘶", + "謠", + "觙", + "奫", + "狟", + "泩", + "桙", + "飈", + "垰", + "啍", + "嚞", + "鯕", + "蒧", + "榞", + "徸", + "璹", + "揔", + "欉", + "魞", + "菶", + "玧", + "鳯", + "廍", + "侚", + "岰", + "岧", + "鋕", + "凵", + "彣", + "崱", + "媜", + "倢", + "鵐", + "砋", + "鷚", + "鱠", + "鮻", + "繻", + "摵", + "贓", + "磵", + "錻", + "痠", + "粩", + "胅", + "奣", + "塨", + "瀠", + "鸘", + "啚", + "娳", + "霶", + "壔", + "峚", + "甂", + "廁", + "覌", + "鰂", + "猳", + "鱻", + "盫", + "裿", + "杬", + "歛", + "澋", + "蘞", + "嵜", + "尐", + "旽", + "鉌", + "鎛", + "豿", + "凖", + "榤", + "禓", + "龝", + "悧", + "鷟", + "鮟", + "吋", + "喢", + "岪", + "吥", + "漵", + "頠", + "豔", + "巿", + "鑨", + "醣", + "熳", + "懍", + "湥", + "檡", + "韺", + "戱", + "緖", + "鐈", + "凉", + "緃", + "鮹", + "媐", + "爯", + "巆", + "褍", + "鐬", + "昍", + "扙", + "鍳", + "芛", + "蟳", + "嬅", + "糬", + "吔", + "塭", + "譿", + "冧", + "鏓", + "嶪", + "嗹", + "椵", + "姀", + "閿", + "褧", + "錞", + "玆", + "笘", + "篔", + "萡", + "鶡", + "螐", + "鮄", + "鰟", + "脷", + "啲", + "杤", + "蓚", + "尗", + "娎", + "殟", + "淥", + "蝚", + "蓧", + "彐", + "嚤", + "銍", + "囒", + "坶", + "淩", + "鶼", + "鱂", + "喼", + "燫", + "肏", + "姵", + "廌", + "禟", + "籝", + "迵", + "嵨", + "堮", + "蟌", + "憍", + "廕", + "蜑", + "緁", + "唘", + "竩", + "崙", + "璚", + "粄", + "栨", + "罈", + "梫", + "貤", + "藔", + "蜯", + "訁", + "斖", + "煶", + "馦", + "妠", + "閟", + "疕", + "夆", + "鎪", + "膥", + "澻", + "嘢", + "嚐", + "靁", + "鎻", + "鰛", + "穵", + "烋", + "縕", + "褎", + "疒", + "壠", + "溼", + "圂", + "咅", + "鯭", + "鯙", + "磘", + "玨", + "珤", + "朊", + "蚼", + "濶", + "薞", + "嚩", + "丟", + "嫺", + "鯻", + "椲", + "鰕", + "刂", + "蠘", + "踎", + "瀴", + "琁", + "鰶", + "瑴", + "肜", + "㐂", + "欥", + "媺", + "竻", + "讚", + "𣇉", + "裵", + "緜", + "廩", + "齧", + "叄", + "俌", + "厰", + "滀", + "錄", + "鷫", + "鯗", + "攞", + "姌", + "蔝", + "幷", + "縤", + "屻", + "鯃", + "雞", + "纁", + "嫲", + "嵮", + "屭", + "嶃", + "跩", + "鋗", + "蕢", + "篊", + "俬", + "淎", + "暻", + "鏻", + "憓", + "玗", + "溈", + "笭", + "糢", + "勳", + "閒", + "沍", + "咾", + "鉷", + "蘵", + "俁", + "崵", + "毸", + "苪", + "掙", + "鴡", + "萭", + "俴", + "屜", + "蒾", + "艹", + "剷", + "慍", + "朮", + "枴", + "氳", + "猓", + "甽", + "箝", + "譁", + "贗", + "迆", + "鈽", + "鍊", + "鍰", + "鏍", + "靦", + "餽", + "丮", + "丱", + "仜", + "仩", + "伬", + "伔", + "仱", + "伀", + "伻", + "佢", + "佒", + "侀", + "侇", + "佷", + "佌", + "佪", + "侐", + "侜", + "俓", + "侲", + "俉", + "侻", + "侳", + "俇", + "倅", + "倇", + "倰", + "倛", + "倳", + "倷", + "俷", + "倠", + "偯", + "偞", + "偠", + "偋", + "偝", + "偛", + "偢", + "偅", + "偟", + "偩", + "偫", + "傛", + "傔", + "傞", + "傋", + "傌", + "傎", + "傝", + "偨", + "傂", + "傽", + "傿", + "僆", + "傮", + "僄", + "僈", + "傰", + "僁", + "傱", + "僋", + "僗", + "僛", + "僪", + "僝", + "僓", + "僿", + "儃", + "儰", + "僸", + "僶", + "僾", + "儌", + "僽", + "儜", + "儓", + "儗", + "儑", + "儢", + "儤", + "儠", + "儸", + "儹", + "儽", + "冓", + "冘", + "冞", + "凊", + "凅", + "凔", + "刌", + "刉", + "刓", + "刜", + "刞", + "刵", + "刲", + "剆", + "刱", + "剉", + "剚", + "剒", + "剫", + "剭", + "剬", + "剺", + "剸", + "剻", + "剼", + "劀", + "劋", + "劖", + "劘", + "劗", + "劙", + "劦", + "勴", + "匊", + "匢", + "匰", + "匴", + "匷", + "匽", + "卌", + "卼", + "厎", + "厒", + "厗", + "厞", + "厜", + "厤", + "厬", + "厹", + "吰", + "吷", + "吪", + "呿", + "咈", + "呫", + "呺", + "呥", + "呬", + "呴", + "茍", + "咷", + "咮", + "咶", + "哅", + "咠", + "咢", + "唦", + "唗", + "唒", + "哤", + "唚", + "唈", + "哫", + "唅", + "唴", + "啢", + "唶", + "啒", + "啅", + "唌", + "唲", + "喨", + "喥", + "喭", + "噅", + "喓", + "喣", + "啽", + "喌", + "嗃", + "嗛", + "嗋", + "嗀", + "喿", + "喍", + "嗏", + "嗕", + "嗈", + "嘕", + "嘒", + "嗼", + "嘐", + "嘓", + "嘂", + "嗺", + "嘝", + "嘄", + "嗿", + "噈", + "噊", + "噆", + "噚", + "嘳", + "嘽", + "嘾", + "噮", + "噳", + "噣", + "噭", + "噞", + "嚌", + "嚍", + "嚃", + "嚘", + "嚜", + "嚫", + "嚪", + "嚬", + "嚲", + "嚵", + "嚽", + "嚾", + "囆", + "囅", + "囋", + "囗", + "圁", + "圞", + "圠", + "坁", + "坅", + "坲", + "坱", + "垀", + "坴", + "垗", + "垝", + "垔", + "垘", + "垽", + "垼", + "埢", + "埶", + "堩", + "堣", + "塈", + "堥", + "塓", + "塉", + "塯", + "塕", + "塼", + "墆", + "塿", + "塴", + "墋", + "塺", + "墝", + "墯", + "壈", + "墽", + "壖", + "壝", + "壛", + "壾", + "壿", + "夃", + "夎", + "夒", + "夗", + "奅", + "奊", + "奰", + "奲", + "奼", + "妦", + "妎", + "妢", + "妐", + "妵", + "姏", + "姎", + "㚷", + "姡", + "姺", + "姼", + "娭", + "婐", + "婟", + "婥", + "婓", + "婗", + "媔", + "媟", + "媢", + "婸", + "媦", + "媥", + "媬", + "媕", + "娷", + "嫇", + "嫋", + "媰", + "媻", + "嫮", + "嫥", + "嫢", + "嫛", + "嫿", + "嫴", + "嫷", + "嫶", + "嬎", + "嬓", + "嬐", + "嬲", + "嬽", + "孈", + "屘", + "孲", + "孷", + "宎", + "宨", + "寪", + "寍", + "寋", + "寑", + "寙", + "寠", + "寱", + "尌", + "尒", + "尟", + "尰", + "尳", + "屖", + "屔", + "屝", + "屧", + "屩", + "屮", + "屴", + "岏", + "岋", + "岉", + "岒", + "岮", + "岤", + "岯", + "岟", + "岝", + "峐", + "峌", + "峞", + "峉", + "峊", + "峬", + "峮", + "峷", + "崝", + "崨", + "崥", + "崏", + "崰", + "崣", + "崷", + "嵃", + "嵑", + "崳", + "崺", + "嵂", + "嵱", + "嵣", + "嵥", + "嵞", + "嶀", + "嵽", + "嶆", + "嵺", + "嵷", + "嶊", + "嶉", + "嶈", + "嵾", + "嶕", + "嶜", + "嶡", + "嶚", + "嶞", + "嶱", + "嶩", + "嶵", + "嶭", + "巃", + "巏", + "巕", + "巟", + "巹", + "帊", + "帗", + "帟", + "帣", + "帠", + "帤", + "帩", + "帾", + "帴", + "幏", + "幎", + "幓", + "幩", + "幝", + "幠", + "幧", + "幨", + "幦", + "幭", + "幰", + "庂", + "庉", + "庌", + "庈", + "庰", + "庛", + "庣", + "庨", + "庮", + "庪", + "庬", + "庴", + "廅", + "廇", + "廘", + "廗", + "廎", + "廜", + "緳", + "廦", + "廥", + "廮", + "廯", + "蠯", + "廾", + "弚", + "弝", + "弣", + "弤", + "弮", + "弳", + "彃", + "彉", + "彋", + "彏", + "彯", + "彴", + "彸", + "彾", + "徦", + "徥", + "徯", + "徲", + "徾", + "徿", + "忀", + "忁", + "忔", + "忕", + "忨", + "忣", + "忷", + "忥", + "怭", + "怲", + "怋", + "怴", + "怗", + "怚", + "怞", + "怬", + "怢", + "怐", + "怮", + "怓", + "怷", + "怹", + "恲", + "恞", + "恅", + "恇", + "恉", + "恛", + "恌", + "恀", + "恟", + "悀", + "悁", + "悕", + "悗", + "悇", + "悊", + "悐", + "悾", + "悺", + "惓", + "惤", + "惈", + "悷", + "惉", + "悹", + "惌", + "惢", + "惄", + "愊", + "愖", + "愅", + "惵", + "愓", + "惸", + "惼", + "惾", + "慉", + "慅", + "愶", + "愲", + "愮", + "愯", + "愬", + "慁", + "慞", + "慱", + "慒", + "慓", + "慲", + "憀", + "慴", + "慔", + "慺", + "慛", + "憃", + "慹", + "憱", + "憰", + "憢", + "憉", + "憛", + "憯", + "憟", + "憪", + "憡", + "憝", + "憖", + "懅", + "憴", + "懆", + "懁", + "憿", + "憸", + "憵", + "憼", + "懧", + "懠", + "懥", + "懤", + "懘", + "懭", + "懱", + "懪", + "懰", + "懫", + "懻", + "戁", + "戃", + "戄", + "戉", + "戠", + "酨", + "戺", + "扐", + "扜", + "扤", + "扡", + "扢", + "抆", + "抌", + "抎", + "抏", + "扻", + "抭", + "抴", + "拑", + "抾", + "抪", + "抶", + "抮", + "挍", + "挋", + "挃", + "拫", + "拹", + "挏", + "挌", + "拸", + "挀", + "拲", + "捖", + "挬", + "挶", + "揤", + "捊", + "挼", + "挩", + "捁", + "挴", + "捘", + "捔", + "捥", + "掝", + "掗", + "掫", + "掯", + "捵", + "掜", + "捼", + "掤", + "掔", + "掱", + "揎", + "揥", + "揨", + "揯", + "揊", + "揲", + "揵", + "摡", + "揟", + "揝", + "揜", + "揘", + "揅", + "揱", + "搆", + "搟", + "搕", + "搘", + "搹", + "搷", + "搣", + "搰", + "搊", + "搚", + "摀", + "搧", + "搫", + "摍", + "摝", + "摲", + "摦", + "摎", + "摋", + "摓", + "摐", + "摿", + "摮", + "摰", + "撢", + "撠", + "撗", + "撜", + "撋", + "撊", + "撌", + "撟", + "擗", + "擖", + "擏", + "擉", + "撽", + "擩", + "擣", + "擫", + "擭", + "擨", + "擽", + "擸", + "攇", + "攐", + "攍", + "攌", + "攗", + "攕", + "攓", + "攡", + "攠", + "攦", + "攩", + "攭", + "攲", + "攳", + "敁", + "敊", + "敆", + "敓", + "敧", + "敪", + "敤", + "敜", + "敯", + "敳", + "敶", + "敺", + "敹", + "敿", + "斁", + "斀", + "斄", + "斒", + "斔", + "斞", + "斨", + "斪", + "斻", + "旍", + "旓", + "旚", + "旝", + "旟", + "昲", + "昦", + "昢", + "晇", + "晥", + "晜", + "晼", + "晬", + "暀", + "暆", + "暍", + "暋", + "暡", + "暰", + "暩", + "曀", + "曊", + "曋", + "曏", + "曒", + "曚", + "曣", + "曭", + "朁", + "朅", + "朄", + "朒", + "朘", + "朣", + "朾", + "朹", + "朻", + "朼", + "杅", + "杇", + "杝", + "杗", + "枎", + "杶", + "枆", + "枌", + "柲", + "枺", + "枻", + "柸", + "柀", + "柅", + "柫", + "柤", + "柍", + "柮", + "柣", + "柂", + "柧", + "栚", + "桋", + "桏", + "栱", + "栵", + "栫", + "栭", + "栯", + "栘", + "栔", + "梡", + "梇", + "梐", + "桭", + "梮", + "楖", + "梬", + "梩", + "桵", + "梒", + "椌", + "椄", + "棜", + "棷", + "棳", + "棌", + "椈", + "楰", + "棯", + "椔", + "棸", + "楟", + "楎", + "楱", + "楅", + "楺", + "楈", + "楛", + "楉", + "楬", + "椳", + "楀", + "楄", + "楶", + "楘", + "榶", + "槉", + "榠", + "榬", + "榼", + "榙", + "榩", + "榾", + "榯", + "槄", + "榽", + "榹", + "槥", + "槸", + "樕", + "樠", + "槬", + "槢", + "樛", + "樝", + "槾", + "樧", + "槮", + "樔", + "槷", + "橀", + "樴", + "橉", + "橧", + "樲", + "橨", + "橝", + "橭", + "橶", + "樿", + "橁", + "檍", + "檖", + "檁", + "檟", + "橾", + "檛", + "檓", + "檕", + "檃", + "櫅", + "檹", + "櫡", + "櫠", + "櫌", + "櫑", + "櫙", + "櫋", + "櫜", + "櫐", + "櫫", + "櫬", + "櫰", + "櫹", + "櫺", + "櫼", + "欃", + "欋", + "欈", + "欐", + "欑", + "欘", + "欨", + "欴", + "欯", + "欭", + "欱", + "欶", + "欳", + "欷", + "欿", + "歂", + "歈", + "歍", + "歋", + "歕", + "歔", + "歜", + "歠", + "歭", + "歾", + "肂", + "殈", + "殏", + "殔", + "殗", + "殙", + "殠", + "殥", + "殢", + "殦", + "殧", + "殰", + "殶", + "毃", + "毄", + "毈", + "毇", + "毊", + "毚", + "毞", + "毦", + "毤", + "毨", + "毣", + "毰", + "毲", + "毻", + "毼", + "毾", + "氁", + "氀", + "氄", + "氠", + "氶", + "汃", + "汒", + "汏", + "汍", + "汸", + "沋", + "汱", + "汯", + "沕", + "汦", + "汳", + "泬", + "沶", + "沬", + "泧", + "沷", + "泭", + "泲", + "泒", + "沴", + "洟", + "洊", + "洀", + "浺", + "浶", + "洍", + "涒", + "浘", + "浢", + "涊", + "涆", + "浧", + "涗", + "涳", + "涬", + "淢", + "涷", + "淔", + "渀", + "淈", + "涾", + "淊", + "涽", + "淭", + "湆", + "湇", + "湅", + "湢", + "渿", + "湁", + "渜", + "渳", + "湀", + "渻", + "渮", + "湨", + "湡", + "渱", + "渨", + "湠", + "湱", + "湩", + "渹", + "溛", + "滖", + "溓", + "溔", + "滒", + "溰", + "溾", + "滜", + "滵", + "滱", + "漃", + "漥", + "漮", + "潎", + "漙", + "漧", + "漘", + "漒", + "滭", + "漊", + "潳", + "滮", + "潀", + "漰", + "潃", + "漅", + "濆", + "澒", + "澅", + "潚", + "潠", + "澖", + "潶", + "潬", + "潒", + "潐", + "潗", + "澓", + "潝", + "濇", + "濎", + "濈", + "濄", + "澞", + "澨", + "瀄", + "濌", + "澩", + "濴", + "濔", + "濣", + "濭", + "濧", + "濦", + "瀇", + "瀎", + "濿", + "瀀", + "濻", + "瀙", + "瀖", + "瀫", + "瀡", + "瀢", + "瀩", + "瀯", + "瀷", + "灂", + "瀸", + "瀿", + "瀺", + "灄", + "灉", + "灖", + "灗", + "灛", + "灟", + "灨", + "灩", + "灪", + "炾", + "炰", + "烓", + "烑", + "缹", + "焍", + "烰", + "焠", + "焮", + "焣", + "煆", + "煣", + "煝", + "熐", + "熉", + "熀", + "熂", + "熚", + "燅", + "燂", + "熸", + "燀", + "燡", + "爁", + "爊", + "爂", + "爓", + "爞", + "爢", + "爣", + "牄", + "牉", + "牋", + "牏", + "牣", + "牬", + "牰", + "牸", + "牷", + "犈", + "犉", + "犆", + "犅", + "犌", + "犑", + "犐", + "犗", + "犕", + "犓", + "犘", + "犚", + "犝", + "犞", + "犥", + "犦", + "犤", + "犣", + "犩", + "犪", + "犮", + "犵", + "犿", + "狆", + "狖", + "狋", + "狘", + "狜", + "狔", + "狚", + "狌", + "狑", + "狊", + "狤", + "狫", + "狪", + "狣", + "猀", + "狾", + "猑", + "猘", + "猈", + "狿", + "猏", + "猋", + "猒", + "猧", + "猲", + "猭", + "猦", + "猣", + "猵", + "猼", + "獂", + "獀", + "獊", + "獑", + "獌", + "獘", + "獞", + "獟", + "獝", + "獛", + "獡", + "獩", + "獦", + "獥", + "獳", + "獶", + "獽", + "獿", + "玂", + "玁", + "玈", + "玊", + "玔", + "珓", + "珶", + "琖", + "瑵", + "璊", + "瑽", + "璅", + "瑿", + "璗", + "瓁", + "瓋", + "瓝", + "瓟", + "瓡", + "瓥", + "瓨", + "瓬", + "瓵", + "瓾", + "瓽", + "甀", + "甃", + "甈", + "甋", + "甐", + "甒", + "甔", + "甖", + "甝", + "甮", + "甿", + "畟", + "畣", + "畽", + "疀", + "疧", + "痁", + "疻", + "痀", + "痎", + "痏", + "痋", + "痌", + "痑", + "痚", + "痡", + "痝", + "痗", + "痯", + "瘏", + "痷", + "痸", + "痻", + "瘈", + "瘑", + "瘝", + "瘣", + "瘯", + "瘱", + "瘽", + "癈", + "癉", + "癙", + "癐", + "癓", + "癠", + "癵", + "癹", + "皊", + "皏", + "皫", + "皯", + "皵", + "皻", + "皽", + "皾", + "盄", + "盓", + "盝", + "盬", + "盭", + "盳", + "眃", + "眅", + "盻", + "眝", + "眐", + "眓", + "眒", + "眣", + "眑", + "眕", + "眹", + "眱", + "眲", + "眴", + "眳", + "眽", + "睆", + "睅", + "睊", + "睋", + "睌", + "睕", + "睟", + "睒", + "睖", + "睩", + "睧", + "睔", + "瞁", + "睼", + "瞂", + "睮", + "睯", + "瞏", + "瞉", + "瞚", + "瞝", + "瞡", + "瞛", + "瞲", + "瞷", + "瞶", + "瞴", + "矂", + "矉", + "矊", + "矌", + "矎", + "矏", + "矐", + "矔", + "矕", + "矘", + "矠", + "矱", + "矲", + "矹", + "矺", + "砅", + "砐", + "砏", + "砎", + "砨", + "硈", + "硉", + "硠", + "硥", + "硱", + "硰", + "硩", + "碔", + "碄", + "碅", + "碆", + "硾", + "碫", + "碞", + "磍", + "磌", + "磎", + "磈", + "磃", + "磝", + "磩", + "磥", + "磞", + "磛", + "磳", + "磼", + "磿", + "礔", + "礉", + "礝", + "礛", + "礜", + "礥", + "礣", + "礧", + "礨", + "礭", + "礿", + "祌", + "祅", + "祔", + "祒", + "祑", + "祤", + "祩", + "祪", + "祣", + "祫", + "祡", + "祴", + "祳", + "禂", + "禗", + "禜", + "禫", + "禭", + "禬", + "禴", + "禷", + "禸", + "歶", + "秅", + "秏", + "秖", + "秎", + "秮", + "秪", + "秺", + "秶", + "稊", + "稒", + "稫", + "穊", + "稰", + "稯", + "穋", + "穛", + "穖", + "穧", + "穨", + "穮", + "穬", + "穭", + "穱", + "穾", + "窆", + "窉", + "窌", + "窏", + "窔", + "窐", + "窙", + "窢", + "窞", + "窫", + "窲", + "窴", + "窱", + "窾", + "竀", + "竁", + "竷", + "笐", + "笓", + "笅", + "笵", + "笻", + "笴", + "笰", + "笢", + "笝", + "笲", + "筄", + "筡", + "箈", + "箊", + "箌", + "箛", + "箎", + "箘", + "箄", + "箷", + "箾", + "篎", + "箯", + "箹", + "篞", + "篣", + "篧", + "篕", + "篨", + "篹", + "簅", + "篲", + "篿", + "篻", + "簎", + "篴", + "簂", + "簁", + "篸", + "篽", + "簜", + "簩", + "簙", + "簭", + "簦", + "簨", + "簢", + "簥", + "簳", + "簼", + "簬", + "簻", + "籉", + "籈", + "籊", + "籔", + "籗", + "籧", + "籦", + "籯", + "籺", + "籸", + "籹", + "粊", + "粔", + "粻", + "糔", + "糪", + "糱", + "糷", + "紎", + "紟", + "紒", + "紽", + "紸", + "紶", + "紩", + "絇", + "紾", + "絘", + "絯", + "絓", + "絧", + "絏", + "絭", + "絫", + "綀", + "綍", + "絿", + "綅", + "絻", + "絼", + "綔", + "綷", + "緂", + "綪", + "緀", + "緅", + "緎", + "緆", + "緌", + "綯", + "綼", + "緷", + "緛", + "緪", + "緧", + "縃", + "緺", + "緶", + "緰", + "縗", + "縌", + "縓", + "縎", + "縜", + "縚", + "縏", + "縼", + "繂", + "縳", + "顈", + "繈", + "縸", + "縪", + "繉", + "繀", + "縩", + "緵", + "縰", + "縿", + "縶", + "繜", + "繐", + "繣", + "繘", + "繢", + "繟", + "繑", + "繠", + "繶", + "繵", + "繸", + "繷", + "繺", + "繲", + "繴", + "纀", + "纇", + "纋", + "纆", + "纑", + "纗", + "纚", + "缿", + "罊", + "罏", + "罜", + "罞", + "罝", + "罛", + "罣", + "罥", + "罦", + "罭", + "罫", + "罬", + "罻", + "罼", + "罺", + "罿", + "羃", + "羉", + "羍", + "羒", + "羜", + "羛", + "羢", + "羠", + "羦", + "羬", + "羭", + "羵", + "羳", + "羷", + "羺", + "羾", + "翋", + "翍", + "翐", + "翑", + "翇", + "翢", + "翣", + "翭", + "翪", + "翨", + "翴", + "翲", + "翽", + "翿", + "耟", + "耞", + "耡", + "耴", + "耾", + "耹", + "聇", + "聈", + "聑", + "聏", + "聝", + "肕", + "肙", + "肒", + "肣", + "肵", + "胘", + "胑", + "胐", + "胕", + "胉", + "胏", + "胹", + "胵", + "脁", + "胻", + "脀", + "胾", + "胔", + "脰", + "脥", + "脤", + "脙", + "脡", + "脕", + "脧", + "腃", + "腏", + "腄", + "腇", + "脽", + "腍", + "腤", + "腷", + "腜", + "腛", + "腢", + "腲", + "朡", + "腞", + "腶", + "膉", + "膆", + "膃", + "膇", + "膍", + "膌", + "膋", + "膟", + "膕", + "膢", + "膱", + "膹", + "膫", + "膰", + "膬", + "膴", + "膲", + "臇", + "膷", + "臄", + "臅", + "臒", + "臐", + "臗", + "臛", + "臡", + "臦", + "臩", + "臮", + "臲", + "臷", + "臸", + "臿", + "舋", + "舑", + "舕", + "舝", + "舡", + "舼", + "舽", + "艀", + "艂", + "艓", + "艒", + "艐", + "艑", + "艕", + "艛", + "艵", + "艼", + "芀", + "芐", + "芅", + "芓", + "芔", + "苀", + "芚", + "芵", + "芧", + "芞", + "芺", + "苙", + "苨", + "苖", + "苬", + "苲", + "苵", + "苶", + "茙", + "茥", + "茿", + "茦", + "茢", + "荂", + "茪", + "荍", + "茖", + "茤", + "茠", + "茩", + "茻", + "莐", + "莣", + "莍", + "荺", + "莤", + "荴", + "莏", + "莁", + "荵", + "莔", + "莃", + "莌", + "莋", + "荾", + "莥", + "菨", + "萒", + "菧", + "菤", + "菆", + "菣", + "菿", + "菋", + "菎", + "菵", + "萉", + "菞", + "菳", + "菕", + "蓱", + "萿", + "葹", + "葥", + "葀", + "葧", + "萰", + "葍", + "葽", + "蔇", + "葞", + "萷", + "萺", + "萴", + "葅", + "菙", + "葋", + "萯", + "葂", + "葟", + "葌", + "蓎", + "蒬", + "蒮", + "蒫", + "蒪", + "蒚", + "蒝", + "蓌", + "蒛", + "蒩", + "蒘", + "蒶", + "蒠", + "蔤", + "蔏", + "蔩", + "蔉", + "蔍", + "蔧", + "蔜", + "蓻", + "蓺", + "蓴", + "蔪", + "蓲", + "蓷", + "蓫", + "蔒", + "蓩", + "蔖", + "蓾", + "蔨", + "蔮", + "蔂", + "蓶", + "蔱", + "蓹", + "蔠", + "蔰", + "蕫", + "蕍", + "蕀", + "蕆", + "蕄", + "蕇", + "蕣", + "蕛", + "蕱", + "蕵", + "蕮", + "蕧", + "蕠", + "蕦", + "蕝", + "薃", + "薧", + "薕", + "薠", + "薋", + "薣", + "薚", + "蕼", + "薉", + "蕸", + "薎", + "薖", + "薍", + "薝", + "薂", + "藆", + "藀", + "藃", + "藂", + "薵", + "薽", + "藇", + "藄", + "藋", + "藈", + "藅", + "薱", + "薶", + "藒", + "藫", + "藱", + "藙", + "藡", + "藚", + "藗", + "藲", + "藬", + "藘", + "藣", + "藑", + "藰", + "蘁", + "藾", + "蘛", + "蘉", + "蘌", + "蘪", + "蘦", + "蘟", + "蘣", + "蘜", + "蘙", + "蘮", + "蘡", + "蘠", + "蘥", + "蘴", + "蘳", + "蘬", + "虀", + "蘹", + "蘱", + "蘻", + "蘾", + "虃", + "虆", + "虇", + "虈", + "虌", + "虋", + "虙", + "虡", + "虣", + "虩", + "虪", + "虰", + "虭", + "虴", + "蚑", + "蚞", + "蚇", + "蚗", + "蚚", + "蚅", + "蚥", + "蚙", + "蚿", + "蚷", + "蛂", + "蛁", + "蛅", + "蛈", + "蚹", + "蚳", + "蚸", + "蛌", + "蚻", + "蛢", + "蛦", + "蛓", + "蛣", + "蛚", + "蛪", + "蛝", + "蛫", + "蛜", + "蛬", + "蛗", + "蜄", + "蛷", + "蜌", + "蛖", + "蛵", + "蜁", + "蛶", + "蜳", + "蝫", + "蜙", + "蝃", + "蜬", + "蝁", + "蝆", + "蜠", + "蜲", + "蜪", + "蜭", + "蜼", + "蜵", + "蝂", + "蜦", + "蜧", + "蜸", + "蜤", + "蜰", + "蝖", + "蝷", + "蟡", + "蝳", + "蝔", + "蝛", + "蝒", + "蝑", + "蝞", + "蝭", + "蝪", + "蝐", + "蝝", + "蝬", + "蝺", + "蝜", + "螛", + "螏", + "螓", + "螒", + "螁", + "螖", + "螘", + "蝹", + "螇", + "螑", + "螝", + "螜", + "螚", + "螪", + "螰", + "螹", + "螼", + "螮", + "蟉", + "蟃", + "蟂", + "螷", + "螴", + "螿", + "螸", + "蟞", + "蟧", + "蟦", + "蟢", + "蟟", + "蟤", + "蟔", + "蟓", + "蟭", + "蟘", + "螤", + "蟗", + "蟙", + "蠁", + "蟨", + "蠀", + "蟺", + "蠉", + "蠌", + "蟼", + "蠈", + "蟿", + "蠗", + "蠩", + "蠝", + "蠛", + "蠠", + "蠤", + "蠜", + "蠫", + "蠬", + "蠨", + "蠦", + "蠪", + "蠥", + "蠰", + "蠮", + "蠳", + "蠸", + "蠾", + "蠽", + "蠿", + "衁", + "衈", + "衋", + "衧", + "衪", + "衭", + "衶", + "袀", + "衱", + "衯", + "袃", + "袉", + "袕", + "袨", + "袚", + "袑", + "袡", + "袘", + "袧", + "袬", + "袌", + "袺", + "裗", + "袹", + "袸", + "裀", + "袶", + "袽", + "袲", + "裋", + "裍", + "裞", + "裚", + "裷", + "裧", + "裺", + "裮", + "裶", + "裯", + "裻", + "褁", + "褅", + "褋", + "褗", + "褆", + "褖", + "褑", + "褦", + "褮", + "褱", + "褢", + "褩", + "褵", + "褼", + "褾", + "襒", + "褷", + "襂", + "褽", + "襓", + "襋", + "襆", + "襐", + "襛", + "襗", + "襡", + "襘", + "襝", + "襣", + "襭", + "襩", + "襮", + "襳", + "襹", + "襺", + "覂", + "覅", + "覕", + "覛", + "覝", + "覢", + "覤", + "覣", + "覭", + "覮", + "覶", + "觓", + "觤", + "觡", + "觠", + "觢", + "觩", + "觰", + "觬", + "觲", + "觷", + "觺", + "觻", + "觼", + "觾", + "訑", + "訰", + "訧", + "訬", + "訞", + "詍", + "訹", + "詙", + "詀", + "詄", + "詅", + "訿", + "誂", + "詻", + "誃", + "誫", + "誙", + "誋", + "諆", + "誸", + "諔", + "諕", + "誻", + "諀", + "諅", + "諵", + "諝", + "諰", + "諈", + "謞", + "謘", + "謑", + "謋", + "謒", + "謕", + "謍", + "謈", + "謪", + "謧", + "謣", + "謰", + "謵", + "譇", + "謯", + "謱", + "謥", + "謷", + "謦", + "譐", + "譈", + "譊", + "譀", + "譋", + "譕", + "譑", + "譠", + "譪", + "譝", + "譨", + "譣", + "譥", + "譹", + "譸", + "譅", + "譺", + "譻", + "譾", + "讄", + "讂", + "讆", + "讋", + "讔", + "讘", + "讟", + "谹", + "谻", + "谽", + "谾", + "豃", + "豋", + "豍", + "豏", + "豗", + "豜", + "豝", + "豟", + "豥", + "豤", + "豦", + "豭", + "豰", + "豲", + "豱", + "豯", + "豵", + "豷", + "豶", + "豻", + "豽", + "貁", + "貀", + "貄", + "貏", + "貑", + "貕", + "貙", + "貗", + "貜", + "貣", + "貾", + "賌", + "賥", + "賟", + "賙", + "賵", + "賮", + "贆", + "贕", + "贙", + "赨", + "赩", + "赮", + "赸", + "趀", + "趌", + "趎", + "趏", + "趍", + "趓", + "趠", + "趜", + "趡", + "趥", + "趧", + "趬", + "趪", + "趭", + "趫", + "趮", + "趷", + "趹", + "跘", + "跓", + "跍", + "跇", + "跜", + "跕", + "跙", + "跈", + "跰", + "跠", + "跮", + "跦", + "跢", + "跧", + "跲", + "跫", + "踂", + "跿", + "踍", + "踃", + "踇", + "踆", + "跾", + "踠", + "踥", + "踤", + "踡", + "踕", + "踛", + "踖", + "踑", + "踙", + "踧", + "踘", + "踓", + "踳", + "踾", + "踸", + "踼", + "蹎", + "蹍", + "蹓", + "蹗", + "蹖", + "蹞", + "蹥", + "蹛", + "蹡", + "蹝", + "蹔", + "蹸", + "蹳", + "蹪", + "躆", + "躈", + "躖", + "躗", + "躟", + "躠", + "躤", + "躣", + "躩", + "躨", + "躽", + "軓", + "軘", + "軞", + "軯", + "軷", + "軦", + "軮", + "軥", + "軵", + "軧", + "軨", + "軶", + "軱", + "軬", + "輆", + "軿", + "輁", + "輀", + "輂", + "輐", + "輑", + "輤", + "輘", + "輚", + "輠", + "輣", + "輖", + "輗", + "輮", + "輵", + "輲", + "輹", + "輷", + "輴", + "轃", + "轇", + "轈", + "轒", + "轑", + "轏", + "轐", + "轓", + "轙", + "轖", + "轗", + "轕", + "轚", + "轞", + "轛", + "轠", + "辴", + "迉", + "迒", + "迋", + "迍", + "迖", + "迣", + "迡", + "迾", + "迿", + "逜", + "逿", + "遝", + "遳", + "遰", + "遻", + "邆", + "邅", + "遾", + "邍", + "邔", + "邟", + "邥", + "邞", + "邧", + "郱", + "郕", + "郖", + "郠", + "郙", + "郣", + "郥", + "郘", + "郰", + "郲", + "郔", + "鄬", + "郼", + "鄈", + "郹", + "郻", + "鄁", + "鄇", + "郺", + "鄐", + "鄍", + "鄏", + "鄎", + "鄟", + "鄝", + "鄡", + "鄛", + "鄨", + "鄪", + "鄦", + "鄮", + "鄵", + "鄸", + "鄻", + "鄾", + "酀", + "酁", + "酄", + "酇", + "酖", + "酘", + "酓", + "酟", + "酳", + "醆", + "醊", + "醓", + "醙", + "醟", + "醥", + "醧", + "醰", + "醱", + "醷", + "醲", + "醳", + "醹", + "醽", + "釂", + "釃", + "釢", + "釱", + "釳", + "釸", + "鈚", + "鈌", + "鈒", + "釽", + "鈆", + "鉒", + "鉠", + "鉯", + "鈶", + "鉼", + "銤", + "銛", + "銔", + "鉹", + "銗", + "鋄", + "鋀", + "鋟", + "鋘", + "鋩", + "鋝", + "鋂", + "鋊", + "錧", + "錼", + "錭", + "錎", + "鋋", + "鎡", + "鎃", + "鎯", + "鍖", + "鍜", + "鍐", + "鍭", + "鍌", + "鎒", + "鎷", + "鎝", + "鎉", + "鎎", + "鎞", + "鏏", + "鏂", + "鏚", + "鏬", + "鏙", + "鐋", + "鐏", + "鏾", + "鐕", + "鐨", + "鐍", + "鐀", + "鐎", + "鐖", + "鐻", + "鐶", + "鑐", + "鑋", + "鑕", + "鑮", + "鑯", + "钂", + "钀", + "钁", + "钃", + "镺", + "镻", + "镼", + "镽", + "閈", + "閍", + "閺", + "閵", + "闀", + "闉", + "闅", + "閷", + "闒", + "闑", + "闚", + "闛", + "闠", + "闟", + "闤", + "阞", + "阢", + "阤", + "阠", + "阰", + "阹", + "阸", + "阺", + "陏", + "陓", + "陊", + "陼", + "陭", + "陫", + "隇", + "陾", + "隉", + "隒", + "隓", + "隞", + "隤", + "隿", + "雂", + "雈", + "雓", + "雔", + "雗", + "雚", + "雟", + "雘", + "雺", + "雽", + "雿", + "霂", + "霋", + "霒", + "霐", + "霠", + "霣", + "霢", + "霩", + "霫", + "霬", + "霮", + "霵", + "霿", + "靆", + "靃", + "靪", + "靮", + "靷", + "靲", + "靾", + "鞃", + "鞀", + "鞂", + "靻", + "鞊", + "鞎", + "鞈", + "鞙", + "鞗", + "鞚", + "鞜", + "鞤", + "鞪", + "鞷", + "鞶", + "鞹", + "鞻", + "鞿", + "韄", + "韅", + "韇", + "韎", + "韐", + "韏", + "韕", + "韔", + "韗", + "韝", + "韟", + "韣", + "韥", + "韰", + "韱", + "韹", + "韽", + "頄", + "頖", + "頞", + "頝", + "頩", + "頨", + "頯", + "頲", + "顁", + "顄", + "顊", + "顉", + "顅", + "顐", + "顑", + "顜", + "顝", + "顠", + "顣", + "顟", + "顤", + "顪", + "顩", + "顲", + "颬", + "颲", + "颸", + "颽", + "颻", + "颾", + "飁", + "飂", + "飉", + "飋", + "飌", + "飣", + "飶", + "餂", + "餀", + "飺", + "餔", + "餖", + "餕", + "餤", + "餟", + "餥", + "餫", + "餪", + "餲", + "餯", + "餭", + "餱", + "餰", + "饁", + "饇", + "饐", + "饎", + "饙", + "饘", + "饛", + "饡", + "馣", + "馲", + "馰", + "馵", + "馻", + "馺", + "駂", + "馽", + "駜", + "駍", + "駏", + "駎", + "駖", + "駮", + "駬", + "駥", + "駤", + "駣", + "駩", + "駺", + "駴", + "駷", + "駹", + "駶", + "駻", + "駽", + "駾", + "騃", + "騉", + "騑", + "騊", + "騇", + "騚", + "騕", + "騥", + "騝", + "騛", + "騢", + "騠", + "騧", + "騞", + "騜", + "騵", + "騲", + "騴", + "騱", + "騬", + "騪", + "騩", + "騹", + "騽", + "驆", + "騺", + "驓", + "驔", + "驈", + "驉", + "驖", + "驞", + "驠", + "驦", + "驨", + "骭", + "骫", + "骹", + "骿", + "骴", + "骾", + "髇", + "髊", + "髆", + "髍", + "髐", + "髟", + "髧", + "髬", + "髳", + "髶", + "髺", + "髾", + "鬁", + "髼", + "鬋", + "鬊", + "鬎", + "鬌", + "鬐", + "鬕", + "鬗", + "鬖", + "鬙", + "鬞", + "鬠", + "鬤", + "鬫", + "鬳", + "鬵", + "鬺", + "鬾", + "鬿", + "魊", + "魌", + "魖", + "魠", + "魡", + "魧", + "魱", + "魦", + "魶", + "魵", + "鮅", + "鮇", + "魼", + "魾", + "魻", + "鮂", + "鮚", + "鮞", + "鮛", + "鮦", + "鮥", + "鮤", + "鮆", + "鯆", + "鮿", + "鮵", + "鯈", + "鯫", + "鯠", + "鯞", + "鯦", + "鯬", + "鰌", + "鰋", + "鰅", + "鯸", + "鰫", + "鰝", + "鰬", + "鱆", + "鰿", + "鱄", + "鱁", + "鰴", + "鱐", + "鱍", + "鱋", + "鱕", + "鱦", + "鱢", + "鱞", + "鱴", + "鱳", + "鱹", + "鳦", + "鳪", + "鳭", + "鳱", + "鳵", + "鳼", + "鳺", + "鳿", + "鳷", + "鴀", + "鳹", + "鳻", + "鴅", + "鴃", + "鴥", + "鴠", + "鴔", + "鴩", + "鴘", + "鴢", + "鴐", + "鴳", + "鵁", + "鵧", + "鴶", + "鴮", + "鴱", + "鴸", + "鵅", + "鵃", + "鴾", + "鵀", + "鴽", + "鵏", + "鵊", + "鵛", + "鵋", + "鵖", + "鵌", + "鵗", + "鵔", + "鵷", + "鶁", + "鶊", + "鶄", + "鶈", + "鵱", + "鶀", + "鵸", + "鶋", + "鶌", + "鵽", + "鵫", + "鵴", + "鵩", + "鶅", + "鵳", + "鵻", + "鶂", + "鵹", + "鶟", + "鶙", + "鶤", + "鶝", + "鶐", + "鶛", + "鶠", + "鶔", + "鶜", + "鶪", + "鶗", + "鶢", + "鶨", + "鶞", + "鶣", + "鶖", + "鶷", + "鶶", + "鷁", + "鷇", + "鷊", + "鷏", + "鶾", + "鷅", + "鷃", + "鶵", + "鷈", + "鶱", + "鶭", + "鷛", + "鷒", + "鷞", + "鷋", + "鷐", + "鷜", + "鷑", + "鷩", + "鷘", + "鷖", + "鷵", + "鷕", + "鷻", + "鷷", + "鷣", + "鷤", + "鷶", + "鷡", + "鷮", + "鷢", + "鸂", + "鷾", + "鸇", + "鸃", + "鸆", + "鸅", + "鸀", + "鸁", + "鸉", + "鷿", + "鷽", + "鸄", + "鸋", + "鸍", + "鸏", + "鸒", + "鸔", + "鸓", + "鸗", + "鸙", + "鹺", + "麃", + "麆", + "麉", + "麎", + "麌", + "麔", + "麙", + "麛", + "麚", + "麜", + "麠", + "麡", + "麧", + "麮", + "麰", + "麶", + "麷", + "黀", + "黂", + "黈", + "黓", + "黕", + "黖", + "黚", + "黤", + "黫", + "黮", + "黭", + "黰", + "黳", + "黵", + "黺", + "鼁", + "鼀", + "鼆", + "鼊", + "鼏", + "鼖", + "鼛", + "鼘", + "鼜", + "鼤", + "鼣", + "鼥", + "鼪", + "鼨", + "鼭", + "鼰", + "鼮", + "鼵", + "鼳", + "鼲", + "鼸", + "鼶", + "齀", + "齂", + "齃", + "齌", + "齍", + "齎", + "齖", + "齗", + "齘", + "齛", + "齠", + "齞", + "齝", + "齥", + "齤", + "齫", + "齱", + "齰", + "齮", + "齯", + "齴", + "齵", + "齸", + "齻", + "齺", + "齹", + "齾", + "龒", + "龤", + "堔", + "礂", + "蒏", + "蒆", + "兙", + "兛", + "兞", + "兝", + "兡", + "兣", + "嗧", + "瓩", + "忼", + "擡", + "氊", + "穇", + "擧", + "譌", + "!", + "\"", + "#", + "$", + "%", + "&", + "'", + "(", + ")", + "*", + "+", + ",", + "-", + ".", + "/", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + ":", + ";", + "<", + "=", + ">", + "?", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "[", + "]", + "_", + "`", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "©", + "°", + "²", + "´", + "½", + "Á", + "Ä", + "Å", + "Ç", + "È", + "É", + "Í", + "Ó", + "Ö", + "×", + "Ü", + "ß", + "à", + "á", + "â", + "ã", + "ä", + "å", + "æ", + "ç", + "è", + "é", + "ê", + "ë", + "í", + "ð", + "ñ", + "ò", + "ó", + "ô", + "õ", + "ö", + "ø", + "ú", + "û", + "ü", + "ý", + "ā", + "ă", + "ą", + "ć", + "Č", + "č", + "đ", + "ē", + "ė", + "ę", + "ğ", + "ī", + "ı", + "Ł", + "ł", + "ń", + "ň", + "ō", + "ř", + "Ş", + "ş", + "Š", + "š", + "ţ", + "ū", + "ż", + "Ž", + "ž", + "Ș", + "ș", + "ț", + "Δ", + "α", + "λ", + "μ", + "φ", + "Г", + "О", + "а", + "в", + "л", + "о", + "р", + "с", + "т", + "я", + "ồ", + "—", + "―", + "’", + "“", + "”", + "…", + "℃", + "→", + "∇", + "−", + "■", + "☆", + "、", + "。", + "々", + "〆", + "〈", + "〉", + "「", + "」", + "『", + "』", + "〔", + "〕", + "〜", + "!", + "#", + "%", + "&", + "(", + ")", + "+", + ",", + "-", + ".", + "/", + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + ":", + ";", + "=", + "?", + "@", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "~", + "・", + "ǎ", + "ǒ", + "ě", + "ǐ", + "ì", + "ǔ", + "ù", + "ǖ", + "ǘ", + "ǚ", + "ǜ", + "【", + "】", + "《", + "》", + "‥", + "{", + "}", + "\\", + "|", + "@", + "^", + "~", + "÷", + "∕", + "∙", + "⋅", + "·", + "⊕", + "⊖", + "⊗", + "⊘", + "⊙", + "±", + "∓", + "∩", + "∪", + "□", + "⊎", + "⊓", + "⊔", + "≠", + "≈", + "≡", + "≤", + "≥", + "≪", + "≫", + "≲", + "≳", + "≶", + "≷", + "≺", + "≻", + "≼", + "≽", + "∈", + "∉", + "⊂", + "⊃", + "⊆", + "⊇", + "⊄", + "⊅", + "∅", + "∖", + "∁", + "∆", + "∧", + "∨", + "¬", + "⊻", + "⊼", + "⊽", + "←", + "↔", + "⇒", + "⇐", + "⇔", + "∀", + "∃", + "∄", + "∴", + "∵", + "∝", + "∞", + "⊥", + "∟", + "∠", + "∡", + "∢", + "′", + "″", + "∥", + "⊾", + "⊿", + "∂", + "∫", + "∬", + "∭", + "∮", + "∯", + "∰", + "∑", + "∏", + "√", + "∛", + "∜", + "∱", + "∲", + "∳", + "∶", + "∷", + "∼", + "®", + "≄", + "≅", + "≃", + "≦", + "≧", + "⊈", + "⊉", + "⊢", + "⊤", + "⊨", + "⊧", + "℉", + "Ω", + "℧", + "Å", + "⌀", + "ℏ", + "⅀", + "⍺", + "⍵", + "¢", + "€", + "£", + "¥", + "¥", + "₿", + "↑", + "↓", + "↕", + "↖", + "↗", + "↘", + "↙", + "↺", + "↻", + "↼", + "↽", + "↾", + "↿", + "⇀", + "⇁", + "⇂", + "⇃", + "⇋", + "⇌", + "ª", + "º", + "⁰", + "¹", + "³", + "⁴", + "⁵", + "⁶", + "⁷", + "⁸", + "⁹", + "⁺", + "⁻", + "⁼", + "⁽", + "⁾", + "ⁿ", + "₀", + "₁", + "₂", + "₃", + "₄", + "₅", + "₆", + "₇", + "₈", + "₉", + "₊", + "₋", + "₌", + "₍", + "₎", + "Ⅰ", + "Ⅱ", + "Ⅲ", + "Ⅳ", + "Ⅴ", + "Ⅵ", + "Ⅶ", + "Ⅷ", + "Ⅸ", + "Ⅹ", + "Ⅺ", + "Ⅻ", + "ⅰ", + "ⅱ", + "ⅲ", + "ⅳ", + "ⅴ", + "ⅵ", + "ⅶ", + "ⅷ", + "ⅸ", + "ⅹ", + "ⅺ", + "ⅻ", + "☰", + "☱", + "☲", + "☳", + "☴", + "☵", + "☶", + "☷", + "♀", + "♂", + "♳", + "♴", + "♵", + "♶", + "♷", + "♸", + "♹", + "♺", + "♩", + "♪", + "♫", + "♬", + "⚪", + "⚫", + "⚬", + "✶", + "✷", + "✸", + "➀", + "➁", + "➂", + "➃", + "➄", + "➅", + "➆", + "➇", + "➈", + "➉", + "➊", + "➋", + "➌", + "➍", + "➎", + "➏", + "➐", + "➑", + "➒", + "➓", + "⏀", + "⏁", + "⏂", + "⏃", + "⏄", + "⏅", + "⏆", + "⏇", + "⏈", + "⏉", + "⏊", + "⏋", + "⏌", + "⏚", + "⏴", + "⏵", + "⏶", + "⏷", + "⏸", + "⏹", + "⏺", + "⏻", + "⏼", + "Α", + "Β", + "Γ", + "Ε", + "Ζ", + "Η", + "Θ", + "Ι", + "Κ", + "Λ", + "Μ", + "Ν", + "Ξ", + "Ο", + "Π", + "Ρ", + "Σ", + "Τ", + "Υ", + "Φ", + "Χ", + "Ψ", + "β", + "γ", + "δ", + "ε", + "ζ", + "η", + "θ", + "ι", + "κ", + "ν", + "ξ", + "ο", + "π", + "ρ", + "σ", + "τ", + "υ", + "χ", + "ψ", + "ω", + "ϐ", + "ϑ", + "ϒ", + "ϕ", + "█", + "ϖ", + "ϰ", + "ϱ", + "ϴ", + "ϵ", + "ϝ", + "Ϟ", + "ϟ", + "Ϡ", + "ϡ", + "Ϣ", + "ϣ", + "Ϥ", + "ϥ", + "Ϧ", + "ϧ", + "Ϩ", + "ϩ", + "Ϫ", + "ϫ", + "Ϭ", + "ϭ", + "Ϯ", + "ϯ", + "∸", + "∹", + "∺", + "∻", + "∽", + "∾", + "∿", + "≀", + "≁", + "≂", + "≆", + "≇", + "≉", + "≊", + "≋", + "≌", + "≍", + "≎", + "≏", + "≐", + "≑", + "≒", + "≓", + "≔", + "≕", + "≖", + "≗", + "≘", + "≙", + "≚", + "≛", + "≜", + "≝", + "≞", + "≟", + "≢", + "≣", + "≨", + "≩", + "≬", + "≭", + "≮", + "≯", + "≰", + "≱", + "≴", + "≵", + "≸", + "≹", + "≾", + "≿", + "⊀", + "⊁", + "⊊", + "⊋", + "⊌", + "⊍", + "⊏", + "⊐", + "⊑", + "⊒", + "⊚", + "⊛", + "⊜", + "⊝", + "⊞", + "⊟", + "⊠", + "⊡", + "⊣", + "⊦", + "⊩", + "⊪", + "⊫", + "⊬", + "⊭", + "⊮", + "⊯", + "⊰", + "⊱", + "⊲", + "⊳", + "⊴", + "⊵", + "⊶", + "⊷", + "⊸", + "⊹", + "⊺", + "ℎ", + "℘", + "ℜ", + "ℑ", + "ℵ", + "ℶ", + "ℷ", + "ℸ", + "⌬", + "⌭", + "⌮", + "⌯", + "⎔", + "¤", + "₠", + "₡", + "₢", + "₣", + "₤", + "₥", + "₦", + "₧", + "₨", + "₩", + "₪", + "₫", + "₭", + "₮", + "₯", + "₰", + "₱", + "₲", + "₳", + "₴", + "₵", + "₶", + "₷", + "₸", + "₹", + "₺", + "₻", + "₼", + "₽", + "₾", + "↚", + "↛", + "↜", + "↝", + "↞", + "↟", + "↠", + "↡", + "↢", + "↣", + "↤", + "↥", + "↦", + "↧", + "↨", + "↩", + "↪", + "↫", + "↬", + "↭", + "↮", + "↯", + "↰", + "↱", + "↲", + "↳", + "↴", + "↵", + "↶", + "↷", + "↸", + "↹", + "⇄", + "⇅", + "⇆", + "⇇", + "⇈", + "⇉", + "⇊", + "⇍", + "⇎", + "⇏", + "⇑", + "⇓", + "⇕", + "⇖", + "⇗", + "⇘", + "⇙", + "⇚", + "⇛", + "⇜", + "⇝", + "⇞", + "⇟", + "⇠", + "⇡", + "⇢", + "⇣", + "⇤", + "⇥", + "⇦", + "⇧", + "⇨", + "⇩", + "⇪", + "⇫", + "⇬", + "⇭", + "⇮", + "⇯", + "⇰", + "⇱", + "⇲", + "⇳", + "⇴", + "⇵", + "⇶", + "⇷", + "⇸", + "⇹", + "⇺", + "⇻", + "⇼", + "⇽", + "⇾", + "⇿", + "ↀ", + "ↁ", + "ↂ", + "☀", + "☁", + "☂", + "☃", + "☄", + "★", + "☇", + "☈", + "☉", + "☊", + "☋", + "☌", + "☍", + "☎", + "☏", + "☐", + "☑", + "☒", + "☓", + "☔", + "☕", + "☖", + "☗", + "☘", + "☙", + "☚", + "☛", + "☜", + "☝", + "☞", + "☟", + "☠", + "☡", + "☢", + "☣", + "☤", + "☥", + "☦", + "☧", + "☨", + "☩", + "☪", + "☫", + "☬", + "☭", + "☮", + "☯", + "☸", + "☹", + "☺", + "☻", + "☼", + "☽", + "☾", + "☿", + "♁", + "♃", + "♄", + "♅", + "♆", + "♇", + "♔", + "♕", + "♖", + "♗", + "♘", + "♙", + "♚", + "♛", + "♜", + "♝", + "♞", + "♟", + "♠", + "♡", + "♢", + "♣", + "♤", + "♥", + "♦", + "♧", + "♨", + "♭", + "♮", + "♯", + "♰", + "♱", + "♲", + "♻", + "♼", + "♽", + "♾", + "⚀", + "⚁", + "⚂", + "⚃", + "⚄", + "⚅", + "⚆", + "⚇", + "⚈", + "⚉", + "⚊", + "⚋", + "⚌", + "⚍", + "⚎", + "⚏", + "⚐", + "⚑", + "⚒", + "⚓", + "⚔", + "⚕", + "⚖", + "⚗", + "⚘", + "⚙", + "⚚", + "⚛", + "⚜", + "⚝", + "⚞", + "⚟", + "⚠", + "⚡", + "⚢", + "⚣", + "⚤", + "⚥", + "⚦", + "⚧", + "⚨", + "⚩", + "⚭", + "⚮", + "⚯", + "⚰", + "⚱", + "⚲", + "⚳", + "⚴", + "⚵", + "⚶", + "⚷", + "⚸", + "⚹", + "⚺", + "⚻", + "⚼", + "⚿", + "⛀", + "⛁", + "⛂", + "⛃", + "⛆", + "⛇", + "⛈", + "⛉", + "⛊", + "⛋", + "⛌", + "⛍", + "⛏", + "⛐", + "⛑", + "⛒", + "⛓", + "⛕", + "⛖", + "⛗", + "⛘", + "⛙", + "⛚", + "⛛", + "⛜", + "⛝", + "⛞", + "⛠", + "⛡", + "⛢", + "⛣", + "⛤", + "⛥", + "⛦", + "⛧", + "⛨", + "⛩", + "⛪", + "⛫", + "⛬", + "⛭", + "⛮", + "⛯", + "⛶", + "⛾", + "⛿", + "✆", + "✇", + "✈", + "✉", + "✌", + "✍", + "✎", + "✏", + "✐", + "✑", + "✒", + "✓", + "✔", + "✕", + "✙", + "✚", + "✛", + "✜", + "✝", + "✞", + "✟", + "✠", + "✡", + "✢", + "✣", + "✤", + "✥", + "✦", + "✧", + "✩", + "✪", + "✫", + "✬", + "✭", + "✮", + "✯", + "✰", + "✱", + "✲", + "✳", + "✴", + "✵", + "✹", + "✺", + "✻", + "✼", + "✽", + "✾", + "✿", + "❀", + "❁", + "❂", + "❃", + "❄", + "❅", + "❆", + "❇", + "❈", + "❉", + "❊", + "❋", + "❍", + "❏", + "❐", + "❑", + "❒", + "❖", + "❘", + "❙", + "❚", + "❛", + "❜", + "❝", + "❞", + "❡", + "❢", + "❣", + "❤", + "❥", + "❦", + "❧", + "❨", + "❩", + "❪", + "❫", + "❬", + "❭", + "❮", + "❯", + "❰", + "❱", + "❲", + "❳", + "❴", + "❵", + "❶", + "❷", + "❸", + "❹", + "❺", + "❻", + "❼", + "❽", + "❾", + "❿", + "①", + "②", + "③", + "④", + "⑤", + "⑥", + "⑦", + "⑧", + "⑨", + "⑩", + "➔", + "➕", + "➖", + "➗", + "➘", + "➙", + "➚", + "➛", + "➜", + "➝", + "➞", + "➟", + "➠", + "➡", + "➢", + "➣", + "➤", + "➥", + "➦", + "➧", + "➨", + "➩", + "➪", + "➫", + "➬", + "➭", + "➮", + "➯", + "➰", + "➱", + "➲", + "➳", + "➴", + "➵", + "➶", + "➷", + "➸", + "➹", + "➺", + "➻", + "➼", + "➽", + "➾", + "➿", + "⌘", + "⌥", + "⌃", + "⎋", + "⌫", + "⌦", + "⏏", + "⌤", + "⌧", + "⌨", + "⎆", + "⎇", + "⎈", + "⎉", + "⎊", + "⎌", + "⎍", + "⎎", + "⎏", + "⎐", + "⎑", + "⎒", + "⎓", + "⎕", + "⎖", + "⎗", + "⎘", + "⎙", + "⎚", + "⎛", + "⎜", + "⎝", + "⎞", + "⎟", + "⎠", + "⎡", + "⎢", + "⎣", + "⎤", + "⎥", + "⎦", + "⎧", + "⎨", + "⎩", + "⎪", + "⎫", + "⎬", + "⎭", + "⎮", + "⎯", + "⎰", + "⎱", + "⎲", + "⎳", + "⎴", + "⎵", + "⎶", + "⎷", + "⎸", + "⎹", + "⎺", + "⎻", + "⎼", + "⎽", + "⎾", + "⎿", + "⏍", + "⏎", + "⏐", + "⏑", + "⏒", + "⏓", + "⏔", + "⏕", + "⏖", + "⏗", + "⏘", + "⏙", + "⏛", + "⏜", + "⏝", + "⏞", + "⏟", + "⏠", + "⏡", + "⏢", + "⏣", + "⏤", + "⏥", + "⏦", + "⏧", + "⏨", + "⏭", + "⏮", + "⏯", + "⏱", + "⏲", + "▲", + "▽", + "◐", + "⏽", + "⏾", + "⏿", + "ɐ", + "ɑ", + "ɒ", + "ɓ", + "ɔ", + "ɕ", + "ɖ", + "ɗ", + "ɘ", + "ə", + "ɚ", + "ɛ", + "ɜ", + "ɝ", + "ɞ", + "ɟ", + "ɠ", + "ɡ", + "ɢ", + "ɣ", + "ɤ", + "ɥ", + "ɦ", + "ɧ", + "ɨ", + "ɩ", + "ɪ", + "ɫ", + "ɬ", + "ɭ", + "ɮ", + "ɯ", + "ɰ", + "ɱ", + "ɲ", + "ɳ", + "ɴ", + "ɵ", + "ɶ", + "ɷ", + "ɸ", + "ɹ", + "ɺ", + "ɻ", + "ɼ", + "ɽ", + "ɾ", + "ɿ", + "ʀ", + "ʁ", + "ʂ", + "ʃ", + "ʄ", + "ʅ", + "ʆ", + "ʇ", + "ʈ", + "ʉ", + "ʊ", + "ʋ", + "ʌ", + "ʍ", + "ʎ", + "ʏ", + "ʐ", + "ʑ", + "ʒ", + "ʓ", + "ʔ", + "ʕ", + "ʖ", + "ʗ", + "ʘ", + "ʙ", + "ʚ", + "ʛ", + "ʜ", + "ʝ", + "ʞ", + "ʟ", + "ʠ", + "ʡ", + "ʢ", + "ʣ", + "ʤ", + "ʥ", + "ʦ", + "ʧ", + "ʨ", + "ʩ", + "ʪ", + "ʫ", + "ʬ", + "ʭ", + "ʮ", + "ʯ", + "━", + "Ǝ", + "Ã", + "●", + "▶", + "|", + "𝑢", + "〖", + "〗", + "︽", + "–", + "﹥", + "𝜓", + "•", + "∋", + "ƒ", + "०", + "✘", + "Е", + "◉", + "〒", + "𝒱", + "𝜆", + "⟹", + "﹪", + "◊", + "╆", + "오", + "˂", + "〉", + "𝝎", + "▪", + "△", + "▁", + "◼", + "〇", + "▷", + "▬", + "𝒮", + "†", + "ₒ", + "⼁", + "〵", + "⭐", + "╳", + "⟶", + "으", + "⬆", + "Ạ", + "◀", + "", + "▫", + "丄", + "︾", + "◥", + "‖", + "𝜌", + "ⅼ", + "▼", + "⁎", + "﹏", + "😁", + "😂", + "😃", + "😄", + "😅", + "😆", + "😉", + "😊", + "😋", + "😌", + "😍", + "😏", + "😒", + "😓", + "😔", + "😖", + "😘", + "😚", + "😜", + "😝", + "😞", + "😠", + "😡", + "😢", + "😣", + "😤", + "😥", + "😨", + "😩", + "😪", + "😫", + "😭", + "😰", + "😱", + "😲", + "😳", + "😵", + "😷", + "😸", + "😹", + "😺", + "😻", + "😼", + "😽", + "😾", + "😿", + "🙀", + "🙅", + "🙆", + "🙇", + "🙈", + "🙉", + "🙊", + "🙋", + "🙌", + "🙍", + "🙎", + "🙏", + "✂", + "✅", + "✊", + "✋", + "✖", + "✨", + "❌", + "❎", + "❓", + "❔", + "❕", + "❗", + "🚀", + "🚃", + "🚄", + "🚅", + "🚇", + "🚉", + "🚌", + "🚏", + "🚑", + "🚒", + "🚓", + "🚕", + "🚗", + "🚙", + "🚚", + "🚢", + "🚤", + "🚥", + "🚧", + "🚨", + "🚩", + "🚪", + "🚫", + "🚬", + "🚭", + "🚲", + "🚶", + "🚹", + "🚺", + "🚻", + "🚼", + "🚽", + "🚾", + "🛀", + "Ⓜ", + "🅰", + "🅱", + "🅾", + "🅿", + "🆎", + "🆑", + "🆒", + "🆓", + "🆔", + "🆕", + "🆖", + "🆗", + "🆘", + "🆙", + "🆚", + "🇩🇪", + "🇬🇧", + "🇨🇳", + "🇯🇵", + "🇫🇷", + "🇰🇷", + "🇪🇸", + "🇮🇹", + "🇷🇺", + "🇺🇸", + "🈁", + "ℹ", + "⌚", + "⌛", + "⏩", + "⏪", + "⏫", + "⏬", + "⏰", + "⏳", + "◻", + "◽", + "◾", + "♈", + "♉", + "♊", + "♋", + "♌", + "♍", + "♎", + "♏", + "♐", + "♑", + "♒", + "♓", + "♿", + "⚽", + "⚾", + "⛄", + "⛅", + "⛎", + "⛔", + "⛲", + "⛳", + "⛵", + "⛺", + "⛽", + "⤴", + "⤵", + "⬅", + "⬇", + "⬛", + "⬜", + "⭕", + "〰", + "〽", + "㊗", + "㊙", + "🀄", + "🃏", + "🌀", + "🌁", + "🌂", + "🌃", + "🌄", + "🌅", + "🌆", + "🌇", + "🌈", + "🌉", + "🌊", + "🌋", + "🌌", + "🌏", + "🌑", + "🌓", + "🌔", + "🌕", + "🌙", + "🌛", + "🌟", + "🌠", + "🌰", + "🌱", + "🌴", + "🌵", + "🌷", + "🌸", + "🌹", + "🌺", + "🌻", + "🌼", + "🌽", + "🌾", + "🌿", + "🍀", + "🍁", + "🍂", + "🍃", + "🍄", + "🍅", + "🍆", + "🍇", + "🍈", + "🍉", + "🍊", + "🍌", + "🍍", + "🍎", + "🍏", + "🍑", + "🍒", + "🍓", + "🍔", + "🍕", + "🍖", + "🍗", + "🍘", + "🍙", + "🍚", + "🍛", + "🍜", + "🍝", + "🍞", + "🍟", + "🍠", + "🍡", + "🍢", + "🍣", + "🍤", + "🍥", + "🍦", + "🍧", + "🍨", + "🍩", + "🍪", + "🍫", + "🍬", + "🍭", + "🍮", + "🍯", + "🍰", + "🍱", + "🍲", + "🍳", + "🍴", + "🍵", + "🍶", + "🍷", + "🍸", + "🍹", + "🍺", + "🍻", + "🎀", + "🎁", + "🎂", + "🎃", + "🎄", + "🎅", + "🎆", + "🎇", + "🎈", + "🎉", + "🎊", + "🎋", + "🎌", + "🎍", + "🎎", + "🎏", + "🎐", + "🎑", + "🎒", + "🎓", + "🎠", + "🎡", + "🎢", + "🎣", + "🎤", + "🎥", + "🎦", + "🎧", + "🎨", + "🎩", + "🎪", + "🎫", + "🎬", + "🎭", + "🎮", + "🎯", + "🎰", + "🎱", + "🎲", + "🎳", + "🎴", + "🎵", + "🎶", + "🎷", + "🎸", + "🎹", + "🎺", + "🎻", + "🎼", + "🎽", + "🎾", + "🎿", + "🏀", + "🏁", + "🏂", + "🏃", + "🏄", + "🏆", + "🏈", + "🏊", + "🏠", + "🏡", + "🏢", + "🏣", + "🏥", + "🏦", + "🏧", + "🏨", + "🏩", + "🏪", + "🏫", + "🏬", + "🏭", + "🏮", + "🏯", + "🏰", + "🐌", + "🐍", + "🐎", + "🐑", + "🐒", + "🐔", + "🐗", + "🐘", + "🐙", + "🐚", + "🐛", + "🐜", + "🐝", + "🐞", + "🐟", + "🐠", + "🐡", + "🐢", + "🐣", + "🐤", + "🐥", + "🐦", + "🐧", + "🐨", + "🐩", + "🐫", + "🐬", + "🐭", + "🐮", + "🐯", + "🐰", + "🐱", + "🐲", + "🐳", + "🐴", + "🐵", + "🐶", + "🐷", + "🐸", + "🐹", + "🐺", + "🐻", + "🐼", + "🐽", + "🐾", + "👀", + "👂", + "👃", + "👄", + "👅", + "👆", + "👇", + "👈", + "👉", + "👊", + "👋", + "👌", + "👍", + "👎", + "👏", + "👐", + "👑", + "👒", + "👓", + "👔", + "👕", + "👖", + "👗", + "👘", + "👙", + "👚", + "👛", + "👜", + "👝", + "👞", + "👟", + "👠", + "👡", + "👢", + "👣", + "👤", + "👦", + "👧", + "👨", + "👩", + "👪", + "👫", + "👮", + "👯", + "👰", + "👱", + "👲", + "👳", + "👴", + "👵", + "👶", + "👷", + "👸", + "👹", + "👺", + "👻", + "👼", + "👽", + "👾", + "👿", + "💀", + "💁", + "💂", + "💃", + "💄", + "💅", + "💆", + "💇", + "💈", + "💉", + "💊", + "💋", + "💌", + "💍", + "💎", + "💏", + "💐", + "💑", + "💒", + "💓", + "💔", + "💕", + "💖", + "💗", + "💘", + "💙", + "💚", + "💛", + "💜", + "💝", + "💞", + "💟", + "💠", + "💡", + "💢", + "💣", + "💤", + "💥", + "💦", + "💧", + "💨", + "💩", + "💪", + "💫", + "💬", + "💮", + "💯", + "💰", + "💲", + "💳", + "💴", + "💵", + "💸", + "💹", + "💺", + "💻", + "💼", + "💽", + "💾", + "💿", + "📀", + "📁", + "📂", + "📃", + "📄", + "📅", + "📆", + "📇", + "📈", + "📉", + "📊", + "📋", + "📌", + "📍", + "📎", + "📏", + "📐", + "📑", + "📒", + "📓", + "📔", + "📕", + "📖", + "📗", + "📘", + "📙", + "📚", + "📛", + "📜", + "📝", + "📞", + "📟", + "📠", + "📡", + "📢", + "📣", + "📤", + "📥", + "📦", + "📧", + "📨", + "📩", + "📪", + "📫", + "📮", + "📰", + "📱", + "📲", + "📳", + "📴", + "📶", + "📷", + "📹", + "📺", + "📻", + "📼", + "🔃", + "🔊", + "🔋", + "🔌", + "🔍", + "🔎", + "🔏", + "🔐", + "🔑", + "🔒", + "🔓", + "🔔", + "🔖", + "🔗", + "🔘", + "🔙", + "🔚", + "🔛", + "🔜", + "🔝", + "🔞", + "🔟", + "🔠", + "🔡", + "🔢", + "🔣", + "🔤", + "🔥", + "🔦", + "🔧", + "🔨", + "🔩", + "🔪", + "🔫", + "🔮", + "🔯", + "🔰", + "🔱", + "🔲", + "🔳", + "🔴", + "🔵", + "🔶", + "🔷", + "🔸", + "🔹", + "🔺", + "🔻", + "🔼", + "🔽", + "🕐", + "🕑", + "🕒", + "🕓", + "🕔", + "🕕", + "🕖", + "🕗", + "🕘", + "🕙", + "🕚", + "🕛", + "🗻", + "🗼", + "🗽", + "🗾", + "🗿", + "😀", + "😇", + "😈", + "😎", + "😐", + "😑", + "😕", + "😗", + "😙", + "😛", + "😟", + "😦", + "😧", + "😬", + "😮", + "😯", + "😴", + "😶", + "🚁", + "🚂", + "🚆", + "🚈", + "🚊", + "🚍", + "🚎", + "🚐", + "🚔", + "🚖", + "🚘", + "🚛", + "🚜", + "🚝", + "🚞", + "🚟", + "🚠", + "🚡", + "🚣", + "🚦", + "🚮", + "🚯", + "🚰", + "🚱", + "🚳", + "🚴", + "🚵", + "🚷", + "🚸", + "🚿", + "🛁", + "🛂", + "🛃", + "🛄", + "🛅", + "🌍", + "🌎", + "🌐", + "🌒", + "🌖", + "🌗", + "🌘", + "🌚", + "🌜", + "🌝", + "🌞", + "🌲", + "🌳", + "🍋", + "🍐", + "🍼", + "🏇", + "🏉", + "🏤", + "🐀", + "🐁", + "🐂", + "🐃", + "🐄", + "🐅", + "🐆", + "🐇", + "🐈", + "🐉", + "🐊", + "🐋", + "🐏", + "🐐", + "🐓", + "🐕", + "🐖", + "🐪", + "👥", + "👬", + "👭", + "💭", + "💶", + "💷", + "📬", + "📭", + "📯", + "📵", + "🔀", + "🔁", + "🔂", + "🔄", + "🔅", + "🔆", + "🔇", + "🔉", + "🔕", + "🔬", + "🔭", + "🕜", + "🕝", + "🕞", + "🕟", + "🕠", + "🕡", + "🕢", + "🕣", + "🕤", + "🕥", + "🕦", + "🕧" + ] + } +} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.json b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.json new file mode 100644 index 0000000..6701133 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.json @@ -0,0 +1 @@ +{"base_code":{"magic":"pir","trainable":true,"version":1},"program":{"regions":[{"#":"region_0","blocks":[{"#":"block_0","args":[],"ops":[{"#":"p","A":[0,1,1,"linear_9.b_0"],"DA":[],"O":{"%":1,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[18385],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_9.w_0"],"DA":[],"O":{"%":2,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,18385],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_85.w_2"],"DA":[],"O":{"%":3,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_85.w_1"],"DA":[],"O":{"%":4,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_85.b_0"],"DA":[],"O":{"%":5,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_85.w_0"],"DA":[],"O":{"%":6,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_86.w_0"],"DA":[],"O":{"%":7,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_84.w_2"],"DA":[],"O":{"%":8,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_84.w_1"],"DA":[],"O":{"%":9,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_84.b_0"],"DA":[],"O":{"%":10,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_84.w_0"],"DA":[],"O":{"%":11,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_85.w_0"],"DA":[],"O":{"%":12,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,4096,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_2"],"DA":[],"O":{"%":13,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_1"],"DA":[],"O":{"%":14,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.b_0"],"DA":[],"O":{"%":15,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_83.w_0"],"DA":[],"O":{"%":16,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_84.w_0"],"DA":[],"O":{"%":17,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048,120,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_4.b_0"],"DA":[],"O":{"%":18,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_4.w_0"],"DA":[],"O":{"%":19,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_8.b_0"],"DA":[],"O":{"%":20,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_8.w_0"],"DA":[],"O":{"%":21,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[240,120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_7.b_0"],"DA":[],"O":{"%":22,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[240],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_7.w_0"],"DA":[],"O":{"%":23,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,240],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_3.b_0"],"DA":[],"O":{"%":24,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_3.w_0"],"DA":[],"O":{"%":25,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_6.b_0"],"DA":[],"O":{"%":26,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_6.w_0"],"DA":[],"O":{"%":27,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_5.b_0"],"DA":[],"O":{"%":28,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[360],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_5.w_0"],"DA":[],"O":{"%":29,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,360],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_2.b_0"],"DA":[],"O":{"%":30,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_2.w_0"],"DA":[],"O":{"%":31,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_4.b_0"],"DA":[],"O":{"%":32,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_4.w_0"],"DA":[],"O":{"%":33,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[240,120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_3.b_0"],"DA":[],"O":{"%":34,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[240],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_3.w_0"],"DA":[],"O":{"%":35,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,240],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_1.b_0"],"DA":[],"O":{"%":36,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_1.w_0"],"DA":[],"O":{"%":37,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_2.b_0"],"DA":[],"O":{"%":38,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_2.w_0"],"DA":[],"O":{"%":39,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_1.b_0"],"DA":[],"O":{"%":40,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[360],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"linear_1.w_0"],"DA":[],"O":{"%":41,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,360],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_0.b_0"],"DA":[],"O":{"%":42,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"layer_norm_0.w_0"],"DA":[],"O":{"%":43,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_2"],"DA":[],"O":{"%":44,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_1"],"DA":[],"O":{"%":45,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.b_0"],"DA":[],"O":{"%":46,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_82.w_0"],"DA":[],"O":{"%":47,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_83.w_0"],"DA":[],"O":{"%":48,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_2"],"DA":[],"O":{"%":49,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_1"],"DA":[],"O":{"%":50,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.b_0"],"DA":[],"O":{"%":51,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_81.w_0"],"DA":[],"O":{"%":52,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_82.w_0"],"DA":[],"O":{"%":53,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,2048,1,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_2"],"DA":[],"O":{"%":54,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_1"],"DA":[],"O":{"%":55,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.b_0"],"DA":[],"O":{"%":56,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_80.w_0"],"DA":[],"O":{"%":57,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_80.w_0"],"DA":[],"O":{"%":58,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_2"],"DA":[],"O":{"%":59,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_1"],"DA":[],"O":{"%":60,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.b_0"],"DA":[],"O":{"%":61,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_79.w_0"],"DA":[],"O":{"%":62,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_79.w_0"],"DA":[],"O":{"%":63,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,3328,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_2"],"DA":[],"O":{"%":64,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_1"],"DA":[],"O":{"%":65,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.b_0"],"DA":[],"O":{"%":66,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_78.w_0"],"DA":[],"O":{"%":67,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_78.w_0"],"DA":[],"O":{"%":68,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_2"],"DA":[],"O":{"%":69,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_1"],"DA":[],"O":{"%":70,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.b_0"],"DA":[],"O":{"%":71,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_77.w_0"],"DA":[],"O":{"%":72,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_77.w_0"],"DA":[],"O":{"%":73,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_2"],"DA":[],"O":{"%":74,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_1"],"DA":[],"O":{"%":75,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.b_0"],"DA":[],"O":{"%":76,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_76.w_0"],"DA":[],"O":{"%":77,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_76.w_0"],"DA":[],"O":{"%":78,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_2"],"DA":[],"O":{"%":79,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_1"],"DA":[],"O":{"%":80,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.b_0"],"DA":[],"O":{"%":81,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_75.w_0"],"DA":[],"O":{"%":82,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_75.w_0"],"DA":[],"O":{"%":83,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_2"],"DA":[],"O":{"%":84,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_1"],"DA":[],"O":{"%":85,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.b_0"],"DA":[],"O":{"%":86,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_74.w_0"],"DA":[],"O":{"%":87,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_74.w_0"],"DA":[],"O":{"%":88,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_2"],"DA":[],"O":{"%":89,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_1"],"DA":[],"O":{"%":90,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.b_0"],"DA":[],"O":{"%":91,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_73.w_0"],"DA":[],"O":{"%":92,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_73.w_0"],"DA":[],"O":{"%":93,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_2"],"DA":[],"O":{"%":94,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_1"],"DA":[],"O":{"%":95,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.b_0"],"DA":[],"O":{"%":96,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_72.w_0"],"DA":[],"O":{"%":97,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_72.w_0"],"DA":[],"O":{"%":98,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_2"],"DA":[],"O":{"%":99,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_1"],"DA":[],"O":{"%":100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.b_0"],"DA":[],"O":{"%":101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_71.w_0"],"DA":[],"O":{"%":102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_71.w_0"],"DA":[],"O":{"%":103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_2"],"DA":[],"O":{"%":104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_1"],"DA":[],"O":{"%":105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.b_0"],"DA":[],"O":{"%":106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_70.w_0"],"DA":[],"O":{"%":107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_70.w_0"],"DA":[],"O":{"%":108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_2"],"DA":[],"O":{"%":109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_1"],"DA":[],"O":{"%":110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.b_0"],"DA":[],"O":{"%":111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_69.w_0"],"DA":[],"O":{"%":112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_69.w_0"],"DA":[],"O":{"%":113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,384,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_2"],"DA":[],"O":{"%":114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_1"],"DA":[],"O":{"%":115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.b_0"],"DA":[],"O":{"%":116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_68.w_0"],"DA":[],"O":{"%":117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_68.w_0"],"DA":[],"O":{"%":118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_2"],"DA":[],"O":{"%":119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_1"],"DA":[],"O":{"%":120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.b_0"],"DA":[],"O":{"%":121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_67.w_0"],"DA":[],"O":{"%":122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_67.w_0"],"DA":[],"O":{"%":123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_2"],"DA":[],"O":{"%":124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_1"],"DA":[],"O":{"%":125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.b_0"],"DA":[],"O":{"%":126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_66.w_0"],"DA":[],"O":{"%":127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_66.w_0"],"DA":[],"O":{"%":128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_2"],"DA":[],"O":{"%":129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_1"],"DA":[],"O":{"%":130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.b_0"],"DA":[],"O":{"%":131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_65.w_0"],"DA":[],"O":{"%":132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_65.w_0"],"DA":[],"O":{"%":133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_2"],"DA":[],"O":{"%":134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_1"],"DA":[],"O":{"%":135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.b_0"],"DA":[],"O":{"%":136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_64.w_0"],"DA":[],"O":{"%":137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_64.w_0"],"DA":[],"O":{"%":138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,2176,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_2"],"DA":[],"O":{"%":139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_1"],"DA":[],"O":{"%":140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.b_0"],"DA":[],"O":{"%":141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_63.w_0"],"DA":[],"O":{"%":142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_63.w_0"],"DA":[],"O":{"%":143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_2"],"DA":[],"O":{"%":144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_1"],"DA":[],"O":{"%":145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.b_0"],"DA":[],"O":{"%":146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_62.w_0"],"DA":[],"O":{"%":147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_62.w_0"],"DA":[],"O":{"%":148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_2"],"DA":[],"O":{"%":149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_1"],"DA":[],"O":{"%":150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.b_0"],"DA":[],"O":{"%":151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_61.w_0"],"DA":[],"O":{"%":152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_61.w_0"],"DA":[],"O":{"%":153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_2"],"DA":[],"O":{"%":154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_1"],"DA":[],"O":{"%":155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.b_0"],"DA":[],"O":{"%":156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_60.w_0"],"DA":[],"O":{"%":157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_60.w_0"],"DA":[],"O":{"%":158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_2"],"DA":[],"O":{"%":159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_1"],"DA":[],"O":{"%":160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.b_0"],"DA":[],"O":{"%":161,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_59.w_0"],"DA":[],"O":{"%":162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_59.w_0"],"DA":[],"O":{"%":163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_2"],"DA":[],"O":{"%":164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_1"],"DA":[],"O":{"%":165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.b_0"],"DA":[],"O":{"%":166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_58.w_0"],"DA":[],"O":{"%":167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_58.w_0"],"DA":[],"O":{"%":168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_2"],"DA":[],"O":{"%":169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_1"],"DA":[],"O":{"%":170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.b_0"],"DA":[],"O":{"%":171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_57.w_0"],"DA":[],"O":{"%":172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_57.w_0"],"DA":[],"O":{"%":173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_2"],"DA":[],"O":{"%":174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_1"],"DA":[],"O":{"%":175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.b_0"],"DA":[],"O":{"%":176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_56.w_0"],"DA":[],"O":{"%":177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_56.w_0"],"DA":[],"O":{"%":178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_2"],"DA":[],"O":{"%":179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_1"],"DA":[],"O":{"%":180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.b_0"],"DA":[],"O":{"%":181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_55.w_0"],"DA":[],"O":{"%":182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_55.w_0"],"DA":[],"O":{"%":183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_2"],"DA":[],"O":{"%":184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_1"],"DA":[],"O":{"%":185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.b_0"],"DA":[],"O":{"%":186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_54.w_0"],"DA":[],"O":{"%":187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_54.w_0"],"DA":[],"O":{"%":188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_2"],"DA":[],"O":{"%":189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_1"],"DA":[],"O":{"%":190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.b_0"],"DA":[],"O":{"%":191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_53.w_0"],"DA":[],"O":{"%":192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_53.w_0"],"DA":[],"O":{"%":193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_2"],"DA":[],"O":{"%":194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_1"],"DA":[],"O":{"%":195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.b_0"],"DA":[],"O":{"%":196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_52.w_0"],"DA":[],"O":{"%":197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_52.w_0"],"DA":[],"O":{"%":198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_2"],"DA":[],"O":{"%":199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_1"],"DA":[],"O":{"%":200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.b_0"],"DA":[],"O":{"%":201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_51.w_0"],"DA":[],"O":{"%":202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_51.w_0"],"DA":[],"O":{"%":203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_2"],"DA":[],"O":{"%":204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_1"],"DA":[],"O":{"%":205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.b_0"],"DA":[],"O":{"%":206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_50.w_0"],"DA":[],"O":{"%":207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_50.w_0"],"DA":[],"O":{"%":208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,2176,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_2"],"DA":[],"O":{"%":209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_1"],"DA":[],"O":{"%":210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.b_0"],"DA":[],"O":{"%":211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_49.w_0"],"DA":[],"O":{"%":212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_49.w_0"],"DA":[],"O":{"%":213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_2"],"DA":[],"O":{"%":214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_1"],"DA":[],"O":{"%":215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.b_0"],"DA":[],"O":{"%":216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_48.w_0"],"DA":[],"O":{"%":217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_48.w_0"],"DA":[],"O":{"%":218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_2"],"DA":[],"O":{"%":219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_1"],"DA":[],"O":{"%":220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.b_0"],"DA":[],"O":{"%":221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_47.w_0"],"DA":[],"O":{"%":222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_47.w_0"],"DA":[],"O":{"%":223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_2"],"DA":[],"O":{"%":224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_1"],"DA":[],"O":{"%":225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.b_0"],"DA":[],"O":{"%":226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_46.w_0"],"DA":[],"O":{"%":227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_46.w_0"],"DA":[],"O":{"%":228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_2"],"DA":[],"O":{"%":229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_1"],"DA":[],"O":{"%":230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.b_0"],"DA":[],"O":{"%":231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_45.w_0"],"DA":[],"O":{"%":232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_45.w_0"],"DA":[],"O":{"%":233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_2"],"DA":[],"O":{"%":234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_1"],"DA":[],"O":{"%":235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.b_0"],"DA":[],"O":{"%":236,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_44.w_0"],"DA":[],"O":{"%":237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_44.w_0"],"DA":[],"O":{"%":238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_2"],"DA":[],"O":{"%":239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_1"],"DA":[],"O":{"%":240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.b_0"],"DA":[],"O":{"%":241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_43.w_0"],"DA":[],"O":{"%":242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_43.w_0"],"DA":[],"O":{"%":243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_2"],"DA":[],"O":{"%":244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_1"],"DA":[],"O":{"%":245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.b_0"],"DA":[],"O":{"%":246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_42.w_0"],"DA":[],"O":{"%":247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_42.w_0"],"DA":[],"O":{"%":248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_2"],"DA":[],"O":{"%":249,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_1"],"DA":[],"O":{"%":250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.b_0"],"DA":[],"O":{"%":251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_41.w_0"],"DA":[],"O":{"%":252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_41.w_0"],"DA":[],"O":{"%":253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_2"],"DA":[],"O":{"%":254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_1"],"DA":[],"O":{"%":255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.b_0"],"DA":[],"O":{"%":256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_40.w_0"],"DA":[],"O":{"%":257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_40.w_0"],"DA":[],"O":{"%":258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_2"],"DA":[],"O":{"%":259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_1"],"DA":[],"O":{"%":260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.b_0"],"DA":[],"O":{"%":261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_39.w_0"],"DA":[],"O":{"%":262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_39.w_0"],"DA":[],"O":{"%":263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_2"],"DA":[],"O":{"%":264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_1"],"DA":[],"O":{"%":265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.b_0"],"DA":[],"O":{"%":266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_38.w_0"],"DA":[],"O":{"%":267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_38.w_0"],"DA":[],"O":{"%":268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1024,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_2"],"DA":[],"O":{"%":269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_1"],"DA":[],"O":{"%":270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.b_0"],"DA":[],"O":{"%":271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_37.w_0"],"DA":[],"O":{"%":272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_37.w_0"],"DA":[],"O":{"%":273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_2"],"DA":[],"O":{"%":274,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_1"],"DA":[],"O":{"%":275,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.b_0"],"DA":[],"O":{"%":276,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_36.w_0"],"DA":[],"O":{"%":277,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_36.w_0"],"DA":[],"O":{"%":278,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1664,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_2"],"DA":[],"O":{"%":279,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_1"],"DA":[],"O":{"%":280,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.b_0"],"DA":[],"O":{"%":281,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_35.w_0"],"DA":[],"O":{"%":282,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_35.w_0"],"DA":[],"O":{"%":283,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_2"],"DA":[],"O":{"%":284,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_1"],"DA":[],"O":{"%":285,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.b_0"],"DA":[],"O":{"%":286,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_34.w_0"],"DA":[],"O":{"%":287,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_34.w_0"],"DA":[],"O":{"%":288,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_2"],"DA":[],"O":{"%":289,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_1"],"DA":[],"O":{"%":290,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.b_0"],"DA":[],"O":{"%":291,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_33.w_0"],"DA":[],"O":{"%":292,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_33.w_0"],"DA":[],"O":{"%":293,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_2"],"DA":[],"O":{"%":294,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_1"],"DA":[],"O":{"%":295,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.b_0"],"DA":[],"O":{"%":296,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_32.w_0"],"DA":[],"O":{"%":297,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_32.w_0"],"DA":[],"O":{"%":298,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_2"],"DA":[],"O":{"%":299,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_1"],"DA":[],"O":{"%":300,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.b_0"],"DA":[],"O":{"%":301,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_31.w_0"],"DA":[],"O":{"%":302,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_31.w_0"],"DA":[],"O":{"%":303,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_2"],"DA":[],"O":{"%":304,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_1"],"DA":[],"O":{"%":305,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.b_0"],"DA":[],"O":{"%":306,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_30.w_0"],"DA":[],"O":{"%":307,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_30.w_0"],"DA":[],"O":{"%":308,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_2"],"DA":[],"O":{"%":309,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_1"],"DA":[],"O":{"%":310,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.b_0"],"DA":[],"O":{"%":311,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_29.w_0"],"DA":[],"O":{"%":312,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_29.w_0"],"DA":[],"O":{"%":313,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_2"],"DA":[],"O":{"%":314,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_1"],"DA":[],"O":{"%":315,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.b_0"],"DA":[],"O":{"%":316,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_28.w_0"],"DA":[],"O":{"%":317,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_28.w_0"],"DA":[],"O":{"%":318,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_2"],"DA":[],"O":{"%":319,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_1"],"DA":[],"O":{"%":320,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.b_0"],"DA":[],"O":{"%":321,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_27.w_0"],"DA":[],"O":{"%":322,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_27.w_0"],"DA":[],"O":{"%":323,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_2"],"DA":[],"O":{"%":324,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_1"],"DA":[],"O":{"%":325,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.b_0"],"DA":[],"O":{"%":326,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_26.w_0"],"DA":[],"O":{"%":327,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_26.w_0"],"DA":[],"O":{"%":328,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,192,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_2"],"DA":[],"O":{"%":329,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_1"],"DA":[],"O":{"%":330,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.b_0"],"DA":[],"O":{"%":331,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_25.w_0"],"DA":[],"O":{"%":332,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_25.w_0"],"DA":[],"O":{"%":333,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,1,5,5],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_2"],"DA":[],"O":{"%":334,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_1"],"DA":[],"O":{"%":335,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.b_0"],"DA":[],"O":{"%":336,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_24.w_0"],"DA":[],"O":{"%":337,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_24.w_0"],"DA":[],"O":{"%":338,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192,512,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_2"],"DA":[],"O":{"%":339,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_1"],"DA":[],"O":{"%":340,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.b_0"],"DA":[],"O":{"%":341,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_23.w_0"],"DA":[],"O":{"%":342,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_23.w_0"],"DA":[],"O":{"%":343,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_2"],"DA":[],"O":{"%":344,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_1"],"DA":[],"O":{"%":345,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.b_0"],"DA":[],"O":{"%":346,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_22.w_0"],"DA":[],"O":{"%":347,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_22.w_0"],"DA":[],"O":{"%":348,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512,256,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_2"],"DA":[],"O":{"%":349,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_1"],"DA":[],"O":{"%":350,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.b_0"],"DA":[],"O":{"%":351,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_21.w_0"],"DA":[],"O":{"%":352,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_21.w_0"],"DA":[],"O":{"%":353,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256,704,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_2"],"DA":[],"O":{"%":354,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_1"],"DA":[],"O":{"%":355,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.b_0"],"DA":[],"O":{"%":356,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_20.w_0"],"DA":[],"O":{"%":357,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_20.w_0"],"DA":[],"O":{"%":358,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_2"],"DA":[],"O":{"%":359,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_1"],"DA":[],"O":{"%":360,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.b_0"],"DA":[],"O":{"%":361,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_19.w_0"],"DA":[],"O":{"%":362,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_19.w_0"],"DA":[],"O":{"%":363,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_2"],"DA":[],"O":{"%":364,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_1"],"DA":[],"O":{"%":365,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.b_0"],"DA":[],"O":{"%":366,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_18.w_0"],"DA":[],"O":{"%":367,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_18.w_0"],"DA":[],"O":{"%":368,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_2"],"DA":[],"O":{"%":369,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_1"],"DA":[],"O":{"%":370,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.b_0"],"DA":[],"O":{"%":371,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_17.w_0"],"DA":[],"O":{"%":372,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_17.w_0"],"DA":[],"O":{"%":373,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_2"],"DA":[],"O":{"%":374,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_1"],"DA":[],"O":{"%":375,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.b_0"],"DA":[],"O":{"%":376,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_16.w_0"],"DA":[],"O":{"%":377,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_16.w_0"],"DA":[],"O":{"%":378,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,96,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_2"],"DA":[],"O":{"%":379,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_1"],"DA":[],"O":{"%":380,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.b_0"],"DA":[],"O":{"%":381,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_15.w_0"],"DA":[],"O":{"%":382,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_15.w_0"],"DA":[],"O":{"%":383,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96,128,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_2"],"DA":[],"O":{"%":384,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_1"],"DA":[],"O":{"%":385,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.b_0"],"DA":[],"O":{"%":386,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_14.w_0"],"DA":[],"O":{"%":387,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_14.w_0"],"DA":[],"O":{"%":388,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_2"],"DA":[],"O":{"%":389,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_1"],"DA":[],"O":{"%":390,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.b_0"],"DA":[],"O":{"%":391,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_13.w_0"],"DA":[],"O":{"%":392,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_13.w_0"],"DA":[],"O":{"%":393,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128,64,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_2"],"DA":[],"O":{"%":394,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_1"],"DA":[],"O":{"%":395,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.b_0"],"DA":[],"O":{"%":396,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_12.w_0"],"DA":[],"O":{"%":397,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_12.w_0"],"DA":[],"O":{"%":398,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64,336,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_2"],"DA":[],"O":{"%":399,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_1"],"DA":[],"O":{"%":400,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.b_0"],"DA":[],"O":{"%":401,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_11.w_0"],"DA":[],"O":{"%":402,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_11.w_0"],"DA":[],"O":{"%":403,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_2"],"DA":[],"O":{"%":404,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_1"],"DA":[],"O":{"%":405,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.b_0"],"DA":[],"O":{"%":406,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_10.w_0"],"DA":[],"O":{"%":407,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_10.w_0"],"DA":[],"O":{"%":408,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_2"],"DA":[],"O":{"%":409,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_1"],"DA":[],"O":{"%":410,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.b_0"],"DA":[],"O":{"%":411,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_9.w_0"],"DA":[],"O":{"%":412,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_9.w_0"],"DA":[],"O":{"%":413,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_2"],"DA":[],"O":{"%":414,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_1"],"DA":[],"O":{"%":415,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.b_0"],"DA":[],"O":{"%":416,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_8.w_0"],"DA":[],"O":{"%":417,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_8.w_0"],"DA":[],"O":{"%":418,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_2"],"DA":[],"O":{"%":419,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_1"],"DA":[],"O":{"%":420,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.b_0"],"DA":[],"O":{"%":421,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_7.w_0"],"DA":[],"O":{"%":422,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_7.w_0"],"DA":[],"O":{"%":423,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_2"],"DA":[],"O":{"%":424,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_1"],"DA":[],"O":{"%":425,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.b_0"],"DA":[],"O":{"%":426,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_6.w_0"],"DA":[],"O":{"%":427,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_6.w_0"],"DA":[],"O":{"%":428,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,48,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_2"],"DA":[],"O":{"%":429,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_1"],"DA":[],"O":{"%":430,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.b_0"],"DA":[],"O":{"%":431,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_5.w_0"],"DA":[],"O":{"%":432,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_5.w_0"],"DA":[],"O":{"%":433,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,1,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_2"],"DA":[],"O":{"%":434,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_1"],"DA":[],"O":{"%":435,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.b_0"],"DA":[],"O":{"%":436,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_4.w_0"],"DA":[],"O":{"%":437,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_4.w_0"],"DA":[],"O":{"%":438,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48,32,1,1],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_2"],"DA":[],"O":{"%":439,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_1"],"DA":[],"O":{"%":440,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.b_0"],"DA":[],"O":{"%":441,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_3.w_0"],"DA":[],"O":{"%":442,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_3.w_0"],"DA":[],"O":{"%":443,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,64,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_2"],"DA":[],"O":{"%":444,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_1"],"DA":[],"O":{"%":445,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.b_0"],"DA":[],"O":{"%":446,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_2.w_0"],"DA":[],"O":{"%":447,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_2.w_0"],"DA":[],"O":{"%":448,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,16,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_2"],"DA":[],"O":{"%":449,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_1"],"DA":[],"O":{"%":450,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.b_0"],"DA":[],"O":{"%":451,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_1.w_0"],"DA":[],"O":{"%":452,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_1.w_0"],"DA":[],"O":{"%":453,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16,32,2,2],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_2"],"DA":[],"O":{"%":454,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_1"],"DA":[],"O":{"%":455,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,1,0],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.b_0"],"DA":[],"O":{"%":456,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"batch_norm2d_0.w_0"],"DA":[],"O":{"%":457,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"p","A":[0,1,1,"conv2d_0.w_0"],"DA":[],"O":{"%":458,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32,3,3,3],"NCHW",[],0]}},"OA":[1,0,1],"QA":[]},{"#":"1.data","A":[{"AT":{"#":"0.a_str","D":"x"},"N":"name"},{"AT":{"#":"1.a_intarray","D":[-1,3,48,-1]},"N":"shape"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[0,0,""]},"N":"place"}],"I":[],"O":[{"%":459,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3,48,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":459},{"%":458}],"O":[{"%":460,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":460},{"%":455},{"%":454},{"%":457},{"%":456}],"O":[{"%":461,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}},{"%":462,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":463,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":464,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":465,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":466,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":461}],"O":[{"%":467,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":467},{"%":453}],"O":[{"%":468,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":468},{"%":450},{"%":449},{"%":452},{"%":451}],"O":[{"%":469,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,24,-1],"NCHW",[],0]}},{"%":470,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":471,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":472,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":473,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[16],"NCHW",[],0]}},{"%":474,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":469}],"O":[{"%":475,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,16,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":475},{"%":448}],"O":[{"%":476,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":476},{"%":445},{"%":444},{"%":447},{"%":446}],"O":[{"%":477,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}},{"%":478,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":479,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":480,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":481,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":482,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":477}],"O":[{"%":483,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2},{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/MaxPool2D/"},"N":"struct_name"}],"I":[],"O":[{"%":484,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":true},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"max"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":false},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"SAME"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/MaxPool2D/"},"N":"struct_name"}],"I":[{"%":467},{"%":484}],"O":[{"%":485,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[],"O":[{"%":486,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[{"%":485},{"%":483}],"O":[{"%":487,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/"},"N":"struct_name"}],"I":[{"%":487},{"%":486}],"O":[{"%":488,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":488},{"%":443}],"O":[{"%":489,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":489},{"%":440},{"%":439},{"%":442},{"%":441}],"O":[{"%":490,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}},{"%":491,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":492,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":493,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":494,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[32],"NCHW",[],0]}},{"%":495,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":490}],"O":[{"%":496,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,32,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":496},{"%":438}],"O":[{"%":497,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":497},{"%":435},{"%":434},{"%":437},{"%":436}],"O":[{"%":498,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,24,-1],"NCHW",[],0]}},{"%":499,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":500,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":501,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":502,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":503,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/StemBlock/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":498}],"O":[{"%":504,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,24,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":48},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":504},{"%":433}],"O":[{"%":505,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":505},{"%":430},{"%":429},{"%":432},{"%":431}],"O":[{"%":506,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":507,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":508,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":509,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":510,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":511,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":506},{"%":428}],"O":[{"%":512,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":512},{"%":425},{"%":424},{"%":427},{"%":426}],"O":[{"%":513,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":514,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":515,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":516,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":517,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":518,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":513}],"O":[{"%":519,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":519},{"%":423}],"O":[{"%":520,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":520},{"%":420},{"%":419},{"%":422},{"%":421}],"O":[{"%":521,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":522,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":523,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":524,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":525,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":526,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":521}],"O":[{"%":527,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":527},{"%":418}],"O":[{"%":528,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":528},{"%":415},{"%":414},{"%":417},{"%":416}],"O":[{"%":529,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":530,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":531,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":532,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":533,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":534,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":529}],"O":[{"%":535,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":535},{"%":413}],"O":[{"%":536,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":536},{"%":410},{"%":409},{"%":412},{"%":411}],"O":[{"%":537,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":538,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":539,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":540,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":541,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":542,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":537}],"O":[{"%":543,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":543},{"%":408}],"O":[{"%":544,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":544},{"%":405},{"%":404},{"%":407},{"%":406}],"O":[{"%":545,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":546,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":547,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":548,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":549,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":550,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":545}],"O":[{"%":551,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/Conv2D/"},"N":"struct_name"}],"I":[{"%":551},{"%":403}],"O":[{"%":552,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":552},{"%":400},{"%":399},{"%":402},{"%":401}],"O":[{"%":553,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}},{"%":554,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":555,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":556,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":557,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[48],"NCHW",[],0]}},{"%":558,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_5/ReLU/"},"N":"struct_name"}],"I":[{"%":553}],"O":[{"%":559,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":560,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":506},{"%":519},{"%":527},{"%":535},{"%":543},{"%":551},{"%":559}],"O":[{"%":561,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,48,12,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":561},{"%":560}],"O":[{"%":562,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,336,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/Conv2D/"},"N":"struct_name"}],"I":[{"%":562},{"%":398}],"O":[{"%":563,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":563},{"%":395},{"%":394},{"%":397},{"%":396}],"O":[{"%":564,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,12,-1],"NCHW",[],0]}},{"%":565,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":566,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":567,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":568,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[64],"NCHW",[],0]}},{"%":569,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_6/ReLU/"},"N":"struct_name"}],"I":[{"%":564}],"O":[{"%":570,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,64,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/Conv2D/"},"N":"struct_name"}],"I":[{"%":570},{"%":393}],"O":[{"%":571,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":571},{"%":390},{"%":389},{"%":392},{"%":391}],"O":[{"%":572,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}},{"%":573,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":574,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":575,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":576,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":577,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage/Sequential/HGV2_Block/ConvBNAct_7/ReLU/"},"N":"struct_name"}],"I":[{"%":572}],"O":[{"%":578,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":128},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":578},{"%":388}],"O":[{"%":579,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":579},{"%":385},{"%":384},{"%":387},{"%":386}],"O":[{"%":580,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]}},{"%":581,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":582,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":583,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":584,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[128],"NCHW",[],0]}},{"%":585,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":580},{"%":383}],"O":[{"%":586,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":586},{"%":380},{"%":379},{"%":382},{"%":381}],"O":[{"%":587,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":588,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":589,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":590,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":591,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":592,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":587}],"O":[{"%":593,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":593},{"%":378}],"O":[{"%":594,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":594},{"%":375},{"%":374},{"%":377},{"%":376}],"O":[{"%":595,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":596,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":597,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":598,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":599,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":600,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":595}],"O":[{"%":601,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":601},{"%":373}],"O":[{"%":602,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":602},{"%":370},{"%":369},{"%":372},{"%":371}],"O":[{"%":603,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":604,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":605,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":606,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":607,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":608,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_2/ReLU/"},"N":"struct_name"}],"I":[{"%":603}],"O":[{"%":609,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":609},{"%":368}],"O":[{"%":610,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":610},{"%":365},{"%":364},{"%":367},{"%":366}],"O":[{"%":611,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":612,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":613,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":614,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":615,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":616,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_3/ReLU/"},"N":"struct_name"}],"I":[{"%":611}],"O":[{"%":617,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":617},{"%":363}],"O":[{"%":618,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":618},{"%":360},{"%":359},{"%":362},{"%":361}],"O":[{"%":619,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":620,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":621,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":622,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":623,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":624,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_4/ReLU/"},"N":"struct_name"}],"I":[{"%":619}],"O":[{"%":625,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/Conv2D/"},"N":"struct_name"}],"I":[{"%":625},{"%":358}],"O":[{"%":626,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":626},{"%":355},{"%":354},{"%":357},{"%":356}],"O":[{"%":627,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}},{"%":628,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":629,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":630,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":631,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[96],"NCHW",[],0]}},{"%":632,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_5/ReLU/"},"N":"struct_name"}],"I":[{"%":627}],"O":[{"%":633,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":634,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":580},{"%":593},{"%":601},{"%":609},{"%":617},{"%":625},{"%":633}],"O":[{"%":635,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,128,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,96,12,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":635},{"%":634}],"O":[{"%":636,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,704,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/Conv2D/"},"N":"struct_name"}],"I":[{"%":636},{"%":353}],"O":[{"%":637,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":637},{"%":350},{"%":349},{"%":352},{"%":351}],"O":[{"%":638,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,12,-1],"NCHW",[],0]}},{"%":639,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":640,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":641,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":642,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":643,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_6/ReLU/"},"N":"struct_name"}],"I":[{"%":638}],"O":[{"%":644,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/Conv2D/"},"N":"struct_name"}],"I":[{"%":644},{"%":348}],"O":[{"%":645,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":645},{"%":345},{"%":344},{"%":347},{"%":346}],"O":[{"%":646,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,12,-1],"NCHW",[],0]}},{"%":647,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":648,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":649,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":650,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":651,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_1/Sequential/HGV2_Block/ConvBNAct_7/ReLU/"},"N":"struct_name"}],"I":[{"%":646}],"O":[{"%":652,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,12,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":512},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":652},{"%":343}],"O":[{"%":653,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":653},{"%":340},{"%":339},{"%":342},{"%":341}],"O":[{"%":654,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}},{"%":655,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":656,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":657,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":658,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":659,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":654},{"%":338}],"O":[{"%":660,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":660},{"%":335},{"%":334},{"%":337},{"%":336}],"O":[{"%":661,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":662,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":663,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":664,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":665,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":666,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":661},{"%":333}],"O":[{"%":667,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":667},{"%":330},{"%":329},{"%":332},{"%":331}],"O":[{"%":668,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":669,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":670,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":671,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":672,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":673,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":668}],"O":[{"%":674,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":674},{"%":328}],"O":[{"%":675,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":675},{"%":325},{"%":324},{"%":327},{"%":326}],"O":[{"%":676,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":677,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":678,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":679,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":680,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":681,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":676},{"%":323}],"O":[{"%":682,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":682},{"%":320},{"%":319},{"%":322},{"%":321}],"O":[{"%":683,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":684,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":685,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":686,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":687,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":688,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":683}],"O":[{"%":689,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":689},{"%":318}],"O":[{"%":690,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":690},{"%":315},{"%":314},{"%":317},{"%":316}],"O":[{"%":691,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":692,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":693,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":694,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":695,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":696,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":691},{"%":313}],"O":[{"%":697,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":697},{"%":310},{"%":309},{"%":312},{"%":311}],"O":[{"%":698,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":699,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":700,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":701,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":702,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":703,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":698}],"O":[{"%":704,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":704},{"%":308}],"O":[{"%":705,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":705},{"%":305},{"%":304},{"%":307},{"%":306}],"O":[{"%":706,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":707,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":708,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":709,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":710,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":711,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":706},{"%":303}],"O":[{"%":712,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":712},{"%":300},{"%":299},{"%":302},{"%":301}],"O":[{"%":713,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":714,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":715,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":716,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":717,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":718,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":713}],"O":[{"%":719,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":719},{"%":298}],"O":[{"%":720,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":720},{"%":295},{"%":294},{"%":297},{"%":296}],"O":[{"%":721,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":722,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":723,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":724,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":725,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":726,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":721},{"%":293}],"O":[{"%":727,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":727},{"%":290},{"%":289},{"%":292},{"%":291}],"O":[{"%":728,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":729,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":730,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":731,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":732,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":733,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":728}],"O":[{"%":734,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":734},{"%":288}],"O":[{"%":735,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":735},{"%":285},{"%":284},{"%":287},{"%":286}],"O":[{"%":736,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":737,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":738,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":739,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":740,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":741,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":736},{"%":283}],"O":[{"%":742,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":742},{"%":280},{"%":279},{"%":282},{"%":281}],"O":[{"%":743,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":744,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":745,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":746,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":747,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":748,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":743}],"O":[{"%":749,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":750,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":654},{"%":674},{"%":689},{"%":704},{"%":719},{"%":734},{"%":749}],"O":[{"%":751,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":751},{"%":750}],"O":[{"%":752,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1664,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":752},{"%":278}],"O":[{"%":753,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":753},{"%":275},{"%":274},{"%":277},{"%":276}],"O":[{"%":754,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}},{"%":755,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":756,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":757,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":758,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":759,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":754}],"O":[{"%":760,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":760},{"%":273}],"O":[{"%":761,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":761},{"%":270},{"%":269},{"%":272},{"%":271}],"O":[{"%":762,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}},{"%":763,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":764,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":765,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":766,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":767,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":762}],"O":[{"%":768,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":768},{"%":268}],"O":[{"%":769,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":769},{"%":265},{"%":264},{"%":267},{"%":266}],"O":[{"%":770,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":771,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":772,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":773,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":774,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":775,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":770},{"%":263}],"O":[{"%":776,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":776},{"%":260},{"%":259},{"%":262},{"%":261}],"O":[{"%":777,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":778,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":779,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":780,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":781,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":782,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":777}],"O":[{"%":783,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":783},{"%":258}],"O":[{"%":784,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":784},{"%":255},{"%":254},{"%":257},{"%":256}],"O":[{"%":785,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":786,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":787,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":788,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":789,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":790,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":785},{"%":253}],"O":[{"%":791,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":791},{"%":250},{"%":249},{"%":252},{"%":251}],"O":[{"%":792,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":793,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":794,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":795,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":796,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":797,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":792}],"O":[{"%":798,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":798},{"%":248}],"O":[{"%":799,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":799},{"%":245},{"%":244},{"%":247},{"%":246}],"O":[{"%":800,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":801,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":802,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":803,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":804,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":805,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":800},{"%":243}],"O":[{"%":806,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":806},{"%":240},{"%":239},{"%":242},{"%":241}],"O":[{"%":807,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":808,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":809,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":810,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":811,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":812,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":807}],"O":[{"%":813,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":813},{"%":238}],"O":[{"%":814,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":814},{"%":235},{"%":234},{"%":237},{"%":236}],"O":[{"%":815,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":816,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":817,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":818,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":819,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":820,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":815},{"%":233}],"O":[{"%":821,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":821},{"%":230},{"%":229},{"%":232},{"%":231}],"O":[{"%":822,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":823,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":824,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":825,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":826,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":827,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":822}],"O":[{"%":828,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":828},{"%":228}],"O":[{"%":829,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":829},{"%":225},{"%":224},{"%":227},{"%":226}],"O":[{"%":830,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":831,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":832,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":833,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":834,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":835,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":830},{"%":223}],"O":[{"%":836,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":836},{"%":220},{"%":219},{"%":222},{"%":221}],"O":[{"%":837,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":838,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":839,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":840,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":841,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":842,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":837}],"O":[{"%":843,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":843},{"%":218}],"O":[{"%":844,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":844},{"%":215},{"%":214},{"%":217},{"%":216}],"O":[{"%":845,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":846,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":847,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":848,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":849,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":850,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":845},{"%":213}],"O":[{"%":851,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":851},{"%":210},{"%":209},{"%":212},{"%":211}],"O":[{"%":852,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":853,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":854,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":855,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":856,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":857,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":852}],"O":[{"%":858,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[],"O":[{"%":859,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":768},{"%":783},{"%":798},{"%":813},{"%":828},{"%":843},{"%":858}],"O":[{"%":860,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":860},{"%":859}],"O":[{"%":861,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2176,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":861},{"%":208}],"O":[{"%":862,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":862},{"%":205},{"%":204},{"%":207},{"%":206}],"O":[{"%":863,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}},{"%":864,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":865,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":866,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":867,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":868,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":863}],"O":[{"%":869,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":869},{"%":203}],"O":[{"%":870,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":870},{"%":200},{"%":199},{"%":202},{"%":201}],"O":[{"%":871,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}},{"%":872,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":873,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":874,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":875,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":876,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":871}],"O":[{"%":877,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_1/"},"N":"struct_name"}],"I":[{"%":877},{"%":768}],"O":[{"%":878,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":878},{"%":198}],"O":[{"%":879,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":879},{"%":195},{"%":194},{"%":197},{"%":196}],"O":[{"%":880,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":881,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":882,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":883,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":884,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":885,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":880},{"%":193}],"O":[{"%":886,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":886},{"%":190},{"%":189},{"%":192},{"%":191}],"O":[{"%":887,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":888,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":889,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":890,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":891,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":892,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":887}],"O":[{"%":893,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":893},{"%":188}],"O":[{"%":894,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":894},{"%":185},{"%":184},{"%":187},{"%":186}],"O":[{"%":895,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":896,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":897,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":898,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":899,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":900,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":895},{"%":183}],"O":[{"%":901,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":901},{"%":180},{"%":179},{"%":182},{"%":181}],"O":[{"%":902,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":903,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":904,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":905,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":906,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":907,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":902}],"O":[{"%":908,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":908},{"%":178}],"O":[{"%":909,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":909},{"%":175},{"%":174},{"%":177},{"%":176}],"O":[{"%":910,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":911,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":912,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":913,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":914,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":915,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":910},{"%":173}],"O":[{"%":916,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":916},{"%":170},{"%":169},{"%":172},{"%":171}],"O":[{"%":917,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":918,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":919,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":920,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":921,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":922,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":917}],"O":[{"%":923,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":923},{"%":168}],"O":[{"%":924,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":924},{"%":165},{"%":164},{"%":167},{"%":166}],"O":[{"%":925,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":926,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":927,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":928,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":929,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":930,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":925},{"%":163}],"O":[{"%":931,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":931},{"%":160},{"%":159},{"%":162},{"%":161}],"O":[{"%":932,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":933,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":934,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":935,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":936,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":937,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":932}],"O":[{"%":938,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":938},{"%":158}],"O":[{"%":939,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":939},{"%":155},{"%":154},{"%":157},{"%":156}],"O":[{"%":940,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":941,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":942,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":943,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":944,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":945,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":940},{"%":153}],"O":[{"%":946,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":946},{"%":150},{"%":149},{"%":152},{"%":151}],"O":[{"%":947,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":948,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":949,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":950,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":951,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":952,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":947}],"O":[{"%":953,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":953},{"%":148}],"O":[{"%":954,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":954},{"%":145},{"%":144},{"%":147},{"%":146}],"O":[{"%":955,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":956,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":957,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":958,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":959,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":960,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":192},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":955},{"%":143}],"O":[{"%":961,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":961},{"%":140},{"%":139},{"%":142},{"%":141}],"O":[{"%":962,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}},{"%":963,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":964,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":965,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":966,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[192],"NCHW",[],0]}},{"%":967,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":962}],"O":[{"%":968,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[],"O":[{"%":969,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":878},{"%":893},{"%":908},{"%":923},{"%":938},{"%":953},{"%":968}],"O":[{"%":970,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,192,6,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":970},{"%":969}],"O":[{"%":971,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2176,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":971},{"%":138}],"O":[{"%":972,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":972},{"%":135},{"%":134},{"%":137},{"%":136}],"O":[{"%":973,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}},{"%":974,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":975,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":976,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":977,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[512],"NCHW",[],0]}},{"%":978,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":973}],"O":[{"%":979,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,512,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":979},{"%":133}],"O":[{"%":980,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":980},{"%":130},{"%":129},{"%":132},{"%":131}],"O":[{"%":981,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}},{"%":982,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":983,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":984,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":985,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":986,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":981}],"O":[{"%":987,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_2/Sequential/HGV2_Block_2/"},"N":"struct_name"}],"I":[{"%":987},{"%":878}],"O":[{"%":988,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,6,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":1024},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":988},{"%":128}],"O":[{"%":989,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":989},{"%":125},{"%":124},{"%":127},{"%":126}],"O":[{"%":990,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}},{"%":991,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":992,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":993,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":994,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":995,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":990},{"%":123}],"O":[{"%":996,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":996},{"%":120},{"%":119},{"%":122},{"%":121}],"O":[{"%":997,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":998,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":999,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1000,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1001,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1002,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":997},{"%":118}],"O":[{"%":1003,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1003},{"%":115},{"%":114},{"%":117},{"%":116}],"O":[{"%":1004,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1005,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1006,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1007,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1008,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1009,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1004}],"O":[{"%":1010,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1010},{"%":113}],"O":[{"%":1011,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1011},{"%":110},{"%":109},{"%":112},{"%":111}],"O":[{"%":1012,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1013,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1014,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1015,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1016,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1017,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1012},{"%":108}],"O":[{"%":1018,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1018},{"%":105},{"%":104},{"%":107},{"%":106}],"O":[{"%":1019,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1020,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1021,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1022,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1023,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1024,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_1/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1019}],"O":[{"%":1025,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1025},{"%":103}],"O":[{"%":1026,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1026},{"%":100},{"%":99},{"%":102},{"%":101}],"O":[{"%":1027,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1028,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1029,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1030,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1031,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1032,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1027},{"%":98}],"O":[{"%":1033,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1033},{"%":95},{"%":94},{"%":97},{"%":96}],"O":[{"%":1034,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1035,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1036,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1037,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1038,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1039,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_2/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1034}],"O":[{"%":1040,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1040},{"%":93}],"O":[{"%":1041,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1041},{"%":90},{"%":89},{"%":92},{"%":91}],"O":[{"%":1042,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1043,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1044,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1045,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1046,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1047,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1042},{"%":88}],"O":[{"%":1048,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1048},{"%":85},{"%":84},{"%":87},{"%":86}],"O":[{"%":1049,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1050,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1051,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1052,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1053,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1054,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_3/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1049}],"O":[{"%":1055,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1055},{"%":83}],"O":[{"%":1056,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1056},{"%":80},{"%":79},{"%":82},{"%":81}],"O":[{"%":1057,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1058,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1059,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1060,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1061,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1062,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1057},{"%":78}],"O":[{"%":1063,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1063},{"%":75},{"%":74},{"%":77},{"%":76}],"O":[{"%":1064,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1065,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1066,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1067,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1068,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1069,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_4/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1064}],"O":[{"%":1070,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1070},{"%":73}],"O":[{"%":1071,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1071},{"%":70},{"%":69},{"%":72},{"%":71}],"O":[{"%":1072,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1073,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1074,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1075,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1076,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1077,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.depthwise_conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":2}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_i32","D":384},"N":"groups"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1072},{"%":68}],"O":[{"%":1078,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1078},{"%":65},{"%":64},{"%":67},{"%":66}],"O":[{"%":1079,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}},{"%":1080,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1081,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1082,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1083,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[384],"NCHW",[],0]}},{"%":1084,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/LightConvBNAct_5/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1079}],"O":[{"%":1085,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[],"O":[{"%":1086,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":990},{"%":1010},{"%":1025},{"%":1040},{"%":1055},{"%":1070},{"%":1085}],"O":[{"%":1087,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,384,3,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/"},"N":"struct_name"}],"I":[{"%":1087},{"%":1086}],"O":[{"%":1088,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,3328,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/Conv2D/"},"N":"struct_name"}],"I":[{"%":1088},{"%":63}],"O":[{"%":1089,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1089},{"%":60},{"%":59},{"%":62},{"%":61}],"O":[{"%":1090,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}},{"%":1091,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1092,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1093,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1094,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1024],"NCHW",[],0]}},{"%":1095,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct/ReLU/"},"N":"struct_name"}],"I":[{"%":1090}],"O":[{"%":1096,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1024,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1096},{"%":58}],"O":[{"%":1097,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1097},{"%":55},{"%":54},{"%":57},{"%":56}],"O":[{"%":1098,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,3,-1],"NCHW",[],0]}},{"%":1099,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1100,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1101,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1102,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1103,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.relu","A":[{"AT":{"#":"0.a_str","D":"/PPHGNetV2/HGV2_Stage_3/Sequential/HGV2_Block/ConvBNAct_1/ReLU/"},"N":"struct_name"}],"I":[{"%":1098}],"O":[{"%":1104,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,3,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":3},{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/"},"N":"struct_name"}],"I":[],"O":[{"%":1105,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[2],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.pool2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":2}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_bool","D":false},"N":"ceil_mode"},{"AT":{"#":"0.a_bool","D":true},"N":"exclusive"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"avg"},"N":"pooling_type"},{"AT":{"#":"0.a_bool","D":false},"N":"global_pooling"},{"AT":{"#":"0.a_bool","D":false},"N":"adaptive"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_str","D":"/PPHGNetV2/"},"N":"struct_name"}],"I":[{"%":1104},{"%":1105}],"O":[{"%":1106,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.assign","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1106}],"O":[{"%":1107,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer/Conv2D/"},"N":"struct_name"}],"I":[{"%":1107},{"%":53}],"O":[{"%":1108,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1108},{"%":50},{"%":49},{"%":52},{"%":51}],"O":[{"%":1109,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}},{"%":1110,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1111,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1112,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1113,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1114,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer/Swish/"},"N":"struct_name"}],"I":[{"%":1109}],"O":[{"%":1115,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_1/Conv2D/"},"N":"struct_name"}],"I":[{"%":1115},{"%":48}],"O":[{"%":1116,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_1/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1116},{"%":45},{"%":44},{"%":47},{"%":46}],"O":[{"%":1117,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}},{"%":1118,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1119,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1120,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1121,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1122,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_1/Swish/"},"N":"struct_name"}],"I":[{"%":1117}],"O":[{"%":1123,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.shape64","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1123}],"O":[{"%":1124,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":3}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1125,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":4}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1126,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1124},{"%":1125},{"%":1126}],"O":[{"%":1127,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.flatten","A":[{"AT":{"#":"0.a_i32","D":2},"N":"start_axis"},{"AT":{"#":"0.a_i32","D":3},"N":"stop_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1123}],"O":[{"%":1128,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1128}],"O":[{"%":1129,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/LayerNorm/"},"N":"struct_name"}],"I":[{"%":1129},{"%":43},{"%":42}],"O":[{"%":1130,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1131,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1132,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Linear/"},"N":"struct_name"}],"I":[{"%":1130},{"%":41}],"O":[{"%":1133,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,360],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Linear/"},"N":"struct_name"}],"I":[{"%":1133},{"%":40}],"O":[{"%":1134,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,360],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":3},{"#":"0.a_i64","D":8},{"#":"0.a_i64","D":15}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1135,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[5],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1134},{"%":1135}],"O":[{"%":1136,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,3,8,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":4}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1136}],"O":[{"%":1137,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[3,-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1138,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1139,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1137},{"%":1138},{"%":1139}],"O":[{"%":1140,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.25819888710975647},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1141,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.scale","A":[{"AT":{"#":"0.a_f32","D":0.0},"N":"bias"},{"AT":{"#":"0.a_bool","D":true},"N":"bias_after_scale"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1140},{"%":1141}],"O":[{"%":1142,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1143,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1144,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1137},{"%":1143},{"%":1144}],"O":[{"%":1145,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1146,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":3}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1147,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1137},{"%":1146},{"%":1147}],"O":[{"%":1148,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":2}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1145}],"O":[{"%":1149,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,15,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1142},{"%":1149}],"O":[{"%":1150,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.softmax","A":[{"AT":{"#":"0.a_i32","D":-1},"N":"axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1150}],"O":[{"%":1151,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":1152,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Dropout/"},"N":"struct_name"}],"I":[{"%":1151},{"%":0},{"%":1152}],"O":[{"%":1153,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}},{"%":1154,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1153},{"%":1148}],"O":[{"%":1155,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":3}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1155}],"O":[{"%":1156,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,8,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":120}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1157,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[3],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/"},"N":"struct_name"}],"I":[{"%":1156},{"%":1157}],"O":[{"%":1158,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Linear_1/"},"N":"struct_name"}],"I":[{"%":1158},{"%":39}],"O":[{"%":1159,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Linear_1/"},"N":"struct_name"}],"I":[{"%":1159},{"%":38}],"O":[{"%":1160,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Dropout_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1161,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Attention/Dropout_1/"},"N":"struct_name"}],"I":[{"%":1160},{"%":0},{"%":1161}],"O":[{"%":1162,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1163,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/"},"N":"struct_name"}],"I":[{"%":1129},{"%":1162}],"O":[{"%":1164,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/LayerNorm_1/"},"N":"struct_name"}],"I":[{"%":1164},{"%":37},{"%":36}],"O":[{"%":1165,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1166,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1167,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Linear/"},"N":"struct_name"}],"I":[{"%":1165},{"%":35}],"O":[{"%":1168,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Linear/"},"N":"struct_name"}],"I":[{"%":1168},{"%":34}],"O":[{"%":1169,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Swish/"},"N":"struct_name"}],"I":[{"%":1169}],"O":[{"%":1170,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":1171,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Dropout/"},"N":"struct_name"}],"I":[{"%":1170},{"%":0},{"%":1171}],"O":[{"%":1172,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}},{"%":1173,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Linear_1/"},"N":"struct_name"}],"I":[{"%":1172},{"%":33}],"O":[{"%":1174,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Linear_1/"},"N":"struct_name"}],"I":[{"%":1174},{"%":32}],"O":[{"%":1175,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Dropout_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1176,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/Mlp/Dropout_1/"},"N":"struct_name"}],"I":[{"%":1175},{"%":0},{"%":1176}],"O":[{"%":1177,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1178,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block/"},"N":"struct_name"}],"I":[{"%":1164},{"%":1177}],"O":[{"%":1179,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/LayerNorm/"},"N":"struct_name"}],"I":[{"%":1179},{"%":31},{"%":30}],"O":[{"%":1180,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1181,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1182,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Linear/"},"N":"struct_name"}],"I":[{"%":1180},{"%":29}],"O":[{"%":1183,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,360],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Linear/"},"N":"struct_name"}],"I":[{"%":1183},{"%":28}],"O":[{"%":1184,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,360],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":3},{"#":"0.a_i64","D":8},{"#":"0.a_i64","D":15}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1185,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[5],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1184},{"%":1185}],"O":[{"%":1186,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,3,8,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":4}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1186}],"O":[{"%":1187,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[3,-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1188,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1189,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1187},{"%":1188},{"%":1189}],"O":[{"%":1190,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.25819888710975647},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1191,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.scale","A":[{"AT":{"#":"0.a_f32","D":0.0},"N":"bias"},{"AT":{"#":"0.a_bool","D":true},"N":"bias_after_scale"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1190},{"%":1191}],"O":[{"%":1192,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1193,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1194,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1187},{"%":1193},{"%":1194}],"O":[{"%":1195,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1196,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":3}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1197,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.slice","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"axes"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":1}]},"N":"infer_flags"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0}]},"N":"decrease_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1187},{"%":1196},{"%":1197}],"O":[{"%":1198,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":2}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1195}],"O":[{"%":1199,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,15,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1192},{"%":1199}],"O":[{"%":1200,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.softmax","A":[{"AT":{"#":"0.a_i32","D":-1},"N":"axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1200}],"O":[{"%":1201,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":1202,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Dropout/"},"N":"struct_name"}],"I":[{"%":1201},{"%":0},{"%":1202}],"O":[{"%":1203,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,-1],"NCHW",[],0]}},{"%":1204,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,8,-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1203},{"%":1198}],"O":[{"%":1205,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,8,-1,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":3}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1205}],"O":[{"%":1206,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,8,15],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":0},{"#":"0.a_i64","D":-1},{"#":"0.a_i64","D":120}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[],"O":[{"%":1207,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[3],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/"},"N":"struct_name"}],"I":[{"%":1206},{"%":1207}],"O":[{"%":1208,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Linear_1/"},"N":"struct_name"}],"I":[{"%":1208},{"%":27}],"O":[{"%":1209,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Linear_1/"},"N":"struct_name"}],"I":[{"%":1209},{"%":26}],"O":[{"%":1210,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Dropout_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1211,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Attention/Dropout_1/"},"N":"struct_name"}],"I":[{"%":1210},{"%":0},{"%":1211}],"O":[{"%":1212,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1213,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/"},"N":"struct_name"}],"I":[{"%":1179},{"%":1212}],"O":[{"%":1214,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/LayerNorm_1/"},"N":"struct_name"}],"I":[{"%":1214},{"%":25},{"%":24}],"O":[{"%":1215,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1216,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1217,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Linear/"},"N":"struct_name"}],"I":[{"%":1215},{"%":23}],"O":[{"%":1218,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Linear/"},"N":"struct_name"}],"I":[{"%":1218},{"%":22}],"O":[{"%":1219,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Swish/"},"N":"struct_name"}],"I":[{"%":1219}],"O":[{"%":1220,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Dropout/"},"N":"struct_name"}],"I":[],"O":[{"%":1221,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Dropout/"},"N":"struct_name"}],"I":[{"%":1220},{"%":0},{"%":1221}],"O":[{"%":1222,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,240],"NCHW",[],0]}},{"%":1223,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,240],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Linear_1/"},"N":"struct_name"}],"I":[{"%":1222},{"%":21}],"O":[{"%":1224,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Linear_1/"},"N":"struct_name"}],"I":[{"%":1224},{"%":20}],"O":[{"%":1225,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.10000000149011612},"N":"value"},{"AT":{"#":"1.a_dtype","D":"float32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Dropout_1/"},"N":"struct_name"}],"I":[],"O":[{"%":1226,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.dropout","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_str","D":"upscale_in_train"},"N":"mode"},{"AT":{"#":"0.a_i32","D":0},"N":"seed"},{"AT":{"#":"0.a_bool","D":false},"N":"fix_seed"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/Mlp/Dropout_1/"},"N":"struct_name"}],"I":[{"%":1225},{"%":0},{"%":1226}],"O":[{"%":1227,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1228,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/Block_1/"},"N":"struct_name"}],"I":[{"%":1214},{"%":1227}],"O":[{"%":1229,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.layer_norm","A":[{"AT":{"#":"0.a_f32","D":9.999999974752427e-07},"N":"epsilon"},{"AT":{"#":"0.a_i32","D":2},"N":"begin_norm_axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/LayerNorm/"},"N":"struct_name"}],"I":[{"%":1229},{"%":19},{"%":18}],"O":[{"%":1230,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}},{"%":1231,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}},{"%":1232,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[]},"N":"shape"},{"AT":{"#":"0.a_f64","D":0.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1233,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1234,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[]},"N":"shape"},{"AT":{"#":"0.a_f64","D":120.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1235,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1233},{"%":1234},{"%":1127},{"%":1235}],"O":[{"%":1236,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.stack","A":[{"AT":{"#":"0.a_i32","D":0},"N":"axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1236}],"O":[{"%":1237,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[4],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.reshape","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1230},{"%":1237}],"O":[{"%":1238,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":3},{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":2}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1238}],"O":[{"%":1239,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_2/Conv2D/"},"N":"struct_name"}],"I":[{"%":1239},{"%":17}],"O":[{"%":1240,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_2/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1240},{"%":14},{"%":13},{"%":16},{"%":15}],"O":[{"%":1241,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}},{"%":1242,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1243,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1244,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1245,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[2048],"NCHW",[],0]}},{"%":1246,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_2/Swish/"},"N":"struct_name"}],"I":[{"%":1241}],"O":[{"%":1247,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full","A":[{"AT":{"#":"1.a_intarray","D":[1]},"N":"shape"},{"AT":{"#":"0.a_f64","D":1.0},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int32"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[],"O":[{"%":1248,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i32"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"0.combine","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1107},{"%":1247}],"O":[{"%":1249,"TT":{"#":"0.t_vec","D":[{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]},{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,2048,1,-1],"NCHW",[],0]}]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.concat","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/"},"N":"struct_name"}],"I":[{"%":1249},{"%":1248}],"O":[{"%":1250,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,4096,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":1}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_3/Conv2D/"},"N":"struct_name"}],"I":[{"%":1250},{"%":12}],"O":[{"%":1251,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_3/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1251},{"%":9},{"%":8},{"%":11},{"%":10}],"O":[{"%":1252,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}},{"%":1253,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1254,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1255,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1256,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[256],"NCHW",[],0]}},{"%":1257,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_3/Swish/"},"N":"struct_name"}],"I":[{"%":1252}],"O":[{"%":1258,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,256,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.conv2d","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"strides"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":0}]},"N":"paddings"},{"AT":{"#":"0.a_str","D":"EXPLICIT"},"N":"padding_algorithm"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":1},{"#":"0.a_i32","D":1}]},"N":"dilations"},{"AT":{"#":"0.a_i32","D":1},"N":"groups"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_4/Conv2D/"},"N":"struct_name"}],"I":[{"%":1258},{"%":7}],"O":[{"%":1259,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.batch_norm_","A":[{"AT":{"#":"0.a_bool","D":true},"N":"is_test"},{"AT":{"#":"0.a_f32","D":0.8999999761581421},"N":"momentum"},{"AT":{"#":"0.a_f32","D":9.999999747378752e-06},"N":"epsilon"},{"AT":{"#":"0.a_str","D":"NCHW"},"N":"data_format"},{"AT":{"#":"0.a_bool","D":true},"N":"use_global_stats"},{"AT":{"#":"0.a_bool","D":false},"N":"trainable_statistics"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_4/BatchNorm2D/"},"N":"struct_name"}],"I":[{"%":1259},{"%":4},{"%":3},{"%":6},{"%":5}],"O":[{"%":1260,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}},{"%":1261,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1262,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1263,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1264,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[120],"NCHW",[],0]}},{"%":1265,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_ui8"},[-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false},{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.swish","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/EncoderWithSVTR/ConvBNLayer_4/Swish/"},"N":"struct_name"}],"I":[{"%":1260}],"O":[{"%":1266,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,1,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.full_int_array","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i64","D":2}]},"N":"value"},{"AT":{"#":"1.a_dtype","D":"int64"},"N":"dtype"},{"AT":{"#":"1.a_place","D":[1,0,""]},"N":"place"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/Im2Seq/"},"N":"struct_name"}],"I":[],"O":[{"%":1267,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_i64"},[1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"stop_gradient"}]},{"#":"1.squeeze","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/Im2Seq/"},"N":"struct_name"}],"I":[{"%":1266},{"%":1267}],"O":[{"%":1268,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,120,-1],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.transpose","A":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_i32","D":0},{"#":"0.a_i32","D":2},{"#":"0.a_i32","D":1}]},"N":"perm"},{"AT":{"#":"0.a_str","D":"/MultiHead/SequenceEncoder/Im2Seq/"},"N":"struct_name"}],"I":[{"%":1268}],"O":[{"%":1269,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,120],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.matmul","A":[{"AT":{"#":"0.a_bool","D":false},"N":"transpose_x"},{"AT":{"#":"0.a_bool","D":false},"N":"transpose_y"},{"AT":{"#":"0.a_str","D":"/MultiHead/CTCHead/Linear/"},"N":"struct_name"}],"I":[{"%":1269},{"%":2}],"O":[{"%":1270,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,18385],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.add","A":[{"AT":{"#":"0.a_str","D":"/MultiHead/CTCHead/Linear/"},"N":"struct_name"}],"I":[{"%":1270},{"%":1}],"O":[{"%":1271,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,18385],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.softmax","A":[{"AT":{"#":"0.a_i32","D":2},"N":"axis"},{"AT":{"#":"0.a_str","D":"/MultiHead/CTCHead/"},"N":"struct_name"}],"I":[{"%":1271}],"O":[{"%":1272,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,18385],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]},{"#":"1.fetch","A":[{"AT":{"#":"0.a_str","D":"fetch_name_0"},"N":"name"},{"AT":{"#":"0.a_i32","D":0},"N":"col"}],"I":[{"%":1272}],"O":[{"%":1273,"TT":{"#":"0.t_dtensor","D":[{"#":"0.t_f32"},[-1,-1,18385],"NCHW",[],0]}}],"OA":[{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":true}]},"N":"persistable"},{"AT":{"#":"0.a_array","D":[{"#":"0.a_bool","D":false}]},"N":"stop_gradient"}]}]}]}]}} \ No newline at end of file diff --git a/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.yml b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.yml new file mode 100644 index 0000000..f5156e7 --- /dev/null +++ b/vendor/paddleocr/official_models/PP-OCRv5_server_rec/inference.yml @@ -0,0 +1,18426 @@ +Global: + model_name: PP-OCRv5_server_rec +Hpi: + backend_configs: + paddle_infer: + trt_dynamic_shapes: &id001 + x: + - - 1 + - 3 + - 48 + - 160 + - - 1 + - 3 + - 48 + - 320 + - - 8 + - 3 + - 48 + - 3200 + tensorrt: + dynamic_shapes: *id001 +PreProcess: + transform_ops: + - DecodeImage: + channel_first: false + img_mode: BGR + - MultiLabelEncode: + gtc_encode: NRTRLabelEncode + - RecResizeImg: + image_shape: + - 3 + - 48 + - 320 + - KeepKeys: + keep_keys: + - image + - label_ctc + - label_gtc + - length + - valid_ratio +PostProcess: + name: CTCLabelDecode + character_dict: + -   + - 一 + - 乙 + - 二 + - 十 + - 丁 + - 厂 + - 七 + - 卜 + - 八 + - 人 + - 入 + - 儿 + - 匕 + - 几 + - 九 + - 刁 + - 了 + - 刀 + - 力 + - 乃 + - 又 + - 三 + - 干 + - 于 + - 亏 + - 工 + - 土 + - 士 + - 才 + - 下 + - 寸 + - 大 + - 丈 + - 与 + - 万 + - 上 + - 小 + - 口 + - 山 + - 巾 + - 千 + - 乞 + - 川 + - 亿 + - 个 + - 夕 + - 久 + - 么 + - 勺 + - 凡 + - 丸 + - 及 + - 广 + - 亡 + - 门 + - 丫 + - 义 + - 之 + - 尸 + - 己 + - 已 + - 巳 + - 弓 + - 子 + - 卫 + - 也 + - 女 + - 刃 + - 飞 + - 习 + - 叉 + - 马 + - 乡 + - 丰 + - 王 + - 开 + - 井 + - 天 + - 夫 + - 元 + - 无 + - 云 + - 专 + - 丐 + - 扎 + - 艺 + - 木 + - 五 + - 支 + - 厅 + - 不 + - 犬 + - 太 + - 区 + - 历 + - 歹 + - 友 + - 尤 + - 匹 + - 车 + - 巨 + - 牙 + - 屯 + - 戈 + - 比 + - 互 + - 切 + - 瓦 + - 止 + - 少 + - 曰 + - 日 + - 中 + - 贝 + - 冈 + - 内 + - 水 + - 见 + - 午 + - 牛 + - 手 + - 气 + - 毛 + - 壬 + - 升 + - 夭 + - 长 + - 仁 + - 什 + - 片 + - 仆 + - 化 + - 仇 + - 币 + - 仍 + - 仅 + - 斤 + - 爪 + - 反 + - 介 + - 父 + - 从 + - 仑 + - 今 + - 凶 + - 分 + - 乏 + - 公 + - 仓 + - 月 + - 氏 + - 勿 + - 欠 + - 风 + - 丹 + - 匀 + - 乌 + - 勾 + - 凤 + - 六 + - 文 + - 亢 + - 方 + - 火 + - 为 + - 斗 + - 忆 + - 计 + - 订 + - 户 + - 认 + - 冗 + - 讥 + - 心 + - 尺 + - 引 + - 丑 + - 巴 + - 孔 + - 队 + - 办 + - 以 + - 允 + - 予 + - 邓 + - 劝 + - 双 + - 书 + - 幻 + - 玉 + - 刊 + - 未 + - 末 + - 示 + - 击 + - 打 + - 巧 + - 正 + - 扑 + - 卉 + - 扒 + - 功 + - 扔 + - 去 + - 甘 + - 世 + - 艾 + - 古 + - 节 + - 本 + - 术 + - 可 + - 丙 + - 左 + - 厉 + - 石 + - 右 + - 布 + - 夯 + - 戊 + - 龙 + - 平 + - 灭 + - 轧 + - 东 + - 卡 + - 北 + - 占 + - 凸 + - 卢 + - 业 + - 旧 + - 帅 + - 归 + - 旦 + - 目 + - 且 + - 叶 + - 甲 + - 申 + - 叮 + - 电 + - 号 + - 田 + - 由 + - 只 + - 叭 + - 史 + - 央 + - 兄 + - 叽 + - 叼 + - 叫 + - 叩 + - 叨 + - 另 + - 叹 + - 冉 + - 皿 + - 凹 + - 囚 + - 四 + - 生 + - 矢 + - 失 + - 乍 + - 禾 + - 丘 + - 付 + - 仗 + - 代 + - 仙 + - 们 + - 仪 + - 白 + - 仔 + - 他 + - 斥 + - 瓜 + - 乎 + - 丛 + - 令 + - 用 + - 甩 + - 印 + - 尔 + - 乐 + - 句 + - 匆 + - 册 + - 卯 + - 犯 + - 外 + - 处 + - 冬 + - 鸟 + - 务 + - 包 + - 饥 + - 主 + - 市 + - 立 + - 冯 + - 玄 + - 闪 + - 兰 + - 半 + - 汁 + - 汇 + - 头 + - 汉 + - 宁 + - 穴 + - 它 + - 讨 + - 写 + - 让 + - 礼 + - 训 + - 议 + - 必 + - 讯 + - 记 + - 永 + - 司 + - 尼 + - 民 + - 弗 + - 弘 + - 出 + - 辽 + - 奶 + - 奴 + - 召 + - 加 + - 皮 + - 边 + - 孕 + - 发 + - 圣 + - 对 + - 台 + - 矛 + - 纠 + - 母 + - 幼 + - 丝 + - 邦 + - 式 + - 迂 + - 刑 + - 戎 + - 动 + - 扛 + - 寺 + - 吉 + - 扣 + - 考 + - 托 + - 老 + - 巩 + - 圾 + - 执 + - 扩 + - 扫 + - 地 + - 场 + - 扬 + - 耳 + - 芋 + - 共 + - 芒 + - 亚 + - 芝 + - 朽 + - 朴 + - 机 + - 权 + - 过 + - 臣 + - 吏 + - 再 + - 协 + - 西 + - 压 + - 厌 + - 戌 + - 在 + - 百 + - 有 + - 存 + - 而 + - 页 + - 匠 + - 夸 + - 夺 + - 灰 + - 达 + - 列 + - 死 + - 成 + - 夹 + - 夷 + - 轨 + - 邪 + - 尧 + - 划 + - 迈 + - 毕 + - 至 + - 此 + - 贞 + - 师 + - 尘 + - 尖 + - 劣 + - 光 + - 当 + - 早 + - 吁 + - 吐 + - 吓 + - 虫 + - 曲 + - 团 + - 吕 + - 同 + - 吊 + - 吃 + - 因 + - 吸 + - 吗 + - 吆 + - 屿 + - 屹 + - 岁 + - 帆 + - 回 + - 岂 + - 则 + - 刚 + - 网 + - 肉 + - 年 + - 朱 + - 先 + - 丢 + - 廷 + - 舌 + - 竹 + - 迁 + - 乔 + - 迄 + - 伟 + - 传 + - 乒 + - 乓 + - 休 + - 伍 + - 伏 + - 优 + - 臼 + - 伐 + - 延 + - 仲 + - 件 + - 任 + - 伤 + - 价 + - 伦 + - 份 + - 华 + - 仰 + - 仿 + - 伙 + - 伪 + - 自 + - 伊 + - 血 + - 向 + - 似 + - 后 + - 行 + - 舟 + - 全 + - 会 + - 杀 + - 合 + - 兆 + - 企 + - 众 + - 爷 + - 伞 + - 创 + - 肌 + - 肋 + - 朵 + - 杂 + - 危 + - 旬 + - 旨 + - 旭 + - 负 + - 匈 + - 名 + - 各 + - 多 + - 争 + - 色 + - 壮 + - 冲 + - 妆 + - 冰 + - 庄 + - 庆 + - 亦 + - 刘 + - 齐 + - 交 + - 衣 + - 次 + - 产 + - 决 + - 亥 + - 充 + - 妄 + - 闭 + - 问 + - 闯 + - 羊 + - 并 + - 关 + - 米 + - 灯 + - 州 + - 汗 + - 污 + - 江 + - 汛 + - 池 + - 汝 + - 汤 + - 忙 + - 兴 + - 宇 + - 守 + - 宅 + - 字 + - 安 + - 讲 + - 讳 + - 军 + - 讶 + - 许 + - 讹 + - 论 + - 讼 + - 农 + - 讽 + - 设 + - 访 + - 诀 + - 寻 + - 那 + - 迅 + - 尽 + - 导 + - 异 + - 弛 + - 孙 + - 阵 + - 阳 + - 收 + - 阶 + - 阴 + - 防 + - 奸 + - 如 + - 妇 + - 妃 + - 好 + - 她 + - 妈 + - 戏 + - 羽 + - 观 + - 欢 + - 买 + - 红 + - 驮 + - 纤 + - 驯 + - 约 + - 级 + - 纪 + - 驰 + - 纫 + - 巡 + - 寿 + - 弄 + - 麦 + - 玖 + - 玛 + - 形 + - 进 + - 戒 + - 吞 + - 远 + - 违 + - 韧 + - 运 + - 扶 + - 抚 + - 坛 + - 技 + - 坏 + - 抠 + - 扰 + - 扼 + - 拒 + - 找 + - 批 + - 址 + - 扯 + - 走 + - 抄 + - 贡 + - 汞 + - 坝 + - 攻 + - 赤 + - 折 + - 抓 + - 扳 + - 抡 + - 扮 + - 抢 + - 孝 + - 坎 + - 均 + - 抑 + - 抛 + - 投 + - 坟 + - 坑 + - 抗 + - 坊 + - 抖 + - 护 + - 壳 + - 志 + - 块 + - 扭 + - 声 + - 把 + - 报 + - 拟 + - 却 + - 抒 + - 劫 + - 芙 + - 芜 + - 苇 + - 芽 + - 花 + - 芹 + - 芥 + - 芬 + - 苍 + - 芳 + - 严 + - 芦 + - 芯 + - 劳 + - 克 + - 芭 + - 苏 + - 杆 + - 杠 + - 杜 + - 材 + - 村 + - 杖 + - 杏 + - 杉 + - 巫 + - 极 + - 李 + - 杨 + - 求 + - 甫 + - 匣 + - 更 + - 束 + - 吾 + - 豆 + - 两 + - 酉 + - 丽 + - 医 + - 辰 + - 励 + - 否 + - 还 + - 尬 + - 歼 + - 来 + - 连 + - 轩 + - 步 + - 卤 + - 坚 + - 肖 + - 旱 + - 盯 + - 呈 + - 时 + - 吴 + - 助 + - 县 + - 里 + - 呆 + - 吱 + - 吠 + - 呕 + - 园 + - 旷 + - 围 + - 呀 + - 吨 + - 足 + - 邮 + - 男 + - 困 + - 吵 + - 串 + - 员 + - 呐 + - 听 + - 吟 + - 吩 + - 呛 + - 吻 + - 吹 + - 呜 + - 吭 + - 吧 + - 邑 + - 吼 + - 囤 + - 别 + - 吮 + - 岖 + - 岗 + - 帐 + - 财 + - 针 + - 钉 + - 牡 + - 告 + - 我 + - 乱 + - 利 + - 秃 + - 秀 + - 私 + - 每 + - 兵 + - 估 + - 体 + - 何 + - 佐 + - 佑 + - 但 + - 伸 + - 佃 + - 作 + - 伯 + - 伶 + - 佣 + - 低 + - 你 + - 住 + - 位 + - 伴 + - 身 + - 皂 + - 伺 + - 佛 + - 囱 + - 近 + - 彻 + - 役 + - 返 + - 余 + - 希 + - 坐 + - 谷 + - 妥 + - 含 + - 邻 + - 岔 + - 肝 + - 肛 + - 肚 + - 肘 + - 肠 + - 龟 + - 甸 + - 免 + - 狂 + - 犹 + - 狈 + - 角 + - 删 + - 条 + - 彤 + - 卵 + - 灸 + - 岛 + - 刨 + - 迎 + - 饭 + - 饮 + - 系 + - 言 + - 冻 + - 状 + - 亩 + - 况 + - 床 + - 库 + - 庇 + - 疗 + - 吝 + - 应 + - 这 + - 冷 + - 庐 + - 序 + - 辛 + - 弃 + - 冶 + - 忘 + - 闰 + - 闲 + - 间 + - 闷 + - 判 + - 兑 + - 灶 + - 灿 + - 灼 + - 弟 + - 汪 + - 沐 + - 沛 + - 汰 + - 沥 + - 沙 + - 汽 + - 沃 + - 沦 + - 汹 + - 泛 + - 沧 + - 没 + - 沟 + - 沪 + - 沈 + - 沉 + - 沁 + - 怀 + - 忧 + - 忱 + - 快 + - 完 + - 宋 + - 宏 + - 牢 + - 究 + - 穷 + - 灾 + - 良 + - 证 + - 启 + - 评 + - 补 + - 初 + - 社 + - 祀 + - 识 + - 诈 + - 诉 + - 罕 + - 诊 + - 词 + - 译 + - 君 + - 灵 + - 即 + - 层 + - 屁 + - 尿 + - 尾 + - 迟 + - 局 + - 改 + - 张 + - 忌 + - 际 + - 陆 + - 阿 + - 陈 + - 阻 + - 附 + - 坠 + - 妓 + - 妙 + - 妖 + - 姊 + - 妨 + - 妒 + - 努 + - 忍 + - 劲 + - 矣 + - 鸡 + - 纬 + - 驱 + - 纯 + - 纱 + - 纲 + - 纳 + - 驳 + - 纵 + - 纷 + - 纸 + - 纹 + - 纺 + - 驴 + - 纽 + - 奉 + - 玩 + - 环 + - 武 + - 青 + - 责 + - 现 + - 玫 + - 表 + - 规 + - 抹 + - 卦 + - 坷 + - 坯 + - 拓 + - 拢 + - 拔 + - 坪 + - 拣 + - 坦 + - 担 + - 坤 + - 押 + - 抽 + - 拐 + - 拖 + - 者 + - 拍 + - 顶 + - 拆 + - 拎 + - 拥 + - 抵 + - 拘 + - 势 + - 抱 + - 拄 + - 垃 + - 拉 + - 拦 + - 幸 + - 拌 + - 拧 + - 拂 + - 拙 + - 招 + - 坡 + - 披 + - 拨 + - 择 + - 抬 + - 拇 + - 拗 + - 其 + - 取 + - 茉 + - 苦 + - 昔 + - 苛 + - 若 + - 茂 + - 苹 + - 苗 + - 英 + - 苟 + - 苑 + - 苞 + - 范 + - 直 + - 茁 + - 茄 + - 茎 + - 苔 + - 茅 + - 枉 + - 林 + - 枝 + - 杯 + - 枢 + - 柜 + - 枚 + - 析 + - 板 + - 松 + - 枪 + - 枫 + - 构 + - 杭 + - 杰 + - 述 + - 枕 + - 丧 + - 或 + - 画 + - 卧 + - 事 + - 刺 + - 枣 + - 雨 + - 卖 + - 郁 + - 矾 + - 矿 + - 码 + - 厕 + - 奈 + - 奔 + - 奇 + - 奋 + - 态 + - 欧 + - 殴 + - 垄 + - 妻 + - 轰 + - 顷 + - 转 + - 斩 + - 轮 + - 软 + - 到 + - 非 + - 叔 + - 歧 + - 肯 + - 齿 + - 些 + - 卓 + - 虎 + - 虏 + - 肾 + - 贤 + - 尚 + - 旺 + - 具 + - 味 + - 果 + - 昆 + - 国 + - 哎 + - 咕 + - 昌 + - 呵 + - 畅 + - 明 + - 易 + - 咙 + - 昂 + - 迪 + - 典 + - 固 + - 忠 + - 呻 + - 咒 + - 咋 + - 咐 + - 呼 + - 鸣 + - 咏 + - 呢 + - 咄 + - 咖 + - 岸 + - 岩 + - 帖 + - 罗 + - 帜 + - 帕 + - 岭 + - 凯 + - 败 + - 账 + - 贩 + - 贬 + - 购 + - 贮 + - 图 + - 钓 + - 制 + - 知 + - 迭 + - 氛 + - 垂 + - 牧 + - 物 + - 乖 + - 刮 + - 秆 + - 和 + - 季 + - 委 + - 秉 + - 佳 + - 侍 + - 岳 + - 供 + - 使 + - 例 + - 侠 + - 侥 + - 版 + - 侄 + - 侦 + - 侣 + - 侧 + - 凭 + - 侨 + - 佩 + - 货 + - 侈 + - 依 + - 卑 + - 的 + - 迫 + - 质 + - 欣 + - 征 + - 往 + - 爬 + - 彼 + - 径 + - 所 + - 舍 + - 金 + - 刹 + - 命 + - 肴 + - 斧 + - 爸 + - 采 + - 觅 + - 受 + - 乳 + - 贪 + - 念 + - 贫 + - 忿 + - 肤 + - 肺 + - 肢 + - 肿 + - 胀 + - 朋 + - 股 + - 肮 + - 肪 + - 肥 + - 服 + - 胁 + - 周 + - 昏 + - 鱼 + - 兔 + - 狐 + - 忽 + - 狗 + - 狞 + - 备 + - 饰 + - 饱 + - 饲 + - 变 + - 京 + - 享 + - 庞 + - 店 + - 夜 + - 庙 + - 府 + - 底 + - 疟 + - 疙 + - 疚 + - 剂 + - 卒 + - 郊 + - 庚 + - 废 + - 净 + - 盲 + - 放 + - 刻 + - 育 + - 氓 + - 闸 + - 闹 + - 郑 + - 券 + - 卷 + - 单 + - 炬 + - 炒 + - 炊 + - 炕 + - 炎 + - 炉 + - 沫 + - 浅 + - 法 + - 泄 + - 沽 + - 河 + - 沾 + - 泪 + - 沮 + - 油 + - 泊 + - 沿 + - 泡 + - 注 + - 泣 + - 泞 + - 泻 + - 泌 + - 泳 + - 泥 + - 沸 + - 沼 + - 波 + - 泼 + - 泽 + - 治 + - 怔 + - 怯 + - 怖 + - 性 + - 怕 + - 怜 + - 怪 + - 怡 + - 学 + - 宝 + - 宗 + - 定 + - 宠 + - 宜 + - 审 + - 宙 + - 官 + - 空 + - 帘 + - 宛 + - 实 + - 试 + - 郎 + - 诗 + - 肩 + - 房 + - 诚 + - 衬 + - 衫 + - 视 + - 祈 + - 话 + - 诞 + - 诡 + - 询 + - 该 + - 详 + - 建 + - 肃 + - 录 + - 隶 + - 帚 + - 屉 + - 居 + - 届 + - 刷 + - 屈 + - 弧 + - 弥 + - 弦 + - 承 + - 孟 + - 陋 + - 陌 + - 孤 + - 陕 + - 降 + - 函 + - 限 + - 妹 + - 姑 + - 姐 + - 姓 + - 妮 + - 始 + - 姆 + - 迢 + - 驾 + - 叁 + - 参 + - 艰 + - 线 + - 练 + - 组 + - 绅 + - 细 + - 驶 + - 织 + - 驹 + - 终 + - 驻 + - 绊 + - 驼 + - 绍 + - 绎 + - 经 + - 贯 + - 契 + - 贰 + - 奏 + - 春 + - 帮 + - 玷 + - 珍 + - 玲 + - 玻 + - 毒 + - 型 + - 拭 + - 挂 + - 封 + - 持 + - 拷 + - 拱 + - 项 + - 垮 + - 挎 + - 城 + - 挟 + - 挠 + - 政 + - 赴 + - 赵 + - 挡 + - 拽 + - 哉 + - 挺 + - 括 + - 垢 + - 拴 + - 拾 + - 挑 + - 垛 + - 指 + - 垫 + - 挣 + - 挤 + - 拼 + - 挖 + - 按 + - 挥 + - 挪 + - 拯 + - 某 + - 甚 + - 荆 + - 茸 + - 革 + - 茬 + - 荐 + - 巷 + - 带 + - 草 + - 茧 + - 茵 + - 茶 + - 荒 + - 茫 + - 荡 + - 荣 + - 荤 + - 荧 + - 故 + - 胡 + - 荫 + - 荔 + - 南 + - 药 + - 标 + - 栈 + - 柑 + - 枯 + - 柄 + - 栋 + - 相 + - 查 + - 柏 + - 栅 + - 柳 + - 柱 + - 柿 + - 栏 + - 柠 + - 树 + - 勃 + - 要 + - 柬 + - 咸 + - 威 + - 歪 + - 研 + - 砖 + - 厘 + - 厚 + - 砌 + - 砂 + - 泵 + - 砚 + - 砍 + - 面 + - 耐 + - 耍 + - 牵 + - 鸥 + - 残 + - 殃 + - 轴 + - 轻 + - 鸦 + - 皆 + - 韭 + - 背 + - 战 + - 点 + - 虐 + - 临 + - 览 + - 竖 + - 省 + - 削 + - 尝 + - 昧 + - 盹 + - 是 + - 盼 + - 眨 + - 哇 + - 哄 + - 哑 + - 显 + - 冒 + - 映 + - 星 + - 昨 + - 咧 + - 昭 + - 畏 + - 趴 + - 胃 + - 贵 + - 界 + - 虹 + - 虾 + - 蚁 + - 思 + - 蚂 + - 虽 + - 品 + - 咽 + - 骂 + - 勋 + - 哗 + - 咱 + - 响 + - 哈 + - 哆 + - 咬 + - 咳 + - 咪 + - 哪 + - 哟 + - 炭 + - 峡 + - 罚 + - 贱 + - 贴 + - 贻 + - 骨 + - 幽 + - 钙 + - 钝 + - 钞 + - 钟 + - 钢 + - 钠 + - 钥 + - 钦 + - 钧 + - 钩 + - 钮 + - 卸 + - 缸 + - 拜 + - 看 + - 矩 + - 毡 + - 氢 + - 怎 + - 牲 + - 选 + - 适 + - 秒 + - 香 + - 种 + - 秋 + - 科 + - 重 + - 复 + - 竿 + - 段 + - 便 + - 俩 + - 贷 + - 顺 + - 修 + - 俏 + - 保 + - 促 + - 俄 + - 俐 + - 侮 + - 俭 + - 俗 + - 俘 + - 信 + - 皇 + - 泉 + - 鬼 + - 侵 + - 禹 + - 侯 + - 追 + - 俊 + - 盾 + - 待 + - 徊 + - 衍 + - 律 + - 很 + - 须 + - 叙 + - 剑 + - 逃 + - 食 + - 盆 + - 胚 + - 胧 + - 胆 + - 胜 + - 胞 + - 胖 + - 脉 + - 胎 + - 勉 + - 狭 + - 狮 + - 独 + - 狰 + - 狡 + - 狱 + - 狠 + - 贸 + - 怨 + - 急 + - 饵 + - 饶 + - 蚀 + - 饺 + - 饼 + - 峦 + - 弯 + - 将 + - 奖 + - 哀 + - 亭 + - 亮 + - 度 + - 迹 + - 庭 + - 疮 + - 疯 + - 疫 + - 疤 + - 咨 + - 姿 + - 亲 + - 音 + - 帝 + - 施 + - 闺 + - 闻 + - 闽 + - 阀 + - 阁 + - 差 + - 养 + - 美 + - 姜 + - 叛 + - 送 + - 类 + - 迷 + - 籽 + - 娄 + - 前 + - 首 + - 逆 + - 兹 + - 总 + - 炼 + - 炸 + - 烁 + - 炮 + - 炫 + - 烂 + - 剃 + - 洼 + - 洁 + - 洪 + - 洒 + - 柒 + - 浇 + - 浊 + - 洞 + - 测 + - 洗 + - 活 + - 派 + - 洽 + - 染 + - 洛 + - 浏 + - 济 + - 洋 + - 洲 + - 浑 + - 浓 + - 津 + - 恃 + - 恒 + - 恢 + - 恍 + - 恬 + - 恤 + - 恰 + - 恼 + - 恨 + - 举 + - 觉 + - 宣 + - 宦 + - 室 + - 宫 + - 宪 + - 突 + - 穿 + - 窃 + - 客 + - 诫 + - 冠 + - 诬 + - 语 + - 扁 + - 袄 + - 祖 + - 神 + - 祝 + - 祠 + - 误 + - 诱 + - 诲 + - 说 + - 诵 + - 垦 + - 退 + - 既 + - 屋 + - 昼 + - 屏 + - 屎 + - 费 + - 陡 + - 逊 + - 眉 + - 孩 + - 陨 + - 除 + - 险 + - 院 + - 娃 + - 姥 + - 姨 + - 姻 + - 娇 + - 姚 + - 娜 + - 怒 + - 架 + - 贺 + - 盈 + - 勇 + - 怠 + - 癸 + - 蚤 + - 柔 + - 垒 + - 绑 + - 绒 + - 结 + - 绕 + - 骄 + - 绘 + - 给 + - 绚 + - 骆 + - 络 + - 绝 + - 绞 + - 骇 + - 统 + - 耕 + - 耘 + - 耗 + - 耙 + - 艳 + - 泰 + - 秦 + - 珠 + - 班 + - 素 + - 匿 + - 蚕 + - 顽 + - 盏 + - 匪 + - 捞 + - 栽 + - 捕 + - 埂 + - 捂 + - 振 + - 载 + - 赶 + - 起 + - 盐 + - 捎 + - 捍 + - 捏 + - 埋 + - 捉 + - 捆 + - 捐 + - 损 + - 袁 + - 捌 + - 都 + - 哲 + - 逝 + - 捡 + - 挫 + - 换 + - 挽 + - 挚 + - 热 + - 恐 + - 捣 + - 壶 + - 捅 + - 埃 + - 挨 + - 耻 + - 耿 + - 耽 + - 聂 + - 恭 + - 莽 + - 莱 + - 莲 + - 莫 + - 莉 + - 荷 + - 获 + - 晋 + - 恶 + - 莹 + - 莺 + - 真 + - 框 + - 梆 + - 桂 + - 桔 + - 栖 + - 档 + - 桐 + - 株 + - 桥 + - 桦 + - 栓 + - 桃 + - 格 + - 桩 + - 校 + - 核 + - 样 + - 根 + - 索 + - 哥 + - 速 + - 逗 + - 栗 + - 贾 + - 酌 + - 配 + - 翅 + - 辱 + - 唇 + - 夏 + - 砸 + - 砰 + - 砾 + - 础 + - 破 + - 原 + - 套 + - 逐 + - 烈 + - 殊 + - 殉 + - 顾 + - 轿 + - 较 + - 顿 + - 毙 + - 致 + - 柴 + - 桌 + - 虑 + - 监 + - 紧 + - 党 + - 逞 + - 晒 + - 眠 + - 晓 + - 哮 + - 唠 + - 鸭 + - 晃 + - 哺 + - 晌 + - 剔 + - 晕 + - 蚌 + - 畔 + - 蚣 + - 蚊 + - 蚪 + - 蚓 + - 哨 + - 哩 + - 圃 + - 哭 + - 哦 + - 恩 + - 鸯 + - 唤 + - 唁 + - 哼 + - 唧 + - 啊 + - 唉 + - 唆 + - 罢 + - 峭 + - 峨 + - 峰 + - 圆 + - 峻 + - 贼 + - 贿 + - 赂 + - 赃 + - 钱 + - 钳 + - 钻 + - 钾 + - 铁 + - 铃 + - 铅 + - 缺 + - 氧 + - 氨 + - 特 + - 牺 + - 造 + - 乘 + - 敌 + - 秤 + - 租 + - 积 + - 秧 + - 秩 + - 称 + - 秘 + - 透 + - 笔 + - 笑 + - 笋 + - 债 + - 借 + - 值 + - 倚 + - 俺 + - 倾 + - 倒 + - 倘 + - 俱 + - 倡 + - 候 + - 赁 + - 俯 + - 倍 + - 倦 + - 健 + - 臭 + - 射 + - 躬 + - 息 + - 倔 + - 徒 + - 徐 + - 殷 + - 舰 + - 舱 + - 般 + - 航 + - 途 + - 拿 + - 耸 + - 爹 + - 舀 + - 爱 + - 豺 + - 豹 + - 颁 + - 颂 + - 翁 + - 胰 + - 脆 + - 脂 + - 胸 + - 胳 + - 脏 + - 脐 + - 胶 + - 脑 + - 脓 + - 逛 + - 狸 + - 狼 + - 卿 + - 逢 + - 鸵 + - 留 + - 鸳 + - 皱 + - 饿 + - 馁 + - 凌 + - 凄 + - 恋 + - 桨 + - 浆 + - 衰 + - 衷 + - 高 + - 郭 + - 席 + - 准 + - 座 + - 症 + - 病 + - 疾 + - 斋 + - 疹 + - 疼 + - 疲 + - 脊 + - 效 + - 离 + - 紊 + - 唐 + - 瓷 + - 资 + - 凉 + - 站 + - 剖 + - 竞 + - 部 + - 旁 + - 旅 + - 畜 + - 阅 + - 羞 + - 羔 + - 瓶 + - 拳 + - 粉 + - 料 + - 益 + - 兼 + - 烤 + - 烘 + - 烦 + - 烧 + - 烛 + - 烟 + - 烙 + - 递 + - 涛 + - 浙 + - 涝 + - 浦 + - 酒 + - 涉 + - 消 + - 涡 + - 浩 + - 海 + - 涂 + - 浴 + - 浮 + - 涣 + - 涤 + - 流 + - 润 + - 涧 + - 涕 + - 浪 + - 浸 + - 涨 + - 烫 + - 涩 + - 涌 + - 悖 + - 悟 + - 悄 + - 悍 + - 悔 + - 悯 + - 悦 + - 害 + - 宽 + - 家 + - 宵 + - 宴 + - 宾 + - 窍 + - 窄 + - 容 + - 宰 + - 案 + - 请 + - 朗 + - 诸 + - 诺 + - 读 + - 扇 + - 诽 + - 袜 + - 袖 + - 袍 + - 被 + - 祥 + - 课 + - 冥 + - 谁 + - 调 + - 冤 + - 谅 + - 谆 + - 谈 + - 谊 + - 剥 + - 恳 + - 展 + - 剧 + - 屑 + - 弱 + - 陵 + - 祟 + - 陶 + - 陷 + - 陪 + - 娱 + - 娟 + - 恕 + - 娥 + - 娘 + - 通 + - 能 + - 难 + - 预 + - 桑 + - 绢 + - 绣 + - 验 + - 继 + - 骏 + - 球 + - 琐 + - 理 + - 琉 + - 琅 + - 捧 + - 堵 + - 措 + - 描 + - 域 + - 捺 + - 掩 + - 捷 + - 排 + - 焉 + - 掉 + - 捶 + - 赦 + - 堆 + - 推 + - 埠 + - 掀 + - 授 + - 捻 + - 教 + - 掏 + - 掐 + - 掠 + - 掂 + - 培 + - 接 + - 掷 + - 控 + - 探 + - 据 + - 掘 + - 掺 + - 职 + - 基 + - 聆 + - 勘 + - 聊 + - 娶 + - 著 + - 菱 + - 勒 + - 黄 + - 菲 + - 萌 + - 萝 + - 菌 + - 萎 + - 菜 + - 萄 + - 菊 + - 菩 + - 萍 + - 菠 + - 萤 + - 营 + - 乾 + - 萧 + - 萨 + - 菇 + - 械 + - 彬 + - 梦 + - 婪 + - 梗 + - 梧 + - 梢 + - 梅 + - 检 + - 梳 + - 梯 + - 桶 + - 梭 + - 救 + - 曹 + - 副 + - 票 + - 酝 + - 酗 + - 厢 + - 戚 + - 硅 + - 硕 + - 奢 + - 盔 + - 爽 + - 聋 + - 袭 + - 盛 + - 匾 + - 雪 + - 辅 + - 辆 + - 颅 + - 虚 + - 彪 + - 雀 + - 堂 + - 常 + - 眶 + - 匙 + - 晨 + - 睁 + - 眯 + - 眼 + - 悬 + - 野 + - 啪 + - 啦 + - 曼 + - 晦 + - 晚 + - 啄 + - 啡 + - 距 + - 趾 + - 啃 + - 跃 + - 略 + - 蚯 + - 蛀 + - 蛇 + - 唬 + - 累 + - 鄂 + - 唱 + - 患 + - 啰 + - 唾 + - 唯 + - 啤 + - 啥 + - 啸 + - 崖 + - 崎 + - 崭 + - 逻 + - 崔 + - 帷 + - 崩 + - 崇 + - 崛 + - 婴 + - 圈 + - 铐 + - 铛 + - 铝 + - 铜 + - 铭 + - 铲 + - 银 + - 矫 + - 甜 + - 秸 + - 梨 + - 犁 + - 秽 + - 移 + - 笨 + - 笼 + - 笛 + - 笙 + - 符 + - 第 + - 敏 + - 做 + - 袋 + - 悠 + - 偿 + - 偶 + - 偎 + - 偷 + - 您 + - 售 + - 停 + - 偏 + - 躯 + - 兜 + - 假 + - 衅 + - 徘 + - 徙 + - 得 + - 衔 + - 盘 + - 舶 + - 船 + - 舵 + - 斜 + - 盒 + - 鸽 + - 敛 + - 悉 + - 欲 + - 彩 + - 领 + - 脚 + - 脖 + - 脯 + - 豚 + - 脸 + - 脱 + - 象 + - 够 + - 逸 + - 猜 + - 猪 + - 猎 + - 猫 + - 凰 + - 猖 + - 猛 + - 祭 + - 馅 + - 馆 + - 凑 + - 减 + - 毫 + - 烹 + - 庶 + - 麻 + - 庵 + - 痊 + - 痒 + - 痕 + - 廊 + - 康 + - 庸 + - 鹿 + - 盗 + - 章 + - 竟 + - 商 + - 族 + - 旋 + - 望 + - 率 + - 阎 + - 阐 + - 着 + - 羚 + - 盖 + - 眷 + - 粘 + - 粗 + - 粒 + - 断 + - 剪 + - 兽 + - 焊 + - 焕 + - 清 + - 添 + - 鸿 + - 淋 + - 涯 + - 淹 + - 渠 + - 渐 + - 淑 + - 淌 + - 混 + - 淮 + - 淆 + - 渊 + - 淫 + - 渔 + - 淘 + - 淳 + - 液 + - 淤 + - 淡 + - 淀 + - 深 + - 涮 + - 涵 + - 婆 + - 梁 + - 渗 + - 情 + - 惜 + - 惭 + - 悼 + - 惧 + - 惕 + - 惟 + - 惊 + - 惦 + - 悴 + - 惋 + - 惨 + - 惯 + - 寇 + - 寅 + - 寄 + - 寂 + - 宿 + - 窒 + - 窑 + - 密 + - 谋 + - 谍 + - 谎 + - 谐 + - 袱 + - 祷 + - 祸 + - 谓 + - 谚 + - 谜 + - 逮 + - 敢 + - 尉 + - 屠 + - 弹 + - 隋 + - 堕 + - 随 + - 蛋 + - 隅 + - 隆 + - 隐 + - 婚 + - 婶 + - 婉 + - 颇 + - 颈 + - 绩 + - 绪 + - 续 + - 骑 + - 绰 + - 绳 + - 维 + - 绵 + - 绷 + - 绸 + - 综 + - 绽 + - 绿 + - 缀 + - 巢 + - 琴 + - 琳 + - 琢 + - 琼 + - 斑 + - 替 + - 揍 + - 款 + - 堪 + - 塔 + - 搭 + - 堰 + - 揩 + - 越 + - 趁 + - 趋 + - 超 + - 揽 + - 堤 + - 提 + - 博 + - 揭 + - 喜 + - 彭 + - 揣 + - 插 + - 揪 + - 搜 + - 煮 + - 援 + - 搀 + - 裁 + - 搁 + - 搓 + - 搂 + - 搅 + - 壹 + - 握 + - 搔 + - 揉 + - 斯 + - 期 + - 欺 + - 联 + - 葫 + - 散 + - 惹 + - 葬 + - 募 + - 葛 + - 董 + - 葡 + - 敬 + - 葱 + - 蒋 + - 蒂 + - 落 + - 韩 + - 朝 + - 辜 + - 葵 + - 棒 + - 棱 + - 棋 + - 椰 + - 植 + - 森 + - 焚 + - 椅 + - 椒 + - 棵 + - 棍 + - 椎 + - 棉 + - 棚 + - 棕 + - 棺 + - 榔 + - 椭 + - 惠 + - 惑 + - 逼 + - 粟 + - 棘 + - 酣 + - 酥 + - 厨 + - 厦 + - 硬 + - 硝 + - 确 + - 硫 + - 雁 + - 殖 + - 裂 + - 雄 + - 颊 + - 雳 + - 暂 + - 雅 + - 翘 + - 辈 + - 悲 + - 紫 + - 凿 + - 辉 + - 敞 + - 棠 + - 赏 + - 掌 + - 晴 + - 睐 + - 暑 + - 最 + - 晰 + - 量 + - 鼎 + - 喷 + - 喳 + - 晶 + - 喇 + - 遇 + - 喊 + - 遏 + - 晾 + - 景 + - 畴 + - 践 + - 跋 + - 跌 + - 跑 + - 跛 + - 遗 + - 蛙 + - 蛛 + - 蜓 + - 蜒 + - 蛤 + - 喝 + - 鹃 + - 喂 + - 喘 + - 喉 + - 喻 + - 啼 + - 喧 + - 嵌 + - 幅 + - 帽 + - 赋 + - 赌 + - 赎 + - 赐 + - 赔 + - 黑 + - 铸 + - 铺 + - 链 + - 销 + - 锁 + - 锄 + - 锅 + - 锈 + - 锋 + - 锌 + - 锐 + - 甥 + - 掰 + - 短 + - 智 + - 氮 + - 毯 + - 氯 + - 鹅 + - 剩 + - 稍 + - 程 + - 稀 + - 税 + - 筐 + - 等 + - 筑 + - 策 + - 筛 + - 筒 + - 筏 + - 答 + - 筋 + - 筝 + - 傲 + - 傅 + - 牌 + - 堡 + - 集 + - 焦 + - 傍 + - 储 + - 皓 + - 皖 + - 粤 + - 奥 + - 街 + - 惩 + - 御 + - 循 + - 艇 + - 舒 + - 逾 + - 番 + - 释 + - 禽 + - 腊 + - 脾 + - 腋 + - 腔 + - 腕 + - 鲁 + - 猩 + - 猬 + - 猾 + - 猴 + - 惫 + - 然 + - 馈 + - 馋 + - 装 + - 蛮 + - 就 + - 敦 + - 斌 + - 痘 + - 痢 + - 痪 + - 痛 + - 童 + - 竣 + - 阔 + - 善 + - 翔 + - 羡 + - 普 + - 粪 + - 尊 + - 奠 + - 道 + - 遂 + - 曾 + - 焰 + - 港 + - 滞 + - 湖 + - 湘 + - 渣 + - 渤 + - 渺 + - 湿 + - 温 + - 渴 + - 溃 + - 溅 + - 滑 + - 湃 + - 渝 + - 湾 + - 渡 + - 游 + - 滋 + - 渲 + - 溉 + - 愤 + - 慌 + - 惰 + - 愕 + - 愣 + - 惶 + - 愧 + - 愉 + - 慨 + - 割 + - 寒 + - 富 + - 寓 + - 窜 + - 窝 + - 窖 + - 窗 + - 窘 + - 遍 + - 雇 + - 裕 + - 裤 + - 裙 + - 禅 + - 禄 + - 谢 + - 谣 + - 谤 + - 谦 + - 犀 + - 属 + - 屡 + - 强 + - 粥 + - 疏 + - 隔 + - 隙 + - 隘 + - 媒 + - 絮 + - 嫂 + - 媚 + - 婿 + - 登 + - 缅 + - 缆 + - 缉 + - 缎 + - 缓 + - 缔 + - 缕 + - 骗 + - 编 + - 骚 + - 缘 + - 瑟 + - 鹉 + - 瑞 + - 瑰 + - 瑙 + - 魂 + - 肆 + - 摄 + - 摸 + - 填 + - 搏 + - 塌 + - 鼓 + - 摆 + - 携 + - 搬 + - 摇 + - 搞 + - 塘 + - 摊 + - 聘 + - 斟 + - 蒜 + - 勤 + - 靴 + - 靶 + - 鹊 + - 蓝 + - 墓 + - 幕 + - 蓬 + - 蓄 + - 蒲 + - 蓉 + - 蒙 + - 蒸 + - 献 + - 椿 + - 禁 + - 楚 + - 楷 + - 榄 + - 想 + - 槐 + - 榆 + - 楼 + - 概 + - 赖 + - 酪 + - 酬 + - 感 + - 碍 + - 碘 + - 碑 + - 碎 + - 碰 + - 碗 + - 碌 + - 尴 + - 雷 + - 零 + - 雾 + - 雹 + - 辐 + - 辑 + - 输 + - 督 + - 频 + - 龄 + - 鉴 + - 睛 + - 睹 + - 睦 + - 瞄 + - 睫 + - 睡 + - 睬 + - 嗜 + - 鄙 + - 嗦 + - 愚 + - 暖 + - 盟 + - 歇 + - 暗 + - 暇 + - 照 + - 畸 + - 跨 + - 跷 + - 跳 + - 跺 + - 跪 + - 路 + - 跤 + - 跟 + - 遣 + - 蜈 + - 蜗 + - 蛾 + - 蜂 + - 蜕 + - 嗅 + - 嗡 + - 嗓 + - 署 + - 置 + - 罪 + - 罩 + - 蜀 + - 幌 + - 错 + - 锚 + - 锡 + - 锣 + - 锤 + - 锥 + - 锦 + - 键 + - 锯 + - 锰 + - 矮 + - 辞 + - 稚 + - 稠 + - 颓 + - 愁 + - 筹 + - 签 + - 简 + - 筷 + - 毁 + - 舅 + - 鼠 + - 催 + - 傻 + - 像 + - 躲 + - 魁 + - 衙 + - 微 + - 愈 + - 遥 + - 腻 + - 腰 + - 腥 + - 腮 + - 腹 + - 腺 + - 鹏 + - 腾 + - 腿 + - 鲍 + - 猿 + - 颖 + - 触 + - 解 + - 煞 + - 雏 + - 馍 + - 馏 + - 酱 + - 禀 + - 痹 + - 廓 + - 痴 + - 痰 + - 廉 + - 靖 + - 新 + - 韵 + - 意 + - 誊 + - 粮 + - 数 + - 煎 + - 塑 + - 慈 + - 煤 + - 煌 + - 满 + - 漠 + - 滇 + - 源 + - 滤 + - 滥 + - 滔 + - 溪 + - 溜 + - 漓 + - 滚 + - 溢 + - 溯 + - 滨 + - 溶 + - 溺 + - 粱 + - 滩 + - 慎 + - 誉 + - 塞 + - 寞 + - 窥 + - 窟 + - 寝 + - 谨 + - 褂 + - 裸 + - 福 + - 谬 + - 群 + - 殿 + - 辟 + - 障 + - 媳 + - 嫉 + - 嫌 + - 嫁 + - 叠 + - 缚 + - 缝 + - 缠 + - 缤 + - 剿 + - 静 + - 碧 + - 璃 + - 赘 + - 熬 + - 墙 + - 墟 + - 嘉 + - 摧 + - 赫 + - 截 + - 誓 + - 境 + - 摘 + - 摔 + - 撇 + - 聚 + - 慕 + - 暮 + - 摹 + - 蔓 + - 蔑 + - 蔡 + - 蔗 + - 蔽 + - 蔼 + - 熙 + - 蔚 + - 兢 + - 模 + - 槛 + - 榴 + - 榜 + - 榨 + - 榕 + - 歌 + - 遭 + - 酵 + - 酷 + - 酿 + - 酸 + - 碟 + - 碱 + - 碳 + - 磁 + - 愿 + - 需 + - 辖 + - 辗 + - 雌 + - 裳 + - 颗 + - 瞅 + - 墅 + - 嗽 + - 踊 + - 蜻 + - 蜡 + - 蝇 + - 蜘 + - 蝉 + - 嘛 + - 嘀 + - 赚 + - 锹 + - 锻 + - 镀 + - 舞 + - 舔 + - 稳 + - 熏 + - 箕 + - 算 + - 箩 + - 管 + - 箫 + - 舆 + - 僚 + - 僧 + - 鼻 + - 魄 + - 魅 + - 貌 + - 膜 + - 膊 + - 膀 + - 鲜 + - 疑 + - 孵 + - 馒 + - 裹 + - 敲 + - 豪 + - 膏 + - 遮 + - 腐 + - 瘩 + - 瘟 + - 瘦 + - 辣 + - 彰 + - 竭 + - 端 + - 旗 + - 精 + - 粹 + - 歉 + - 弊 + - 熄 + - 熔 + - 煽 + - 潇 + - 漆 + - 漱 + - 漂 + - 漫 + - 滴 + - 漾 + - 演 + - 漏 + - 慢 + - 慷 + - 寨 + - 赛 + - 寡 + - 察 + - 蜜 + - 寥 + - 谭 + - 肇 + - 褐 + - 褪 + - 谱 + - 隧 + - 嫩 + - 翠 + - 熊 + - 凳 + - 骡 + - 缩 + - 慧 + - 撵 + - 撕 + - 撒 + - 撩 + - 趣 + - 趟 + - 撑 + - 撮 + - 撬 + - 播 + - 擒 + - 墩 + - 撞 + - 撤 + - 增 + - 撰 + - 聪 + - 鞋 + - 鞍 + - 蕉 + - 蕊 + - 蔬 + - 蕴 + - 横 + - 槽 + - 樱 + - 橡 + - 樟 + - 橄 + - 敷 + - 豌 + - 飘 + - 醋 + - 醇 + - 醉 + - 磕 + - 磊 + - 磅 + - 碾 + - 震 + - 霄 + - 霉 + - 瞒 + - 题 + - 暴 + - 瞎 + - 嘻 + - 嘶 + - 嘲 + - 嘹 + - 影 + - 踢 + - 踏 + - 踩 + - 踪 + - 蝶 + - 蝴 + - 蝠 + - 蝎 + - 蝌 + - 蝗 + - 蝙 + - 嘿 + - 嘱 + - 幢 + - 墨 + - 镇 + - 镐 + - 镑 + - 靠 + - 稽 + - 稻 + - 黎 + - 稿 + - 稼 + - 箱 + - 篓 + - 箭 + - 篇 + - 僵 + - 躺 + - 僻 + - 德 + - 艘 + - 膝 + - 膛 + - 鲤 + - 鲫 + - 熟 + - 摩 + - 褒 + - 瘪 + - 瘤 + - 瘫 + - 凛 + - 颜 + - 毅 + - 糊 + - 遵 + - 憋 + - 潜 + - 澎 + - 潮 + - 潭 + - 鲨 + - 澳 + - 潘 + - 澈 + - 澜 + - 澄 + - 懂 + - 憔 + - 懊 + - 憎 + - 额 + - 翩 + - 褥 + - 谴 + - 鹤 + - 憨 + - 慰 + - 劈 + - 履 + - 豫 + - 缭 + - 撼 + - 擂 + - 操 + - 擅 + - 燕 + - 蕾 + - 薯 + - 薛 + - 薇 + - 擎 + - 薪 + - 薄 + - 颠 + - 翰 + - 噩 + - 橱 + - 橙 + - 橘 + - 整 + - 融 + - 瓢 + - 醒 + - 霍 + - 霎 + - 辙 + - 冀 + - 餐 + - 嘴 + - 踱 + - 蹄 + - 蹂 + - 蟆 + - 螃 + - 器 + - 噪 + - 鹦 + - 赠 + - 默 + - 黔 + - 镜 + - 赞 + - 穆 + - 篮 + - 篡 + - 篷 + - 篱 + - 儒 + - 邀 + - 衡 + - 膨 + - 雕 + - 鲸 + - 磨 + - 瘾 + - 瘸 + - 凝 + - 辨 + - 辩 + - 糙 + - 糖 + - 糕 + - 燃 + - 濒 + - 澡 + - 激 + - 懒 + - 憾 + - 懈 + - 窿 + - 壁 + - 避 + - 缰 + - 缴 + - 戴 + - 擦 + - 藉 + - 鞠 + - 藏 + - 藐 + - 檬 + - 檐 + - 檀 + - 礁 + - 磷 + - 霜 + - 霞 + - 瞭 + - 瞧 + - 瞬 + - 瞳 + - 瞩 + - 瞪 + - 曙 + - 蹋 + - 蹈 + - 螺 + - 蟋 + - 蟀 + - 嚎 + - 赡 + - 穗 + - 魏 + - 簧 + - 簇 + - 繁 + - 徽 + - 爵 + - 朦 + - 臊 + - 鳄 + - 癌 + - 辫 + - 赢 + - 糟 + - 糠 + - 燥 + - 懦 + - 豁 + - 臀 + - 臂 + - 翼 + - 骤 + - 藕 + - 鞭 + - 藤 + - 覆 + - 瞻 + - 蹦 + - 嚣 + - 镰 + - 翻 + - 鳍 + - 鹰 + - 瀑 + - 襟 + - 璧 + - 戳 + - 孽 + - 警 + - 蘑 + - 藻 + - 攀 + - 曝 + - 蹲 + - 蹭 + - 蹬 + - 巅 + - 簸 + - 簿 + - 蟹 + - 颤 + - 靡 + - 癣 + - 瓣 + - 羹 + - 鳖 + - 爆 + - 疆 + - 鬓 + - 壤 + - 馨 + - 耀 + - 躁 + - 蠕 + - 嚼 + - 嚷 + - 巍 + - 籍 + - 鳞 + - 魔 + - 糯 + - 灌 + - 譬 + - 蠢 + - 霸 + - 露 + - 霹 + - 躏 + - 黯 + - 髓 + - 赣 + - 囊 + - 镶 + - 瓤 + - 罐 + - 矗 + - 乂 + - 乜 + - 兀 + - 弋 + - 孑 + - 孓 + - 幺 + - 亓 + - 韦 + - 廿 + - 丏 + - 卅 + - 仄 + - 厄 + - 仃 + - 仉 + - 仂 + - 兮 + - 刈 + - 爻 + - 卞 + - 闩 + - 讣 + - 尹 + - 夬 + - 爿 + - 毋 + - 邗 + - 邛 + - 艽 + - 艿 + - 札 + - 叵 + - 匝 + - 丕 + - 匜 + - 劢 + - 卟 + - 叱 + - 叻 + - 仨 + - 仕 + - 仟 + - 仡 + - 仫 + - 仞 + - 卮 + - 氐 + - 犰 + - 刍 + - 邝 + - 邙 + - 汀 + - 讦 + - 讧 + - 讪 + - 讫 + - 尻 + - 阡 + - 尕 + - 弁 + - 驭 + - 匡 + - 耒 + - 玎 + - 玑 + - 邢 + - 圩 + - 圬 + - 圭 + - 扦 + - 圪 + - 圳 + - 圹 + - 扪 + - 圮 + - 圯 + - 芊 + - 芍 + - 芄 + - 芨 + - 芑 + - 芎 + - 芗 + - 亘 + - 厍 + - 夼 + - 戍 + - 尥 + - 乩 + - 旯 + - 曳 + - 岌 + - 屺 + - 凼 + - 囡 + - 钇 + - 缶 + - 氘 + - 氖 + - 牝 + - 伎 + - 伛 + - 伢 + - 佤 + - 仵 + - 伥 + - 伧 + - 伉 + - 伫 + - 囟 + - 汆 + - 刖 + - 夙 + - 旮 + - 刎 + - 犷 + - 犸 + - 舛 + - 凫 + - 邬 + - 饧 + - 汕 + - 汔 + - 汐 + - 汲 + - 汜 + - 汊 + - 忖 + - 忏 + - 讴 + - 讵 + - 祁 + - 讷 + - 聿 + - 艮 + - 厾 + - 阱 + - 阮 + - 阪 + - 丞 + - 妁 + - 牟 + - 纡 + - 纣 + - 纥 + - 纨 + - 玕 + - 玙 + - 抟 + - 抔 + - 圻 + - 坂 + - 坍 + - 坞 + - 抃 + - 抉 + - 㧐 + - 芫 + - 邯 + - 芸 + - 芾 + - 苈 + - 苣 + - 芷 + - 芮 + - 苋 + - 芼 + - 苌 + - 苁 + - 芩 + - 芪 + - 芡 + - 芟 + - 苄 + - 苎 + - 苡 + - 杌 + - 杓 + - 杞 + - 杈 + - 忑 + - 孛 + - 邴 + - 邳 + - 矶 + - 奁 + - 豕 + - 忒 + - 欤 + - 轫 + - 迓 + - 邶 + - 忐 + - 卣 + - 邺 + - 旰 + - 呋 + - 呒 + - 呓 + - 呔 + - 呖 + - 呃 + - 旸 + - 吡 + - 町 + - 虬 + - 呗 + - 吽 + - 吣 + - 吲 + - 帏 + - 岐 + - 岈 + - 岘 + - 岑 + - 岚 + - 兕 + - 囵 + - 囫 + - 钊 + - 钋 + - 钌 + - 迕 + - 氙 + - 氚 + - 牤 + - 佞 + - 邱 + - 攸 + - 佚 + - 佝 + - 佟 + - 佗 + - 伽 + - 彷 + - 佘 + - 佥 + - 孚 + - 豸 + - 坌 + - 肟 + - 邸 + - 奂 + - 劬 + - 狄 + - 狁 + - 鸠 + - 邹 + - 饨 + - 饩 + - 饪 + - 饫 + - 饬 + - 亨 + - 庑 + - 庋 + - 疔 + - 疖 + - 肓 + - 闱 + - 闳 + - 闵 + - 羌 + - 炀 + - 沣 + - 沅 + - 沔 + - 沤 + - 沌 + - 沏 + - 沚 + - 汩 + - 汨 + - 沂 + - 汾 + - 沨 + - 汴 + - 汶 + - 沆 + - 沩 + - 泐 + - 怃 + - 怄 + - 忡 + - 忤 + - 忾 + - 怅 + - 忻 + - 忪 + - 怆 + - 忭 + - 忸 + - 诂 + - 诃 + - 诅 + - 诋 + - 诌 + - 诏 + - 诒 + - 孜 + - 陇 + - 陀 + - 陂 + - 陉 + - 妍 + - 妩 + - 妪 + - 妣 + - 妊 + - 妗 + - 妫 + - 妞 + - 姒 + - 妤 + - 邵 + - 劭 + - 刭 + - 甬 + - 邰 + - 纭 + - 纰 + - 纴 + - 纶 + - 纾 + - 玮 + - 玡 + - 玭 + - 玠 + - 玢 + - 玥 + - 玦 + - 盂 + - 忝 + - 匦 + - 坩 + - 抨 + - 拤 + - 坫 + - 拈 + - 垆 + - 抻 + - 劼 + - 拃 + - 拊 + - 坼 + - 坻 + - 㧟 + - 坨 + - 坭 + - 抿 + - 坳 + - 耶 + - 苷 + - 苯 + - 苤 + - 茏 + - 苫 + - 苜 + - 苴 + - 苒 + - 苘 + - 茌 + - 苻 + - 苓 + - 茚 + - 茆 + - 茑 + - 茓 + - 茔 + - 茕 + - 茀 + - 苕 + - 枥 + - 枇 + - 杪 + - 杳 + - 枧 + - 杵 + - 枨 + - 枞 + - 枋 + - 杻 + - 杷 + - 杼 + - 矸 + - 砀 + - 刳 + - 奄 + - 瓯 + - 殁 + - 郏 + - 轭 + - 郅 + - 鸢 + - 盱 + - 昊 + - 昙 + - 杲 + - 昃 + - 咂 + - 呸 + - 昕 + - 昀 + - 旻 + - 昉 + - 炅 + - 咔 + - 畀 + - 虮 + - 咀 + - 呷 + - 黾 + - 呱 + - 呤 + - 咚 + - 咆 + - 咛 + - 呶 + - 呣 + - 呦 + - 咝 + - 岢 + - 岿 + - 岬 + - 岫 + - 帙 + - 岣 + - 峁 + - 刿 + - 迥 + - 岷 + - 剀 + - 帔 + - 峄 + - 沓 + - 囹 + - 罔 + - 钍 + - 钎 + - 钏 + - 钒 + - 钕 + - 钗 + - 邾 + - 迮 + - 牦 + - 竺 + - 迤 + - 佶 + - 佬 + - 佰 + - 侑 + - 侉 + - 臾 + - 岱 + - 侗 + - 侃 + - 侏 + - 侩 + - 佻 + - 佾 + - 侪 + - 佼 + - 佯 + - 侬 + - 帛 + - 阜 + - 侔 + - 徂 + - 刽 + - 郄 + - 怂 + - 籴 + - 瓮 + - 戗 + - 肼 + - 䏝 + - 肽 + - 肱 + - 肫 + - 剁 + - 迩 + - 郇 + - 狙 + - 狎 + - 狍 + - 狒 + - 咎 + - 炙 + - 枭 + - 饯 + - 饴 + - 冽 + - 冼 + - 庖 + - 疠 + - 疝 + - 疡 + - 兖 + - 妾 + - 劾 + - 炜 + - 𬉼 + - 炖 + - 炘 + - 炝 + - 炔 + - 泔 + - 沭 + - 泷 + - 泸 + - 泱 + - 泅 + - 泗 + - 泠 + - 泺 + - 泖 + - 泫 + - 泮 + - 沱 + - 泯 + - 泓 + - 泾 + - 怙 + - 怵 + - 怦 + - 怛 + - 怏 + - 怍 + - 㤘 + - 怩 + - 怫 + - 怿 + - 宕 + - 穹 + - 宓 + - 诓 + - 诔 + - 诖 + - 诘 + - 戾 + - 诙 + - 戽 + - 郓 + - 衩 + - 祆 + - 祎 + - 祉 + - 祇 + - 诛 + - 诜 + - 诟 + - 诠 + - 诣 + - 诤 + - 诧 + - 诨 + - 诩 + - 戕 + - 孢 + - 亟 + - 陔 + - 妲 + - 妯 + - 姗 + - 帑 + - 弩 + - 孥 + - 驽 + - 虱 + - 迦 + - 迨 + - 绀 + - 绁 + - 绂 + - 驷 + - 驸 + - 绉 + - 绌 + - 驿 + - 骀 + - 甾 + - 珏 + - 珐 + - 珂 + - 珑 + - 玳 + - 珀 + - 顸 + - 珉 + - 珈 + - 拮 + - 垭 + - 挝 + - 垣 + - 挞 + - 垤 + - 赳 + - 贲 + - 垱 + - 垌 + - 郝 + - 垧 + - 垓 + - 挦 + - 垠 + - 茜 + - 荚 + - 荑 + - 贳 + - 荜 + - 莒 + - 茼 + - 茴 + - 茱 + - 莛 + - 荞 + - 茯 + - 荏 + - 荇 + - 荃 + - 荟 + - 荀 + - 茗 + - 荠 + - 茭 + - 茨 + - 垩 + - 荥 + - 荦 + - 荨 + - 荩 + - 剋 + - 荪 + - 茹 + - 荬 + - 荮 + - 柰 + - 栉 + - 柯 + - 柘 + - 栊 + - 柩 + - 枰 + - 栌 + - 柙 + - 枵 + - 柚 + - 枳 + - 柞 + - 柝 + - 栀 + - 柢 + - 栎 + - 枸 + - 柈 + - 柁 + - 枷 + - 柽 + - 剌 + - 酊 + - 郦 + - 甭 + - 砗 + - 砘 + - 砒 + - 斫 + - 砭 + - 砜 + - 奎 + - 耷 + - 虺 + - 殂 + - 殇 + - 殄 + - 殆 + - 轱 + - 轲 + - 轳 + - 轶 + - 轸 + - 虿 + - 毖 + - 觇 + - 尜 + - 哐 + - 眄 + - 眍 + - 𠳐 + - 郢 + - 眇 + - 眊 + - 眈 + - 禺 + - 哂 + - 咴 + - 曷 + - 昴 + - 昱 + - 昵 + - 咦 + - 哓 + - 哔 + - 畎 + - 毗 + - 呲 + - 胄 + - 畋 + - 畈 + - 虼 + - 虻 + - 盅 + - 咣 + - 哕 + - 剐 + - 郧 + - 咻 + - 囿 + - 咿 + - 哌 + - 哙 + - 哚 + - 咯 + - 咩 + - 咤 + - 哝 + - 哏 + - 哞 + - 峙 + - 峣 + - 罘 + - 帧 + - 峒 + - 峤 + - 峋 + - 峥 + - 贶 + - 钚 + - 钛 + - 钡 + - 钣 + - 钤 + - 钨 + - 钫 + - 钯 + - 氡 + - 氟 + - 牯 + - 郜 + - 秕 + - 秭 + - 竽 + - 笈 + - 笃 + - 俦 + - 俨 + - 俅 + - 俪 + - 叟 + - 垡 + - 牮 + - 俣 + - 俚 + - 皈 + - 俑 + - 俟 + - 逅 + - 徇 + - 徉 + - 舢 + - 俞 + - 郗 + - 俎 + - 郤 + - 爰 + - 郛 + - 瓴 + - 胨 + - 胪 + - 胛 + - 胂 + - 胙 + - 胍 + - 胗 + - 胝 + - 朐 + - 胫 + - 鸨 + - 匍 + - 狨 + - 狯 + - 飑 + - 狩 + - 狲 + - 訇 + - 逄 + - 昝 + - 饷 + - 饸 + - 饹 + - 胤 + - 孪 + - 娈 + - 弈 + - 奕 + - 庥 + - 疬 + - 疣 + - 疥 + - 疭 + - 庠 + - 竑 + - 彦 + - 飒 + - 闼 + - 闾 + - 闿 + - 阂 + - 羑 + - 迸 + - 籼 + - 酋 + - 炳 + - 炻 + - 炽 + - 炯 + - 烀 + - 炷 + - 烃 + - 洱 + - 洹 + - 洧 + - 洌 + - 浃 + - 洇 + - 洄 + - 洙 + - 涎 + - 洎 + - 洫 + - 浍 + - 洮 + - 洵 + - 浒 + - 浔 + - 浕 + - 洳 + - 恸 + - 恓 + - 恹 + - 恫 + - 恺 + - 恻 + - 恂 + - 恪 + - 恽 + - 宥 + - 扃 + - 衲 + - 衽 + - 衿 + - 袂 + - 祛 + - 祜 + - 祓 + - 祚 + - 诮 + - 祗 + - 祢 + - 诰 + - 诳 + - 鸩 + - 昶 + - 郡 + - 咫 + - 弭 + - 牁 + - 胥 + - 陛 + - 陟 + - 娅 + - 姮 + - 娆 + - 姝 + - 姣 + - 姘 + - 姹 + - 怼 + - 羿 + - 炱 + - 矜 + - 绔 + - 骁 + - 骅 + - 绗 + - 绛 + - 骈 + - 耖 + - 挈 + - 珥 + - 珙 + - 顼 + - 珰 + - 珩 + - 珧 + - 珣 + - 珞 + - 琤 + - 珲 + - 敖 + - 恚 + - 埔 + - 埕 + - 埘 + - 埙 + - 埚 + - 挹 + - 耆 + - 耄 + - 埒 + - 捋 + - 贽 + - 垸 + - 捃 + - 盍 + - 荸 + - 莆 + - 莳 + - 莴 + - 莪 + - 莠 + - 莓 + - 莜 + - 莅 + - 荼 + - 莩 + - 荽 + - 莸 + - 荻 + - 莘 + - 莎 + - 莞 + - 莨 + - 渇 + - 鸪 + - 莼 + - 栲 + - 栳 + - 郴 + - 桓 + - 桡 + - 桎 + - 桢 + - 桤 + - 梃 + - 栝 + - 桕 + - 桁 + - 桧 + - 桅 + - 栟 + - 桉 + - 栩 + - 逑 + - 逋 + - 彧 + - 鬲 + - 豇 + - 酐 + - 逦 + - 厝 + - 孬 + - 砝 + - 砹 + - 砺 + - 砧 + - 砷 + - 砟 + - 砼 + - 砥 + - 砣 + - 剞 + - 砻 + - 轼 + - 轾 + - 辂 + - 鸫 + - 趸 + - 龀 + - 鸬 + - 虔 + - 逍 + - 眬 + - 唛 + - 晟 + - 眩 + - 眙 + - 哧 + - 哽 + - 唔 + - 晁 + - 晏 + - 鸮 + - 趵 + - 趿 + - 畛 + - 蚨 + - 蚜 + - 蚍 + - 蚋 + - 蚬 + - 蚝 + - 蚧 + - 唢 + - 圄 + - 唣 + - 唏 + - 盎 + - 唑 + - 崂 + - 崃 + - 罡 + - 罟 + - 峪 + - 觊 + - 赅 + - 钰 + - 钲 + - 钴 + - 钵 + - 钹 + - 钺 + - 钽 + - 钼 + - 钿 + - 铀 + - 铂 + - 铄 + - 铆 + - 铈 + - 铉 + - 铊 + - 铋 + - 铌 + - 铍 + - 䥽 + - 铎 + - 氩 + - 氤 + - 氦 + - 毪 + - 舐 + - 秣 + - 秫 + - 盉 + - 笄 + - 笕 + - 笊 + - 笏 + - 笆 + - 俸 + - 倩 + - 俵 + - 偌 + - 俳 + - 俶 + - 倬 + - 倏 + - 恁 + - 倭 + - 倪 + - 俾 + - 倜 + - 隼 + - 隽 + - 倌 + - 倥 + - 臬 + - 皋 + - 郫 + - 倨 + - 衄 + - 颀 + - 徕 + - 舫 + - 釜 + - 奚 + - 衾 + - 胯 + - 胱 + - 胴 + - 胭 + - 脍 + - 胼 + - 朕 + - 脒 + - 胺 + - 鸱 + - 玺 + - 鸲 + - 狷 + - 猁 + - 狳 + - 猃 + - 狺 + - 逖 + - 桀 + - 袅 + - 饽 + - 凇 + - 栾 + - 挛 + - 亳 + - 疳 + - 疴 + - 疸 + - 疽 + - 痈 + - 疱 + - 痂 + - 痉 + - 衮 + - 凋 + - 颃 + - 恣 + - 旆 + - 旄 + - 旃 + - 阃 + - 阄 + - 訚 + - 阆 + - 恙 + - 粑 + - 朔 + - 郸 + - 烜 + - 烨 + - 烩 + - 烊 + - 剡 + - 郯 + - 烬 + - 涑 + - 浯 + - 涞 + - 涟 + - 娑 + - 涅 + - 涠 + - 浞 + - 涓 + - 浥 + - 涔 + - 浜 + - 浠 + - 浣 + - 浚 + - 悚 + - 悭 + - 悝 + - 悒 + - 悌 + - 悛 + - 宸 + - 窈 + - 剜 + - 诹 + - 冢 + - 诼 + - 袒 + - 袢 + - 祯 + - 诿 + - 谀 + - 谂 + - 谄 + - 谇 + - 屐 + - 屙 + - 陬 + - 勐 + - 奘 + - 牂 + - 蚩 + - 陲 + - 姬 + - 娠 + - 娌 + - 娉 + - 娲 + - 娩 + - 娴 + - 娣 + - 娓 + - 婀 + - 畚 + - 逡 + - 绠 + - 骊 + - 绡 + - 骋 + - 绥 + - 绦 + - 绨 + - 骎 + - 邕 + - 鸶 + - 彗 + - 耜 + - 焘 + - 舂 + - 琏 + - 琇 + - 麸 + - 揶 + - 埴 + - 埯 + - 捯 + - 掳 + - 掴 + - 埸 + - 埵 + - 赧 + - 埤 + - 捭 + - 逵 + - 埝 + - 堋 + - 堍 + - 掬 + - 鸷 + - 掖 + - 捽 + - 掊 + - 堉 + - 掸 + - 捩 + - 掮 + - 悫 + - 埭 + - 埽 + - 掇 + - 掼 + - 聃 + - 菁 + - 萁 + - 菘 + - 堇 + - 萘 + - 萋 + - 菽 + - 菖 + - 萜 + - 萸 + - 萑 + - 棻 + - 菔 + - 菟 + - 萏 + - 萃 + - 菏 + - 菹 + - 菪 + - 菅 + - 菀 + - 萦 + - 菰 + - 菡 + - 梵 + - 梿 + - 梏 + - 觋 + - 桴 + - 桷 + - 梓 + - 棁 + - 桫 + - 棂 + - 啬 + - 郾 + - 匮 + - 敕 + - 豉 + - 鄄 + - 酞 + - 酚 + - 戛 + - 硎 + - 硭 + - 硒 + - 硖 + - 硗 + - 硐 + - 硇 + - 硌 + - 鸸 + - 瓠 + - 匏 + - 厩 + - 龚 + - 殒 + - 殓 + - 殍 + - 赉 + - 雩 + - 辄 + - 堑 + - 眭 + - 眦 + - 啧 + - 晡 + - 晤 + - 眺 + - 眵 + - 眸 + - 圊 + - 喏 + - 喵 + - 啉 + - 勖 + - 晞 + - 唵 + - 晗 + - 冕 + - 啭 + - 畦 + - 趺 + - 啮 + - 跄 + - 蚶 + - 蛄 + - 蛎 + - 蛆 + - 蚰 + - 蛊 + - 圉 + - 蚱 + - 蛉 + - 蛏 + - 蚴 + - 啁 + - 啕 + - 唿 + - 啐 + - 唼 + - 唷 + - 啖 + - 啵 + - 啶 + - 啷 + - 唳 + - 唰 + - 啜 + - 帻 + - 崚 + - 崦 + - 帼 + - 崮 + - 崤 + - 崆 + - 赇 + - 赈 + - 赊 + - 铑 + - 铒 + - 铗 + - 铙 + - 铟 + - 铠 + - 铡 + - 铢 + - 铣 + - 铤 + - 铧 + - 铨 + - 铩 + - 铪 + - 铫 + - 铬 + - 铮 + - 铯 + - 铰 + - 铱 + - 铳 + - 铵 + - 铷 + - 氪 + - 牾 + - 鸹 + - 秾 + - 逶 + - 笺 + - 筇 + - 笸 + - 笪 + - 笮 + - 笠 + - 笥 + - 笤 + - 笳 + - 笾 + - 笞 + - 偾 + - 偃 + - 偕 + - 偈 + - 傀 + - 偬 + - 偻 + - 皑 + - 皎 + - 鸻 + - 徜 + - 舸 + - 舻 + - 舴 + - 舷 + - 龛 + - 翎 + - 脬 + - 脘 + - 脲 + - 匐 + - 猗 + - 猡 + - 猞 + - 猝 + - 斛 + - 猕 + - 馗 + - 馃 + - 馄 + - 鸾 + - 孰 + - 庹 + - 庾 + - 痔 + - 痍 + - 疵 + - 翊 + - 旌 + - 旎 + - 袤 + - 阇 + - 阈 + - 阉 + - 阊 + - 阋 + - 阍 + - 阏 + - 羟 + - 粝 + - 粕 + - 敝 + - 焐 + - 烯 + - 焓 + - 烽 + - 焖 + - 烷 + - 焗 + - 渍 + - 渚 + - 淇 + - 淅 + - 淞 + - 渎 + - 涿 + - 淖 + - 挲 + - 淠 + - 涸 + - 渑 + - 淦 + - 淝 + - 淬 + - 涪 + - 淙 + - 涫 + - 渌 + - 淄 + - 惬 + - 悻 + - 悱 + - 惝 + - 惘 + - 悸 + - 惆 + - 惚 + - 惇 + - 惮 + - 窕 + - 谌 + - 谏 + - 扈 + - 皲 + - 谑 + - 裆 + - 袷 + - 裉 + - 谒 + - 谔 + - 谕 + - 谖 + - 谗 + - 谙 + - 谛 + - 谝 + - 逯 + - 郿 + - 隈 + - 粜 + - 隍 + - 隗 + - 婧 + - 婊 + - 婕 + - 娼 + - 婢 + - 婵 + - 胬 + - 袈 + - 翌 + - 恿 + - 欸 + - 绫 + - 骐 + - 绮 + - 绯 + - 绱 + - 骒 + - 绲 + - 骓 + - 绶 + - 绺 + - 绻 + - 绾 + - 骖 + - 缁 + - 耠 + - 琫 + - 琵 + - 琶 + - 琪 + - 瑛 + - 琦 + - 琥 + - 琨 + - 靓 + - 琰 + - 琮 + - 琯 + - 琬 + - 琛 + - 琚 + - 辇 + - 鼋 + - 揳 + - 堞 + - 搽 + - 揸 + - 揠 + - 堙 + - 趄 + - 揖 + - 颉 + - 塄 + - 揿 + - 耋 + - 揄 + - 蛩 + - 蛰 + - 塆 + - 摒 + - 揆 + - 掾 + - 聒 + - 葑 + - 葚 + - 靰 + - 靸 + - 葳 + - 葺 + - 葸 + - 萼 + - 葆 + - 葩 + - 葶 + - 蒌 + - 萱 + - 戟 + - 葭 + - 楮 + - 棼 + - 椟 + - 棹 + - 椤 + - 棰 + - 赍 + - 椋 + - 椁 + - 椪 + - 棣 + - 椐 + - 鹁 + - 覃 + - 酤 + - 酢 + - 酡 + - 鹂 + - 厥 + - 殚 + - 殛 + - 雯 + - 雱 + - 辊 + - 辋 + - 椠 + - 辍 + - 辎 + - 斐 + - 睄 + - 睑 + - 睇 + - 睃 + - 戢 + - 喋 + - 嗒 + - 喃 + - 喱 + - 喹 + - 晷 + - 喈 + - 跖 + - 跗 + - 跞 + - 跚 + - 跎 + - 跏 + - 跆 + - 蛱 + - 蛲 + - 蛭 + - 蛳 + - 蛐 + - 蛔 + - 蛞 + - 蛴 + - 蛟 + - 蛘 + - 喁 + - 喟 + - 啾 + - 嗖 + - 喑 + - 嗟 + - 喽 + - 嗞 + - 喀 + - 喔 + - 喙 + - 嵘 + - 嵖 + - 崴 + - 遄 + - 詈 + - 嵎 + - 崽 + - 嵬 + - 嵛 + - 嵯 + - 嵝 + - 嵫 + - 幄 + - 嵋 + - 赕 + - 铻 + - 铼 + - 铿 + - 锃 + - 锂 + - 锆 + - 锇 + - 锉 + - 锏 + - 锑 + - 锒 + - 锔 + - 锕 + - 掣 + - 矬 + - 氰 + - 毳 + - 毽 + - 犊 + - 犄 + - 犋 + - 鹄 + - 犍 + - 嵇 + - 黍 + - 稃 + - 稂 + - 筚 + - 筵 + - 筌 + - 傣 + - 傈 + - 舄 + - 牍 + - 傥 + - 傧 + - 遑 + - 傩 + - 遁 + - 徨 + - 媭 + - 畲 + - 弑 + - 颌 + - 翕 + - 釉 + - 鹆 + - 舜 + - 貂 + - 腈 + - 腌 + - 腓 + - 腆 + - 腴 + - 腑 + - 腚 + - 腱 + - 鱿 + - 鲀 + - 鲂 + - 颍 + - 猢 + - 猹 + - 猥 + - 飓 + - 觞 + - 觚 + - 猱 + - 颎 + - 飧 + - 馇 + - 馊 + - 亵 + - 脔 + - 裒 + - 痣 + - 痨 + - 痦 + - 痞 + - 痤 + - 痫 + - 痧 + - 赓 + - 竦 + - 瓿 + - 啻 + - 颏 + - 鹇 + - 阑 + - 阒 + - 阕 + - 粞 + - 遒 + - 孳 + - 焯 + - 焜 + - 焙 + - 焱 + - 鹈 + - 湛 + - 渫 + - 湮 + - 湎 + - 湜 + - 渭 + - 湍 + - 湫 + - 溲 + - 湟 + - 溆 + - 湲 + - 湔 + - 湉 + - 渥 + - 湄 + - 滁 + - 愠 + - 惺 + - 愦 + - 惴 + - 愀 + - 愎 + - 愔 + - 喾 + - 寐 + - 谟 + - 扉 + - 裢 + - 裎 + - 裥 + - 祾 + - 祺 + - 谠 + - 幂 + - 谡 + - 谥 + - 谧 + - 遐 + - 孱 + - 弼 + - 巽 + - 骘 + - 媪 + - 媛 + - 婷 + - 巯 + - 翚 + - 皴 + - 婺 + - 骛 + - 缂 + - 缃 + - 缄 + - 彘 + - 缇 + - 缈 + - 缌 + - 缑 + - 缒 + - 缗 + - 飨 + - 耢 + - 瑚 + - 瑁 + - 瑜 + - 瑗 + - 瑄 + - 瑕 + - 遨 + - 骜 + - 韫 + - 髡 + - 塬 + - 鄢 + - 趔 + - 趑 + - 摅 + - 摁 + - 蜇 + - 搋 + - 搪 + - 搐 + - 搛 + - 搠 + - 摈 + - 彀 + - 毂 + - 搦 + - 搡 + - 蓁 + - 戡 + - 蓍 + - 鄞 + - 靳 + - 蓐 + - 蓦 + - 鹋 + - 蒽 + - 蓓 + - 蓖 + - 蓊 + - 蒯 + - 蓟 + - 蓑 + - 蒿 + - 蒺 + - 蓠 + - 蒟 + - 蒡 + - 蒹 + - 蒴 + - 蒗 + - 蓥 + - 颐 + - 楔 + - 楠 + - 楂 + - 楝 + - 楫 + - 楸 + - 椴 + - 槌 + - 楯 + - 皙 + - 榈 + - 槎 + - 榉 + - 楦 + - 楣 + - 楹 + - 椽 + - 裘 + - 剽 + - 甄 + - 酮 + - 酰 + - 酯 + - 酩 + - 蜃 + - 碛 + - 碓 + - 硼 + - 碉 + - 碚 + - 碇 + - 碜 + - 鹌 + - 辏 + - 龃 + - 龅 + - 訾 + - 粲 + - 虞 + - 睚 + - 嗪 + - 韪 + - 嗷 + - 嗉 + - 睨 + - 睢 + - 雎 + - 睥 + - 嘟 + - 嗑 + - 嗫 + - 嗬 + - 嗔 + - 嗝 + - 戥 + - 嗄 + - 煦 + - 暄 + - 遢 + - 暌 + - 跬 + - 跶 + - 跸 + - 跐 + - 跣 + - 跹 + - 跻 + - 蛸 + - 蜊 + - 蜍 + - 蜉 + - 蜣 + - 畹 + - 蛹 + - 嗣 + - 嗯 + - 嗥 + - 嗲 + - 嗳 + - 嗌 + - 嗍 + - 嗨 + - 嗐 + - 嗤 + - 嗵 + - 罨 + - 嵊 + - 嵩 + - 嵴 + - 骰 + - 锗 + - 锛 + - 锜 + - 锝 + - 锞 + - 锟 + - 锢 + - 锨 + - 锩 + - 锭 + - 锱 + - 雉 + - 氲 + - 犏 + - 歃 + - 稞 + - 稗 + - 稔 + - 筠 + - 筢 + - 筮 + - 筲 + - 筱 + - 牒 + - 煲 + - 敫 + - 徭 + - 愆 + - 艄 + - 觎 + - 毹 + - 貊 + - 貅 + - 貉 + - 颔 + - 腠 + - 腩 + - 腼 + - 腭 + - 腧 + - 塍 + - 媵 + - 詹 + - 鲅 + - 鲆 + - 鲇 + - 鲈 + - 稣 + - 鲋 + - 鲐 + - 肄 + - 鹐 + - 飕 + - 觥 + - 遛 + - 馐 + - 鹑 + - 亶 + - 瘃 + - 痱 + - 痼 + - 痿 + - 瘐 + - 瘁 + - 瘆 + - 麂 + - 裔 + - 歆 + - 旒 + - 雍 + - 阖 + - 阗 + - 阙 + - 羧 + - 豢 + - 粳 + - 猷 + - 煳 + - 煜 + - 煨 + - 煅 + - 煊 + - 煸 + - 煺 + - 滟 + - 溱 + - 溘 + - 漭 + - 滢 + - 溥 + - 溧 + - 溽 + - 裟 + - 溻 + - 溷 + - 滗 + - 滫 + - 溴 + - 滏 + - 滃 + - 滦 + - 溏 + - 滂 + - 滓 + - 溟 + - 滪 + - 愫 + - 慑 + - 慊 + - 鲎 + - 骞 + - 窦 + - 窠 + - 窣 + - 裱 + - 褚 + - 裨 + - 裾 + - 裰 + - 禊 + - 谩 + - 谪 + - 媾 + - 嫫 + - 媲 + - 嫒 + - 嫔 + - 媸 + - 缙 + - 缜 + - 缛 + - 辔 + - 骝 + - 缟 + - 缡 + - 缢 + - 缣 + - 骟 + - 耥 + - 璈 + - 瑶 + - 瑭 + - 獒 + - 觏 + - 慝 + - 嫠 + - 韬 + - 叆 + - 髦 + - 摽 + - 墁 + - 撂 + - 摞 + - 撄 + - 翥 + - 踅 + - 摭 + - 墉 + - 墒 + - 榖 + - 綦 + - 蔫 + - 蔷 + - 靺 + - 靼 + - 鞅 + - 靿 + - 甍 + - 蔸 + - 蔟 + - 蔺 + - 戬 + - 蕖 + - 蔻 + - 蓿 + - 斡 + - 鹕 + - 蓼 + - 榛 + - 榧 + - 榻 + - 榫 + - 榭 + - 槔 + - 榱 + - 槁 + - 槟 + - 槠 + - 榷 + - 僰 + - 酽 + - 酶 + - 酹 + - 厮 + - 碡 + - 碴 + - 碣 + - 碲 + - 磋 + - 臧 + - 豨 + - 殡 + - 霆 + - 霁 + - 辕 + - 蜚 + - 裴 + - 翡 + - 龇 + - 龈 + - 睿 + - 䁖 + - 睽 + - 嘞 + - 嘈 + - 嘌 + - 嘁 + - 嘎 + - 暧 + - 暝 + - 踌 + - 踉 + - 蜞 + - 蜥 + - 蜮 + - 蝈 + - 蜴 + - 蜱 + - 蜩 + - 蜷 + - 蜿 + - 螂 + - 蜢 + - 嘘 + - 嘡 + - 鹗 + - 嘣 + - 嘤 + - 嘚 + - 嗾 + - 嘧 + - 罴 + - 罱 + - 幔 + - 嶂 + - 幛 + - 赙 + - 罂 + - 骷 + - 骶 + - 鹘 + - 锲 + - 锴 + - 锶 + - 锷 + - 锸 + - 锵 + - 镁 + - 镂 + - 犒 + - 箐 + - 箦 + - 箧 + - 箍 + - 箸 + - 箬 + - 箅 + - 箪 + - 箔 + - 箜 + - 箢 + - 箓 + - 毓 + - 僖 + - 儆 + - 僳 + - 僭 + - 劁 + - 僮 + - 魃 + - 魆 + - 睾 + - 艋 + - 鄱 + - 膈 + - 膑 + - 鲑 + - 鲔 + - 鲚 + - 鲛 + - 鲟 + - 獐 + - 觫 + - 雒 + - 夤 + - 馑 + - 銮 + - 塾 + - 麽 + - 瘌 + - 瘊 + - 瘘 + - 瘙 + - 廖 + - 韶 + - 旖 + - 膂 + - 阚 + - 鄯 + - 鲞 + - 粿 + - 粼 + - 粽 + - 糁 + - 槊 + - 鹚 + - 熘 + - 熥 + - 潢 + - 漕 + - 滹 + - 漯 + - 漶 + - 潋 + - 潴 + - 漪 + - 漉 + - 漳 + - 漩 + - 澉 + - 潍 + - 慵 + - 搴 + - 窨 + - 寤 + - 綮 + - 谮 + - 褡 + - 褙 + - 褓 + - 褛 + - 褊 + - 谯 + - 谰 + - 谲 + - 暨 + - 屣 + - 鹛 + - 嫣 + - 嫱 + - 嫖 + - 嫦 + - 嫚 + - 嫘 + - 嫡 + - 鼐 + - 翟 + - 瞀 + - 鹜 + - 骠 + - 缥 + - 缦 + - 缧 + - 缨 + - 骢 + - 缪 + - 缫 + - 耦 + - 耧 + - 瑾 + - 璜 + - 璀 + - 璎 + - 璁 + - 璋 + - 璇 + - 奭 + - 髯 + - 髫 + - 撷 + - 撅 + - 赭 + - 撸 + - 鋆 + - 撙 + - 撺 + - 墀 + - 聩 + - 觐 + - 鞑 + - 蕙 + - 鞒 + - 蕈 + - 蕨 + - 蕤 + - 蕞 + - 蕺 + - 瞢 + - 蕃 + - 蕲 + - 赜 + - 槿 + - 樯 + - 槭 + - 樗 + - 樘 + - 樊 + - 槲 + - 醌 + - 醅 + - 靥 + - 魇 + - 餍 + - 磔 + - 磙 + - 霈 + - 辘 + - 龉 + - 龊 + - 觑 + - 瞌 + - 瞋 + - 瞑 + - 嘭 + - 噎 + - 噶 + - 颙 + - 暹 + - 噘 + - 踔 + - 踝 + - 踟 + - 踒 + - 踬 + - 踮 + - 踯 + - 踺 + - 踞 + - 蝽 + - 蝾 + - 蝻 + - 蝰 + - 蝮 + - 螋 + - 蝓 + - 蝣 + - 蝼 + - 噗 + - 嘬 + - 颚 + - 噍 + - 噢 + - 噙 + - 噜 + - 噌 + - 噔 + - 颛 + - 幞 + - 幡 + - 嶙 + - 嶝 + - 骺 + - 骼 + - 骸 + - 镊 + - 镉 + - 镌 + - 镍 + - 镏 + - 镒 + - 镓 + - 镔 + - 稷 + - 箴 + - 篑 + - 篁 + - 篌 + - 篆 + - 牖 + - 儋 + - 徵 + - 磐 + - 虢 + - 鹞 + - 膘 + - 滕 + - 鲠 + - 鲡 + - 鲢 + - 鲣 + - 鲥 + - 鲧 + - 鲩 + - 獗 + - 獠 + - 觯 + - 馓 + - 馔 + - 麾 + - 廛 + - 瘛 + - 瘼 + - 瘢 + - 瘠 + - 齑 + - 羯 + - 羰 + - 𥻗 + - 遴 + - 糌 + - 糍 + - 糅 + - 熜 + - 熵 + - 熠 + - 澍 + - 澌 + - 潸 + - 潦 + - 潲 + - 鋈 + - 潟 + - 潼 + - 潺 + - 憬 + - 憧 + - 寮 + - 窳 + - 谳 + - 褴 + - 褟 + - 褫 + - 谵 + - 熨 + - 屦 + - 嬉 + - 勰 + - 戮 + - 蝥 + - 缬 + - 缮 + - 缯 + - 骣 + - 畿 + - 耩 + - 耨 + - 耪 + - 璞 + - 璟 + - 靛 + - 璠 + - 璘 + - 聱 + - 螯 + - 髻 + - 髭 + - 髹 + - 擀 + - 熹 + - 甏 + - 擞 + - 縠 + - 磬 + - 颞 + - 蕻 + - 鞘 + - 颟 + - 薤 + - 薨 + - 檠 + - 薏 + - 薮 + - 薜 + - 薅 + - 樾 + - 橛 + - 橇 + - 樵 + - 檎 + - 橹 + - 樽 + - 樨 + - 橼 + - 墼 + - 橐 + - 翮 + - 醛 + - 醐 + - 醍 + - 醚 + - 磲 + - 赝 + - 飙 + - 殪 + - 霖 + - 霏 + - 霓 + - 錾 + - 辚 + - 臻 + - 遽 + - 氅 + - 瞟 + - 瞠 + - 瞰 + - 嚄 + - 嚆 + - 噤 + - 暾 + - 蹀 + - 踹 + - 踵 + - 踽 + - 蹉 + - 蹁 + - 螨 + - 蟒 + - 螈 + - 螅 + - 螭 + - 螠 + - 螟 + - 噱 + - 噬 + - 噫 + - 噻 + - 噼 + - 罹 + - 圜 + - 䦃 + - 镖 + - 镗 + - 镘 + - 镚 + - 镛 + - 镝 + - 镞 + - 镠 + - 氇 + - 氆 + - 憩 + - 穑 + - 篝 + - 篥 + - 篦 + - 篪 + - 篙 + - 盥 + - 劓 + - 翱 + - 魉 + - 魈 + - 徼 + - 歙 + - 膳 + - 膦 + - 膙 + - 鲮 + - 鲱 + - 鲲 + - 鲳 + - 鲴 + - 鲵 + - 鲷 + - 鲻 + - 獴 + - 獭 + - 獬 + - 邂 + - 鹧 + - 廨 + - 赟 + - 瘰 + - 廪 + - 瘿 + - 瘵 + - 瘴 + - 癃 + - 瘳 + - 斓 + - 麇 + - 麈 + - 嬴 + - 壅 + - 羲 + - 糗 + - 瞥 + - 甑 + - 燎 + - 燠 + - 燔 + - 燧 + - 濑 + - 濉 + - 潞 + - 澧 + - 澹 + - 澥 + - 澶 + - 濂 + - 褰 + - 寰 + - 窸 + - 褶 + - 禧 + - 嬖 + - 犟 + - 隰 + - 嬗 + - 颡 + - 缱 + - 缲 + - 缳 + - 璨 + - 璩 + - 璐 + - 璪 + - 螫 + - 擤 + - 壕 + - 觳 + - 罄 + - 擢 + - 薹 + - 鞡 + - 鞬 + - 薷 + - 薰 + - 藓 + - 藁 + - 檄 + - 檩 + - 懋 + - 醢 + - 翳 + - 礅 + - 磴 + - 鹩 + - 龋 + - 龌 + - 豳 + - 壑 + - 黻 + - 嚏 + - 嚅 + - 蹑 + - 蹒 + - 蹊 + - 蟥 + - 螬 + - 螵 + - 疃 + - 螳 + - 蟑 + - 嚓 + - 羁 + - 罽 + - 罾 + - 嶷 + - 黜 + - 黝 + - 髁 + - 髀 + - 镡 + - 镢 + - 镣 + - 镦 + - 镧 + - 镩 + - 镪 + - 镫 + - 罅 + - 黏 + - 簌 + - 篾 + - 篼 + - 簖 + - 簋 + - 鼢 + - 黛 + - 儡 + - 鹪 + - 鼾 + - 皤 + - 魍 + - 龠 + - 繇 + - 貘 + - 邈 + - 貔 + - 臌 + - 膻 + - 臆 + - 臃 + - 鲼 + - 鲽 + - 鳀 + - 鳃 + - 鳅 + - 鳇 + - 鳊 + - 螽 + - 燮 + - 鹫 + - 襄 + - 糜 + - 縻 + - 膺 + - 癍 + - 麋 + - 懑 + - 濡 + - 濮 + - 濞 + - 濠 + - 濯 + - 蹇 + - 謇 + - 邃 + - 襁 + - 檗 + - 擘 + - 孺 + - 隳 + - 嬷 + - 蟊 + - 鹬 + - 鍪 + - 鏊 + - 鳌 + - 鬈 + - 鬃 + - 瞽 + - 鞯 + - 鞨 + - 鞫 + - 鞧 + - 鞣 + - 藜 + - 藠 + - 藩 + - 醪 + - 蹙 + - 礓 + - 燹 + - 餮 + - 瞿 + - 曛 + - 颢 + - 曜 + - 躇 + - 蹚 + - 鹭 + - 蟛 + - 蟪 + - 蟠 + - 蟮 + - 鹮 + - 黠 + - 黟 + - 髅 + - 髂 + - 镬 + - 镭 + - 镯 + - 馥 + - 簟 + - 簪 + - 鼬 + - 雠 + - 艟 + - 鳎 + - 鳏 + - 鳐 + - 癞 + - 癔 + - 癜 + - 癖 + - 糨 + - 蹩 + - 鎏 + - 懵 + - 彝 + - 邋 + - 鬏 + - 攉 + - 攒 + - 鞲 + - 鞴 + - 藿 + - 蘧 + - 蘅 + - 麓 + - 醮 + - 醯 + - 酃 + - 霪 + - 霭 + - 霨 + - 黼 + - 嚯 + - 蹰 + - 蹶 + - 蹽 + - 蹼 + - 蹴 + - 蹾 + - 蹿 + - 蠖 + - 蠓 + - 蟾 + - 蠊 + - 黢 + - 髋 + - 髌 + - 镲 + - 籀 + - 籁 + - 齁 + - 魑 + - 艨 + - 鳓 + - 鳔 + - 鳕 + - 鳗 + - 鳙 + - 麒 + - 鏖 + - 羸 + - 㸆 + - 瀚 + - 瀣 + - 瀛 + - 襦 + - 谶 + - 襞 + - 骥 + - 缵 + - 瓒 + - 攘 + - 蘩 + - 蘖 + - 醴 + - 霰 + - 酆 + - 矍 + - 曦 + - 躅 + - 鼍 + - 巉 + - 黩 + - 黥 + - 黪 + - 镳 + - 镴 + - 黧 + - 纂 + - 璺 + - 鼯 + - 臜 + - 鳜 + - 鳝 + - 鳟 + - 獾 + - 孀 + - 骧 + - 瓘 + - 鼙 + - 醺 + - 礴 + - 颦 + - 曩 + - 鳢 + - 癫 + - 麝 + - 夔 + - 爝 + - 灏 + - 禳 + - 鐾 + - 羼 + - 蠡 + - 耱 + - 懿 + - 蘸 + - 鹳 + - 霾 + - 氍 + - 饕 + - 躐 + - 髑 + - 镵 + - 穰 + - 饔 + - 鬻 + - 鬟 + - 趱 + - 攫 + - 攥 + - 颧 + - 躜 + - 鼹 + - 癯 + - 麟 + - 蠲 + - 蠹 + - 躞 + - 衢 + - 鑫 + - 灞 + - 襻 + - 纛 + - 鬣 + - 攮 + - 囔 + - 馕 + - 戆 + - 爨 + - 齉 + - 亍 + - 尢 + - 彳 + - 卬 + - 殳 + - 𠙶 + - 毌 + - 邘 + - 戋 + - 圢 + - 氕 + - 伋 + - 仝 + - 冮 + - 氿 + - 汈 + - 氾 + - 忉 + - 宄 + - 讱 + - 扞 + - 圲 + - 圫 + - 芏 + - 芃 + - 朳 + - 朸 + - 𨙸 + - 邨 + - 吒 + - 吖 + - 屼 + - 屾 + - 辿 + - 钆 + - 仳 + - 伣 + - 伈 + - 癿 + - 甪 + - 邠 + - 犴 + - 冱 + - 邡 + - 闫 + - 汋 + - 䜣 + - 讻 + - 孖 + - 纩 + - 玒 + - 玓 + - 玘 + - 玚 + - 刬 + - 坜 + - 坉 + - 扽 + - 坋 + - 扺 + - 㧑 + - 毐 + - 芰 + - 芣 + - 苊 + - 苉 + - 芘 + - 芴 + - 芠 + - 芤 + - 杕 + - 杙 + - 杄 + - 杧 + - 杩 + - 尪 + - 尨 + - 轪 + - 坒 + - 芈 + - 旴 + - 旵 + - 呙 + - 㕮 + - 岍 + - 岠 + - 岜 + - 呇 + - 冏 + - 觃 + - 岙 + - 伾 + - 㑇 + - 伭 + - 佖 + - 伲 + - 佁 + - 飏 + - 狃 + - 闶 + - 汧 + - 汫 + - 𣲘 + - 𣲗 + - 沄 + - 沘 + - 汭 + - 㳇 + - 沇 + - 忮 + - 忳 + - 忺 + - 祃 + - 诇 + - 邲 + - 诎 + - 诐 + - 屃 + - 岊 + - 阽 + - 䢺 + - 阼 + - 妧 + - 妘 + - 𨚕 + - 纮 + - 驲 + - 纻 + - 纼 + - 玤 + - 玞 + - 玱 + - 玟 + - 邽 + - 邿 + - 坥 + - 坰 + - 坬 + - 坽 + - 弆 + - 耵 + - 䢼 + - 𦭜 + - 茋 + - 苧 + - 苾 + - 苠 + - 枅 + - 㭎 + - 枘 + - 枍 + - 矼 + - 矻 + - 匼 + - 旿 + - 昇 + - 昄 + - 昒 + - 昈 + - 咉 + - 咇 + - 咍 + - 岵 + - 岽 + - 岨 + - 岞 + - 峂 + - 㟃 + - 囷 + - 钐 + - 钔 + - 钖 + - 牥 + - 佴 + - 垈 + - 侁 + - 侹 + - 佸 + - 佺 + - 隹 + - 㑊 + - 侂 + - 佽 + - 侘 + - 郈 + - 舠 + - 郐 + - 郃 + - 攽 + - 肭 + - 肸 + - 肷 + - 狉 + - 狝 + - 饳 + - 忞 + - 於 + - 炌 + - 炆 + - 泙 + - 沺 + - 泂 + - 泜 + - 泃 + - 泇 + - 怊 + - 峃 + - 穸 + - 祋 + - 祊 + - 鸤 + - 弢 + - 弨 + - 陑 + - 陎 + - 卺 + - 乸 + - 妭 + - 姈 + - 迳 + - 叕 + - 驵 + - 䌹 + - 驺 + - 绋 + - 绐 + - 砉 + - 耔 + - 㛃 + - 玶 + - 珇 + - 珅 + - 珋 + - 玹 + - 珌 + - 玿 + - 韨 + - 垚 + - 垯 + - 垙 + - 垲 + - 埏 + - 垍 + - 耇 + - 垎 + - 垴 + - 垟 + - 垞 + - 挓 + - 垵 + - 垏 + - 拶 + - 荖 + - 荁 + - 荙 + - 荛 + - 茈 + - 茽 + - 荄 + - 茺 + - 荓 + - 茳 + - 𦰡 + - 茛 + - 荭 + - 㭕 + - 柷 + - 柃 + - 柊 + - 枹 + - 栐 + - 柖 + - 郚 + - 剅 + - 䴓 + - 迺 + - 厖 + - 砆 + - 砑 + - 砄 + - 耏 + - 奓 + - 䶮 + - 轵 + - 轷 + - 轹 + - 轺 + - 昺 + - 昽 + - 盷 + - 咡 + - 咺 + - 昳 + - 昣 + - 哒 + - 昤 + - 昫 + - 昡 + - 咥 + - 昪 + - 虷 + - 虸 + - 哃 + - 峘 + - 耑 + - 峛 + - 峗 + - 峧 + - 帡 + - 钘 + - 钜 + - 钪 + - 钬 + - 钭 + - 矧 + - 秬 + - 俫 + - 舁 + - 俜 + - 俙 + - 俍 + - 垕 + - 衎 + - 舣 + - 弇 + - 侴 + - 鸧 + - 䏡 + - 胠 + - 𦙶 + - 胈 + - 胩 + - 胣 + - 朏 + - 飐 + - 訄 + - 饻 + - 庤 + - 疢 + - 炣 + - 炟 + - 㶲 + - 洭 + - 洘 + - 洓 + - 洿 + - 㳚 + - 泚 + - 浈 + - 浉 + - 洸 + - 洑 + - 洢 + - 洈 + - 洚 + - 洺 + - 洨 + - 浐 + - 㳘 + - 洴 + - 洣 + - 恔 + - 宬 + - 窀 + - 扂 + - 袆 + - 祏 + - 祐 + - 祕 + - 叚 + - 陧 + - 陞 + - 娀 + - 姞 + - 姱 + - 姤 + - 姶 + - 姽 + - 枲 + - 绖 + - 骃 + - 彖 + - 骉 + - 恝 + - 珪 + - 珛 + - 珹 + - 琊 + - 玼 + - 珖 + - 珽 + - 珦 + - 珫 + - 珒 + - 珢 + - 珕 + - 珝 + - 埗 + - 垾 + - 垺 + - 埆 + - 垿 + - 埌 + - 埇 + - 莰 + - 茝 + - 鄀 + - 莶 + - 莝 + - 䓖 + - 莙 + - 栻 + - 桠 + - 桄 + - 梠 + - 栴 + - 梴 + - 栒 + - 酎 + - 酏 + - 砵 + - 砠 + - 砫 + - 砬 + - 硁 + - 恧 + - 翃 + - 郪 + - 𨐈 + - 辀 + - 辁 + - 剕 + - 赀 + - 哢 + - 晅 + - 晊 + - 唝 + - 哳 + - 哱 + - 冔 + - 晔 + - 晐 + - 晖 + - 畖 + - 蚄 + - 蚆 + - 帱 + - 崁 + - 峿 + - 崄 + - 帨 + - 崀 + - 赆 + - 钷 + - 眚 + - 甡 + - 笫 + - 倻 + - 倴 + - 脩 + - 倮 + - 倕 + - 倞 + - 倓 + - 倧 + - 衃 + - 虒 + - 舭 + - 舯 + - 舥 + - 瓞 + - 鬯 + - 鸰 + - 脎 + - 朓 + - 胲 + - 虓 + - 鱽 + - 狴 + - 峱 + - 狻 + - 眢 + - 勍 + - 痄 + - 疰 + - 痃 + - 竘 + - 羖 + - 羓 + - 桊 + - 敉 + - 烠 + - 烔 + - 烶 + - 烻 + - 涍 + - 浡 + - 浭 + - 浬 + - 涄 + - 涢 + - 涐 + - 浰 + - 浟 + - 浛 + - 浼 + - 浲 + - 涘 + - 悈 + - 悃 + - 悢 + - 宧 + - 窅 + - 窊 + - 窎 + - 扅 + - 扆 + - 袪 + - 袗 + - 袯 + - 祧 + - 隺 + - 堲 + - 疍 + - 𨺙 + - 陴 + - 烝 + - 砮 + - 㛚 + - 哿 + - 翀 + - 翂 + - 剟 + - 绤 + - 骍 + - 䂮 + - 琎 + - 珸 + - 珵 + - 琄 + - 琈 + - 琀 + - 珺 + - 掭 + - 堎 + - 堐 + - 埼 + - 掎 + - 埫 + - 堌 + - 晢 + - 掞 + - 埪 + - 壸 + - 㙍 + - 聍 + - 菝 + - 萚 + - 菥 + - 莿 + - 䓫 + - 勚 + - 䓬 + - 萆 + - 菂 + - 菍 + - 菼 + - 萣 + - 䓨 + - 菉 + - 䓛 + - 梼 + - 梽 + - 桲 + - 梾 + - 桯 + - 梣 + - 梌 + - 桹 + - 敔 + - 厣 + - 硔 + - 硙 + - 硚 + - 硊 + - 硍 + - 勔 + - 䴕 + - 龁 + - 逴 + - 唪 + - 啫 + - 翈 + - 㫰 + - 晙 + - 畤 + - 趼 + - 跂 + - 蛃 + - 蚲 + - 蚺 + - 啴 + - 䎃 + - 崧 + - 崟 + - 崞 + - 崒 + - 崌 + - 崡 + - 铏 + - 铕 + - 铖 + - 铘 + - 铚 + - 铞 + - 铥 + - 铴 + - 牻 + - 牿 + - 稆 + - 笱 + - 笯 + - 偰 + - 偡 + - 鸺 + - 偭 + - 偲 + - 偁 + - 㿠 + - 鄅 + - 偓 + - 徛 + - 衒 + - 舳 + - 舲 + - 鸼 + - 悆 + - 鄃 + - 瓻 + - 䝙 + - 脶 + - 脞 + - 脟 + - 䏲 + - 鱾 + - 猇 + - 猊 + - 猄 + - 觖 + - 𠅤 + - 庱 + - 庼 + - 庳 + - 痓 + - 䴔 + - 竫 + - 堃 + - 阌 + - 羝 + - 羕 + - 焆 + - 烺 + - 焌 + - 淏 + - 淟 + - 淜 + - 淴 + - 淯 + - 湴 + - 涴 + - 㥄 + - 惛 + - 惔 + - 悰 + - 惙 + - 寁 + - 逭 + - 袼 + - 裈 + - 祲 + - 谞 + - 艴 + - 弸 + - 弶 + - 隃 + - 婞 + - 娵 + - 婼 + - 媖 + - 婳 + - 婍 + - 婌 + - 婫 + - 婤 + - 婘 + - 婠 + - 绹 + - 骕 + - 絜 + - 珷 + - 琲 + - 琡 + - 琟 + - 琔 + - 琭 + - 堾 + - 堼 + - 揕 + - 㙘 + - 堧 + - 喆 + - 堨 + - 塅 + - 堠 + - 絷 + - 𡎚 + - 葜 + - 惎 + - 萳 + - 葙 + - 靬 + - 葴 + - 蒇 + - 蒈 + - 鄚 + - 蒉 + - 蓇 + - 萩 + - 蒐 + - 葰 + - 葎 + - 鄑 + - 蒎 + - 葖 + - 蒄 + - 萹 + - 棤 + - 棽 + - 棫 + - 椓 + - 椑 + - 鹀 + - 椆 + - 棓 + - 棬 + - 棪 + - 椀 + - 楗 + - 甦 + - 酦 + - 觌 + - 奡 + - 皕 + - 硪 + - 欹 + - 詟 + - 辌 + - 棐 + - 龂 + - 黹 + - 牚 + - 睎 + - 晫 + - 晪 + - 晱 + - 𧿹 + - 蛑 + - 畯 + - 斝 + - 喤 + - 崶 + - 嵁 + - 崾 + - 嵅 + - 崿 + - 嵚 + - 翙 + - 圌 + - 圐 + - 赑 + - 淼 + - 赒 + - 铹 + - 铽 + - 𨱇 + - 锊 + - 锍 + - 锎 + - 锓 + - 犇 + - 颋 + - 稌 + - 筀 + - 筘 + - 筜 + - 筥 + - 筅 + - 傃 + - 傉 + - 翛 + - 傒 + - 傕 + - 舾 + - 畬 + - 脿 + - 腘 + - 䐃 + - 腙 + - 腒 + - 鲃 + - 猰 + - 猯 + - 㺄 + - 馉 + - 鄗 + - 廋 + - 廆 + - 鄌 + - 粢 + - 遆 + - 旐 + - 焞 + - 欻 + - 𣸣 + - 溚 + - 溁 + - 湝 + - 渰 + - 湓 + - 㴔 + - 渟 + - 溠 + - 渼 + - 溇 + - 湣 + - 湑 + - 溞 + - 愐 + - 愃 + - 敩 + - 甯 + - 棨 + - 扊 + - 裣 + - 祼 + - 婻 + - 媆 + - 媞 + - 㛹 + - 媓 + - 媂 + - 媄 + - 毵 + - 矞 + - 缊 + - 缐 + - 骙 + - 瑃 + - 瑓 + - 瑅 + - 瑆 + - 䴖 + - 瑖 + - 瑝 + - 瑔 + - 瑀 + - 𤧛 + - 瑳 + - 瑂 + - 嶅 + - 瑑 + - 遘 + - 髢 + - 塥 + - 堽 + - 赪 + - 摛 + - 塝 + - 搒 + - 搌 + - 蒱 + - 蒨 + - 蓏 + - 蔀 + - 蓢 + - 蓂 + - 蒻 + - 蓣 + - 椹 + - 楪 + - 榃 + - 榅 + - 楒 + - 楞 + - 楩 + - 榇 + - 椸 + - 楙 + - 歅 + - 碃 + - 碏 + - 碈 + - 䃅 + - 硿 + - 鄠 + - 辒 + - 龆 + - 觜 + - 䣘 + - 暕 + - 鹍 + - 㬊 + - 暅 + - 跱 + - 蜐 + - 蜎 + - 嵲 + - 赗 + - 骱 + - 锖 + - 锘 + - 锳 + - 锧 + - 锪 + - 锫 + - 锬 + - 稑 + - 稙 + - 䅟 + - 筻 + - 筼 + - 筶 + - 筦 + - 筤 + - 傺 + - 鹎 + - 僇 + - 艅 + - 艉 + - 谼 + - 貆 + - 腽 + - 腨 + - 腯 + - 鲉 + - 鲊 + - 鲌 + - 䲟 + - 鲏 + - 雊 + - 猺 + - 飔 + - 觟 + - 𦝼 + - 馌 + - 裛 + - 廒 + - 瘀 + - 瘅 + - 鄘 + - 鹒 + - 鄜 + - 麀 + - 鄣 + - 阘 + - 煁 + - 煃 + - 煴 + - 煋 + - 煟 + - 煓 + - 滠 + - 溍 + - 溹 + - 滆 + - 滉 + - 溦 + - 溵 + - 漷 + - 滧 + - 滘 + - 滍 + - 愭 + - 慥 + - 慆 + - 塱 + - 裼 + - 禋 + - 禔 + - 禘 + - 禒 + - 谫 + - 鹔 + - 愍 + - 嫄 + - 媱 + - 戤 + - 戣 + - 缞 + - 耤 + - 瑧 + - 瑨 + - 瑱 + - 瑷 + - 瑢 + - 斠 + - 摏 + - 墕 + - 墈 + - 墐 + - 墘 + - 摴 + - 銎 + - 𡐓 + - 墚 + - 撖 + - 靽 + - 鞁 + - 蔌 + - 蔈 + - 蓰 + - 蔹 + - 蔊 + - 嘏 + - 榰 + - 榑 + - 槚 + - 𣗋 + - 槜 + - 榍 + - 疐 + - 酺 + - 酾 + - 酲 + - 酴 + - 碶 + - 䃎 + - 碨 + - 𥔲 + - 碹 + - 碥 + - 劂 + - 䴗 + - 夥 + - 瞍 + - 鹖 + - 㬎 + - 跽 + - 蜾 + - 幖 + - 嶍 + - 圙 + - 𨱏 + - 锺 + - 锼 + - 锽 + - 锾 + - 锿 + - 镃 + - 镄 + - 镅 + - 馝 + - 鹙 + - 箨 + - 箖 + - 劄 + - 僬 + - 僦 + - 僔 + - 僎 + - 槃 + - 㙦 + - 鲒 + - 鲕 + - 鲖 + - 鲗 + - 鲘 + - 鲙 + - 𩽾 + - 夐 + - 獍 + - 飗 + - 凘 + - 廑 + - 廙 + - 瘗 + - 瘥 + - 瘕 + - 鲝 + - 鄫 + - 熇 + - 漹 + - 漖 + - 潆 + - 漤 + - 潩 + - 漼 + - 漴 + - 㽏 + - 漈 + - 漋 + - 漻 + - 慬 + - 窬 + - 窭 + - 㮾 + - 褕 + - 禛 + - 禚 + - 隩 + - 嫕 + - 嫭 + - 嫜 + - 嫪 + - 㻬 + - 麹 + - 璆 + - 漦 + - 叇 + - 墣 + - 墦 + - 墡 + - 劐 + - 薁 + - 蕰 + - 蔃 + - 鼒 + - 槱 + - 鹝 + - 磏 + - 磉 + - 殣 + - 慭 + - 霅 + - 暵 + - 暲 + - 暶 + - 踦 + - 踣 + - 䗖 + - 蝘 + - 蝲 + - 蝤 + - 噇 + - 噂 + - 噀 + - 罶 + - 嶲 + - 嶓 + - 㠇 + - 嶟 + - 嶒 + - 镆 + - 镈 + - 镋 + - 镎 + - 镕 + - 稹 + - 儇 + - 皞 + - 皛 + - 䴘 + - 艎 + - 艏 + - 鹟 + - 𩾃 + - 鲦 + - 鲪 + - 鲬 + - 橥 + - 觭 + - 鹠 + - 鹡 + - 糇 + - 糈 + - 翦 + - 鹢 + - 鹣 + - 熛 + - 潖 + - 潵 + - 㵐 + - 澂 + - 澛 + - 瑬 + - 潽 + - 潾 + - 潏 + - 憭 + - 憕 + - 戭 + - 褯 + - 禤 + - 嫽 + - 遹 + - 璥 + - 璲 + - 璒 + - 憙 + - 擐 + - 鄹 + - 薳 + - 鞔 + - 黇 + - 蕗 + - 薢 + - 蕹 + - 橞 + - 橑 + - 橦 + - 醑 + - 觱 + - 磡 + - 𥕢 + - 磜 + - 豮 + - 鹾 + - 虤 + - 暿 + - 曌 + - 曈 + - 㬚 + - 蹅 + - 踶 + - 䗛 + - 螗 + - 疁 + - 㠓 + - 幪 + - 嶦 + - 𨱑 + - 馞 + - 穄 + - 篚 + - 篯 + - 簉 + - 鼽 + - 衠 + - 盦 + - 螣 + - 縢 + - 鲭 + - 鲯 + - 鲰 + - 鲺 + - 鲹 + - 亸 + - 癀 + - 瘭 + - 羱 + - 糒 + - 燋 + - 熻 + - 燊 + - 燚 + - 燏 + - 濩 + - 濋 + - 澪 + - 澽 + - 澴 + - 澭 + - 澼 + - 憷 + - 憺 + - 懔 + - 黉 + - 嬛 + - 鹨 + - 翯 + - 璱 + - 𤩽 + - 璬 + - 璮 + - 髽 + - 擿 + - 薿 + - 薸 + - 檑 + - 櫆 + - 檞 + - 醨 + - 繄 + - 磹 + - 磻 + - 瞫 + - 瞵 + - 蹐 + - 蟏 + - 㘎 + - 镤 + - 镥 + - 镨 + - 𨱔 + - 矰 + - 穙 + - 穜 + - 穟 + - 簕 + - 簃 + - 簏 + - 儦 + - 魋 + - 斶 + - 艚 + - 谿 + - 䲠 + - 鲾 + - 鲿 + - 鳁 + - 鳂 + - 鳈 + - 鳉 + - 獯 + - 䗪 + - 馘 + - 襕 + - 襚 + - 螱 + - 甓 + - 嬬 + - 嬥 + - 𦈡 + - 瓀 + - 釐 + - 鬶 + - 爇 + - 鞳 + - 鞮 + - 藟 + - 藦 + - 藨 + - 鹲 + - 檫 + - 黡 + - 礞 + - 礌 + - 𥖨 + - 蹢 + - 蹜 + - 蟫 + - 䗴 + - 嚚 + - 髃 + - 镮 + - 镱 + - 酂 + - 馧 + - 簠 + - 簝 + - 簰 + - 鼫 + - 鼩 + - 皦 + - 臑 + - 䲢 + - 鳑 + - 鳒 + - 鹱 + - 鹯 + - 癗 + - 𦒍 + - 旞 + - 翷 + - 冁 + - 䎖 + - 瀔 + - 瀍 + - 瀌 + - 襜 + - 䴙 + - 嚭 + - 㰀 + - 鬷 + - 醭 + - 蹯 + - 蠋 + - 翾 + - 鳘 + - 儳 + - 儴 + - 鼗 + - 𩾌 + - 鳚 + - 鳛 + - 麑 + - 麖 + - 蠃 + - 彟 + - 嬿 + - 鬒 + - 蘘 + - 欂 + - 醵 + - 颥 + - 甗 + - 𨟠 + - 巇 + - 酅 + - 髎 + - 犨 + - 𨭉 + - 㸌 + - 爔 + - 瀱 + - 瀹 + - 瀼 + - 瀵 + - 襫 + - 孅 + - 骦 + - 耰 + - 𤫉 + - 瓖 + - 鬘 + - 趯 + - 罍 + - 鼱 + - 鳠 + - 鳡 + - 鳣 + - 爟 + - 爚 + - 灈 + - 韂 + - 糵 + - 蘼 + - 礵 + - 鹴 + - 躔 + - 皭 + - 龢 + - 鳤 + - 亹 + - 籥 + - 鼷 + - 玃 + - 醾 + - 齇 + - 觿 + - 蠼 + - 𬣙 + - 𬇕 + - 𬣞 + - 𬘓 + - 𫭟 + - 𫭢 + - 𫇭 + - 𫐄 + - 𫵷 + - 𬇙 + - 𬣡 + - 𫸩 + - 𫘜 + - 𬘘 + - 𫘝 + - 𬨂 + - 𬀩 + - 𬀪 + - 𬬩 + - 𫍣 + - 𬣳 + - 𬩽 + - 𬮿 + - 𬯀 + - 𫰛 + - 𬳵 + - 𬳶 + - 𫠊 + - 𬍛 + - 鿍 + - 𬜬 + - 𪾢 + - 𪨰 + - 𫓧 + - 𬬮 + - 𬬱 + - 𬬭 + - 𬘡 + - 𬳽 + - 𬘩 + - 𫄧 + - 𪟝 + - 𬍤 + - 𫭼 + - 𬜯 + - 𬂩 + - 𫠆 + - 𬌗 + - 𫑡 + - 𪨶 + - 𬬸 + - 𬬻 + - 𬬹 + - 𬬿 + - 𬭁 + - 𫢸 + - 𫗧 + - 𬊈 + - 𬒈 + - 𬳿 + - 𫄨 + - 𬘫 + - 𫮃 + - 鿎 + - 𬱖 + - 𬟽 + - 𫓯 + - 𫟹 + - 𫟼 + - 𬇹 + - 𬍡 + - 𬤇 + - 𫍯 + - 𬤊 + - 𫍲 + - 𬯎 + - 𬘬 + - 𬘭 + - 𬴂 + - 𫘦 + - 𫟅 + - 𬘯 + - 𫘧 + - 𪣻 + - 𬃊 + - 𬷕 + - 𫐐 + - 𬹼 + - 𫶇 + - 𫖮 + - 鿏 + - 𬭊 + - 𫓶 + - 𬭎 + - 𫖯 + - 𬱟 + - 𫛭 + - 𫷷 + - 𬮱 + - 𬊤 + - 𬴃 + - 𫘨 + - 𬪩 + - 𬒔 + - 𬨎 + - 𫐓 + - 𫫇 + - 𫓹 + - 𬭚 + - 𬭛 + - 𬕂 + - 𬶋 + - 𬶍 + - 𫔶 + - 𫌀 + - 𫖳 + - 𫘪 + - 𫘬 + - 𫞩 + - 𪤗 + - 𬸘 + - 𬒗 + - 𫚖 + - 𬭤 + - 𫚕 + - 𬶐 + - 𬶏 + - 𬸚 + - 𬤝 + - 𬙂 + - 𬭩 + - 𬸣 + - 𫍽 + - 𬴊 + - 𬞟 + - 𫟦 + - 𬺈 + - 𫠜 + - 𪩘 + - 𬭬 + - 𬭯 + - 𫗴 + - 𬸦 + - 𫄷 + - 𬭳 + - 𬭶 + - 𫔍 + - 𬭸 + - 𬭼 + - 𫔎 + - 𬸪 + - 𬶟 + - 𬶠 + - 𬶨 + - 𫄸 + - 𬟁 + - 𬙊 + - 𬶭 + - 𬶮 + - 𬙋 + - 𬺓 + - 𫚭 + - 廠 + - 蔔 + - 兒 + - 幾 + - 幹 + - 虧 + - 纔 + - 與 + - 萬 + - 韆 + - 億 + - 個 + - 廣 + - 門 + - 義 + - 衛 + - 飛 + - 習 + - 馬 + - 鄉 + - 豐 + - 開 + - 無 + - 雲 + - 專 + - 藝 + - 廳 + - 區 + - 歷 + - 曆 + - 車 + - 貝 + - 岡 + - 見 + - 氣 + - 長 + - 僕 + - 幣 + - 僅 + - 從 + - 侖 + - 倉 + - 風 + - 烏 + - 鳳 + - 爲 + - 鬥 + - 憶 + - 計 + - 訂 + - 認 + - 譏 + - 醜 + - 隊 + - 辦 + - 鄧 + - 勸 + - 雙 + - 書 + - 擊 + - 撲 + - 節 + - 術 + - 厲 + - 龍 + - 滅 + - 軋 + - 東 + - 盧 + - 業 + - 舊 + - 帥 + - 歸 + - 葉 + - 電 + - 號 + - 衹 + - 隻 + - 嘰 + - 嘆 + - 們 + - 儀 + - 叢 + - 爾 + - 樂 + - 處 + - 鼕 + - 鳥 + - 務 + - 飢 + - 饑 + - 馮 + - 閃 + - 蘭 + - 匯 + - 彙 + - 頭 + - 漢 + - 寧 + - 討 + - 寫 + - 讓 + - 禮 + - 訓 + - 議 + - 訊 + - 記 + - 齣 + - 遼 + - 邊 + - 發 + - 髮 + - 聖 + - 對 + - 臺 + - 颱 + - 檯 + - 糾 + - 絲 + - 動 + - 鞏 + - 執 + - 擴 + - 掃 + - 場 + - 揚 + - 亞 + - 樸 + - 機 + - 權 + - 過 + - 協 + - 壓 + - 厭 + - 頁 + - 誇 + - 奪 + - 達 + - 夾 + - 軌 + - 堯 + - 劃 + - 邁 + - 畢 + - 貞 + - 師 + - 塵 + - 當 + - 噹 + - 籲 + - 嚇 + - 蟲 + - 麯 + - 團 + - 糰 + - 嗎 + - 嶼 + - 歲 + - 迴 + - 豈 + - 則 + - 剛 + - 網 + - 硃 + - 遷 + - 喬 + - 偉 + - 傳 + - 優 + - 傷 + - 價 + - 倫 + - 華 + - 僞 + - 嚮 + - 後 + - 會 + - 殺 + - 閤 + - 衆 + - 爺 + - 傘 + - 創 + - 雜 + - 負 + - 壯 + - 衝 + - 妝 + - 莊 + - 慶 + - 劉 + - 齊 + - 産 + - 閉 + - 問 + - 闖 + - 關 + - 燈 + - 湯 + - 興 + - 講 + - 諱 + - 軍 + - 訝 + - 許 + - 訛 + - 論 + - 訟 + - 農 + - 諷 + - 設 + - 訪 + - 訣 + - 尋 + - 盡 + - 儘 + - 導 + - 孫 + - 陣 + - 陽 + - 階 + - 陰 + - 婦 + - 媽 + - 戲 + - 觀 + - 歡 + - 買 + - 紅 + - 馱 + - 纖 + - 縴 + - 馴 + - 約 + - 級 + - 紀 + - 馳 + - 紉 + - 壽 + - 麥 + - 瑪 + - 進 + - 遠 + - 違 + - 韌 + - 運 + - 撫 + - 壇 + - 罎 + - 壞 + - 摳 + - 擾 + - 貢 + - 垻 + - 壩 + - 摺 + - 掄 + - 搶 + - 墳 + - 護 + - 殻 + - 塊 + - 聲 + - 報 + - 擬 + - 蕪 + - 葦 + - 蒼 + - 嚴 + - 蘆 + - 勞 + - 蘇 + - 囌 + - 極 + - 楊 + - 兩 + - 麗 + - 醫 + - 勵 + - 還 + - 殲 + - 來 + - 連 + - 軒 + - 鹵 + - 滷 + - 堅 + - 時 + - 縣 + - 裏 + - 嘔 + - 園 + - 曠 + - 圍 + - 噸 + - 郵 + - 睏 + - 員 + - 聽 + - 嗆 + - 嗚 + - 彆 + - 嶇 + - 崗 + - 帳 + - 財 + - 針 + - 釘 + - 亂 + - 體 + - 傭 + - 徹 + - 餘 + - 穀 + - 鄰 + - 腸 + - 龜 + - 猶 + - 狽 + - 條 + - 島 + - 飯 + - 飲 + - 係 + - 繫 + - 凍 + - 狀 + - 畝 + - 庫 + - 療 + - 應 + - 這 + - 廬 + - 閏 + - 閑 + - 間 + - 悶 + - 竈 + - 燦 + - 瀝 + - 淪 + - 滄 + - 溝 + - 滬 + - 瀋 + - 懷 + - 憂 + - 窮 + - 證 + - 啓 + - 評 + - 補 + - 識 + - 詐 + - 訴 + - 診 + - 詞 + - 譯 + - 靈 + - 層 + - 遲 + - 張 + - 際 + - 陸 + - 陳 + - 墜 + - 勁 + - 鷄 + - 緯 + - 驅 + - 純 + - 紗 + - 綱 + - 納 + - 駁 + - 縱 + - 紛 + - 紙 + - 紋 + - 紡 + - 驢 + - 紐 + - 環 + - 責 + - 現 + - 錶 + - 規 + - 攏 + - 揀 + - 擔 + - 頂 + - 擁 + - 勢 + - 攔 + - 擰 + - 撥 + - 擇 + - 蘋 + - 範 + - 莖 + - 樞 + - 櫃 + - 闆 + - 鬆 + - 槍 + - 楓 + - 構 + - 喪 + - 畫 + - 棗 + - 賣 + - 鬱 + - 礬 + - 礦 + - 碼 + - 厠 + - 奮 + - 態 + - 歐 + - 毆 + - 壟 + - 轟 + - 頃 + - 轉 + - 斬 + - 輪 + - 軟 + - 齒 + - 虜 + - 腎 + - 賢 + - 國 + - 暢 + - 嚨 + - 鳴 + - 羅 + - 幟 + - 嶺 + - 凱 + - 敗 + - 賬 + - 販 + - 貶 + - 購 + - 貯 + - 圖 + - 釣 + - 製 + - 颳 + - 俠 + - 僥 + - 偵 + - 側 + - 憑 + - 僑 + - 貨 + - 質 + - 徑 + - 捨 + - 覓 + - 貪 + - 貧 + - 膚 + - 腫 + - 脹 + - 骯 + - 脅 + - 魚 + - 獰 + - 備 + - 飾 + - 飽 + - 飼 + - 變 + - 龐 + - 廟 + - 瘧 + - 劑 + - 廢 + - 閘 + - 鬧 + - 鄭 + - 捲 + - 單 + - 爐 + - 淺 + - 濘 + - 瀉 + - 潑 + - 澤 + - 憐 + - 學 + - 寶 + - 寵 + - 審 + - 簾 + - 實 + - 試 + - 詩 + - 誠 + - 襯 + - 視 + - 話 + - 誕 + - 詭 + - 詢 + - 該 + - 詳 + - 肅 + - 録 + - 隸 + - 彌 + - 瀰 + - 陝 + - 駕 + - 參 + - 艱 + - 綫 + - 練 + - 組 + - 紳 + - 細 + - 駛 + - 織 + - 駒 + - 終 + - 駐 + - 絆 + - 駝 + - 紹 + - 繹 + - 經 + - 貫 + - 貳 + - 幫 + - 項 + - 挾 + - 撓 + - 趙 + - 擋 + - 墊 + - 擠 + - 揮 + - 薦 + - 帶 + - 繭 + - 蕩 + - 榮 + - 葷 + - 熒 + - 鬍 + - 蔭 + - 藥 + - 標 + - 棧 + - 棟 + - 欄 + - 檸 + - 樹 + - 鹹 + - 磚 + - 硯 + - 麵 + - 牽 + - 鷗 + - 殘 + - 軸 + - 輕 + - 鴉 + - 戰 + - 點 + - 臨 + - 覽 + - 竪 + - 嘗 + - 啞 + - 顯 + - 貴 + - 蝦 + - 蟻 + - 螞 + - 雖 + - 駡 + - 勛 + - 嘩 + - 響 + - 喲 + - 峽 + - 罰 + - 賤 + - 貼 + - 貽 + - 鈣 + - 鈍 + - 鈔 + - 鍾 + - 鐘 + - 鋼 + - 鈉 + - 鑰 + - 欽 + - 鈞 + - 鈎 + - 鈕 + - 氈 + - 氫 + - 選 + - 適 + - 種 + - 鞦 + - 復 + - 複 + - 倆 + - 貸 + - 順 + - 儉 + - 須 + - 鬚 + - 劍 + - 朧 + - 膽 + - 勝 + - 狹 + - 獅 + - 獨 + - 獄 + - 貿 + - 餌 + - 饒 + - 蝕 + - 餃 + - 餅 + - 巒 + - 彎 + - 將 + - 奬 + - 瘡 + - 瘋 + - 親 + - 閨 + - 聞 + - 閩 + - 閥 + - 閣 + - 養 + - 薑 + - 類 + - 婁 + - 總 + - 煉 + - 爍 + - 爛 + - 窪 + - 潔 + - 灑 + - 澆 + - 濁 + - 測 + - 瀏 + - 濟 + - 渾 + - 濃 + - 惱 + - 舉 + - 覺 + - 憲 + - 竊 + - 誡 + - 誣 + - 語 + - 襖 + - 誤 + - 誘 + - 誨 + - 説 + - 誦 + - 墾 + - 晝 + - 費 + - 遜 + - 隕 + - 險 + - 嬌 + - 賀 + - 壘 + - 綁 + - 絨 + - 結 + - 繞 + - 驕 + - 繪 + - 給 + - 絢 + - 駱 + - 絡 + - 絶 + - 絞 + - 駭 + - 統 + - 艷 + - 蠶 + - 頑 + - 盞 + - 撈 + - 載 + - 趕 + - 鹽 + - 損 + - 撿 + - 摯 + - 剝 + - 熱 + - 搗 + - 壺 + - 聶 + - 萊 + - 蓮 + - 獲 + - 穫 + - 惡 + - 噁 + - 瑩 + - 鶯 + - 檔 + - 橋 + - 樺 + - 樁 + - 樣 + - 賈 + - 礫 + - 礎 + - 顧 + - 轎 + - 較 + - 頓 + - 斃 + - 緻 + - 慮 + - 監 + - 緊 + - 黨 + - 曬 + - 曉 + - 嘮 + - 鴨 + - 暈 + - 鴦 + - 罷 + - 圓 + - 賊 + - 賄 + - 賂 + - 贜 + - 錢 + - 鉗 + - 鑽 + - 鉀 + - 鐵 + - 鈴 + - 鉛 + - 犧 + - 敵 + - 積 + - 稱 + - 筆 + - 債 + - 傾 + - 賃 + - 艦 + - 艙 + - 聳 + - 愛 + - 頒 + - 頌 + - 臟 + - 髒 + - 臍 + - 膠 + - 腦 + - 膿 + - 鴕 + - 鴛 + - 皺 + - 餓 + - 餒 + - 戀 + - 槳 + - 漿 + - 準 + - 癥 + - 齋 + - 離 + - 資 + - 競 + - 閲 + - 煩 + - 燒 + - 燭 + - 遞 + - 濤 + - 澇 + - 渦 + - 塗 + - 滌 + - 潤 + - 澗 + - 漲 + - 燙 + - 澀 + - 憫 + - 寬 + - 傢 + - 賓 + - 竅 + - 請 + - 諸 + - 諾 + - 讀 + - 誹 + - 襪 + - 課 + - 誰 + - 調 + - 諒 + - 諄 + - 談 + - 誼 + - 懇 + - 劇 + - 難 + - 預 + - 絹 + - 綉 + - 驗 + - 繼 + - 駿 + - 瑣 + - 擲 + - 據 + - 摻 + - 職 + - 蘿 + - 螢 + - 營 + - 蕭 + - 薩 + - 夢 + - 檢 + - 醖 + - 碩 + - 聾 + - 襲 + - 輔 + - 輛 + - 顱 + - 懸 + - 躍 + - 纍 + - 囉 + - 嘯 + - 嶄 + - 邏 + - 嬰 + - 銬 + - 鐺 + - 鋁 + - 銅 + - 銘 + - 鏟 + - 銀 + - 矯 + - 穢 + - 籠 + - 償 + - 軀 + - 釁 + - 銜 + - 盤 + - 鴿 + - 斂 + - 領 + - 臉 + - 獵 + - 餡 + - 館 + - 癢 + - 鏇 + - 閻 + - 闡 + - 蓋 + - 斷 + - 獸 + - 鴻 + - 漸 + - 淵 + - 漁 + - 澱 + - 滲 + - 慚 + - 懼 + - 驚 + - 慘 + - 慣 + - 謀 + - 諜 + - 謊 + - 諧 + - 禱 + - 禍 + - 謂 + - 諺 + - 謎 + - 彈 + - 墮 + - 隨 + - 隱 + - 嬸 + - 頗 + - 頸 + - 績 + - 緒 + - 續 + - 騎 + - 綽 + - 繩 + - 維 + - 綿 + - 綳 + - 綢 + - 綜 + - 綻 + - 緑 + - 綴 + - 瓊 + - 趨 + - 攬 + - 攙 + - 擱 + - 摟 + - 攪 + - 聯 + - 蔣 + - 韓 + - 橢 + - 確 + - 頰 + - 靂 + - 暫 + - 翹 + - 輩 + - 鑿 + - 輝 + - 賞 + - 睞 + - 噴 + - 疇 + - 踐 + - 遺 + - 鵑 + - 賦 + - 賭 + - 贖 + - 賜 + - 賠 + - 鑄 + - 鋪 + - 鏈 + - 銷 + - 鎖 + - 鋤 + - 鍋 + - 銹 + - 鋒 + - 鋅 + - 鋭 + - 鵝 + - 築 + - 篩 + - 儲 + - 懲 + - 禦 + - 釋 + - 臘 + - 魯 + - 憊 + - 饋 + - 饞 + - 裝 + - 蠻 + - 闊 + - 糞 + - 滯 + - 濕 + - 潰 + - 濺 + - 灣 + - 憤 + - 竄 + - 窩 + - 褲 + - 禪 + - 謝 + - 謡 + - 謗 + - 謙 + - 屬 + - 屢 + - 緬 + - 纜 + - 緝 + - 緞 + - 緩 + - 締 + - 縷 + - 騙 + - 編 + - 騷 + - 緣 + - 鵡 + - 攝 + - 擺 + - 襬 + - 攤 + - 鵲 + - 藍 + - 濛 + - 懞 + - 矇 + - 獻 + - 欖 + - 樓 + - 賴 + - 礙 + - 尷 + - 霧 + - 輻 + - 輯 + - 輸 + - 頻 + - 齡 + - 鑒 + - 蹺 + - 蝸 + - 錯 + - 錨 + - 錫 + - 鑼 + - 錘 + - 錐 + - 錦 + - 鍵 + - 鋸 + - 錳 + - 辭 + - 頽 + - 籌 + - 簽 + - 籤 + - 簡 + - 膩 + - 鵬 + - 騰 + - 鮑 + - 穎 + - 觸 + - 雛 + - 饃 + - 餾 + - 醬 + - 謄 + - 糧 + - 數 + - 滿 + - 濾 + - 濫 + - 灕 + - 濱 + - 灘 + - 譽 + - 窺 + - 寢 + - 謹 + - 謬 + - 闢 + - 縛 + - 縫 + - 纏 + - 繽 + - 贅 + - 墻 + - 衊 + - 藹 + - 檻 + - 釀 + - 願 + - 轄 + - 輾 + - 顆 + - 踴 + - 蠟 + - 蠅 + - 蟬 + - 賺 + - 鍬 + - 鍛 + - 鍍 + - 穩 + - 籮 + - 簫 + - 輿 + - 鮮 + - 饅 + - 瀟 + - 賽 + - 譚 + - 譜 + - 騾 + - 縮 + - 攆 + - 聰 + - 藴 + - 櫻 + - 飄 + - 黴 + - 瞞 + - 題 + - 囑 + - 鎮 + - 鎬 + - 鎊 + - 簍 + - 鯉 + - 鯽 + - 癟 + - 癱 + - 顔 + - 鯊 + - 瀾 + - 額 + - 譴 + - 鶴 + - 繚 + - 顛 + - 轍 + - 鸚 + - 贈 + - 鏡 + - 贊 + - 籃 + - 籬 + - 鯨 + - 癮 + - 辯 + - 瀕 + - 懶 + - 繮 + - 繳 + - 矚 + - 贍 + - 鰐 + - 辮 + - 贏 + - 驟 + - 囂 + - 鐮 + - 鰭 + - 鷹 + - 巔 + - 顫 + - 癬 + - 鱉 + - 鬢 + - 鱗 + - 躪 + - 贛 + - 鑲 + - 韋 + - 閂 + - 訃 + - 勱 + - 芻 + - 鄺 + - 訐 + - 訌 + - 訕 + - 訖 + - 馭 + - 璣 + - 壙 + - 捫 + - 薌 + - 厙 + - 釔 + - 傴 + - 倀 + - 傖 + - 獷 + - 獁 + - 鳬 + - 鄔 + - 餳 + - 懺 + - 謳 + - 詎 + - 訥 + - 紆 + - 紂 + - 紇 + - 紈 + - 璵 + - 摶 + - 塢 + - 㩳 + - 蕓 + - 藶 + - 莧 + - 萇 + - 蓯 + - 磯 + - 奩 + - 歟 + - 軔 + - 鄴 + - 嘸 + - 囈 + - 嚦 + - 暘 + - 唄 + - 幃 + - 峴 + - 嵐 + - 圇 + - 釗 + - 釙 + - 釕 + - 僉 + - 鳩 + - 鄒 + - 飩 + - 餼 + - 飪 + - 飫 + - 飭 + - 廡 + - 癤 + - 闈 + - 閎 + - 閔 + - 煬 + - 灃 + - 漚 + - 渢 + - 潙 + - 憮 + - 慪 + - 愾 + - 悵 + - 愴 + - 詁 + - 訶 + - 詛 + - 詆 + - 謅 + - 詔 + - 詒 + - 隴 + - 陘 + - 嫵 + - 嫗 + - 嬀 + - 剄 + - 紜 + - 紕 + - 紝 + - 綸 + - 紓 + - 瑋 + - 匭 + - 壚 + - 擓 + - 蘢 + - 蔦 + - 塋 + - 煢 + - 櫪 + - 梘 + - 棖 + - 樅 + - 碭 + - 甌 + - 郟 + - 軛 + - 鳶 + - 曇 + - 蟣 + - 黽 + - 嚀 + - 噝 + - 巋 + - 劌 + - 剴 + - 嶧 + - 釷 + - 釺 + - 釧 + - 釩 + - 釹 + - 釵 + - 儈 + - 儕 + - 儂 + - 劊 + - 慫 + - 糴 + - 戧 + - 膞 + - 邇 + - 梟 + - 餞 + - 飴 + - 癘 + - 瘍 + - 煒 + - 熰 + - 熗 + - 瀧 + - 瀘 + - 濼 + - 涇 + - 㥮 + - 懌 + - 誆 + - 誄 + - 詿 + - 詰 + - 詼 + - 鄆 + - 禕 + - 誅 + - 詵 + - 詬 + - 詮 + - 詣 + - 諍 + - 詫 + - 諢 + - 詡 + - 駑 + - 紺 + - 紲 + - 紱 + - 駟 + - 駙 + - 縐 + - 絀 + - 驛 + - 駘 + - 瓏 + - 頇 + - 埡 + - 撾 + - 撻 + - 賁 + - 壋 + - 撏 + - 莢 + - 貰 + - 蓽 + - 蕎 + - 薈 + - 薺 + - 堊 + - 滎 + - 犖 + - 蕁 + - 藎 + - 蓀 + - 蕒 + - 葤 + - 櫛 + - 櫳 + - 櫨 + - 櫟 + - 檉 + - 酈 + - 硨 + - 碸 + - 殤 + - 軲 + - 軻 + - 轤 + - 軼 + - 軫 + - 蠆 + - 覘 + - 瞘 + - 嘵 + - 嗶 + - 噦 + - 剮 + - 鄖 + - 噲 + - 噥 + - 嶢 + - 幀 + - 嶠 + - 貺 + - 鈈 + - 鈦 + - 鋇 + - 鈑 + - 鈐 + - 鎢 + - 鈁 + - 鈀 + - 篤 + - 儔 + - 儼 + - 儷 + - 腖 + - 臚 + - 脛 + - 鴇 + - 獪 + - 颮 + - 猻 + - 餉 + - 餄 + - 餎 + - 孿 + - 孌 + - 癧 + - 瘲 + - 颯 + - 闥 + - 閭 + - 闓 + - 閡 + - 熾 + - 烴 + - 浹 + - 澮 + - 滸 + - 潯 + - 濜 + - 慟 + - 懨 + - 愷 + - 惻 + - 惲 + - 誚 + - 禰 + - 誥 + - 誑 + - 鴆 + - 婭 + - 嬈 + - 懟 + - 絝 + - 驍 + - 驊 + - 絎 + - 絳 + - 駢 + - 頊 + - 璫 + - 琿 + - 塒 + - 塤 + - 堝 + - 贄 + - 蒔 + - 萵 + - 蕕 + - 鴣 + - 蒓 + - 橈 + - 楨 + - 榿 + - 檜 + - 邐 + - 礪 + - 礱 + - 軾 + - 輊 + - 輅 + - 鶇 + - 躉 + - 齔 + - 鸕 + - 矓 + - 嘜 + - 鴞 + - 蜆 + - 嗩 + - 嶗 + - 崍 + - 覬 + - 賅 + - 鈺 + - 鉦 + - 鈷 + - 鉢 + - 鈸 + - 鉞 + - 鉭 + - 鉬 + - 鈿 + - 鈾 + - 鉑 + - 鑠 + - 鉚 + - 鈰 + - 鉉 + - 鉈 + - 鉍 + - 鈮 + - 鈹 + - 鏺 + - 鐸 + - 氬 + - 筧 + - 頎 + - 徠 + - 膾 + - 鴟 + - 璽 + - 鴝 + - 獫 + - 裊 + - 餑 + - 欒 + - 攣 + - 癰 + - 痙 + - 頏 + - 閫 + - 鬮 + - 誾 + - 閬 + - 鄲 + - 燁 + - 燴 + - 燼 + - 淶 + - 漣 + - 潿 + - 慳 + - 諏 + - 諑 + - 禎 + - 諉 + - 諛 + - 諗 + - 諂 + - 誶 + - 媧 + - 嫻 + - 綆 + - 驪 + - 綃 + - 騁 + - 綏 + - 縧 + - 綈 + - 駸 + - 鷥 + - 燾 + - 璉 + - 麩 + - 擄 + - 摑 + - 鷙 + - 撣 + - 慤 + - 摜 + - 縈 + - 槤 + - 覡 + - 欞 + - 嗇 + - 匱 + - 硤 + - 磽 + - 鴯 + - 龔 + - 殞 + - 殮 + - 賚 + - 輒 + - 塹 + - 嘖 + - 囀 + - 嚙 + - 蹌 + - 蠣 + - 蠱 + - 蟶 + - 幘 + - 幗 + - 賕 + - 賑 + - 賒 + - 銠 + - 鉺 + - 鋏 + - 鐃 + - 銦 + - 鎧 + - 鍘 + - 銖 + - 銑 + - 鋌 + - 鏵 + - 銓 + - 鎩 + - 鉿 + - 銚 + - 鉻 + - 錚 + - 銫 + - 鉸 + - 銥 + - 銃 + - 銨 + - 銣 + - 鴰 + - 穠 + - 箋 + - 籩 + - 僨 + - 僂 + - 皚 + - 鴴 + - 艫 + - 龕 + - 玀 + - 獼 + - 餜 + - 餛 + - 鸞 + - 闍 + - 閾 + - 閹 + - 閶 + - 鬩 + - 閽 + - 閼 + - 羥 + - 糲 + - 燜 + - 漬 + - 瀆 + - 澠 + - 愜 + - 憚 + - 諶 + - 諫 + - 皸 + - 謔 + - 襠 + - 謁 + - 諤 + - 諭 + - 諼 + - 讒 + - 諳 + - 諦 + - 諞 + - 糶 + - 嬋 + - 綾 + - 騏 + - 綺 + - 緋 + - 緔 + - 騍 + - 緄 + - 騅 + - 綬 + - 綹 + - 綣 + - 綰 + - 驂 + - 緇 + - 靚 + - 輦 + - 黿 + - 頡 + - 撳 + - 蟄 + - 壪 + - 蔞 + - 櫝 + - 欏 + - 賫 + - 鵓 + - 鸝 + - 殫 + - 輥 + - 輞 + - 槧 + - 輟 + - 輜 + - 瞼 + - 躒 + - 蛺 + - 蟯 + - 螄 + - 蠐 + - 嘍 + - 嶸 + - 嶁 + - 賧 + - 鋙 + - 錸 + - 鏗 + - 鋥 + - 鋰 + - 鋯 + - 鋨 + - 銼 + - 鐧 + - 銻 + - 鋃 + - 鋦 + - 錒 + - 犢 + - 鵠 + - 篳 + - 牘 + - 儻 + - 儐 + - 儺 + - 嬃 + - 頜 + - 鵒 + - 魷 + - 魨 + - 魴 + - 潁 + - 颶 + - 觴 + - 熲 + - 餷 + - 餿 + - 褻 + - 臠 + - 癆 + - 癇 + - 賡 + - 頦 + - 鷳 + - 闌 + - 闃 + - 闋 + - 鵜 + - 憒 + - 嚳 + - 謨 + - 褳 + - 襇 + - 讜 + - 謖 + - 謚 + - 謐 + - 騭 + - 巰 + - 翬 + - 騖 + - 緙 + - 緗 + - 緘 + - 緹 + - 緲 + - 緦 + - 緱 + - 縋 + - 緡 + - 饗 + - 耮 + - 驁 + - 韞 + - 攄 + - 擯 + - 轂 + - 驀 + - 鶓 + - 薊 + - 蘺 + - 鎣 + - 頤 + - 櫚 + - 櫸 + - 磧 + - 磣 + - 鵪 + - 輳 + - 齟 + - 齙 + - 韙 + - 囁 + - 躂 + - 蹕 + - 躚 + - 躋 + - 噯 + - 鍺 + - 錛 + - 錡 + - 鍀 + - 錁 + - 錕 + - 錮 + - 鍁 + - 錈 + - 錠 + - 錙 + - 覦 + - 頷 + - 鮁 + - 鮃 + - 鮎 + - 鱸 + - 穌 + - 鮒 + - 鮐 + - 鵮 + - 颼 + - 饈 + - 鶉 + - 瘮 + - 闔 + - 闐 + - 闕 + - 灧 + - 瀅 + - 潷 + - 灤 + - 澦 + - 懾 + - 鱟 + - 騫 + - 竇 + - 謾 + - 謫 + - 嬡 + - 嬪 + - 縉 + - 縝 + - 縟 + - 轡 + - 騮 + - 縞 + - 縭 + - 縊 + - 縑 + - 騸 + - 覯 + - 韜 + - 靉 + - 攖 + - 薔 + - 藺 + - 鶘 + - 檳 + - 櫧 + - 釅 + - 殯 + - 霽 + - 轅 + - 齜 + - 齦 + - 瞜 + - 曖 + - 躊 + - 蟈 + - 鶚 + - 嚶 + - 羆 + - 賻 + - 罌 + - 鶻 + - 鍥 + - 鍇 + - 鍶 + - 鍔 + - 鍤 + - 鏘 + - 鎂 + - 鏤 + - 簀 + - 篋 + - 簞 + - 籙 + - 臏 + - 鮭 + - 鮪 + - 鱭 + - 鮫 + - 鱘 + - 饉 + - 鑾 + - 瘻 + - 闞 + - 鮝 + - 糝 + - 鷀 + - 瀲 + - 濰 + - 譖 + - 褸 + - 譙 + - 讕 + - 譎 + - 鶥 + - 嬙 + - 鶩 + - 驃 + - 縹 + - 縵 + - 縲 + - 纓 + - 驄 + - 繆 + - 繅 + - 耬 + - 瓔 + - 擷 + - 擼 + - 攛 + - 聵 + - 覲 + - 韃 + - 鞽 + - 蘄 + - 賾 + - 檣 + - 靨 + - 魘 + - 饜 + - 轆 + - 齬 + - 齪 + - 覷 + - 顒 + - 躓 + - 躑 + - 蠑 + - 螻 + - 顎 + - 嚕 + - 顓 + - 鑷 + - 鎘 + - 鎸 + - 鎳 + - 鎦 + - 鎰 + - 鎵 + - 鑌 + - 簣 + - 鷂 + - 鯁 + - 鱺 + - 鰱 + - 鰹 + - 鰣 + - 鯀 + - 鯇 + - 觶 + - 饊 + - 饌 + - 齏 + - 讞 + - 襤 + - 譫 + - 屨 + - 纈 + - 繕 + - 繒 + - 驏 + - 擻 + - 顳 + - 顢 + - 藪 + - 櫓 + - 櫞 + - 贋 + - 飆 + - 鏨 + - 轔 + - 蟎 + - 鐯 + - 鏢 + - 鏜 + - 鏝 + - 鏰 + - 鏞 + - 鏑 + - 鏃 + - 鏐 + - 氌 + - 穡 + - 魎 + - 鯪 + - 鯡 + - 鯤 + - 鯧 + - 鯝 + - 鯢 + - 鯛 + - 鯔 + - 獺 + - 鷓 + - 贇 + - 癭 + - 斕 + - 瀨 + - 顙 + - 繾 + - 繰 + - 繯 + - 蘚 + - 鷯 + - 齲 + - 齷 + - 躡 + - 蹣 + - 羈 + - 鐔 + - 鐝 + - 鐐 + - 鐓 + - 鑭 + - 鑹 + - 鏹 + - 鐙 + - 籪 + - 鷦 + - 鱝 + - 鰈 + - 鯷 + - 鰓 + - 鰍 + - 鰉 + - 鯿 + - 鷲 + - 懣 + - 鷸 + - 鰲 + - 韉 + - 顥 + - 鷺 + - 䴉 + - 髏 + - 鑊 + - 鐳 + - 鐲 + - 讎 + - 鰨 + - 鰥 + - 鰩 + - 癩 + - 攢 + - 靄 + - 躥 + - 髖 + - 髕 + - 鑔 + - 籟 + - 鰳 + - 鰾 + - 鱈 + - 鰻 + - 鱅 + - 讖 + - 驥 + - 纘 + - 瓚 + - 鼉 + - 黷 + - 黲 + - 鑣 + - 鑞 + - 臢 + - 鱖 + - 鱔 + - 鱒 + - 驤 + - 顰 + - 鱧 + - 癲 + - 灝 + - 鸛 + - 鑱 + - 趲 + - 顴 + - 躦 + - 饢 + - 戇 + - 戔 + - 訏 + - 訒 + - 釓 + - 俔 + - 閆 + - 澫 + - 訢 + - 訩 + - 詝 + - 紃 + - 纊 + - 瑒 + - 剗 + - 塸 + - 壢 + - 埨 + - 撝 + - 蔿 + - 榪 + - 軑 + - 軏 + - 咼 + - 㠣 + - 覎 + - 㑳 + - 颺 + - 閌 + - 潕 + - 湋 + - 澐 + - 浿 + - 諓 + - 禡 + - 詗 + - 詘 + - 詖 + - 屓 + - 彄 + - 紘 + - 馹 + - 馼 + - 紵 + - 紞 + - 駃 + - 紖 + - 瑲 + - 薴 + - 棡 + - 軝 + - 暐 + - 晛 + - 崬 + - 釴 + - 釤 + - 鍆 + - 鍚 + - 鄶 + - 獮 + - 飿 + - 嶨 + - 詷 + - 詪 + - 鄩 + - 鳲 + - 隑 + - 隮 + - 娙 + - 逕 + - 駓 + - 駔 + - 駉 + - 絅 + - 騶 + - 䮄 + - 紼 + - 紿 + - 瓅 + - 韍 + - 墶 + - 塏 + - 薘 + - 蕘 + - 蔄 + - 葒 + - 鳾 + - 龑 + - 軹 + - 軤 + - 轢 + - 軺 + - 睍 + - 曨 + - 噠 + - 鈃 + - 鈇 + - 鉅 + - 鋹 + - 釿 + - 錀 + - 鈧 + - 鈥 + - 鈄 + - 倈 + - 艤 + - 鶬 + - 颭 + - 餏 + - 湞 + - 溮 + - 滻 + - 褘 + - 絰 + - 駰 + - 絪 + - 駪 + - 綎 + - 綖 + - 驫 + - 勣 + - 璕 + - 𡑍 + - 䓣 + - 薟 + - 藭 + - 椏 + - 梜 + - 頍 + - 硜 + - 輄 + - 輈 + - 輇 + - 貲 + - 嗊 + - 曄 + - 暉 + - 鄳 + - 幬 + - 輋 + - 嶮 + - 贐 + - 鉥 + - 鉕 + - 鑪 + - 鉮 + - 鉊 + - 鉧 + - 僤 + - 鴒 + - 魛 + - 餗 + - 燖 + - 溳 + - 礐 + - 窵 + - 襏 + - 駼 + - 絺 + - 綌 + - 騂 + - 綄 + - 璡 + - 墠 + - 壼 + - 聹 + - 蘀 + - 勩 + - 罃 + - 檮 + - 棶 + - 厴 + - 䃮 + - 磑 + - 礄 + - 鴷 + - 齕 + - 頔 + - 廼 + - 凢 + - 亾 + - 枒 + - 屍 + - 匃 + - 匄 + - 紥 + - 紮 + - 疋 + - 殀 + - 讐 + - 觔 + - 兇 + - 宂 + - 㕥 + - 㠯 + - 栞 + - 佈 + - 佔 + - 呌 + - 敂 + - 冄 + - 坵 + - 僊 + - 怱 + - 悤 + - 冊 + - 夘 + - 戼 + - 牠 + - 妳 + - 嬭 + - 摃 + - 釦 + - 攷 + - 託 + - 衺 + - 衕 + - 弔 + - 喫 + - 囙 + - 㠶 + - 颿 + - 秊 + - 倣 + - 髣 + - 佀 + - 朶 + - 氷 + - 決 + - 併 + - 並 + - 竝 + - 汙 + - 汚 + - 異 + - 姦 + - 廵 + - 挵 + - 衖 + - 搤 + - 阯 + - 撦 + - 埳 + - 阬 + - 誌 + - 㕁 + - 卻 + - 刦 + - 刧 + - 刼 + - 芲 + - 蘤 + - 桿 + - 槓 + - 荳 + - 獃 + - 唫 + - 脗 + - 皁 + - 彿 + - 髴 + - 疘 + - 刪 + - 鉋 + - 鑤 + - 況 + - 牀 + - 恡 + - 棄 + - 洶 + - 汎 + - 災 + - 烖 + - 菑 + - 禩 + - 侷 + - 跼 + - 坿 + - 玅 + - 姉 + - 妬 + - 翫 + - 搨 + - 柺 + - 拕 + - 牴 + - 觝 + - 倖 + - 抝 + - 盃 + - 桮 + - 傑 + - 逩 + - 肎 + - 菓 + - 崐 + - 崑 + - 呪 + - 虖 + - 嘑 + - 謼 + - 詠 + - 㟁 + - 嵒 + - 巗 + - 巖 + - 雰 + - 稈 + - 咊 + - 嶽 + - 妷 + - 姪 + - 廹 + - 徃 + - 餚 + - 採 + - 寀 + - 唸 + - 週 + - 昬 + - 兎 + - 兔 + - 亯 + - 亱 + - 䘚 + - 淨 + - 劵 + - 匟 + - 㳒 + - 灋 + - 洩 + - 霑 + - 淚 + - 註 + - 恠 + - 箒 + - 屆 + - 絃 + - 圅 + - 旾 + - 珎 + - 掛 + - 垜 + - 艸 + - 茘 + - 査 + - 栢 + - 柵 + - 栁 + - 桺 + - 柹 + - 韮 + - 揹 + - 昰 + - 閧 + - 鬨 + - 冐 + - 暎 + - 嚥 + - 倃 + - 𠴰 + - 偺 + - 喒 + - 齩 + - 欬 + - 榘 + - 㑺 + - 儁 + - 敍 + - 敘 + - 肧 + - 脈 + - 䘑 + - 衇 + - 跡 + - 蹟 + - 砲 + - 礮 + - 薙 + - 鬀 + - 恆 + - 怳 + - 卹 + - 䘏 + - 賉 + - 婣 + - 畊 + - 揑 + - 綑 + - 輓 + - 恥 + - 躭 + - 晉 + - 棲 + - 覈 + - 慄 + - 翄 + - 脣 + - 槕 + - 㨪 + - 螡 + - 蟁 + - 㤙 + - 陗 + - 峩 + - 峯 + - 乗 + - 椉 + - 咲 + - 筍 + - 俛 + - 頫 + - 勌 + - 䠶 + - 躳 + - 慇 + - 拏 + - 㧱 + - 挐 + - 脃 + - 胷 + - 肐 + - 貍 + - 㽞 + - 畱 + - 淒 + - 悽 + - 蓆 + - 効 + - 傚 + - 涼 + - 缾 + - 菸 + - 煙 + - 淛 + - 湧 + - 誖 + - 猂 + - 醼 + - 讌 + - 㝠 + - 寃 + - 孃 + - 桒 + - 毬 + - 瑠 + - 璢 + - 瑯 + - 㨗 + - 搥 + - 搯 + - 蔆 + - 惏 + - 楳 + - 槑 + - 捄 + - 廂 + - 慽 + - 慼 + - 瞇 + - 埜 + - 畧 + - 虵 + - 稭 + - 棃 + - 犂 + - 迻 + - 媮 + - 兠 + - 舩 + - 慾 + - 綵 + - 腳 + - 𩓐 + - 夠 + - 豬 + - 貓 + - 湊 + - 減 + - 庻 + - 蔴 + - 菴 + - 朢 + - 睠 + - 觕 + - 麤 + - 釬 + - 銲 + - 痳 + - 殽 + - 婬 + - 滛 + - 湻 + - 㴱 + - 樑 + - 顇 + - 㝛 + - 窰 + - 窯 + - 琹 + - 欵 + - 墖 + - 趂 + - 隄 + - 愽 + - 揷 + - 揫 + - 煑 + - 朞 + - 㪚 + - 塟 + - 蔥 + - 蔕 + - 稜 + - 棊 + - 碁 + - 椶 + - 偪 + - 㕑 + - 廚 + - 廈 + - 鴈 + - 冣 + - 㝡 + - 晳 + - 鼃 + - 餧 + - 餵 + - 嗁 + - 諠 + - 㡌 + - 賸 + - 筴 + - 筞 + - 筩 + - 栰 + - 暠 + - 皜 + - 踰 + - 蝟 + - 㪟 + - 燄 + - 遊 + - 媿 + - 嘅 + - 庽 + - 窓 + - 牎 + - 牕 + - 窻 + - 徧 + - 僱 + - 帬 + - 裠 + - 強 + - 彊 + - 疎 + - 壻 + - 瓌 + - 䰟 + - 皷 + - 擕 + - 㩗 + - 㩦 + - 攜 + - 懃 + - 鞾 + - 幙 + - 㮣 + - 酧 + - 詶 + - 醻 + - 掽 + - 踫 + - 㼝 + - 盌 + - 磟 + - 覩 + - 倸 + - 㬉 + - 煗 + - 煖 + - 晻 + - 闇 + - 炤 + - 跥 + - 䗬 + - 蠭 + - 寘 + - 辠 + - 稺 + - 穉 + - 燬 + - 譭 + - 瘉 + - 癒 + - 顋 + - 骽 + - 猨 + - 蝯 + - 稟 + - 痺 + - 癡 + - 亷 + - 㢘 + - 韻 + - 泝 + - 遡 + - 昚 + - 躶 + - 臝 + - 羣 + - 㬪 + - 曡 + - 疊 + - 勦 + - 琍 + - 瓈 + - 𤋮 + - 熈 + - 牓 + - 搾 + - 謌 + - 堿 + - 鹻 + - 鹼 + - 矁 + - 燻 + - 髈 + - 𤺥 + - 辢 + - 旂 + - 𡚁 + - 潄 + - 砦 + - 詧 + - 嫰 + - 櫈 + - 撐 + - 墪 + - 譔 + - 鞵 + - 鞌 + - 蕋 + - 橤 + - 蘂 + - 醕 + - 譆 + - 跴 + - 蹤 + - 蜨 + - 蠍 + - 稾 + - 殭 + - 惪 + - 厀 + - 襃 + - 癅 + - 䊀 + - 餬 + - 潛 + - 癄 + - 顦 + - 鷰 + - 藷 + - 櫥 + - 螎 + - 蹏 + - 蟇 + - 譟 + - 簒 + - 彫 + - 琱 + - 鵰 + - 餹 + - 餻 + - 簷 + - 粦 + - 燐 + - 緐 + - 幑 + - 蹧 + - 粇 + - 穅 + - 臋 + - 籐 + - 繙 + - 飜 + - 孼 + - 蠏 + - 燿 + - 蝡 + - 稬 + - 穤 + - 惷 + - 覇 + - 鑵 + - 戹 + - 阨 + - 剳 + - 帀 + - 巵 + - 亙 + - 佇 + - 竚 + - 穽 + - 岅 + - 虯 + - 𦍑 + - 羗 + - 啎 + - 姙 + - 㘭 + - 袟 + - 袠 + - 逈 + - 㒺 + - 犛 + - 氂 + - 偘 + - 甕 + - 罋 + - 冺 + - 姍 + - 蝨 + - 琺 + - 瑇 + - 尅 + - 梔 + - 斮 + - 斲 + - 斵 + - 暱 + - 毘 + - 蝱 + - 吚 + - 哶 + - 峝 + - 粃 + - 竢 + - 狥 + - 秈 + - 烱 + - 㳄 + - 袵 + - 盇 + - 涖 + - 蒞 + - 碪 + - 蠔 + - 唕 + - 倐 + - 儵 + - 雋 + - 皐 + - 臯 + - 衂 + - 䶊 + - 臙 + - 獧 + - 痾 + - 皰 + - 湼 + - 澣 + - 濬 + - 塚 + - 襢 + - 娿 + - 勅 + - 勑 + - 戞 + - 廐 + - 廄 + - 眥 + - 覜 + - 勗 + - 啗 + - 噉 + - 傯 + - 挱 + - 㥫 + - 惥 + - 慂 + - 陻 + - 蕚 + - 萲 + - 蕿 + - 蘐 + - 藼 + - 櫂 + - 箠 + - 槨 + - 啑 + - 蹠 + - 蚘 + - 痐 + - 蛕 + - 蜖 + - 瘖 + - 遯 + - 醃 + - 飱 + - 冪 + - 簑 + - 枏 + - 柟 + - 檝 + - 楥 + - 矴 + - 椗 + - 嘷 + - 獋 + - 粺 + - 䈰 + - 諐 + - 齶 + - 堘 + - 疿 + - 雝 + - 秔 + - 稉 + - 槀 + - 搉 + - 廝 + - 叡 + - 嘠 + - 蜋 + - 筯 + - 篛 + - 麞 + - 糉 + - 緥 + - 璿 + - 髥 + - 臕 + - 餈 + - 剹 + - 橜 + - 罇 + - 蜺 + - 矙 + - 憇 + - 翺 + - 饍 + - 瞖 + - 羴 + - 羶 + - 爕 + - 繦 + - 騌 + - 鬉 + - 騣 + - 蔾 + - 䠀 + - 簮 + - 躕 + - 蹵 + - 䝔 + - 貛 + - 鼴 + - 麐 + - 塡 + - あ + - い + - う + - え + - お + - か + - き + - く + - け + - こ + - さ + - し + - す + - せ + - そ + - た + - ち + - つ + - て + - と + - な + - に + - ぬ + - ね + - の + - は + - ひ + - ふ + - へ + - ほ + - ま + - み + - む + - め + - も + - や + - ゆ + - よ + - ら + - り + - る + - れ + - ろ + - わ + - を + - ん + - が + - ぎ + - ぐ + - げ + - ご + - ざ + - じ + - ず + - ぜ + - ぞ + - だ + - ぢ + - づ + - で + - ど + - ば + - び + - ぶ + - べ + - ぼ + - ぱ + - ぴ + - ぷ + - ぺ + - ぽ + - ぁ + - ぃ + - ぅ + - ぇ + - ぉ + - っ + - ゃ + - ゅ + - ょ + - ゎ + - ゕ + - ゖ + - ア + - イ + - ウ + - エ + - オ + - カ + - キ + - ク + - ケ + - コ + - サ + - シ + - ス + - セ + - ソ + - タ + - チ + - ツ + - テ + - ト + - ナ + - ニ + - ヌ + - ネ + - ノ + - ハ + - ヒ + - フ + - ヘ + - ホ + - マ + - ミ + - ム + - メ + - モ + - ヤ + - ユ + - ヨ + - ラ + - リ + - ル + - レ + - ロ + - ワ + - ヲ + - ン + - ガ + - ギ + - グ + - ゲ + - ゴ + - ザ + - ジ + - ズ + - ゼ + - ゾ + - ダ + - ヂ + - ヅ + - デ + - ド + - バ + - ビ + - ブ + - ベ + - ボ + - パ + - ピ + - プ + - ペ + - ポ + - ァ + - ィ + - ゥ + - ェ + - ォ + - ッ + - ャ + - ュ + - ョ + - ヮ + - ヵ + - ヶ + - ヷ + - ヸ + - ヹ + - ヺ + - ・ + - ー + - ヽ + - ヾ + - ヿ + - ア + - イ + - ウ + - エ + - オ + - カ + - キ + - ク + - ケ + - コ + - サ + - シ + - ス + - セ + - ソ + - タ + - チ + - ツ + - テ + - ト + - ナ + - ニ + - ヌ + - ネ + - ノ + - ハ + - ヒ + - フ + - ヘ + - ホ + - マ + - ミ + - ム + - メ + - モ + - ヤ + - ユ + - ヨ + - ラ + - リ + - ル + - レ + - ロ + - ワ + - ヲ + - ン + - ゙ + - ゚ + - ァ + - ィ + - ゥ + - ェ + - ォ + - ッ + - ャ + - ュ + - ョ + - 円 + - 気 + - 糸 + - 絵 + - 楽 + - 帰 + - 戸 + - 広 + - 黒 + - 図 + - 線 + - 読 + - 売 + - 歩 + - 毎 + - 亜 + - 悪 + - 圧 + - 扱 + - 囲 + - 為 + - 壱 + - 隠 + - 栄 + - 営 + - 駅 + - 塩 + - 縁 + - 艶 + - 応 + - 桜 + - 穏 + - 仮 + - 価 + - 箇 + - ゑ + - ゝ + - ゞ + - ヰ + - ヴ + - ㈱ + - 両 + - 丼 + - 丿 + - 亀 + - 仏 + - 伝 + - 侶 + - 俤 + - 値 + - 倶 + - 倹 + - 偐 + - 偽 + - 働 + - 儛 + - 兌 + - 児 + - 冑 + - 冨 + - 凞 + - 処 + - 凪 + - 別 + - 剣 + - 剤 + - 剰 + - 劔 + - 労 + - 勧 + - 勲 + - 匁 + - 匂 + - 匲 + - 卍 + - 単 + - 厳 + - 収 + - 呂 + - 呉 + - 呑 + - 呰 + - 唖 + - 喚 + - 喩 + - 喰 + - 噛 + - 噺 + - 嚢 + - 囃 + - 団 + - 圀 + - 圏 + - 堀 + - 堺 + - 塀 + - 塁 + - 塙 + - 増 + - 墺 + - 壊 + - 壌 + - 壷 + - 変 + - 奨 + - 姫 + - 娯 + - 嫐 + - 嬢 + - 嬾 + - 孁 + - 宍 + - 実 + - 宮 + - 寔 + - 寛 + - 対 + - 専 + - 尭 + - 峠 + - 崋 + - 嶋 + - 巀 + - 巌 + - 巣 + - 巻 + - 帯 + - 幇 + - 庁 + - 廃 + - 廻 + - 弉 + - 弌 + - 弐 + - 弖 + - 弾 + - 従 + - 徳 + - 徴 + - 忯 + - 恵 + - 悩 + - 惣 + - 懐 + - 懽 + - 戦 + - 戯 + - 戻 + - 払 + - 抜 + - 択 + - 拝 + - 拠 + - 拡 + - 拵 + - 挙 + - 挿 + - 捗 + - 捜 + - 掟 + - 掲 + - 掻 + - 揃 + - 換 + - 揺 + - 摂 + - 撃 + - 撹 + - 斉 + - 斎 + - 旛 + - 旡 + - 晧 + - 晩 + - 暁 + - 暦 + - 曽 + - 杁 + - 杢 + - 杣 + - 杮 + - 枓 + - 枠 + - 枡 + - 柾 + - 栂 + - 栃 + - 桝 + - 桟 + - 桾 + - 梛 + - 梱 + - 梲 + - 梶 + - 椙 + - 検 + - 椥 + - 楕 + - 楡 + - 楢 + - 榊 + - 榎 + - 槇 + - 様 + - 槙 + - 槻 + - 樋 + - 権 + - 樫 + - 橿 + - 檥 + - 欅 + - 歎 + - 歓 + - 歯 + - 歳 + - 歴 + - 毀 + - 沖 + - 沢 + - 浄 + - 涙 + - 済 + - 渉 + - 渋 + - 渓 + - 渕 + - 満 + - 滝 + - 漑 + - 潅 + - 澁 + - 瀞 + - 瀬 + - 焔 + - 焼 + - 煇 + - 煕 + - 煥 + - 燗 + - 爼 + - 犠 + - 狛 + - 猟 + - 獏 + - 獣 + - 珊 + - 瑤 + - 甞 + - 畑 + - 畠 + - 畳 + - 畷 + - 畺 + - 痩 + - 癪 + - 発 + - 県 + - 眞 + - 砕 + - 碕 + - 礒 + - 禖 + - 禿 + - 稲 + - 穂 + - 穣 + - 竃 + - 竜 + - 竴 + - 笹 + - 筈 + - 筬 + - 筰 + - 箆 + - 箏 + - 箙 + - 篠 + - 篭 + - 簺 + - 籾 + - 粂 + - 粋 + - 粛 + - 粧 + - 糺 + - 紬 + - 絁 + - 経 + - 絖 + - 絣 + - 絽 + - 継 + - 続 + - 綟 + - 総 + - 縄 + - 縅 + - 縒 + - 縦 + - 繊 + - 繋 + - 繍 + - 繝 + - 繧 + - 纐 + - 纒 + - 罠 + - 罧 + - 罵 + - 羂 + - 羇 + - 羨 + - 聟 + - 聡 + - 聨 + - 聴 + - 脇 + - 脳 + - 膣 + - 膵 + - 臈 + - 臓 + - 臥 + - 舎 + - 舖 + - 舗 + - 舘 + - 芿 + - 苅 + - 茲 + - 荊 + - 荘 + - 莬 + - 莵 + - 菫 + - 萠 + - 蔵 + - 薗 + - 薫 + - 薬 + - 薭 + - 蘊 + - 蛍 + - 蝋 + - 蝿 + - 蟷 + - 衞 + - 衵 + - 袙 + - 袞 + - 袰 + - 袴 + - 袿 + - 裃 + - 裡 + - 裲 + - 褄 + - 褌 + - 襴 + - 襷 + - 覗 + - 覚 + - 覧 + - 観 + - 訳 + - 証 + - 諌 + - 諚 + - 諟 + - 諡 + - 諮 + - 譛 + - 譲 + - 讃 + - 豅 + - 豊 + - 豎 + - 賎 + - 賛 + - 贔 + - 躙 + - 躰 + - 転 + - 軽 + - 輌 + - 辥 + - 辺 + - 辻 + - 込 + - 逓 + - 遅 + - 遙 + - 邉 + - 郷 + - 酔 + - 醗 + - 醤 + - 醸 + - 釈 + - 鉄 + - 鉇 + - 鉤 + - 鉱 + - 鉾 + - 銈 + - 銕 + - 銭 + - 鋲 + - 鋳 + - 鋺 + - 錆 + - 錍 + - 錣 + - 錬 + - 錵 + - 鍑 + - 鍮 + - 鍼 + - 鎌 + - 鎗 + - 鎚 + - 鎹 + - 鐇 + - 鐚 + - 鐡 + - 鑁 + - 鑑 + - 鑚 + - 鑢 + - 閇 + - 関 + - 閦 + - 闘 + - 陥 + - 険 + - 隣 + - 隷 + - 雑 + - 雫 + - 霊 + - 靜 + - 靫 + - 靭 + - 靱 + - 鞄 + - 鞆 + - 頚 + - 頬 + - 頴 + - 頼 + - 顕 + - 顗 + - 餝 + - 饂 + - 駄 + - 駆 + - 駈 + - 騒 + - 験 + - 騨 + - 髄 + - 髙 + - 髪 + - 髷 + - 鯖 + - 鯰 + - 鯱 + - 鰒 + - 鰯 + - 鰰 + - 鳰 + - 鴎 + - 鴫 + - 鵄 + - 鵞 + - 鵺 + - 鶏 + - 鹸 + - 麁 + - 麺 + - 麿 + - 黌 + - 黙 + - 鼈 + - 齢 + - 龗 + - 縯 + - 蟅 + - 坖 + - 祂 + - 鼂 + - 鱚 + - 蛻 + - 屌 + - 呾 + - 煔 + - 吶 + - 扥 + - 蚖 + - 銂 + - 尃 + - 夋 + - 鵼 + - 徬 + - 寳 + - 彡 + - 舨 + - 湳 + - 麼 + - 鍈 + - 崈 + - 鱣 + - 盺 + - 拺 + - 瑥 + - 茷 + - 焻 + - 奀 + - 驎 + - 鱰 + - 砢 + - 痟 + - 廱 + - 僜 + - 瘺 + - 鱊 + - 擥 + - 嶰 + - 淓 + - 跅 + - 浵 + - 媗 + - 璦 + - 煠 + - 檊 + - 媃 + - 峅 + - 躄 + - 鉟 + - 塽 + - 蟴 + - 鯮 + - 弍 + - 烒 + - 鵵 + - 妑 + - 孋 + - 蚡 + - 恊 + - 輭 + - 廞 + - 產 + - 曅 + - 盜 + - 騤 + - 囪 + - 鱀 + - 茇 + - 葊 + - 逹 + - 狓 + - 崢 + - 趖 + - 凃 + - 羙 + - 鮸 + - 昞 + - 楿 + - 渽 + - 圗 + - 麪 + - 屇 + - 鍉 + - 葝 + - 沯 + - 爭 + - 幵 + - 筭 + - 寊 + - 銋 + - 貮 + - 鎭 + - 熺 + - 昜 + - 鍱 + - 墬 + - 愒 + - 磺 + - 嚈 + - 稘 + - 珮 + - 釆 + - 殑 + - 鍩 + - 䲁 + - 蕷 + - 鐿 + - 僡 + - 佹 + - 輶 + - 冴 + - 襶 + - 賔 + - 猙 + - 辧 + - 絛 + - 磾 + - 韁 + - 螔 + - 譳 + - 礑 + - 鋱 + - 魩 + - 嚗 + - 棆 + - 牆 + - 敟 + - 柶 + - 瓛 + - 魣 + - 巎 + - 轘 + - 襌 + - 枼 + - 鸌 + - 逺 + - 錏 + - 縡 + - 帢 + - 騄 + - 媼 + - 埅 + - 鄤 + - 萐 + - 祙 + - 旼 + - 詥 + - 鶲 + - 燉 + - 卲 + - 銱 + - 庲 + - 伱 + - 氽 + - 嵿 + - 挻 + - 煵 + - 窋 + - 鐤 + - 鮊 + - 鱬 + - 鰧 + - 嬤 + - 譞 + - 諲 + - 脭 + - 悳 + - 崘 + - 阭 + - 內 + - 袾 + - 冚 + - 壐 + - 咗 + - 礠 + - 孮 + - 痲 + - 埈 + - 肹 + - 鰮 + - 鮓 + - 濊 + - 塜 + - 凜 + - 蒢 + - 噰 + - 桼 + - 峍 + - 焴 + - 鶒 + - 鋮 + - 綠 + - 鶹 + - 熿 + - 毴 + - 咟 + - 嘥 + - 睺 + - 繡 + - 郎 + - 瘞 + - 鉶 + - 蔎 + - 秠 + - 緤 + - 蝀 + - 躝 + - 蟜 + - 繃 + - 囮 + - 墫 + - 乭 + - 胊 + - 濙 + - 瘓 + - 榣 + - 鑛 + - 鐫 + - 嶴 + - 甹 + - 坮 + - 銾 + - 蒭 + - 睜 + - 俋 + - 餠 + - 榢 + - 蓳 + - 盋 + - 堷 + - 鍏 + - 苝 + - 巛 + - 蚵 + - 暏 + - 熤 + - 嬨 + - 墎 + - 鏽 + - 戶 + - 菺 + - 膮 + - 熖 + - 睪 + - 栜 + - 捱 + - 榗 + - 鍷 + - 曧 + - 犽 + - 韑 + - 袓 + - 䖝 + - 焄 + - 喦 + - 髲 + - 疌 + - 㴪 + - 侊 + - 貐 + - 蕅 + - 禠 + - 蕑 + - 囯 + - 暊 + - 儞 + - 佋 + - 柎 + - 㐱 + - 鰤 + - 苳 + - 鱥 + - 謤 + - 遶 + - 眀 + - 鑀 + - 羋 + - 顏 + - 陜 + - 銩 + - 黶 + - 苼 + - 蒤 + - 棛 + - 儫 + - 咁 + - 抦 + - 衚 + - 棩 + - 焿 + - 脫 + - 麅 + - 玏 + - 埧 + - 淸 + - 黁 + - 淽 + - 彠 + - 鮨 + - 沜 + - 糀 + - 厓 + - 楧 + - 嶌 + - 簹 + - 檵 + - 鱇 + - 嶬 + - 廸 + - 卽 + - 樀 + - 贌 + - 酼 + - 籛 + - 沒 + - 晸 + - 諪 + - 蕡 + - 妏 + - 鄋 + - 蒍 + - 奧 + - 抇 + - 蓨 + - 薆 + - 鱷 + - 巘 + - 䝉 + - 亰 + - 寈 + - 槩 + - 誒 + - 麴 + - 蕟 + - 溎 + - 蘗 + - 榦 + - 斿 + - 暟 + - 炲 + - 拚 + - 娖 + - 繖 + - 橚 + - 寜 + - 爀 + - 饟 + - 悅 + - 鯏 + - 彜 + - 眾 + - 葯 + - 嬝 + - 埮 + - 獇 + - 馛 + - 溙 + - 瀦 + - 熼 + - 硓 + - 鈢 + - 樆 + - 輬 + - 鰜 + - 蔘 + - 渙 + - 澔 + - 嗮 + - 旉 + - 籜 + - 媊 + - 燘 + - 儚 + - 頹 + - 缽 + - 俽 + - 逨 + - 鱓 + - 郞 + - 歊 + - 杴 + - 珡 + - 杋 + - 醁 + - 鰏 + - 鵾 + - 鐽 + - 鮋 + - 巶 + - 荅 + - 薾 + - 囓 + - 蹻 + - 獎 + - 禑 + - 鎓 + - 榲 + - 僴 + - 綞 + - 尓 + - 敭 + - 曔 + - 褔 + - 鬅 + - 亊 + - 鏦 + - 蓘 + - 裬 + - 鱲 + - 薡 + - 鰗 + - 箑 + - 鬪 + - 縂 + - 璸 + - 甙 + - 茮 + - 辵 + - 岻 + - 覿 + - 滈 + - 鯶 + - 鑂 + - 囶 + - 舺 + - 溋 + - 拋 + - 菾 + - 敾 + - 虨 + - 綝 + - 蝍 + - 醂 + - 禨 + - 賹 + - 廧 + - 絕 + - 槗 + - 徫 + - 鎔 + - 曮 + - 蠂 + - 捒 + - 堈 + - 莕 + - 蓪 + - 敎 + - 禃 + - 櫱 + - 綧 + - 瀶 + - 逌 + - 浤 + - 碻 + - 刄 + - 逤 + - 剏 + - 氹 + - 菈 + - 娫 + - 蜛 + - 嵗 + - 糎 + - 螶 + - 譓 + - 鏳 + - 嵙 + - 瑊 + - 隲 + - 檨 + - 緈 + - 畵 + - 砯 + - 簗 + - 彅 + - 鰺 + - 騋 + - 窶 + - 嚒 + - 嵻 + - 尙 + - 頵 + - 槰 + - 虉 + - 醞 + - 巂 + - 彔 + - 偊 + - 畇 + - 鱨 + - 妸 + - 塲 + - 畐 + - 鈫 + - 錟 + - 磪 + - 摠 + - 彥 + - 璙 + - 囝 + - 寗 + - 耎 + - 鮡 + - 蘓 + - 弅 + - 焃 + - 飥 + - 戙 + - 塰 + - 儱 + - 槺 + - 噏 + - 魟 + - 禵 + - 佧 + - 咘 + - 盪 + - 瑈 + - 鉲 + - 睭 + - 鏌 + - 鼇 + - 郋 + - 魮 + - 朖 + - 滽 + - 渃 + - 滙 + - 熯 + - 醿 + - 鎅 + - 褀 + - 鬬 + - 巄 + - 螥 + - 眜 + - 釚 + - 柉 + - 壎 + - 峇 + - 姸 + - 唭 + - 鮜 + - 鈖 + - 嫈 + - 壄 + - 洤 + - 黃 + - 伕 + - 堦 + - 嶔 + - 鮰 + - 鞞 + - 漎 + - 鉓 + - 鮗 + - 壴 + - 阝 + - 妀 + - 矽 + - 獢 + - 倗 + - 銪 + - 鴓 + - 橒 + - 凈 + - 哖 + - 屚 + - 偍 + - 瑺 + - 媯 + - 淍 + - 驌 + - 椇 + - 赬 + - 薐 + - 糹 + - 碽 + - 濲 + - 釭 + - 晭 + - 纕 + - 寖 + - 閞 + - 歿 + - 呎 + - 鶆 + - 屄 + - 櫿 + - 犎 + - 旲 + - 㙟 + - 龎 + - 翜 + - 螾 + - 說 + - 衜 + - 泆 + - 軎 + - 鵂 + - 荎 + - 嚧 + - 硂 + - 桖 + - 褭 + - 筊 + - 鰷 + - 秳 + - 戩 + - 轀 + - 鬹 + - 飬 + - 卋 + - 暸 + - 狦 + - 搢 + - 娋 + - 鏴 + - 溫 + - 毉 + - 淰 + - 謩 + - 餺 + - 鵙 + - 鳽 + - 鮀 + - 狶 + - 氻 + - 轝 + - 妺 + - 袛 + - 蓭 + - 梂 + - 娛 + - 牼 + - 稅 + - 兿 + - 玾 + - 煚 + - 僩 + - 鶿 + - 鬄 + - 崠 + - 鉆 + - 鯓 + - 蚢 + - 庀 + - 鵟 + - 坣 + - 殼 + - 悞 + - 熅 + - 敻 + - 鍠 + - 曶 + - 愼 + - 搳 + - 姃 + - 砳 + - 槼 + - 臞 + - 韾 + - 靑 + - 鸊 + - 薲 + - 虛 + - 蠄 + - 啟 + - 鶺 + - 苺 + - 滾 + - 褞 + - 仺 + - 胇 + - 憻 + - 郳 + - 烉 + - 驩 + - 冇 + - 枖 + - 夌 + - 搵 + - 匸 + - 盨 + - 櫾 + - 霤 + - 麊 + - 貒 + - 噓 + - 嗢 + - 笩 + - 晈 + - 冂 + - 銳 + - 毿 + - 慜 + - 囧 + - 閜 + - 娸 + - 庢 + - 壆 + - 馯 + - 桱 + - 兗 + - 葃 + - 侅 + - 煐 + - 鐦 + - 藸 + - 鷎 + - 嵰 + - 逎 + - 弒 + - 匋 + - 鐭 + - 廔 + - 砩 + - 孆 + - 灴 + - 伷 + - 兪 + - 鴗 + - 澯 + - 幚 + - 旙 + - 勻 + - 礽 + - 婑 + - 鱮 + - 娍 + - 銶 + - 吳 + - 鍟 + - 仼 + - 鳧 + - 彞 + - 娽 + - 昛 + - 鰼 + - 剎 + - 佉 + - 鉏 + - 偸 + - 鰆 + - 讙 + - 橪 + - 啱 + - 岀 + - 孻 + - 釪 + - 乹 + - 鈳 + - 漇 + - 檦 + - 埻 + - 祿 + - 爌 + - 禇 + - 鱵 + - 㸃 + - 梉 + - 燝 + - 霙 + - 炁 + - 飮 + - 蠙 + - 勷 + - 鵎 + - 儥 + - 鐠 + - 唻 + - 廰 + - 嚿 + - 嵕 + - 墱 + - 紑 + - 搖 + - 瘜 + - 皝 + - 鸑 + - 瀁 + - 粵 + - 撚 + - 巑 + - 梀 + - 啯 + - 眛 + - 諴 + - 夊 + - 僙 + - 鍝 + - 裖 + - 鮣 + - 凬 + - 飡 + - 灊 + - 橓 + - 嫳 + - 筳 + - 咑 + - 粍 + - 瓑 + - 璌 + - 伃 + - 閰 + - 傜 + - 黐 + - 謢 + - 驒 + - 橫 + - 蛯 + - 寕 + - 蠵 + - 瞓 + - 旳 + - 翏 + - 硏 + - 寯 + - 韡 + - 楤 + - 鰃 + - 朿 + - 侞 + - 鵯 + - 愨 + - 祹 + - 厔 + - 丌 + - 盩 + - 謏 + - 魕 + - 啣 + - 閱 + - 曺 + - 枛 + - 罉 + - 卐 + - 樻 + - 鷉 + - 鯒 + - 鋡 + - 磱 + - 枱 + - 攴 + - 蠷 + - 穈 + - 嚟 + - 檽 + - 趐 + - 奐 + - 鋐 + - 檇 + - 薀 + - 峼 + - 咭 + - 訔 + - 韠 + - 鑴 + - 鸐 + - 唃 + - 捦 + - 鸜 + - 誴 + - 罳 + - 璄 + - 暃 + - 夀 + - 賨 + - 鞥 + - 鈊 + - 灡 + - 鮍 + - 懮 + - 籣 + - 昐 + - 陁 + - 襾 + - 鮠 + - 鈏 + - 囍 + - 婯 + - 艔 + - 貭 + - 䰾 + - 姁 + - 禼 + - 堖 + - 鋶 + - 仛 + - 鏷 + - 謜 + - 鑅 + - 忬 + - 蘶 + - 謠 + - 觙 + - 奫 + - 狟 + - 泩 + - 桙 + - 飈 + - 垰 + - 啍 + - 嚞 + - 鯕 + - 蒧 + - 榞 + - 徸 + - 璹 + - 揔 + - 欉 + - 魞 + - 菶 + - 玧 + - 鳯 + - 廍 + - 侚 + - 岰 + - 岧 + - 鋕 + - 凵 + - 彣 + - 崱 + - 媜 + - 倢 + - 鵐 + - 砋 + - 鷚 + - 鱠 + - 鮻 + - 繻 + - 摵 + - 贓 + - 磵 + - 錻 + - 痠 + - 粩 + - 胅 + - 奣 + - 塨 + - 瀠 + - 鸘 + - 啚 + - 娳 + - 霶 + - 壔 + - 峚 + - 甂 + - 廁 + - 覌 + - 鰂 + - 猳 + - 鱻 + - 盫 + - 裿 + - 杬 + - 歛 + - 澋 + - 蘞 + - 嵜 + - 尐 + - 旽 + - 鉌 + - 鎛 + - 豿 + - 凖 + - 榤 + - 禓 + - 龝 + - 悧 + - 鷟 + - 鮟 + - 吋 + - 喢 + - 岪 + - 吥 + - 漵 + - 頠 + - 豔 + - 巿 + - 鑨 + - 醣 + - 熳 + - 懍 + - 湥 + - 檡 + - 韺 + - 戱 + - 緖 + - 鐈 + - 凉 + - 緃 + - 鮹 + - 媐 + - 爯 + - 巆 + - 褍 + - 鐬 + - 昍 + - 扙 + - 鍳 + - 芛 + - 蟳 + - 嬅 + - 糬 + - 吔 + - 塭 + - 譿 + - 冧 + - 鏓 + - 嶪 + - 嗹 + - 椵 + - 姀 + - 閿 + - 褧 + - 錞 + - 玆 + - 笘 + - 篔 + - 萡 + - 鶡 + - 螐 + - 鮄 + - 鰟 + - 脷 + - 啲 + - 杤 + - 蓚 + - 尗 + - 娎 + - 殟 + - 淥 + - 蝚 + - 蓧 + - 彐 + - 嚤 + - 銍 + - 囒 + - 坶 + - 淩 + - 鶼 + - 鱂 + - 喼 + - 燫 + - 肏 + - 姵 + - 廌 + - 禟 + - 籝 + - 迵 + - 嵨 + - 堮 + - 蟌 + - 憍 + - 廕 + - 蜑 + - 緁 + - 唘 + - 竩 + - 崙 + - 璚 + - 粄 + - 栨 + - 罈 + - 梫 + - 貤 + - 藔 + - 蜯 + - 訁 + - 斖 + - 煶 + - 馦 + - 妠 + - 閟 + - 疕 + - 夆 + - 鎪 + - 膥 + - 澻 + - 嘢 + - 嚐 + - 靁 + - 鎻 + - 鰛 + - 穵 + - 烋 + - 縕 + - 褎 + - 疒 + - 壠 + - 溼 + - 圂 + - 咅 + - 鯭 + - 鯙 + - 磘 + - 玨 + - 珤 + - 朊 + - 蚼 + - 濶 + - 薞 + - 嚩 + - 丟 + - 嫺 + - 鯻 + - 椲 + - 鰕 + - 刂 + - 蠘 + - 踎 + - 瀴 + - 琁 + - 鰶 + - 瑴 + - 肜 + - 㐂 + - 欥 + - 媺 + - 竻 + - 讚 + - 𣇉 + - 裵 + - 緜 + - 廩 + - 齧 + - 叄 + - 俌 + - 厰 + - 滀 + - 錄 + - 鷫 + - 鯗 + - 攞 + - 姌 + - 蔝 + - 幷 + - 縤 + - 屻 + - 鯃 + - 雞 + - 纁 + - 嫲 + - 嵮 + - 屭 + - 嶃 + - 跩 + - 鋗 + - 蕢 + - 篊 + - 俬 + - 淎 + - 暻 + - 鏻 + - 憓 + - 玗 + - 溈 + - 笭 + - 糢 + - 勳 + - 閒 + - 沍 + - 咾 + - 鉷 + - 蘵 + - 俁 + - 崵 + - 毸 + - 苪 + - 掙 + - 鴡 + - 萭 + - 俴 + - 屜 + - 蒾 + - 艹 + - 剷 + - 慍 + - 朮 + - 枴 + - 氳 + - 猓 + - 甽 + - 箝 + - 譁 + - 贗 + - 迆 + - 鈽 + - 鍊 + - 鍰 + - 鏍 + - 靦 + - 餽 + - 丮 + - 丱 + - 仜 + - 仩 + - 伬 + - 伔 + - 仱 + - 伀 + - 伻 + - 佢 + - 佒 + - 侀 + - 侇 + - 佷 + - 佌 + - 佪 + - 侐 + - 侜 + - 俓 + - 侲 + - 俉 + - 侻 + - 侳 + - 俇 + - 倅 + - 倇 + - 倰 + - 倛 + - 倳 + - 倷 + - 俷 + - 倠 + - 偯 + - 偞 + - 偠 + - 偋 + - 偝 + - 偛 + - 偢 + - 偅 + - 偟 + - 偩 + - 偫 + - 傛 + - 傔 + - 傞 + - 傋 + - 傌 + - 傎 + - 傝 + - 偨 + - 傂 + - 傽 + - 傿 + - 僆 + - 傮 + - 僄 + - 僈 + - 傰 + - 僁 + - 傱 + - 僋 + - 僗 + - 僛 + - 僪 + - 僝 + - 僓 + - 僿 + - 儃 + - 儰 + - 僸 + - 僶 + - 僾 + - 儌 + - 僽 + - 儜 + - 儓 + - 儗 + - 儑 + - 儢 + - 儤 + - 儠 + - 儸 + - 儹 + - 儽 + - 冓 + - 冘 + - 冞 + - 凊 + - 凅 + - 凔 + - 刌 + - 刉 + - 刓 + - 刜 + - 刞 + - 刵 + - 刲 + - 剆 + - 刱 + - 剉 + - 剚 + - 剒 + - 剫 + - 剭 + - 剬 + - 剺 + - 剸 + - 剻 + - 剼 + - 劀 + - 劋 + - 劖 + - 劘 + - 劗 + - 劙 + - 劦 + - 勴 + - 匊 + - 匢 + - 匰 + - 匴 + - 匷 + - 匽 + - 卌 + - 卼 + - 厎 + - 厒 + - 厗 + - 厞 + - 厜 + - 厤 + - 厬 + - 厹 + - 吰 + - 吷 + - 吪 + - 呿 + - 咈 + - 呫 + - 呺 + - 呥 + - 呬 + - 呴 + - 茍 + - 咷 + - 咮 + - 咶 + - 哅 + - 咠 + - 咢 + - 唦 + - 唗 + - 唒 + - 哤 + - 唚 + - 唈 + - 哫 + - 唅 + - 唴 + - 啢 + - 唶 + - 啒 + - 啅 + - 唌 + - 唲 + - 喨 + - 喥 + - 喭 + - 噅 + - 喓 + - 喣 + - 啽 + - 喌 + - 嗃 + - 嗛 + - 嗋 + - 嗀 + - 喿 + - 喍 + - 嗏 + - 嗕 + - 嗈 + - 嘕 + - 嘒 + - 嗼 + - 嘐 + - 嘓 + - 嘂 + - 嗺 + - 嘝 + - 嘄 + - 嗿 + - 噈 + - 噊 + - 噆 + - 噚 + - 嘳 + - 嘽 + - 嘾 + - 噮 + - 噳 + - 噣 + - 噭 + - 噞 + - 嚌 + - 嚍 + - 嚃 + - 嚘 + - 嚜 + - 嚫 + - 嚪 + - 嚬 + - 嚲 + - 嚵 + - 嚽 + - 嚾 + - 囆 + - 囅 + - 囋 + - 囗 + - 圁 + - 圞 + - 圠 + - 坁 + - 坅 + - 坲 + - 坱 + - 垀 + - 坴 + - 垗 + - 垝 + - 垔 + - 垘 + - 垽 + - 垼 + - 埢 + - 埶 + - 堩 + - 堣 + - 塈 + - 堥 + - 塓 + - 塉 + - 塯 + - 塕 + - 塼 + - 墆 + - 塿 + - 塴 + - 墋 + - 塺 + - 墝 + - 墯 + - 壈 + - 墽 + - 壖 + - 壝 + - 壛 + - 壾 + - 壿 + - 夃 + - 夎 + - 夒 + - 夗 + - 奅 + - 奊 + - 奰 + - 奲 + - 奼 + - 妦 + - 妎 + - 妢 + - 妐 + - 妵 + - 姏 + - 姎 + - 㚷 + - 姡 + - 姺 + - 姼 + - 娭 + - 婐 + - 婟 + - 婥 + - 婓 + - 婗 + - 媔 + - 媟 + - 媢 + - 婸 + - 媦 + - 媥 + - 媬 + - 媕 + - 娷 + - 嫇 + - 嫋 + - 媰 + - 媻 + - 嫮 + - 嫥 + - 嫢 + - 嫛 + - 嫿 + - 嫴 + - 嫷 + - 嫶 + - 嬎 + - 嬓 + - 嬐 + - 嬲 + - 嬽 + - 孈 + - 屘 + - 孲 + - 孷 + - 宎 + - 宨 + - 寪 + - 寍 + - 寋 + - 寑 + - 寙 + - 寠 + - 寱 + - 尌 + - 尒 + - 尟 + - 尰 + - 尳 + - 屖 + - 屔 + - 屝 + - 屧 + - 屩 + - 屮 + - 屴 + - 岏 + - 岋 + - 岉 + - 岒 + - 岮 + - 岤 + - 岯 + - 岟 + - 岝 + - 峐 + - 峌 + - 峞 + - 峉 + - 峊 + - 峬 + - 峮 + - 峷 + - 崝 + - 崨 + - 崥 + - 崏 + - 崰 + - 崣 + - 崷 + - 嵃 + - 嵑 + - 崳 + - 崺 + - 嵂 + - 嵱 + - 嵣 + - 嵥 + - 嵞 + - 嶀 + - 嵽 + - 嶆 + - 嵺 + - 嵷 + - 嶊 + - 嶉 + - 嶈 + - 嵾 + - 嶕 + - 嶜 + - 嶡 + - 嶚 + - 嶞 + - 嶱 + - 嶩 + - 嶵 + - 嶭 + - 巃 + - 巏 + - 巕 + - 巟 + - 巹 + - 帊 + - 帗 + - 帟 + - 帣 + - 帠 + - 帤 + - 帩 + - 帾 + - 帴 + - 幏 + - 幎 + - 幓 + - 幩 + - 幝 + - 幠 + - 幧 + - 幨 + - 幦 + - 幭 + - 幰 + - 庂 + - 庉 + - 庌 + - 庈 + - 庰 + - 庛 + - 庣 + - 庨 + - 庮 + - 庪 + - 庬 + - 庴 + - 廅 + - 廇 + - 廘 + - 廗 + - 廎 + - 廜 + - 緳 + - 廦 + - 廥 + - 廮 + - 廯 + - 蠯 + - 廾 + - 弚 + - 弝 + - 弣 + - 弤 + - 弮 + - 弳 + - 彃 + - 彉 + - 彋 + - 彏 + - 彯 + - 彴 + - 彸 + - 彾 + - 徦 + - 徥 + - 徯 + - 徲 + - 徾 + - 徿 + - 忀 + - 忁 + - 忔 + - 忕 + - 忨 + - 忣 + - 忷 + - 忥 + - 怭 + - 怲 + - 怋 + - 怴 + - 怗 + - 怚 + - 怞 + - 怬 + - 怢 + - 怐 + - 怮 + - 怓 + - 怷 + - 怹 + - 恲 + - 恞 + - 恅 + - 恇 + - 恉 + - 恛 + - 恌 + - 恀 + - 恟 + - 悀 + - 悁 + - 悕 + - 悗 + - 悇 + - 悊 + - 悐 + - 悾 + - 悺 + - 惓 + - 惤 + - 惈 + - 悷 + - 惉 + - 悹 + - 惌 + - 惢 + - 惄 + - 愊 + - 愖 + - 愅 + - 惵 + - 愓 + - 惸 + - 惼 + - 惾 + - 慉 + - 慅 + - 愶 + - 愲 + - 愮 + - 愯 + - 愬 + - 慁 + - 慞 + - 慱 + - 慒 + - 慓 + - 慲 + - 憀 + - 慴 + - 慔 + - 慺 + - 慛 + - 憃 + - 慹 + - 憱 + - 憰 + - 憢 + - 憉 + - 憛 + - 憯 + - 憟 + - 憪 + - 憡 + - 憝 + - 憖 + - 懅 + - 憴 + - 懆 + - 懁 + - 憿 + - 憸 + - 憵 + - 憼 + - 懧 + - 懠 + - 懥 + - 懤 + - 懘 + - 懭 + - 懱 + - 懪 + - 懰 + - 懫 + - 懻 + - 戁 + - 戃 + - 戄 + - 戉 + - 戠 + - 酨 + - 戺 + - 扐 + - 扜 + - 扤 + - 扡 + - 扢 + - 抆 + - 抌 + - 抎 + - 抏 + - 扻 + - 抭 + - 抴 + - 拑 + - 抾 + - 抪 + - 抶 + - 抮 + - 挍 + - 挋 + - 挃 + - 拫 + - 拹 + - 挏 + - 挌 + - 拸 + - 挀 + - 拲 + - 捖 + - 挬 + - 挶 + - 揤 + - 捊 + - 挼 + - 挩 + - 捁 + - 挴 + - 捘 + - 捔 + - 捥 + - 掝 + - 掗 + - 掫 + - 掯 + - 捵 + - 掜 + - 捼 + - 掤 + - 掔 + - 掱 + - 揎 + - 揥 + - 揨 + - 揯 + - 揊 + - 揲 + - 揵 + - 摡 + - 揟 + - 揝 + - 揜 + - 揘 + - 揅 + - 揱 + - 搆 + - 搟 + - 搕 + - 搘 + - 搹 + - 搷 + - 搣 + - 搰 + - 搊 + - 搚 + - 摀 + - 搧 + - 搫 + - 摍 + - 摝 + - 摲 + - 摦 + - 摎 + - 摋 + - 摓 + - 摐 + - 摿 + - 摮 + - 摰 + - 撢 + - 撠 + - 撗 + - 撜 + - 撋 + - 撊 + - 撌 + - 撟 + - 擗 + - 擖 + - 擏 + - 擉 + - 撽 + - 擩 + - 擣 + - 擫 + - 擭 + - 擨 + - 擽 + - 擸 + - 攇 + - 攐 + - 攍 + - 攌 + - 攗 + - 攕 + - 攓 + - 攡 + - 攠 + - 攦 + - 攩 + - 攭 + - 攲 + - 攳 + - 敁 + - 敊 + - 敆 + - 敓 + - 敧 + - 敪 + - 敤 + - 敜 + - 敯 + - 敳 + - 敶 + - 敺 + - 敹 + - 敿 + - 斁 + - 斀 + - 斄 + - 斒 + - 斔 + - 斞 + - 斨 + - 斪 + - 斻 + - 旍 + - 旓 + - 旚 + - 旝 + - 旟 + - 昲 + - 昦 + - 昢 + - 晇 + - 晥 + - 晜 + - 晼 + - 晬 + - 暀 + - 暆 + - 暍 + - 暋 + - 暡 + - 暰 + - 暩 + - 曀 + - 曊 + - 曋 + - 曏 + - 曒 + - 曚 + - 曣 + - 曭 + - 朁 + - 朅 + - 朄 + - 朒 + - 朘 + - 朣 + - 朾 + - 朹 + - 朻 + - 朼 + - 杅 + - 杇 + - 杝 + - 杗 + - 枎 + - 杶 + - 枆 + - 枌 + - 柲 + - 枺 + - 枻 + - 柸 + - 柀 + - 柅 + - 柫 + - 柤 + - 柍 + - 柮 + - 柣 + - 柂 + - 柧 + - 栚 + - 桋 + - 桏 + - 栱 + - 栵 + - 栫 + - 栭 + - 栯 + - 栘 + - 栔 + - 梡 + - 梇 + - 梐 + - 桭 + - 梮 + - 楖 + - 梬 + - 梩 + - 桵 + - 梒 + - 椌 + - 椄 + - 棜 + - 棷 + - 棳 + - 棌 + - 椈 + - 楰 + - 棯 + - 椔 + - 棸 + - 楟 + - 楎 + - 楱 + - 楅 + - 楺 + - 楈 + - 楛 + - 楉 + - 楬 + - 椳 + - 楀 + - 楄 + - 楶 + - 楘 + - 榶 + - 槉 + - 榠 + - 榬 + - 榼 + - 榙 + - 榩 + - 榾 + - 榯 + - 槄 + - 榽 + - 榹 + - 槥 + - 槸 + - 樕 + - 樠 + - 槬 + - 槢 + - 樛 + - 樝 + - 槾 + - 樧 + - 槮 + - 樔 + - 槷 + - 橀 + - 樴 + - 橉 + - 橧 + - 樲 + - 橨 + - 橝 + - 橭 + - 橶 + - 樿 + - 橁 + - 檍 + - 檖 + - 檁 + - 檟 + - 橾 + - 檛 + - 檓 + - 檕 + - 檃 + - 櫅 + - 檹 + - 櫡 + - 櫠 + - 櫌 + - 櫑 + - 櫙 + - 櫋 + - 櫜 + - 櫐 + - 櫫 + - 櫬 + - 櫰 + - 櫹 + - 櫺 + - 櫼 + - 欃 + - 欋 + - 欈 + - 欐 + - 欑 + - 欘 + - 欨 + - 欴 + - 欯 + - 欭 + - 欱 + - 欶 + - 欳 + - 欷 + - 欿 + - 歂 + - 歈 + - 歍 + - 歋 + - 歕 + - 歔 + - 歜 + - 歠 + - 歭 + - 歾 + - 肂 + - 殈 + - 殏 + - 殔 + - 殗 + - 殙 + - 殠 + - 殥 + - 殢 + - 殦 + - 殧 + - 殰 + - 殶 + - 毃 + - 毄 + - 毈 + - 毇 + - 毊 + - 毚 + - 毞 + - 毦 + - 毤 + - 毨 + - 毣 + - 毰 + - 毲 + - 毻 + - 毼 + - 毾 + - 氁 + - 氀 + - 氄 + - 氠 + - 氶 + - 汃 + - 汒 + - 汏 + - 汍 + - 汸 + - 沋 + - 汱 + - 汯 + - 沕 + - 汦 + - 汳 + - 泬 + - 沶 + - 沬 + - 泧 + - 沷 + - 泭 + - 泲 + - 泒 + - 沴 + - 洟 + - 洊 + - 洀 + - 浺 + - 浶 + - 洍 + - 涒 + - 浘 + - 浢 + - 涊 + - 涆 + - 浧 + - 涗 + - 涳 + - 涬 + - 淢 + - 涷 + - 淔 + - 渀 + - 淈 + - 涾 + - 淊 + - 涽 + - 淭 + - 湆 + - 湇 + - 湅 + - 湢 + - 渿 + - 湁 + - 渜 + - 渳 + - 湀 + - 渻 + - 渮 + - 湨 + - 湡 + - 渱 + - 渨 + - 湠 + - 湱 + - 湩 + - 渹 + - 溛 + - 滖 + - 溓 + - 溔 + - 滒 + - 溰 + - 溾 + - 滜 + - 滵 + - 滱 + - 漃 + - 漥 + - 漮 + - 潎 + - 漙 + - 漧 + - 漘 + - 漒 + - 滭 + - 漊 + - 潳 + - 滮 + - 潀 + - 漰 + - 潃 + - 漅 + - 濆 + - 澒 + - 澅 + - 潚 + - 潠 + - 澖 + - 潶 + - 潬 + - 潒 + - 潐 + - 潗 + - 澓 + - 潝 + - 濇 + - 濎 + - 濈 + - 濄 + - 澞 + - 澨 + - 瀄 + - 濌 + - 澩 + - 濴 + - 濔 + - 濣 + - 濭 + - 濧 + - 濦 + - 瀇 + - 瀎 + - 濿 + - 瀀 + - 濻 + - 瀙 + - 瀖 + - 瀫 + - 瀡 + - 瀢 + - 瀩 + - 瀯 + - 瀷 + - 灂 + - 瀸 + - 瀿 + - 瀺 + - 灄 + - 灉 + - 灖 + - 灗 + - 灛 + - 灟 + - 灨 + - 灩 + - 灪 + - 炾 + - 炰 + - 烓 + - 烑 + - 缹 + - 焍 + - 烰 + - 焠 + - 焮 + - 焣 + - 煆 + - 煣 + - 煝 + - 熐 + - 熉 + - 熀 + - 熂 + - 熚 + - 燅 + - 燂 + - 熸 + - 燀 + - 燡 + - 爁 + - 爊 + - 爂 + - 爓 + - 爞 + - 爢 + - 爣 + - 牄 + - 牉 + - 牋 + - 牏 + - 牣 + - 牬 + - 牰 + - 牸 + - 牷 + - 犈 + - 犉 + - 犆 + - 犅 + - 犌 + - 犑 + - 犐 + - 犗 + - 犕 + - 犓 + - 犘 + - 犚 + - 犝 + - 犞 + - 犥 + - 犦 + - 犤 + - 犣 + - 犩 + - 犪 + - 犮 + - 犵 + - 犿 + - 狆 + - 狖 + - 狋 + - 狘 + - 狜 + - 狔 + - 狚 + - 狌 + - 狑 + - 狊 + - 狤 + - 狫 + - 狪 + - 狣 + - 猀 + - 狾 + - 猑 + - 猘 + - 猈 + - 狿 + - 猏 + - 猋 + - 猒 + - 猧 + - 猲 + - 猭 + - 猦 + - 猣 + - 猵 + - 猼 + - 獂 + - 獀 + - 獊 + - 獑 + - 獌 + - 獘 + - 獞 + - 獟 + - 獝 + - 獛 + - 獡 + - 獩 + - 獦 + - 獥 + - 獳 + - 獶 + - 獽 + - 獿 + - 玂 + - 玁 + - 玈 + - 玊 + - 玔 + - 珓 + - 珶 + - 琖 + - 瑵 + - 璊 + - 瑽 + - 璅 + - 瑿 + - 璗 + - 瓁 + - 瓋 + - 瓝 + - 瓟 + - 瓡 + - 瓥 + - 瓨 + - 瓬 + - 瓵 + - 瓾 + - 瓽 + - 甀 + - 甃 + - 甈 + - 甋 + - 甐 + - 甒 + - 甔 + - 甖 + - 甝 + - 甮 + - 甿 + - 畟 + - 畣 + - 畽 + - 疀 + - 疧 + - 痁 + - 疻 + - 痀 + - 痎 + - 痏 + - 痋 + - 痌 + - 痑 + - 痚 + - 痡 + - 痝 + - 痗 + - 痯 + - 瘏 + - 痷 + - 痸 + - 痻 + - 瘈 + - 瘑 + - 瘝 + - 瘣 + - 瘯 + - 瘱 + - 瘽 + - 癈 + - 癉 + - 癙 + - 癐 + - 癓 + - 癠 + - 癵 + - 癹 + - 皊 + - 皏 + - 皫 + - 皯 + - 皵 + - 皻 + - 皽 + - 皾 + - 盄 + - 盓 + - 盝 + - 盬 + - 盭 + - 盳 + - 眃 + - 眅 + - 盻 + - 眝 + - 眐 + - 眓 + - 眒 + - 眣 + - 眑 + - 眕 + - 眹 + - 眱 + - 眲 + - 眴 + - 眳 + - 眽 + - 睆 + - 睅 + - 睊 + - 睋 + - 睌 + - 睕 + - 睟 + - 睒 + - 睖 + - 睩 + - 睧 + - 睔 + - 瞁 + - 睼 + - 瞂 + - 睮 + - 睯 + - 瞏 + - 瞉 + - 瞚 + - 瞝 + - 瞡 + - 瞛 + - 瞲 + - 瞷 + - 瞶 + - 瞴 + - 矂 + - 矉 + - 矊 + - 矌 + - 矎 + - 矏 + - 矐 + - 矔 + - 矕 + - 矘 + - 矠 + - 矱 + - 矲 + - 矹 + - 矺 + - 砅 + - 砐 + - 砏 + - 砎 + - 砨 + - 硈 + - 硉 + - 硠 + - 硥 + - 硱 + - 硰 + - 硩 + - 碔 + - 碄 + - 碅 + - 碆 + - 硾 + - 碫 + - 碞 + - 磍 + - 磌 + - 磎 + - 磈 + - 磃 + - 磝 + - 磩 + - 磥 + - 磞 + - 磛 + - 磳 + - 磼 + - 磿 + - 礔 + - 礉 + - 礝 + - 礛 + - 礜 + - 礥 + - 礣 + - 礧 + - 礨 + - 礭 + - 礿 + - 祌 + - 祅 + - 祔 + - 祒 + - 祑 + - 祤 + - 祩 + - 祪 + - 祣 + - 祫 + - 祡 + - 祴 + - 祳 + - 禂 + - 禗 + - 禜 + - 禫 + - 禭 + - 禬 + - 禴 + - 禷 + - 禸 + - 歶 + - 秅 + - 秏 + - 秖 + - 秎 + - 秮 + - 秪 + - 秺 + - 秶 + - 稊 + - 稒 + - 稫 + - 穊 + - 稰 + - 稯 + - 穋 + - 穛 + - 穖 + - 穧 + - 穨 + - 穮 + - 穬 + - 穭 + - 穱 + - 穾 + - 窆 + - 窉 + - 窌 + - 窏 + - 窔 + - 窐 + - 窙 + - 窢 + - 窞 + - 窫 + - 窲 + - 窴 + - 窱 + - 窾 + - 竀 + - 竁 + - 竷 + - 笐 + - 笓 + - 笅 + - 笵 + - 笻 + - 笴 + - 笰 + - 笢 + - 笝 + - 笲 + - 筄 + - 筡 + - 箈 + - 箊 + - 箌 + - 箛 + - 箎 + - 箘 + - 箄 + - 箷 + - 箾 + - 篎 + - 箯 + - 箹 + - 篞 + - 篣 + - 篧 + - 篕 + - 篨 + - 篹 + - 簅 + - 篲 + - 篿 + - 篻 + - 簎 + - 篴 + - 簂 + - 簁 + - 篸 + - 篽 + - 簜 + - 簩 + - 簙 + - 簭 + - 簦 + - 簨 + - 簢 + - 簥 + - 簳 + - 簼 + - 簬 + - 簻 + - 籉 + - 籈 + - 籊 + - 籔 + - 籗 + - 籧 + - 籦 + - 籯 + - 籺 + - 籸 + - 籹 + - 粊 + - 粔 + - 粻 + - 糔 + - 糪 + - 糱 + - 糷 + - 紎 + - 紟 + - 紒 + - 紽 + - 紸 + - 紶 + - 紩 + - 絇 + - 紾 + - 絘 + - 絯 + - 絓 + - 絧 + - 絏 + - 絭 + - 絫 + - 綀 + - 綍 + - 絿 + - 綅 + - 絻 + - 絼 + - 綔 + - 綷 + - 緂 + - 綪 + - 緀 + - 緅 + - 緎 + - 緆 + - 緌 + - 綯 + - 綼 + - 緷 + - 緛 + - 緪 + - 緧 + - 縃 + - 緺 + - 緶 + - 緰 + - 縗 + - 縌 + - 縓 + - 縎 + - 縜 + - 縚 + - 縏 + - 縼 + - 繂 + - 縳 + - 顈 + - 繈 + - 縸 + - 縪 + - 繉 + - 繀 + - 縩 + - 緵 + - 縰 + - 縿 + - 縶 + - 繜 + - 繐 + - 繣 + - 繘 + - 繢 + - 繟 + - 繑 + - 繠 + - 繶 + - 繵 + - 繸 + - 繷 + - 繺 + - 繲 + - 繴 + - 纀 + - 纇 + - 纋 + - 纆 + - 纑 + - 纗 + - 纚 + - 缿 + - 罊 + - 罏 + - 罜 + - 罞 + - 罝 + - 罛 + - 罣 + - 罥 + - 罦 + - 罭 + - 罫 + - 罬 + - 罻 + - 罼 + - 罺 + - 罿 + - 羃 + - 羉 + - 羍 + - 羒 + - 羜 + - 羛 + - 羢 + - 羠 + - 羦 + - 羬 + - 羭 + - 羵 + - 羳 + - 羷 + - 羺 + - 羾 + - 翋 + - 翍 + - 翐 + - 翑 + - 翇 + - 翢 + - 翣 + - 翭 + - 翪 + - 翨 + - 翴 + - 翲 + - 翽 + - 翿 + - 耟 + - 耞 + - 耡 + - 耴 + - 耾 + - 耹 + - 聇 + - 聈 + - 聑 + - 聏 + - 聝 + - 肕 + - 肙 + - 肒 + - 肣 + - 肵 + - 胘 + - 胑 + - 胐 + - 胕 + - 胉 + - 胏 + - 胹 + - 胵 + - 脁 + - 胻 + - 脀 + - 胾 + - 胔 + - 脰 + - 脥 + - 脤 + - 脙 + - 脡 + - 脕 + - 脧 + - 腃 + - 腏 + - 腄 + - 腇 + - 脽 + - 腍 + - 腤 + - 腷 + - 腜 + - 腛 + - 腢 + - 腲 + - 朡 + - 腞 + - 腶 + - 膉 + - 膆 + - 膃 + - 膇 + - 膍 + - 膌 + - 膋 + - 膟 + - 膕 + - 膢 + - 膱 + - 膹 + - 膫 + - 膰 + - 膬 + - 膴 + - 膲 + - 臇 + - 膷 + - 臄 + - 臅 + - 臒 + - 臐 + - 臗 + - 臛 + - 臡 + - 臦 + - 臩 + - 臮 + - 臲 + - 臷 + - 臸 + - 臿 + - 舋 + - 舑 + - 舕 + - 舝 + - 舡 + - 舼 + - 舽 + - 艀 + - 艂 + - 艓 + - 艒 + - 艐 + - 艑 + - 艕 + - 艛 + - 艵 + - 艼 + - 芀 + - 芐 + - 芅 + - 芓 + - 芔 + - 苀 + - 芚 + - 芵 + - 芧 + - 芞 + - 芺 + - 苙 + - 苨 + - 苖 + - 苬 + - 苲 + - 苵 + - 苶 + - 茙 + - 茥 + - 茿 + - 茦 + - 茢 + - 荂 + - 茪 + - 荍 + - 茖 + - 茤 + - 茠 + - 茩 + - 茻 + - 莐 + - 莣 + - 莍 + - 荺 + - 莤 + - 荴 + - 莏 + - 莁 + - 荵 + - 莔 + - 莃 + - 莌 + - 莋 + - 荾 + - 莥 + - 菨 + - 萒 + - 菧 + - 菤 + - 菆 + - 菣 + - 菿 + - 菋 + - 菎 + - 菵 + - 萉 + - 菞 + - 菳 + - 菕 + - 蓱 + - 萿 + - 葹 + - 葥 + - 葀 + - 葧 + - 萰 + - 葍 + - 葽 + - 蔇 + - 葞 + - 萷 + - 萺 + - 萴 + - 葅 + - 菙 + - 葋 + - 萯 + - 葂 + - 葟 + - 葌 + - 蓎 + - 蒬 + - 蒮 + - 蒫 + - 蒪 + - 蒚 + - 蒝 + - 蓌 + - 蒛 + - 蒩 + - 蒘 + - 蒶 + - 蒠 + - 蔤 + - 蔏 + - 蔩 + - 蔉 + - 蔍 + - 蔧 + - 蔜 + - 蓻 + - 蓺 + - 蓴 + - 蔪 + - 蓲 + - 蓷 + - 蓫 + - 蔒 + - 蓩 + - 蔖 + - 蓾 + - 蔨 + - 蔮 + - 蔂 + - 蓶 + - 蔱 + - 蓹 + - 蔠 + - 蔰 + - 蕫 + - 蕍 + - 蕀 + - 蕆 + - 蕄 + - 蕇 + - 蕣 + - 蕛 + - 蕱 + - 蕵 + - 蕮 + - 蕧 + - 蕠 + - 蕦 + - 蕝 + - 薃 + - 薧 + - 薕 + - 薠 + - 薋 + - 薣 + - 薚 + - 蕼 + - 薉 + - 蕸 + - 薎 + - 薖 + - 薍 + - 薝 + - 薂 + - 藆 + - 藀 + - 藃 + - 藂 + - 薵 + - 薽 + - 藇 + - 藄 + - 藋 + - 藈 + - 藅 + - 薱 + - 薶 + - 藒 + - 藫 + - 藱 + - 藙 + - 藡 + - 藚 + - 藗 + - 藲 + - 藬 + - 藘 + - 藣 + - 藑 + - 藰 + - 蘁 + - 藾 + - 蘛 + - 蘉 + - 蘌 + - 蘪 + - 蘦 + - 蘟 + - 蘣 + - 蘜 + - 蘙 + - 蘮 + - 蘡 + - 蘠 + - 蘥 + - 蘴 + - 蘳 + - 蘬 + - 虀 + - 蘹 + - 蘱 + - 蘻 + - 蘾 + - 虃 + - 虆 + - 虇 + - 虈 + - 虌 + - 虋 + - 虙 + - 虡 + - 虣 + - 虩 + - 虪 + - 虰 + - 虭 + - 虴 + - 蚑 + - 蚞 + - 蚇 + - 蚗 + - 蚚 + - 蚅 + - 蚥 + - 蚙 + - 蚿 + - 蚷 + - 蛂 + - 蛁 + - 蛅 + - 蛈 + - 蚹 + - 蚳 + - 蚸 + - 蛌 + - 蚻 + - 蛢 + - 蛦 + - 蛓 + - 蛣 + - 蛚 + - 蛪 + - 蛝 + - 蛫 + - 蛜 + - 蛬 + - 蛗 + - 蜄 + - 蛷 + - 蜌 + - 蛖 + - 蛵 + - 蜁 + - 蛶 + - 蜳 + - 蝫 + - 蜙 + - 蝃 + - 蜬 + - 蝁 + - 蝆 + - 蜠 + - 蜲 + - 蜪 + - 蜭 + - 蜼 + - 蜵 + - 蝂 + - 蜦 + - 蜧 + - 蜸 + - 蜤 + - 蜰 + - 蝖 + - 蝷 + - 蟡 + - 蝳 + - 蝔 + - 蝛 + - 蝒 + - 蝑 + - 蝞 + - 蝭 + - 蝪 + - 蝐 + - 蝝 + - 蝬 + - 蝺 + - 蝜 + - 螛 + - 螏 + - 螓 + - 螒 + - 螁 + - 螖 + - 螘 + - 蝹 + - 螇 + - 螑 + - 螝 + - 螜 + - 螚 + - 螪 + - 螰 + - 螹 + - 螼 + - 螮 + - 蟉 + - 蟃 + - 蟂 + - 螷 + - 螴 + - 螿 + - 螸 + - 蟞 + - 蟧 + - 蟦 + - 蟢 + - 蟟 + - 蟤 + - 蟔 + - 蟓 + - 蟭 + - 蟘 + - 螤 + - 蟗 + - 蟙 + - 蠁 + - 蟨 + - 蠀 + - 蟺 + - 蠉 + - 蠌 + - 蟼 + - 蠈 + - 蟿 + - 蠗 + - 蠩 + - 蠝 + - 蠛 + - 蠠 + - 蠤 + - 蠜 + - 蠫 + - 蠬 + - 蠨 + - 蠦 + - 蠪 + - 蠥 + - 蠰 + - 蠮 + - 蠳 + - 蠸 + - 蠾 + - 蠽 + - 蠿 + - 衁 + - 衈 + - 衋 + - 衧 + - 衪 + - 衭 + - 衶 + - 袀 + - 衱 + - 衯 + - 袃 + - 袉 + - 袕 + - 袨 + - 袚 + - 袑 + - 袡 + - 袘 + - 袧 + - 袬 + - 袌 + - 袺 + - 裗 + - 袹 + - 袸 + - 裀 + - 袶 + - 袽 + - 袲 + - 裋 + - 裍 + - 裞 + - 裚 + - 裷 + - 裧 + - 裺 + - 裮 + - 裶 + - 裯 + - 裻 + - 褁 + - 褅 + - 褋 + - 褗 + - 褆 + - 褖 + - 褑 + - 褦 + - 褮 + - 褱 + - 褢 + - 褩 + - 褵 + - 褼 + - 褾 + - 襒 + - 褷 + - 襂 + - 褽 + - 襓 + - 襋 + - 襆 + - 襐 + - 襛 + - 襗 + - 襡 + - 襘 + - 襝 + - 襣 + - 襭 + - 襩 + - 襮 + - 襳 + - 襹 + - 襺 + - 覂 + - 覅 + - 覕 + - 覛 + - 覝 + - 覢 + - 覤 + - 覣 + - 覭 + - 覮 + - 覶 + - 觓 + - 觤 + - 觡 + - 觠 + - 觢 + - 觩 + - 觰 + - 觬 + - 觲 + - 觷 + - 觺 + - 觻 + - 觼 + - 觾 + - 訑 + - 訰 + - 訧 + - 訬 + - 訞 + - 詍 + - 訹 + - 詙 + - 詀 + - 詄 + - 詅 + - 訿 + - 誂 + - 詻 + - 誃 + - 誫 + - 誙 + - 誋 + - 諆 + - 誸 + - 諔 + - 諕 + - 誻 + - 諀 + - 諅 + - 諵 + - 諝 + - 諰 + - 諈 + - 謞 + - 謘 + - 謑 + - 謋 + - 謒 + - 謕 + - 謍 + - 謈 + - 謪 + - 謧 + - 謣 + - 謰 + - 謵 + - 譇 + - 謯 + - 謱 + - 謥 + - 謷 + - 謦 + - 譐 + - 譈 + - 譊 + - 譀 + - 譋 + - 譕 + - 譑 + - 譠 + - 譪 + - 譝 + - 譨 + - 譣 + - 譥 + - 譹 + - 譸 + - 譅 + - 譺 + - 譻 + - 譾 + - 讄 + - 讂 + - 讆 + - 讋 + - 讔 + - 讘 + - 讟 + - 谹 + - 谻 + - 谽 + - 谾 + - 豃 + - 豋 + - 豍 + - 豏 + - 豗 + - 豜 + - 豝 + - 豟 + - 豥 + - 豤 + - 豦 + - 豭 + - 豰 + - 豲 + - 豱 + - 豯 + - 豵 + - 豷 + - 豶 + - 豻 + - 豽 + - 貁 + - 貀 + - 貄 + - 貏 + - 貑 + - 貕 + - 貙 + - 貗 + - 貜 + - 貣 + - 貾 + - 賌 + - 賥 + - 賟 + - 賙 + - 賵 + - 賮 + - 贆 + - 贕 + - 贙 + - 赨 + - 赩 + - 赮 + - 赸 + - 趀 + - 趌 + - 趎 + - 趏 + - 趍 + - 趓 + - 趠 + - 趜 + - 趡 + - 趥 + - 趧 + - 趬 + - 趪 + - 趭 + - 趫 + - 趮 + - 趷 + - 趹 + - 跘 + - 跓 + - 跍 + - 跇 + - 跜 + - 跕 + - 跙 + - 跈 + - 跰 + - 跠 + - 跮 + - 跦 + - 跢 + - 跧 + - 跲 + - 跫 + - 踂 + - 跿 + - 踍 + - 踃 + - 踇 + - 踆 + - 跾 + - 踠 + - 踥 + - 踤 + - 踡 + - 踕 + - 踛 + - 踖 + - 踑 + - 踙 + - 踧 + - 踘 + - 踓 + - 踳 + - 踾 + - 踸 + - 踼 + - 蹎 + - 蹍 + - 蹓 + - 蹗 + - 蹖 + - 蹞 + - 蹥 + - 蹛 + - 蹡 + - 蹝 + - 蹔 + - 蹸 + - 蹳 + - 蹪 + - 躆 + - 躈 + - 躖 + - 躗 + - 躟 + - 躠 + - 躤 + - 躣 + - 躩 + - 躨 + - 躽 + - 軓 + - 軘 + - 軞 + - 軯 + - 軷 + - 軦 + - 軮 + - 軥 + - 軵 + - 軧 + - 軨 + - 軶 + - 軱 + - 軬 + - 輆 + - 軿 + - 輁 + - 輀 + - 輂 + - 輐 + - 輑 + - 輤 + - 輘 + - 輚 + - 輠 + - 輣 + - 輖 + - 輗 + - 輮 + - 輵 + - 輲 + - 輹 + - 輷 + - 輴 + - 轃 + - 轇 + - 轈 + - 轒 + - 轑 + - 轏 + - 轐 + - 轓 + - 轙 + - 轖 + - 轗 + - 轕 + - 轚 + - 轞 + - 轛 + - 轠 + - 辴 + - 迉 + - 迒 + - 迋 + - 迍 + - 迖 + - 迣 + - 迡 + - 迾 + - 迿 + - 逜 + - 逿 + - 遝 + - 遳 + - 遰 + - 遻 + - 邆 + - 邅 + - 遾 + - 邍 + - 邔 + - 邟 + - 邥 + - 邞 + - 邧 + - 郱 + - 郕 + - 郖 + - 郠 + - 郙 + - 郣 + - 郥 + - 郘 + - 郰 + - 郲 + - 郔 + - 鄬 + - 郼 + - 鄈 + - 郹 + - 郻 + - 鄁 + - 鄇 + - 郺 + - 鄐 + - 鄍 + - 鄏 + - 鄎 + - 鄟 + - 鄝 + - 鄡 + - 鄛 + - 鄨 + - 鄪 + - 鄦 + - 鄮 + - 鄵 + - 鄸 + - 鄻 + - 鄾 + - 酀 + - 酁 + - 酄 + - 酇 + - 酖 + - 酘 + - 酓 + - 酟 + - 酳 + - 醆 + - 醊 + - 醓 + - 醙 + - 醟 + - 醥 + - 醧 + - 醰 + - 醱 + - 醷 + - 醲 + - 醳 + - 醹 + - 醽 + - 釂 + - 釃 + - 釢 + - 釱 + - 釳 + - 釸 + - 鈚 + - 鈌 + - 鈒 + - 釽 + - 鈆 + - 鉒 + - 鉠 + - 鉯 + - 鈶 + - 鉼 + - 銤 + - 銛 + - 銔 + - 鉹 + - 銗 + - 鋄 + - 鋀 + - 鋟 + - 鋘 + - 鋩 + - 鋝 + - 鋂 + - 鋊 + - 錧 + - 錼 + - 錭 + - 錎 + - 鋋 + - 鎡 + - 鎃 + - 鎯 + - 鍖 + - 鍜 + - 鍐 + - 鍭 + - 鍌 + - 鎒 + - 鎷 + - 鎝 + - 鎉 + - 鎎 + - 鎞 + - 鏏 + - 鏂 + - 鏚 + - 鏬 + - 鏙 + - 鐋 + - 鐏 + - 鏾 + - 鐕 + - 鐨 + - 鐍 + - 鐀 + - 鐎 + - 鐖 + - 鐻 + - 鐶 + - 鑐 + - 鑋 + - 鑕 + - 鑮 + - 鑯 + - 钂 + - 钀 + - 钁 + - 钃 + - 镺 + - 镻 + - 镼 + - 镽 + - 閈 + - 閍 + - 閺 + - 閵 + - 闀 + - 闉 + - 闅 + - 閷 + - 闒 + - 闑 + - 闚 + - 闛 + - 闠 + - 闟 + - 闤 + - 阞 + - 阢 + - 阤 + - 阠 + - 阰 + - 阹 + - 阸 + - 阺 + - 陏 + - 陓 + - 陊 + - 陼 + - 陭 + - 陫 + - 隇 + - 陾 + - 隉 + - 隒 + - 隓 + - 隞 + - 隤 + - 隿 + - 雂 + - 雈 + - 雓 + - 雔 + - 雗 + - 雚 + - 雟 + - 雘 + - 雺 + - 雽 + - 雿 + - 霂 + - 霋 + - 霒 + - 霐 + - 霠 + - 霣 + - 霢 + - 霩 + - 霫 + - 霬 + - 霮 + - 霵 + - 霿 + - 靆 + - 靃 + - 靪 + - 靮 + - 靷 + - 靲 + - 靾 + - 鞃 + - 鞀 + - 鞂 + - 靻 + - 鞊 + - 鞎 + - 鞈 + - 鞙 + - 鞗 + - 鞚 + - 鞜 + - 鞤 + - 鞪 + - 鞷 + - 鞶 + - 鞹 + - 鞻 + - 鞿 + - 韄 + - 韅 + - 韇 + - 韎 + - 韐 + - 韏 + - 韕 + - 韔 + - 韗 + - 韝 + - 韟 + - 韣 + - 韥 + - 韰 + - 韱 + - 韹 + - 韽 + - 頄 + - 頖 + - 頞 + - 頝 + - 頩 + - 頨 + - 頯 + - 頲 + - 顁 + - 顄 + - 顊 + - 顉 + - 顅 + - 顐 + - 顑 + - 顜 + - 顝 + - 顠 + - 顣 + - 顟 + - 顤 + - 顪 + - 顩 + - 顲 + - 颬 + - 颲 + - 颸 + - 颽 + - 颻 + - 颾 + - 飁 + - 飂 + - 飉 + - 飋 + - 飌 + - 飣 + - 飶 + - 餂 + - 餀 + - 飺 + - 餔 + - 餖 + - 餕 + - 餤 + - 餟 + - 餥 + - 餫 + - 餪 + - 餲 + - 餯 + - 餭 + - 餱 + - 餰 + - 饁 + - 饇 + - 饐 + - 饎 + - 饙 + - 饘 + - 饛 + - 饡 + - 馣 + - 馲 + - 馰 + - 馵 + - 馻 + - 馺 + - 駂 + - 馽 + - 駜 + - 駍 + - 駏 + - 駎 + - 駖 + - 駮 + - 駬 + - 駥 + - 駤 + - 駣 + - 駩 + - 駺 + - 駴 + - 駷 + - 駹 + - 駶 + - 駻 + - 駽 + - 駾 + - 騃 + - 騉 + - 騑 + - 騊 + - 騇 + - 騚 + - 騕 + - 騥 + - 騝 + - 騛 + - 騢 + - 騠 + - 騧 + - 騞 + - 騜 + - 騵 + - 騲 + - 騴 + - 騱 + - 騬 + - 騪 + - 騩 + - 騹 + - 騽 + - 驆 + - 騺 + - 驓 + - 驔 + - 驈 + - 驉 + - 驖 + - 驞 + - 驠 + - 驦 + - 驨 + - 骭 + - 骫 + - 骹 + - 骿 + - 骴 + - 骾 + - 髇 + - 髊 + - 髆 + - 髍 + - 髐 + - 髟 + - 髧 + - 髬 + - 髳 + - 髶 + - 髺 + - 髾 + - 鬁 + - 髼 + - 鬋 + - 鬊 + - 鬎 + - 鬌 + - 鬐 + - 鬕 + - 鬗 + - 鬖 + - 鬙 + - 鬞 + - 鬠 + - 鬤 + - 鬫 + - 鬳 + - 鬵 + - 鬺 + - 鬾 + - 鬿 + - 魊 + - 魌 + - 魖 + - 魠 + - 魡 + - 魧 + - 魱 + - 魦 + - 魶 + - 魵 + - 鮅 + - 鮇 + - 魼 + - 魾 + - 魻 + - 鮂 + - 鮚 + - 鮞 + - 鮛 + - 鮦 + - 鮥 + - 鮤 + - 鮆 + - 鯆 + - 鮿 + - 鮵 + - 鯈 + - 鯫 + - 鯠 + - 鯞 + - 鯦 + - 鯬 + - 鰌 + - 鰋 + - 鰅 + - 鯸 + - 鰫 + - 鰝 + - 鰬 + - 鱆 + - 鰿 + - 鱄 + - 鱁 + - 鰴 + - 鱐 + - 鱍 + - 鱋 + - 鱕 + - 鱦 + - 鱢 + - 鱞 + - 鱴 + - 鱳 + - 鱹 + - 鳦 + - 鳪 + - 鳭 + - 鳱 + - 鳵 + - 鳼 + - 鳺 + - 鳿 + - 鳷 + - 鴀 + - 鳹 + - 鳻 + - 鴅 + - 鴃 + - 鴥 + - 鴠 + - 鴔 + - 鴩 + - 鴘 + - 鴢 + - 鴐 + - 鴳 + - 鵁 + - 鵧 + - 鴶 + - 鴮 + - 鴱 + - 鴸 + - 鵅 + - 鵃 + - 鴾 + - 鵀 + - 鴽 + - 鵏 + - 鵊 + - 鵛 + - 鵋 + - 鵖 + - 鵌 + - 鵗 + - 鵔 + - 鵷 + - 鶁 + - 鶊 + - 鶄 + - 鶈 + - 鵱 + - 鶀 + - 鵸 + - 鶋 + - 鶌 + - 鵽 + - 鵫 + - 鵴 + - 鵩 + - 鶅 + - 鵳 + - 鵻 + - 鶂 + - 鵹 + - 鶟 + - 鶙 + - 鶤 + - 鶝 + - 鶐 + - 鶛 + - 鶠 + - 鶔 + - 鶜 + - 鶪 + - 鶗 + - 鶢 + - 鶨 + - 鶞 + - 鶣 + - 鶖 + - 鶷 + - 鶶 + - 鷁 + - 鷇 + - 鷊 + - 鷏 + - 鶾 + - 鷅 + - 鷃 + - 鶵 + - 鷈 + - 鶱 + - 鶭 + - 鷛 + - 鷒 + - 鷞 + - 鷋 + - 鷐 + - 鷜 + - 鷑 + - 鷩 + - 鷘 + - 鷖 + - 鷵 + - 鷕 + - 鷻 + - 鷷 + - 鷣 + - 鷤 + - 鷶 + - 鷡 + - 鷮 + - 鷢 + - 鸂 + - 鷾 + - 鸇 + - 鸃 + - 鸆 + - 鸅 + - 鸀 + - 鸁 + - 鸉 + - 鷿 + - 鷽 + - 鸄 + - 鸋 + - 鸍 + - 鸏 + - 鸒 + - 鸔 + - 鸓 + - 鸗 + - 鸙 + - 鹺 + - 麃 + - 麆 + - 麉 + - 麎 + - 麌 + - 麔 + - 麙 + - 麛 + - 麚 + - 麜 + - 麠 + - 麡 + - 麧 + - 麮 + - 麰 + - 麶 + - 麷 + - 黀 + - 黂 + - 黈 + - 黓 + - 黕 + - 黖 + - 黚 + - 黤 + - 黫 + - 黮 + - 黭 + - 黰 + - 黳 + - 黵 + - 黺 + - 鼁 + - 鼀 + - 鼆 + - 鼊 + - 鼏 + - 鼖 + - 鼛 + - 鼘 + - 鼜 + - 鼤 + - 鼣 + - 鼥 + - 鼪 + - 鼨 + - 鼭 + - 鼰 + - 鼮 + - 鼵 + - 鼳 + - 鼲 + - 鼸 + - 鼶 + - 齀 + - 齂 + - 齃 + - 齌 + - 齍 + - 齎 + - 齖 + - 齗 + - 齘 + - 齛 + - 齠 + - 齞 + - 齝 + - 齥 + - 齤 + - 齫 + - 齱 + - 齰 + - 齮 + - 齯 + - 齴 + - 齵 + - 齸 + - 齻 + - 齺 + - 齹 + - 齾 + - 龒 + - 龤 + - 堔 + - 礂 + - 蒏 + - 蒆 + - 兙 + - 兛 + - 兞 + - 兝 + - 兡 + - 兣 + - 嗧 + - 瓩 + - 忼 + - 擡 + - 氊 + - 穇 + - 擧 + - 譌 + - '!' + - '"' + - '#' + - $ + - '%' + - '&' + - '''' + - ( + - ) + - '*' + - + + - ',' + - '-' + - . + - / + - '0' + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + - '7' + - '8' + - '9' + - ':' + - ; + - < + - '=' + - '>' + - '?' + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - N + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - Y + - Z + - '[' + - ']' + - _ + - '`' + - a + - b + - c + - d + - e + - f + - g + - h + - i + - j + - k + - l + - m + - n + - o + - p + - q + - r + - s + - t + - u + - v + - w + - x + - y + - z + - © + - ° + - ² + - ´ + - ½ + - Á + - Ä + - Å + - Ç + - È + - É + - Í + - Ó + - Ö + - × + - Ü + - ß + - à + - á + - â + - ã + - ä + - å + - æ + - ç + - è + - é + - ê + - ë + - í + - ð + - ñ + - ò + - ó + - ô + - õ + - ö + - ø + - ú + - û + - ü + - ý + - ā + - ă + - ą + - ć + - Č + - č + - đ + - ē + - ė + - ę + - ğ + - ī + - ı + - Ł + - ł + - ń + - ň + - ō + - ř + - Ş + - ş + - Š + - š + - ţ + - ū + - ż + - Ž + - ž + - Ș + - ș + - ț + - Δ + - α + - λ + - μ + - φ + - Г + - О + - а + - в + - л + - о + - р + - с + - т + - я + - ồ + - — + - ― + - ’ + - “ + - ” + - … + - ℃ + - → + - ∇ + - − + - ■ + - ☆ + - 、 + - 。 + - 々 + - 〆 + - 〈 + - 〉 + - 「 + - 」 + - 『 + - 』 + - 〔 + - 〕 + - 〜 + - ! + - # + - % + - & + - ( + - ) + - + + - , + - - + - . + - / + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - : + - ; + - = + - ? + - @ + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - N + - O + - P + - R + - S + - T + - U + - V + - W + - X + - Z + - a + - b + - c + - d + - e + - f + - g + - h + - i + - j + - k + - l + - m + - n + - o + - p + - q + - r + - s + - t + - u + - v + - w + - x + - y + - z + - ~ + - ・ + - ǎ + - ǒ + - ě + - ǐ + - ì + - ǔ + - ù + - ǖ + - ǘ + - ǚ + - ǜ + - 【 + - 】 + - 《 + - 》 + - ‥ + - '{' + - '}' + - \ + - '|' + - '@' + - ^ + - '~' + - ÷ + - ∕ + - ∙ + - ⋅ + - · + - ⊕ + - ⊖ + - ⊗ + - ⊘ + - ⊙ + - ± + - ∓ + - ∩ + - ∪ + - □ + - ⊎ + - ⊓ + - ⊔ + - ≠ + - ≈ + - ≡ + - ≤ + - ≥ + - ≪ + - ≫ + - ≲ + - ≳ + - ≶ + - ≷ + - ≺ + - ≻ + - ≼ + - ≽ + - ∈ + - ∉ + - ⊂ + - ⊃ + - ⊆ + - ⊇ + - ⊄ + - ⊅ + - ∅ + - ∖ + - ∁ + - ∆ + - ∧ + - ∨ + - ¬ + - ⊻ + - ⊼ + - ⊽ + - ← + - ↔ + - ⇒ + - ⇐ + - ⇔ + - ∀ + - ∃ + - ∄ + - ∴ + - ∵ + - ∝ + - ∞ + - ⊥ + - ∟ + - ∠ + - ∡ + - ∢ + - ′ + - ″ + - ∥ + - ⊾ + - ⊿ + - ∂ + - ∫ + - ∬ + - ∭ + - ∮ + - ∯ + - ∰ + - ∑ + - ∏ + - √ + - ∛ + - ∜ + - ∱ + - ∲ + - ∳ + - ∶ + - ∷ + - ∼ + - ® + - ≄ + - ≅ + - ≃ + - ≦ + - ≧ + - ⊈ + - ⊉ + - ⊢ + - ⊤ + - ⊨ + - ⊧ + - ℉ + - Ω + - ℧ + - Å + - ⌀ + - ℏ + - ⅀ + - ⍺ + - ⍵ + - ¢ + - € + - £ + - ¥ + - ¥ + - ₿ + - ↑ + - ↓ + - ↕ + - ↖ + - ↗ + - ↘ + - ↙ + - ↺ + - ↻ + - ↼ + - ↽ + - ↾ + - ↿ + - ⇀ + - ⇁ + - ⇂ + - ⇃ + - ⇋ + - ⇌ + - ª + - º + - ⁰ + - ¹ + - ³ + - ⁴ + - ⁵ + - ⁶ + - ⁷ + - ⁸ + - ⁹ + - ⁺ + - ⁻ + - ⁼ + - ⁽ + - ⁾ + - ⁿ + - ₀ + - ₁ + - ₂ + - ₃ + - ₄ + - ₅ + - ₆ + - ₇ + - ₈ + - ₉ + - ₊ + - ₋ + - ₌ + - ₍ + - ₎ + - Ⅰ + - Ⅱ + - Ⅲ + - Ⅳ + - Ⅴ + - Ⅵ + - Ⅶ + - Ⅷ + - Ⅸ + - Ⅹ + - Ⅺ + - Ⅻ + - ⅰ + - ⅱ + - ⅲ + - ⅳ + - ⅴ + - ⅵ + - ⅶ + - ⅷ + - ⅸ + - ⅹ + - ⅺ + - ⅻ + - ☰ + - ☱ + - ☲ + - ☳ + - ☴ + - ☵ + - ☶ + - ☷ + - ♀ + - ♂ + - ♳ + - ♴ + - ♵ + - ♶ + - ♷ + - ♸ + - ♹ + - ♺ + - ♩ + - ♪ + - ♫ + - ♬ + - ⚪ + - ⚫ + - ⚬ + - ✶ + - ✷ + - ✸ + - ➀ + - ➁ + - ➂ + - ➃ + - ➄ + - ➅ + - ➆ + - ➇ + - ➈ + - ➉ + - ➊ + - ➋ + - ➌ + - ➍ + - ➎ + - ➏ + - ➐ + - ➑ + - ➒ + - ➓ + - ⏀ + - ⏁ + - ⏂ + - ⏃ + - ⏄ + - ⏅ + - ⏆ + - ⏇ + - ⏈ + - ⏉ + - ⏊ + - ⏋ + - ⏌ + - ⏚ + - ⏴ + - ⏵ + - ⏶ + - ⏷ + - ⏸ + - ⏹ + - ⏺ + - ⏻ + - ⏼ + - Α + - Β + - Γ + - Ε + - Ζ + - Η + - Θ + - Ι + - Κ + - Λ + - Μ + - Ν + - Ξ + - Ο + - Π + - Ρ + - Σ + - Τ + - Υ + - Φ + - Χ + - Ψ + - β + - γ + - δ + - ε + - ζ + - η + - θ + - ι + - κ + - ν + - ξ + - ο + - π + - ρ + - σ + - τ + - υ + - χ + - ψ + - ω + - ϐ + - ϑ + - ϒ + - ϕ + - █ + - ϖ + - ϰ + - ϱ + - ϴ + - ϵ + - ϝ + - Ϟ + - ϟ + - Ϡ + - ϡ + - Ϣ + - ϣ + - Ϥ + - ϥ + - Ϧ + - ϧ + - Ϩ + - ϩ + - Ϫ + - ϫ + - Ϭ + - ϭ + - Ϯ + - ϯ + - ∸ + - ∹ + - ∺ + - ∻ + - ∽ + - ∾ + - ∿ + - ≀ + - ≁ + - ≂ + - ≆ + - ≇ + - ≉ + - ≊ + - ≋ + - ≌ + - ≍ + - ≎ + - ≏ + - ≐ + - ≑ + - ≒ + - ≓ + - ≔ + - ≕ + - ≖ + - ≗ + - ≘ + - ≙ + - ≚ + - ≛ + - ≜ + - ≝ + - ≞ + - ≟ + - ≢ + - ≣ + - ≨ + - ≩ + - ≬ + - ≭ + - ≮ + - ≯ + - ≰ + - ≱ + - ≴ + - ≵ + - ≸ + - ≹ + - ≾ + - ≿ + - ⊀ + - ⊁ + - ⊊ + - ⊋ + - ⊌ + - ⊍ + - ⊏ + - ⊐ + - ⊑ + - ⊒ + - ⊚ + - ⊛ + - ⊜ + - ⊝ + - ⊞ + - ⊟ + - ⊠ + - ⊡ + - ⊣ + - ⊦ + - ⊩ + - ⊪ + - ⊫ + - ⊬ + - ⊭ + - ⊮ + - ⊯ + - ⊰ + - ⊱ + - ⊲ + - ⊳ + - ⊴ + - ⊵ + - ⊶ + - ⊷ + - ⊸ + - ⊹ + - ⊺ + - ℎ + - ℘ + - ℜ + - ℑ + - ℵ + - ℶ + - ℷ + - ℸ + - ⌬ + - ⌭ + - ⌮ + - ⌯ + - ⎔ + - ¤ + - ₠ + - ₡ + - ₢ + - ₣ + - ₤ + - ₥ + - ₦ + - ₧ + - ₨ + - ₩ + - ₪ + - ₫ + - ₭ + - ₮ + - ₯ + - ₰ + - ₱ + - ₲ + - ₳ + - ₴ + - ₵ + - ₶ + - ₷ + - ₸ + - ₹ + - ₺ + - ₻ + - ₼ + - ₽ + - ₾ + - ↚ + - ↛ + - ↜ + - ↝ + - ↞ + - ↟ + - ↠ + - ↡ + - ↢ + - ↣ + - ↤ + - ↥ + - ↦ + - ↧ + - ↨ + - ↩ + - ↪ + - ↫ + - ↬ + - ↭ + - ↮ + - ↯ + - ↰ + - ↱ + - ↲ + - ↳ + - ↴ + - ↵ + - ↶ + - ↷ + - ↸ + - ↹ + - ⇄ + - ⇅ + - ⇆ + - ⇇ + - ⇈ + - ⇉ + - ⇊ + - ⇍ + - ⇎ + - ⇏ + - ⇑ + - ⇓ + - ⇕ + - ⇖ + - ⇗ + - ⇘ + - ⇙ + - ⇚ + - ⇛ + - ⇜ + - ⇝ + - ⇞ + - ⇟ + - ⇠ + - ⇡ + - ⇢ + - ⇣ + - ⇤ + - ⇥ + - ⇦ + - ⇧ + - ⇨ + - ⇩ + - ⇪ + - ⇫ + - ⇬ + - ⇭ + - ⇮ + - ⇯ + - ⇰ + - ⇱ + - ⇲ + - ⇳ + - ⇴ + - ⇵ + - ⇶ + - ⇷ + - ⇸ + - ⇹ + - ⇺ + - ⇻ + - ⇼ + - ⇽ + - ⇾ + - ⇿ + - ↀ + - ↁ + - ↂ + - ☀ + - ☁ + - ☂ + - ☃ + - ☄ + - ★ + - ☇ + - ☈ + - ☉ + - ☊ + - ☋ + - ☌ + - ☍ + - ☎ + - ☏ + - ☐ + - ☑ + - ☒ + - ☓ + - ☔ + - ☕ + - ☖ + - ☗ + - ☘ + - ☙ + - ☚ + - ☛ + - ☜ + - ☝ + - ☞ + - ☟ + - ☠ + - ☡ + - ☢ + - ☣ + - ☤ + - ☥ + - ☦ + - ☧ + - ☨ + - ☩ + - ☪ + - ☫ + - ☬ + - ☭ + - ☮ + - ☯ + - ☸ + - ☹ + - ☺ + - ☻ + - ☼ + - ☽ + - ☾ + - ☿ + - ♁ + - ♃ + - ♄ + - ♅ + - ♆ + - ♇ + - ♔ + - ♕ + - ♖ + - ♗ + - ♘ + - ♙ + - ♚ + - ♛ + - ♜ + - ♝ + - ♞ + - ♟ + - ♠ + - ♡ + - ♢ + - ♣ + - ♤ + - ♥ + - ♦ + - ♧ + - ♨ + - ♭ + - ♮ + - ♯ + - ♰ + - ♱ + - ♲ + - ♻ + - ♼ + - ♽ + - ♾ + - ⚀ + - ⚁ + - ⚂ + - ⚃ + - ⚄ + - ⚅ + - ⚆ + - ⚇ + - ⚈ + - ⚉ + - ⚊ + - ⚋ + - ⚌ + - ⚍ + - ⚎ + - ⚏ + - ⚐ + - ⚑ + - ⚒ + - ⚓ + - ⚔ + - ⚕ + - ⚖ + - ⚗ + - ⚘ + - ⚙ + - ⚚ + - ⚛ + - ⚜ + - ⚝ + - ⚞ + - ⚟ + - ⚠ + - ⚡ + - ⚢ + - ⚣ + - ⚤ + - ⚥ + - ⚦ + - ⚧ + - ⚨ + - ⚩ + - ⚭ + - ⚮ + - ⚯ + - ⚰ + - ⚱ + - ⚲ + - ⚳ + - ⚴ + - ⚵ + - ⚶ + - ⚷ + - ⚸ + - ⚹ + - ⚺ + - ⚻ + - ⚼ + - ⚿ + - ⛀ + - ⛁ + - ⛂ + - ⛃ + - ⛆ + - ⛇ + - ⛈ + - ⛉ + - ⛊ + - ⛋ + - ⛌ + - ⛍ + - ⛏ + - ⛐ + - ⛑ + - ⛒ + - ⛓ + - ⛕ + - ⛖ + - ⛗ + - ⛘ + - ⛙ + - ⛚ + - ⛛ + - ⛜ + - ⛝ + - ⛞ + - ⛠ + - ⛡ + - ⛢ + - ⛣ + - ⛤ + - ⛥ + - ⛦ + - ⛧ + - ⛨ + - ⛩ + - ⛪ + - ⛫ + - ⛬ + - ⛭ + - ⛮ + - ⛯ + - ⛶ + - ⛾ + - ⛿ + - ✆ + - ✇ + - ✈ + - ✉ + - ✌ + - ✍ + - ✎ + - ✏ + - ✐ + - ✑ + - ✒ + - ✓ + - ✔ + - ✕ + - ✙ + - ✚ + - ✛ + - ✜ + - ✝ + - ✞ + - ✟ + - ✠ + - ✡ + - ✢ + - ✣ + - ✤ + - ✥ + - ✦ + - ✧ + - ✩ + - ✪ + - ✫ + - ✬ + - ✭ + - ✮ + - ✯ + - ✰ + - ✱ + - ✲ + - ✳ + - ✴ + - ✵ + - ✹ + - ✺ + - ✻ + - ✼ + - ✽ + - ✾ + - ✿ + - ❀ + - ❁ + - ❂ + - ❃ + - ❄ + - ❅ + - ❆ + - ❇ + - ❈ + - ❉ + - ❊ + - ❋ + - ❍ + - ❏ + - ❐ + - ❑ + - ❒ + - ❖ + - ❘ + - ❙ + - ❚ + - ❛ + - ❜ + - ❝ + - ❞ + - ❡ + - ❢ + - ❣ + - ❤ + - ❥ + - ❦ + - ❧ + - ❨ + - ❩ + - ❪ + - ❫ + - ❬ + - ❭ + - ❮ + - ❯ + - ❰ + - ❱ + - ❲ + - ❳ + - ❴ + - ❵ + - ❶ + - ❷ + - ❸ + - ❹ + - ❺ + - ❻ + - ❼ + - ❽ + - ❾ + - ❿ + - ① + - ② + - ③ + - ④ + - ⑤ + - ⑥ + - ⑦ + - ⑧ + - ⑨ + - ⑩ + - ➔ + - ➕ + - ➖ + - ➗ + - ➘ + - ➙ + - ➚ + - ➛ + - ➜ + - ➝ + - ➞ + - ➟ + - ➠ + - ➡ + - ➢ + - ➣ + - ➤ + - ➥ + - ➦ + - ➧ + - ➨ + - ➩ + - ➪ + - ➫ + - ➬ + - ➭ + - ➮ + - ➯ + - ➰ + - ➱ + - ➲ + - ➳ + - ➴ + - ➵ + - ➶ + - ➷ + - ➸ + - ➹ + - ➺ + - ➻ + - ➼ + - ➽ + - ➾ + - ➿ + - ⌘ + - ⌥ + - ⌃ + - ⎋ + - ⌫ + - ⌦ + - ⏏ + - ⌤ + - ⌧ + - ⌨ + - ⎆ + - ⎇ + - ⎈ + - ⎉ + - ⎊ + - ⎌ + - ⎍ + - ⎎ + - ⎏ + - ⎐ + - ⎑ + - ⎒ + - ⎓ + - ⎕ + - ⎖ + - ⎗ + - ⎘ + - ⎙ + - ⎚ + - ⎛ + - ⎜ + - ⎝ + - ⎞ + - ⎟ + - ⎠ + - ⎡ + - ⎢ + - ⎣ + - ⎤ + - ⎥ + - ⎦ + - ⎧ + - ⎨ + - ⎩ + - ⎪ + - ⎫ + - ⎬ + - ⎭ + - ⎮ + - ⎯ + - ⎰ + - ⎱ + - ⎲ + - ⎳ + - ⎴ + - ⎵ + - ⎶ + - ⎷ + - ⎸ + - ⎹ + - ⎺ + - ⎻ + - ⎼ + - ⎽ + - ⎾ + - ⎿ + - ⏍ + - ⏎ + - ⏐ + - ⏑ + - ⏒ + - ⏓ + - ⏔ + - ⏕ + - ⏖ + - ⏗ + - ⏘ + - ⏙ + - ⏛ + - ⏜ + - ⏝ + - ⏞ + - ⏟ + - ⏠ + - ⏡ + - ⏢ + - ⏣ + - ⏤ + - ⏥ + - ⏦ + - ⏧ + - ⏨ + - ⏭ + - ⏮ + - ⏯ + - ⏱ + - ⏲ + - ▲ + - ▽ + - ◐ + - ⏽ + - ⏾ + - ⏿ + - ɐ + - ɑ + - ɒ + - ɓ + - ɔ + - ɕ + - ɖ + - ɗ + - ɘ + - ə + - ɚ + - ɛ + - ɜ + - ɝ + - ɞ + - ɟ + - ɠ + - ɡ + - ɢ + - ɣ + - ɤ + - ɥ + - ɦ + - ɧ + - ɨ + - ɩ + - ɪ + - ɫ + - ɬ + - ɭ + - ɮ + - ɯ + - ɰ + - ɱ + - ɲ + - ɳ + - ɴ + - ɵ + - ɶ + - ɷ + - ɸ + - ɹ + - ɺ + - ɻ + - ɼ + - ɽ + - ɾ + - ɿ + - ʀ + - ʁ + - ʂ + - ʃ + - ʄ + - ʅ + - ʆ + - ʇ + - ʈ + - ʉ + - ʊ + - ʋ + - ʌ + - ʍ + - ʎ + - ʏ + - ʐ + - ʑ + - ʒ + - ʓ + - ʔ + - ʕ + - ʖ + - ʗ + - ʘ + - ʙ + - ʚ + - ʛ + - ʜ + - ʝ + - ʞ + - ʟ + - ʠ + - ʡ + - ʢ + - ʣ + - ʤ + - ʥ + - ʦ + - ʧ + - ʨ + - ʩ + - ʪ + - ʫ + - ʬ + - ʭ + - ʮ + - ʯ + - ━ + - Ǝ + - Ã + - ● + - ▶ + - | + - 𝑢 + - 〖 + - 〗 + - ︽ + - – + - ﹥ + - 𝜓 + - • + - ∋ + - ƒ + - ० + - ✘ + - Е + - ◉ + - 〒 + - 𝒱 + - 𝜆 + - ⟹ + - ﹪ + - ◊ + - ╆ + - 오 + - ˂ + - 〉 + - 𝝎 + - ▪ + - △ + - ▁ + - ◼ + - 〇 + - ▷ + - ▬ + - 𝒮 + - † + - ₒ + - ⼁ + - 〵 + - ⭐ + - ╳ + - ⟶ + - 으 + - ⬆ + - Ạ + - ◀ + -  + - ▫ + - 丄 + - ︾ + - ◥ + - ‖ + - 𝜌 + - ⅼ + - ▼ + - ⁎ + - ﹏ + - 😁 + - 😂 + - 😃 + - 😄 + - 😅 + - 😆 + - 😉 + - 😊 + - 😋 + - 😌 + - 😍 + - 😏 + - 😒 + - 😓 + - 😔 + - 😖 + - 😘 + - 😚 + - 😜 + - 😝 + - 😞 + - 😠 + - 😡 + - 😢 + - 😣 + - 😤 + - 😥 + - 😨 + - 😩 + - 😪 + - 😫 + - 😭 + - 😰 + - 😱 + - 😲 + - 😳 + - 😵 + - 😷 + - 😸 + - 😹 + - 😺 + - 😻 + - 😼 + - 😽 + - 😾 + - 😿 + - 🙀 + - 🙅 + - 🙆 + - 🙇 + - 🙈 + - 🙉 + - 🙊 + - 🙋 + - 🙌 + - 🙍 + - 🙎 + - 🙏 + - ✂ + - ✅ + - ✊ + - ✋ + - ✖ + - ✨ + - ❌ + - ❎ + - ❓ + - ❔ + - ❕ + - ❗ + - 🚀 + - 🚃 + - 🚄 + - 🚅 + - 🚇 + - 🚉 + - 🚌 + - 🚏 + - 🚑 + - 🚒 + - 🚓 + - 🚕 + - 🚗 + - 🚙 + - 🚚 + - 🚢 + - 🚤 + - 🚥 + - 🚧 + - 🚨 + - 🚩 + - 🚪 + - 🚫 + - 🚬 + - 🚭 + - 🚲 + - 🚶 + - 🚹 + - 🚺 + - 🚻 + - 🚼 + - 🚽 + - 🚾 + - 🛀 + - Ⓜ + - 🅰 + - 🅱 + - 🅾 + - 🅿 + - 🆎 + - 🆑 + - 🆒 + - 🆓 + - 🆔 + - 🆕 + - 🆖 + - 🆗 + - 🆘 + - 🆙 + - 🆚 + - 🇩🇪 + - 🇬🇧 + - 🇨🇳 + - 🇯🇵 + - 🇫🇷 + - 🇰🇷 + - 🇪🇸 + - 🇮🇹 + - 🇷🇺 + - 🇺🇸 + - 🈁 + - ℹ + - ⌚ + - ⌛ + - ⏩ + - ⏪ + - ⏫ + - ⏬ + - ⏰ + - ⏳ + - ◻ + - ◽ + - ◾ + - ♈ + - ♉ + - ♊ + - ♋ + - ♌ + - ♍ + - ♎ + - ♏ + - ♐ + - ♑ + - ♒ + - ♓ + - ♿ + - ⚽ + - ⚾ + - ⛄ + - ⛅ + - ⛎ + - ⛔ + - ⛲ + - ⛳ + - ⛵ + - ⛺ + - ⛽ + - ⤴ + - ⤵ + - ⬅ + - ⬇ + - ⬛ + - ⬜ + - ⭕ + - 〰 + - 〽 + - ㊗ + - ㊙ + - 🀄 + - 🃏 + - 🌀 + - 🌁 + - 🌂 + - 🌃 + - 🌄 + - 🌅 + - 🌆 + - 🌇 + - 🌈 + - 🌉 + - 🌊 + - 🌋 + - 🌌 + - 🌏 + - 🌑 + - 🌓 + - 🌔 + - 🌕 + - 🌙 + - 🌛 + - 🌟 + - 🌠 + - 🌰 + - 🌱 + - 🌴 + - 🌵 + - 🌷 + - 🌸 + - 🌹 + - 🌺 + - 🌻 + - 🌼 + - 🌽 + - 🌾 + - 🌿 + - 🍀 + - 🍁 + - 🍂 + - 🍃 + - 🍄 + - 🍅 + - 🍆 + - 🍇 + - 🍈 + - 🍉 + - 🍊 + - 🍌 + - 🍍 + - 🍎 + - 🍏 + - 🍑 + - 🍒 + - 🍓 + - 🍔 + - 🍕 + - 🍖 + - 🍗 + - 🍘 + - 🍙 + - 🍚 + - 🍛 + - 🍜 + - 🍝 + - 🍞 + - 🍟 + - 🍠 + - 🍡 + - 🍢 + - 🍣 + - 🍤 + - 🍥 + - 🍦 + - 🍧 + - 🍨 + - 🍩 + - 🍪 + - 🍫 + - 🍬 + - 🍭 + - 🍮 + - 🍯 + - 🍰 + - 🍱 + - 🍲 + - 🍳 + - 🍴 + - 🍵 + - 🍶 + - 🍷 + - 🍸 + - 🍹 + - 🍺 + - 🍻 + - 🎀 + - 🎁 + - 🎂 + - 🎃 + - 🎄 + - 🎅 + - 🎆 + - 🎇 + - 🎈 + - 🎉 + - 🎊 + - 🎋 + - 🎌 + - 🎍 + - 🎎 + - 🎏 + - 🎐 + - 🎑 + - 🎒 + - 🎓 + - 🎠 + - 🎡 + - 🎢 + - 🎣 + - 🎤 + - 🎥 + - 🎦 + - 🎧 + - 🎨 + - 🎩 + - 🎪 + - 🎫 + - 🎬 + - 🎭 + - 🎮 + - 🎯 + - 🎰 + - 🎱 + - 🎲 + - 🎳 + - 🎴 + - 🎵 + - 🎶 + - 🎷 + - 🎸 + - 🎹 + - 🎺 + - 🎻 + - 🎼 + - 🎽 + - 🎾 + - 🎿 + - 🏀 + - 🏁 + - 🏂 + - 🏃 + - 🏄 + - 🏆 + - 🏈 + - 🏊 + - 🏠 + - 🏡 + - 🏢 + - 🏣 + - 🏥 + - 🏦 + - 🏧 + - 🏨 + - 🏩 + - 🏪 + - 🏫 + - 🏬 + - 🏭 + - 🏮 + - 🏯 + - 🏰 + - 🐌 + - 🐍 + - 🐎 + - 🐑 + - 🐒 + - 🐔 + - 🐗 + - 🐘 + - 🐙 + - 🐚 + - 🐛 + - 🐜 + - 🐝 + - 🐞 + - 🐟 + - 🐠 + - 🐡 + - 🐢 + - 🐣 + - 🐤 + - 🐥 + - 🐦 + - 🐧 + - 🐨 + - 🐩 + - 🐫 + - 🐬 + - 🐭 + - 🐮 + - 🐯 + - 🐰 + - 🐱 + - 🐲 + - 🐳 + - 🐴 + - 🐵 + - 🐶 + - 🐷 + - 🐸 + - 🐹 + - 🐺 + - 🐻 + - 🐼 + - 🐽 + - 🐾 + - 👀 + - 👂 + - 👃 + - 👄 + - 👅 + - 👆 + - 👇 + - 👈 + - 👉 + - 👊 + - 👋 + - 👌 + - 👍 + - 👎 + - 👏 + - 👐 + - 👑 + - 👒 + - 👓 + - 👔 + - 👕 + - 👖 + - 👗 + - 👘 + - 👙 + - 👚 + - 👛 + - 👜 + - 👝 + - 👞 + - 👟 + - 👠 + - 👡 + - 👢 + - 👣 + - 👤 + - 👦 + - 👧 + - 👨 + - 👩 + - 👪 + - 👫 + - 👮 + - 👯 + - 👰 + - 👱 + - 👲 + - 👳 + - 👴 + - 👵 + - 👶 + - 👷 + - 👸 + - 👹 + - 👺 + - 👻 + - 👼 + - 👽 + - 👾 + - 👿 + - 💀 + - 💁 + - 💂 + - 💃 + - 💄 + - 💅 + - 💆 + - 💇 + - 💈 + - 💉 + - 💊 + - 💋 + - 💌 + - 💍 + - 💎 + - 💏 + - 💐 + - 💑 + - 💒 + - 💓 + - 💔 + - 💕 + - 💖 + - 💗 + - 💘 + - 💙 + - 💚 + - 💛 + - 💜 + - 💝 + - 💞 + - 💟 + - 💠 + - 💡 + - 💢 + - 💣 + - 💤 + - 💥 + - 💦 + - 💧 + - 💨 + - 💩 + - 💪 + - 💫 + - 💬 + - 💮 + - 💯 + - 💰 + - 💲 + - 💳 + - 💴 + - 💵 + - 💸 + - 💹 + - 💺 + - 💻 + - 💼 + - 💽 + - 💾 + - 💿 + - 📀 + - 📁 + - 📂 + - 📃 + - 📄 + - 📅 + - 📆 + - 📇 + - 📈 + - 📉 + - 📊 + - 📋 + - 📌 + - 📍 + - 📎 + - 📏 + - 📐 + - 📑 + - 📒 + - 📓 + - 📔 + - 📕 + - 📖 + - 📗 + - 📘 + - 📙 + - 📚 + - 📛 + - 📜 + - 📝 + - 📞 + - 📟 + - 📠 + - 📡 + - 📢 + - 📣 + - 📤 + - 📥 + - 📦 + - 📧 + - 📨 + - 📩 + - 📪 + - 📫 + - 📮 + - 📰 + - 📱 + - 📲 + - 📳 + - 📴 + - 📶 + - 📷 + - 📹 + - 📺 + - 📻 + - 📼 + - 🔃 + - 🔊 + - 🔋 + - 🔌 + - 🔍 + - 🔎 + - 🔏 + - 🔐 + - 🔑 + - 🔒 + - 🔓 + - 🔔 + - 🔖 + - 🔗 + - 🔘 + - 🔙 + - 🔚 + - 🔛 + - 🔜 + - 🔝 + - 🔞 + - 🔟 + - 🔠 + - 🔡 + - 🔢 + - 🔣 + - 🔤 + - 🔥 + - 🔦 + - 🔧 + - 🔨 + - 🔩 + - 🔪 + - 🔫 + - 🔮 + - 🔯 + - 🔰 + - 🔱 + - 🔲 + - 🔳 + - 🔴 + - 🔵 + - 🔶 + - 🔷 + - 🔸 + - 🔹 + - 🔺 + - 🔻 + - 🔼 + - 🔽 + - 🕐 + - 🕑 + - 🕒 + - 🕓 + - 🕔 + - 🕕 + - 🕖 + - 🕗 + - 🕘 + - 🕙 + - 🕚 + - 🕛 + - 🗻 + - 🗼 + - 🗽 + - 🗾 + - 🗿 + - 😀 + - 😇 + - 😈 + - 😎 + - 😐 + - 😑 + - 😕 + - 😗 + - 😙 + - 😛 + - 😟 + - 😦 + - 😧 + - 😬 + - 😮 + - 😯 + - 😴 + - 😶 + - 🚁 + - 🚂 + - 🚆 + - 🚈 + - 🚊 + - 🚍 + - 🚎 + - 🚐 + - 🚔 + - 🚖 + - 🚘 + - 🚛 + - 🚜 + - 🚝 + - 🚞 + - 🚟 + - 🚠 + - 🚡 + - 🚣 + - 🚦 + - 🚮 + - 🚯 + - 🚰 + - 🚱 + - 🚳 + - 🚴 + - 🚵 + - 🚷 + - 🚸 + - 🚿 + - 🛁 + - 🛂 + - 🛃 + - 🛄 + - 🛅 + - 🌍 + - 🌎 + - 🌐 + - 🌒 + - 🌖 + - 🌗 + - 🌘 + - 🌚 + - 🌜 + - 🌝 + - 🌞 + - 🌲 + - 🌳 + - 🍋 + - 🍐 + - 🍼 + - 🏇 + - 🏉 + - 🏤 + - 🐀 + - 🐁 + - 🐂 + - 🐃 + - 🐄 + - 🐅 + - 🐆 + - 🐇 + - 🐈 + - 🐉 + - 🐊 + - 🐋 + - 🐏 + - 🐐 + - 🐓 + - 🐕 + - 🐖 + - 🐪 + - 👥 + - 👬 + - 👭 + - 💭 + - 💶 + - 💷 + - 📬 + - 📭 + - 📯 + - 📵 + - 🔀 + - 🔁 + - 🔂 + - 🔄 + - 🔅 + - 🔆 + - 🔇 + - 🔉 + - 🔕 + - 🔬 + - 🔭 + - 🕜 + - 🕝 + - 🕞 + - 🕟 + - 🕠 + - 🕡 + - 🕢 + - 🕣 + - 🕤 + - 🕥 + - 🕦 + - 🕧