diff --git a/i18n.json b/i18n.json
new file mode 100644
index 0000000..f6a2477
--- /dev/null
+++ b/i18n.json
@@ -0,0 +1,2015 @@
+{
+ "default": "zh_CN",
+ "languages": [
+ {
+ "code": "zh_CN",
+ "name": "简体中文 (中国)",
+ "lang": {
+ "need_api_key": "需要API Key",
+ "dont_need_api_key": "不需要API Key(不稳定)",
+ "prompt": "提示词",
+ "negative_prompt": "反向词",
+ "txt2img": "文生图",
+ "img2img": "图生图",
+ "please_enter_new_keyword": "请输入新关键词",
+ "local_language": "本地语言",
+ "increase_weight_add_parentheses": "增加关键词权重:叠加()",
+ "increase_weight_subtract_parentheses": "增加关键词权重:减少()",
+ "decrease_weight_add_brackets": "减弱关键词权重:叠加[]",
+ "decrease_weight_subtract_brackets": "减弱关键词权重:减少[]",
+ "translate_keyword_to_local_language": "翻译关键词到本地语言",
+ "copy_to_clipboard": "复制到剪贴板",
+ "disable_keyword": "禁用关键词",
+ "enable_keyword": "启用关键词",
+ "copy_keywords_to_clipboard": "复制所有关键词到剪贴板",
+ "translate_keywords_to_local_language": "翻译所有关键词到本地语言",
+ "translate_keyword_to_english": "翻译为英文",
+ "translate_all_keywords_to_english": "翻译所有非英文的关键词到英文",
+ "auto_translate_to_english": "输入新关键词后自动翻译到英文",
+ "auto_translate_to_local_language": "输入新关键词后自动翻译到本地语言",
+ "translate_api": "翻译接口",
+ "history": "历史记录",
+ "clear_history": "清除历史记录",
+ "clear_history_confirm": "确定要清除历史记录吗?",
+ "clear_history_success": "历史记录已清除",
+ "max_history_count": "最大历史记录数",
+ "favorite": "收藏列表",
+ "add_to_favorite": "添加到收藏",
+ "remove_from_favorite": "从收藏中移除",
+ "use": "使用",
+ "click_to_edit": "鼠标左键点击进行编辑",
+ "drop_to_order": "鼠标左键按住拖动进行排序",
+ "enter_to_save": "按回车键保存关键词",
+ "enter_to_add": "按回车键添加关键词",
+ "translate_api_not_found": "翻译API未找到",
+ "translate_language_not_support": "翻译语言不支持",
+ "translate_api_not_support": "翻译API不支持",
+ "unset_name": "未设置名称",
+ "no_history": "暂无历史记录",
+ "get_history_error": "获取历史记录失败",
+ "no_favorite": "暂无收藏",
+ "get_favorite_error": "获取收藏失败",
+ "hide_default_input_box": "隐藏默认输入框",
+ "show_default_input_box": "显示默认输入框",
+ "translate_test": "翻译测试",
+ "close": "关闭",
+ "save": "保存",
+ "delete_all_keywords": "删除所有关键词",
+ "delete_all_keywords_confirm": "确定要删除所有关键词吗?",
+ "whether_to_enable_tooltip": "是否启用每个功能的提示框,如果你已经熟练掌握本扩展的所有功能,可以取消勾选",
+ "delete_all_history": "删除所有历史记录",
+ "delete_all_history_confirm": "确定要删除所有历史记录吗?",
+ "please_enter_the_content_here": "请输入内容",
+ "not_api_key_desc": "免费的翻译接口不稳定,并不是每个接口都能在你的电脑中使用,请尽量申请api key使用稳定的官方接口",
+ "setting_desc": "设置:翻译API、自动翻译、显示/隐藏...",
+ "line_break_character": "换行符号",
+ "tagcomplete_translate_desc": "
使用 DominikDoom/a1111-sd-webui-tagcomplete 扩展中的 danbooru.csv 增强翻译功能,以达到节省网络请求、精准翻译的目的。
点击刷新按钮后,将扫描以下路径的csv文件: extensions\\a1111-sd-webui-tagcomplete\\tags、extensions\\sd-webui-prompt-all-in-one\\tags。
你可以前往git仓库 Physton/sd-webui-prompt-all-in-one-assets/tags 下载csv文件。
",
+ "test": "测试",
+ "refresh": "刷新",
+ "not_enable": "不启用",
+ "translate_result": "{0} 的翻译结果是:{1}",
+ "not_found_csv_file": "没有找到csv文件",
+ "theme_extension": "主题:扩展插件样式",
+ "is_remove_space": "是否去除每个关键词逗号后的空格。 勾选后将自动去除空格(不便阅读)。 取消勾选则保留1个空格(影响TOKEN计数)。",
+ "theme": "主题",
+ "enhance": "增强",
+ "only_csv_on_auto": "自动翻译只使用CSV翻译(不使用网络翻译),手动点击翻译按钮才使用CSV加网络翻译。",
+ "one_translate_all_keywords": "一键翻译所有关键词",
+ "auto_translate": "输入新关键词后自动翻译",
+ "is_remove_last_comma": "是否去除Prompt最后的一个逗号。 勾选后Prompt输出为“aaa,bbb,ccc”。 取消勾选Prompt输出为“aaa,bbb,ccc,”。",
+ "is_keep_weight_zero": "是否保留关键词权重为0的格式。 勾选后关键词保留格式为“(text:0)”。 取消勾选将不保留格式为“test”。",
+ "is_keep_weight_one": "是否保留关键词权重为1的格式。 勾选后关键词保留格式为“(text:1)”。 取消勾选将不保留格式为“test”。",
+ "prompt_format": "Prompt格式",
+ "tagcomplete_translate_desc2": "选择了错误的CSV文件,将导致翻译结果为空,或者为“0”。更换文件后,请点击下方的测试按钮,然后检查翻译的结果是否正确的显示了你的本地语言。",
+ "dblclick_to_disable": "鼠标双击禁用/启用关键词",
+ "batch_operation": "批量操作",
+ "success": "成功!",
+ "failed": "失败!",
+ "packages_desc": "检测到部分python包没有安装或者未安装成功,你需要点击尝试重新安装。所有包安装成功后,所有功能才能够正常使用。 如果点击安装按钮后,还是无法成功安装。你需要手动复制命令并在终端执行。",
+ "installed": "已安装",
+ "not_install": "未安装",
+ "install": "安装",
+ "packages_installing": "开始安装......如需查询详细安装日志,请前往WebUI控制台查看。安装完成后,本窗口将自动关闭!",
+ "today_not_show": "今日不再显示本窗口",
+ "free": "免费",
+ "apply_for_free": "申请后免费使用",
+ "chatgpt_prompts_preset": "StableDiffusion是一款利用深度学习的文生图模型,支持通过使用提示词来产生新的图像,描述要包含或省略的元素。\n我在这里引入StableDiffusion算法中的Prompt概念,又被称为提示符。\n下面的prompt是用来指导AI绘画模型创作图像的。它们包含了图像的各种细节,如人物的外观、背景、颜色和光线效果,以及图像的主题和风格。这些prompt的格式经常包含括号内的加权数字,用于指定某些细节的重要性或强调。例如,\"(masterpiece:1.5)\"表示作品质量是非常重要的,多个括号也有类似作用。此外,如果使用中括号,如\"{blue hair:white hair:0.3}\",这代表将蓝发和白发加以融合,蓝发占比为0.3。\n以下是用prompt帮助AI模型生成图像的例子:masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n\n仿照例子,给出一套详细描述以下内容的prompt。直接开始给出prompt不需要用自然语言描述:",
+ "use_chatgpt_gen_prompts": "使用ChatGPT生成Prompt",
+ "input_image_desc": "请输入图片描述,例如:一只猫坐在建筑物顶部,非常高清、非常真实的照片。",
+ "api_config": "API配置",
+ "image_desc": "图片描述",
+ "preset": "预设",
+ "ai_one": "发给AI的第一句话",
+ "ai_two": "发给AI的第二句话",
+ "restore_to_default": "恢复到系统默认",
+ "generate": "生成",
+ "generate_result": "生成结果",
+ "is_required": "{0} 必须输入!",
+ "is_not_dict": "{0} 必须是字典!",
+ "no_response_from": "没有从 {0} 收到返回内容!",
+ "request_error": "{0} 请求错误!",
+ "response_is_empty": "{0} 返回内容为空!",
+ "response_error": "{0} 返回内容错误!",
+ "install_success": "{0} 安装成功!",
+ "install_failed": "Error: {0} 安装失败!",
+ "translate_text_is_empty": "翻译文本为空!",
+ "about_desc": "关于、更新、帮助、文档",
+ "version": "版本",
+ "unknown_version": "未知版本",
+ "has_new_version": "有新的版本,请及时更新",
+ "wiki_desc": "安装教程、功能详解、使用方法、常见问题等等,详见:"
+ }
+ },
+ {
+ "code": "zh_HK",
+ "name": "繁體中文 (中國香港)",
+ "lang": {
+ "need_api_key": "需要API Key",
+ "dont_need_api_key": "唔使API Key(唔太可靠)",
+ "prompt": "提示詞",
+ "negative_prompt": "反向詞",
+ "txt2img": "文生圖",
+ "img2img": "圖生圖",
+ "please_enter_new_keyword": "請輸入新關鍵詞",
+ "local_language": "本地語言",
+ "increase_weight_add_parentheses": "增加關鍵詞權重:疊加()",
+ "increase_weight_subtract_parentheses": "增加關鍵詞權重:減少()",
+ "decrease_weight_add_brackets": "減弱關鍵詞權重:疊加[]",
+ "decrease_weight_subtract_brackets": "減弱關鍵詞權重:減少[]",
+ "translate_keyword_to_local_language": "翻譯關鍵詞到本地語言",
+ "copy_to_clipboard": "複製到剪貼板",
+ "disable_keyword": "禁用關鍵詞",
+ "enable_keyword": "啟用關鍵詞",
+ "copy_keywords_to_clipboard": "複製所有關鍵詞到剪貼板",
+ "translate_keywords_to_local_language": "翻譯所有關鍵詞到本地語言",
+ "translate_keyword_to_english": "翻譯為英文",
+ "translate_all_keywords_to_english": "翻譯所有非英文的關鍵詞到英文",
+ "auto_translate_to_english": "輸入新關鍵詞後自動翻譯到英文",
+ "auto_translate_to_local_language": "輸入新關鍵詞後自動翻譯到本地語言",
+ "translate_api": "翻譯接口",
+ "history": "歷史記錄",
+ "clear_history": "清除歷史記錄",
+ "clear_history_confirm": "確定要清除歷史記錄嗎?",
+ "clear_history_success": "歷史記錄已清除",
+ "max_history_count": "最大歷史記錄數",
+ "favorite": "收藏列表",
+ "add_to_favorite": "添加到收藏",
+ "remove_from_favorite": "從收藏中移除",
+ "use": "使用",
+ "click_to_edit": "滑鼠左鍵點擊進行編輯",
+ "drop_to_order": "滑鼠左鍵按住拖動進行排序",
+ "enter_to_save": "按回車鍵保存關鍵詞",
+ "enter_to_add": "按回車鍵添加關鍵詞",
+ "translate_api_not_found": "翻譯API未找到",
+ "translate_language_not_support": "翻譯語言唔支援",
+ "translate_api_not_support": "翻譯API唔支援",
+ "unset_name": "未設置名稱",
+ "no_history": "暫無歷史記錄",
+ "get_history_error": "獲取歷史記錄失敗",
+ "no_favorite": "暫無收藏",
+ "get_favorite_error": "獲取收藏失敗",
+ "hide_default_input_box": "隱藏預設輸入框",
+ "show_default_input_box": "顯示預設輸入框",
+ "translate_test": "翻譯測試",
+ "close": "關閉",
+ "save": "保存",
+ "delete_all_keywords": "刪除所有關鍵詞",
+ "delete_all_keywords_confirm": "確定要刪除所有關鍵詞嗎?",
+ "whether_to_enable_tooltip": "是否啟用每個功能的提示框,如果你已經熟悉使用本擴展的所有功能,可以取消勾選",
+ "delete_all_history": "刪除所有歷史記錄",
+ "delete_all_history_confirm": "確定要刪除所有歷史記錄嗎?",
+ "please_enter_the_content_here": "請輸入內容",
+ "not_api_key_desc": "免費嘅翻譯接口唔太可靠,唔係每個接口都可以喺你嘅電腦中使用,請盡量申請api key使用穩定嘅官方接口",
+ "setting_desc": "設置:翻譯API、自動翻譯、顯示/隱藏...",
+ "line_break_character": "換行符號",
+ "tagcomplete_translate_desc": "使用 DominikDoom/a1111-sd-webui-tagcomplete 擴展中的 danbooru.csv 增強翻譯功能,以達到節省網絡請求、精確翻譯的目的。
點擊刷新按鈕後,將掃描以下路徑的csv文件:extensions\\a1111-sd-webui-tagcomplete\\tags、extensions\\sd-webui-prompt-all-in-one\\tags。
你可以前往git倉庫 Physton/sd-webui-prompt-all-in-one-assets/tags 下載csv文件。
",
+ "test": "測試",
+ "refresh": "刷新",
+ "not_enable": "不啟用",
+ "translate_result": "{0} 的翻譯結果是:{1}",
+ "not_found_csv_file": "沒有找到csv文件",
+ "theme_extension": "主題:擴展插件樣式",
+ "is_remove_space": "是否去除每個關鍵詞逗號後的空格。 勾選後將自動去除空格(不便閱讀)。 取消勾選則保留1個空格(影響TOKEN計數)。",
+ "theme": "主題",
+ "enhance": "增強",
+ "only_csv_on_auto": "自動翻譯僅使用CSV翻譯(不使用網路翻譯),需手動點擊翻譯按鈕才會使用CSV加網路翻譯。",
+ "one_translate_all_keywords": "一鍵翻譯所有關鍵詞",
+ "auto_translate": "輸入新關鍵詞後自動翻譯",
+ "is_remove_last_comma": "是否去除Prompt最後的一個逗號。 勾選後Prompt輸出為“aaa,bbb,ccc”。 取消勾選Prompt輸出為“aaa,bbb,ccc,”。",
+ "is_keep_weight_zero": "是否保留關鍵詞權重為0的格式。 勾選後關鍵詞保留格式為“(text:0)”。 取消勾選將不保留格式為“test”。",
+ "is_keep_weight_one": "是否保留關鍵詞權重為1的格式。 勾選後關鍵詞保留格式為“(text:1)”。 取消勾選將不保留格式為“test”。",
+ "prompt_format": "Prompt格式",
+ "tagcomplete_translate_desc2": "選擇了錯誤的CSV文件,將導致翻譯結果為空或為“0”。更換文件後,請點擊下方的測試按鈕,然後檢查翻譯的結果是否正確地顯示了您的本地語言。",
+ "dblclick_to_disable": "滑鼠雙擊禁用/啟用關鍵字",
+ "batch_operation": "批量操作",
+ "success": "成功!",
+ "failed": "失敗!",
+ "packages_desc": "檢測到部分python包沒有安裝或者未安裝成功,你需要點擊嘗試重新安裝。所有包安裝成功後,所有功能才能夠正常使用。 如果點擊安裝按鈕後,還是無法成功安裝。你需要手動複製命令並在終端執行。",
+ "installed": "已安裝",
+ "not_install": "未安裝",
+ "install": "安裝",
+ "packages_installing": "開始安裝......如需查詢詳細安裝日誌,請前往WebUI控制台查看。安裝完成後,本窗口將自動關閉!",
+ "today_not_show": "今日不再顯示本窗口",
+ "free": "免費",
+ "apply_for_free": "申請後免費使用",
+ "chatgpt_prompts_preset": "StableDiffusion是一款利用深度學習的文生圖模型,支持通過使用提示詞來產生新的圖像,描述要包含或省略的元素。\n我在這裡引入StableDiffusion算法中的Prompt概念,又被稱為提示符。\n下面的prompt是用來指導AI繪畫模型創作圖像的。它們包含了圖像的各種細節,如人物的外觀、背景、顏色和光線效果,以及圖像的主題和風格。這些prompt的格式經常包含括號內的加權數字,用於指定某些細節的重要性或強調。例如,\"(masterpiece:1.5)\"表示作品質量是非常重要的,多個括號也有類似作用。此外,如果使用中括號,如\"{blue hair:white hair:0.3}\",這代表將藍髮和白髮加以融合,藍髮佔比為0.3。\n以下是用prompt幫助AI模型生成圖像的例子:masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n仿照例子,給出一套詳細描述以下內容的prompt。直接開始給出prompt不需要用自然語言描述:",
+ "use_chatgpt_gen_prompts": "使用ChatGPT生成Prompt",
+ "input_image_desc": "請輸入圖片描述,例如:一隻貓坐在建築物頂部,非常高清、非常真實的照片。",
+ "api_config": "API配置",
+ "image_desc": "圖片描述",
+ "preset": "預設",
+ "ai_one": "發給AI的第一句話",
+ "ai_two": "發給AI的第二句話",
+ "restore_to_default": "恢復到系統默認",
+ "generate": "生成",
+ "generate_result": "生成結果",
+ "is_required": "{0} 必須輸入!",
+ "is_not_dict": "{0} 必須是字典!",
+ "no_response_from": "沒有從 {0} 收到返回內容!",
+ "request_error": "{0} 請求錯誤!",
+ "response_is_empty": "{0} 返回內容為空!",
+ "response_error": "{0} 返回內容錯誤!",
+ "install_success": "{0} 安裝成功!",
+ "install_failed": "Error: {0} 安裝失敗!",
+ "translate_text_is_empty": "翻譯文本為空!",
+ "about_desc": "關於、更新、幫助、文件",
+ "version": "版本",
+ "unknown_version": "未知版本",
+ "has_new_version": "有新的版本,請及時更新",
+ "wiki_desc": "安裝教程、功能詳解、使用方法、常見問題等等,詳見:"
+ }
+ },
+ {
+ "code": "zh_TW",
+ "name": "繁体中文 (中國台灣)",
+ "lang": {
+ "need_api_key": "需要API Key",
+ "dont_need_api_key": "不需要API Key(不穩定)",
+ "prompt": "提示詞",
+ "negative_prompt": "反向詞",
+ "txt2img": "文生圖",
+ "img2img": "圖生圖",
+ "please_enter_new_keyword": "請輸入新關鍵詞",
+ "local_language": "本地語言",
+ "increase_weight_add_parentheses": "增加關鍵詞權重:疊加()",
+ "increase_weight_subtract_parentheses": "增加關鍵詞權重:減少()",
+ "decrease_weight_add_brackets": "減弱關鍵詞權重:疊加[]",
+ "decrease_weight_subtract_brackets": "減弱關鍵詞權重:減少[]",
+ "translate_keyword_to_local_language": "翻譯關鍵詞到本地語言",
+ "copy_to_clipboard": "複製到剪貼板",
+ "disable_keyword": "禁用關鍵詞",
+ "enable_keyword": "啟用關鍵詞",
+ "copy_keywords_to_clipboard": "複製所有關鍵詞到剪貼板",
+ "translate_keywords_to_local_language": "翻譯所有關鍵詞到本地語言",
+ "translate_keyword_to_english": "翻譯為英文",
+ "translate_all_keywords_to_english": "翻譯所有非英文的關鍵詞到英文",
+ "auto_translate_to_english": "輸入新關鍵詞後自動翻譯到英文",
+ "auto_translate_to_local_language": "輸入新關鍵詞後自動翻譯到本地語言",
+ "translate_api": "翻譯接口",
+ "history": "歷史記錄",
+ "clear_history": "清除歷史記錄",
+ "clear_history_confirm": "確定要清除歷史記錄嗎?",
+ "clear_history_success": "歷史記錄已清除",
+ "max_history_count": "最大歷史記錄數",
+ "favorite": "收藏列表",
+ "add_to_favorite": "添加到收藏",
+ "remove_from_favorite": "從收藏中移除",
+ "use": "使用",
+ "click_to_edit": "滑鼠左鍵點擊進行編輯",
+ "drop_to_order": "滑鼠左鍵按住拖動進行排序",
+ "enter_to_save": "按回車鍵保存關鍵詞",
+ "enter_to_add": "按回車鍵添加關鍵詞",
+ "translate_api_not_found": "翻譯API未找到",
+ "translate_language_not_support": "翻譯語言不支持",
+ "translate_api_not_support": "翻譯API不支持",
+ "unset_name": "未設置名稱",
+ "no_history": "暫無歷史記錄",
+ "get_history_error": "獲取歷史記錄失敗",
+ "no_favorite": "暫無收藏",
+ "get_favorite_error": "獲取收藏失敗",
+ "hide_default_input_box": "隱藏默認輸入框",
+ "show_default_input_box": "顯示默認輸入框",
+ "translate_test": "翻譯測試",
+ "close": "關閉",
+ "save": "保存",
+ "delete_all_keywords": "刪除所有關鍵詞",
+ "delete_all_keywords_confirm": "確定要刪除所有關鍵詞嗎?",
+ "whether_to_enable_tooltip": "是否啟用每個功能的提示框,如果你已經熟練掌握本擴展的所有功能,可以取消勾選",
+ "delete_all_history": "删除所有歷史記錄",
+ "delete_all_history_confirm": "確定要删除所有歷史記錄嗎?",
+ "please_enter_the_content_here": "請輸入內容",
+ "not_api_key_desc": "免費的翻譯介面不穩定,不是每一個介面都能在你的電腦上使用,建議申請API Key以使用穩定的官方介面。",
+ "setting_desc": "設置:翻譯API、自動翻譯、顯示/隱藏...",
+ "line_break_character": "換行字元",
+ "tagcomplete_translate_desc": "使用 DominikDoom/a1111-sd-webui-tagcomplete 擴展中的 danbooru.csv 增強翻譯功能,以達到節省網路請求、精確翻譯的目的。
點擊重新整理按鈕後,將掃描以下路徑的csv檔案:extensions\\a1111-sd-webui-tagcomplete\\tags、extensions\\sd-webui-prompt-all-in-one\\tags。
你可以前往git儲存庫 Physton/sd-webui-prompt-all-in-one-assets/tags 下載csv檔案。
",
+ "test": "測試",
+ "refresh": "重新整理",
+ "not_enable": "不啟用",
+ "translate_result": "{0} 的翻譯結果是:{1}",
+ "not_found_csv_file": "找不到csv檔案",
+ "theme_extension": "主題:擴充套件樣式",
+ "is_remove_space": "是否移除每個關鍵字逗號後的空格。 勾選後會自動移除空格(不易閱讀)。 取消勾選則保留 1 個空格(會影響 TOKEN 計數)。",
+ "theme": "主題",
+ "enhance": "增強",
+ "only_csv_on_auto": "自動翻譯僅使用CSV翻譯(不使用網路翻譯),需手動點擊翻譯按鈕才會使用CSV加網路翻譯。",
+ "one_translate_all_keywords": "一鍵翻譯所有關鍵詞",
+ "auto_translate": "輸入新關鍵詞後自動翻譯",
+ "is_remove_last_comma": "是否移除Prompt結尾的逗號。 勾選後Prompt輸出為“aaa,bbb,ccc”。 取消勾選Prompt輸出為“aaa,bbb,ccc,”。",
+ "is_keep_weight_zero": "是否保留關鍵詞權重為0的格式。 勾選後關鍵詞保留格式為“(text:0)”。 取消勾選將不保留格式為“test”。",
+ "is_keep_weight_one": "是否保留關鍵詞權重為1的格式。 勾選後關鍵詞保留格式為“(text:1)”。 取消勾選將不保留格式為“test”。",
+ "prompt_format": "Prompt格式",
+ "tagcomplete_translate_desc2": "選擇了錯誤的CSV檔案,會導致翻譯結果為空或“0”。更改檔案後,請點擊下方的測試按鈕,檢查是否正確顯示本地語言的翻譯結果。",
+ "dblclick_to_disable": "滑鼠雙擊禁用/啟用關鍵字",
+ "batch_operation": "批次操作",
+ "success": "成功!",
+ "failed": "失敗!",
+ "packages_desc": "偵測到部分python包沒有安裝或者未安裝成功,你需要點擊嘗試重新安裝。所有包安裝成功後,所有功能才能夠正常使用。 如果點擊安裝按鈕後,還是無法成功安裝。你需要手動複製命令並在終端執行。",
+ "installed": "已安裝",
+ "not_install": "未安裝",
+ "install": "安裝",
+ "packages_installing": "開始安裝......如需查詢詳細安裝日誌,請前往WebUI控制台查看。安裝完成後,本視窗將自動關閉!",
+ "today_not_show": "今日不再顯示本視窗",
+ "free": "免費",
+ "apply_for_free": "申請後免費使用",
+ "chatgpt_prompts_preset": "StableDiffusion是一款利用深度學習的文生圖模型,支持通過使用提示詞來產生新的圖像,描述要包含或省略的元素。\n我在這裡引入StableDiffusion算法中的Prompt概念,又被稱為提示符。\n下面的prompt是用來指導AI繪畫模型創作圖像的。它們包含了圖像的各種細節,如人物的外觀、背景、顏色和光線效果,以及圖像的主題和風格。這些prompt的格式經常包含括號內的加權數字,用於指定某些細節的重要性或強調。例如,\"(masterpiece:1.5)\"表示作品質量是非常重要的,多個括號也有類似作用。此外,如果使用中括號,如\"{blue hair:white hair:0.3}\",這代表將藍髮和白髮加以融合,藍髮佔比為0.3。\n以下是用prompt幫助AI模型生成圖像的例子:masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n仿照例子,給出一套詳細描述以下內容的prompt。直接開始給出prompt不需要用自然語言描述:",
+ "use_chatgpt_gen_prompts": "使用ChatGPT生成Prompt",
+ "input_image_desc": "請輸入圖片描述,例如:一隻貓坐在建築物頂部,非常高清、非常真實的照片。",
+ "api_config": "API配置",
+ "image_desc": "圖片描述",
+ "preset": "預設",
+ "ai_one": "發給AI的第一句話",
+ "ai_two": "發給AI的第二句話",
+ "restore_to_default": "恢復到系統預設",
+ "generate": "生成",
+ "generate_result": "生成結果",
+ "is_required": "{0} 必須輸入!",
+ "is_not_dict": "{0} 必須是字典!",
+ "no_response_from": "沒有從 {0} 收到返回內容!",
+ "request_error": "{0} 請求錯誤!",
+ "response_is_empty": "{0} 返回內容為空!",
+ "response_error": "{0} 返回內容錯誤!",
+ "install_success": "{0} 安裝成功!",
+ "install_failed": "Error: {0} 安裝失敗!",
+ "translate_text_is_empty": "翻譯文本為空!",
+ "about_desc": "關於、更新、幫助、文件",
+ "version": "版本",
+ "unknown_version": "未知版本",
+ "has_new_version": "有新的版本,請及時更新",
+ "wiki_desc": "安裝教程、功能詳解、使用方法、常見問題等等,詳見:"
+ }
+ },
+ {
+ "code": "en_US",
+ "name": "English (US)",
+ "lang": {
+ "need_api_key": "API Key Required",
+ "dont_need_api_key": "API Key Not Required (Unstable)",
+ "prompt": "Prompt",
+ "negative_prompt": "Negative Prompt",
+ "txt2img": "Text to Image",
+ "img2img": "Image to Image",
+ "please_enter_new_keyword": "Please Enter New Keyword",
+ "local_language": "Local Language",
+ "increase_weight_add_parentheses": "Increase Keyword Weight: Add ()",
+ "increase_weight_subtract_parentheses": "Increase Keyword Weight: Subtract ()",
+ "decrease_weight_add_brackets": "Decrease Keyword Weight: Add []",
+ "decrease_weight_subtract_brackets": "Decrease Keyword Weight: Subtract []",
+ "translate_keyword_to_local_language": "Translate Keyword to Local Language",
+ "copy_to_clipboard": "Copy to Clipboard",
+ "disable_keyword": "Disable Keyword",
+ "enable_keyword": "Enable Keyword",
+ "copy_keywords_to_clipboard": "Copy All Keywords to Clipboard",
+ "translate_keywords_to_local_language": "Translate All Keywords to Local Language",
+ "translate_keyword_to_english": "Translate to English",
+ "translate_all_keywords_to_english": "Translate All Non-English Keywords to English",
+ "auto_translate_to_english": "Automatically Translate to English After Entering New Keyword",
+ "auto_translate_to_local_language": "Automatically Translate to Local Language After Entering New Keyword",
+ "translate_api": "Translation API",
+ "history": "History",
+ "clear_history": "Clear History",
+ "clear_history_confirm": "Are you sure you want to clear the history?",
+ "clear_history_success": "History cleared",
+ "max_history_count": "Maximum History Count",
+ "favorite": "Favorites",
+ "add_to_favorite": "Add to Favorites",
+ "remove_from_favorite": "Remove from Favorites",
+ "use": "Use",
+ "click_to_edit": "Click Left Mouse Button to Edit",
+ "drop_to_order": "Hold Down Left Mouse Button to Drag and Sort",
+ "enter_to_save": "Press Enter to Save Keyword",
+ "enter_to_add": "Press Enter to Add Keyword",
+ "translate_api_not_found": "Translation API Not Found",
+ "translate_language_not_support": "Translation Language Not Supported",
+ "translate_api_not_support": "Translation API Not Supported",
+ "unset_name": "Name Not Set",
+ "no_history": "No History",
+ "get_history_error": "Failed to Get History",
+ "no_favorite": "No Favorites",
+ "get_favorite_error": "Failed to Get Favorites",
+ "hide_default_input_box": "Hide Default Input Box",
+ "show_default_input_box": "Show Default Input Box",
+ "translate_test": "Translate Test",
+ "close": "Close",
+ "save": "Save",
+ "delete_all_keywords": "Delete All Keywords",
+ "delete_all_keywords_confirm": "Are you sure you want to delete all keywords?",
+ "whether_to_enable_tooltip": "Enable Tooltips for Each Function. If You Are Familiar with All the Functions of This Extension, You Can Uncheck This Option.",
+ "delete_all_history": "Delete All History",
+ "delete_all_history_confirm": "Are you sure you want to delete all history?",
+ "please_enter_the_content_here": "Please enter content",
+ "not_api_key_desc": "Free translation interfaces are unstable, and not every interface can be used on your computer. Please apply for an API Key to use the stable official interface.",
+ "setting_desc": "Settings: Translation API, automatic translation, show/hide...",
+ "line_break_character": "Line break character",
+ "tagcomplete_translate_desc": "Enhance translation function using danbooru.csv in DominikDoom/a1111-sd-webui-tagcomplete extension to achieve the purpose of saving network requests and accurate translation.
After clicking the refresh button, csv files from the following paths will be scanned: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.
You can download csv files from git repository Physton/sd-webui-prompt-all-in-one-assets/tags .
",
+ "test": "Test",
+ "refresh": "Refresh",
+ "not_enable": "Not enable",
+ "translate_result": "The translation result of {0} is: {1}",
+ "not_found_csv_file": "Csv file not found",
+ "theme_extension": "Theme: Extension Plugin Style",
+ "is_remove_space": "Whether to remove the spaces after each comma in the keyword. Checking will automatically remove the spaces (difficult to read). Unchecking will keep one space (affecting TOKEN count).",
+ "theme": "Theme",
+ "enhance": "Enhance",
+ "only_csv_on_auto": "Automatic translation uses only CSV translation (not network translation). To use both CSV and network translation, click the translate button manually.",
+ "one_translate_all_keywords": "Translate all keywords in one click",
+ "auto_translate": "Automatically translate after entering new keywords",
+ "is_remove_last_comma": "Remove the last comma in Prompt or not. When selected, Prompt output is \"aaa,bbb,ccc\". When unselected, Prompt output is \"aaa,bbb,ccc,\".",
+ "is_keep_weight_zero": "Keep the format of keywords with a weight of 0 or not. When selected, the keyword format is kept as \"(text:0)\". When unselected, the format is not kept as \"test\".",
+ "is_keep_weight_one": "Keep the format of keywords with a weight of 1 or not. When selected, the keyword format is kept as \"(text:1)\". When unselected, the format is not kept as \"test\".",
+ "prompt_format": "Prompt Format",
+ "tagcomplete_translate_desc2": "Selecting the wrong CSV file will result in an empty or '0' translation. After changing the file, please click the test button below and check if the translated result is correctly displayed in your local language.",
+ "dblclick_to_disable": "Double-click to disable/enable keyword",
+ "batch_operation": "Batch operation",
+ "success": "Success!",
+ "failed": "Failed!",
+ "packages_desc": "Some packages of python are detected to have not been installed or installed unsuccessfully. You need to click to try reinstalling them. After all the packages are successfully installed, all the functions can work normally. If you still cannot install them successfully after clicking the install button, you need to manually copy the command and execute it in the terminal.",
+ "installed": "Installed",
+ "not_install": "Not installed",
+ "install": "Install",
+ "packages_installing": "Starting to install......If you need to check the detailed installation log, please go to the WebUI console to view it. After the installation is completed, this window will close automatically!",
+ "today_not_show": "Do not show this window today",
+ "free": "Free",
+ "apply_for_free": "Apply for free use",
+ "chatgpt_prompts_preset": "StableDiffusion is a deep learning text-to-image model that generates images based on prompts. These prompts can specify the desired elements of the image, such as the appearance of characters, background, color and lighting effects, as well as the theme and style of the image. The prompts often contain weighted numbers in parentheses to indicate the importance or emphasis of certain details. For example, \"(masterpiece:1.5)\" indicates that the quality of the work is very important. Multiple parentheses also have similar effects. In addition, if square brackets are used, such as \"{blue hair:white hair:0.3}\", this represents the fusion of blue and white hair, with blue hair accounting for 0.3.\nHere is an example of using prompts to help an AI model generate an image: masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n\nFollowing the example, provide a set of prompts that detail the following content. Start the prompts directly without using natural language to describe them: ",
+ "use_chatgpt_gen_prompts": "Use ChatGPT to Generate Prompts",
+ "input_image_desc": "Please enter the image description, for example: a cat sitting on top of a building, a very high-definition, very authentic photo.",
+ "api_config": "API Configuration",
+ "image_desc": "Image Description",
+ "preset": "Preset",
+ "ai_one": "First Sentence Sent to AI",
+ "ai_two": "Second Sentence Sent to AI",
+ "restore_to_default": "Restore to System Default",
+ "generate": "Generate",
+ "generate_result": "Generate Result",
+ "is_required": "{0} is required!",
+ "is_not_dict": "{0} must be a dictionary!",
+ "no_response_from": "No response from {0}!",
+ "request_error": "{0} request error!",
+ "response_is_empty": "{0} response is empty!",
+ "response_error": "{0} response error!",
+ "install_success": "{0} installed successfully!",
+ "install_failed": "Error: {0} installation failed!",
+ "translate_text_is_empty": "Translation text is empty!",
+ "about_desc": "About, Updates, Help, Documentation",
+ "version": "Version",
+ "unknown_version": "Unknown Version",
+ "has_new_version": "There is a new version available, please update",
+ "wiki_desc": "Installation tutorial, detailed features, usage instructions, frequently asked questions, etc. See:"
+ }
+ },
+ {
+ "code": "af_ZA",
+ "name": "Afrikaans (South Africa)",
+ "lang": {}
+ },
+ {
+ "code": "sq_AL",
+ "name": "Shqip (Shqipëria)",
+ "lang": {}
+ },
+ {
+ "code": "am_ET",
+ "name": "አማርኛ (ኢትዮጵያ)",
+ "lang": {}
+ },
+ {
+ "code": "ar_SA",
+ "name": "العربية (السعودية)",
+ "lang": {
+ "need_api_key": "يتطلب مفتاح API",
+ "dont_need_api_key": "لا يتطلب مفتاح API (غير مستقر)",
+ "prompt": "كلمات تذكيرية",
+ "negative_prompt": "كلمات تذكيرية عكسية",
+ "txt2img": "النص إلى الصورة",
+ "img2img": "الصورة إلى صورة",
+ "please_enter_new_keyword": "يرجى إدخال كلمة مفتاحية جديدة",
+ "local_language": "اللغة المحلية",
+ "increase_weight_add_parentheses": "زيادة وزن الكلمات الرئيسية: تراكب ()",
+ "increase_weight_subtract_parentheses": "زيادة وزن الكلمات الرئيسية: انقاص ()",
+ "decrease_weight_add_brackets": "تقليل وزن الكلمات الرئيسية: تراكب []",
+ "decrease_weight_subtract_brackets": "تقليل وزن الكلمات الرئيسية: انقاص []",
+ "translate_keyword_to_local_language": "ترجمة الكلمة المفتاحية إلى اللغة المحلية",
+ "copy_to_clipboard": "نسخ إلى الحافظة",
+ "disable_keyword": "تعطيل الكلمة المفتاحية",
+ "enable_keyword": "تمكين الكلمة المفتاحية",
+ "copy_keywords_to_clipboard": "نسخ جميع الكلمات المفتاحية إلى الحافظة",
+ "translate_keywords_to_local_language": "ترجمة جميع الكلمات المفتاحية إلى اللغة المحلية",
+ "translate_keyword_to_english": "ترجمة إلى الإنجليزية",
+ "translate_all_keywords_to_english": "ترجمة جميع الكلمات المفتاحية غير الإنجليزية إلى الإنجليزية",
+ "auto_translate_to_english": "الترجمة التلقائية إلى الإنجليزية بعد إدخال كلمة مفتاحية جديدة",
+ "auto_translate_to_local_language": "الترجمة التلقائية إلى اللغة المحلية بعد إدخال كلمة مفتاحية جديدة",
+ "translate_api": "واجهة برمجة الترجمة",
+ "history": "سجل الأحداث",
+ "clear_history": "مسح سجل الأحداث",
+ "clear_history_confirm": "هل أنت متأكد من رغبتك في مسح سجل الأحداث؟",
+ "clear_history_success": "تم مسح سجل الأحداث بنجاح",
+ "max_history_count": "أقصى عدد لسجل الأحداث",
+ "favorite": "القائمة المفضلة",
+ "add_to_favorite": "إضافة إلى قائمة المفضلة",
+ "remove_from_favorite": "إزالة من قائمة المفضلة",
+ "use": "استخدام",
+ "click_to_edit": "انقر بزر الماوس الأيسر للتحرير",
+ "drop_to_order": "استمر في النقر والسحب اليساري للترتيب",
+ "enter_to_save": "اضغط على مفتاح Enter لحفظ الكلمة المفتاحية",
+ "enter_to_add": "اضغط على مفتاح Enter لإضافة كلمة مفتاحية",
+ "translate_api_not_found": "لم يتم العثور على واجهة برمجة الترجمة",
+ "translate_language_not_support": "اللغة المراد ترجمتها غير مدعومة",
+ "translate_api_not_support": "واجهة برمجة الترجمة غير مدعومة",
+ "unset_name": "لم يتم تعيين الاسم",
+ "no_history": "لا يوجد سجل أحداث",
+ "get_history_error": "فشل في الحصول على سجل الأحداث",
+ "no_favorite": "لا يوجد قائمة مفضلة",
+ "get_favorite_error": "فشل في الحصول على قائمة المفضلة",
+ "hide_default_input_box": "إخفاء مربع الإدخال الافتراضي",
+ "show_default_input_box": "إظهار مربع الإدخال الافتراضي",
+ "translate_test": "اختبار الترجمة",
+ "close": "إغلاق",
+ "save": "حفظ",
+ "delete_all_keywords": "حذف جميع الكلمات المفتاحية",
+ "delete_all_keywords_confirm": "هل أنت متأكد من رغبتك في حذف جميع الكلمات المفتاحية؟",
+ "whether_to_enable_tooltip": "هل تريد تمكين نافذة تلميح لكل وظيفة؟ إذا كنت قد اكتسبت الخبرة المطلوبة في استخدام هذه الإضافة، يمكنك إلغاء التحديد",
+ "delete_all_history": "حذف جميع السجلات",
+ "delete_all_history_confirm": "هل أنت متأكد من رغبتك في حذف جميع السجلات؟",
+ "please_enter_the_content_here": "يرجى إدخال المحتوى",
+ "not_api_key_desc": "الواجهات البرمجية المجانية للترجمة غير مستقرة، ولا يمكن استخدام كل الواجهات على جهاز الكمبيوتر الخاص بك. يرجى طلب مفتاح واجهة برمجة التطبيقات لاستخدام الواجهة الرسمية والمستقرة.",
+ "setting_desc": "الإعدادات: واجهة برمجة تطبيقات الترجمة، الترجمة التلقائية، إظهار/إخفاء...",
+ "line_break_character": "حرف فاصل السطر",
+ "tagcomplete_translate_desc": "تحسين وظيفة الترجمة باستخدام ملف danbooru.csv في امتداد DominikDoom/a1111-sd-webui-tagcomplete لتحقيق الهدف من توفير طلبات الشبكة والترجمة الدقيقة.
بعد النقر على زر التحديث ، سيتم فحص ملفات csv من المسارات التالية: extensions\\a1111-sd-webui-tagcomplete\\tags و extensions\\sd-webui-prompt-all-in-one\\tags.
يمكنك تنزيل ملفات csv من مستودع git Physton/sd-webui-prompt-all-in-one-assets/tags .
",
+ "test": "اختبار",
+ "refresh": "تحديث",
+ "not_enable": "غير مفعّل",
+ "translate_result": "نتيجة ترجمة {0} هي: {1}",
+ "not_found_csv_file": "لم يتم العثور على ملف csv",
+ "theme_extension": "السمة: نمط الوظيفة التكميلية للامتداد",
+ "is_remove_space": "هل ترغب في إزالة المسافات بعد كل فاصلة في الكلمات الرئيسية؟ إذا حددت هذا الخيار، سيتم إزالة المسافات تلقائياً (مما يجعل النص أقل وضوحاً). إذا لم تحدد هذا الخيار سيتم الاحتفاظ بمسافة واحدة (مما يؤثر على عداد رموز الرموز).",
+ "theme": "الموضوع",
+ "enhance": "تحسين",
+ "only_csv_on_auto": "الترجمة الآلية تستخدم فقط ترجمة CSV (لا تستخدم الترجمة عبر الشبكة) ، والنقر على زر الترجمة يدويًا لاستخدام الترجمة CSV والترجمة عبر الشبكة.",
+ "one_translate_all_keywords": "ترجم جميع الكلمات الرئيسية بنقرة واحدة",
+ "auto_translate": "ترجم تلقائيًا بعد إدخال كلمات رئيسية جديدة",
+ "prompt_format": "تنسيق Prompt",
+ "tagcomplete_translate_desc2": "اختيار ملف CSV الخاطئ سيؤدي إلى ترجمة فارغة أو '0'. بعد تغيير الملف، يرجى النقر على زر الاختبار أدناه والتحقق مما إذا كانت النتيجة المترجمة تعرض بشكل صحيح بلغتك المحلية.",
+ "dblclick_to_disable": "انقر مرتين لتعطيل / تمكين الكلمة الرئيسية",
+ "batch_operation": "العمليات الجماعية",
+ "success": "نجاح!",
+ "failed": "فشل!",
+ "packages_desc": "تم اكتشاف بعض حزم Python بأنها لم تتم تثبيتها أو لم تتم التثبيت بنجاح. تحتاج إلى النقر لمحاولة إعادة التثبيت. بعد تثبيت جميع الحزم بنجاح ، يمكن لجميع الوظائف العمل بشكل طبيعي. إذا لم تتمكن من تثبيتها بنجاح بعد النقر على زر التثبيت ، فيجب عليك نسخ الأمر يدويًا وتنفيذه في وحدة المعالجة المركزية.",
+ "installed": "مثبت",
+ "not_install": "غير مثبت",
+ "install": "تثبيت",
+ "packages_installing": "بدء التثبيت ...... إذا كنت بحاجة إلى التحقق من سجل التثبيت التفصيلي ، فيرجى الانتقال إلى وحدة التحكم WebUI لعرضه. بعد الانتهاء من التثبيت ، سيتم إغلاق هذه النافذة تلقائيًا!",
+ "today_not_show": "لا تظهر هذه النافذة اليوم",
+ "free": "مجاني",
+ "apply_for_free": "التقديم للاستخدام المجاني",
+ "use_chatgpt_gen_prompts": "استخدم ChatGPT لتوليد Prompts",
+ "input_image_desc": "يرجى إدخال وصف الصورة ، على سبيل المثال: قطة جالسة على سطح مبنى ، صورة عالية الدقة ومفصلة جدًا.",
+ "api_config": "تكوين API",
+ "image_desc": "وصف الصورة",
+ "preset": "مسبق التعيين",
+ "ai_one": "الجملة الأولى المرسلة إلى AI",
+ "ai_two": "الجملة الثانية المرسلة إلى AI",
+ "restore_to_default": "استعادة لافتراضيات النظام",
+ "generate": "توليد",
+ "generate_result": "نتيجة التوليد",
+ "is_required": "يجب إدخال {0}!",
+ "is_not_dict": "{0} يجب أن يكون قاموسًا!",
+ "no_response_from": "لم يتم الرد من {0}!",
+ "request_error": "خطأ في طلب {0}!",
+ "response_is_empty": "الرد من {0} فارغ!",
+ "response_error": "خطأ في الرد من {0}!",
+ "install_success": "تم تثبيت {0} بنجاح!",
+ "install_failed": "خطأ: فشل تثبيت {0}!",
+ "translate_text_is_empty": "نص الترجمة فارغ!",
+ "about_desc": "حول، تحديثات، مساعدة، وثائق",
+ "version": "الإصدار",
+ "unknown_version": "إصدار غير معروف",
+ "has_new_version": "هناك إصدار جديد متاح، يرجى التحديث في الوقت المناسب",
+ "wiki_desc": "دليل التثبيت، التفاصيل الكاملة للميزات، تعليمات الاستخدام، الأسئلة الشائعة، وما إلى ذلك. انظر:"
+ }
+ },
+ {
+ "code": "hy_AM",
+ "name": "Հայերեն (Հայաստան)",
+ "lang": {}
+ },
+ {
+ "code": "as_IN",
+ "name": "অসমীয়া (ভাৰত)",
+ "lang": {}
+ },
+ {
+ "code": "az_Latn_AZ",
+ "name": "Azərbaycan dili (Latın, Azərbaycan)",
+ "lang": {}
+ },
+ {
+ "code": "bn_BD",
+ "name": "বাংলা (বাংলাদেশ)",
+ "lang": {}
+ },
+ {
+ "code": "ba_RU",
+ "name": "Башҡорт (Россия)",
+ "lang": {}
+ },
+ {
+ "code": "eu_ES",
+ "name": "Euskara (Espainia)",
+ "lang": {}
+ },
+ {
+ "code": "bs_Latn_BA",
+ "name": "Bosanski (Latinski, Bosna i Hercegovina)",
+ "lang": {}
+ },
+ {
+ "code": "bg_BG",
+ "name": "Български (България)",
+ "lang": {}
+ },
+ {
+ "code": "ca_ES",
+ "name": "Català (Espanya)",
+ "lang": {}
+ },
+ {
+ "code": "hr_HR",
+ "name": "Hrvatski (Hrvatska)",
+ "lang": {}
+ },
+ {
+ "code": "cs_CZ",
+ "name": "Čeština (Česká republika)",
+ "lang": {}
+ },
+ {
+ "code": "da_DK",
+ "name": "Dansk (Danmark)",
+ "lang": {}
+ },
+ {
+ "code": "prs_AF",
+ "name": "درى (افغانستان)",
+ "lang": {}
+ },
+ {
+ "code": "dv_MV",
+ "name": "ދިވެހިބަސް (ދިވެހިރާއްޖެ)",
+ "lang": {}
+ },
+ {
+ "code": "nl_NL",
+ "name": "Nederlands (Nederland)",
+ "lang": {}
+ },
+ {
+ "code": "et_EE",
+ "name": "Eesti (Eesti)",
+ "lang": {}
+ },
+ {
+ "code": "fo_FO",
+ "name": "Føroyskt (Føroyar)",
+ "lang": {}
+ },
+ {
+ "code": "fj_FJ",
+ "name": "vosa Vakaviti (Viti)",
+ "lang": {}
+ },
+ {
+ "code": "fil_PH",
+ "name": "Filipino (Pilipinas)",
+ "lang": {}
+ },
+ {
+ "code": "fi_FI",
+ "name": "Suomi (Suomi)",
+ "lang": {}
+ },
+ {
+ "code": "fr_FR",
+ "name": "Français (France)",
+ "lang": {
+ "need_api_key": "Clé API requise",
+ "dont_need_api_key": "Pas besoin de clé API (instable)",
+ "prompt": "Mot d'indice",
+ "negative_prompt": "Mot d'indice négatif",
+ "txt2img": "Texte vers image",
+ "img2img": "Image vers image",
+ "please_enter_new_keyword": "Veuillez entrer un nouveau mot-clé",
+ "local_language": "Langue locale",
+ "increase_weight_add_parentheses": "Augmenter le poids des mots clés : ajouter ()",
+ "increase_weight_subtract_parentheses": "Augmenter le poids des mots clés : soustraire ()",
+ "decrease_weight_add_brackets": "Diminuer le poids des mots clés : ajouter []",
+ "decrease_weight_subtract_brackets": "Diminuer le poids des mots clés : soustraire []",
+ "translate_keyword_to_local_language": "Traduire le mot-clé dans la langue locale",
+ "copy_to_clipboard": "Copier dans le presse-papiers",
+ "disable_keyword": "Désactiver le mot-clé",
+ "enable_keyword": "Activer le mot-clé",
+ "copy_keywords_to_clipboard": "Copier tous les mots clés dans le presse-papiers",
+ "translate_keywords_to_local_language": "Traduire tous les mots clés dans la langue locale",
+ "translate_keyword_to_english": "Traduire en anglais",
+ "translate_all_keywords_to_english": "Traduire tous les mots clés non-anglais en anglais",
+ "auto_translate_to_english": "Traduire automatiquement en anglais après avoir entré un nouveau mot-clé",
+ "auto_translate_to_local_language": "Traduire automatiquement dans la langue locale après avoir entré un nouveau mot-clé",
+ "translate_api": "API de traduction",
+ "history": "Historique",
+ "clear_history": "Effacer l'historique",
+ "clear_history_confirm": "Êtes-vous sûr de vouloir effacer l'historique ?",
+ "clear_history_success": "L'historique a bien été effacé",
+ "max_history_count": "Nombre maximum d'éléments dans l'historique",
+ "favorite": "Favoris",
+ "add_to_favorite": "Ajouter aux favoris",
+ "remove_from_favorite": "Retirer des favoris",
+ "use": "Utiliser",
+ "click_to_edit": "Cliquez avec le bouton gauche de la souris pour éditer",
+ "drop_to_order": "Maintenez le bouton gauche de la souris enfoncé et faites glisser pour réorganiser",
+ "enter_to_save": "Appuyez sur Entrée pour enregistrer le mot-clé",
+ "enter_to_add": "Appuyez sur Entrée pour ajouter un mot-clé",
+ "translate_api_not_found": "API de traduction introuvable",
+ "translate_language_not_support": "Langue de traduction non prise en charge",
+ "translate_api_not_support": "API de traduction non prise en charge",
+ "unset_name": "Nom non défini",
+ "no_history": "Aucun historique",
+ "get_history_error": "Erreur lors de la récupération de l'historique",
+ "no_favorite": "Aucun favori",
+ "get_favorite_error": "Erreur lors de la récupération des favoris",
+ "hide_default_input_box": "Masquer la boîte de saisie par défaut",
+ "show_default_input_box": "Afficher la boîte de saisie par défaut",
+ "translate_test": "Test de traduction",
+ "close": "Fermer",
+ "save": "Enregistrer",
+ "delete_all_keywords": "Supprimer tous les mots clés",
+ "delete_all_keywords_confirm": "Êtes-vous sûr de vouloir supprimer tous les mots clés ?",
+ "whether_to_enable_tooltip": "Voulez-vous activer les info-bulles de chaque fonction ? Si vous maîtrisez déjà toutes les fonctions de cette extension, vous pouvez décocher cette option",
+ "delete_all_history": "Supprimer tout l'historique",
+ "delete_all_history_confirm": "Êtes-vous sûr de vouloir supprimer tout l'historique ?",
+ "please_enter_the_content_here": "Veuillez entrer le contenu",
+ "not_api_key_desc": "Les interfaces de traduction gratuites sont instables et toutes les interfaces ne peuvent pas être utilisées sur votre ordinateur. Veuillez demander une clé d'API pour utiliser l'interface officielle stable.",
+ "setting_desc": "Paramètres : API de traduction, traduction automatique, afficher/masquer...",
+ "line_break_character": "Caractère de saut de ligne",
+ "tagcomplete_translate_desc": "Améliorer la fonction de traduction en utilisant le fichier danbooru.csv dans l'extension DominikDoom/a1111-sd-webui-tagcomplete pour atteindre l'objectif d'économiser les demandes réseau et la traduction précise.
Après avoir cliqué sur le bouton Actualiser, les fichiers csv des chemins suivants seront analysés : extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.
Vous pouvez télécharger des fichiers csv à partir du dépôt git Physton/sd-webui-prompt-all-in-one-assets/tags .
",
+ "test": "Test",
+ "refresh": "Actualiser",
+ "not_enable": "Non activé",
+ "translate_result": "Le résultat de la traduction de {0} est : {1}",
+ "not_found_csv_file": "Fichier csv non trouvé",
+ "theme_extension": "Thème : Style de plugin d'extension",
+ "is_remove_space": "Indique si les espaces après chaque virgule dans le mot-clé doivent être supprimés. La sélection automatique supprime les espaces (difficiles à lire). La désélection conserve un espace (affectant la comptabilisation des TOKEN).",
+ "theme": "Thème",
+ "enhance": "Améliorer",
+ "only_csv_on_auto": "La traduction automatique utilise uniquement la traduction CSV (pas de traduction réseau). Pour utiliser à la fois la traduction CSV et la traduction réseau, cliquez sur le bouton de traduction manuellement.",
+ "one_translate_all_keywords": "Traduire tous les mots clés en un clic",
+ "auto_translate": "Traduire automatiquement après avoir saisi de nouveaux mots clés",
+ "is_remove_last_comma": "Supprimer ou non la dernière virgule dans Prompt. Lorsqu'elle est sélectionnée, la sortie Prompt est \"aaa,bbb, ccc\". Lorsqu'elle n'est pas sélectionnée, la sortie Prompt est \"aaa,bbb,ccc,\".",
+ "is_keep_weight_zero": "Conserver ou non le format des mots clés ayant un poids de 0. Lorsqu'elle est sélectionnée, le format du mot clé est conservé sous la forme de \"(text:0)\". Lorsqu'elle n'est pas sélectionnée, le format n'est pas conservé sous la forme de \"test\".",
+ "is_keep_weight_one": "Conserver ou non le format des mots clés ayant un poids de 1. Lorsqu'elle est sélectionnée, le format du mot clé est conservé sous la forme de \"(text:1)\". Lorsqu'elle n'est pas sélectionnée, le format n'est pas conservé sous la forme de \"test\".",
+ "prompt_format": "Format du prompt",
+ "tagcomplete_translate_desc2": "Sélectionner le mauvais fichier CSV entraînera une traduction vide ou '0'. Après avoir changé le fichier, veuillez cliquer sur le bouton de test ci-dessous et vérifier si le résultat traduit est correctement affiché dans votre langue locale.",
+ "dblclick_to_disable": "Double-cliquez pour désactiver/activer le mot-clé",
+ "batch_operation": "Opération en lot",
+ "success": "Réussite!",
+ "failed": "Échec!",
+ "packages_desc": "Certains packages de python sont détectés comme non installés ou installés de manière infructueuse. Vous devez cliquer pour essayer de les réinstaller. Après que tous les packages sont installés avec succès, toutes les fonctions peuvent fonctionner normalement. Si vous ne pouvez toujours pas les installer avec succès après avoir cliqué sur le bouton d'installation, vous devez copier la commande manuellement et l'exécuter dans le terminal.",
+ "installed": "Installé",
+ "not_install": "Non installé",
+ "install": "Installer",
+ "packages_installing": "Démarrage de l'installation ...... Si vous avez besoin de vérifier le journal d'installation détaillé, veuillez aller sur la console WebUI pour le consulter. Après l'installation, cette fenêtre se fermera automatiquement !",
+ "today_not_show": "Ne pas afficher cette fenêtre aujourd'hui",
+ "free": "Gratuit",
+ "apply_for_free": "Demande d'utilisation gratuite",
+ "use_chatgpt_gen_prompts": "Utiliser ChatGPT pour générer des prompts",
+ "input_image_desc": "Veuillez entrer la description de l'image, par exemple : un chat assis sur le toit d'un bâtiment, une photo très haute définition, très authentique.",
+ "api_config": "Configuration de l'API",
+ "image_desc": "Description de l'image",
+ "preset": "Préréglage",
+ "ai_one": "Première phrase envoyée à l'IA",
+ "ai_two": "Deuxième phrase envoyée à l'IA",
+ "restore_to_default": "Restaurer les paramètres par défaut du système",
+ "generate": "Générer",
+ "generate_result": "Résultat de la génération",
+ "is_required": "{0} est requis !",
+ "is_not_dict": "{0} doit être un dictionnaire !",
+ "no_response_from": "Aucune réponse de {0} !",
+ "request_error": "Erreur de requête {0} !",
+ "response_is_empty": "La réponse de {0} est vide !",
+ "response_error": "Erreur de réponse de {0} !",
+ "install_success": "{0} installé avec succès !",
+ "install_failed": "Erreur : échec de l'installation de {0} !",
+ "translate_text_is_empty": "Le texte de traduction est vide !",
+ "about_desc": "À propos, Mises à jour, Aide, Documentation",
+ "version": "Version",
+ "unknown_version": "Version inconnue",
+ "has_new_version": "Une nouvelle version est disponible, veuillez mettre à jour",
+ "wiki_desc": "Tutoriel d'installation, fonctionnalités détaillées, instructions d'utilisation, questions fréquentes, etc. Voir :"
+ }
+ },
+ {
+ "code": "fr_CA",
+ "name": "Français (Canada)",
+ "lang": {}
+ },
+ {
+ "code": "gl_ES",
+ "name": "Galego (España)",
+ "lang": {}
+ },
+ {
+ "code": "ka_GE",
+ "name": "ქართული (საქართველო)",
+ "lang": {}
+ },
+ {
+ "code": "de_DE",
+ "name": "Deutsch (Deutschland)",
+ "lang": {
+ "need_api_key": "API-Schlüssel erforderlich",
+ "dont_need_api_key": "Kein API-Schlüssel erforderlich (instabil)",
+ "prompt": "Eingabeaufforderung",
+ "negative_prompt": "Negativ Eingabeaufforderung",
+ "txt2img": "Text zu Bild",
+ "img2img": "Bild zu Bild",
+ "please_enter_new_keyword": "Bitte geben Sie ein neues Schlüsselwort ein",
+ "local_language": "Lokale Sprache",
+ "increase_weight_add_parentheses": "Schlüsselwortgewicht erhöhen: () hinzufügen",
+ "increase_weight_subtract_parentheses": "Schlüsselwortgewicht erhöhen: () entfernen",
+ "decrease_weight_add_brackets": "Schlüsselwortgewicht verringern: [] hinzufügen",
+ "decrease_weight_subtract_brackets": "Schlüsselwortgewicht verringern: [] entfernen",
+ "translate_keyword_to_local_language": "Schlüsselwort in die lokale Sprache übersetzen",
+ "copy_to_clipboard": "In die Zwischenablage kopieren",
+ "disable_keyword": "Schlüsselwort deaktivieren",
+ "enable_keyword": "Schlüsselwort aktivieren",
+ "copy_keywords_to_clipboard": "Alle Schlüsselwörter in die Zwischenablage kopieren",
+ "translate_keywords_to_local_language": "Alle Schlüsselwörter in die lokale Sprache übersetzen",
+ "translate_keyword_to_english": "In Englisch übersetzen",
+ "translate_all_keywords_to_english": "Alle nicht englischen Schlüsselwörter ins Englische übersetzen",
+ "auto_translate_to_english": "Nach Eingabe eines neuen Schlüsselworts automatisch ins Englische übersetzen",
+ "auto_translate_to_local_language": "Nach Eingabe eines neuen Schlüsselworts automatisch in die lokale Sprache übersetzen",
+ "translate_api": "Übersetzungs-API",
+ "history": "Verlauf",
+ "clear_history": "Verlauf löschen",
+ "clear_history_confirm": "Möchten Sie den Verlauf wirklich löschen?",
+ "clear_history_success": "Verlauf erfolgreich gelöscht",
+ "max_history_count": "Maximale Anzahl von Einträgen im Verlauf",
+ "favorite": "Favoriten",
+ "add_to_favorite": "Zu Favoriten hinzufügen",
+ "remove_from_favorite": "Aus Favoriten entfernen",
+ "use": "Anwenden",
+ "click_to_edit": "Linksklick zur Bearbeitung",
+ "drop_to_order": "Linksklick halten und ziehen, um zu sortieren",
+ "enter_to_save": "Drücken Sie die Eingabetaste, um das Schlüsselwort zu speichern",
+ "enter_to_add": "Drücken Sie die Eingabetaste, um ein Schlüsselwort hinzuzufügen",
+ "translate_api_not_found": "Übersetzungs-API nicht gefunden",
+ "translate_language_not_support": "Übersetzungssprache wird nicht unterstützt",
+ "translate_api_not_support": "Übersetzungs-API wird nicht unterstützt",
+ "unset_name": "Name nicht festgelegt",
+ "no_history": "Kein Verlauf vorhanden",
+ "get_history_error": "Fehler beim Abrufen des Verlaufs",
+ "no_favorite": "Keine Favoriten vorhanden",
+ "get_favorite_error": "Fehler beim Abrufen der Favoriten",
+ "hide_default_input_box": "Standard-Eingabefeld ausblenden",
+ "show_default_input_box": "Standard-Eingabefeld anzeigen",
+ "translate_test": "Übersetzungstest",
+ "close": "Schließen",
+ "save": "Speichern",
+ "delete_all_keywords": "Alle Schlüsselwörter löschen",
+ "delete_all_keywords_confirm": "Möchten Sie wirklich alle Schlüsselwörter löschen?",
+ "whether_to_enable_tooltip": "Soll jeder Funktionshinweis aktiviert werden? Wenn Sie mit allen Funktionen dieser Erweiterung vertraut sind, können Sie das Kontrollkästchen deaktivieren.",
+ "delete_all_history": "Alle Verlaufseinträge löschen",
+ "delete_all_history_confirm": "Möchten Sie wirklich alle Verlaufseinträge löschen?",
+ "please_enter_the_content_here": "Bitte Inhalt eingeben",
+ "not_api_key_desc": "Kostenlose Übersetzungs-Schnittstellen sind instabil, und nicht jede Schnittstelle kann auf Ihrem Computer verwendet werden. Bitte beantragen Sie einen API-Schlüssel, um die stabile offizielle Schnittstelle zu verwenden.",
+ "setting_desc": "Einstellungen: Übersetzungs-API, automatische Übersetzung, Anzeigen/Ausblenden...",
+ "line_break_character": "Zeilenumbruch-Zeichen",
+ "tagcomplete_translate_desc": "Verbessern Sie die Übersetzungsfunktion mit der danbooru.csv in der Erweiterung DominikDoom/a1111-sd-webui-tagcomplete, um das Ziel zu erreichen, Netzwerkanforderungen zu sparen und präzise Übersetzungen durchzuführen.
Nach dem Klicken auf die Aktualisierungsschaltfläche werden csv-Dateien aus den folgenden Pfaden gescannt: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.
Sie können csv-Dateien aus dem Git-Repository Physton/sd-webui-prompt-all-in-one-assets/tags herunterladen.
",
+ "test": "Testen",
+ "refresh": "Aktualisieren",
+ "not_enable": "Nicht aktiviert",
+ "translate_result": "Das Übersetzungsergebnis von {0} lautet: {1}",
+ "not_found_csv_file": "Csv-Datei nicht gefunden",
+ "theme_extension": "Thema: Erweiterungs-Plugin-Stil",
+ "is_remove_space": "Gibt an, ob die Leerzeichen nach jedem Komma im Schlüsselwort entfernt werden sollen. Durch das Aktivieren wird die Leerzeichen automatisch entfernt (schwer zu lesen). Wenn diese Option deaktiviert ist, wird ein Leerzeichen beibehalten (was sich auf die TOKEN-Zählung auswirkt).",
+ "theme": "Thema",
+ "enhance": "Verbessern",
+ "only_csv_on_auto": "Die automatische Übersetzung verwendet nur die CSV-Übersetzung (keine Netzwerkübersetzung). Um sowohl die CSV- als auch die Netzwerkübersetzung zu verwenden, klicken Sie manuell auf die Übersetzungsschaltfläche.",
+ "one_translate_all_keywords": "Alle Schlüsselwörter mit einem Klick übersetzen",
+ "auto_translate": "Automatisch übersetzen, nachdem neue Schlüsselwörter eingegeben wurden",
+ "is_remove_last_comma": "Das letzte Komma in Prompt entfernen oder nicht. Wenn ausgewählt, wird der Prompt-Ausgang als \"aaa,bbb,ccc\" ausgegeben. Wenn nicht ausgewählt, wird der Prompt-Ausgang als \"aaa,bbb,ccc,\" ausgegeben.",
+ "is_keep_weight_zero": "Das Format von Schlüsselwörtern mit einem Gewicht von 0 beibehalten oder nicht. Wenn ausgewählt, wird das Schlüsselwortformat als \"(text:0)\" beibehalten. Wenn nicht ausgewählt, wird das Format nicht als \"test\" beibehalten.",
+ "is_keep_weight_one": "Das Format von Schlüsselwörtern mit einem Gewicht von 1 beibehalten oder nicht. Wenn ausgewählt, wird das Schlüsselwortformat als \"(text:1)\" beibehalten. Wenn nicht ausgewählt, wird das Format nicht als \"test\" beibehalten.",
+ "prompt_format": "Prompt-Format",
+ "tagcomplete_translate_desc2": "Die Auswahl der falschen CSV-Datei führt zu einer leeren oder '0' Übersetzung. Nachdem Sie die Datei geändert haben, klicken Sie bitte auf die Test-Schaltfläche unten und prüfen Sie, ob das übersetzte Ergebnis korrekt in Ihrer lokalen Sprache angezeigt wird.",
+ "dblclick_to_disable": "Doppelklicken zum Deaktivieren/Aktivieren des Schlüsselworts",
+ "batch_operation": "Massenoperation",
+ "success": "Erfolg!",
+ "failed": "Fehlgeschlagen!",
+ "packages_desc": "Einige Pakete von Python werden erkannt, dass sie nicht installiert oder erfolglos installiert wurden. Sie müssen klicken, um sie erneut zu installieren. Nachdem alle Pakete erfolgreich installiert wurden, können alle Funktionen normal funktionieren. Wenn Sie sie nach dem Klicken auf die Install-Schaltfläche immer noch nicht erfolgreich installieren können, müssen Sie den Befehl manuell kopieren und ihn im Terminal ausführen.",
+ "installed": "Installiert",
+ "not_install": "Nicht installiert",
+ "install": "Installieren",
+ "packages_installing": "Starte die Installation......Wenn Sie das detaillierte Installationsprotokoll überprüfen müssen, gehen Sie bitte zur WebUI-Konsole, um es anzuzeigen. Nachdem die Installation abgeschlossen ist, wird dieses Fenster automatisch geschlossen!",
+ "today_not_show": "Diese Fenster heute nicht anzeigen",
+ "free": "Kostenlos",
+ "apply_for_free": "Für kostenlose Nutzung bewerben",
+ "use_chatgpt_gen_prompts": "Verwenden von ChatGPT zur Generierung von Prompts",
+ "input_image_desc": "Bitte geben Sie die Bildbeschreibung ein, zum Beispiel: Eine Katze sitzt auf dem Dach eines Gebäudes, ein sehr hochauflösendes, sehr authentisches Foto.",
+ "api_config": "API-Konfiguration",
+ "image_desc": "Bildbeschreibung",
+ "preset": "Voreinstellung",
+ "ai_one": "Erster Satz, der an die AI gesendet wird",
+ "ai_two": "Zweiter Satz, der an die AI gesendet wird",
+ "restore_to_default": "Auf werkseitige Voreinstellungen zurücksetzen",
+ "generate": "Generieren",
+ "generate_result": "Generiertes Ergebnis",
+ "is_required": "{0} ist erforderlich!",
+ "is_not_dict": "{0} muss ein Wörterbuch sein!",
+ "no_response_from": "Keine Antwort von {0} erhalten!",
+ "request_error": "{0} Anfragefehler!",
+ "response_is_empty": "{0} Antwort ist leer!",
+ "response_error": "{0} Antwortfehler!",
+ "install_success": "{0} erfolgreich installiert!",
+ "install_failed": "Fehler: {0} Installation fehlgeschlagen!",
+ "translate_text_is_empty": "Übersetzungstext ist leer!",
+ "about_desc": "Über, Updates, Hilfe, Dokumentation",
+ "version": "Version",
+ "unknown_version": "Unbekannte Version",
+ "has_new_version": "Es ist eine neue Version verfügbar, bitte aktualisieren",
+ "wiki_desc": "Installationsanleitung, detaillierte Funktionen, Verwendungshinweise, häufig gestellte Fragen usw. Siehe:"
+ }
+ },
+ {
+ "code": "el_GR",
+ "name": "Ελληνικά (Ελλάδα)",
+ "lang": {}
+ },
+ {
+ "code": "gu_IN",
+ "name": "ગુજરાતી (ભારત)",
+ "lang": {}
+ },
+ {
+ "code": "ht_HT",
+ "name": "Kreyòl ayisyen (Ayiti)",
+ "lang": {}
+ },
+ {
+ "code": "he_IL",
+ "name": "עברית (ישראל)",
+ "lang": {}
+ },
+ {
+ "code": "hi_IN",
+ "name": "हिन्दी (भारत)",
+ "lang": {}
+ },
+ {
+ "code": "mww_Latn_US",
+ "name": "Hmong Daw (Latn, United States)",
+ "lang": {}
+ },
+ {
+ "code": "hu_HU",
+ "name": "Magyar (Magyarország)",
+ "lang": {}
+ },
+ {
+ "code": "is_IS",
+ "name": "Íslenska (Ísland)",
+ "lang": {}
+ },
+ {
+ "code": "id_ID",
+ "name": "Bahasa Indonesia (Indonesia)",
+ "lang": {}
+ },
+ {
+ "code": "ikt_CA",
+ "name": "Inuktitut (Kanatami)",
+ "lang": {}
+ },
+ {
+ "code": "iu_Latn_CA",
+ "name": "Inuktitut (Latin, Canada)",
+ "lang": {}
+ },
+ {
+ "code": "iu_CA",
+ "name": "ᐃᓄᒃᑎᑐᑦ (ᑲᓇᑕᒥ)",
+ "lang": {}
+ },
+ {
+ "code": "ga_IE",
+ "name": "Gaeilge (Éire)",
+ "lang": {}
+ },
+ {
+ "code": "it_IT",
+ "name": "Italiano (Italia)",
+ "lang": {
+ "need_api_key": "API Key necessaria",
+ "dont_need_api_key": "Non è necessario l'API Key (instabile)",
+ "prompt": "Suggerimento",
+ "negative_prompt": "Suggerimento inverso",
+ "txt2img": "Testo in immagine",
+ "img2img": "Immagine in immagine",
+ "please_enter_new_keyword": "Inserisci una nuova parola chiave",
+ "local_language": "Lingua locale",
+ "increase_weight_add_parentheses": "Aumento del peso della parola chiave: somma ()",
+ "increase_weight_subtract_parentheses": "Aumento del peso della parola chiave: sottrazione ()",
+ "decrease_weight_add_brackets": "Diminuzione del peso della parola chiave: somma []",
+ "decrease_weight_subtract_brackets": "Diminuzione del peso della parola chiave: sottrazione []",
+ "translate_keyword_to_local_language": "Traduci parola chiave nella lingua locale",
+ "copy_to_clipboard": "Copia negli appunti",
+ "disable_keyword": "Disattiva parola chiave",
+ "enable_keyword": "Abilita parola chiave",
+ "copy_keywords_to_clipboard": "Copia tutte le parole chiave negli appunti",
+ "translate_keywords_to_local_language": "Traduci tutte le parole chiave nella lingua locale",
+ "translate_keyword_to_english": "Traduci in inglese",
+ "translate_all_keywords_to_english": "Traduci tutte le parole chiave non in inglese in inglese",
+ "auto_translate_to_english": "Traduci automaticamente in inglese dopo aver inserito una nuova parola chiave",
+ "auto_translate_to_local_language": "Traduci automaticamente nella lingua locale dopo aver inserito una nuova parola chiave",
+ "translate_api": "API di traduzione",
+ "history": "Storico",
+ "clear_history": "Elimina storico",
+ "clear_history_confirm": "Sei sicuro di voler eliminare lo storico?",
+ "clear_history_success": "Storico eliminato con successo",
+ "max_history_count": "Numero massimo di voci nello storico",
+ "favorite": "Preferiti",
+ "add_to_favorite": "Aggiungi ai preferiti",
+ "remove_from_favorite": "Rimuovi dai preferiti",
+ "use": "Usa",
+ "click_to_edit": "Clicca con il pulsante sinistro per modificare",
+ "drop_to_order": "Trascina con il pulsante sinistro per ordinare",
+ "enter_to_save": "Premi il tasto Invio per salvare la parola chiave",
+ "enter_to_add": "Premi il tasto Invio per aggiungere la parola chiave",
+ "translate_api_not_found": "API di traduzione non trovata",
+ "translate_language_not_support": "La lingua di traduzione non è supportata",
+ "translate_api_not_support": "L'API di traduzione non è supportata",
+ "unset_name": "Nome non impostato",
+ "no_history": "Nessuno storico presente",
+ "get_history_error": "Errore nel recupero dello storico",
+ "no_favorite": "Nessun preferito presente",
+ "get_favorite_error": "Errore nel recupero dei preferiti",
+ "hide_default_input_box": "Nascondi la casella di input predefinita",
+ "show_default_input_box": "Mostra la casella di input predefinita",
+ "translate_test": "Test di traduzione",
+ "close": "Chiudi",
+ "save": "Salva",
+ "delete_all_keywords": "Elimina tutte le parole chiave",
+ "delete_all_keywords_confirm": "Sei sicuro di voler eliminare tutte le parole chiave?",
+ "whether_to_enable_tooltip": "Abilitare o meno i suggerimenti per ogni funzione. Se sei già esperto di tutte le funzionalità dell'estensione, puoi deselezionare questa opzione",
+ "delete_all_history": "Elimina tutto lo storico",
+ "delete_all_history_confirm": "Sei sicuro di voler eliminare tutto lo storico?",
+ "please_enter_the_content_here": "Si prega di inserire il contenuto",
+ "not_api_key_desc": "Le interfacce di traduzione gratuite sono instabili e non tutte le interfacce possono essere utilizzate sul vostro computer. Si prega di richiedere una chiave API per utilizzare l'interfaccia ufficiale stabile.",
+ "setting_desc": "Impostazioni: API di traduzione, traduzione automatica, Mostra/Nascondi...",
+ "line_break_character": "Carattere di ritorno a capo",
+ "tagcomplete_translate_desc": "Migliora la funzione di traduzione utilizzando il file danbooru.csv nell'estensione DominikDoom/a1111-sd-webui-tagcomplete per raggiungere l'obiettivo di risparmiare richieste di rete e una traduzione precisa.
Dopo aver cliccato sul pulsante Aggiorna, verranno analizzati i file csv dai seguenti percorsi: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.
Puoi scaricare i file csv dal repository git Physton/sd-webui-prompt-all-in-one-assets/tags .
",
+ "test": "Test",
+ "refresh": "Aggiorna",
+ "not_enable": "Non abilitato",
+ "translate_result": "Il risultato della traduzione di {0} è : {1}",
+ "not_found_csv_file": "File csv non trovato",
+ "theme_extension": "Tema: Stile del plug-in di estensione",
+ "is_remove_space": "Indica se gli spazi dopo ogni virgola nelle parole chiave devono essere rimossi. La selezione automatica rimuove gli spazi (difficili da leggere). La deselezione mantiene uno spazio (influenzando il conteggio dei TOKEN).",
+ "theme": "Tema",
+ "enhance": "Migliorare",
+ "only_csv_on_auto": "La traduzione automatica utilizza solo la traduzione CSV (non la traduzione di rete). Per utilizzare sia la traduzione CSV che la traduzione di rete, fare clic manualmente sul pulsante di traduzione.",
+ "one_translate_all_keywords": "Traduci tutte le parole chiave in un solo clic",
+ "auto_translate": "Traduzione automatica dopo aver inserito nuove parole chiave",
+ "is_remove_last_comma": "Rimuovere o meno l'ultima virgola in Prompt. Quando selezionato, l'output di Prompt è \"aaa,bbb,ccc\". Quando non selezionato, l'output di Prompt è \"aaa,bbb,ccc,\".",
+ "is_keep_weight_zero": "Mantenere o meno il formato delle parole chiave con un peso pari a 0. Quando selezionato, il formato della parola chiave viene mantenuto come \"(text:0)\". Quando non selezionato, il formato non viene mantenuto come \"test\".",
+ "is_keep_weight_one": "Mantenere o meno il formato delle parole chiave con un peso pari a 1. Quando selezionato, il formato della parola chiave viene mantenuto come \"(text:1)\". Quando non selezionato, il formato non viene mantenuto come \"test\".",
+ "prompt_format": "Formato del prompt",
+ "tagcomplete_translate_desc2": "La selezione del file CSV sbagliato comporterà una traduzione vuota o '0'. Dopo aver modificato il file, fare clic sul pulsante di test di seguito e verificare se il risultato tradotto viene visualizzato correttamente nella propria lingua locale.",
+ "dblclick_to_disable": "Doppio clic per disabilitare/abilitare la parola chiave",
+ "batch_operation": "Operazione batch",
+ "success": "Successo!",
+ "failed": "Fallito!",
+ "packages_desc": "Alcuni pacchetti di Python vengono rilevati come non installati o installati senza successo. Devi fare clic per tentare di reinstallarli. Dopo che tutti i pacchetti sono stati installati con successo, tutte le funzioni possono funzionare normalmente. Se non riesci ancora a installarli correttamente dopo aver cliccato sul pulsante di installazione, devi copiare il comando manualmente ed eseguirlo nel terminale.",
+ "installed": "Installato",
+ "not_install": "Non installato",
+ "install": "Installa",
+ "packages_installing": "Avvio dell'installazione ...... Se hai bisogno di controllare il registro di installazione dettagliato, vai alla console WebUI per visualizzarlo. Dopo l'installazione, questa finestra verrà chiusa automaticamente!",
+ "today_not_show": "Non mostrare questa finestra oggi",
+ "free": "Gratuito",
+ "apply_for_free": "Richiedi l'uso gratuito",
+ "use_chatgpt_gen_prompts": "Utilizza ChatGPT per generare prompt",
+ "input_image_desc": "Inserisci la descrizione dell'immagine, ad esempio: un gatto seduto in cima a un edificio, una foto molto ad alta definizione e molto autentica.",
+ "api_config": "Configurazione API",
+ "image_desc": "Descrizione dell'immagine",
+ "preset": "Preimpostazioni",
+ "ai_one": "Prima frase inviata all'AI",
+ "ai_two": "Seconda frase inviata all'AI",
+ "restore_to_default": "Ripristina impostazioni predefinite di sistema",
+ "generate": "Genera",
+ "generate_result": "Risultato della generazione",
+ "is_required": "{0} è richiesto!",
+ "is_not_dict": "{0} deve essere un dizionario!",
+ "no_response_from": "Nessuna risposta da {0}!",
+ "request_error": "Errore di richiesta {0}!",
+ "response_is_empty": "La risposta da {0} è vuota!",
+ "response_error": "Errore di risposta da {0}!",
+ "install_success": "{0} installato con successo!",
+ "install_failed": "Errore: installazione di {0} non riuscita!",
+ "translate_text_is_empty": "Il testo della traduzione è vuoto!",
+ "about_desc": "Informazioni, Aggiornamenti, Aiuto, Documentazione",
+ "version": "Versione",
+ "unknown_version": "Versione sconosciuta",
+ "has_new_version": "È disponibile una nuova versione, si prega di aggiornare",
+ "wiki_desc": "Tutorial di installazione, funzionalità dettagliate, istruzioni per l'uso, domande frequenti, ecc. Vedi:"
+ }
+ },
+ {
+ "code": "ja_JP",
+ "name": "日本語 (日本)",
+ "lang": {
+ "need_api_key": "APIキーが必要です",
+ "dont_need_api_key": "APIキーが不要です(不安定)",
+ "prompt": "プロンプト",
+ "negative_prompt": "ネガティブなプロンプト",
+ "txt2img": "テキストから画像",
+ "img2img": "画像から画像",
+ "please_enter_new_keyword": "新しいキーワードを入力してください",
+ "local_language": "現地言語",
+ "increase_weight_add_parentheses": "キーワードの重みを増やす:()を追加する",
+ "increase_weight_subtract_parentheses": "キーワードの重みを増やす:()を減らす",
+ "decrease_weight_add_brackets": "キーワードの重みを減らす:[]を追加する",
+ "decrease_weight_subtract_brackets": "キーワードの重みを減らす:[]を減らす",
+ "translate_keyword_to_local_language": "キーワードを現地言語に翻訳する",
+ "copy_to_clipboard": "クリップボードにコピー",
+ "disable_keyword": "キーワードを無効にする",
+ "enable_keyword": "キーワードを有効にする",
+ "copy_keywords_to_clipboard": "すべてのキーワードをクリップボードにコピー",
+ "translate_keywords_to_local_language": "すべてのキーワードを現地言語に翻訳する",
+ "translate_keyword_to_english": "英語に翻訳",
+ "translate_all_keywords_to_english": "英語以外のすべてのキーワードを英語に翻訳する",
+ "auto_translate_to_english": "新しいキーワードを入力したら自動的に英語に翻訳する",
+ "auto_translate_to_local_language": "新しいキーワードを入力したら自動的に現地言語に翻訳する",
+ "translate_api": "翻訳API",
+ "history": "履歴",
+ "clear_history": "履歴をクリア",
+ "clear_history_confirm": "本当に履歴をクリアしますか?",
+ "clear_history_success": "履歴がクリアされました",
+ "max_history_count": "最大履歴数",
+ "favorite": "お気に入りリスト",
+ "add_to_favorite": "お気に入りに追加",
+ "remove_from_favorite": "お気に入りから削除",
+ "use": "使用する",
+ "click_to_edit": "左クリックで編集",
+ "drop_to_order": "左クリックでドラッグ&ドロップして並べ替える",
+ "enter_to_save": "Enterキーを押してキーワードを保存する",
+ "enter_to_add": "Enterキーを押してキーワードを追加する",
+ "translate_api_not_found": "翻訳APIが見つかりません",
+ "translate_language_not_support": "翻訳言語がサポートされていません",
+ "translate_api_not_support": "翻訳APIはサポートされていません",
+ "unset_name": "名前が設定されていません",
+ "no_history": "履歴がありません",
+ "get_history_error": "履歴の取得に失敗しました",
+ "no_favorite": "お気に入りがありません",
+ "get_favorite_error": "お気に入りの取得に失敗しました",
+ "hide_default_input_box": "デフォルトの入力ボックスを非表示にする",
+ "show_default_input_box": "デフォルトの入力ボックスを表示する",
+ "translate_test": "翻訳テスト",
+ "close": "閉じる",
+ "save": "保存",
+ "delete_all_keywords": "すべてのキーワードを削除する",
+ "delete_all_keywords_confirm": "本当にすべてのキーワードを削除しますか?",
+ "whether_to_enable_tooltip": "各機能のツールチップを有効にするかどうか(この拡張機能のすべての機能を熟知している場合はチェックを外してください)",
+ "delete_all_history": "すべての履歴を削除する",
+ "delete_all_history_confirm": "本当にすべての履歴を削除しますか?",
+ "please_enter_the_content_here": "コンテンツを入力してください",
+ "not_api_key_desc": "無料の翻訳インターフェースは不安定であり、すべてのインターフェースをあなたのコンピュータで使用できるわけではありません。安定した公式インターフェイスを使用するにはAPI Keyを申請してください。",
+ "setting_desc": "設定:翻訳API、自動翻訳、表示/非表示...",
+ "line_break_character": "改行文字",
+ "tagcomplete_translate_desc": " DominikDoom/a1111-sd-webui-tagcomplete 拡張機能の danbooru.csv を使用して翻訳機能を強化し、ネットワーク要求を節約し、正確な翻訳を実現します。
更新ボタンをクリックすると、以下のパスのcsvファイルがスキャンされます:extensions\\a1111-sd-webui-tagcomplete\\tags、extensions\\sd-webui-prompt-all-in-one\\tags。
gitリポジトリ Physton/sd-webui-prompt-all-in-one-assets/tags からcsvファイルをダウンロードできます
",
+ "test": "テスト",
+ "refresh": "更新",
+ "not_enable": "無効にする",
+ "translate_result": "{0}の翻訳結果は:{1}",
+ "not_found_csv_file": "csvファイルが見つかりません",
+ "theme_extension": "テーマ:拡張プラグインスタイル",
+ "is_remove_space": "キーワードのコンマ後のスペースを削除するかどうか。 チェックすると、自動的にスペースが削除されます(読みづらい)。 チェックを外すと、空白が1つ残ります(TOKEN数に影響します)。",
+ "theme": "テーマ",
+ "enhance": "強化",
+ "only_csv_on_auto": "自動翻訳はCSV翻訳のみを使用します(ネットワーク翻訳ではありません)。CSVおよびネットワーク翻訳を両方使用するには、手動で翻訳ボタンをクリックしてください。",
+ "one_translate_all_keywords": "すべてのキーワードをワンクリックで翻訳する",
+ "auto_translate": "新しいキーワードを入力した後、自動的に翻訳する",
+ "is_remove_last_comma": "Promptの最後のカンマを削除するかどうか。 選択した場合、Promptの出力は「aaa,bbb,ccc」になります。 選択されていない場合、Promptの出力は「aaa,bbb,ccc,」になります。",
+ "is_keep_weight_zero": "重みが0のキーワードのフォーマットを保持するかどうか。 選択した場合、キーワードのフォーマットは「(text:0)」として保持されます。 選択されていない場合、フォーマットは「test」として保持されません。",
+ "is_keep_weight_one": "重みが1のキーワードのフォーマットを保持するかどうか。 選択した場合、キーワードのフォーマットは「(text:1)」として保持されます。 選択されていない場合、フォーマットは「test」として保持されません。",
+ "prompt_format": "プロンプトの形式",
+ "tagcomplete_translate_desc2": "間違ったCSVファイルを選択すると、空の翻訳または「0」になります。ファイルを変更した後、下のテストボタンをクリックして、翻訳結果が正しくローカル言語で表示されるかどうかを確認してください。",
+ "dblclick_to_disable": "キーワードの無効化/有効化にはダブルクリックしてください",
+ "batch_operation": "バッチ操作",
+ "success": "成功しました!",
+ "failed": "失敗しました!",
+ "packages_desc": "一部のPythonパッケージがインストールされていないか、または正常にインストールされていません。再インストールするためにクリックする必要があります。すべてのパッケージが正常にインストールされると、すべての機能が正常に動作します。 インストールボタンをクリックしてもうまくインストールできない場合は、コマンドを手動でコピーしてターミナルで実行する必要があります。",
+ "installed": "インストール済み",
+ "not_install": "未インストール",
+ "install": "インストール",
+ "packages_installing": "インストールを開始します......詳細なインストールログを確認する必要がある場合は、WebUIコンソールに移動して表示してください。インストールが完了すると、このウィンドウは自動的に閉じられます!",
+ "today_not_show": "今日このウィンドウを表示しない",
+ "free": "無料",
+ "apply_for_free": "無料使用を申請する",
+ "use_chatgpt_gen_prompts": "ChatGPTを使用してプロンプトを生成する",
+ "input_image_desc": "画像の説明を入力してください。たとえば、建物の屋上に座っている猫、非常に高精細で非常にリアルな写真など。",
+ "api_config": "API構成",
+ "image_desc": "画像の説明",
+ "preset": "プリセット",
+ "ai_one": "AIに送信される最初の文",
+ "ai_two": "AIに送信される2番目の文",
+ "restore_to_default": "システムデフォルトに復元",
+ "generate": "生成",
+ "generate_result": "生成結果",
+ "is_required": "{0} が必要です!",
+ "is_not_dict": "{0} は辞書である必要があります!",
+ "no_response_from": "{0} からの応答がありません!",
+ "request_error": "{0} のリクエストエラーです!",
+ "response_is_empty": "{0} の応答が空です!",
+ "response_error": "{0} の応答エラーです!",
+ "install_success": "{0} のインストールに成功しました!",
+ "install_failed": "エラー:{0} のインストールに失敗しました!",
+ "translate_text_is_empty": "翻訳テキストが空です!",
+ "about_desc": "バージョン、更新、ヘルプ、ドキュメント",
+ "version": "バージョン",
+ "unknown_version": "不明のバージョン",
+ "has_new_version": "新しいバージョンがあります。更新してください",
+ "wiki_desc": "インストールチュートリアル、詳細な機能、使用方法、よくある質問などはこちらを参照してください:"
+ }
+ },
+ {
+ "code": "kn_IN",
+ "name": "ಕನ್ನಡ (ಭಾರತ)",
+ "lang": {}
+ },
+ {
+ "code": "kk_KZ",
+ "name": "Қазақ (Қазақстан)",
+ "lang": {}
+ },
+ {
+ "code": "km_KH",
+ "name": "ភាសាខ្មែរ (កម្ពុជា)",
+ "lang": {}
+ },
+ {
+ "code": "tlh_Latn",
+ "name": "Klingon (Latn)",
+ "lang": {}
+ },
+ {
+ "code": "tlh_Piqd",
+ "name": "Klingon (plqaD)",
+ "lang": {}
+ },
+ {
+ "code": "ko_KR",
+ "name": "한국어 (대한민국)",
+ "lang": {
+ "need_api_key": "API 키 필요",
+ "dont_need_api_key": "API 키 필요 없음 (불안정)",
+ "prompt": "프롬프트",
+ "negative_prompt": "부정적인 프롬프트",
+ "txt2img": "텍스트에서 이미지로",
+ "img2img": "이미지에서 이미지로",
+ "please_enter_new_keyword": "새로운 키워드를 입력하세요",
+ "local_language": "현지어",
+ "increase_weight_add_parentheses": "키워드 가중치 증가 : () 쌓임",
+ "increase_weight_subtract_parentheses": "키워드 가중치 증가 : () 감소",
+ "decrease_weight_add_brackets": "키워드 가중치 감소 : [] 쌓임",
+ "decrease_weight_subtract_brackets": "키워드 가중치 감소 : [] 감소",
+ "translate_keyword_to_local_language": "키워드를 현지어로 번역",
+ "copy_to_clipboard": "클립보드로 복사",
+ "disable_keyword": "키워드 비활성화",
+ "enable_keyword": "키워드 활성화",
+ "copy_keywords_to_clipboard": "모든 키워드를 클립보드로 복사",
+ "translate_keywords_to_local_language": "모든 키워드를 현지어로 번역",
+ "translate_keyword_to_english": "영어로 번역",
+ "translate_all_keywords_to_english": "모든 비영어권 키워드를 영어로 번역",
+ "auto_translate_to_english": "새 키워드 입력 후 자동으로 영어로 번역",
+ "auto_translate_to_local_language": "새 키워드 입력 후 자동으로 현지어로 번역",
+ "translate_api": "번역 API",
+ "history": "기록",
+ "clear_history": "기록 지우기",
+ "clear_history_confirm": "정말 기록을 지우시겠습니까?",
+ "clear_history_success": "기록이 지워졌습니다.",
+ "max_history_count": "최대 기록 수",
+ "favorite": "즐겨찾기 목록",
+ "add_to_favorite": "즐겨찾기에 추가",
+ "remove_from_favorite": "즐겨찾기에서 제거",
+ "use": "사용",
+ "click_to_edit": "편집하려면 마우스 왼쪽 버튼 클릭",
+ "drop_to_order": "정렬하려면 마우스 왼쪽 버튼을 누른 채 드래그하세요",
+ "enter_to_save": "엔터 키를 눌러 키워드 저장",
+ "enter_to_add": "엔터 키를 눌러 키워드 추가",
+ "translate_api_not_found": "번역 API를 찾을 수 없습니다.",
+ "translate_language_not_support": "번역 언어를 지원하지 않습니다.",
+ "translate_api_not_support": "번역 API를 지원하지 않습니다.",
+ "unset_name": "이름 설정 안됨",
+ "no_history": "기록 없음",
+ "get_history_error": "기록 가져오기 실패",
+ "no_favorite": "즐겨찾기 없음",
+ "get_favorite_error": "즐겨찾기 가져오기 실패",
+ "hide_default_input_box": "기본 입력 상자 숨기기",
+ "show_default_input_box": "기본 입력 상자 보이기",
+ "translate_test": "번역 테스트",
+ "close": "닫기",
+ "save": "저장",
+ "delete_all_keywords": "모든 키워드 삭제",
+ "delete_all_keywords_confirm": "정말 모든 키워드를 삭제하시겠습니까?",
+ "whether_to_enable_tooltip": "각 기능에 대한 도움말 설명을 사용할 지 여부, 확장 프로그램의 모든 기능을 이미 익히셨다면 체크 해제 가능",
+ "delete_all_history": "모든 기록 삭제",
+ "delete_all_history_confirm": "정말 모든 기록을 삭제하시겠습니까?",
+ "please_enter_the_content_here": "내용을 입력하세요",
+ "not_api_key_desc": "무료 번역 인터페이스는 불안정합니다. 모든 인터페이스를 컴퓨터에서 사용할 수 있는 것은 아닙니다. 안정적인 공식 인터페이스를 사용하려면 API 키를 신청하십시오.",
+ "setting_desc": "설정: 번역 API, 자동 번역, 표시/숨기기...",
+ "line_break_character": "개행 문자",
+ "tagcomplete_translate_desc": "DominikDoom/a1111-sd-webui-tagcomplete 확장 프로그램의 danbooru.csv 를 사용하여 번역 기능을 향상시켜 네트워크 요청을 절약하고 정확한 번역을 달성하십시오.
새로 고침 버튼을 클릭하면 다음 경로의 csv 파일이 스캔됩니다 : extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.
git 저장소 Physton/sd-webui-prompt-all-in-one-assets/tags 에서 csv 파일을 다운로드 할 수 있습니다.
",
+ "test": "테스트",
+ "refresh": "새로 고침",
+ "not_enable": "비활성화",
+ "translate_result": "{0}의 번역 결과는 : {1}입니다.",
+ "not_found_csv_file": "csv 파일을 찾을 수 없습니다",
+ "theme_extension": "테마: 확장 플러그인 스타일",
+ "is_remove_space": "키워드의 쉼표 뒤 공백을 제거할지 여부입니다. 확인하면 자동으로 공백이 제거됩니다(읽기 어려움). 선택을 취소하면 공백 1개가 유지됩니다.(TOKEN 계산에 영향을 미칩니다).",
+ "theme": "테마",
+ "enhance": "강화",
+ "only_csv_on_auto": "자동 번역은 CSV 번역 만 사용합니다 (네트워크 번역은 사용하지 않음). CSV 및 네트워크 번역을 모두 사용하려면 수동으로 번역 버튼을 클릭하십시오.",
+ "one_translate_all_keywords": "모든 키워드를 한 번의 클릭으로 번역하세요",
+ "auto_translate": "새 키워드를 입력한 후 자동으로 번역하기",
+ "is_remove_last_comma": "Prompt의 마지막 쉼표를 제거할 것인가요? 선택한 경우, Prompt 출력은 \"aaa,bbb,ccc\"가 됩니다. 선택하지 않은 경우, Prompt 출력은 \"aaa,bbb,ccc,\"가 됩니다.",
+ "is_keep_weight_zero": "무게가 0인 키워드 형식을 유지할 것인가요? 선택한 경우, 키워드 형식은 \"(text:0)\"로 유지됩니다. 선택하지 않은 경우, 형식은 \"test\"로 유지되지 않습니다.",
+ "is_keep_weight_one": "무게가 1인 키워드 형식을 유지할 것인가요? 선택한 경우, 키워드 형식은 \"(text:1)\"로 유지됩니다. 선택하지 않은 경우, 형식은 \"test\"로 유지되지 않습니다.",
+ "prompt_format": "프롬프트 형식",
+ "tagcomplete_translate_desc2": "잘못된 CSV 파일을 선택하면 빈 번역이나 '0'이 됩니다. 파일을 변경한 후에는 아래의 테스트 버튼을 클릭하고 번역된 결과가 로컬 언어로 올바르게 표시되는지 확인하십시오.",
+ "dblclick_to_disable": "키워드를 사용 안 함/사용으로 바꾸려면 더블 클릭",
+ "batch_operation": "일괄 작업",
+ "success": "성공!",
+ "failed": "실패!",
+ "packages_desc": "일부 Python 패키지가 설치되지 않았거나 설치하지 못했습니다. 다시 설치하려면 클릭해야합니다. 모두 성공적으로 설치 된 후 모든 기능을 정상적으로 사용할 수 있습니다. 설치 버튼을 클릭 한 후에도 여전히 성공적으로 설치 할 수 없는 경우 명령을 수동으로 복사하고 터미널에서 실행해야합니다.",
+ "installed": "설치됨",
+ "not_install": "미설치",
+ "install": "설치",
+ "packages_installing": "설치 시작 중 ...... 자세한 설치 로그를 확인해야하는 경우 WebUI 콘솔로 이동하여 확인하십시오. 설치가 완료되면이 창이 자동으로 닫힙니다!",
+ "today_not_show": "오늘 이 창을 표시하지 않음",
+ "free": "무료",
+ "apply_for_free": "무료 사용 신청",
+ "use_chatgpt_gen_prompts": "ChatGPT를 사용하여 프롬프트를 생성합니다",
+ "input_image_desc": "이미지 설명을 입력하세요. 예 : 건물 꼭대기에 앉아있는 고양이, 매우 고화질이며 매우 현실적인 사진 등",
+ "api_config": "API 구성",
+ "image_desc": "이미지 설명",
+ "preset": "사전 설정",
+ "ai_one": "AI에게 전송 된 첫 번째 문장",
+ "ai_two": "AI에게 전송 된 두 번째 문장",
+ "restore_to_default": "시스템 기본값으로 복원",
+ "generate": "생성",
+ "generate_result": "생성 결과",
+ "is_required": "{0} 입력이 필요합니다!",
+ "is_not_dict": "{0}은(는) 사전이어야 합니다!",
+ "no_response_from": "{0}에서 응답이 없습니다!",
+ "request_error": "{0} 요청 오류입니다!",
+ "response_is_empty": "{0} 응답이 비어 있습니다!",
+ "response_error": "{0} 응답 오류입니다!",
+ "install_success": "{0} 설치에 성공했습니다!",
+ "install_failed": "오류: {0} 설치 실패!",
+ "translate_text_is_empty": "번역 텍스트가 비어 있습니다!",
+ "about_desc": "버전, 업데이트, 도움말, 문서",
+ "version": "버전",
+ "unknown_version": "알 수 없는 버전",
+ "has_new_version": "새로운 버전이 있습니다. 업데이트하세요",
+ "wiki_desc": "설치 안내서, 자세한 기능, 사용 방법, 자주 묻는 질문 등은 다음을 참조하세요:"
+ }
+ },
+ {
+ "code": "ku_Arab_IQ",
+ "name": "کوردی (عێراق)",
+ "lang": {}
+ },
+ {
+ "code": "ku_Latn_TR",
+ "name": "Kurmancî (Latînî, Tirkiye)",
+ "lang": {}
+ },
+ {
+ "code": "ky_KG",
+ "name": "Кыргызча (Кыргызстан)",
+ "lang": {}
+ },
+ {
+ "code": "lo_LA",
+ "name": "ລາວ (ລາວ)",
+ "lang": {}
+ },
+ {
+ "code": "lv_LV",
+ "name": "Latviešu (Latvija)",
+ "lang": {}
+ },
+ {
+ "code": "lt_LT",
+ "name": "Lietuvių (Lietuva)",
+ "lang": {}
+ },
+ {
+ "code": "mk_MK",
+ "name": "Македонски (Северна Македонија)",
+ "lang": {}
+ },
+ {
+ "code": "mg_MG",
+ "name": "Malagasy (Madagasikara)",
+ "lang": {}
+ },
+ {
+ "code": "ms_Latn_MY",
+ "name": "Bahasa Melayu (Latin, Malaysia)",
+ "lang": {}
+ },
+ {
+ "code": "ml_IN",
+ "name": "മലയാളം (ഇന്ത്യ)",
+ "lang": {}
+ },
+ {
+ "code": "mt_MT",
+ "name": "Malti (Malta)",
+ "lang": {}
+ },
+ {
+ "code": "mi_NZ",
+ "name": "Māori (Aotearoa)",
+ "lang": {}
+ },
+ {
+ "code": "mr_IN",
+ "name": "मराठी (भारत)",
+ "lang": {}
+ },
+ {
+ "code": "mn_Cyrl_MN",
+ "name": "Монгол (Кирилл, Монгол улс)",
+ "lang": {}
+ },
+ {
+ "code": "mn_Mong_CN",
+ "name": "ᠮᠣᠩᠭᠣᠯ ᠤᠯᠤᠰ (ᠨᠢᠭᠡᠳᠦᠯ ᠤᠨᠤᠭᠠ)",
+ "lang": {}
+ },
+ {
+ "code": "my_MM",
+ "name": "မြန်မာ (မြန်မာ)",
+ "lang": {}
+ },
+ {
+ "code": "ne_NP",
+ "name": "नेपाली (नेपाल)",
+ "lang": {}
+ },
+ {
+ "code": "no_NO",
+ "name": "Norsk bokmål (Norge)",
+ "lang": {}
+ },
+ {
+ "code": "or_IN",
+ "name": "ଓଡ଼ିଆ (ଭାରତ)",
+ "lang": {}
+ },
+ {
+ "code": "ps_AF",
+ "name": "پښتو (افغانستان)",
+ "lang": {}
+ },
+ {
+ "code": "fa_IR",
+ "name": "فارسی (ایران)",
+ "lang": {}
+ },
+ {
+ "code": "pl_PL",
+ "name": "Polski (Polska)",
+ "lang": {}
+ },
+ {
+ "code": "pt_BR",
+ "name": "Português (Brasil)",
+ "lang": {}
+ },
+ {
+ "code": "pt_PT",
+ "name": "Português (Portugal)",
+ "lang": {
+ "need_api_key": "API Key necessário",
+ "dont_need_api_key": "Não é necessário API Key (instável)",
+ "prompt": "Palavra-chave",
+ "negative_prompt": "Palavra-chave negativa",
+ "txt2img": "Texto para imagem",
+ "img2img": "Imagem para imagem",
+ "please_enter_new_keyword": "Por favor, introduza uma nova palavra-chave",
+ "local_language": "Língua local",
+ "increase_weight_add_parentheses": "Aumentar o peso da palavra-chave: Adicionar ()",
+ "increase_weight_subtract_parentheses": "Aumentar o peso da palavra-chave: Subtrair ()",
+ "decrease_weight_add_brackets": "Diminuir o peso da palavra-chave: Adicionar []",
+ "decrease_weight_subtract_brackets": "Diminuir o peso da palavra-chave: Subtrair []",
+ "translate_keyword_to_local_language": "Traduzir palavra-chave para a língua local",
+ "copy_to_clipboard": "Copiar para a área de transferência",
+ "disable_keyword": "Desativar palavra-chave",
+ "enable_keyword": "Ativar palavra-chave",
+ "copy_keywords_to_clipboard": "Copiar todas as palavras-chave para a área de transferência",
+ "translate_keywords_to_local_language": "Traduzir todas as palavras-chave para a língua local",
+ "translate_keyword_to_english": "Traduzir para inglês",
+ "translate_all_keywords_to_english": "Traduzir todas as palavras-chave não inglesas para inglês",
+ "auto_translate_to_english": "Auto tradução para inglês após a introdução de uma nova palavra-chave",
+ "auto_translate_to_local_language": "Auto tradução para a língua local após a introdução de uma nova palavra-chave",
+ "translate_api": "API de tradução",
+ "history": "Histórico",
+ "clear_history": "Limpar histórico",
+ "clear_history_confirm": "Tem a certeza que pretende limpar o histórico?",
+ "clear_history_success": "O histórico foi limpo com sucesso",
+ "max_history_count": "Contagem máxima do histórico",
+ "favorite": "Lista de favoritos",
+ "add_to_favorite": "Adicionar aos favoritos",
+ "remove_from_favorite": "Remover dos favoritos",
+ "use": "Usar",
+ "click_to_edit": "Clique com o botão esquerdo do rato para editar",
+ "drop_to_order": "Mantenha pressionado o botão esquerdo do rato e arraste para reordenar",
+ "enter_to_save": "Pressione Enter para guardar a palavra-chave",
+ "enter_to_add": "Pressione Enter para adicionar a palavra-chave",
+ "translate_api_not_found": "API de tradução não encontrada",
+ "translate_language_not_support": "Língua de tradução não suportada",
+ "translate_api_not_support": "API de tradução não suportada",
+ "unset_name": "Nome não definido",
+ "no_history": "Sem histórico",
+ "get_history_error": "Erro ao obter histórico",
+ "no_favorite": "Sem favoritos",
+ "get_favorite_error": "Erro ao obter favoritos",
+ "hide_default_input_box": "Ocultar caixa de entrada padrão",
+ "show_default_input_box": "Mostrar caixa de entrada padrão",
+ "translate_test": "Teste de tradução",
+ "close": "Fechar",
+ "save": "Guardar",
+ "delete_all_keywords": "Eliminar todas as palavras-chave",
+ "delete_all_keywords_confirm": "Tem a certeza que pretende eliminar todas as palavras-chave?",
+ "whether_to_enable_tooltip": "Deseja ativar a caixa de ferramentas de sugestões para cada funcionalidade? Se já estiver familiarizado com todas as funcionalidades desta extensão, pode desmarcar esta opção.",
+ "delete_all_history": "Eliminar todo o histórico",
+ "delete_all_history_confirm": "Tem a certeza que pretende eliminar todo o histórico?",
+ "please_enter_the_content_here": "Por favor, digite o conteúdo",
+ "not_api_key_desc": "As interfaces de tradução gratuitas são instáveis e nem todas as interfaces podem ser usadas no seu computador. Por favor, solicite uma chave de API para usar a interface oficial estável.",
+ "setting_desc": "Configuração: API de tradução, tradução automática, mostrar/ocultar...",
+ "line_break_character": "Caractere de quebra de linha",
+ "tagcomplete_translate_desc": "Aprimore a função de tradução usando danbooru.csv na extensão DominikDoom/a1111-sd-webui-tagcomplete para alcançar o objetivo de economizar solicitações de rede e tradução precisa.
Após clicar no botão Atualizar, os arquivos csv dos seguintes caminhos serão verificados: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.
Você pode baixar arquivos csv do repositório git Physton/sd-webui-prompt-all-in-one-assets/tags .
",
+ "test": "Testar",
+ "refresh": "Atualizar",
+ "not_enable": "Não habilitado",
+ "translate_result": "O resultado da tradução de {0} é: {1}",
+ "not_found_csv_file": "Arquivo csv não encontrado",
+ "theme_extension": "Tema: Estilo de plugin de extensão",
+ "is_remove_space": "Indique se os espaços após cada vírgula na palavra-chave devem ser removidos. A seleção automática remove os espaços (difícil de ler). A desseleção mantém um espaço (afetando a contagem de TOKEN).",
+ "theme": "Tema",
+ "enhance": "Melhorar",
+ "only_csv_on_auto": "A tradução automática utiliza apenas a tradução CSV (não a tradução de rede). Para usar tanto a tradução CSV como a tradução de rede, clique manualmente no botão de tradução.",
+ "one_translate_all_keywords": "Traduzir todas as palavras-chave com um clique",
+ "auto_translate": "Traduzir automaticamente após inserir novas palavras-chave",
+ "is_remove_last_comma": "Remover ou não a última vírgula em Prompt. Quando selecionado, a saída do Prompt é \"aaa,bbb,ccc\". Quando não selecionado, a saída do Prompt é \"aaa,bbb,ccc,\".",
+ "is_keep_weight_zero": "Manter ou não o formato das palavras-chave com um peso de 0. Quando selecionado, o formato da palavra-chave é mantido como \"(text:0)\". Quando não selecionado, o formato não é mantido como \"test\".",
+ "is_keep_weight_one": "Manter ou não o formato das palavras-chave com um peso de 1. Quando selecionado, o formato da palavra-chave é mantido como \"(text:1)\". Quando não selecionado, o formato não é mantido como \"test\".",
+ "prompt_format": "Formato do prompt",
+ "tagcomplete_translate_desc2": "Selecionar o arquivo CSV errado resultará em uma tradução vazia ou '0'. Após alterar o arquivo, clique no botão de teste abaixo e verifique se o resultado traduzido é exibido corretamente em seu idioma local.",
+ "dblclick_to_disable": "Clique duas vezes para desativar/ativar palavra-chave",
+ "batch_operation": "Operação em lote",
+ "success": "Sucesso!",
+ "failed": "Falha!",
+ "packages_desc": "Alguns pacotes do Python são detectados como não instalados ou instalados sem sucesso. Você precisa clicar para tentar reinstalá-los. Depois que todos os pacotes forem instalados com sucesso, todas as funções podem funcionar normalmente. Se você ainda não conseguir instalá-los com sucesso após clicar no botão de instalação, precisará copiar o comando manualmente e executá-lo no terminal.",
+ "installed": "Instalados",
+ "not_install": "Não instalado",
+ "install": "Instalar",
+ "packages_installing": "Iniciando a instalação ...... Se você precisar verificar o log de instalação detalhado, vá para o console WebUI para visualizá-lo. Depois que a instalação for concluída, esta janela será fechada automaticamente!",
+ "today_not_show": "Não mostrar esta janela hoje",
+ "free": "Grátis",
+ "apply_for_free": "Solicitar uso gratuito",
+ "use_chatgpt_gen_prompts": "Usar o ChatGPT para Gerar Prompt",
+ "input_image_desc": "Por favor, escreva a descrição da imagem, por exemplo: um gato sentado no topo de um edifício, uma foto muito realista e de alta definição.",
+ "api_config": "Configuração da API",
+ "image_desc": "Descrição da Imagem",
+ "preset": "Predefinição",
+ "ai_one": "Primeira frase enviada para o AI",
+ "ai_two": "Segunda frase enviada para o AI",
+ "restore_to_default": "Restaurar às predefinições do sistema",
+ "generate": "Gerar",
+ "generate_result": "Resultado da Geração",
+ "is_required": "{0} é obrigatório!",
+ "is_not_dict": "{0} deve ser um dicionário!",
+ "no_response_from": "Sem resposta de {0}!",
+ "request_error": "Erro de requisição {0}!",
+ "response_is_empty": "A resposta de {0} está vazia!",
+ "response_error": "Erro de resposta de {0}!",
+ "install_success": "{0} instalado com sucesso!",
+ "install_failed": "Erro: falha na instalação de {0}!",
+ "translate_text_is_empty": "O texto de tradução está vazio!",
+ "about_desc": "Sobre, Atualizações, Ajuda, Documentação",
+ "version": "Versão",
+ "unknown_version": "Versão desconhecida",
+ "has_new_version": "Há uma nova versão disponível, por favor atualize",
+ "wiki_desc": "Tutorial de instalação, recursos detalhados, instruções de uso, perguntas frequentes, etc. Veja:"
+ }
+ },
+ {
+ "code": "pa_Guru_IN",
+ "name": "ਪੰਜਾਬੀ (ਗੁਰਮੁਖੀ, ਭਾਰਤ)",
+ "lang": {}
+ },
+ {
+ "code": "otq_Latn_MX",
+ "name": "Querétaro Otomi (Latn, México)",
+ "lang": {}
+ },
+ {
+ "code": "ro_RO",
+ "name": "Română (România)",
+ "lang": {}
+ },
+ {
+ "code": "ru_RU",
+ "name": "Русский (Россия)",
+ "lang": {
+ "need_api_key": "API-ключ необходим",
+ "dont_need_api_key": "API-ключ не требуется (нестабильно)",
+ "prompt": "Подсказка",
+ "negative_prompt": "Обратная подсказка",
+ "txt2img": "Текст в картинку",
+ "img2img": "Картинка в картинку",
+ "please_enter_new_keyword": "Введите новое ключевое слово",
+ "local_language": "Локальный язык",
+ "increase_weight_add_parentheses": "Увеличить вес ключевого слова: добавить ()",
+ "increase_weight_subtract_parentheses": "Увеличить вес ключевого слова: убрать ()",
+ "decrease_weight_add_brackets": "Уменьшить вес ключевого слова: добавить []",
+ "decrease_weight_subtract_brackets": "Уменьшить вес ключевого слова: убрать []",
+ "translate_keyword_to_local_language": "Перевести ключевое слово на локальный язык",
+ "copy_to_clipboard": "Копировать в буфер обмена",
+ "disable_keyword": "Отключить ключевое слово",
+ "enable_keyword": "Включить ключевое слово",
+ "copy_keywords_to_clipboard": "Копировать все ключевые слова в буфер обмена",
+ "translate_keywords_to_local_language": "Перевести все ключевые слова на локальный язык",
+ "translate_keyword_to_english": "Перевести на английский",
+ "translate_all_keywords_to_english": "Перевести все ключевые слова, кроме английского, на английский",
+ "auto_translate_to_english": "Автоматически переводить на английский после ввода нового ключевого слова",
+ "auto_translate_to_local_language": "Автоматически переводить на локальный язык после ввода нового ключевого слова",
+ "translate_api": "API для перевода",
+ "history": "История",
+ "clear_history": "Очистить историю",
+ "clear_history_confirm": "Вы действительно хотите очистить историю?",
+ "clear_history_success": "История была успешно очищена",
+ "max_history_count": "Максимальное количество записей истории",
+ "favorite": "Избранное",
+ "add_to_favorite": "Добавить в избранное",
+ "remove_from_favorite": "Убрать из избранного",
+ "use": "Использование",
+ "click_to_edit": "Щелкните левой кнопкой мыши, чтобы редактировать",
+ "drop_to_order": "Удерживайте левую кнопку мыши и перетаскивайте для сортировки",
+ "enter_to_save": "Нажмите Enter, чтобы сохранить ключевое слово",
+ "enter_to_add": "Нажмите Enter, чтобы добавить ключевое слово",
+ "translate_api_not_found": "API для перевода не найден",
+ "translate_language_not_support": "Язык перевода не поддерживается",
+ "translate_api_not_support": "API для перевода не поддерживается",
+ "unset_name": "Не задано имя",
+ "no_history": "Нет записей в истории",
+ "get_history_error": "Ошибка при получении истории",
+ "no_favorite": "Нет избранных элементов",
+ "get_favorite_error": "Ошибка при получении избранного",
+ "hide_default_input_box": "Скрыть стандартное поле ввода",
+ "show_default_input_box": "Показать стандартное поле ввода",
+ "translate_test": "Тест перевода",
+ "close": "Закрыть",
+ "save": "Сохранить",
+ "delete_all_keywords": "Удалить все ключевые слова",
+ "delete_all_keywords_confirm": "Вы действительно хотите удалить все ключевые слова?",
+ "whether_to_enable_tooltip": "Включить всплывающие подсказки для каждой функции. Если вы уже владеете всеми функциями расширения, можете снимать галочку.",
+ "delete_all_history": "Удалить всю историю",
+ "delete_all_history_confirm": "Вы действительно хотите удалить всю историю?",
+ "please_enter_the_content_here": "Пожалуйста, введите содержимое",
+ "not_api_key_desc": "Бесплатные интерфейсы перевода нестабильны и не каждый интерфейс можно использовать на вашем компьютере. Пожалуйста, получите API Key для использования стабильного официального интерфейса",
+ "setting_desc": "Настройки: API перевода, автоматический перевод, показать/скрыть...",
+ "line_break_character": "Символ перевода строки",
+ "tagcomplete_translate_desc": "Улучшение функции перевода с использованием danbooru.csv в расширении DominikDoom/a1111-sd-webui-tagcomplete для достижения цели экономии запросов к сети и точного перевода.
После нажатия кнопки Обновить будут просканированы CSV-файлы из следующих путей: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.
Вы можете скачать CSV-файлы из репозитория Git Physton/sd-webui-prompt-all-in-one-assets/tags .
",
+ "test": "Тест",
+ "refresh": "Обновить",
+ "not_enable": "Не активировано",
+ "translate_result": "Результат перевода {0}: {1}",
+ "not_found_csv_file": "CSV-файл не найден",
+ "theme_extension": "Тема: Стиль расширения плагина",
+ "is_remove_space": "Указывает, нужно ли удалять пробелы после каждой запятой в ключевом слове. При выборе будет автоматически удалены пробелы (трудно читать). Если этот параметр не выбран, то будет сохранен один пробел (влияет на подсчет TOKEN).",
+ "theme": "Тема",
+ "enhance": "Улучшить",
+ "only_csv_on_auto": "Автоматический перевод использует только CSV-перевод (не сетевой перевод). Чтобы использовать как CSV-, так и сетевой перевод, вручную нажмите кнопку перевода.",
+ "one_translate_all_keywords": "Перевести все ключевые слова одним нажатием кнопки",
+ "auto_translate": "Автоматический перевод новых ключевых слов",
+ "is_remove_last_comma": "Удалить последнюю запятую в Prompt или нет? Если выбрано, то в Prompt будет выводиться \"aaa,bbb,ccc\". Если не выбрано, то в Prompt будет выводиться \"aaa,bbb,ccc,\".",
+ "is_keep_weight_zero": "Сохранять формат ключевых слов с нулевым весом или нет? Если выбрано, то формат ключевых слов будет сохранен как \"(test:0)\". Если не выбрано, то формат будет \"test\" без скобок.",
+ "is_keep_weight_one": "Сохранять формат ключевых слов с весом 1 или нет? Если выбрано, то формат ключевых слов будет сохранен как \"(test:1)\". Если не выбрано, то формат будет \"test\" без скобок.",
+ "prompt_format": "Формат Prompt",
+ "tagcomplete_translate_desc2": "Выбор неправильного файла CSV приведет к пустому или «0» переводу. После изменения файла нажмите кнопку тестирования ниже и проверьте, правильно ли отображен переведенный результат на вашем локальном языке.",
+ "dblclick_to_disable": "Двойной щелчок, чтобы отключить/включить ключевое слово",
+ "batch_operation": "Пакетная операция",
+ "success": "Успех!",
+ "failed": "Не удалось!",
+ "packages_desc": "Некоторые пакеты Python обнаружены как незапущенные или запущенные безуспешно. Вам нужно щелкнуть, чтобы попробовать повторно установить их. После того, как все пакеты будут успешно установлены, все функции могут работать нормально. Если вы по-прежнему не можете успешно установить их после нажатия кнопки установки, вам нужно вручную скопировать команду и выполнить ее в терминале.",
+ "installed": "Установленный",
+ "not_install": "Не установлен",
+ "install": "Установить",
+ "packages_installing": "Запуск установки ...... Если вам нужно проверить подробный журнал установки, перейдите на консоль WebUI, чтобы просмотреть его. После завершения установки это окно будет автоматически закрыто!",
+ "today_not_show": "Не показывать это окно сегодня",
+ "free": "Бесплатно",
+ "apply_for_free": "Подать заявку на бесплатное использование",
+ "use_chatgpt_gen_prompts": "Использовать ChatGPT для генерации промптов",
+ "input_image_desc": "Введите описание изображения, например: кошка, сидящая на вершине здания, очень высокое разрешение, очень реалистичное фото.",
+ "api_config": "Конфигурация API",
+ "image_desc": "Описание изображения",
+ "preset": "Предустановка",
+ "ai_one": "Первое предложение, отправленное AI",
+ "ai_two": "Второе предложение, отправленное AI",
+ "restore_to_default": "Восстановить настройки по умолчанию системы",
+ "generate": "Генерировать",
+ "generate_result": "Результат генерации",
+ "is_required": "Необходимо указать {0}!",
+ "is_not_dict": "{0} должен быть словарем!",
+ "no_response_from": "Нет ответа от {0}!",
+ "request_error": "Ошибка запроса {0}!",
+ "response_is_empty": "Ответ от {0} пуст!",
+ "response_error": "Ошибка ответа от {0}!",
+ "install_success": "{0} успешно установлен!",
+ "install_failed": "Ошибка: не удалось установить {0}!",
+ "translate_text_is_empty": "Текст для перевода пуст!",
+ "about_desc": "О программе, Обновления, Помощь, Документация",
+ "version": "Версия",
+ "unknown_version": "Неизвестная версия",
+ "has_new_version": "Доступна новая версия, пожалуйста, обновитесь",
+ "wiki_desc": "Инструкция по установке, подробные функции, инструкции по использованию, часто задаваемые вопросы и т. д. Смотрите:"
+ }
+ },
+ {
+ "code": "sm_Latn_WS",
+ "name": "Samoan (Latn, Samoa)",
+ "lang": {}
+ },
+ {
+ "code": "sr_Cyrl_RS",
+ "name": "Српски (ћирилица, Србија)",
+ "lang": {}
+ },
+ {
+ "code": "sr_Latn_RS",
+ "name": "Srpski (latinica, Srbija)",
+ "lang": {}
+ },
+ {
+ "code": "sk_SK",
+ "name": "Slovenčina (Slovensko)",
+ "lang": {}
+ },
+ {
+ "code": "sl_SI",
+ "name": "Slovenščina (Slovenija)",
+ "lang": {}
+ },
+ {
+ "code": "so_SO",
+ "name": "Soomaali (Soomaaliya)",
+ "lang": {}
+ },
+ {
+ "code": "es_ES",
+ "name": "Español (España)",
+ "lang": {
+ "need_api_key": "Se necesita una clave de API",
+ "dont_need_api_key": "No se necesita una clave de API (inestable)",
+ "prompt": "Palabra clave",
+ "negative_prompt": "Palabra clave negativa",
+ "txt2img": "Texto a imagen",
+ "img2img": "Imagen a imagen",
+ "please_enter_new_keyword": "Por favor, introduce una nueva palabra clave",
+ "local_language": "Idioma local",
+ "increase_weight_add_parentheses": "Aumentar el peso de la palabra clave: añadir ()",
+ "increase_weight_subtract_parentheses": "Aumentar el peso de la palabra clave: restar ()",
+ "decrease_weight_add_brackets": "Disminuir el peso de la palabra clave: añadir []",
+ "decrease_weight_subtract_brackets": "Disminuir el peso de la palabra clave: restar []",
+ "translate_keyword_to_local_language": "Traducir palabra clave al idioma local",
+ "copy_to_clipboard": "Copiar al portapapeles",
+ "disable_keyword": "Desactivar palabra clave",
+ "enable_keyword": "Activar palabra clave",
+ "copy_keywords_to_clipboard": "Copiar todas las palabras clave al portapapeles",
+ "translate_keywords_to_local_language": "Traducir todas las palabras clave al idioma local",
+ "translate_keyword_to_english": "Traducir al inglés",
+ "translate_all_keywords_to_english": "Traducir todas las palabras clave no inglesas al inglés",
+ "auto_translate_to_english": "Traducción automática al inglés después de ingresar una nueva palabra clave",
+ "auto_translate_to_local_language": "Traducción automática al idioma local después de ingresar una nueva palabra clave",
+ "translate_api": "API de traducción",
+ "history": "Historial",
+ "clear_history": "Borrar historial",
+ "clear_history_confirm": "¿Seguro que quieres borrar el historial?",
+ "clear_history_success": "Historial borrado correctamente",
+ "max_history_count": "Número máximo de entradas en el historial",
+ "favorite": "Favoritos",
+ "add_to_favorite": "Añadir a favoritos",
+ "remove_from_favorite": "Eliminar de favoritos",
+ "use": "Utilizar",
+ "click_to_edit": "Haz clic en la izquierda para editar",
+ "drop_to_order": "Mantén pulsado el botón izquierdo del ratón y arrastra para ordenar",
+ "enter_to_save": "Presiona Enter para guardar la palabra clave",
+ "enter_to_add": "Presiona Enter para añadir una palabra clave",
+ "translate_api_not_found": "API de traducción no encontrada",
+ "translate_language_not_support": "Idioma de traducción no soportado",
+ "translate_api_not_support": "API de traducción no soportada",
+ "unset_name": "Nombre no establecido",
+ "no_history": "No hay historial",
+ "get_history_error": "Error al obtener el historial",
+ "no_favorite": "No hay favoritos",
+ "get_favorite_error": "Error al obtener los favoritos",
+ "hide_default_input_box": "Ocultar cuadro de entrada predeterminado",
+ "show_default_input_box": "Mostrar cuadro de entrada predeterminado",
+ "translate_test": "Prueba de traducción",
+ "close": "Cerrar",
+ "save": "Guardar",
+ "delete_all_keywords": "Eliminar todas las palabras clave",
+ "delete_all_keywords_confirm": "¿Estás seguro de que quieres eliminar todas las palabras clave?",
+ "whether_to_enable_tooltip": "¿Activar información sobre herramientas para cada función? Si ya estás familiarizado con todas las funciones de esta extensión, puedes desactivar esta opción.",
+ "delete_all_history": "Eliminar todo el historial",
+ "delete_all_history_confirm": "¿Seguro que quieres eliminar todo el historial?",
+ "please_enter_the_content_here": "Por favor, ingrese el contenido",
+ "not_api_key_desc": "Las interfaces de traducción gratuitas son inestables y no todas las interfaces se pueden usar en su computadora. Por favor, solicite una clave de API para usar la interfaz oficial estable.",
+ "setting_desc": "Configuración: API de traducción, traducción automática, mostrar/ocultar...",
+ "line_break_character": "Carácter de salto de línea",
+ "tagcomplete_translate_desc": "Mejore la función de traducción utilizando danbooru.csv en la extensión DominikDoom/a1111-sd-webui-tagcomplete para lograr el objetivo de ahorrar solicitudes de red y traducción precisa.
Después de hacer clic en el botón Actualizar, se escanearán los archivos csv de las siguientes rutas: extensiones\\a1111-sd-webui-tagcomplete\\etiquetas, extensiones\\sd-webui-prompt-all-in-one\\etiquetas.
Puede descargar archivos CSV desde el repositorio Git Physton/sd-webui-prompt-all-in-one-assets/tags .
",
+ "test": "Prueba",
+ "refresh": "Actualizar",
+ "not_enable": "No habilitado",
+ "translate_result": "El resultado de la traducción de {0} es: {1}",
+ "not_found_csv_file": "Archivo csv no encontrado",
+ "theme_extension": "Tema: Estilo de complemento de extensión",
+ "is_remove_space": "Indica si deben eliminarse los espacios después de cada coma en la palabra clave. La selección automática elimina los espacios (difícil de leer). La deselección conserva un espacio (afectando el recuento de TOKEN).",
+ "theme": "Tema",
+ "enhance": "Mejorar",
+ "only_csv_on_auto": "La traducción automática utiliza solo la traducción CSV (no la traducción de red). Para utilizar tanto la traducción CSV como la traducción de red, haga clic en el botón de traducción manualmente.",
+ "one_translate_all_keywords": "Traducir todas las palabras clave con un solo clic",
+ "auto_translate": "Traducción automática de nuevas palabras clave",
+ "is_remove_last_comma": "¿Eliminar la última coma en el Prompt? Si está marcado, el Prompt mostrará \"aaa,bbb,ccc\". Si no está marcado, el Prompt mostrará \"aaa,bbb,ccc,\".",
+ "is_keep_weight_zero": "¿Mantener el formato de palabras clave con peso 0? Si está marcado, el formato será \"(test:0)\". Si no está marcado, el formato será \"test\" sin paréntesis.",
+ "is_keep_weight_one": "¿Mantener el formato de palabras clave con peso 1? Si está marcado, el formato será \"(test:1)\". Si no está marcado, el formato será \"test\" sin paréntesis.",
+ "prompt_format": "Formato de Prompt",
+ "tagcomplete_translate_desc2": "Seleccionar el archivo CSV incorrecto dará como resultado una traducción vacía o '0'. Después de cambiar el archivo, por favor haga clic en el botón de prueba a continuación y compruebe si el resultado traducido se muestra correctamente en su idioma local.",
+ "dblclick_to_disable": "Doble clic para desactivar/activar la palabra clave",
+ "batch_operation": "Operación por lotes",
+ "success": "Éxito!",
+ "failed": "Fracaso!",
+ "packages_desc": "Algunos paquetes de Python se detectan como no instalados o instalados sin éxito. Debe hacer clic para intentar reinstalarlos. Después de que todos los paquetes estén instalados correctamente, todas las funciones pueden funcionar normalmente. Si aún no puede instalarlos con éxito después de hacer clic en el botón de instalación, debe copiar el comando manualmente y ejecutarlo en la terminal.",
+ "installed": "Instalado",
+ "not_install": "No instalado",
+ "install": "Instalar",
+ "packages_installing": "Iniciando la instalación...... Si necesita verificar el registro de instalación detallado, vaya a la consola WebUI para verlo. ¡Después de que finalice la instalación, esta ventana se cerrará automáticamente!",
+ "today_not_show": "No mostrar esta ventana hoy",
+ "free": "Gratis",
+ "apply_for_free": "Solicitar uso gratuito",
+ "use_chatgpt_gen_prompts": "Usar ChatGPT para generar Prompts",
+ "input_image_desc": "Ingrese la descripción de la imagen, por ejemplo: un gato sentado en la parte superior de un edificio, una foto muy realista y de alta definición.",
+ "api_config": "Configuración del API",
+ "image_desc": "Descripción de la Imagen",
+ "preset": "Preajuste",
+ "ai_one": "Primera oración enviada a AI",
+ "ai_two": "Segunda oración enviada a AI",
+ "restore_to_default": "Restaurar a los valores predeterminados del sistema",
+ "generate": "Generar",
+ "generate_result": "Generar Resultado",
+ "is_required": "¡{0} es obligatorio!",
+ "is_not_dict": "¡{0} debe ser un diccionario!",
+ "no_response_from": "¡No se ha recibido respuesta de {0}!",
+ "request_error": "¡Error de solicitud {0}!",
+ "response_is_empty": "¡La respuesta de {0} está vacía!",
+ "response_error": "¡Error de respuesta de {0}!",
+ "install_success": "¡{0} instalado correctamente!",
+ "install_failed": "Error: ¡No se pudo instalar {0}!",
+ "translate_text_is_empty": "¡El texto de traducción está vacío!",
+ "about_desc": "Acerca de, Actualizaciones, Ayuda, Documentación",
+ "version": "Versión",
+ "unknown_version": "Versión desconocida",
+ "has_new_version": "Hay una nueva versión disponible, por favor actualiza",
+ "wiki_desc": "Tutorial de instalación, características detalladas, instrucciones de uso, preguntas frecuentes, etc. Ver:"
+ }
+ },
+ {
+ "code": "sw_KE",
+ "name": "Kiswahili (Kenya)",
+ "lang": {}
+ },
+ {
+ "code": "sv_SE",
+ "name": "Svenska (Sverige)",
+ "lang": {}
+ },
+ {
+ "code": "ty_PF",
+ "name": "Reo Tahiti (Polynésie française)",
+ "lang": {}
+ },
+ {
+ "code": "ta_IN",
+ "name": "தமிழ் (இந்தியா)",
+ "lang": {}
+ },
+ {
+ "code": "tt_Latn_RU",
+ "name": "Татарча (латин, Россия)",
+ "lang": {}
+ },
+ {
+ "code": "te_IN",
+ "name": "తెలుగు (భారత)",
+ "lang": {}
+ },
+ {
+ "code": "th_TH",
+ "name": "ไทย (ไทย)",
+ "lang": {}
+ },
+ {
+ "code": "bo_CN",
+ "name": "བོད་ཡིག (རྒྱ་གར།)",
+ "lang": {}
+ },
+ {
+ "code": "ti_ET",
+ "name": "ትግርኛ (ኢትዮጵያ)",
+ "lang": {}
+ },
+ {
+ "code": "to_TO",
+ "name": "lea fakatonga (Tonga)",
+ "lang": {}
+ },
+ {
+ "code": "tr_TR",
+ "name": "Türkçe (Türkiye)",
+ "lang": {}
+ },
+ {
+ "code": "uk_UA",
+ "name": "Українська (Україна)",
+ "lang": {}
+ },
+ {
+ "code": "ur_PK",
+ "name": "اردو (پاکستان)",
+ "lang": {}
+ },
+ {
+ "code": "ug_Arab_CN",
+ "name": "ئۇيغۇرچە (ئۇيغۇرچە، جۇڭگو)",
+ "lang": {}
+ },
+ {
+ "code": "uz_Latn_UZ",
+ "name": "O'zbekcha (Lotin, O'zbekiston)",
+ "lang": {}
+ },
+ {
+ "code": "vi_VN",
+ "name": "Tiếng Việt (Việt Nam)",
+ "lang": {}
+ },
+ {
+ "code": "cy_GB",
+ "name": "Cymraeg (Y Deyrnas Unedig)",
+ "lang": {}
+ },
+ {
+ "code": "yua_MX",
+ "name": "Yucatec Maya (México)",
+ "lang": {}
+ },
+ {
+ "code": "zu_ZA",
+ "name": "isiZulu (iNingizimu Afrika)",
+ "lang": {}
+ }
+ ]
+}
\ No newline at end of file
diff --git a/i18n.json.REMOVED.git-id b/i18n.json.REMOVED.git-id
deleted file mode 100644
index cb8ae2d..0000000
--- a/i18n.json.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-f6a24778b29e3ac4ce40489a30befea649c34fe9
\ No newline at end of file
diff --git a/javascript/main.entry.js b/javascript/main.entry.js
new file mode 100644
index 0000000..eee6bab
--- /dev/null
+++ b/javascript/main.entry.js
@@ -0,0 +1,67 @@
+(function(Tn){typeof define=="function"&&define.amd?define(Tn):Tn()})(function(){"use strict";var t1=Object.defineProperty;var n1=(Tn,Kt,Ai)=>Kt in Tn?t1(Tn,Kt,{enumerable:!0,configurable:!0,writable:!0,value:Ai}):Tn[Kt]=Ai;var Ed=(Tn,Kt,Ai)=>(n1(Tn,typeof Kt!="symbol"?Kt+"":Kt,Ai),Ai);function Tn(e,t){const n=Object.create(null),i=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}function Kt(e){if(Ue(e)){const t={};for(let n=0;n{if(n){const i=n.split(xd);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function At(e){let t="";if(Mt(e))t=e;else if(Ue(e))for(let n=0;nAr(n,t))}const ce=e=>Mt(e)?e:e==null?"":Ue(e)||Tt(e)&&(e.toString===jl||!Je(e.toString))?JSON.stringify(e,Fl,2):String(e),Fl=(e,t)=>t&&t.__v_isRef?Fl(e,t.value):er(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[i,r])=>(n[`${i} =>`]=r,n),{})}:tr(t)?{[`Set(${t.size})`]:[...t.values()]}:Tt(t)&&!Ue(t)&&!$l(t)?String(t):t,wt={},Qi=[],Dn=()=>{},Od=()=>!1,Dd=/^on[^a-z]/,ws=e=>Dd.test(e),jo=e=>e.startsWith("onUpdate:"),Gt=Object.assign,$o=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Pd=Object.prototype.hasOwnProperty,nt=(e,t)=>Pd.call(e,t),Ue=Array.isArray,er=e=>Or(e)==="[object Map]",tr=e=>Or(e)==="[object Set]",Hl=e=>Or(e)==="[object Date]",Je=e=>typeof e=="function",Mt=e=>typeof e=="string",Lr=e=>typeof e=="symbol",Tt=e=>e!==null&&typeof e=="object",Bl=e=>Tt(e)&&Je(e.then)&&Je(e.catch),jl=Object.prototype.toString,Or=e=>jl.call(e),Id=e=>Or(e).slice(8,-1),$l=e=>Or(e)==="[object Object]",Uo=e=>Mt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ts=Tn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),_s=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Nd=/-(\w)/g,Un=_s(e=>e.replace(Nd,(t,n)=>n?n.toUpperCase():"")),Rd=/\B([A-Z])/g,nr=_s(e=>e.replace(Rd,"-$1").toLowerCase()),Es=_s(e=>e.charAt(0).toUpperCase()+e.slice(1)),Wo=_s(e=>e?`on${Es(e)}`:""),xs=(e,t)=>!Object.is(e,t),Ss=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},As=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Ul;const Md=()=>Ul||(Ul=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Pn;class Fd{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Pn,!t&&Pn&&(this.index=(Pn.scopes||(Pn.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Pn;try{return Pn=this,t()}finally{Pn=n}}}on(){Pn=this}off(){Pn=this.parent}stop(t){if(this._active){let n,i;for(n=0,i=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Wl=e=>(e.w&gi)>0,Vl=e=>(e.n&gi)>0,jd=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let i=0;i{(g==="length"||g>=d)&&c.push(m)})}else switch(n!==void 0&&c.push(l.get(n)),t){case"add":Ue(e)?Uo(n)&&c.push(l.get("length")):(c.push(l.get(Li)),er(e)&&c.push(l.get(zo)));break;case"delete":Ue(e)||(c.push(l.get(Li)),er(e)&&c.push(l.get(zo)));break;case"set":er(e)&&c.push(l.get(Li));break}if(c.length===1)c[0]&&Yo(c[0]);else{const d=[];for(const m of c)m&&d.push(...m);Yo(Vo(d))}}function Yo(e,t){const n=Ue(e)?e:[...e];for(const i of n)i.computed&&Xl(i);for(const i of n)i.computed||Xl(i)}function Xl(e,t){(e!==In||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Ud=Tn("__proto__,__v_isRef,__isVue"),Yl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Lr)),Wd=Go(),Vd=Go(!1,!0),Kd=Go(!0),Gl=qd();function qd(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const i=ht(this);for(let o=0,l=this.length;o{e[t]=function(...n){ir();const i=ht(this)[t].apply(this,n);return rr(),i}}),e}function zd(e){const t=ht(this);return tn(t,"has",e),t.hasOwnProperty(e)}function Go(e=!1,t=!1){return function(i,r,o){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&o===(e?t?up:su:t?ru:iu).get(i))return i;const l=Ue(i);if(!e){if(l&&nt(Gl,r))return Reflect.get(Gl,r,o);if(r==="hasOwnProperty")return zd}const c=Reflect.get(i,r,o);return(Lr(r)?Yl.has(r):Ud(r))||(e||tn(i,"get",r),t)?c:Jt(c)?l&&Uo(r)?c:c.value:Tt(c)?e?ou(c):Qo(c):c}}const Xd=Jl(),Yd=Jl(!0);function Jl(e=!1){return function(n,i,r,o){let l=n[i];if(Pr(l)&&Jt(l)&&!Jt(r))return!1;if(!e&&(!ta(r)&&!Pr(r)&&(l=ht(l),r=ht(r)),!Ue(n)&&Jt(l)&&!Jt(r)))return l.value=r,!0;const c=Ue(n)&&Uo(i)?Number(i)e,Ls=e=>Reflect.getPrototypeOf(e);function Os(e,t,n=!1,i=!1){e=e.__v_raw;const r=ht(e),o=ht(t);n||(t!==o&&tn(r,"get",t),tn(r,"get",o));const{has:l}=Ls(r),c=i?Jo:n?ia:na;if(l.call(r,t))return c(e.get(t));if(l.call(r,o))return c(e.get(o));e!==r&&e.get(t)}function Ds(e,t=!1){const n=this.__v_raw,i=ht(n),r=ht(e);return t||(e!==r&&tn(i,"has",e),tn(i,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function Ps(e,t=!1){return e=e.__v_raw,!t&&tn(ht(e),"iterate",Li),Reflect.get(e,"size",e)}function Ql(e){e=ht(e);const t=ht(this);return Ls(t).has.call(t,e)||(t.add(e),ii(t,"add",e,e)),this}function eu(e,t){t=ht(t);const n=ht(this),{has:i,get:r}=Ls(n);let o=i.call(n,e);o||(e=ht(e),o=i.call(n,e));const l=r.call(n,e);return n.set(e,t),o?xs(t,l)&&ii(n,"set",e,t):ii(n,"add",e,t),this}function tu(e){const t=ht(this),{has:n,get:i}=Ls(t);let r=n.call(t,e);r||(e=ht(e),r=n.call(t,e)),i&&i.call(t,e);const o=t.delete(e);return r&&ii(t,"delete",e,void 0),o}function nu(){const e=ht(this),t=e.size!==0,n=e.clear();return t&&ii(e,"clear",void 0,void 0),n}function Is(e,t){return function(i,r){const o=this,l=o.__v_raw,c=ht(l),d=t?Jo:e?ia:na;return!e&&tn(c,"iterate",Li),l.forEach((m,g)=>i.call(r,d(m),d(g),o))}}function Ns(e,t,n){return function(...i){const r=this.__v_raw,o=ht(r),l=er(o),c=e==="entries"||e===Symbol.iterator&&l,d=e==="keys"&&l,m=r[e](...i),g=n?Jo:t?ia:na;return!t&&tn(o,"iterate",d?zo:Li),{next(){const{value:w,done:T}=m.next();return T?{value:w,done:T}:{value:c?[g(w[0]),g(w[1])]:g(w),done:T}},[Symbol.iterator](){return this}}}}function vi(e){return function(...t){return e==="delete"?!1:this}}function tp(){const e={get(o){return Os(this,o)},get size(){return Ps(this)},has:Ds,add:Ql,set:eu,delete:tu,clear:nu,forEach:Is(!1,!1)},t={get(o){return Os(this,o,!1,!0)},get size(){return Ps(this)},has:Ds,add:Ql,set:eu,delete:tu,clear:nu,forEach:Is(!1,!0)},n={get(o){return Os(this,o,!0)},get size(){return Ps(this,!0)},has(o){return Ds.call(this,o,!0)},add:vi("add"),set:vi("set"),delete:vi("delete"),clear:vi("clear"),forEach:Is(!0,!1)},i={get(o){return Os(this,o,!0,!0)},get size(){return Ps(this,!0)},has(o){return Ds.call(this,o,!0)},add:vi("add"),set:vi("set"),delete:vi("delete"),clear:vi("clear"),forEach:Is(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Ns(o,!1,!1),n[o]=Ns(o,!0,!1),t[o]=Ns(o,!1,!0),i[o]=Ns(o,!0,!0)}),[e,n,t,i]}const[np,ip,rp,sp]=tp();function Zo(e,t){const n=t?e?sp:rp:e?ip:np;return(i,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?i:Reflect.get(nt(n,r)&&r in i?n:i,r,o)}const op={get:Zo(!1,!1)},ap={get:Zo(!1,!0)},lp={get:Zo(!0,!1)},iu=new WeakMap,ru=new WeakMap,su=new WeakMap,up=new WeakMap;function cp(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function fp(e){return e.__v_skip||!Object.isExtensible(e)?0:cp(Id(e))}function Qo(e){return Pr(e)?e:ea(e,!1,Zl,op,iu)}function dp(e){return ea(e,!1,ep,ap,ru)}function ou(e){return ea(e,!0,Qd,lp,su)}function ea(e,t,n,i,r){if(!Tt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const l=fp(e);if(l===0)return e;const c=new Proxy(e,l===2?i:n);return r.set(e,c),c}function sr(e){return Pr(e)?sr(e.__v_raw):!!(e&&e.__v_isReactive)}function Pr(e){return!!(e&&e.__v_isReadonly)}function ta(e){return!!(e&&e.__v_isShallow)}function au(e){return sr(e)||Pr(e)}function ht(e){const t=e&&e.__v_raw;return t?ht(t):e}function lu(e){return ks(e,"__v_skip",!0),e}const na=e=>Tt(e)?Qo(e):e,ia=e=>Tt(e)?ou(e):e;function pp(e){mi&&In&&(e=ht(e),zl(e.dep||(e.dep=Vo())))}function hp(e,t){e=ht(e);const n=e.dep;n&&Yo(n)}function Jt(e){return!!(e&&e.__v_isRef===!0)}function gp(e){return Jt(e)?e.value:e}const mp={get:(e,t,n)=>gp(Reflect.get(e,t,n)),set:(e,t,n,i)=>{const r=e[t];return Jt(r)&&!Jt(n)?(r.value=n,!0):Reflect.set(e,t,n,i)}};function uu(e){return sr(e)?e:new Proxy(e,mp)}var cu;class vp{constructor(t,n,i,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[cu]=!1,this._dirty=!0,this.effect=new Xo(t,()=>{this._dirty||(this._dirty=!0,hp(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=i}get value(){const t=ht(this);return pp(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}cu="__v_isReadonly";function yp(e,t,n=!1){let i,r;const o=Je(e);return o?(i=e,r=Dn):(i=e.get,r=e.set),new vp(i,r,o||!r,n)}function r1(e,...t){}function yi(e,t,n,i){let r;try{r=i?e(...i):e()}catch(o){Rs(o,t,n)}return r}function Nn(e,t,n,i){if(Je(e)){const o=yi(e,t,n,i);return o&&Bl(o)&&o.catch(l=>{Rs(l,t,n)}),o}const r=[];for(let o=0;o>>1;Nr(qt[i])Wn&&qt.splice(t,1)}function _p(e){Ue(e)?or.push(...e):(!ri||!ri.includes(e,e.allowRecurse?Oi+1:Oi))&&or.push(e),du()}function pu(e,t=Ir?Wn+1:0){for(;tNr(n)-Nr(i)),Oi=0;Oie.id==null?1/0:e.id,Ep=(e,t)=>{const n=Nr(e)-Nr(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function gu(e){ra=!1,Ir=!0,qt.sort(Ep);const t=Dn;try{for(Wn=0;WnMt(N)?N.trim():N)),w&&(r=n.map(As))}let c,d=i[c=Wo(t)]||i[c=Wo(Un(t))];!d&&o&&(d=i[c=Wo(nr(t))]),d&&Nn(d,e,6,r);const m=i[c+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,Nn(m,e,6,r)}}function mu(e,t,n=!1){const i=t.emitsCache,r=i.get(e);if(r!==void 0)return r;const o=e.emits;let l={},c=!1;if(!Je(e)){const d=m=>{const g=mu(m,t,!0);g&&(c=!0,Gt(l,g))};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}return!o&&!c?(Tt(e)&&i.set(e,null),null):(Ue(o)?o.forEach(d=>l[d]=null):Gt(l,o),Tt(e)&&i.set(e,l),l)}function Ms(e,t){return!e||!ws(t)?!1:(t=t.slice(2).replace(/Once$/,""),nt(e,t[0].toLowerCase()+t.slice(1))||nt(e,nr(t))||nt(e,t))}let _n=null,vu=null;function Fs(e){const t=_n;return _n=e,vu=e&&e.type.__scopeId||null,t}function Sp(e,t=_n,n){if(!t||e._n)return e;const i=(...r)=>{i._d&&$u(-1);const o=Fs(t);let l;try{l=e(...r)}finally{Fs(o),i._d&&$u(1)}return l};return i._n=!0,i._c=!0,i._d=!0,i}function s1(){}function aa(e){const{type:t,vnode:n,proxy:i,withProxy:r,props:o,propsOptions:[l],slots:c,attrs:d,emit:m,render:g,renderCache:w,data:T,setupState:N,ctx:S,inheritAttrs:O}=e;let U,P;const Z=Fs(e);try{if(n.shapeFlag&4){const L=r||i;U=Vn(g.call(L,L,w,o,N,T,S)),P=d}else{const L=t;U=Vn(L.length>1?L(o,{attrs:d,slots:c,emit:m}):L(o,null)),P=t.props?d:kp(d)}}catch(L){Mr.length=0,Rs(L,e,1),U=ve(Ri)}let se=U;if(P&&O!==!1){const L=Object.keys(P),{shapeFlag:ke}=se;L.length&&ke&7&&(l&&L.some(jo)&&(P=Ap(P,l)),se=ar(se,P))}return n.dirs&&(se=ar(se),se.dirs=se.dirs?se.dirs.concat(n.dirs):n.dirs),n.transition&&(se.transition=n.transition),U=se,Fs(Z),U}const kp=e=>{let t;for(const n in e)(n==="class"||n==="style"||ws(n))&&((t||(t={}))[n]=e[n]);return t},Ap=(e,t)=>{const n={};for(const i in e)(!jo(i)||!(i.slice(9)in t))&&(n[i]=e[i]);return n};function Lp(e,t,n){const{props:i,children:r,component:o}=e,{props:l,children:c,patchFlag:d}=t,m=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&d>=0){if(d&1024)return!0;if(d&16)return i?yu(i,l,m):!!l;if(d&8){const g=t.dynamicProps;for(let w=0;we.__isSuspense;function Pp(e,t){t&&t.pendingBranch?Ue(e)?t.effects.push(...e):t.effects.push(e):_p(e)}function Ip(e,t){if(It){let n=It.provides;const i=It.parent&&It.parent.provides;i===n&&(n=It.provides=Object.create(i)),n[e]=t}}function Hs(e,t,n=!1){const i=It||_n;if(i){const r=i.parent==null?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&Je(t)?t.call(i.proxy):t}}const Bs={};function la(e,t,n){return bu(e,t,n)}function bu(e,t,{immediate:n,deep:i,flush:r,onTrack:o,onTrigger:l}=wt){const c=Bd()===(It==null?void 0:It.scope)?It:null;let d,m=!1,g=!1;if(Jt(e)?(d=()=>e.value,m=ta(e)):sr(e)?(d=()=>e,i=!0):Ue(e)?(g=!0,m=e.some(se=>sr(se)||ta(se)),d=()=>e.map(se=>{if(Jt(se))return se.value;if(sr(se))return Di(se);if(Je(se))return yi(se,c,2)})):Je(e)?t?d=()=>yi(e,c,2):d=()=>{if(!(c&&c.isUnmounted))return w&&w(),Nn(e,c,3,[T])}:d=Dn,t&&i){const se=d;d=()=>Di(se())}let w,T=se=>{w=P.onStop=()=>{yi(se,c,4)}},N;if(Br)if(T=Dn,t?n&&Nn(t,c,3,[d(),g?[]:void 0,T]):d(),r==="sync"){const se=Ah();N=se.__watcherHandles||(se.__watcherHandles=[])}else return Dn;let S=g?new Array(e.length).fill(Bs):Bs;const O=()=>{if(P.active)if(t){const se=P.run();(i||m||(g?se.some((L,ke)=>xs(L,S[ke])):xs(se,S)))&&(w&&w(),Nn(t,c,3,[se,S===Bs?void 0:g&&S[0]===Bs?[]:S,T]),S=se)}else P.run()};O.allowRecurse=!!t;let U;r==="sync"?U=O:r==="post"?U=()=>nn(O,c&&c.suspense):(O.pre=!0,c&&(O.id=c.uid),U=()=>oa(O));const P=new Xo(d,U);t?n?O():S=P.run():r==="post"?nn(P.run.bind(P),c&&c.suspense):P.run();const Z=()=>{P.stop(),c&&c.scope&&$o(c.scope.effects,P)};return N&&N.push(Z),Z}function Np(e,t,n){const i=this.proxy,r=Mt(e)?e.includes(".")?Cu(i,e):()=>i[e]:e.bind(i,i);let o;Je(t)?o=t:(o=t.handler,n=t);const l=It;lr(this);const c=bu(r,o.bind(i),n);return l?lr(l):Mi(),c}function Cu(e,t){const n=t.split(".");return()=>{let i=e;for(let r=0;r{Di(n,t)});else if($l(e))for(const n in e)Di(e[n],t);return e}function Rp(e){return Je(e)?{setup:e,name:e.name}:e}const js=e=>!!e.type.__asyncLoader,wu=e=>e.type.__isKeepAlive;function Mp(e,t){Tu(e,"a",t)}function Fp(e,t){Tu(e,"da",t)}function Tu(e,t,n=It){const i=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if($s(t,i,n),n){let r=n.parent;for(;r&&r.parent;)wu(r.parent.vnode)&&Hp(i,t,n,r),r=r.parent}}function Hp(e,t,n,i){const r=$s(t,e,i,!0);_u(()=>{$o(i[t],r)},n)}function $s(e,t,n=It,i=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;ir(),lr(n);const c=Nn(t,n,e,l);return Mi(),rr(),c});return i?r.unshift(o):r.push(o),o}}const si=e=>(t,n=It)=>(!Br||e==="sp")&&$s(e,(...i)=>t(...i),n),Bp=si("bm"),jp=si("m"),$p=si("bu"),Up=si("u"),Wp=si("bum"),_u=si("um"),Vp=si("sp"),Kp=si("rtg"),qp=si("rtc");function zp(e,t=It){$s("ec",e,t)}function fe(e,t){const n=_n;if(n===null)return e;const i=zs(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let o=0;ot(l,c,void 0,o&&o[c]));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,d=l.length;ce?Ku(e)?zs(e)||e.proxy:ua(e.parent):null,Rr=Gt(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=>ua(e.parent),$root:e=>ua(e.root),$emit:e=>e.emit,$options:e=>da(e),$forceUpdate:e=>e.f||(e.f=()=>oa(e.update)),$nextTick:e=>e.n||(e.n=Cp.bind(e.proxy)),$watch:e=>Np.bind(e)}),ca=(e,t)=>e!==wt&&!e.__isScriptSetup&&nt(e,t),Gp={get({_:e},t){const{ctx:n,setupState:i,data:r,props:o,accessCache:l,type:c,appContext:d}=e;let m;if(t[0]!=="$"){const N=l[t];if(N!==void 0)switch(N){case 1:return i[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(ca(i,t))return l[t]=1,i[t];if(r!==wt&&nt(r,t))return l[t]=2,r[t];if((m=e.propsOptions[0])&&nt(m,t))return l[t]=3,o[t];if(n!==wt&&nt(n,t))return l[t]=4,n[t];fa&&(l[t]=0)}}const g=Rr[t];let w,T;if(g)return t==="$attrs"&&tn(e,"get",t),g(e);if((w=c.__cssModules)&&(w=w[t]))return w;if(n!==wt&&nt(n,t))return l[t]=4,n[t];if(T=d.config.globalProperties,nt(T,t))return T[t]},set({_:e},t,n){const{data:i,setupState:r,ctx:o}=e;return ca(r,t)?(r[t]=n,!0):i!==wt&&nt(i,t)?(i[t]=n,!0):nt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:i,appContext:r,propsOptions:o}},l){let c;return!!n[l]||e!==wt&&nt(e,l)||ca(t,l)||(c=o[0])&&nt(c,l)||nt(i,l)||nt(Rr,l)||nt(r.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:nt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let fa=!0;function Jp(e){const t=da(e),n=e.proxy,i=e.ctx;fa=!1,t.beforeCreate&&ku(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:l,watch:c,provide:d,inject:m,created:g,beforeMount:w,mounted:T,beforeUpdate:N,updated:S,activated:O,deactivated:U,beforeDestroy:P,beforeUnmount:Z,destroyed:se,unmounted:L,render:ke,renderTracked:p,renderTriggered:Pe,errorCaptured:Me,serverPrefetch:ne,expose:Y,inheritAttrs:Ee,components:De,directives:Te,filters:tt}=t;if(m&&Zp(m,i,null,e.appContext.config.unwrapInjectedRef),l)for(const Ie in l){const be=l[Ie];Je(be)&&(i[Ie]=be.bind(n))}if(r){const Ie=r.call(n,n);Tt(Ie)&&(e.data=Qo(Ie))}if(fa=!0,o)for(const Ie in o){const be=o[Ie],st=Je(be)?be.bind(n,n):Je(be.get)?be.get.bind(n,n):Dn,St=!Je(be)&&Je(be.set)?be.set.bind(n):Dn,ot=Sh({get:st,set:St});Object.defineProperty(i,Ie,{enumerable:!0,configurable:!0,get:()=>ot.value,set:we=>ot.value=we})}if(c)for(const Ie in c)Au(c[Ie],i,n,Ie);if(d){const Ie=Je(d)?d.call(n):d;Reflect.ownKeys(Ie).forEach(be=>{Ip(be,Ie[be])})}g&&ku(g,e,"c");function $e(Ie,be){Ue(be)?be.forEach(st=>Ie(st.bind(n))):be&&Ie(be.bind(n))}if($e(Bp,w),$e(jp,T),$e($p,N),$e(Up,S),$e(Mp,O),$e(Fp,U),$e(zp,Me),$e(qp,p),$e(Kp,Pe),$e(Wp,Z),$e(_u,L),$e(Vp,ne),Ue(Y))if(Y.length){const Ie=e.exposed||(e.exposed={});Y.forEach(be=>{Object.defineProperty(Ie,be,{get:()=>n[be],set:st=>n[be]=st})})}else e.exposed||(e.exposed={});ke&&e.render===Dn&&(e.render=ke),Ee!=null&&(e.inheritAttrs=Ee),De&&(e.components=De),Te&&(e.directives=Te)}function Zp(e,t,n=Dn,i=!1){Ue(e)&&(e=pa(e));for(const r in e){const o=e[r];let l;Tt(o)?"default"in o?l=Hs(o.from||r,o.default,!0):l=Hs(o.from||r):l=Hs(o),Jt(l)&&i?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>l.value,set:c=>l.value=c}):t[r]=l}}function ku(e,t,n){Nn(Ue(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,n)}function Au(e,t,n,i){const r=i.includes(".")?Cu(n,i):()=>n[i];if(Mt(e)){const o=t[e];Je(o)&&la(r,o)}else if(Je(e))la(r,e.bind(n));else if(Tt(e))if(Ue(e))e.forEach(o=>Au(o,t,n,i));else{const o=Je(e.handler)?e.handler.bind(n):t[e.handler];Je(o)&&la(r,o,e)}}function da(e){const t=e.type,{mixins:n,extends:i}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,c=o.get(t);let d;return c?d=c:!r.length&&!n&&!i?d=t:(d={},r.length&&r.forEach(m=>Ws(d,m,l,!0)),Ws(d,t,l)),Tt(t)&&o.set(t,d),d}function Ws(e,t,n,i=!1){const{mixins:r,extends:o}=t;o&&Ws(e,o,n,!0),r&&r.forEach(l=>Ws(e,l,n,!0));for(const l in t)if(!(i&&l==="expose")){const c=Qp[l]||n&&n[l];e[l]=c?c(e[l],t[l]):t[l]}return e}const Qp={data:Lu,props:Ii,emits:Ii,methods:Ii,computed:Ii,beforeCreate:Zt,created:Zt,beforeMount:Zt,mounted:Zt,beforeUpdate:Zt,updated:Zt,beforeDestroy:Zt,beforeUnmount:Zt,destroyed:Zt,unmounted:Zt,activated:Zt,deactivated:Zt,errorCaptured:Zt,serverPrefetch:Zt,components:Ii,directives:Ii,watch:th,provide:Lu,inject:eh};function Lu(e,t){return t?e?function(){return Gt(Je(e)?e.call(this,this):e,Je(t)?t.call(this,this):t)}:t:e}function eh(e,t){return Ii(pa(e),pa(t))}function pa(e){if(Ue(e)){const t={};for(let n=0;n0)&&!(l&16)){if(l&8){const g=e.vnode.dynamicProps;for(let w=0;w{d=!0;const[T,N]=Du(w,t,!0);Gt(l,T),N&&c.push(...N)};!n&&t.mixins.length&&t.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}if(!o&&!d)return Tt(e)&&i.set(e,Qi),Qi;if(Ue(o))for(let g=0;g-1,N[1]=O<0||S-1||nt(N,"default"))&&c.push(w)}}}const m=[l,c];return Tt(e)&&i.set(e,m),m}function Pu(e){return e[0]!=="$"}function Iu(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Nu(e,t){return Iu(e)===Iu(t)}function Ru(e,t){return Ue(t)?t.findIndex(n=>Nu(n,e)):Je(t)&&Nu(t,e)?0:-1}const Mu=e=>e[0]==="_"||e==="$stable",ga=e=>Ue(e)?e.map(Vn):[Vn(e)],rh=(e,t,n)=>{if(t._n)return t;const i=Sp((...r)=>ga(t(...r)),n);return i._c=!1,i},Fu=(e,t,n)=>{const i=e._ctx;for(const r in e){if(Mu(r))continue;const o=e[r];if(Je(o))t[r]=rh(r,o,i);else if(o!=null){const l=ga(o);t[r]=()=>l}}},Hu=(e,t)=>{const n=ga(t);e.slots.default=()=>n},sh=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ht(t),ks(t,"_",n)):Fu(t,e.slots={})}else e.slots={},t&&Hu(e,t);ks(e.slots,Ks,1)},oh=(e,t,n)=>{const{vnode:i,slots:r}=e;let o=!0,l=wt;if(i.shapeFlag&32){const c=t._;c?n&&c===1?o=!1:(Gt(r,t),!n&&c===1&&delete r._):(o=!t.$stable,Fu(t,r)),l=t}else t&&(Hu(e,t),l={default:1});if(o)for(const c in r)!Mu(c)&&!(c in l)&&delete r[c]};function Bu(){return{app:null,config:{isNativeTag:Od,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ah=0;function lh(e,t){return function(i,r=null){Je(i)||(i=Object.assign({},i)),r!=null&&!Tt(r)&&(r=null);const o=Bu(),l=new Set;let c=!1;const d=o.app={_uid:ah++,_component:i,_props:r,_container:null,_context:o,_instance:null,version:Lh,get config(){return o.config},set config(m){},use(m,...g){return l.has(m)||(m&&Je(m.install)?(l.add(m),m.install(d,...g)):Je(m)&&(l.add(m),m(d,...g))),d},mixin(m){return o.mixins.includes(m)||o.mixins.push(m),d},component(m,g){return g?(o.components[m]=g,d):o.components[m]},directive(m,g){return g?(o.directives[m]=g,d):o.directives[m]},mount(m,g,w){if(!c){const T=ve(i,r);return T.appContext=o,g&&t?t(T,m):e(T,m,w),c=!0,d._container=m,m.__vue_app__=d,zs(T.component)||T.component.proxy}},unmount(){c&&(e(null,d._container),delete d._container.__vue_app__)},provide(m,g){return o.provides[m]=g,d}};return d}}function ma(e,t,n,i,r=!1){if(Ue(e)){e.forEach((T,N)=>ma(T,t&&(Ue(t)?t[N]:t),n,i,r));return}if(js(i)&&!r)return;const o=i.shapeFlag&4?zs(i.component)||i.component.proxy:i.el,l=r?null:o,{i:c,r:d}=e,m=t&&t.r,g=c.refs===wt?c.refs={}:c.refs,w=c.setupState;if(m!=null&&m!==d&&(Mt(m)?(g[m]=null,nt(w,m)&&(w[m]=null)):Jt(m)&&(m.value=null)),Je(d))yi(d,c,12,[l,g]);else{const T=Mt(d),N=Jt(d);if(T||N){const S=()=>{if(e.f){const O=T?nt(w,d)?w[d]:g[d]:d.value;r?Ue(O)&&$o(O,o):Ue(O)?O.includes(o)||O.push(o):T?(g[d]=[o],nt(w,d)&&(w[d]=g[d])):(d.value=[o],e.k&&(g[e.k]=d.value))}else T?(g[d]=l,nt(w,d)&&(w[d]=l)):N&&(d.value=l,e.k&&(g[e.k]=l))};l?(S.id=-1,nn(S,n)):S()}}}const nn=Pp;function uh(e){return ch(e)}function ch(e,t){const n=Md();n.__VUE__=!0;const{insert:i,remove:r,patchProp:o,createElement:l,createText:c,createComment:d,setText:m,setElementText:g,parentNode:w,nextSibling:T,setScopeId:N=Dn,insertStaticContent:S}=e,O=(k,D,W,J=null,H=null,V=null,le=!1,ie=null,re=!!D.dynamicChildren)=>{if(k===D)return;k&&!Hr(k,D)&&(J=Fe(k),we(k,H,V,!0),k=null),D.patchFlag===-2&&(re=!1,D.dynamicChildren=null);const{type:Q,ref:xe,shapeFlag:ge}=D;switch(Q){case Vs:U(k,D,W,J);break;case Ri:P(k,D,W,J);break;case va:k==null&&Z(D,W,J,le);break;case Re:De(k,D,W,J,H,V,le,ie,re);break;default:ge&1?ke(k,D,W,J,H,V,le,ie,re):ge&6?Te(k,D,W,J,H,V,le,ie,re):(ge&64||ge&128)&&Q.process(k,D,W,J,H,V,le,ie,re,dt)}xe!=null&&H&&ma(xe,k&&k.ref,V,D||k,!D)},U=(k,D,W,J)=>{if(k==null)i(D.el=c(D.children),W,J);else{const H=D.el=k.el;D.children!==k.children&&m(H,D.children)}},P=(k,D,W,J)=>{k==null?i(D.el=d(D.children||""),W,J):D.el=k.el},Z=(k,D,W,J)=>{[k.el,k.anchor]=S(k.children,D,W,J,k.el,k.anchor)},se=({el:k,anchor:D},W,J)=>{let H;for(;k&&k!==D;)H=T(k),i(k,W,J),k=H;i(D,W,J)},L=({el:k,anchor:D})=>{let W;for(;k&&k!==D;)W=T(k),r(k),k=W;r(D)},ke=(k,D,W,J,H,V,le,ie,re)=>{le=le||D.type==="svg",k==null?p(D,W,J,H,V,le,ie,re):ne(k,D,H,V,le,ie,re)},p=(k,D,W,J,H,V,le,ie)=>{let re,Q;const{type:xe,props:ge,shapeFlag:Ce,transition:Le,dirs:Ke}=k;if(re=k.el=l(k.type,V,ge&&ge.is,ge),Ce&8?g(re,k.children):Ce&16&&Me(k.children,re,null,J,H,V&&xe!=="foreignObject",le,ie),Ke&&Pi(k,null,J,"created"),Pe(re,k,k.scopeId,le,J),ge){for(const Ze in ge)Ze!=="value"&&!Ts(Ze)&&o(re,Ze,null,ge[Ze],V,k.children,J,H,_e);"value"in ge&&o(re,"value",null,ge.value),(Q=ge.onVnodeBeforeMount)&&Kn(Q,J,k)}Ke&&Pi(k,null,J,"beforeMount");const at=(!H||H&&!H.pendingBranch)&&Le&&!Le.persisted;at&&Le.beforeEnter(re),i(re,D,W),((Q=ge&&ge.onVnodeMounted)||at||Ke)&&nn(()=>{Q&&Kn(Q,J,k),at&&Le.enter(re),Ke&&Pi(k,null,J,"mounted")},H)},Pe=(k,D,W,J,H)=>{if(W&&N(k,W),J)for(let V=0;V{for(let Q=re;Q{const ie=D.el=k.el;let{patchFlag:re,dynamicChildren:Q,dirs:xe}=D;re|=k.patchFlag&16;const ge=k.props||wt,Ce=D.props||wt;let Le;W&&Ni(W,!1),(Le=Ce.onVnodeBeforeUpdate)&&Kn(Le,W,D,k),xe&&Pi(D,k,W,"beforeUpdate"),W&&Ni(W,!0);const Ke=H&&D.type!=="foreignObject";if(Q?Y(k.dynamicChildren,Q,ie,W,J,Ke,V):le||be(k,D,ie,null,W,J,Ke,V,!1),re>0){if(re&16)Ee(ie,D,ge,Ce,W,J,H);else if(re&2&&ge.class!==Ce.class&&o(ie,"class",null,Ce.class,H),re&4&&o(ie,"style",ge.style,Ce.style,H),re&8){const at=D.dynamicProps;for(let Ze=0;Ze{Le&&Kn(Le,W,D,k),xe&&Pi(D,k,W,"updated")},J)},Y=(k,D,W,J,H,V,le)=>{for(let ie=0;ie{if(W!==J){if(W!==wt)for(const ie in W)!Ts(ie)&&!(ie in J)&&o(k,ie,W[ie],null,le,D.children,H,V,_e);for(const ie in J){if(Ts(ie))continue;const re=J[ie],Q=W[ie];re!==Q&&ie!=="value"&&o(k,ie,Q,re,le,D.children,H,V,_e)}"value"in J&&o(k,"value",W.value,J.value)}},De=(k,D,W,J,H,V,le,ie,re)=>{const Q=D.el=k?k.el:c(""),xe=D.anchor=k?k.anchor:c("");let{patchFlag:ge,dynamicChildren:Ce,slotScopeIds:Le}=D;Le&&(ie=ie?ie.concat(Le):Le),k==null?(i(Q,W,J),i(xe,W,J),Me(D.children,W,xe,H,V,le,ie,re)):ge>0&&ge&64&&Ce&&k.dynamicChildren?(Y(k.dynamicChildren,Ce,W,H,V,le,ie),(D.key!=null||H&&D===H.subTree)&&ju(k,D,!0)):be(k,D,W,xe,H,V,le,ie,re)},Te=(k,D,W,J,H,V,le,ie,re)=>{D.slotScopeIds=ie,k==null?D.shapeFlag&512?H.ctx.activate(D,W,J,le,re):tt(D,W,J,H,V,le,re):ft(k,D,re)},tt=(k,D,W,J,H,V,le)=>{const ie=k.component=bh(k,J,H);if(wu(k)&&(ie.ctx.renderer=dt),Ch(ie),ie.asyncDep){if(H&&H.registerDep(ie,$e),!k.el){const re=ie.subTree=ve(Ri);P(null,re,D,W)}return}$e(ie,k,D,W,H,V,le)},ft=(k,D,W)=>{const J=D.component=k.component;if(Lp(k,D,W))if(J.asyncDep&&!J.asyncResolved){Ie(J,D,W);return}else J.next=D,Tp(J.update),J.update();else D.el=k.el,J.vnode=D},$e=(k,D,W,J,H,V,le)=>{const ie=()=>{if(k.isMounted){let{next:xe,bu:ge,u:Ce,parent:Le,vnode:Ke}=k,at=xe,Ze;Ni(k,!1),xe?(xe.el=Ke.el,Ie(k,xe,le)):xe=Ke,ge&&Ss(ge),(Ze=xe.props&&xe.props.onVnodeBeforeUpdate)&&Kn(Ze,Le,xe,Ke),Ni(k,!0);const Et=aa(k),Xt=k.subTree;k.subTree=Et,O(Xt,Et,w(Xt.el),Fe(Xt),k,H,V),xe.el=Et.el,at===null&&Op(k,Et.el),Ce&&nn(Ce,H),(Ze=xe.props&&xe.props.onVnodeUpdated)&&nn(()=>Kn(Ze,Le,xe,Ke),H)}else{let xe;const{el:ge,props:Ce}=D,{bm:Le,m:Ke,parent:at}=k,Ze=js(D);if(Ni(k,!1),Le&&Ss(Le),!Ze&&(xe=Ce&&Ce.onVnodeBeforeMount)&&Kn(xe,at,D),Ni(k,!0),ge&&ln){const Et=()=>{k.subTree=aa(k),ln(ge,k.subTree,k,H,null)};Ze?D.type.__asyncLoader().then(()=>!k.isUnmounted&&Et()):Et()}else{const Et=k.subTree=aa(k);O(null,Et,W,J,k,H,V),D.el=Et.el}if(Ke&&nn(Ke,H),!Ze&&(xe=Ce&&Ce.onVnodeMounted)){const Et=D;nn(()=>Kn(xe,at,Et),H)}(D.shapeFlag&256||at&&js(at.vnode)&&at.vnode.shapeFlag&256)&&k.a&&nn(k.a,H),k.isMounted=!0,D=W=J=null}},re=k.effect=new Xo(ie,()=>oa(Q),k.scope),Q=k.update=()=>re.run();Q.id=k.uid,Ni(k,!0),Q()},Ie=(k,D,W)=>{D.component=k;const J=k.vnode.props;k.vnode=D,k.next=null,ih(k,D.props,J,W),oh(k,D.children,W),ir(),pu(),rr()},be=(k,D,W,J,H,V,le,ie,re=!1)=>{const Q=k&&k.children,xe=k?k.shapeFlag:0,ge=D.children,{patchFlag:Ce,shapeFlag:Le}=D;if(Ce>0){if(Ce&128){St(Q,ge,W,J,H,V,le,ie,re);return}else if(Ce&256){st(Q,ge,W,J,H,V,le,ie,re);return}}Le&8?(xe&16&&_e(Q,H,V),ge!==Q&&g(W,ge)):xe&16?Le&16?St(Q,ge,W,J,H,V,le,ie,re):_e(Q,H,V,!0):(xe&8&&g(W,""),Le&16&&Me(ge,W,J,H,V,le,ie,re))},st=(k,D,W,J,H,V,le,ie,re)=>{k=k||Qi,D=D||Qi;const Q=k.length,xe=D.length,ge=Math.min(Q,xe);let Ce;for(Ce=0;Cexe?_e(k,H,V,!0,!1,ge):Me(D,W,J,H,V,le,ie,re,ge)},St=(k,D,W,J,H,V,le,ie,re)=>{let Q=0;const xe=D.length;let ge=k.length-1,Ce=xe-1;for(;Q<=ge&&Q<=Ce;){const Le=k[Q],Ke=D[Q]=re?bi(D[Q]):Vn(D[Q]);if(Hr(Le,Ke))O(Le,Ke,W,null,H,V,le,ie,re);else break;Q++}for(;Q<=ge&&Q<=Ce;){const Le=k[ge],Ke=D[Ce]=re?bi(D[Ce]):Vn(D[Ce]);if(Hr(Le,Ke))O(Le,Ke,W,null,H,V,le,ie,re);else break;ge--,Ce--}if(Q>ge){if(Q<=Ce){const Le=Ce+1,Ke=LeCe)for(;Q<=ge;)we(k[Q],H,V,!0),Q++;else{const Le=Q,Ke=Q,at=new Map;for(Q=Ke;Q<=Ce;Q++){const de=D[Q]=re?bi(D[Q]):Vn(D[Q]);de.key!=null&&at.set(de.key,Q)}let Ze,Et=0;const Xt=Ce-Ke+1;let ti=!1,Bn=0;const vn=new Array(Xt);for(Q=0;Q=Xt){we(de,H,V,!0);continue}let ye;if(de.key!=null)ye=at.get(de.key);else for(Ze=Ke;Ze<=Ce;Ze++)if(vn[Ze-Ke]===0&&Hr(de,D[Ze])){ye=Ze;break}ye===void 0?we(de,H,V,!0):(vn[ye-Ke]=Q+1,ye>=Bn?Bn=ye:ti=!0,O(de,D[ye],W,null,H,V,le,ie,re),Et++)}const q=ti?fh(vn):Qi;for(Ze=q.length-1,Q=Xt-1;Q>=0;Q--){const de=Ke+Q,ye=D[de],qe=de+1{const{el:V,type:le,transition:ie,children:re,shapeFlag:Q}=k;if(Q&6){ot(k.component.subTree,D,W,J);return}if(Q&128){k.suspense.move(D,W,J);return}if(Q&64){le.move(k,D,W,dt);return}if(le===Re){i(V,D,W);for(let ge=0;geie.enter(V),H);else{const{leave:ge,delayLeave:Ce,afterLeave:Le}=ie,Ke=()=>i(V,D,W),at=()=>{ge(V,()=>{Ke(),Le&&Le()})};Ce?Ce(V,Ke,at):at()}else i(V,D,W)},we=(k,D,W,J=!1,H=!1)=>{const{type:V,props:le,ref:ie,children:re,dynamicChildren:Q,shapeFlag:xe,patchFlag:ge,dirs:Ce}=k;if(ie!=null&&ma(ie,null,W,k,!0),xe&256){D.ctx.deactivate(k);return}const Le=xe&1&&Ce,Ke=!js(k);let at;if(Ke&&(at=le&&le.onVnodeBeforeUnmount)&&Kn(at,D,k),xe&6)Se(k.component,W,J);else{if(xe&128){k.suspense.unmount(W,J);return}Le&&Pi(k,null,D,"beforeUnmount"),xe&64?k.type.remove(k,D,W,H,dt,J):Q&&(V!==Re||ge>0&&ge&64)?_e(Q,D,W,!1,!0):(V===Re&&ge&384||!H&&xe&16)&&_e(re,D,W),J&&pe(k)}(Ke&&(at=le&&le.onVnodeUnmounted)||Le)&&nn(()=>{at&&Kn(at,D,k),Le&&Pi(k,null,D,"unmounted")},W)},pe=k=>{const{type:D,el:W,anchor:J,transition:H}=k;if(D===Re){he(W,J);return}if(D===va){L(k);return}const V=()=>{r(W),H&&!H.persisted&&H.afterLeave&&H.afterLeave()};if(k.shapeFlag&1&&H&&!H.persisted){const{leave:le,delayLeave:ie}=H,re=()=>le(W,V);ie?ie(k.el,V,re):re()}else V()},he=(k,D)=>{let W;for(;k!==D;)W=T(k),r(k),k=W;r(D)},Se=(k,D,W)=>{const{bum:J,scope:H,update:V,subTree:le,um:ie}=k;J&&Ss(J),H.stop(),V&&(V.active=!1,we(le,k,D,W)),ie&&nn(ie,D),nn(()=>{k.isUnmounted=!0},D),D&&D.pendingBranch&&!D.isUnmounted&&k.asyncDep&&!k.asyncResolved&&k.suspenseId===D.pendingId&&(D.deps--,D.deps===0&&D.resolve())},_e=(k,D,W,J=!1,H=!1,V=0)=>{for(let le=V;lek.shapeFlag&6?Fe(k.component.subTree):k.shapeFlag&128?k.suspense.next():T(k.anchor||k.el),ct=(k,D,W)=>{k==null?D._vnode&&we(D._vnode,null,null,!0):O(D._vnode||null,k,D,null,null,null,W),pu(),hu(),D._vnode=k},dt={p:O,um:we,m:ot,r:pe,mt:tt,mc:Me,pc:be,pbc:Y,n:Fe,o:e};let Wt,ln;return t&&([Wt,ln]=t(dt)),{render:ct,hydrate:Wt,createApp:lh(ct,Wt)}}function Ni({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ju(e,t,n=!1){const i=e.children,r=t.children;if(Ue(i)&&Ue(r))for(let o=0;o>1,e[n[c]]0&&(t[i]=n[o-1]),n[o]=i)}}for(o=n.length,l=n[o-1];o-- >0;)n[o]=l,l=t[l];return n}const dh=e=>e.__isTeleport,Re=Symbol(void 0),Vs=Symbol(void 0),Ri=Symbol(void 0),va=Symbol(void 0),Mr=[];let Rn=null;function R(e=!1){Mr.push(Rn=e?null:[])}function ph(){Mr.pop(),Rn=Mr[Mr.length-1]||null}let Fr=1;function $u(e){Fr+=e}function Uu(e){return e.dynamicChildren=Fr>0?Rn||Qi:null,ph(),Fr>0&&Rn&&Rn.push(e),e}function B(e,t,n,i,r,o){return Uu(_(e,t,n,i,r,o,!0))}function vt(e,t,n,i,r){return Uu(ve(e,t,n,i,r,!0))}function hh(e){return e?e.__v_isVNode===!0:!1}function Hr(e,t){return e.type===t.type&&e.key===t.key}const Ks="__vInternal",Wu=({key:e})=>e??null,qs=({ref:e,ref_key:t,ref_for:n})=>e!=null?Mt(e)||Jt(e)||Je(e)?{i:_n,r:e,k:t,f:!!n}:e:null;function _(e,t=null,n=null,i=0,r=null,o=e===Re?0:1,l=!1,c=!1){const d={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Wu(t),ref:t&&qs(t),scopeId:vu,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:i,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:_n};return c?(ya(d,n),o&128&&e.normalize(d)):n&&(d.shapeFlag|=Mt(n)?8:16),Fr>0&&!l&&Rn&&(d.patchFlag>0||o&6)&&d.patchFlag!==32&&Rn.push(d),d}const ve=gh;function gh(e,t=null,n=null,i=0,r=null,o=!1){if((!e||e===Yp)&&(e=Ri),hh(e)){const c=ar(e,t,!0);return n&&ya(c,n),Fr>0&&!o&&Rn&&(c.shapeFlag&6?Rn[Rn.indexOf(e)]=c:Rn.push(c)),c.patchFlag|=-2,c}if(xh(e)&&(e=e.__vccOpts),t){t=mh(t);let{class:c,style:d}=t;c&&!Mt(c)&&(t.class=At(c)),Tt(d)&&(au(d)&&!Ue(d)&&(d=Gt({},d)),t.style=Kt(d))}const l=Mt(e)?1:Dp(e)?128:dh(e)?64:Tt(e)?4:Je(e)?2:0;return _(e,t,n,i,r,l,o,!0)}function mh(e){return e?au(e)||Ks in e?Gt({},e):e:null}function ar(e,t,n=!1){const{props:i,ref:r,patchFlag:o,children:l}=e,c=t?Vu(i||{},t):i;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Wu(c),ref:t&&t.ref?n&&r?Ue(r)?r.concat(qs(t)):[r,qs(t)]:qs(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Re?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ar(e.ssContent),ssFallback:e.ssFallback&&ar(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function $t(e=" ",t=0){return ve(Vs,null,e,t)}function ze(e="",t=!1){return t?(R(),vt(Ri,null,e)):ve(Ri,null,e)}function Vn(e){return e==null||typeof e=="boolean"?ve(Ri):Ue(e)?ve(Re,null,e.slice()):typeof e=="object"?bi(e):ve(Vs,null,String(e))}function bi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ar(e)}function ya(e,t){let n=0;const{shapeFlag:i}=e;if(t==null)t=null;else if(Ue(t))n=16;else if(typeof t=="object")if(i&65){const r=t.default;r&&(r._c&&(r._d=!1),ya(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Ks in t)?t._ctx=_n:r===3&&_n&&(_n.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Je(t)?(t={default:t,_ctx:_n},n=32):(t=String(t),i&64?(n=16,t=[$t(t)]):n=8);e.children=t,e.shapeFlag|=n}function Vu(...e){const t={};for(let n=0;n{It=e,e.scope.on()},Mi=()=>{It&&It.scope.off(),It=null};function Ku(e){return e.vnode.shapeFlag&4}let Br=!1;function Ch(e,t=!1){Br=t;const{props:n,children:i}=e.vnode,r=Ku(e);nh(e,n,r,t),sh(e,i);const o=r?wh(e,t):void 0;return Br=!1,o}function wh(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=lu(new Proxy(e.ctx,Gp));const{setup:i}=n;if(i){const r=e.setupContext=i.length>1?_h(e):null;lr(e),ir();const o=yi(i,e,0,[e.props,r]);if(rr(),Mi(),Bl(o)){if(o.then(Mi,Mi),t)return o.then(l=>{qu(e,l,t)}).catch(l=>{Rs(l,e,0)});e.asyncDep=o}else qu(e,o,t)}else Xu(e,t)}function qu(e,t,n){Je(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Tt(t)&&(e.setupState=uu(t)),Xu(e,n)}let zu;function Xu(e,t,n){const i=e.type;if(!e.render){if(!t&&zu&&!i.render){const r=i.template||da(e).template;if(r){const{isCustomElement:o,compilerOptions:l}=e.appContext.config,{delimiters:c,compilerOptions:d}=i,m=Gt(Gt({isCustomElement:o,delimiters:c},l),d);i.render=zu(r,m)}}e.render=i.render||Dn}lr(e),ir(),Jp(e),rr(),Mi()}function Th(e){return new Proxy(e.attrs,{get(t,n){return tn(e,"get","$attrs"),t[n]}})}function _h(e){const t=i=>{e.exposed=i||{}};let n;return{get attrs(){return n||(n=Th(e))},slots:e.slots,emit:e.emit,expose:t}}function zs(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(uu(lu(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Rr)return Rr[n](e)},has(t,n){return n in t||n in Rr}}))}function Eh(e,t=!0){return Je(e)?e.displayName||e.name:e.name||t&&e.__name}function xh(e){return Je(e)&&"__vccOpts"in e}const Sh=(e,t)=>yp(e,t,Br),kh=Symbol(""),Ah=()=>Hs(kh),Lh="3.2.47",Oh="http://www.w3.org/2000/svg",Fi=typeof document<"u"?document:null,Yu=Fi&&Fi.createElement("template"),Dh={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,i)=>{const r=t?Fi.createElementNS(Oh,e):Fi.createElement(e,n?{is:n}:void 0);return e==="select"&&i&&i.multiple!=null&&r.setAttribute("multiple",i.multiple),r},createText:e=>Fi.createTextNode(e),createComment:e=>Fi.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Fi.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,i,r,o){const l=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{Yu.innerHTML=i?`${e} `:e;const c=Yu.content;if(i){const d=c.firstChild;for(;d.firstChild;)c.appendChild(d.firstChild);c.removeChild(d)}t.insertBefore(c,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Ph(e,t,n){const i=e._vtc;i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Ih(e,t,n){const i=e.style,r=Mt(n);if(n&&!r){if(t&&!Mt(t))for(const o in t)n[o]==null&&ba(i,o,"");for(const o in n)ba(i,o,n[o])}else{const o=i.display;r?t!==n&&(i.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(i.display=o)}}const Gu=/\s*!important$/;function ba(e,t,n){if(Ue(n))n.forEach(i=>ba(e,t,i));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const i=Nh(e,t);Gu.test(n)?e.setProperty(nr(i),n.replace(Gu,""),"important"):e[i]=n}}const Ju=["Webkit","Moz","ms"],Ca={};function Nh(e,t){const n=Ca[t];if(n)return n;let i=Un(t);if(i!=="filter"&&i in e)return Ca[t]=i;i=Es(i);for(let r=0;rwa||(jh.then(()=>wa=0),wa=Date.now());function Uh(e,t){const n=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=n.attached)return;Nn(Wh(i,n.value),t,5,[i])};return n.value=e,n.attached=$h(),n}function Wh(e,t){if(Ue(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(i=>r=>!r._stopped&&i&&i(r))}else return t}const ec=/^on[a-z]/,Vh=(e,t,n,i,r=!1,o,l,c,d)=>{t==="class"?Ph(e,i,r):t==="style"?Ih(e,n,i):ws(t)?jo(t)||Hh(e,t,n,i,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Kh(e,t,i,r))?Mh(e,t,i,o,l,c,d):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),Rh(e,t,i,r))};function Kh(e,t,n,i){return i?!!(t==="innerHTML"||t==="textContent"||t in e&&ec.test(t)&&Je(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||ec.test(t)&&Mt(n)?!1:t in e}const ur=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Ue(t)?n=>Ss(t,n):t};function qh(e){e.target.composing=!0}function tc(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Hi={created(e,{modifiers:{lazy:t,trim:n,number:i}},r){e._assign=ur(r);const o=i||r.props&&r.props.type==="number";Ci(e,t?"change":"input",l=>{if(l.target.composing)return;let c=e.value;n&&(c=c.trim()),o&&(c=As(c)),e._assign(c)}),n&&Ci(e,"change",()=>{e.value=e.value.trim()}),t||(Ci(e,"compositionstart",qh),Ci(e,"compositionend",tc),Ci(e,"change",tc))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:i,number:r}},o){if(e._assign=ur(o),e.composing||document.activeElement===e&&e.type!=="range"&&(n||i&&e.value.trim()===t||(r||e.type==="number")&&As(e.value)===t))return;const l=t??"";e.value!==l&&(e.value=l)}},zh={deep:!0,created(e,t,n){e._assign=ur(n),Ci(e,"change",()=>{const i=e._modelValue,r=jr(e),o=e.checked,l=e._assign;if(Ue(i)){const c=Bo(i,r),d=c!==-1;if(o&&!d)l(i.concat(r));else if(!o&&d){const m=[...i];m.splice(c,1),l(m)}}else if(tr(i)){const c=new Set(i);o?c.add(r):c.delete(r),l(c)}else l(rc(e,o))})},mounted:nc,beforeUpdate(e,t,n){e._assign=ur(n),nc(e,t,n)}};function nc(e,{value:t,oldValue:n},i){e._modelValue=t,Ue(t)?e.checked=Bo(t,i.props.value)>-1:tr(t)?e.checked=t.has(i.props.value):t!==n&&(e.checked=Ar(t,rc(e,!0)))}const Xs={deep:!0,created(e,{value:t,modifiers:{number:n}},i){const r=tr(t);Ci(e,"change",()=>{const o=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?As(jr(l)):jr(l));e._assign(e.multiple?r?new Set(o):o:o[0])}),e._assign=ur(i)},mounted(e,{value:t}){ic(e,t)},beforeUpdate(e,t,n){e._assign=ur(n)},updated(e,{value:t}){ic(e,t)}};function ic(e,t){const n=e.multiple;if(!(n&&!Ue(t)&&!tr(t))){for(let i=0,r=e.options.length;i-1:o.selected=t.has(l);else if(Ar(jr(o),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function jr(e){return"_value"in e?e._value:e.value}function rc(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Xh=["ctrl","shift","alt","meta"],Yh={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)=>Xh.some(n=>e[`${n}Key`]&&!t.includes(n))},gt=(e,t)=>(n,...i)=>{for(let r=0;r{$r(e,!1)}):$r(e,t))},beforeUnmount(e,{value:t}){$r(e,t)}};function $r(e,t){e.style.display=t?e._vod:"none"}const Gh=Gt({patchProp:Vh},Dh);let sc;function Jh(){return sc||(sc=uh(Gh))}const Zh=(...e)=>{const t=Jh().createApp(...e),{mount:n}=t;return t.mount=i=>{const r=Qh(i);if(!r)return;const o=t._component;!Je(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.innerHTML="";const l=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t};function Qh(e){return Mt(e)?document.querySelector(e):e}/**!
+ * Sortable 1.15.0
+ * @author RubaXa
+ * @author owenm
+ * @license MIT
+ */function oc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,i)}return n}function qn(e){for(var t=1;t=0)&&(n[r]=e[r]);return n}function ng(e,t){if(e==null)return{};var n=tg(e,t),i,r;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var ig="1.15.0";function ai(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var li=ai(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Ur=ai(/Edge/i),ac=ai(/firefox/i),Wr=ai(/safari/i)&&!ai(/chrome/i)&&!ai(/android/i),lc=ai(/iP(ad|od|hone)/i),uc=ai(/chrome/i)&&ai(/android/i),cc={capture:!1,passive:!1};function ut(e,t,n){e.addEventListener(t,n,!li&&cc)}function it(e,t,n){e.removeEventListener(t,n,!li&&cc)}function Gs(e,t){if(t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function rg(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function zn(e,t,n,i){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&Gs(e,t):Gs(e,t))||i&&e===n)return e;if(e===n)break}while(e=rg(e))}return null}var fc=/\s+/g;function pn(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var i=(" "+e.className+" ").replace(fc," ").replace(" "+t+" "," ");e.className=(i+(n?" "+t:"")).replace(fc," ")}}function We(e,t,n){var i=e&&e.style;if(i){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in i)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),i[t]=n+(typeof n=="string"?"":"px")}}function cr(e,t){var n="";if(typeof e=="string")n=e;else do{var i=We(e,"transform");i&&i!=="none"&&(n=i+" "+n)}while(!t&&(e=e.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return r&&new r(n)}function dc(e,t,n){if(e){var i=e.getElementsByTagName(t),r=0,o=i.length;if(n)for(;r=o:l=r<=o,!l)return i;if(i===Xn())break;i=wi(i,!1)}return!1}function fr(e,t,n,i){for(var r=0,o=0,l=e.children;o2&&arguments[2]!==void 0?arguments[2]:{},r=i.evt,o=ng(i,dg);Kr.pluginEvent.bind(Ve)(t,n,qn({dragEl:ae,parentEl:Pt,ghostEl:Ge,rootEl:xt,nextEl:Bi,lastDownEl:Js,cloneEl:Ot,cloneHidden:Ti,dragStarted:zr,putSortable:Ut,activeSortable:Ve.active,originalEvent:r,oldIndex:pr,oldDraggableIndex:qr,newIndex:gn,newDraggableIndex:_i,hideGhostForTarget:Ec,unhideGhostForTarget:xc,cloneNowHidden:function(){Ti=!0},cloneNowShown:function(){Ti=!1},dispatchSortableEvent:function(c){Qt({sortable:n,name:c,originalEvent:r})}},o))};function Qt(e){fg(qn({putSortable:Ut,cloneEl:Ot,targetEl:ae,rootEl:xt,oldIndex:pr,oldDraggableIndex:qr,newIndex:gn,newDraggableIndex:_i},e))}var ae,Pt,Ge,xt,Bi,Js,Ot,Ti,pr,gn,qr,_i,Zs,Ut,hr=!1,Qs=!1,eo=[],ji,Mn,xa,Sa,yc,bc,zr,gr,Xr,Yr=!1,to=!1,no,zt,ka=[],Aa=!1,io=[],ro=typeof document<"u",so=lc,Cc=Ur||li?"cssFloat":"float",pg=ro&&!uc&&!lc&&"draggable"in document.createElement("div"),wc=function(){if(ro){if(li)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),Tc=function(t,n){var i=We(t),r=parseInt(i.width)-parseInt(i.paddingLeft)-parseInt(i.paddingRight)-parseInt(i.borderLeftWidth)-parseInt(i.borderRightWidth),o=fr(t,0,n),l=fr(t,1,n),c=o&&We(o),d=l&&We(l),m=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+Ft(o).width,g=d&&parseInt(d.marginLeft)+parseInt(d.marginRight)+Ft(l).width;if(i.display==="flex")return i.flexDirection==="column"||i.flexDirection==="column-reverse"?"vertical":"horizontal";if(i.display==="grid")return i.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&c.float&&c.float!=="none"){var w=c.float==="left"?"left":"right";return l&&(d.clear==="both"||d.clear===w)?"vertical":"horizontal"}return o&&(c.display==="block"||c.display==="flex"||c.display==="table"||c.display==="grid"||m>=r&&i[Cc]==="none"||l&&i[Cc]==="none"&&m+g>r)?"vertical":"horizontal"},hg=function(t,n,i){var r=i?t.left:t.top,o=i?t.right:t.bottom,l=i?t.width:t.height,c=i?n.left:n.top,d=i?n.right:n.bottom,m=i?n.width:n.height;return r===c||o===d||r+l/2===c+m/2},gg=function(t,n){var i;return eo.some(function(r){var o=r[hn].options.emptyInsertThreshold;if(!(!o||Ta(r))){var l=Ft(r),c=t>=l.left-o&&t<=l.right+o,d=n>=l.top-o&&n<=l.bottom+o;if(c&&d)return i=r}}),i},_c=function(t){function n(o,l){return function(c,d,m,g){var w=c.options.group.name&&d.options.group.name&&c.options.group.name===d.options.group.name;if(o==null&&(l||w))return!0;if(o==null||o===!1)return!1;if(l&&o==="clone")return o;if(typeof o=="function")return n(o(c,d,m,g),l)(c,d,m,g);var T=(l?c:d).options.group.name;return o===!0||typeof o=="string"&&o===T||o.join&&o.indexOf(T)>-1}}var i={},r=t.group;(!r||Ys(r)!="object")&&(r={name:r}),i.name=r.name,i.checkPull=n(r.pull,!0),i.checkPut=n(r.put),i.revertClone=r.revertClone,t.group=i},Ec=function(){!wc&&Ge&&We(Ge,"display","none")},xc=function(){!wc&&Ge&&We(Ge,"display","")};ro&&!uc&&document.addEventListener("click",function(e){if(Qs)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Qs=!1,!1},!0);var $i=function(t){if(ae){t=t.touches?t.touches[0]:t;var n=gg(t.clientX,t.clientY);if(n){var i={};for(var r in t)t.hasOwnProperty(r)&&(i[r]=t[r]);i.target=i.rootEl=n,i.preventDefault=void 0,i.stopPropagation=void 0,n[hn]._onDragOver(i)}}},mg=function(t){ae&&ae.parentNode[hn]._isOutsideThisEl(t.target)};function Ve(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=oi({},t),e[hn]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Tc(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(l,c){l.setData("Text",c.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Ve.supportPointer!==!1&&"PointerEvent"in window&&!Wr,emptyInsertThreshold:5};Kr.initializePlugins(this,e,n);for(var i in n)!(i in t)&&(t[i]=n[i]);_c(t);for(var r in this)r.charAt(0)==="_"&&typeof this[r]=="function"&&(this[r]=this[r].bind(this));this.nativeDraggable=t.forceFallback?!1:pg,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?ut(e,"pointerdown",this._onTapStart):(ut(e,"mousedown",this._onTapStart),ut(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(ut(e,"dragover",this),ut(e,"dragenter",this)),eo.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),oi(this,lg())}Ve.prototype={constructor:Ve,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(gr=null)},_getDirection:function(t,n){return typeof this.options.direction=="function"?this.options.direction.call(this,t,n,ae):this.options.direction},_onTapStart:function(t){if(t.cancelable){var n=this,i=this.el,r=this.options,o=r.preventOnFilter,l=t.type,c=t.touches&&t.touches[0]||t.pointerType&&t.pointerType==="touch"&&t,d=(c||t).target,m=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||d,g=r.filter;if(Eg(i),!ae&&!(/mousedown|pointerdown/.test(l)&&t.button!==0||r.disabled)&&!m.isContentEditable&&!(!this.nativeDraggable&&Wr&&d&&d.tagName.toUpperCase()==="SELECT")&&(d=zn(d,r.draggable,i,!1),!(d&&d.animated)&&Js!==d)){if(pr=En(d),qr=En(d,r.draggable),typeof g=="function"){if(g.call(this,t,d,this)){Qt({sortable:n,rootEl:m,name:"filter",targetEl:d,toEl:i,fromEl:i}),rn("filter",n,{evt:t}),o&&t.cancelable&&t.preventDefault();return}}else if(g&&(g=g.split(",").some(function(w){if(w=zn(m,w.trim(),i,!1),w)return Qt({sortable:n,rootEl:w,name:"filter",targetEl:d,fromEl:i,toEl:i}),rn("filter",n,{evt:t}),!0}),g)){o&&t.cancelable&&t.preventDefault();return}r.handle&&!zn(m,r.handle,i,!1)||this._prepareDragStart(t,c,d)}}},_prepareDragStart:function(t,n,i){var r=this,o=r.el,l=r.options,c=o.ownerDocument,d;if(i&&!ae&&i.parentNode===o){var m=Ft(i);if(xt=o,ae=i,Pt=ae.parentNode,Bi=ae.nextSibling,Js=i,Zs=l.group,Ve.dragged=ae,ji={target:ae,clientX:(n||t).clientX,clientY:(n||t).clientY},yc=ji.clientX-m.left,bc=ji.clientY-m.top,this._lastX=(n||t).clientX,this._lastY=(n||t).clientY,ae.style["will-change"]="all",d=function(){if(rn("delayEnded",r,{evt:t}),Ve.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!ac&&r.nativeDraggable&&(ae.draggable=!0),r._triggerDragStart(t,n),Qt({sortable:r,name:"choose",originalEvent:t}),pn(ae,l.chosenClass,!0)},l.ignore.split(",").forEach(function(g){dc(ae,g.trim(),La)}),ut(c,"dragover",$i),ut(c,"mousemove",$i),ut(c,"touchmove",$i),ut(c,"mouseup",r._onDrop),ut(c,"touchend",r._onDrop),ut(c,"touchcancel",r._onDrop),ac&&this.nativeDraggable&&(this.options.touchStartThreshold=4,ae.draggable=!0),rn("delayStart",this,{evt:t}),l.delay&&(!l.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(Ur||li))){if(Ve.eventCanceled){this._onDrop();return}ut(c,"mouseup",r._disableDelayedDrag),ut(c,"touchend",r._disableDelayedDrag),ut(c,"touchcancel",r._disableDelayedDrag),ut(c,"mousemove",r._delayedDragTouchMoveHandler),ut(c,"touchmove",r._delayedDragTouchMoveHandler),l.supportPointer&&ut(c,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(d,l.delay)}else d()}},_delayedDragTouchMoveHandler:function(t){var n=t.touches?t.touches[0]:t;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){ae&&La(ae),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;it(t,"mouseup",this._disableDelayedDrag),it(t,"touchend",this._disableDelayedDrag),it(t,"touchcancel",this._disableDelayedDrag),it(t,"mousemove",this._delayedDragTouchMoveHandler),it(t,"touchmove",this._delayedDragTouchMoveHandler),it(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,n){n=n||t.pointerType=="touch"&&t,!this.nativeDraggable||n?this.options.supportPointer?ut(document,"pointermove",this._onTouchMove):n?ut(document,"touchmove",this._onTouchMove):ut(document,"mousemove",this._onTouchMove):(ut(ae,"dragend",this),ut(xt,"dragstart",this._onDragStart));try{document.selection?ao(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,n){if(hr=!1,xt&&ae){rn("dragStarted",this,{evt:n}),this.nativeDraggable&&ut(document,"dragover",mg);var i=this.options;!t&&pn(ae,i.dragClass,!1),pn(ae,i.ghostClass,!0),Ve.active=this,t&&this._appendGhost(),Qt({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(Mn){this._lastX=Mn.clientX,this._lastY=Mn.clientY,Ec();for(var t=document.elementFromPoint(Mn.clientX,Mn.clientY),n=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(Mn.clientX,Mn.clientY),t!==n);)n=t;if(ae.parentNode[hn]._isOutsideThisEl(t),n)do{if(n[hn]){var i=void 0;if(i=n[hn]._onDragOver({clientX:Mn.clientX,clientY:Mn.clientY,target:t,rootEl:n}),i&&!this.options.dragoverBubble)break}t=n}while(n=n.parentNode);xc()}},_onTouchMove:function(t){if(ji){var n=this.options,i=n.fallbackTolerance,r=n.fallbackOffset,o=t.touches?t.touches[0]:t,l=Ge&&cr(Ge,!0),c=Ge&&l&&l.a,d=Ge&&l&&l.d,m=so&&zt&&hc(zt),g=(o.clientX-ji.clientX+r.x)/(c||1)+(m?m[0]-ka[0]:0)/(c||1),w=(o.clientY-ji.clientY+r.y)/(d||1)+(m?m[1]-ka[1]:0)/(d||1);if(!Ve.active&&!hr){if(i&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))=0&&(Qt({rootEl:Pt,name:"add",toEl:Pt,fromEl:xt,originalEvent:t}),Qt({sortable:this,name:"remove",toEl:Pt,originalEvent:t}),Qt({rootEl:Pt,name:"sort",toEl:Pt,fromEl:xt,originalEvent:t}),Qt({sortable:this,name:"sort",toEl:Pt,originalEvent:t})),Ut&&Ut.save()):gn!==pr&&gn>=0&&(Qt({sortable:this,name:"update",toEl:Pt,originalEvent:t}),Qt({sortable:this,name:"sort",toEl:Pt,originalEvent:t})),Ve.active&&((gn==null||gn===-1)&&(gn=pr,_i=qr),Qt({sortable:this,name:"end",toEl:Pt,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){rn("nulling",this),xt=ae=Pt=Ge=Bi=Ot=Js=Ti=ji=Mn=zr=gn=_i=pr=qr=gr=Xr=Ut=Zs=Ve.dragged=Ve.ghost=Ve.clone=Ve.active=null,io.forEach(function(t){t.checked=!0}),io.length=xa=Sa=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":ae&&(this._onDragOver(t),vg(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t=[],n,i=this.el.children,r=0,o=i.length,l=this.options;ri.right+r||e.clientX<=i.right&&e.clientY>i.bottom&&e.clientX>=i.left:e.clientX>i.right&&e.clientY>i.top||e.clientX<=i.right&&e.clientY>i.bottom+r}function wg(e,t,n,i,r,o,l,c){var d=i?e.clientY:e.clientX,m=i?n.height:n.width,g=i?n.top:n.left,w=i?n.bottom:n.right,T=!1;if(!l){if(c&&nog+m*o/2:dw-no)return-Xr}else if(d>g+m*(1-r)/2&&dw-m*o/2)?d>g+m/2?1:-1:0}function Tg(e){return En(ae){if(e==null||e===!1||e===""||e.trim()==="")return[];e=e.replace(/,/g,","),e=e.replace(/。/g,","),e=e.replace(/、/g,","),e=e.replace(/;/g,","),e=e.replace(/./g,","),e=e.replace(/\t/g,`
+`),e=e.replace(/\r/g,`
+`),e=e.replace(/\n+/g,`
+`);const t={"(":")","[":"]","<":">","{":"}"},n=Object.keys(t);let i=e.length,r="",o="",l="",c=0,d=[];for(let m=0;m$/,lycoRegex:/^\$/,weightNumRegex:/(.*):([0-9\.]+)/,weightNumRegexEN:/(.*):\s*([0-9\.]+)/,weightNumRegexCN:/(.*):\s*([0-9\.]+)/,bracketsEN:[{"(":"(",")":")"},{"[":"[","]":"]"},{"{":"{","}":"}"},{"<":"<",">":">"}],bracketsCN:[{"(":"(",")":")"},{"【":"[","】":"]"},{"《":"<","》":">"},{"「":"{","」":"}"},{"『":"{","』":"}"},{"〈":"<","〉":">"},{"﹝":"(","﹞":")"},{"﹛":"{","﹜":"}"},{"﹙":"(","﹚":")"}],replaceTag(e){return typeof e!="string"||e===""||(e=this.replaceBrackets(e),this.weightNumRegexEN.test(e)&&(e=e.replace(this.weightNumRegexEN,"$1:$2")),this.weightNumRegexCN.test(e)&&(e=e.replace(this.weightNumRegexCN,"$1:$2"))),e},replaceBrackets(e){const t=e.length;if(t===0)return e;let n={};this.bracketsCN.forEach(o=>{for(const l in o)n[l]=o[l]});let i=e[0],r=e[t-1];return typeof n[i]<"u"&&(e=n[i]+e.substring(1)),typeof n[r]<"u"&&(e=e.substring(0,t-1)+n[r]),e},hasBrackets(e){const t=e.length;if(t===0)return!1;let n=[];this.bracketsEN.forEach(o=>{let l=[];for(const c in o)l.push(c);n.push(l)}),this.bracketsCN.forEach(o=>{let l=[];for(const c in o)l.push(c);n.push(l)});let i=e[0],r=e[t-1];for(const o of n)if(o[0]===i&&o[1]===r)return o;return!1},splitTag(e){let t={left:"",value:"",right:""},n=e.match(/^([\(\<\{\[]+)(.*)$/);return!n||(t.left=n[1],e=n[2],n=e.match(/((\:[0-9\.]+)?[\)\>\}\]]+)$/),!n)?(t.value=e,t):(t.right=n[1],e=e.substring(0,e.length-t.right.length),t.value=e,t)},splitTags(e){return Sg(e)},canTranslate(e){return!(e.trim()===""||e[0]==="<"&&e[e.length-1]===">"||/^[0-9`~!@#$%^&*()_+\-=\[\]{}\\|;:'",.\/<>?]+$/.test(e)||/^[a-zA-Z]$/.test(e))},isEnglish(e){const t=e.length;if(e[0]==="<"&&e[t-1]===">")return!0;for(let n=0;n127)return!1;return!0},canOneTranslate(e){const t=["zh_CN","zh_HK","zh_TW","ar_SA","ja_JP","ko_KR","ru_RU"];return t.push("am_ET","hy_AM","as_IN","bn_BD","ba_RU","bg_BG","prs_AF","dv_MV","el_GR","gu_IN","he_IL","hi_IN","iu_CA","kn_IN","kk_KZ","km_KH","ku_Arab_IQ","ky_KG","lo_LA","mk_MK","ml_IN","mr_IN","mn_Cyrl_MN","mn_Mong_CN","my_MM","ne_NP","or_IN","ps_AF","fa_IR","pa_Guru_IN","sr_Cyrl_RS","ta_IN","tt_Latn_RU","te_IN","th_TH","bo_CN","ti_ET","uk_UA","ur_PK","ug_Arab_CN","vi_VN"),!!t.includes(e)},isEnglishByLangCode(e,t){if(!this.canOneTranslate(t))return-1;const n=e.length;for(let i=0;i127)return 0;return 1},getLang(e,t,n){return n[t]&&n[t].lang&&n[t].lang[e]?n[t].lang[e]:n.en_US&&n.en_US.lang&&n.en_US.lang[e]?n.en_US.lang[e]:e},escapeHtml(e){return e.replace(/[&<>'"]/g,t=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[t]||t)},unescapeHtml(e){return e.replace(/&|<|>|'|"/g,t=>({"&":"&","<":"<",">":">","'":"'",""":'"'})[t]||t)},getTagWeightNum(e){const t=e.match(this.weightNumRegex);let n=t?parseFloat(t[2]):0;return n=n>=0?n:0,n},getTagIncWeight(e){return this.countLayers(e,"(",")")},getTagDecWeight(e){return this.countLayers(e,"[","]")},countLayers(e,t="(",n=")"){let i=0;if(e.length<2)return i;for(;;){let r=e[0],o=e[e.length-1];if(r===t&&o===n)i++,e=e.slice(1,e.length-1);else break}return i},setLayers(e,t=0,n="(",i=")",r=""){for(;;){let o=e[0],l=e[e.length-1];if(o===n&&l===i)e=e.slice(1,e.length-1);else break}return t===0?e:n.repeat(t)+e+r+i.repeat(t)},getTranslateApiInfo(e,t){let n=!1;for(const i in t)for(const r in i.children)if(r.key===e){n=r;break}return n},isEqualTags(e,t,n=[]){if(t.length!==e.length)return!1;for(let i=0;i{setTimeout(()=>{hideResults(e)},n)})},formatTime(e,t=!0){let n=new Date(e),i=n.getFullYear(),r=n.getMonth()+1;r<10&&(r="0"+r);let o=n.getDate();o<10&&(o="0"+o);let l=n.getHours();l<10&&(l="0"+l);let c=n.getMinutes();c<10&&(c="0"+c);let d=n.getSeconds();return d<10&&(d="0"+d),t?`${i}/${r}/${o} ${l}:${c}:${d}`:`${r}/${o} ${l}:${c}:${d}`},apiUrl(){let e;return e=window.location.origin+window.location.pathname,e+=e.endsWith("/")?"":"/",e+="physton_prompt/",e},removeCSS(e,t=!0){if(!e)return;let n=null;t?n=this.gradioApp().querySelector("#"+e):n=document.querySelector("#"+e),n&&n.remove()},loadCSS(e,t="",n=!0,i=!1,r=!0){n&&this.removeCSS(t,r);let o=this.apiUrl()+"styles?file="+encodeURIComponent(e);i||(o+="&t="+new Date().getTime());let l=document.createElement("link");l.id=t,l.rel="stylesheet",l.href=o,r?this.gradioApp().appendChild(l):document.body.appendChild(l)},swapElement(e,t){let n=e.parentNode,i=t.parentNode,r=e.nextSibling,o=t.nextSibling;n.insertBefore(t,r),i.insertBefore(e,o)},insertBefore(e,t){t.parentNode.insertBefore(e,t)},insertAfter(e,t){t.nextSibling?t.parentNode.insertBefore(e,t.nextSibling):t.parentNode.appendChild(e)},gradioContainer:null,gradioApp(){if(this.gradioContainer)return this.gradioContainer;const e=document.getElementsByTagName("gradio-app"),t=e.length==0?null:e[0].shadowRoot;if(t){const n=t.querySelectorAll(".gradio-container");for(let i=0;i{}},translateApis:{type:Array,default:()=>[]},translateApi:{type:String,default:""},translateApiConfig:{type:Object},tagCompleteFile:{type:String,default:""},onlyCsvOnAuto:{type:Boolean,default:!1}},data(){return{cancelMultiTranslate:!1}},computed:{langName(){for(const e in this.languages){const t=this.languages[e];if(t.code===this.languageCode)return t.name}return item.name}},methods:{getLang(e){return oe.getLang(e,this.languageCode,this.languages)},getCSV(e=null,t=!1){return window.tagCompleteFileCache=window.tagCompleteFileCache||{},window.tagCompleteFileLoading=window.tagCompleteFileLoading||{},new Promise((n,i)=>{if(e=e||this.tagCompleteFile,!t&&window.tagCompleteFileCache[e]){n(window.tagCompleteFileCache[e]);return}if(window.tagCompleteFileLoading[e]){const l=setInterval(()=>{window.tagCompleteFileLoading[e]||(clearInterval(l),n(window.tagCompleteFileCache[e]))},100);return}window.tagCompleteFileLoading[e]=!0;let r={toEn:new Map,toLocal:new Map},o=(l,c)=>{[l,l.replace(/\_/g," "),l.replace(/\-/g," ")].forEach(m=>r.toLocal.set(m,c)),r.toEn.set(c,l)};if(!e&&typeof translations=="object"&&translations instanceof Map){translations.forEach((l,c)=>{o(c,l)}),window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=r,n(r);return}if(!e){window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=r,i(this.getLang("not_found_csv_file"));return}this.gradioAPI.getCSV(e).then(l=>{l=l.replace(/\r/g,`
+`),l.split(`
+`).forEach(d=>{if(d===""||d.trim()==="")return;let m=d.split(",");if(m.length<2)return;let g=m[0].trim(),w=m[1].trim();g===""||w===""||o(g,w)}),window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=r,n(r)}).catch(l=>{window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=r,l.response&&l.response.status===404?i(this.getLang("not_found_csv_file")):i(l.message)})})},async translateToLocalByCSV(e,t=null,n=!1){let i=await this.getCSV(t,n);return e=e.trim().toLowerCase(),i.toLocal.has(e)?i.toLocal.get(e):""},async translateToEnByCSV(e,t=null,n=!1){let i=await this.getCSV(t,n);return e=e.trim().toLowerCase(),i.toEn.has(e)?i.toEn.get(e):""}}},Ui=Number.isNaN||window.isNaN,kg=/^-?(?:\d+|\d+\.\d+|\.\d+)(?:[eE][-+]?\d+)?$/,Ag=/\.\d*(?:0|9){10}\d*$/,Ac=(e,t=1e11)=>Ag.test(String(e))?Math.round(e*t)/t:e,Lg=Rp({name:"VueNumberInput",props:{attrs:{type:Object,default:void 0},center:Boolean,controls:Boolean,disabled:Boolean,inputtable:{type:Boolean,default:!0},inline:Boolean,max:{type:Number,default:1/0},min:{type:Number,default:-1/0},name:{type:String,default:void 0},placeholder:{type:String,default:void 0},readonly:Boolean,rounded:Boolean,size:{type:String,default:void 0},step:{type:Number,default:1},modelValue:{type:Number,default:NaN}},emits:["update:modelValue"],data(){return{value:NaN}},computed:{increasable(){return Ui(this.value)||this.valuethis.min}},watch:{modelValue:{immediate:!0,handler(e,t){!(Ui(e)&&typeof t>"u")&&e!==this.value&&this.setValue(e)}}},methods:{isNaN:Ui,change(e){this.setValue(e.target.value)},paste(e){const t=e.clipboardData||window.clipboardData;t&&!kg.test(t.getData("text"))&&e.preventDefault()},decrease(){if(this.decreasable){let{value:e}=this;Ui(e)&&(e=0),this.setValue(Ac(e-this.step))}},increase(){if(this.increasable){let{value:e}=this;Ui(e)&&(e=0),this.setValue(Ac(e+this.step))}},setValue(e){const t=this.value;let n=typeof e!="number"?parseFloat(e):e;Ui(n)||(this.min<=this.max&&(n=Math.min(this.max,Math.max(this.min,n))),this.rounded&&(n=Math.round(n))),this.value=n,n===t&&(this.$refs.input.value=String(n)),this.$emit("update:modelValue",n,t)}}}),sn=(e,t)=>{const n=e.__vccOpts||e;for(const[i,r]of t)n[i]=r;return n},Og=["disabled"],Dg=["name","value","min","max","step","readonly","disabled","placeholder"],Pg=["disabled"];function Ig(e,t,n,i,r,o){return R(),B("div",{class:At(["vue-number-input",{"vue-number-input--inline":e.inline,"vue-number-input--center":e.center,"vue-number-input--controls":e.controls,[`vue-number-input--${e.size}`]:e.size}])},[e.controls?(R(),B("button",{key:0,class:"vue-number-input__button vue-number-input__button--minus",type:"button",tabindex:"-1",disabled:e.disabled||e.readonly||!e.decreasable,onClick:t[0]||(t[0]=gt((...l)=>e.decrease&&e.decrease(...l),["prevent"]))},null,8,Og)):ze("",!0),_("input",Vu({ref:"input",class:"vue-number-input__input"},e.attrs,{type:"number",name:e.name,value:isNaN(e.value)?"":e.value,min:e.min,max:e.max,step:e.step,readonly:e.readonly||!e.inputtable,disabled:e.disabled||!e.decreasable&&!e.increasable,placeholder:e.placeholder,autocomplete:"off",onChange:t[1]||(t[1]=(...l)=>e.change&&e.change(...l)),onPaste:t[2]||(t[2]=(...l)=>e.paste&&e.paste(...l))}),null,16,Dg),e.controls?(R(),B("button",{key:1,class:"vue-number-input__button vue-number-input__button--plus",type:"button",tabindex:"-1",disabled:e.disabled||e.readonly||!e.increasable,onClick:t[3]||(t[3]=gt((...l)=>e.increase&&e.increase(...l),["prevent"]))},null,8,Pg)):ze("",!0)],2)}const Ng=sn(Lg,[["render",Ig]]),Rg={data(){return{autocompleteResults:null,showAppendList:!1,appendListStyle:{top:0,left:0},appendListSelected:null,appendListChildSelected:null,appendList:[{type:"wrap",name:"line_break_character",icon:"wrap",children:[]}]}},computed:{appendListChildItemTags(){return this.appendListSelected===null?[]:this.appendListChildSelected===null?[]:this.appendList[this.appendListSelected].type!=="favorite"&&this.appendList[this.appendListSelected].type!=="history"?[]:this.appendList[this.appendListSelected].children[this.appendListChildSelected].tags}},mounted(){[{name:"txt2img",type:"prompt",key:"txt2img",neg:!1},{name:"txt2img",type:"negative_prompt",key:"txt2img_neg",neg:!0},{name:"img2img",type:"prompt",key:"img2img",neg:!1},{name:"img2img",type:"negative_prompt",key:"img2img_neg",neg:!0}].forEach(t=>{t.neg===this.neg&&this.appendList.push({type:"favorite",name:["favorite",t.name],icon:"favorite",key:t.key,dataKey:"favorite."+t.key,children:[]})})},methods:{onUnfoldClick(){this.hidePanel&&this.$nextTick(()=>{this.onResize()}),this.$emit("update:hidePanel",!this.hidePanel)},onTranslatesToLocalClick(){if(this.tags.length===0)return;if(this.loading.all_local){this.cancelMultiTranslate=!0,this.loading.all_local=!1;return}this.loading.all_local=!0;let e=[];for(const t in this.tags)this.tags[t].type&&this.tags[t].type!=="text"||e.push(t);return this.translates(e,!0,!0).finally(()=>{this.loading.all_local=!1,this.updateTags()})},onTranslatesToEnglishClick(){if(this.tags.length===0)return;if(this.loading.all_en){this.cancelMultiTranslate=!0,this.loading.all_en=!1;return}this.loading.all_en=!0;let e=[];for(const t in this.tags)this.tags[t].type&&this.tags[t].type!=="text"||e.push(t);this.translates(e,!1,!0).finally(()=>{this.loading.all_en=!1,this.updateTags()})},onCopyAllTagsClick(){this.copy(this.prompt)},onDeleteAllTagsClick(){confirm(this.getLang("delete_all_keywords_confirm"))&&(this.tags=[],this.updateTags())},appendListItemName(e){let t=[];if(typeof e.name=="object")for(let n of e.name)t.push(this.getLang(n));else t=[this.getLang(e.name)];return t.join(" / ")},onAppendTagFocus(e){if(this.$refs.promptTagAppend.value===""||this.$refs.promptTagAppend.value.trim()===""){this.appendListStyle={top:e.target.offsetTop+e.target.offsetHeight+"px",left:e.target.offsetLeft+"px"},this.appendListSelected=null,this.appendListChildSelected=null,this.showAppendList=!0;let t=[];this.appendList.forEach(n=>{typeof n.dataKey=="string"&&t.push(n.dataKey)}),this.gradioAPI.getDatas(t).then(n=>{this.appendList.forEach(i=>{typeof i.dataKey=="string"&&(i.children=n[i.dataKey]||[],i.children.reverse())})})}this._setTextareaFocus()},onAppendTagBlur(e){setTimeout(()=>{this.showAppendList=!1},300)},selectAppendList(e=!0){this.appendList.length!==0&&(this.appendListSelected===null?this.appendListSelected=0:e?(this.appendListSelected++,this.appendListSelected>=this.appendList.length&&(this.appendListSelected=0)):(this.appendListSelected--,this.appendListSelected<0&&(this.appendListSelected=this.appendList.length-1)),this.appendListChildSelected=null)},selectAppendListChild(e=!0){this.appendList.length!==0&&this.appendListSelected!==null&&this.appendList[this.appendListSelected].children.length!==0&&(this.appendListChildSelected===null?this.appendListChildSelected=0:e?(this.appendListChildSelected++,this.appendListChildSelected>=this.appendList[this.appendListSelected].children.length&&(this.appendListChildSelected=0)):(this.appendListChildSelected--,this.appendListChildSelected<0&&(this.appendListChildSelected=this.appendList[this.appendListSelected].children.length-1)),this.scrollAppendListChild())},scrollAppendListChild(){this.appendListSelected!==null&&(this.appendListChildSelected===0||this.appendListChildSelected===null?this.$refs.promptAppendListChildren[this.appendListSelected].scrollTop=0:this.$refs.promptAppendListChild[this.appendListChildSelected].scrollIntoView({behavior:"smooth",block:"center"}))},onAppendTagKeyDown(e,t=null){if(!(e.keyCode===38||e.keyCode===40))if(e.keyCode===13){if(this.getAutocompleteResults()&&this.autocompleteResults.style.display==="block"&&this.getAutocompleteResultsSelected()){let i=this.getAutocompleteResultsSelectedText();setTimeout(()=>{t=this.$refs.promptTagAppend.value,i?t=i:(i=this.getAutocompleteResultsSelectedText(),i&&(t=i)),this.onAppendTagKeyDown(e,t)},300);return}let n=this.$refs.promptTagAppend.value;if(this.$refs.promptTagAppend.value="",this.showAppendList=!0,console.log(n,t),t)n=n.replace(/\s*,\s*$/,"").trim(),oe.hasBrackets(n)&&(n=oe.replaceBrackets(n)),this._appendTag(n,t),this.updateTags();else{oe.hasBrackets(n)?(n=oe.replaceBrackets(n),n=[n]):n=oe.splitTags(n);let i=[];n.forEach(r=>{let o=-1;r===`
+`?o=this._appendTag(`
+`,`
+`,!1,-1,"wrap"):o=this._appendTag(r),o!==-1&&i.push(o)}),this.updatePrompt(),this.autoTranslateToEnglish||this.autoTranslateToLocal?this.$nextTick(()=>{let r=!(this.tagCompleteFile&&this.onlyCsvOnAuto);this.autoTranslateToEnglish?this.translates(i,!1,r).finally(()=>{this.updateTags()}):this.autoTranslateToLocal&&this.translates(i,!0,r).finally(()=>{this.updateTags()})}):this.updateTags()}}else this.removeAutocompleteResultsSelected()},onAppendTagKeyUp(e){this.$refs.promptTagAppend.value===""||this.$refs.promptTagAppend.value.trim()===""?(this.$refs.promptTagAppend.value="",this.showAppendList=!0,e.keyCode===38||e.keyCode===40?this.appendListChildSelected===null?this.selectAppendList(e.keyCode===40):this.selectAppendListChild(e.keyCode===40):e.keyCode===37||e.keyCode===39?this.appendListSelected!==null&&(e.keyCode===37?(this.appendListChildSelected=null,this.scrollAppendListChild()):this.appendList[this.appendListSelected].children.length===0?this.appendListChildSelected=null:(this.appendListChildSelected=0,this.scrollAppendListChild())):e.keyCode===13&&(this._appendTagByList(),this.scrollAppendListChild(),this.appendListSelected=null,this.appendListChildSelected=null)):this.showAppendList=!1},onAppendGroupClick(e,t,n){if(e!==null){if(this.appendListSelected=e,t===null){if(this.appendList[this.appendListSelected].children.length>0)return}else this.appendListChildSelected=t;this._appendTagByList()}},onAppendListChildMouseLeave(e,t,n){this.appendListSelected=null,this.appendListChildSelected=null},onAppendListChildMouseEnter(e,t,n){this.appendListSelected=e,this.appendListChildSelected=t},_appendTagByList(){if(this.appendListSelected===null)return;const e=this.appendList[this.appendListSelected];let t=null;e.children.length>0&&this.appendListChildSelected!==null&&(t=e.children[this.appendListChildSelected]);let n=[];switch(e.type){case"wrap":n.push({value:`
+`,localValue:`
+`,disabled:!1,type:"wrap"});break;case"lora":break;case"favorite":case"history":t&&t.tags.forEach(i=>{n.push({value:i.value,localValue:i.localValue,disabled:i.disabled,type:i.type||"text"})});break}n.length<=0||(n.forEach(i=>{this._appendTag(i.value,i.localValue,i.disabled,-1,i.type)}),this.updateTags())},getAutocompleteResults(){if(!this.autocompleteResults){const e=this.$refs.promptTagAppend.parentElement.querySelector(".autocompleteResults");e&&(this.autocompleteResults=e,this.autocompleteResults.getAttribute("data-mousemove")!=="true"&&(this.autocompleteResults.setAttribute("data-mousemove","true"),this.autocompleteResults.addEventListener("mousemove",t=>{this.bindAutocompleteResultsClick()})))}return this.autocompleteResults},removeAutocompleteResultsSelected(){const e=this.getAutocompleteResults();return e?(e.querySelectorAll("li").forEach(t=>{t.classList.remove("selected")}),!0):!1},getAutocompleteResultsSelected(){const e=this.getAutocompleteResults();if(!e)return null;const t=e.querySelector("li.selected");return t||null},getAutocompleteResultsSelectedText(e=null){if(!e&&(e=this.getAutocompleteResultsSelected(),!e))return null;const i=e.querySelector(".acListItem").innerText.match(/\[(.+?)\]/);return i?i[1]:null},bindAutocompleteResultsClick(){if(this.getAutocompleteResults(),!this.autocompleteResults)return;this.autocompleteResults.querySelectorAll("li").forEach(t=>{t.getAttribute("physton-on-clicked")!=="true"&&(t.setAttribute("physton-on-clicked","true"),t.addEventListener("click",()=>{this.onAutocompleteResultsClicked(t)}))})},onAutocompleteResultsClicked(e){const t=this.getAutocompleteResultsSelectedText(e);setTimeout(()=>{let n=this.$refs.promptTagAppend.value.replace(/,\s*$/,"");this.$refs.promptTagAppend.value="",n=n.replace(/\s*,\s*$/,"").trim(),oe.hasBrackets(n)&&(n=oe.replaceBrackets(n)),this._appendTag(n,t),this.updateTags()},300)}}},Mg={data(){return{dropStartX:0,dropStartY:0,dropEndX:0,dropEndY:0,dropOffsetX:0,dropOffsetY:0,dropIsSelecting:!1,dropIsStart:!1,dropIsEnd:!1,dropArea:{top:0,left:0,width:0,height:0},dropTags:[],dropTimeId:0}},methods:{_dropOver(){this.dropIsSelecting=!1,this.dropIsStart=!1,this.dropIsEnd=!1,this.dropTags=[];for(let e=0;ethis.dropArea.left+this.dropArea.width||r>this.dropArea.top+this.dropArea.height)?(e.push(n.getAttribute("data-id")),n.classList.add("drop-selected")):n.classList.remove("drop-selected"),this.dropTags=e}},onDropMouseUp(e){this.dropIsSelecting=!1,this.dropIsStart=!1,this.dropIsEnd=!0,this.$refs.dropSelectBtns.style.left=this.$refs.dropSelectBox.style.left,this.$refs.dropSelectBtns.style.top=this.$refs.dropSelectBox.style.top},_getDropTags(){let e=[];return this.dropTags.forEach(t=>{let n=this.tags.find(i=>i.id===t);n&&e.push(n)}),e},_getDropIndexes(){let e=[];return this.dropTags.forEach(t=>{let n=this.tags.findIndex(i=>i.id===t);n!==-1&&e.push(n)}),e},_getDropTagsEle(){let e=[];return this.dropTags.forEach(t=>{let n=this.$refs.promptTagsList.querySelector(`.prompt-tag[data-id="${t}"]`);n&&e.push(n)}),e},onDropCopy(){let e=this._getDropTags();this._dropOver();let t=this.genPrompt(e,!0);this.copy(t)},onDropFavorite(){let e=this._getDropTags();this._dropOver();let t=this.genPrompt(e,!0);this.gradioAPI.pushFavorite(this.favoriteKey,e,t,"").then(n=>{n?(this.$toastr.success(this.getLang("success")),this.$emit("refreshFavorites",this.favoriteKey)):this.$toastr.error(this.getLang("failed"))}).catch(n=>{this.$toastr.error(this.getLang("failed"))})},onDropDisable(){let e=this._getDropTags();this._dropOver(),e.forEach(t=>{t.disabled=!0}),this.updateTags()},onDropEnable(){let e=this._getDropTags();this._dropOver(),e.forEach(t=>{t.disabled=!1}),this.updateTags()},onDropDelete(){let e=this._getDropIndexes();this._dropOver(),e.sort((t,n)=>n-t),e.forEach(t=>{this.tags.splice(t,1)}),this.updateTags()}}};var Lc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ha(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ba="__autosizeInputGhost",Fg={" ":"nbsp","<":"lt",">":"gt"};function Hg(e){return"&"+Fg[e]+";"}function Bg(e){return e.replace(/\s|<|>/g,Hg)}function jg(){var e=document.createElement("div");return e.id=Ba,e.style.cssText="display:inline-block;height:0;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:nowrap;",document.body.appendChild(e),e}var $g=function(e,t){var n=window.getComputedStyle(e),i="box-sizing:"+n.boxSizing+";border-left:"+n.borderLeftWidth+" solid red;border-right:"+n.borderRightWidth+" solid red;font-family:"+n.fontFamily+";font-feature-settings:"+n.fontFeatureSettings+";font-kerning:"+n.fontKerning+";font-size:"+n.fontSize+";font-stretch:"+n.fontStretch+";font-style:"+n.fontStyle+";font-variant:"+n.fontVariant+";font-variant-caps:"+n.fontVariantCaps+";font-variant-ligatures:"+n.fontVariantLigatures+";font-variant-numeric:"+n.fontVariantNumeric+";font-weight:"+n.fontWeight+";letter-spacing:"+n.letterSpacing+";margin-left:"+n.marginLeft+";margin-right:"+n.marginRight+";padding-left:"+n.paddingLeft+";padding-right:"+n.paddingRight+";text-indent:"+n.textIndent+";text-transform:"+n.textTransform;function r(){var l=e.value||e.getAttribute("placeholder")||"",c=document.getElementById(Ba)||jg();c.style.cssText+=i,c.innerHTML=Bg(l);var d=window.getComputedStyle(c).width;return e.style.width=d,d}e.addEventListener("input",r);var o=r();return t&&t.minWidth&&o!=="0px"&&(e.style.minWidth=o),function(){e.removeEventListener("input",r);var l=document.getElementById(Ba);l&&l.parentNode.removeChild(l)}};const Ug=Ha($g),Wg={data(){return{tagClickTimeId:0}},mounted(){oe.gradioApp().addEventListener("mousemove",()=>{this.$refs.highlightPrompt.hide()})},methods:{_setTag(e){typeof e.type=="string"&&e.type==="wrap"?(e.weightNum=1,e.incWeight=0,e.decWeight=0):(e.weightNum=oe.getTagWeightNum(e.value),e.weightNum=e.weightNum<=0?1:e.weightNum,e.incWeight=oe.getTagIncWeight(e.value),e.decWeight=oe.getTagDecWeight(e.value)),this._setTagClass(e),this.$nextTick(()=>{this._setTagHeight(e)})},_setTagHeight(e){setTimeout(()=>{let t=this.$refs["promptTagValue-"+e.id][0],n=t.offsetHeight;t.parentNode.style.height=n+"px",this.$refs["promptTagEdit-"+e.id]&&(this.$refs["promptTagEdit-"+e.id][0].style.height=n+"px"),this.$refs["promptTagDelete-"+e.id]&&(this.$refs["promptTagDelete-"+e.id][0].style.height=n+"px")},300)},_setTagClass(e){if(e.isLora=!1,e.loraExists=!1,e.isLyco=!1,e.lycoExists=!1,e.isEmbedding=!1,!(typeof e.type=="string"&&e.type==="wrap")){const n=e.value.match(oe.loraRegex);if(n){e.isLora=!0;const i=this.loraExists(n[1]);i!==!1&&(e.loraExists=!0,e.loraName=i)}if(!e.isLora){const i=e.value.match(oe.lycoRegex);if(i){e.isLyco=!0;const r=this.lycoExists(i[1]);r!==!1&&(e.lycoExists=!0,e.lycoName=r)}}if(!e.isLora&&!e.isLyco){const i=this.embeddingExists(e.value);i!==!1&&(e.isEmbedding=!0,e.value=i)}}let t=["prompt-tag-value"];return e.isLora?(t.push("lora-tag"),e.loraExists||t.push("lora-not-exists")):e.isLyco?(t.push("lyco-tag"),e.lycoExists||t.push("lyco-not-exists")):e.isEmbedding?t.push("embedding-tag"):this.neg&&t.push("neg-tag"),e.classes=t,t},_setTagById(e,t=null,n=null){let i=this.tags.find(r=>r.id===e);return i?(t!==null&&(i.value=t),n!==null&&(i.localValue=n),i):!1},_appendTag(e,t="",n=!1,i=-1,r="text"){if(e==="")return-1;const o=Date.now()+(Math.random()*1e6).toFixed(0);let l={id:o,value:e==null||e===!1?"":e,localValue:t==null||t===!1?"":t,disabled:n,type:r};return this._setTag(l),i>=0?this.tags.splice(i,0,l):i=this.tags.push(l),this.$nextTick(()=>{this.$refs["promptTagEdit-"+o]&&Ug(this.$refs["promptTagEdit-"+o][0])}),i-1},renderTag(e){let t=this.tags.find(i=>i.id===e);if(!t)return"";let n=t.value;if(n=oe.escapeHtml(n),t.incWeight>0){n=oe.setLayers(n,0,"(",")"),n=''+n+"
";let i=''+"(".repeat(t.incWeight)+"
",r=''+")".repeat(t.incWeight)+"
";n=i+n+r}else if(t.decWeight>0){n=oe.setLayers(n,0,"[","]"),n=''+n+"
";let i=''+"[".repeat(t.decWeight)+"
",r=''+"]".repeat(t.decWeight)+"
";n=i+n+r}else n=''+n+"
";return n},isFavorite(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;if(typeof window.phystonPromptfavorites=="object"){for(const n of window.phystonPromptfavorites)if(n.key===this.favoriteKey){for(const i of n.list)if(i.tags.length===1&&i.tags[0].value===t.value)return i.id}}return!1},onTagMouseEnter(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;t.isFavorite=this.isFavorite(t.id),this.$refs.highlightPrompt.show(t)},onTagClick(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;this.tagClickTimeId&&clearTimeout(this.tagClickTimeId),this.tagClickTimeId=setTimeout(()=>{this.editing={},this.editing[t.id]=!0,this.$forceUpdate(),this.$nextTick(()=>{const n=this.$refs["promptTagEdit-"+t.id][0];n.focus(),n.dispatchEvent(new Event("input"))}),clearTimeout(this.tagClickTimeId)},250)},onTagDblclick(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;clearTimeout(this.tagClickTimeId),this.onDisabledTagClick(t.id)},onTagInputBlur(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;this.editing[t.id]=!1},onTagInputKeyDown(e,t){if(t.keyCode===13){let n=this.tags.find(i=>i.id===e);if(!n)return!1;this.editing[n.id]=!1,n.value!==t.target.value&&(n.value=t.target.value,this._setTag(n),this.updateTags())}},onTagInputChange(e,t){let n=this.tags.find(i=>i.id===e);if(!n)return!1;n.value!==t.target.value&&(n.value=t.target.value,this._setTag(n),this.updateTags())},onTagWeightNumChange(e,t){let n=this.tags.find(l=>l.id===e);if(!n)return!1;if(t=typeof t=="number"||typeof a=="string"?t:t.target.value,n.weightNum==t)return;let i=t,r=n.value,o=n.localValue;if(i>0){if(i===1&&!this.autoKeepWeightOne){const l=oe.hasBrackets(r);l[0]==="("&&l[1]===")"&&(r=oe.setLayers(r,0,l[0],l[1]),o!==""&&(o=oe.setLayers(o,0,l[0],l[1]))),r=r.replace(oe.weightNumRegex,"$1"),o!==""&&(o=o.replace(oe.weightNumRegex,"$1"))}else{if(!oe.weightNumRegex.test(r)){let l=oe.hasBrackets(r);l?(r=oe.setLayers(r,1,l[0],l[1],":"+i),o!==""&&(o=oe.setLayers(o,1,l[0],l[1],":"+i))):(r=r+":"+i,o!==""&&(o=o+":"+i))}oe.hasBrackets(r)||(r=oe.setLayers(r,1,"(",")"),o!==""&&(o=oe.setLayers(o,1,"(",")")))}r!==n.value&&(n.value=r,o!==""&&(n.localValue=o),this._setTag(n))}else{const l=oe.hasBrackets(r);l[0]==="<"&&l[1]===">"?i=.1:this.autoKeepWeightZero?(n.value=r.replace(oe.weightNumRegex,"$1:0"),o!==""&&(n.localValue=n.localValue.replace(oe.weightNumRegex,"$1:0"))):(n.value=r.replace(oe.weightNumRegex,"$1"),o!==""&&(n.localValue=n.localValue.replace(oe.weightNumRegex,"$1")))}n.weightNum=i,this.updateTags()},onDeleteTagClick(e){let t=this.tags.find(i=>i.id===e);if(!t)return!1;let n=this.tags.indexOf(t);this.tags.splice(n,1),this.updateTags()},onFavoriteTagClick(e){let t=this.tags.find(i=>i.id===e);if(!t)return!1;let n=this.isFavorite(t.id);n?this.gradioAPI.unFavorite(this.favoriteKey,n).then(i=>{i&&(t.isFavorite=!1,this.$emit("refreshFavorites",this.favoriteKey))}):this.gradioAPI.pushFavorite(this.favoriteKey,[t],t.value,t.localValue===""?t.value:t.localValue).then(i=>{i&&(t.isFavorite=!0,this.$emit("refreshFavorites",this.favoriteKey))})},onDisabledTagClick(e){let t=this.tags.find(n=>n.id===e);t&&(t.disabled=!t.disabled,this.updateTags())},onIncWeightClick(e,t){let n=this.tags.find(l=>l.id===e);if(!n)return;let i=n.value,r=n.localValue;i=oe.setLayers(i,0,"[","]"),r!==""&&(r=oe.setLayers(r,0,"[","]"));let o=n.incWeight;o+=t,o<0&&(o=0),n.incWeight=o,n.decWeight=0,i=oe.setLayers(i,o,"(",")"),r!==""&&(r=oe.setLayers(r,o,"(",")")),n.value=i,r!==""&&(n.localValue=r),this.updateTags()},onDecWeightClick(e,t){let n=this.tags.find(l=>l.id===e);if(!n)return;let i=n.value,r=n.localValue;i=oe.setLayers(i,0,"(",")"),r!==""&&(r=oe.setLayers(r,0,"(",")"));let o=n.decWeight;o+=t,o<0&&(o=0),n.incWeight=0,n.decWeight=o,i=oe.setLayers(i,o,"[","]"),r!==""&&(r=oe.setLayers(r,o,"[","]")),n.value=i,r!==""&&(n.localValue=r),this.updateTags()},onWrapTagClick(e){let t=this.tags.find(o=>o.id===e);if(!t)return;let n=this.tags.indexOf(t),i=this._appendTag(`
+`,`
+`,!1,-1,"wrap"),r=this.tags[i];this.tags.splice(i,1),this.tags.splice(n+1,0,r),this.updateTags()},onTranslateToLocalClick(e){let t=this.tags.find(i=>i.id===e);if(!t)return;let n=this.tags.indexOf(t);this.loading[t.id+"_local"]||this.translates([n],!0,!0).finally(()=>{this.updateTags()})},onTranslateToEnglishClick(e){let t=this.tags.find(i=>i.id===e);if(!t)return;let n=this.tags.indexOf(t);this.loading[t.id+"_en"]||this.translates([n],!1,!0).finally(()=>{this.updateTags()})}}},Vg={name:"IconSvg",props:{name:{type:String,required:!0},svgName:{type:String,default:""}},data(){return{svgCode:""}},watch:{name:{handler:function(e,t){this.getSvg()},immediate:!1}},mounted(){this.getSvg()},methods:{getSvg(){if(!this.name)return;let e=this.svgName||this.name;if(window.loadingSvg=window.loadingSvg||{},window.isLoadSvg=window.isLoadSvg||{},window.isLoadSvg[e]){this.svgCode=localStorage.getItem("iconSVG-"+e);return}if(localStorage.getItem("iconSVG-"+e)&&(this.svgCode=localStorage.getItem("iconSVG-"+e)),window.loadingSvg[e]){const t=setInterval(()=>{window.loadingSvg[e]||(clearInterval(t),this.svgCode=localStorage.getItem("iconSVG-"+e))},10);return}window.loadingSvg[e]=!0,window.iconSvgHash||(window.iconSvgHash=new Date().getTime()),this.gradioAPI.styles("icons/"+e+".svg",window.iconSvgHash).then(t=>{this.svgCode=t,localStorage.setItem("iconSVG-"+e,t),window.isLoadSvg[e]=!0,window.loadingSvg[e]=!1}).catch(t=>{window.loadingSvg[e]=!1})}}},Kg=["innerHTML"];function qg(e,t,n,i,r,o){return fe((R(),B("div",{class:At(["icon-svg","icon-svg-"+n.name]),"data-name":"name",innerHTML:r.svgCode},null,10,Kg)),[[_t,r.svgCode]])}const Fn=sn(Vg,[["render",qg]]),zg={name:"HighlightPrompt",props:{textarea:{type:Object,required:!0},hideDefaultInput:{type:Boolean,default:!1}},data(){return{scrollTop:0,showTimeId:0,hideTimeId:0}},watch:{},mounted(){},methods:{show(e){this.showTimeId&&clearTimeout(this.showTimeId),this.showTimeId=setTimeout(()=>{this._show(e),this.showTimeId=0},10)},_show(e){if(this.hideDefaultInput)return this._hide();if(typeof e.type=="string"&&e.type==="wrap")return this._hide();let t=e.value,n=this.textarea.value;if(t===""||t.trim()==="")return this._hide();if(n===""||n.trim()==="")return this._hide();if(t=oe.escapeHtml(t),n=oe.escapeHtml(this.textarea.value),n.indexOf(t)===-1)return this._hide();this.textarea.parentNode.insertBefore(this.$refs.highlightPrompt,this.textarea.nextSibling);const r=window.getComputedStyle(this.textarea);for(const c of r)this.$refs.highlightPrompt.style[c]=r[c];this.$refs.highlightPrompt.style.display="block",this.textarea.style.display="none";let o="",l=n;for(;;){const c=l.indexOf(t);if(c===-1){o+=l;break}const d=c+t.length;o+=l.substring(0,c),o+='',o+=l.substring(c,d),o+=" ",l=l.substring(d)}this.$refs.highlightPrompt.innerHTML=o,this.$refs.highlightPrompt.scrollTop=this.scrollTop},hide(){this.showTimeId&&clearTimeout(this.showTimeId),this.hideTimeId&&clearTimeout(this.hideTimeId),this.hideTimeId=setTimeout(()=>{this._hide(),this.hideTimeId=0},10)},_hide(){this.textarea.style.display="block",this.$refs.highlightPrompt.style.display="none",this.scrollTop=this.textarea.scrollTop}}},Xg={class:"physton-highlight-prompt",ref:"highlightPrompt"};function Yg(e,t,n,i,r,o){return R(),B("div",Xg,null,512)}const Gg={name:"PhystonPrompt",components:{HighlightPrompt:sn(zg,[["render",Yg]]),VueNumberInput:Ng,IconSvg:Fn},mixins:[Yn,Rg,Mg,Wg],props:{name:{type:String,required:!0},neg:{type:Boolean,default:!1},textarea:{type:Object,required:!0},steps:{type:Object,required:!0},canOneTranslate:{type:Boolean,default:!1},autoTranslate:{type:Boolean,default:!1},autoTranslateToEnglish:{type:Boolean,default:!1},autoTranslateToLocal:{type:Boolean,default:!1},autoRemoveSpace:{type:Boolean,default:!1},autoRemoveLastComma:{type:Boolean,default:!1},autoKeepWeightZero:{type:Boolean,default:!1},autoKeepWeightOne:{type:Boolean,default:!1},hideDefaultInput:{type:Boolean,default:!1},hidePanel:{type:Boolean,default:!1},enableTooltip:{type:Boolean,default:!0},historyKey:{type:String,default:""},favoriteKey:{type:String,default:""},extraNetworks:{type:Array,default:()=>[]},loras:{type:Array,default:()=>[]},lycos:{type:Array,default:()=>[]},embeddings:{type:Array,default:()=>[]},version:{type:String,default:""},latestVersion:{type:String,default:""},isLatestVersion:{type:Boolean,default:!0}},emits:["update:languageCode","update:autoTranslate","update:autoTranslateToEnglish","update:autoTranslateToLocal","update:autoRemoveSpace","update:autoRemoveLastComma","update:autoKeepWeightZero","update:autoKeepWeightOne","update:hideDefaultInput","update:hidePanel","update:enableTooltip","update:translateApi","click:translateApi","click:promptFormat","click:selectTheme","click:showAbout","click:selectLanguage","click:showHistory","click:showFavorite","refreshFavorites","click:showChatgpt"],data(){return{prompt:"",counterText:"0/75",tags:[],sortable:null,droping:!1,loading:{},editing:{}}},computed:{isEnglish(){return this.languageCode==="en_US"},translateApiItem(){return oe.getTranslateApiItem(this.translateApis,this.translateApi)}},watch:{loras:{handler(){this.tags.forEach(e=>{this._setTagClass(e)})},immediate:!1},lycos:{handler(){this.tags.forEach(e=>{this._setTagClass(e)})},immediate:!1},embeddings:{handler(){this.tags.forEach(e=>{this._setTagClass(e)})},immediate:!1}},mounted(){this.$nextTick(()=>{this.initSortable();let e=[1e3,3e3,5e3,1e4],t=!1;e.forEach(n=>{t||setTimeout(()=>{t||typeof addAutocompleteToArea=="function"&&typeof TAC_CFG=="object"&&TAC_CFG&&TAC_CFG.activeIn&&(t=!0,addAutocompleteToArea(this.$refs.promptTagAppend))},n)}),this.init()})},methods:{init(){this.tags=[],this.onTextareaChange()},onTextareaChange(e){const t=this.textarea.parentElement.getElementsByClassName("autocompleteResults");if(t.length>0&&t[0].style.display!=="none")return;let n=this.textarea.value.trim();if(n===this.prompt.trim())return;let i=oe.splitTags(n),r=[],o=this.tags;this.tags=[];for(let l in i){let c=i[l];if(c===`
+`)this._appendTag(`
+`,`
+`,!1,-1,"wrap");else{let d=!1;for(let T of o)if(T.value===c){d=T;break}const m=d?d.localValue:"",g=d?d.disabled:!1,w=this._appendTag(c,m,g,-1,"text");!d&&w!==-1&&r.push(w)}}if(this.autoTranslateToLocal&&e){let l=!(this.tagCompleteFile&&this.onlyCsvOnAuto);l=!1,this.translates(r,!0,l).finally(()=>{this.updateTags()})}else this.updateTags()},_setTextareaFocus(){if(typeof get_uiCurrentTabContent!="function"||typeof activePromptTextarea!="object")return;const e=get_uiCurrentTabContent();if(!e)return;let t=e.id.replace("tab_","");t&&(activePromptTextarea[t]=this.textarea)},copy(e){this.$copyText(e).then(()=>{this.$toastr.success(this.getLang("success"))}).catch(()=>{this.$toastr.error(this.getLang("failed"))})},genPrompt(e=null,t=!1){e=e||this.tags;let n=[],i=e.length;return e.forEach((r,o)=>{let l="";if(typeof r.type=="string"&&r.type==="wrap")l=`
+`;else{let c=oe.replaceTag(r.value);c!==r.value&&(r.value=c,this._setTag(r));let d=oe.replaceTag(r.localValue);if(d!==r.localValue&&(r.localValue=d),r.weightNum>0&&(r.weightNum=Number(parseFloat(r.weightNum).toFixed(6)),r.value=r.value.replace(oe.weightNumRegex,"$1:"+r.weightNum),r.localValue!==""&&(r.localValue=r.localValue.replace(oe.weightNumRegex,"$1:"+r.weightNum))),r.disabled&&!t)return;let m=","+(this.autoRemoveSpace?"":" "),g=null,w=!1;if(o+1{const{token_count:n,max_length:i}=t;this.counterText=`${n}/${i}`}),this.tags.length&&this.gradioAPI.getLatestHistory(this.historyKey).then(t=>{t&&t.prompt===this.prompt?this.gradioAPI.setHistory(this.historyKey,t.id,this.tags,this.prompt,t.name).then(n=>{}).catch(n=>{}):this.gradioAPI.pushHistory(this.historyKey,this.tags,this.prompt).then(n=>{}).catch(n=>{})}).catch(t=>{}),this.$nextTick(()=>{for(let t=0;to.getAttribute("data-id")===i);r&&n.parentNode.insertBefore(r,n.nextElementSibling)}})},onResize(){this.tags.forEach(e=>{this._setTagHeight(e)})},initSortable(){this.sortable=Ve.create(this.$refs.promptTagsList,{animation:150,handle:".prompt-tag-value",draggable:".prompt-tag",onEnd:e=>{if(this.dropTags.length){let n=e.item,i=n.getAttribute("data-id"),r=this._getDropTagsEle(),o=r.findIndex(d=>d.getAttribute("data-id")===i),l=r.slice(0,o),c=r.slice(o+1).reverse();l.forEach(d=>{oe.insertBefore(d,n)}),c.forEach(d=>{oe.insertAfter(d,n)})}this._dropOver(),this.droping=!1;let t=[];for(let n=0;nt.indexOf(n.id)-t.indexOf(i.id)),this.$forceUpdate(),this.updateTags()},onChoose:e=>{if(console.log(e),this.dropTags.length){let n=e.item.getAttribute("data-id");this._getDropTagsEle().forEach(r=>{r.getAttribute("data-id")!==n&&(r.style.display="block",r.style.transition="transform 0.2s",r.style.transform="scale(0)",setTimeout(()=>{r.style.transition="",r.style.transform="",r.style.display="none"},300))})}this.editing={},this.droping=!0},onUnchoose:e=>{if(this.droping=null,this.dropTags.length){let n=e.item.getAttribute("data-id");this._getDropTagsEle().forEach(r=>{r.getAttribute("data-id")!==n&&(r.style.display="")})}}})},useHistory(e){this.tags=[],e.tags.forEach(t=>{this._appendTag(t.value,t.localValue,t.disabled,-1,t.type||"text")}),this.updateTags()},useFavorite(e){this.useHistory(e)},useChatgpt(e){let t=oe.splitTags(e);this.tags=[],t.forEach(n=>{this._appendTag(n,"",!1,-1,"text")}),this.updateTags()},onPromptMainClick(){this.onTextareaChange(!0),this._setTextareaFocus()},translates(e,t=!1,n=!0){return new Promise((i,r)=>{if(this.languageCode==="en_US"||this.languageCode==="en_GB"){i();return}let o=[],l=(w,T)=>{w.forEach(N=>{c(N,T)})},c=(w,T)=>{w.toLocal?this.loading[w.id+"_local"]=T:this.loading[w.id+"_en"]=T},d=(w,T)=>{w.toLocal?w.localValue=T:(w.localValue=w.value,w.value=T),this._setTagById(w.id,w.value,w.localValue)},m=w=>w.isLora&&w.loraExists?this.getExtraNetworkFullName(w.loraName,"lora"):w.isLyco&&w.lycoExists?this.getExtraNetworkFullName(w.lycoName,"lycoris"):w.isEmbedding?this.getExtraNetworkFullName(w.value,"textual inversion"):w.value;e.forEach(w=>{let T=this.tags[w],N=m(T);if(N!==T.value){T.localValue=N;return}if(oe.canTranslate(T.value)){if(T.isEnglish=oe.isEnglishByLangCode(T.value,this.languageCode),T.isEnglish===-1)t?T.toLocal=!0:T.toLocal=!1;else if(T.isEnglish===0)if(t)if(T.localValue==="")T.localValue=T.value,T.toLocal=!1;else{const S=T.value;T.value=T.localValue,T.localValue=S}else T.toLocal=!1;else T.toLocal=!0;c(T,!0),o.push(T)}});const g=w=>{if(w.length<=0){l(w,!1),i();return}let T={};w.forEach((S,O)=>{let U=S.toLocal?"en_US":this.languageCode,P=S.toLocal?this.languageCode:"en_US",Z=U+"."+P;T[Z]||(T[Z]={fromLang:U,toLang:P,tags:[]}),T[Z].tags.push(S)});const N=()=>{let S=T[Object.keys(T)[0]];if(!S){i();return}let O=S.tags.map(U=>m(U));this.gradioAPI.translates(O,S.fromLang,S.toLang,this.translateApi,this.translateApiConfig).then(U=>{U.success?(U.translated_text.forEach((Z,se)=>{let L=S.tags[se];Z!==""&&d(L,Z),c(L,!1)}),delete T[Object.keys(T)[0]],N()):(l(w,!1),this.$toastr.error(U.message),r(U.message))}).catch(U=>{l(w,!1),this.$toastr.error(U.message),r(U.message)})};N()};if(this.tagCompleteFile){let w=[];o.forEach(T=>{const N=oe.splitTag(T.value);N.value!==T.value&&(T.value=N.value,T.splits=N),T.toLocal?w.push(this.translateToLocalByCSV(T.value)):w.push(this.translateToEnByCSV(T.value))}),Promise.all(w).then(T=>{let N=[];T.forEach((S,O)=>{let U=o[O];U.splits&&(U.value=U.splits.left+U.value+U.splits.right),S===""?N.push(U):(U.splits&&(S=U.splits.left+S+U.splits.right),c(U,!1),d(U,S))}),n?g(N):(l(N,!1),i())}).catch(T=>{l(o,!1),this.$toastr.error(T),r(T)})}else n?g(o):(l(o,!1),i())})}}},Jg=["name"],Zg={class:"prompt-header"},Qg={class:"prompt-header-title"},em={class:"prompt-header-extend"},tm={class:"extend-content"},nm={class:"extend-btn-group"},im={class:"setting-box"},rm={key:0,class:"gradio-checkbox hover-scale-120"},sm=["checked"],om={class:"gradio-checkbox hover-scale-120"},am=["checked"],lm={class:"gradio-checkbox hover-scale-120"},um=["checked"],cm={class:"gradio-checkbox hover-scale-120"},fm=["checked"],dm={class:"prompt-header-extend"},pm={class:"extend-content"},hm={class:"extend-btn-group"},gm={key:0,class:"prompt-header-extend"},mm={class:"extend-content"},vm={class:"extend-btn-group"},ym={class:"prompt-header-extend"},bm={class:"extend-content"},Cm={class:"extend-btn-group"},wm={key:1,class:"prompt-header-extend"},Tm={class:"extend-content"},_m={class:"extend-btn-group"},Em={class:"prompt-header-extend prompt-append"},xm={class:"extend-content"},Sm={class:"gradio-checkbox hover-scale-120"},km={key:0},Am=["checked"],Lm={key:1},Om=["checked"],Dm=["placeholder"],Pm=["onClick"],Im={class:"arrow-right"},Nm=["onMouseleave","onMouseenter","onClick"],Rm={key:0,class:"tags-name"},Mm={key:1,class:"tags-name"},Fm={class:"tags-detail"},Hm={class:"tags-list"},Bm={key:0,class:"item-wrap"},jm={key:1,class:"tags-item"},$m={class:"item-tag-value"},Um={class:"item-tag-local-value"},Wm={class:"prompt-tags-list",ref:"promptTagsList"},Vm=["data-id"],Km=["onMouseenter"],qm={class:"prompt-tag-edit"},zm=["onClick","onDblclick","innerHTML"],Xm=["placeholder","value","onBlur","onKeydown","onChange"],Ym=["onClick"],Gm={class:"btn-tag-extend"},Jm=["onClick"],Zm=["onClick"],Qm=["onClick"],ev=["onClick"],tv=["onClick"],nv=["onClick"],iv=["onClick"],rv=["onClick"],sv=["onClick"],ov={class:"prompt-local-language"},av=["onClick"],lv={class:"local-language"},uv=["data-id"],cv={class:"btns-title"};function fv(e,t,n,i,r,o){const l=Lt("icon-svg"),c=Lt("vue-number-input"),d=Lt("highlight-prompt"),m=Us("tooltip");return R(),B("div",{class:"physton-prompt",name:n.name},[_("div",{class:At(["prompt-main",n.hidePanel?"fold":""]),onClick:t[44]||(t[44]=(...g)=>o.onPromptMainClick&&o.onPromptMainClick(...g))},[_("div",Zg,[_("div",{class:"prompt-unfold",onClick:t[0]||(t[0]=(...g)=>e.onUnfoldClick&&e.onUnfoldClick(...g))},[ve(l,{class:"hover-scale-120",name:"unfold"})]),_("div",Qg,ce(n.neg?e.getLang("negative_prompt"):e.getLang("prompt")),1),fe(_("div",{class:"prompt-header-counter"},"("+ce(r.counterText)+")",513),[[_t,r.counterText]]),_("div",em,[_("div",tm,[_("div",nm,[fe((R(),B("div",{class:"extend-btn-item",onClick:t[1]||(t[1]=g=>e.$emit("click:selectLanguage",g))},[ve(l,{class:"hover-scale-120",name:"i18n"})])),[[m,"Language: "+e.langName]]),_("div",{class:At(["extend-btn-item",n.isLatestVersion?"":"red-dot"])},[fe(ve(l,{class:"hover-scale-120",name:"setting"},null,512),[[m,e.getLang("setting_desc")]]),_("div",im,[o.translateApiItem.name&&!o.isEnglish?fe((R(),B("div",{key:0,class:"extend-btn-item",onClick:t[2]||(t[2]=g=>e.$emit("click:translateApi",g))},[ve(l,{class:"hover-scale-120",name:"api"})])),[[m,e.getLang("translate_api")+": "+o.translateApiItem.name]]):ze("",!0),fe((R(),B("div",{class:"extend-btn-item",onClick:t[3]||(t[3]=g=>e.$emit("click:promptFormat",g))},[ve(l,{class:"hover-scale-120",name:"format"})])),[[m,e.getLang("prompt_format")]]),fe((R(),B("div",{class:"extend-btn-item",onClick:t[4]||(t[4]=g=>e.$emit("click:selectTheme",g))},[ve(l,{class:"hover-scale-120",name:"theme"})])),[[m,e.getLang("theme_extension")]]),fe((R(),B("div",{class:At(["extend-btn-item",n.isLatestVersion?"":"red-dot"]),onClick:t[5]||(t[5]=g=>e.$emit("click:showAbout",g))},[ve(l,{class:"hover-scale-120",name:"about"})],2)),[[m,e.getLang("about_desc")]]),o.isEnglish?ze("",!0):(R(),B(Re,{key:1},[n.canOneTranslate?(R(),B("div",rm,[fe((R(),B("label",null,[_("input",{type:"checkbox",name:"auto_translate",value:"1",checked:n.autoTranslate,onChange:t[6]||(t[6]=g=>e.$emit("update:autoTranslate",g.target.checked))},null,40,sm),ve(l,{name:"translate"})])),[[m,e.getLang("auto_translate")]])])):(R(),B(Re,{key:1},[_("div",om,[fe((R(),B("label",null,[_("input",{type:"checkbox",name:"auto_translate_to_local_language",value:"1",checked:n.autoTranslateToLocal,onChange:t[7]||(t[7]=g=>e.$emit("update:autoTranslateToLocal",g.target.checked))},null,40,am),ve(l,{name:"translate"})])),[[m,e.getLang("auto_translate_to_local_language")]])]),_("div",lm,[fe((R(),B("label",null,[_("input",{type:"checkbox",name:"auto_translate_to_english",value:"1",checked:n.autoTranslateToEnglish,onChange:t[8]||(t[8]=g=>e.$emit("update:autoTranslateToEnglish",g.target.checked))},null,40,um),ve(l,{name:"english"})])),[[m,e.getLang("auto_translate_to_english")]])])],64))],64)),_("div",cm,[fe((R(),B("label",null,[_("input",{type:"checkbox",name:"enable_tooltip",value:"1",checked:n.enableTooltip,onChange:t[9]||(t[9]=g=>e.$emit("update:enableTooltip",g.target.checked))},null,40,fm),ve(l,{name:"tooltip"})])),[[m,e.getLang("whether_to_enable_tooltip")]])])])],2)])])]),_("div",dm,[_("div",pm,[_("div",hm,[fe((R(),B("div",{class:"extend-btn-item",ref:"historyButton",onClick:t[10]||(t[10]=g=>e.$emit("click:showHistory",g))},[ve(l,{class:"hover-scale-120",name:"history"})])),[[m,e.getLang("history")]]),fe((R(),B("div",{class:"extend-btn-item",ref:"favoriteButton",onClick:t[11]||(t[11]=g=>e.$emit("click:showFavorite",g))},[ve(l,{class:"hover-scale-120",name:"favorite"})])),[[m,e.getLang("favorite")]])])])]),o.isEnglish?ze("",!0):(R(),B("div",gm,[_("div",mm,[_("div",vm,[n.canOneTranslate?fe((R(),B("div",{key:0,class:"extend-btn-item",onClick:t[12]||(t[12]=(...g)=>e.onTranslatesToLocalClick&&e.onTranslatesToLocalClick(...g))},[r.loading.all_local?ze("",!0):(R(),vt(l,{key:0,class:"hover-scale-120",name:"translate"})),r.loading.all_local?(R(),vt(l,{key:1,class:"hover-scale-120",name:"loading"})):ze("",!0)])),[[m,e.getLang("one_translate_all_keywords")]]):(R(),B(Re,{key:1},[fe((R(),B("div",{class:"extend-btn-item",onClick:t[13]||(t[13]=(...g)=>e.onTranslatesToLocalClick&&e.onTranslatesToLocalClick(...g))},[r.loading.all_local?ze("",!0):(R(),vt(l,{key:0,class:"hover-scale-120",name:"translate"})),r.loading.all_local?(R(),vt(l,{key:1,class:"hover-scale-120",name:"loading"})):ze("",!0)])),[[m,e.getLang("translate_keywords_to_local_language")]]),fe((R(),B("div",{class:"extend-btn-item",onClick:t[14]||(t[14]=(...g)=>e.onTranslatesToEnglishClick&&e.onTranslatesToEnglishClick(...g))},[r.loading.all_en?ze("",!0):(R(),vt(l,{key:0,class:"hover-scale-120",name:"english"})),r.loading.all_en?(R(),vt(l,{key:1,class:"hover-scale-120",name:"loading"})):ze("",!0)])),[[m,e.getLang("translate_all_keywords_to_english")]])],64))])])])),_("div",ym,[_("div",bm,[_("div",Cm,[fe((R(),B("div",{class:"extend-btn-item",onClick:t[15]||(t[15]=(...g)=>e.onCopyAllTagsClick&&e.onCopyAllTagsClick(...g))},[ve(l,{class:"hover-scale-120",name:"copy"})])),[[m,e.getLang("copy_keywords_to_clipboard")]]),fe((R(),B("div",{class:"extend-btn-item",onClick:t[16]||(t[16]=(...g)=>e.onDeleteAllTagsClick&&e.onDeleteAllTagsClick(...g))},[ve(l,{class:"hover-scale-120",name:"remove"})])),[[m,e.getLang("delete_all_keywords")]])])])]),n.neg?ze("",!0):(R(),B("div",wm,[_("div",Tm,[_("div",_m,[fe((R(),B("div",{class:"extend-btn-item",onClick:t[17]||(t[17]=g=>e.$emit("click:showChatgpt",g))},[ve(l,{class:"hover-scale-120",name:"chatgpt"})])),[[m,e.getLang("use_chatgpt_gen_prompts")]])])])])),_("div",Em,[_("div",xm,[_("div",Sm,[n.hideDefaultInput?fe((R(),B("label",km,[_("input",{type:"checkbox",name:"hide_default_input",value:"1",checked:!n.hideDefaultInput,onChange:t[18]||(t[18]=g=>e.$emit("update:hideDefaultInput",!g.target.checked))},null,40,Am),ve(l,{name:"input"})])),[[m,e.getLang("show_default_input_box")]]):fe((R(),B("label",Lm,[_("input",{type:"checkbox",name:"hide_default_input",value:"1",checked:!n.hideDefaultInput,onChange:t[19]||(t[19]=g=>e.$emit("update:hideDefaultInput",!g.target.checked))},null,40,Om),ve(l,{name:"input"})])),[[m,e.getLang("hide_default_input_box")]])]),fe(_("textarea",{type:"text",class:"scroll-hide svelte-4xt1ch input-tag-append",ref:"promptTagAppend",placeholder:e.getLang("please_enter_new_keyword"),onFocus:t[20]||(t[20]=(...g)=>e.onAppendTagFocus&&e.onAppendTagFocus(...g)),onBlur:t[21]||(t[21]=(...g)=>e.onAppendTagBlur&&e.onAppendTagBlur(...g)),onKeyup:t[22]||(t[22]=(...g)=>e.onAppendTagKeyUp&&e.onAppendTagKeyUp(...g)),onKeydown:t[23]||(t[23]=(...g)=>e.onAppendTagKeyDown&&e.onAppendTagKeyDown(...g))},null,40,Dm),[[m,e.getLang("enter_to_add")]]),fe(_("div",{class:"prompt-append-list",ref:"promptAppendList",style:Kt(e.appendListStyle)},[(R(!0),B(Re,null,mt(e.appendList,(g,w)=>(R(),B("div",{key:g.type,class:At(["prompt-append-group",e.appendListSelected===w?"selected":""])},[_("div",{class:"append-group-name",onClick:T=>e.onAppendGroupClick(w,null,T)},[g.icon==="wrap"?(R(),vt(l,{key:0,class:"name-icon",name:"wrap"})):g.icon==="history"?(R(),vt(l,{key:1,class:"name-icon",name:"history"})):g.icon==="favorite"?(R(),vt(l,{key:2,class:"name-icon",name:"favorite"})):ze("",!0),$t(" "+ce(e.appendListItemName(g))+" ",1),fe(_("span",Im,null,512),[[_t,g.children.length>0]])],8,Pm),fe(_("div",{class:"append-group-list",ref_for:!0,ref:"promptAppendListChildren"},[(R(!0),B(Re,null,mt(g.children,(T,N)=>(R(),B("div",{key:N,ref_for:!0,ref:"promptAppendListChild",class:At(["append-item",e.appendListChildSelected===N?"selected":""]),onMouseleave:S=>e.onAppendListChildMouseLeave(w,N,S),onMouseenter:S=>e.onAppendListChildMouseEnter(w,N,S),onClick:S=>e.onAppendGroupClick(w,N,S)},[g.type==="favorite"||g.type==="history"?(R(),B(Re,{key:0},[T.name?(R(),B("div",Rm,ce(T.name),1)):(R(),B("div",Mm,ce(T.prompt),1))],64)):ze("",!0)],42,Nm))),128))],512),[[_t,g.children.length>0]]),fe(_("div",Fm,[_("div",Hm,[(R(!0),B(Re,null,mt(e.appendListChildItemTags,(T,N)=>(R(),B(Re,{key:N},[T.type&&T.type==="wrap"?(R(),B("div",Bm)):(R(),B("div",jm,[_("div",$m,ce(T.value),1),_("div",Um,ce(T.localValue),1)]))],64))),128))])],512),[[_t,e.appendListSelected!==null&&e.appendListChildSelected!==null&&e.appendListSelected===w&&(g.type==="favorite"||g.type==="history")]])],2))),128))],4),[[_t,e.showAppendList]])])])]),_("div",{class:At(["prompt-tags",r.droping?"droping":"",e.dropIsSelecting||e.dropIsEnd&&e.dropTags.length?"selecting":""]),ref:"promptTags",onMousedown:t[41]||(t[41]=(...g)=>e.onDropMouseDown&&e.onDropMouseDown(...g)),onMousemove:t[42]||(t[42]=(...g)=>e.onDropMouseMove&&e.onDropMouseMove(...g)),onMouseup:t[43]||(t[43]=(...g)=>e.onDropMouseUp&&e.onDropMouseUp(...g))},[_("div",Wm,[(R(!0),B(Re,null,mt(r.tags,(g,w)=>(R(),B("div",{key:g.id,class:At(["prompt-tag",g.disabled?"disabled":"",g.type==="wrap"?"wrap-tag":""]),ref_for:!0,ref:"promptTag-"+g.id,"data-id":g.id},[_("div",{class:"prompt-tag-main",onMouseenter:T=>e.onTagMouseEnter(g.id),onMousedown:t[24]||(t[24]=gt(()=>{},["stop"])),onMousemove:t[25]||(t[25]=gt(()=>{},["stop"])),onMouseup:t[26]||(t[26]=gt(()=>{},["stop"]))},[_("div",qm,[g.type==="wrap"?fe((R(),B("div",{key:0,class:"prompt-tag-value",ref_for:!0,ref:"promptTagValue-"+g.id,style:{width:"100%"}},[ve(l,{name:"wrap"})])),[[m,e.getLang("line_break_character")+" "+e.getLang("drop_to_order")]]):(R(),B(Re,{key:1},[fe(_("div",{class:At(g.classes),ref_for:!0,ref:"promptTagValue-"+g.id,onClick:T=>e.onTagClick(g.id,T),onDblclick:T=>e.onTagDblclick(g.id),innerHTML:e.renderTag(g.id)},null,42,zm),[[_t,!r.editing[g.id]],[m,e.getLang("click_to_edit")+" "+e.getLang("dblclick_to_disable")+" "+e.getLang("drop_to_order")]]),fe(_("textarea",{type:"text",class:"scroll-hide svelte-4xt1ch input-tag-edit",ref_for:!0,ref:"promptTagEdit-"+g.id,placeholder:e.getLang("enter_to_save"),value:g.value,onBlur:T=>e.onTagInputBlur(g.id),onKeydown:T=>e.onTagInputKeyDown(g.id,T),onChange:T=>e.onTagInputChange(g.id,T)},null,40,Xm),[[_t,r.editing[g.id]]])],64)),_("div",{class:"btn-tag-delete",ref_for:!0,ref:"promptTagDelete-"+g.id,onClick:T=>e.onDeleteTagClick(g.id)},[ve(l,{name:"close"})],8,Ym)]),fe(_("div",Gm,[ve(c,{class:"input-number","model-value":g.weightNum,center:"",controls:"",min:0,step:.1,size:"small","onUpdate:modelValue":T=>e.onTagWeightNumChange(g.id,T)},null,8,["model-value","step","onUpdate:modelValue"]),fe((R(),B("button",{type:"button",onClick:T=>e.onIncWeightClick(g.id,1)},[ve(l,{name:"weight-parentheses-inc"})],8,Jm)),[[m,e.getLang("increase_weight_add_parentheses")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onIncWeightClick(g.id,-1)},[ve(l,{name:"weight-parentheses-dec"})],8,Zm)),[[m,e.getLang("increase_weight_subtract_parentheses")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onDecWeightClick(g.id,1)},[ve(l,{name:"weight-brackets-inc"})],8,Qm)),[[m,e.getLang("decrease_weight_add_brackets")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onDecWeightClick(g.id,-1)},[ve(l,{name:"weight-brackets-dec"})],8,ev)),[[m,e.getLang("decrease_weight_subtract_brackets")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onWrapTagClick(g.id)},[ve(l,{name:"wrap"})],8,tv)),[[m,e.getLang("line_break_character")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onTranslateToEnglishClick(g.id)},[r.loading[g.id+"_en"]?ze("",!0):(R(),vt(l,{key:0,name:"english"})),r.loading[g.id+"_en"]?(R(),vt(l,{key:1,name:"loading"})):ze("",!0)],8,nv)),[[m,e.getLang("translate_keyword_to_english")],[_t,!o.isEnglish]]),fe((R(),B("button",{type:"button",onClick:T=>o.copy(g.value)},[ve(l,{name:"copy"})],8,iv)),[[m,e.getLang("copy_to_clipboard")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onFavoriteTagClick(g.id)},[g.isFavorite?(R(),vt(l,{key:0,name:"favorite-yes"})):ze("",!0),g.isFavorite?ze("",!0):(R(),vt(l,{key:1,name:"favorite-no"}))],8,rv)),[[m,e.getLang(g.isFavorite?"remove_from_favorite":"add_to_favorite")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onDisabledTagClick(g.id)},[g.disabled?ze("",!0):(R(),vt(l,{key:0,name:"disabled"})),g.disabled?(R(),vt(l,{key:1,name:"enable"})):ze("",!0)],8,sv)),[[m,e.getLang(g.disabled?"enable_keyword":"disable_keyword")]])],512),[[_t,g.type==="text"||!g.type]])],40,Km),fe(_("div",ov,[fe((R(),B("div",{class:"translate-to-local hover-scale-120",onClick:T=>e.onTranslateToLocalClick(g.id),onMousedown:t[27]||(t[27]=gt(()=>{},["stop"])),onMousemove:t[28]||(t[28]=gt(()=>{},["stop"])),onMouseup:t[29]||(t[29]=gt(()=>{},["stop"]))},[r.loading[g.id+"_local"]?ze("",!0):(R(),vt(l,{key:0,name:"translate"})),r.loading[g.id+"_local"]?(R(),vt(l,{key:1,name:"loading"})):ze("",!0)],40,av)),[[m,e.getLang("translate_keyword_to_local_language")]]),_("div",lv,ce(g.localValue),1)],512),[[_t,!o.isEnglish&&(g.type==="text"||!g.type)]])],10,Vm))),128)),(R(!0),B(Re,null,mt(r.tags,(g,w)=>(R(),B("div",{key:g.id,class:At(["prompt-wrap",g.type==="wrap"?"wrap-tag":""]),"data-id":g.id,ref_for:!0,ref:"promptTagWrap",onMousedown:t[30]||(t[30]=gt(()=>{},["stop"])),onMousemove:t[31]||(t[31]=gt(()=>{},["stop"])),onMouseup:t[32]||(t[32]=gt(()=>{},["stop"]))},null,42,uv))),128))],512),_("div",{class:"drop-select-bg",ref:"dropSelectBg",style:Kt({display:e.dropIsStart?"block":"none"})},null,4),_("div",{class:"drop-select-box",ref:"dropSelectBox",style:Kt({display:e.dropIsSelecting?"block":"none",top:e.dropArea.top+"px",left:e.dropArea.left+"px",width:e.dropArea.width+"px",height:e.dropArea.height+"px"})},null,4),_("div",{class:"drop-select-btns",ref:"dropSelectBtns",style:Kt({display:e.dropIsEnd&&e.dropTags.length?"flex":"none",top:e.dropEndY-32+"px",left:e.dropEndX+"px"}),onMousedown:t[38]||(t[38]=gt(()=>{},["stop"])),onMousemove:t[39]||(t[39]=gt(()=>{},["stop"])),onMouseup:t[40]||(t[40]=gt(()=>{},["stop"]))},[_("div",cv,ce(e.getLang("batch_operation")),1),fe((R(),B("button",{type:"button",onClick:t[33]||(t[33]=(...g)=>e.onDropCopy&&e.onDropCopy(...g))},[ve(l,{name:"copy"})])),[[m,e.getLang("copy_to_clipboard")]]),fe((R(),B("button",{type:"button",onClick:t[34]||(t[34]=(...g)=>e.onDropFavorite&&e.onDropFavorite(...g))},[ve(l,{name:"favorite-no"})])),[[m,e.getLang("add_to_favorite")]]),fe((R(),B("button",{type:"button",onClick:t[35]||(t[35]=(...g)=>e.onDropDisable&&e.onDropDisable(...g))},[ve(l,{name:"disabled"})])),[[m,e.getLang("disable_keyword")]]),fe((R(),B("button",{type:"button",onClick:t[36]||(t[36]=(...g)=>e.onDropEnable&&e.onDropEnable(...g))},[ve(l,{name:"enable"})])),[[m,e.getLang("enable_keyword")]]),_("button",{type:"button",onClick:t[37]||(t[37]=(...g)=>e.onDropDelete&&e.onDropDelete(...g))},[ve(l,{name:"remove"})])],36)],34)],2),ve(d,{ref:"highlightPrompt",textarea:n.textarea,"hide-default-input":n.hideDefaultInput},null,8,["textarea","hide-default-input"])],8,Jg)}const dv=sn(Gg,[["render",fv]]),pv={name:"TranslateSetting",components:{IconSvg:Fn},mixins:[Yn],props:{},data(){return{testText:`Hi, this extension is developed by Physton. Welcome to use it!
+If you have any suggestions or opinions, please feel free to raise an issue or PR on Github.
+If you find this extension helpful, please give me a star on Github!
+
+Developed by: Physton
+Github: Physton/sd-webui-prompt-all-in-one`,translateSuccess:!1,errorMessage:"",translatedText:"",loading:!1,isOpen:!1,configs:[],apiKey:"",tagCompleteFiles:[],tagCompleteFilesLoading:!1,tagCompleteFileKey:"",tagCompleteResults:[],onlyCsvOnAutoValue:!1}},computed:{apiItem(){return oe.getTranslateApiItem(this.translateApis,this.apiKey)},supportApi(){if(!this.translateApis||this.translateApis.length<=0)return[];let e=JSON.parse(JSON.stringify(this.translateApis));return e.forEach(t=>{t.children=t.children.filter(n=>n.support[this.languageCode])}),e}},mounted(){this.translateSuccess=!1,this.errorMessage="",this.translatedText="",this.loading=!1},emits:["update:translateApi","forceUpdate:translateApi","update:tagCompleteFile","update:onlyCsvOnAuto"],watch:{apiKey:{handler:function(e,t){this.translateSuccess=!1,this.errorMessage="",this.translatedText="",this.loading=!1,this.configs=[],this.gradioAPI.getData("translate_api."+this.apiKey).then(n=>{const i=this.apiItem;if(i&&i.config){for(const r of this.apiItem.config)n?r.value=n[r.key]||r.default:r.value=r.default||"",this.configs.push(r);console.log(this.configs)}})},immediate:!1}},methods:{open(e){this.apiKey=e,this.isOpen=!0,this.errorMessage="",this.translatedText="",this.loading=!1,this.tagCompleteFileKey=this.tagCompleteFile,this.onlyCsvOnAutoValue=this.onlyCsvOnAuto,this.refreshCSVs()},getItemName(e){let t=e.name;return t=t.replace("[Free] ","["+this.getLang("free")+"] "),t=t.replace("[ApiKey] ","["+this.getLang("apply_for_free")+"] "),t},onChangeConfigValue(e){e.type==="input"&&e.value===""&&e.default&&(e.value=e.default)},refreshCSVs(){this.tagCompleteFilesLoading||(this.tagCompleteFilesLoading=!0,this.tagCompleteFiles=[],this.gradioAPI.getCSVs().then(e=>{if(this.tagCompleteFilesLoading=!1,!(!e||e.length<=0)){this.tagCompleteFiles.push({key:"",name:this.getLang("not_enable")});for(const t of e)this.tagCompleteFiles.push({key:t.key,name:t.key})}}).catch(e=>{this.tagCompleteFilesLoading=!1}))},onTestClick(){if(this.loading)return;this.translateSuccess=!1,this.errorMessage="",this.translatedText="",this.loading=!0;let e={};for(const t of this.configs)e[t.key]=t.value;this.translate(this.testText,"en_US",this.languageCode,this.apiKey,e).then(t=>{t.success?(this.translatedText=t.translated_text,this.translateSuccess=!0):this.errorMessage=t.message,this.loading=!1}).catch(t=>{this.errorMessage=t.message,this.loading=!1})},translate(e,t,n,i=null,r=null){return new Promise(async(o,l)=>{i=i||this.translateApi,r=r||this.translateApiConfig||{},this.gradioAPI.translate(e,t,n,i,r).then(c=>{c.success?o(c):l(c)}).catch(c=>{l(c)})})},onSaveClick(){this.isOpen=!1;let e={};for(const t of this.configs)e[t.key]=t.value;this.$emit("update:translateApi",this.apiKey),this.$emit("update:tagCompleteFile",this.tagCompleteFileKey),this.$emit("update:onlyCsvOnAuto",this.onlyCsvOnAutoValue),this.gradioAPI.setData("translate_api."+this.apiKey,e).then(t=>{this.apiKey===this.translateApi&&this.$emit("forceUpdate:translateApi")})},onCloseClick(){this.isOpen=!1},onTagCompleteTestClick(){this.tagCompleteResults=[],["1girl","Robot dog"].forEach(t=>{let n=this.getLang("translate_result");this.translateToLocalByCSV(t,this.tagCompleteFileKey,!0).then(i=>{this.tagCompleteResults.push(n.replace("{0}",t).replace("{1}",i))}).catch(i=>{this.$toastr.error(i)})})}}},hv={key:0,class:"physton-prompt-translate-setting"},gv={class:"translate-setting-main"},mv={class:"translate-setting-content"},vv={class:"setting-line"},yv={class:"line-title"},bv={class:"line-content"},Cv=["label"],wv=["value"],Tv={key:0,class:"setting-line"},_v=_("div",{class:"line-title"},null,-1),Ev={class:"line-content"},xv={class:"common-red"},Sv={key:1,class:"setting-line"},kv=_("div",{class:"line-title"},null,-1),Av={class:"line-content"},Lv={class:"help-list"},Ov={class:"help-item"},Dv=["href"],Pv={class:"setting-line"},Iv={class:"line-title"},Nv={class:"line-content"},Rv=["onUpdate:modelValue","onChange"],Mv=["onUpdate:modelValue"],Fv=["value"],Hv={class:"setting-line"},Bv={class:"line-title"},jv={class:"line-content"},$v={class:"setting-line"},Uv=_("div",{class:"line-title"},null,-1),Wv={class:"line-content"},Vv={class:"setting-line"},Kv=_("div",{class:"line-title"},null,-1),qv={class:"line-content"},zv={key:0,class:"translate-error"},Xv={class:"setting-line"},Yv=_("div",{class:"line-title"},"TagComplete",-1),Gv={class:"line-content"},Jv=["innerHTML"],Zv=["innerHTML"],Qv={class:"line-row"},ey=["value"],ty={class:"setting-line"},ny=_("div",{class:"line-title"},null,-1),iy={class:"line-content"},ry={ref:"tagCompleteResults"},sy={class:"setting-btns"};function oy(e,t,n,i,r,o){const l=Lt("icon-svg"),c=Us("tooltip");return r.isOpen?(R(),B("div",hv,[_("div",gv,[_("div",mv,[_("div",vv,[_("div",yv,ce(e.getLang("translate_api")),1),_("div",bv,[fe(_("select",{"onUpdate:modelValue":t[0]||(t[0]=d=>r.apiKey=d)},[(R(!0),B(Re,null,mt(o.supportApi,d=>(R(),B("optgroup",{key:d.type,label:e.getLang(d.type)},[(R(!0),B(Re,null,mt(d.children,m=>(R(),B("option",{key:m.key,value:m.key},ce(o.getItemName(m)),9,wv))),128))],8,Cv))),128))],512),[[Xs,r.apiKey]])])]),o.apiItem&&o.apiItem.type=="translators"?(R(),B("div",Tv,[_v,_("div",Ev,[_("span",xv,"*"+ce(e.getLang("not_api_key_desc")),1)])])):ze("",!0),o.apiItem.help?(R(),B("div",Sv,[kv,_("div",Av,[(R(!0),B(Re,null,mt(o.apiItem.help,d=>(R(),B("div",Lv,[_("div",Ov,[$t("[?] "),_("a",{href:d.url,target:"_blank"},ce(d.title),9,Dv)])]))),256))])])):ze("",!0),(R(!0),B(Re,null,mt(r.configs,d=>(R(),B("div",Pv,[_("div",Iv,ce(d.title),1),_("div",Nv,[d.type=="input"?fe((R(),B("input",{key:0,type:"text","onUpdate:modelValue":m=>d.value=m,onChange:m=>o.onChangeConfigValue(d)},null,40,Rv)),[[Hi,d.value]]):ze("",!0),d.type=="select"?fe((R(),B("select",{key:1,"onUpdate:modelValue":m=>d.value=m},[(R(!0),B(Re,null,mt(d.options,m=>(R(),B("option",{value:m},ce(m),9,Fv))),256))],8,Mv)),[[Xs,d.value]]):ze("",!0)])]))),256)),_("div",Hv,[_("div",Bv,ce(e.getLang("translate_test")),1),_("div",jv,[fe(_("textarea",{class:"test-input","onUpdate:modelValue":t[1]||(t[1]=d=>r.testText=d)},null,512),[[Hi,r.testText]])])]),_("div",$v,[Uv,_("div",Wv,[_("div",{class:"hover-scale-120 test-btn",onClick:t[2]||(t[2]=(...d)=>o.onTestClick&&o.onTestClick(...d))},[r.loading?(R(),vt(l,{key:0,name:"loading"})):(R(),B(Re,{key:1},[$t(ce(e.getLang("test")),1)],64))])])]),_("div",Vv,[Kv,_("div",qv,[!r.translateSuccess&&r.errorMessage?(R(),B("div",zv,ce(r.errorMessage),1)):ze("",!0),r.translatedText?fe((R(),B("textarea",{key:1,class:"test-input","onUpdate:modelValue":t[3]||(t[3]=d=>r.translatedText=d)},null,512)),[[Hi,r.translatedText]]):ze("",!0)])]),_("div",Xv,[Yv,_("div",Gv,[_("div",{innerHTML:e.getLang("tagcomplete_translate_desc")},null,8,Jv),_("div",{class:"common-red",innerHTML:e.getLang("tagcomplete_translate_desc2")},null,8,Zv),_("div",Qv,[fe(_("select",{"onUpdate:modelValue":t[4]||(t[4]=d=>r.tagCompleteFileKey=d),onChange:t[5]||(t[5]=d=>r.tagCompleteResults=[])},[(R(!0),B(Re,null,mt(r.tagCompleteFiles,d=>(R(),B("option",{value:d.key},ce(d.name),9,ey))),256))],544),[[Xs,r.tagCompleteFileKey]]),fe((R(),B("div",{class:"refresh-btn hover-scale-120",onClick:t[6]||(t[6]=(...d)=>o.refreshCSVs&&o.refreshCSVs(...d))},[r.tagCompleteFilesLoading?(R(),vt(l,{key:0,name:"loading"})):(R(),vt(l,{key:1,name:"refresh"}))])),[[c,e.getLang("refresh")]])]),_("label",{class:"onlyCsvOnAuto",style:Kt({display:r.tagCompleteFileKey?"flex":"none"})},[fe(_("input",{class:"hover-scale-120",type:"checkbox",value:"1","onUpdate:modelValue":t[7]||(t[7]=d=>r.onlyCsvOnAutoValue=d)},null,512),[[zh,r.onlyCsvOnAutoValue]]),_("span",null,ce(e.getLang("only_csv_on_auto")),1)],4)])]),fe(_("div",ty,[ny,_("div",iy,[_("div",{class:"hover-scale-120 test-btn",onClick:t[8]||(t[8]=(...d)=>o.onTagCompleteTestClick&&o.onTagCompleteTestClick(...d))},ce(e.getLang("test")),1),fe(_("div",ry,[(R(!0),B(Re,null,mt(r.tagCompleteResults,d=>(R(),B("p",{key:d},ce(d),1))),128))],512),[[_t,r.tagCompleteResults.length>0]])])],512),[[_t,r.tagCompleteFileKey]])]),_("div",sy,[_("div",{class:"translate-save hover-scale-120",onClick:t[9]||(t[9]=(...d)=>o.onSaveClick&&o.onSaveClick(...d))},ce(e.getLang("save")),1),_("div",{class:"translate-close hover-scale-120",onClick:t[10]||(t[10]=(...d)=>o.onCloseClick&&o.onCloseClick(...d))},ce(e.getLang("close")),1)])])])):ze("",!0)}const ay=sn(pv,[["render",oy]]),ly={name:"SelectLanguage",components:{IconSvg:Fn},mixins:[Yn],props:{},data(){return{isOpen:!1}},computed:{},mounted(){},methods:{open(){this.isOpen=!0,this.$nextTick(()=>{this.scrollToSelectedItem()})},close(){this.isOpen=!1},onLanguageClick(e){this.$emit("update:languageCode",e.code),this.close()},scrollToSelectedItem(){const e=this.$refs.items;for(let t=0;to.close&&o.close(...c))},[_("div",{class:"language-main",onClick:t[2]||(t[2]=gt(()=>{},["stop"]))},[_("div",{class:"language-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"language-list",onClick:t[1]||(t[1]=gt(()=>{},["stop"]))},[(R(!0),B(Re,null,mt(e.languages,c=>(R(),B("div",{key:c.code,class:At(["language-item",c.code==e.languageCode?"selected":""]),ref_for:!0,ref:"items",onClick:d=>o.onLanguageClick(c)},ce(c.code)+" - "+ce(c.name),11,uy))),128))])])])):ze("",!0)}const fy=sn(ly,[["render",cy]]),dy={components:{IconSvg:Fn},props:{},mixins:[Yn],data(){return{favoriteKey:"",favorites:[{name:"txt2img",type:"prompt",key:"txt2img",list:[]},{name:"txt2img",type:"negative_prompt",key:"txt2img_neg",list:[]},{name:"img2img",type:"prompt",key:"img2img",list:[]},{name:"img2img",type:"negative_prompt",key:"img2img_neg",list:[]}],isShow:!1,loading:!1,emptyMsg:"",mouseEnter:!1,currentItem:{}}},emits:["use"],mounted(){this.favorites.forEach(e=>{this.getFavorites(e.key)})},methods:{formatTime(e){return oe.formatTime(e*1e3,!1)},getFavorites(e){if(!e)return;let t=this.favorites.find(n=>n.key===e);t&&(this.loading=!0,this.gradioAPI.getFavorites(e).then(n=>{n&&n.length>0&&(n.reverse(),n.forEach(i=>{i.is_favorite=!0}),t.list=n),window.phystonPromptfavorites=this.favorites,this.emptyMsg=this.getLang("no_favorite"),this.loading=!1}).catch(n=>{this.emptyMsg=this.getLang("get_favorite_error"),this.loading=!1}))},show(e,t){if(!(!e||!t)){if(this.favoriteKey=e,this.isShow){this.isShow=!1;return}this.mouseEnter=!1,this.loading=!0,this.isShow=!0,this.$refs.favorite.style.top=t.pageY+2+"px",this.$refs.favorite.style.left=t.pageX+2+"px",this.getFavorites(this.favoriteKey),setTimeout(()=>{this.mouseEnter||this.hide()},3e3)}},hide(){this.mouseEnter=!1,this.isShow=!1},onMouseEnter(){this.mouseEnter=!0},onMouseLeave(){this.hide()},onTabClick(e){this.favoriteKey=e,this.getFavorites(this.favoriteKey)},onFavoriteClick(e){let t=this.favorites.find(i=>i.key===this.favoriteKey);if(!t)return;let n=t.list[e];n.is_favorite?this.gradioAPI.unFavorite(this.favoriteKey,n.id).then(i=>{i&&(n.is_favorite=!1,window.phystonPromptfavorites=this.favorites)}):this.gradioAPI.doFavorite(this.favoriteKey,n.id).then(i=>{i&&(n.is_favorite=!0,window.phystonPromptfavorites=this.favorites)})},onCopyClick(e){let t=this.favorites.find(i=>i.key===this.favoriteKey);if(!t)return;let n=t.list[e];this.$copyText(n.prompt).then(()=>{this.$toastr.success("success!")}).catch(()=>{this.$toastr.error("error!")})},onNameKeyDown(e,t){t.keyCode===13&&t.target.blur()},onNameChange(e,t){let n=this.favorites.find(o=>o.key===this.favoriteKey);if(!n)return;let i=n.list[e];const r=t.target.value;this.gradioAPI.setFavoriteName(this.favoriteKey,i.id,r).then(o=>{o?(i.name=r,window.phystonPromptfavorites=this.favorites):t.target.value=i.name}).catch(o=>{t.target.value=i.name})},onItemMouseEnter(e){let t=this.favorites.find(n=>n.key===this.favoriteKey);t&&(this.currentItem=t.list[e])},onItemMouseLeave(e){this.currentItem={}},onUseClick(e){let t=this.favorites.find(n=>n.key===this.favoriteKey);t&&(this.hide(),this.$emit("use",t.list[e]))}}},py={class:"popup-tabs"},hy=["onClick"],gy={class:"tab-name"},my={class:"tab-type"},vy={class:"tab-count"},yy={class:"popup-detail"},by={class:"popup-item-tags"},Cy={key:0,class:"item-wrap"},wy={key:1,class:"item-tag"},Ty={class:"item-tag-value"},_y={class:"item-tag-local-value"},Ey={class:"content-list"},xy=["onMouseenter","onMouseleave"],Sy={class:"item-header"},ky={class:"item-header-left"},Ay={class:"item-header-index"},Ly={class:"item-header-time"},Oy={class:"item-header-name"},Dy=["value","onKeydown","onChange","placeholder"],Py={class:"item-header-right"},Iy=["onClick"],Ny=["onClick"],Ry=["onClick"],My=["onClick"],Fy={class:"item-prompt"},Hy={class:"content-empty"},By={key:1};function jy(e,t,n,i,r,o){const l=Lt("icon-svg"),c=Us("tooltip");return fe((R(),B("div",{class:"physton-prompt-favorite",ref:"favorite",onMouseenter:t[0]||(t[0]=(...d)=>o.onMouseEnter&&o.onMouseEnter(...d)),onMouseleave:t[1]||(t[1]=(...d)=>o.onMouseLeave&&o.onMouseLeave(...d)),onClick:t[2]||(t[2]=gt(()=>{},["stop"]))},[_("div",py,[(R(!0),B(Re,null,mt(r.favorites,d=>(R(),B("div",{key:d.key,class:At(["popup-tab",d.key===r.favoriteKey?"active":""]),onClick:m=>o.onTabClick(d.key)},[_("div",gy,ce(e.getLang(d.name)),1),_("div",my,ce(e.getLang(d.type)),1),_("div",vy,ce(d.list.length),1)],10,hy))),128))]),fe(_("div",yy,[_("div",by,[(R(!0),B(Re,null,mt(r.currentItem.tags,(d,m)=>(R(),B(Re,{key:m},[d.type&&d.type==="wrap"?(R(),B("div",Cy)):(R(),B("div",wy,[_("div",Ty,ce(d.value),1),_("div",_y,ce(d.localValue),1)]))],64))),128))])],512),[[_t,r.currentItem&&r.currentItem.tags]]),(R(!0),B(Re,null,mt(r.favorites,d=>(R(),B("div",{key:d.key,class:At(["popup-tab-content",d.key===r.favoriteKey?"active":""])},[fe(_("div",Ey,[(R(!0),B(Re,null,mt(d.list,(m,g)=>(R(),B("div",{class:"content-item",key:m.id,onMouseenter:w=>o.onItemMouseEnter(g),onMouseleave:w=>o.onItemMouseLeave(g)},[_("div",Sy,[_("div",ky,[_("div",Ay,ce(d.list.length-g),1),_("div",Ly,ce(o.formatTime(m.time)),1),_("div",Oy,[_("input",{class:"header-name-input",value:m.name,onKeydown:w=>o.onNameKeyDown(g,w),onChange:w=>o.onNameChange(g,w),placeholder:e.getLang("unset_name")},null,40,Dy)])]),_("div",Py,[fe((R(),B("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onFavoriteClick(g)},[ve(l,{name:"favorite-yes"})],8,Iy)),[[_t,m.is_favorite],[c,e.getLang("remove_from_favorite")]]),fe((R(),B("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onFavoriteClick(g)},[ve(l,{name:"favorite-no"})],8,Ny)),[[_t,!m.is_favorite],[c,e.getLang("add_to_favorite")]]),fe((R(),B("div",{class:"header-btn-copy hover-scale-140",onClick:w=>o.onCopyClick(g)},[ve(l,{name:"copy"})],8,Ry)),[[c,e.getLang("copy_to_clipboard")]]),fe((R(),B("div",{class:"header-btn-use hover-scale-140",onClick:w=>o.onUseClick(g)},[ve(l,{name:"use"})],8,My)),[[c,e.getLang("use")]])])]),_("div",Fy,ce(m.prompt),1)],40,xy))),128))],512),[[_t,d.list.length>0]]),fe(_("div",Hy,[r.loading?(R(),vt(l,{key:0,name:"loading"})):(R(),B("span",By,ce(r.emptyMsg),1))],512),[[_t,d.list.length===0]])],2))),128))],544)),[[_t,r.isShow]])}const $y=sn(dy,[["render",jy]]),Uy={components:{IconSvg:Fn},props:{},mixins:[Yn],data(){return{historyKey:"",histories:[{name:"txt2img",type:"prompt",key:"txt2img",list:[]},{name:"txt2img",type:"negative_prompt",key:"txt2img_neg",list:[]},{name:"img2img",type:"prompt",key:"img2img",list:[]},{name:"img2img",type:"negative_prompt",key:"img2img_neg",list:[]}],isShow:!1,loading:!1,emptyMsg:"",mouseEnter:!1,currentItem:{}}},emits:["use","refreshFavorites"],mounted(){},methods:{formatTime(e){return oe.formatTime(e*1e3,!1)},getHistories(e){if(!e)return;let t=this.histories.find(n=>n.key===e);t&&(this.loading=!0,this.gradioAPI.getHistories(e).then(n=>{n&&n.length>0&&(n.reverse(),t.list=n),this.emptyMsg=this.getLang("no_history"),this.loading=!1}).catch(n=>{this.emptyMsg=this.getLang("get_history_error"),this.loading=!1}))},show(e,t){if(!(!e||!t)){if(this.historyKey=e,this.isShow){this.isShow=!1;return}this.mouseEnter=!1,this.loading=!0,this.isShow=!0,this.$refs.history.style.top=t.pageY+2+"px",this.$refs.history.style.left=t.pageX+2+"px",this.getHistories(this.historyKey),setTimeout(()=>{this.mouseEnter||this.hide()},3e3)}},hide(){this.mouseEnter=!1,this.isShow=!1},onMouseEnter(){this.mouseEnter=!0},onMouseLeave(){this.hide()},onTabClick(e){this.historyKey=e,this.getHistories(this.historyKey)},onDeleteClick(e){let t=this.histories.find(i=>i.key===this.historyKey);if(!t)return;let n=t.list[e];this.gradioAPI.deleteHistory(this.historyKey,n.id).then(i=>{i&&t.list.splice(e,1)})},onFavoriteClick(e){let t=this.histories.find(i=>i.key===this.historyKey);if(!t)return;let n=t.list[e];n.is_favorite?this.gradioAPI.unFavorite(this.historyKey,n.id).then(i=>{i&&(n.is_favorite=!1,this.$emit("refreshFavorites",this.historyKey))}):this.gradioAPI.doFavorite(this.historyKey,n.id).then(i=>{i&&(n.is_favorite=!0,this.$emit("refreshFavorites",this.historyKey))})},onCopyClick(e){let t=this.histories.find(i=>i.key===this.historyKey);if(!t)return;let n=t.list[e];this.$copyText(n.prompt).then(()=>{this.$toastr.success("success!")}).catch(()=>{this.$toastr.error("error!")})},onNameKeyDown(e,t){t.keyCode===13&&t.target.blur()},onNameChange(e,t){let n=this.histories.find(o=>o.key===this.historyKey);if(!n)return;let i=n.list[e];const r=t.target.value;this.gradioAPI.setHistoryName(this.historyKey,i.id,r).then(o=>{o?(i.name=r,this.$emit("refreshFavorites",this.historyKey)):t.target.value=i.name}).catch(o=>{t.target.value=i.name})},onItemMouseEnter(e){let t=this.histories.find(n=>n.key===this.historyKey);t&&(this.currentItem=t.list[e])},onItemMouseLeave(e){this.currentItem={}},onUseClick(e){let t=this.histories.find(n=>n.key===this.historyKey);t&&(this.hide(),this.$emit("use",t.list[e]))},onDeleteAllHistoryClick(){let e=this.histories.find(t=>t.key===this.historyKey);e&&confirm(this.getLang("delete_all_history_confirm"))&&this.gradioAPI.deleteHistories(this.historyKey).then(t=>{e.list=[]}).catch(t=>{})}}},Wy={class:"popup-tabs"},Vy=["onClick"],Ky={class:"tab-name"},qy={class:"tab-type"},zy={class:"tab-count"},Xy={class:"popup-detail"},Yy={class:"popup-item-tags"},Gy={key:0,class:"item-wrap"},Jy={key:1,class:"item-tag"},Zy={class:"item-tag-value"},Qy={class:"item-tag-local-value"},eb={class:"content-list"},tb=["onMouseenter","onMouseleave"],nb={class:"item-header"},ib={class:"item-header-left"},rb={class:"item-header-index"},sb={class:"item-header-time"},ob={class:"item-header-name"},ab=["value","onKeydown","onChange","placeholder"],lb={class:"item-header-right"},ub=["onClick"],cb=["onClick"],fb=["onClick"],db=["onClick"],pb=["onClick"],hb={class:"item-prompt"},gb={class:"content-empty"},mb={key:1};function vb(e,t,n,i,r,o){const l=Lt("icon-svg"),c=Us("tooltip");return fe((R(),B("div",{class:"physton-prompt-history",ref:"history",onMouseenter:t[1]||(t[1]=(...d)=>o.onMouseEnter&&o.onMouseEnter(...d)),onMouseleave:t[2]||(t[2]=(...d)=>o.onMouseLeave&&o.onMouseLeave(...d)),onClick:t[3]||(t[3]=gt(()=>{},["stop"]))},[_("div",Wy,[(R(!0),B(Re,null,mt(r.histories,d=>(R(),B("div",{key:d.key,class:At(["popup-tab",d.key===r.historyKey?"active":""]),onClick:m=>o.onTabClick(d.key)},[_("div",Ky,ce(e.getLang(d.name)),1),_("div",qy,ce(e.getLang(d.type)),1),_("div",zy,ce(d.list.length),1)],10,Vy))),128))]),fe(_("div",Xy,[_("div",Yy,[(R(!0),B(Re,null,mt(r.currentItem.tags,(d,m)=>(R(),B(Re,{key:m},[d.type&&d.type==="wrap"?(R(),B("div",Gy)):(R(),B("div",Jy,[_("div",Zy,ce(d.value),1),_("div",Qy,ce(d.localValue),1)]))],64))),128))])],512),[[_t,r.currentItem&&r.currentItem.tags]]),(R(!0),B(Re,null,mt(r.histories,d=>(R(),B("div",{key:d.key,class:At(["popup-tab-content",d.key===r.historyKey?"active":""])},[fe(_("div",eb,[_("div",{class:"clear-btn",onClick:t[0]||(t[0]=(...m)=>o.onDeleteAllHistoryClick&&o.onDeleteAllHistoryClick(...m))},[ve(l,{name:"remove"}),$t(" "+ce(e.getLang("delete_all_history")),1)]),(R(!0),B(Re,null,mt(d.list,(m,g)=>(R(),B("div",{class:"content-item",key:m.id,onMouseenter:w=>o.onItemMouseEnter(g),onMouseleave:w=>o.onItemMouseLeave(g)},[_("div",nb,[_("div",ib,[_("div",rb,ce(d.list.length-g),1),_("div",sb,ce(o.formatTime(m.time)),1),_("div",ob,[_("input",{class:"header-name-input",value:m.name,onKeydown:w=>o.onNameKeyDown(g,w),onChange:w=>o.onNameChange(g,w),placeholder:e.getLang("unset_name")},null,40,ab)])]),_("div",lb,[_("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onDeleteClick(g)},[ve(l,{name:"remove"})],8,ub),fe((R(),B("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onFavoriteClick(g)},[ve(l,{name:"favorite-yes"})],8,cb)),[[_t,m.is_favorite],[c,e.getLang("remove_from_favorite")]]),fe((R(),B("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onFavoriteClick(g)},[ve(l,{name:"favorite-no"})],8,fb)),[[_t,!m.is_favorite],[c,e.getLang("add_to_favorite")]]),fe((R(),B("div",{class:"header-btn-copy hover-scale-140",onClick:w=>o.onCopyClick(g)},[ve(l,{name:"copy"})],8,db)),[[c,e.getLang("copy_to_clipboard")]]),fe((R(),B("div",{class:"header-btn-use hover-scale-140",onClick:w=>o.onUseClick(g)},[ve(l,{name:"use"})],8,pb)),[[c,e.getLang("use")]])])]),_("div",hb,ce(m.prompt),1)],40,tb))),128))],512),[[_t,d.list.length>0]]),fe(_("div",gb,[r.loading?(R(),vt(l,{key:0,name:"loading"})):(R(),B("span",mb,ce(r.emptyMsg),1))],512),[[_t,d.list.length===0]])],2))),128))],544)),[[_t,r.isShow]])}const yb=sn(Uy,[["render",vb]]),bb={name:"ExtensionCss",components:{IconSvg:Fn},mixins:[Yn],props:{},data(){return{isOpen:!1,list:[]}},computed:{},mounted(){},methods:{init(){this.refresh(!0)},refresh(e=!1){this.gradioAPI.getExtensionCssList().then(t=>{let n=[];for(let i=0;i{i.sort=i.manifest.type+"."+i.dir}),n.sort((i,r)=>i.sort>r.sort?1:-1),this.list=n,e&&this.list.forEach(i=>{i.selected&&oe.loadCSS(i.style,i.id,!0,!1)})})},getName(e){if(!e)return"";let t=e.manifest.name;return e.manifest.i18n&&e.manifest.i18n[this.languageCode]&&(t=e.manifest.i18n[this.languageCode]),t},onChangeSelect(e){let t=this.list.find(n=>n.id===e);t&&(t.selected=!t.selected,t.selected?oe.loadCSS(t.style,t.id,!0,!1):oe.removeCSS(t.id),this.gradioAPI.setData(t.dataName,t.selected))},open(){this.isOpen=!0,this.refresh(!1)},close(){this.isOpen=!1}}},Cb={class:"extension-table"},wb=["checked","onChange"],Tb={class:"extension-name"},_b={class:"extension-type"},Eb={class:"extension-dir"},xb={class:"extension-author"};function Sb(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-prompt-extension-css",onClick:t[3]||(t[3]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"extension-main",onClick:t[2]||(t[2]=gt(()=>{},["stop"]))},[_("div",{class:"extension-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"extension-list",onClick:t[1]||(t[1]=gt(()=>{},["stop"]))},[_("table",Cb,[(R(!0),B(Re,null,mt(r.list,(c,d)=>(R(),B("tr",{key:c.dir,class:"extension-item",ref_for:!0,ref:"items"},[_("td",null,[_("input",{class:"extension-checkbox",type:"checkbox",name:"extension-item",checked:c.selected,onChange:m=>o.onChangeSelect(c.id)},null,40,wb)]),_("td",Tb,ce(o.getName(c)),1),_("td",_b,ce(e.getLang(c.manifest.type)),1),_("td",Eb,ce(c.dir),1),_("td",xb,[c.manifest.author?(R(),B(Re,{key:0},[$t("By: "+ce(c.manifest.author),1)],64)):ze("",!0)])]))),128))])])])])):ze("",!0)}const kb=sn(bb,[["render",Sb]]),Ab={name:"PromptFormat",components:{IconSvg:Fn},mixins:[Yn],props:{autoRemoveSpace:{type:Boolean,default:!1},autoRemoveLastComma:{type:Boolean,default:!1},autoKeepWeightZero:{type:Boolean,default:!1},autoKeepWeightOne:{type:Boolean,default:!1}},data(){return{isOpen:!1}},emits:["update:autoRemoveSpace","update:autoRemoveLastComma","update:autoKeepWeightZero","update:autoKeepWeightOne"],computed:{},mounted(){},methods:{open(){this.isOpen=!0},close(){this.isOpen=!1}}},Lb={class:"format-item"},Ob=["checked"],Db=["innerHTML"],Pb={class:"format-item"},Ib=["checked"],Nb=["innerHTML"],Rb={class:"format-item"},Mb=["checked"],Fb=["innerHTML"],Hb={class:"format-item"},Bb=["checked"],jb=["innerHTML"];function $b(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-prompt-format",onClick:t[7]||(t[7]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"format-main",onClick:t[6]||(t[6]=gt(()=>{},["stop"]))},[_("div",{class:"format-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"format-list",onClick:t[5]||(t[5]=gt(()=>{},["stop"]))},[_("div",Lb,[_("input",{class:"format-checkbox",type:"checkbox",checked:n.autoRemoveSpace,onChange:t[1]||(t[1]=c=>e.$emit("update:autoRemoveSpace",c.target.checked))},null,40,Ob),_("div",{class:"format-desc",innerHTML:e.getLang("is_remove_space")},null,8,Db)]),_("div",Pb,[_("input",{class:"format-checkbox",type:"checkbox",checked:n.autoRemoveLastComma,onChange:t[2]||(t[2]=c=>e.$emit("update:autoRemoveLastComma",c.target.checked))},null,40,Ib),_("div",{class:"format-desc",innerHTML:e.getLang("is_remove_last_comma")},null,8,Nb)]),_("div",Rb,[_("input",{class:"format-checkbox",type:"checkbox",checked:n.autoKeepWeightZero,onChange:t[3]||(t[3]=c=>e.$emit("update:autoKeepWeightZero",c.target.checked))},null,40,Mb),_("div",{class:"format-desc",innerHTML:e.getLang("is_keep_weight_zero")},null,8,Fb)]),_("div",Hb,[_("input",{class:"format-checkbox",type:"checkbox",checked:n.autoKeepWeightOne,onChange:t[4]||(t[4]=c=>e.$emit("update:autoKeepWeightOne",c.target.checked))},null,40,Bb),_("div",{class:"format-desc",innerHTML:e.getLang("is_keep_weight_one")},null,8,jb)])])])])):ze("",!0)}const Ub=sn(Ab,[["render",$b]]),Wb={name:"PackagesState",components:{IconSvg:Fn},mixins:[Yn],props:{python:{type:String,default:"./python"},packagesState:{type:Array,default:()=>[]}},data(){return{todayNotShow:!1,isOpen:!1,loading:!1,showResult:!1,result:`1112323
+sfsdfsdf
+2222
+3333
+1112323
+sfsdfsdf
+2222
+3333
+1112323
+sfsdfsdf
+2222
+3333`}},emits:[],computed:{},watch:{packagesState:{handler(){this.isAllInstalled()||this.open()},deep:!0}},mounted(){},methods:{isInstalled(e){for(let t of this.packagesState)if(t.name===e)return t.state;return!1},isAllInstalled(){for(let e of this.packagesState)if(!e.state)return!1;return!0},getCommand(e){return`${this.python} -m pip install ${e.package}`},onInstallClick(){if(this.loading)return;this.loading=!0,this.showResult=!0,this.result="";let e=[];this.packagesState.forEach(i=>{i.state||e.push(i)});const t=(i=!1)=>{this.loading=!1,i&&(this.result+=`
+complete!`,setTimeout(this.close,2e3)),this.scrollToBottom()},n=()=>{let i=e.shift();if(!i)return t(!0);this.gradioAPI.installPackage(i.name,i.package).then(r=>{this.result+=`${r.message}
+`,r.state?(this.scrollToBottom(),n()):t(!1)}).catch(r=>{console.log(r),this.result+=`${i.name} install failed
+${r.message}
+`,t(!1)})};n()},scrollToBottom(){this.$nextTick(()=>{this.$refs.result.scrollTop=this.$refs.result.scrollHeight})},onTodayNotShowChange(){this.todayNotShow=!this.todayNotShow,this.gradioAPI.setData("packagesStateTodayNotShow",new Date().toLocaleDateString())},open(){this.gradioAPI.getData("packagesStateTodayNotShow").then(e=>{e&&e===new Date().toLocaleDateString()?this.close():(this.result="",this.loading=!1,this.showResult=!1,this.isOpen=!0)}).catch(e=>{})},close(){this.isOpen=!1}}},Vb={class:"today-now-show"},Kb=["value"],qb=_("div",{class:"state-body-name"},"sd-webui-prompt-all-in-one",-1),zb=["innerHTML"],Xb={class:"package-list"},Yb={class:"package-name"},Gb={class:"package-command"},Jb={key:0,class:"install-result"};function Zb(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-packages-state",onClick:t[6]||(t[6]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"state-main",onClick:t[5]||(t[5]=gt(()=>{},["stop"]))},[_("div",{class:"state-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"state-body",onClick:t[4]||(t[4]=gt(()=>{},["stop"]))},[_("div",Vb,[_("label",null,[_("input",{type:"checkbox",value:r.todayNotShow,onChange:t[1]||(t[1]=(...c)=>o.onTodayNotShowChange&&o.onTodayNotShowChange(...c))},null,40,Kb),$t(" "+ce(e.getLang("today_not_show")),1)])]),qb,_("div",{class:"state-body-language",onClick:t[2]||(t[2]=c=>e.$emit("click:selectLanguage",c))},[ve(l,{name:"i18n"}),_("div",null,"Language: "+ce(e.langName),1)]),_("div",{class:"state-body-desc",innerHTML:e.getLang("packages_desc")},null,8,zb),_("div",Xb,[(R(!0),B(Re,null,mt(n.packagesState,c=>(R(),B("div",{key:c.name,class:"package-item"},[_("div",Yb,ce(c.name),1),_("div",{class:At(["package-state",c.state?"installed":"not_install"])},ce(e.getLang(c.state?"installed":"not_install")),3),_("div",Gb,ce(o.getCommand(c)),1)]))),128))]),_("div",{class:"btn-packages-install hover-scale-120",onClick:t[3]||(t[3]=(...c)=>o.onInstallClick&&o.onInstallClick(...c))},[r.loading?(R(),vt(l,{key:0,name:"loading"})):(R(),B(Re,{key:1},[$t(ce(e.getLang("install")),1)],64))]),r.showResult?(R(),B("div",Jb,[$t(ce(e.getLang("packages_installing"))+" ",1),r.result?(R(),B("div",{key:0,class:"result-content",ref:"result"},ce(r.result),513)):ze("",!0)])):ze("",!0)])])])):ze("",!0)}const Qb=sn(Wb,[["render",Zb]]),eC={name:"ChatgptPrompt",components:{IconSvg:Fn},mixins:[Yn],props:{},data(){return{isOpen:!1,api:{},configs:[],chatPreset:"",hidePanels:{api:!0},imageDesc:"",promptResult:"",saveConfigIng:!1,genIng:!1}},emits:["use"],computed:{},mounted(){},methods:{open(){this.isOpen=!0,this.saveConfigIng=!1,this.genIng=!1,this.gradioAPI.getDatas(["chatgpt_prompts_preset","chatgpt_key","translate_api.openai"]).then(e=>{console.log(e),e.chatgpt_prompts_preset!==null?this.chatPreset=e.chatgpt_prompts_preset:this.chatPreset=this.getLang("chatgpt_prompts_preset"),this.configs=[];let t={},n=oe.getTranslateApiItem(this.translateApis,"openai");if(n=JSON.parse(JSON.stringify(n)),e.chatgpt_key&&typeof e.chatgpt_key=="object")for(const i of n.config)t[i.key]=e.chatgpt_key[i.key]||i.default||"";else if(e["translate_api.openai"]&&e["translate_api.openai"].api_key)for(const i of n.config)t[i.key]=e["translate_api.openai"][i.key]||i.default||"";else for(const i of n.config)t[i.key]=i.default||"";t.api_key||(this.hidePanels.api=!1);for(const i of n.config)i.value=t[i.key],this.configs.push(i)})},close(){this.isOpen=!1},onUnfoldClick(e){this.hidePanels[e]=!this.hidePanels[e]},onSaveConfigClick(){if(this.saveConfigIng)return;this.saveConfigIng=!0;let e={};this.configs.forEach(t=>{e[t.key]=t.value}),this.gradioAPI.setData("chatgpt_key",e).then(t=>{this.$toastr.success(this.getLang("success")),this.saveConfigIng=!1}).catch(t=>{this.$toastr.error(t.message||t),this.saveConfigIng=!1})},onPresetChange(e){this.chatPreset=e.target.value,this._saveChatPreset()},onRestoreClick(){this.chatPreset=this.getLang("chatgpt_prompts_preset"),this._saveChatPreset()},_saveChatPreset(){this.gradioAPI.setData("chatgpt_prompts_preset",this.chatPreset)},onGenClick(){if(this.genIng)return;if(!this.imageDesc)return this.$refs.imageDesc.focus();if(this.imageDesc=this.imageDesc.trim(),!this.imageDesc)return this.$refs.imageDesc.focus();this.genIng=!0;let e=[{role:"user",content:this.chatPreset},{role:"user",content:this.imageDesc}],t={};this.configs.forEach(n=>{t[n.key]=n.value}),this.gradioAPI.genOpenAI(e,t).then(n=>{n.success?this.promptResult=n.result:this.$toastr.error(n.message||"error"),this.genIng=!1}).catch(n=>{this.$toastr.error(n.message||n),this.genIng=!1})},onUseClick(){this.$emit("use",this.promptResult),this.close()}}},tC={class:"panel-header"},nC={class:"panel-title"},iC={class:"panel-content"},rC={class:"body-line"},sC={class:"line-title"},oC={class:"line-content"},aC=["onUpdate:modelValue"],lC=["onUpdate:modelValue"],uC=["value"],cC={class:"body-line"},fC=_("div",{class:"line-title"},null,-1),dC={class:"line-content text-right"},pC={class:"panel-header"},hC={class:"panel-title"},gC={class:"panel-content"},mC={class:"body-line"},vC={class:"line-title"},yC={class:"line-subtitle"},bC={class:"line-content"},CC=["value"],wC={class:"body-line"},TC=_("div",{class:"line-title"},null,-1),_C={class:"line-content text-right"},EC={class:"body-line"},xC={class:"line-title"},SC={class:"line-subtitle"},kC={class:"line-content"},AC=["placeholder"],LC={class:"body-line"},OC=_("div",{class:"line-title"},null,-1),DC={class:"line-content text-right"},PC={class:"panel-header"},IC={class:"panel-title"},NC={class:"panel-content"},RC={class:"body-line"},MC={class:"line-title"},FC={class:"line-content"},HC={key:0,class:"body-line"},BC=_("div",{class:"line-title"},null,-1),jC={class:"line-content text-right"};function $C(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-chatgpt-prompt",onClick:t[13]||(t[13]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"chatgpt-main",onClick:t[12]||(t[12]=gt(()=>{},["stop"]))},[_("div",{class:"chatgpt-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"chatgpt-body",onClick:t[11]||(t[11]=gt(()=>{},["stop"]))},[_("div",{class:At(["body-panel",r.hidePanels.api?"fold":""])},[_("div",tC,[_("div",{class:"panel-unfold",onClick:t[1]||(t[1]=c=>o.onUnfoldClick("api"))},[ve(l,{class:"hover-scale-120",name:"unfold"})]),_("div",nC,ce(e.getLang("api_config")),1)]),_("div",iC,[(R(!0),B(Re,null,mt(r.configs,c=>(R(),B("div",rC,[_("div",sC,ce(c.title),1),_("div",oC,[c.type=="input"?fe((R(),B("input",{key:0,type:"text","onUpdate:modelValue":d=>c.value=d},null,8,aC)),[[Hi,c.value]]):ze("",!0),c.type=="select"?fe((R(),B("select",{key:1,"onUpdate:modelValue":d=>c.value=d},[(R(!0),B(Re,null,mt(c.options,d=>(R(),B("option",{value:d},ce(d),9,uC))),256))],8,lC)),[[Xs,c.value]]):ze("",!0)])]))),256)),_("div",cC,[fC,_("div",dC,[_("div",{class:"common-btn hover-scale-120",onClick:t[2]||(t[2]=(...c)=>o.onSaveConfigClick&&o.onSaveConfigClick(...c))},[r.saveConfigIng?(R(),vt(l,{key:0,name:"loading"})):(R(),B(Re,{key:1},[$t(ce(e.getLang("save")),1)],64))])])])])],2),_("div",{class:At(["body-panel",r.hidePanels.send?"fold":""])},[_("div",pC,[_("div",{class:"panel-unfold",onClick:t[3]||(t[3]=c=>o.onUnfoldClick("send"))},[ve(l,{class:"hover-scale-120",name:"unfold"})]),_("div",hC,ce(e.getLang("image_desc")),1)]),_("div",gC,[_("div",mC,[_("div",vC,[$t(ce(e.getLang("preset"))+" ",1),_("div",yC,ce(e.getLang("ai_one")),1)]),_("div",bC,[_("textarea",{value:r.chatPreset,onChange:t[4]||(t[4]=(...c)=>o.onPresetChange&&o.onPresetChange(...c)),style:{height:"100px"}},null,40,CC)])]),_("div",wC,[TC,_("div",_C,[_("a",{href:"javascript:",onClick:t[5]||(t[5]=(...c)=>o.onRestoreClick&&o.onRestoreClick(...c))},ce(e.getLang("restore_to_default")),1)])]),_("div",EC,[_("div",xC,[$t(ce(e.getLang("image_desc"))+" ",1),_("div",SC,ce(e.getLang("ai_two")),1)]),_("div",kC,[fe(_("textarea",{style:{height:"100px"},ref:"imageDesc","onUpdate:modelValue":t[6]||(t[6]=c=>r.imageDesc=c),placeholder:e.getLang("input_image_desc")},null,8,AC),[[Hi,r.imageDesc]])])]),_("div",LC,[OC,_("div",DC,[_("div",{class:"common-btn hover-scale-120",onClick:t[7]||(t[7]=(...c)=>o.onGenClick&&o.onGenClick(...c))},[r.genIng?(R(),vt(l,{key:0,name:"loading"})):(R(),B(Re,{key:1},[$t(ce(e.getLang("generate")),1)],64))])])])])],2),_("div",{class:At(["body-panel",r.hidePanels.result?"fold":""])},[_("div",PC,[_("div",{class:"panel-unfold",onClick:t[8]||(t[8]=c=>o.onUnfoldClick("result"))},[ve(l,{class:"hover-scale-120",name:"unfold"})]),_("div",IC,ce(e.getLang("generate_result")),1)]),_("div",NC,[_("div",RC,[_("div",MC,ce(e.getLang("generate_result")),1),_("div",FC,[fe(_("textarea",{style:{height:"100px"},"onUpdate:modelValue":t[9]||(t[9]=c=>r.promptResult=c)},null,512),[[Hi,r.promptResult]])])]),r.promptResult?(R(),B("div",HC,[BC,_("div",jC,[_("div",{class:"common-btn hover-scale-120",onClick:t[10]||(t[10]=(...c)=>o.onUseClick&&o.onUseClick(...c))},ce(e.getLang("use")),1)])])):ze("",!0)])],2)])])])):ze("",!0)}const UC=sn(eC,[["render",$C]]),WC={name:"About",components:{IconSvg:Fn},mixins:[Yn],props:{version:{type:String,default:""},latestVersion:{type:String,default:""},isLatestVersion:{type:Boolean,default:!0}},data(){return{isOpen:!1,loading:!1,versions:[],icons:[{title:"GitHub stars",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/stargazers",image:"https://img.shields.io/github/stars/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub forks",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/network/members",image:"https://img.shields.io/github/forks/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub issues",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/issues",image:"https://img.shields.io/github/issues/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub issues closed",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/issues?q=is%3Aissue+is%3Aclosed",image:"https://img.shields.io/github/issues-closed/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub license",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/blob/master/LICENSE.md",image:"https://img.shields.io/github/license/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub commits",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/commits/main",image:"https://img.shields.io/github/last-commit/Physton/sd-webui-prompt-all-in-one?style=plastic"}]}},emits:["use"],computed:{},mounted(){},methods:{open(){this.isOpen=!0,this.versions=[],this.loading=!0,this.gradioAPI.getRemoteVersions().then(e=>{this.loading=!1;let t=[];e.forEach((n,i)=>{n.is_update_readme||(n.date=oe.formatTime(n.date),t.push(n))}),this.versions=t}).catch(e=>{this.loading=!1})},close(){this.isOpen=!1},commitUrl(e){return"https://github.com/Physton/sd-webui-prompt-all-in-one/commit/"+e},formatVersion(e){return e?e.slice(0,7):this.getLang("unknown_version")}}},VC=_("p",{class:"body-title"},[_("a",{href:"https://github.com/Physton/sd-webui-prompt-all-in-one",target:"_blank"},"sd-webui-prompt-all-in-one")],-1),KC=["href"],qC=["src","alt"],zC=["href"],XC={key:0,class:"has-new-version"},YC=["href"],GC=_("a",{href:"https://physton.github.io/sd-webui-prompt-all-in-one-assets/#/Installation",target:"_blank"},"Wiki",-1),JC={class:"version-list"},ZC={class:"item-header"},QC={class:"version-sha"},ew=["href"],tw={class:"version-date"},nw={class:"version-msg"};function iw(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-about-prompt",onClick:t[3]||(t[3]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"about-main",onClick:t[2]||(t[2]=gt(()=>{},["stop"]))},[_("div",{class:"about-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"about-body",onClick:t[1]||(t[1]=gt(()=>{},["stop"]))},[VC,_("p",null,[(R(!0),B(Re,null,mt(r.icons,c=>(R(),B("a",{key:c.title,href:c.url,target:"_blank"},[_("img",{src:c.image,alt:c.title},null,8,qC)],8,KC))),128))]),_("p",null,[_("span",null,[$t(ce(e.getLang("version"))+": ",1),_("a",{href:o.commitUrl(n.version),target:"_blank"},ce(o.formatVersion(n.version)),9,zC)]),!n.isLatestVersion&&n.latestVersion?(R(),B("span",XC,[$t(" ("+ce(e.getLang("has_new_version"))+": ",1),_("a",{href:o.commitUrl(n.latestVersion),target:"_blank"},ce(o.formatVersion(n.latestVersion)),9,YC),$t(")")])):ze("",!0)]),_("p",null,[$t(ce(e.getLang("wiki_desc"))+" ",1),GC]),_("div",JC,[r.loading?(R(),vt(l,{key:0,name:"loading"})):ze("",!0),(R(!0),B(Re,null,mt(r.versions,c=>(R(),B("div",{class:"version-item",key:c.version},[_("div",ZC,[_("div",QC,[_("a",{href:o.commitUrl(c.version),target:"_blank"},ce(o.formatVersion(c.version)),9,ew)]),_("div",tw,ce(c.date),1)]),_("div",nw,ce(c.message),1)]))),128))])])])])):ze("",!0)}const rw={name:"App",components:{About:sn(WC,[["render",iw]]),ChatgptPrompt:UC,PackagesState:Qb,PromptFormat:Ub,ExtensionCss:kb,IconSvg:Fn,History:yb,Favorite:$y,SelectLanguage:fy,TranslateSetting:ay,PhystonPrompt:dv},mixins:[],data(){return{prompts:[{tab:"tab_txt2img",prompt:"txt2img_prompt",counter:"txt2img_token_counter",button:"txt2img_token_button",steps:"txt2img_steps",historyKey:"txt2img",favoriteKey:"txt2img",$prompt:null,$textarea:null,$steps:null,name:"txt2img_prompt",neg:!1,hideDefaultInputKey:"txt2ImgHideDefaultInput",hideDefaultInput:!1,hidePanelKey:"txt2ImgHidePanel",hidePanel:!1,id:"phystonPrompt_txt2img_prompt"},{tab:"tab_txt2img",prompt:"txt2img_neg_prompt",counter:"txt2img_negative_token_counter",button:"txt2img_negative_token_button",steps:"txt2img_steps",historyKey:"txt2img_neg",favoriteKey:"txt2img_neg",$prompt:null,$textarea:null,$steps:null,name:"txt2img_neg_prompt",neg:!0,hideDefaultInputKey:"txt2ImgNegHideDefaultInput",hideDefaultInput:!1,hidePanelKey:"txt2ImgNegHidePanel",hidePanel:!1,id:"phystonPrompt_txt2img_neg_prompt"},{tab:"tab_img2img",prompt:"img2img_prompt",counter:"img2img_token_counter",button:"img2img_token_button",steps:"img2img_steps",historyKey:"img2img",favoriteKey:"img2img",$prompt:null,$textarea:null,$steps:null,name:"img2img_prompt",neg:!1,hideDefaultInputKey:"img2ImgHideDefaultInput",hideDefaultInput:!1,hidePanelKey:"img2ImgHidePanel",hidePanel:!1,id:"phystonPrompt_img2img_prompt"},{tab:"tab_img2img",prompt:"img2img_neg_prompt",counter:"img2img_negative_token_counter",button:"img2img_negative_token_button",steps:"img2img_steps",historyKey:"img2img_neg",favoriteKey:"img2img_neg",$prompt:null,$textarea:null,$steps:null,name:"img2img_neg_prompt",neg:!0,hideDefaultInputKey:"img2ImgNegHideDefaultInput",hideDefaultInput:!1,hidePanelKey:"img2ImgNegHidePanel",hidePanel:!1,id:"phystonPrompt_img2img_neg_prompt"}],languageCode:"",languages:{},translateApis:[],translateApi:"",translateApiConfig:{},canOneTranslate:!1,autoTranslate:!1,autoTranslateToEnglish:!1,autoTranslateToLocal:!1,autoRemoveSpace:!0,autoRemoveLastComma:!1,autoKeepWeightZero:!1,autoKeepWeightOne:!1,enableTooltip:!0,tagCompleteFile:"",onlyCsvOnAuto:!1,startWatchSave:!1,pasteBtn:null,showPastePopup:!1,pasteTitle:"",pasteContent:"",pasteLoading:!1,historyCurrentPrompt:"",favoriteCurrentPrompt:"",chatgptCurrentPrompt:"",extraNetworks:[],loras:[],lycos:[],embeddings:[],python:"",packagesState:[],version:"",latestVersion:"",isLatestVersion:!0}},watch:{languageCode:{handler:function(e,t){this.startWatchSave&&(console.log("onLanguageCodeChange",e),this.canOneTranslate=oe.canOneTranslate(this.languageCode),this.gradioAPI.setData("languageCode",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoTranslateToEnglish:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoTranslateToEnglishChange",e),this.gradioAPI.setData("autoTranslateToEnglish",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoTranslateToLocal:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoTranslateToLocalChange",e),this.gradioAPI.setData("autoTranslateToLocal",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoTranslate:{handler:function(e,t){this.startWatchSave&&(this.autoTranslate&&(this.autoTranslateToEnglish=!0,this.autoTranslateToLocal=!0),console.log("onAutoTranslateChange",e),this.gradioAPI.setData("autoTranslate",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoRemoveSpace:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoRemoveSpaceChange",e),this.gradioAPI.setData("autoRemoveSpace",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoRemoveLastComma:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoRemoveLastCommaChange",e),this.gradioAPI.setData("autoRemoveLastComma",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoKeepWeightZero:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoKeepWeightZeroChange",e),this.gradioAPI.setData("autoKeepWeightZero",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoKeepWeightOne:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoKeepWeightOneChange",e),this.gradioAPI.setData("autoKeepWeightOne",e).then(n=>{}).catch(n=>{}))},immediate:!1},enableTooltip:{handler:function(e,t){this.startWatchSave&&(localStorage.setItem("phystonPromptEnableTooltip",e?"true":"false"),this.updateTippyState(),this.gradioAPI.setData("enableTooltip",e).then(n=>{}).catch(n=>{}))},immediate:!1},translateApi:{handler:function(e,t){this.startWatchSave&&(console.log("onTranslateApiChange",e,t),this.updateTranslateApiConfig(),this.gradioAPI.setData("translateApi",e).then(n=>{}).catch(n=>{}))},immediate:!1},tagCompleteFile:{handler:function(e,t){this.startWatchSave&&(console.log("onTagCompleteFileChange",e,t),this.gradioAPI.setData("tagCompleteFile",e).then(n=>{}).catch(n=>{}))},immediate:!1},onlyCsvOnAuto(){this.startWatchSave&&(console.log("onOnlyCsvOnAutoChange",this.onlyCsvOnAuto),this.gradioAPI.setData("onlyCsvOnAuto",this.onlyCsvOnAuto).then(e=>{}).catch(e=>{}))}},mounted(){oe.loadCSS("toastr.min.css","physton-prompt-toastr",!0,!0,!1),oe.loadCSS("tippy.css","physton-prompt-tippy",!0,!0,!1),oe.loadCSS("main.min.css","physton-prompt-main",!0);const t=new URLSearchParams(window.location.search).get("__theme");oe.gradioApp().classList.contains(t)||oe.gradioApp().classList.add(t),this.gradioAPI.getConfig().then(n=>{console.log("config:",n),this.languageCode=n.i18n.default,this.translateApi=n.translate_apis.default,this.translateApis=n.translate_apis.apis,this.python=n.python,this.packagesState=n.packages_state;let i={};n.i18n.languages.forEach(r=>{i[r.code]=r}),this.languages=i,this.init()}).catch(n=>{this.$toastr.error("Connection to backend API service failed. Please manually refresh the webpage. If it still doesn't work, please restart the WebUI. 连接到后台接口服务失败,请手动再刷新一次网页。如果还是不行,请重启WebUI。 "+n.message,"sd-webui-prompt-all-in-one",{timeOut:2e4}),console.log(n)})},methods:{getLang(e){return oe.getLang(e,this.languageCode,this.languages)},init(){this.loadExtraNetworks();let e=["languageCode","autoTranslate","autoTranslateToEnglish","autoTranslateToLocal","autoRemoveSpace","autoRemoveLastComma","autoKeepWeightZero","autoKeepWeightOne","translateApi","enableTooltip","tagCompleteFile","onlyCsvOnAuto","extensionSelect.minimalist"];this.prompts.forEach(t=>{e.push(t.hideDefaultInputKey),e.push(t.hidePanelKey)}),this.gradioAPI.getDatas(e).then(t=>{if(t.languageCode!==null){let n=!1;for(let i in this.languages)if(this.languages[i].code===t.languageCode){n=!0;break}n&&(this.languageCode=t.languageCode,this.$forceUpdate())}this.canOneTranslate=oe.canOneTranslate(this.languageCode),t.autoTranslateToEnglish!==null&&(this.autoTranslateToEnglish=t.autoTranslateToEnglish),t.autoTranslateToLocal!==null&&(this.autoTranslateToLocal=t.autoTranslateToLocal),t.autoTranslate!==null?(this.autoTranslate=t.autoTranslate,this.autoTranslate&&(this.autoTranslateToEnglish=!0,this.autoTranslateToLocal=!0)):this.canOneTranslate?(this.autoTranslate=this.autoTranslateToEnglish||this.autoTranslateToLocal,this.autoTranslateToEnglish=!0,this.autoTranslateToLocal=!0):this.autoTranslate=!1,t.autoRemoveSpace!==null&&(this.autoRemoveSpace=t.autoRemoveSpace),t.autoRemoveLastComma!==null&&(this.autoRemoveLastComma=t.autoRemoveLastComma),t.autoKeepWeightZero!==null&&(this.autoKeepWeightZero=t.autoKeepWeightZero),t.autoKeepWeightOne!==null&&(this.autoKeepWeightOne=t.autoKeepWeightOne),t.enableTooltip!==null&&(this.enableTooltip=t.enableTooltip),localStorage.setItem("phystonPromptEnableTooltip",this.enableTooltip?"true":"false"),this.updateTippyState(),t.translateApi!==null&&(this.translateApi=t.translateApi),t.tagCompleteFile!==null&&(this.tagCompleteFile=t.tagCompleteFile,this.$nextTick(()=>{this.$refs.translateSetting.getCSV(this.tagCompleteFile)})),t.onlyCsvOnAuto!==null&&(this.onlyCsvOnAuto=t.onlyCsvOnAuto),t["extensionSelect.minimalist"]===null&&this.gradioAPI.setData("extensionSelect.minimalist",!0),this.updateTranslateApiConfig(),this.$refs.extensionCss.init(),this.prompts.forEach(n=>{t[n.hideDefaultInputKey]!==null&&(n.hideDefaultInput=t[n.hideDefaultInputKey]),t[n.hidePanelKey]!==null&&(n.hidePanel=t[n.hidePanelKey]),n.$prompt=oe.gradioApp().querySelector("#"+n.prompt),n.$textarea=n.$prompt.getElementsByTagName("textarea")[0],n.$steps=oe.gradioApp().querySelector("#"+n.steps)}),this.$nextTick(()=>{this.prompts.forEach(n=>{const i=oe.gradioApp().querySelector("#"+n.id);n.$prompt.parentElement.parentElement.parentElement.appendChild(i),n.$prompt.parentElement.parentElement.style.display=n.hideDefaultInput?"none":"flex"}),this.startWatchSave=!0}),this.handlePaste(),this.gradioAPI.getVersion().then(n=>{this.version=n.version,this.latestVersion=n.latest_version,this.isLatestVersion=n.version===n.latest_version})})},updateTippyState(){for(const e of this.$tippyList)this.enableTooltip?e.enable():e.disable()},updateTranslateApiConfig(){this.gradioAPI.getData("translate_api."+this.translateApi).then(e=>{let t={};const n=oe.getTranslateApiItem(this.translateApis,this.translateApi);if(n.config){for(const i of n.config)n.type==="translators"&&i.key==="region"&&!e.region?t[i.key]=this.languageCode==="zh_CN"||this.languageCode==="zh_HK"||this.languageCode==="zh_TW"?"China":"EN":e?t[i.key]=e[i.key]:t[i.key]=i.default||"";t.concurrent=n.concurrent||0}this.translateApiConfig=t})},onPromptFormatClick(e){this.$refs.promptFormat.open(e)},onSelectLanguageClick(e){this.$refs.selectLanguage.open(e)},onTranslateApiClick(){this.$refs.translateSetting.open(this.translateApi)},onSelectThemeClick(){this.$refs.extensionCss.open()},handlePaste(){if(typeof gradioApp!="function")return;const e=gradioApp().querySelectorAll("#paste");!e||e.length<=0||e.forEach((t,n)=>{const i=t.cloneNode(!0);i.id="paste-new-"+n,i.innerHTML="🗒",t.parentNode.insertBefore(i,t.nextSibling),i.addEventListener("click",()=>{this.pasteBtn=t,this.openPastePopup()}),this.pasteTitle=t.title})},openPastePopup(){this.pasteContent="",this.pasteLoading=!1,this.showPastePopup=!0},closePastePopup(){this.showPastePopup=!1},onClickPasteSubmit(){this.pasteLoading=!0;const e=get_uiCurrentTabContent();let t=null,n=null,i=null,r=null,o=[];for(const l of this.prompts)l.tab==e.id&&(console.log(l),o.push(l.id),l.neg?(n=l.$textarea,r=l.$prompt):(t=l.$textarea,i=l.$prompt));if(!t||!i||!r){this.pasteLoading=!1;return}t.value=this.pasteContent,t.dispatchEvent(new Event("input")),this.pasteBtn.dispatchEvent(new Event("click")),setTimeout(()=>{let l=0,c=0;l=setInterval(()=>{if(c++,c>100){this.pasteLoading=!1,clearInterval(l);return}i.getElementsByClassName("hide").length>0&&r.getElementsByClassName("hide").length>0&&(this.pasteLoading=!1,this.closePastePopup(),clearInterval(l),oe.hideCompleteResults(t),oe.hideCompleteResults(n),o.forEach((d,m)=>{setTimeout(()=>{this.$refs[d][0].onTextareaChange(!0)},1e3)}))},100)},1e3)},onUpdateHideDefaultInput(e,t){const n=this.prompts.find(i=>i.id==e);n&&(n.hideDefaultInput=t,this.gradioAPI.setData(n.hideDefaultInputKey,n.hideDefaultInput),n.$prompt.parentElement.parentElement.style.display=n.hideDefaultInput?"none":"flex")},onUpdateHidePanel(e,t){const n=this.prompts.find(i=>i.id==e);n&&(n.hidePanel=t,this.gradioAPI.setData(n.hidePanelKey,n.hidePanel))},onShowHistory(e,t){this.$refs.favorite.hide(),this.historyCurrentPrompt=e;const n=this.prompts.find(i=>i.id==e);n&&this.$refs.history.show(n.historyKey,t)},onUseHistory(e){if(!this.historyCurrentPrompt)return;const t=this.prompts.find(n=>n.id==this.historyCurrentPrompt);t&&this.$refs[t.id][0].useFavorite(e)},onShowFavorite(e,t){this.$refs.history.hide(),this.favoriteCurrentPrompt=e;const n=this.prompts.find(i=>i.id==e);n&&this.$refs.favorite.show(n.favoriteKey,t)},onUseFavorite(e){if(!this.favoriteCurrentPrompt)return;const t=this.prompts.find(n=>n.id==this.favoriteCurrentPrompt);t&&this.$refs[t.id][0].useFavorite(e)},onRefreshFavorites(e){this.$refs.favorite.getFavorites(e)},onShowChatgpt(e,t){this.chatgptCurrentPrompt=e,this.prompts.find(i=>i.id==e)&&this.$refs.chatgptPrompt.open()},onUseChatgpt(e){if(!this.chatgptCurrentPrompt)return;const t=this.prompts.find(n=>n.id==this.chatgptCurrentPrompt);t&&this.$refs[t.id][0].useChatgpt(e)},onShowAbout(){this.$refs.about.open()}}},sw={class:"paste-popup-title"},ow={class:"paste-popup-body"},aw=["placeholder"],lw={key:1,class:"paste-submit"};function uw(e,t,n,i,r,o){const l=Lt("physton-prompt"),c=Lt("translate-setting"),d=Lt("select-language"),m=Lt("prompt-format"),g=Lt("history"),w=Lt("favorite"),T=Lt("extension-css"),N=Lt("packages-state"),S=Lt("chatgpt-prompt"),O=Lt("about"),U=Lt("icon-svg");return R(),B("div",null,[(R(!0),B(Re,null,mt(r.prompts,P=>(R(),B(Re,{key:P.name},[P.$textarea?(R(),vt(l,{key:0,id:P.id,ref_for:!0,ref:P.id,name:P.name,neg:P.neg,textarea:P.$textarea,steps:P.$steps,"language-code":r.languageCode,"onUpdate:languageCode":t[0]||(t[0]=Z=>r.languageCode=Z),"translate-apis":r.translateApis,languages:r.languages,"history-key":P.historyKey,"onClick:showHistory":Z=>o.onShowHistory(P.id,Z),"favorite-key":P.favoriteKey,onRefreshFavorites:o.onRefreshFavorites,"onClick:showFavorite":Z=>o.onShowFavorite(P.id,Z),"can-one-translate":r.canOneTranslate,"onUpdate:canOneTranslate":t[1]||(t[1]=Z=>r.canOneTranslate=Z),"auto-translate":r.autoTranslate,"onUpdate:autoTranslate":t[2]||(t[2]=Z=>r.autoTranslate=Z),"auto-translate-to-english":r.autoTranslateToEnglish,"onUpdate:autoTranslateToEnglish":t[3]||(t[3]=Z=>r.autoTranslateToEnglish=Z),"auto-translate-to-local":r.autoTranslateToLocal,"onUpdate:autoTranslateToLocal":t[4]||(t[4]=Z=>r.autoTranslateToLocal=Z),"auto-remove-space":r.autoRemoveSpace,"onUpdate:autoRemoveSpace":t[5]||(t[5]=Z=>r.autoRemoveSpace=Z),"auto-remove-last-comma":r.autoRemoveLastComma,"onUpdate:autoRemoveLastComma":t[6]||(t[6]=Z=>r.autoRemoveLastComma=Z),"auto-keep-weight-zero":r.autoKeepWeightZero,"onUpdate:autoKeepWeightZero":t[7]||(t[7]=Z=>r.autoKeepWeightZero=Z),"auto-keep-weight-one":r.autoKeepWeightOne,"onUpdate:autoKeepWeightOne":t[8]||(t[8]=Z=>r.autoKeepWeightOne=Z),"hide-default-input":P.hideDefaultInput,"onUpdate:hideDefaultInput":Z=>o.onUpdateHideDefaultInput(P.id,Z),"hide-panel":P.hidePanel,"onUpdate:hidePanel":Z=>o.onUpdateHidePanel(P.id,Z),"enable-tooltip":r.enableTooltip,"onUpdate:enableTooltip":t[9]||(t[9]=Z=>r.enableTooltip=Z),"translate-api":r.translateApi,"onUpdate:translateApi":t[10]||(t[10]=Z=>r.translateApi=Z),"translate-api-config":r.translateApiConfig,"onClick:translateApi":o.onTranslateApiClick,"onClick:promptFormat":o.onPromptFormatClick,"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[11]||(t[11]=Z=>r.tagCompleteFile=Z),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[12]||(t[12]=Z=>r.onlyCsvOnAuto=Z),"onClick:selectLanguage":o.onSelectLanguageClick,"onClick:selectTheme":o.onSelectThemeClick,"onClick:showChatgpt":Z=>o.onShowChatgpt(P.id,Z),"extra-networks":r.extraNetworks,loras:r.loras,lycos:r.lycos,embeddings:r.embeddings,version:r.version,"latest-version":r.latestVersion,"is-latest-version":r.isLatestVersion,"onClick:showAbout":o.onShowAbout},null,8,["id","name","neg","textarea","steps","language-code","translate-apis","languages","history-key","onClick:showHistory","favorite-key","onRefreshFavorites","onClick:showFavorite","can-one-translate","auto-translate","auto-translate-to-english","auto-translate-to-local","auto-remove-space","auto-remove-last-comma","auto-keep-weight-zero","auto-keep-weight-one","hide-default-input","onUpdate:hideDefaultInput","hide-panel","onUpdate:hidePanel","enable-tooltip","translate-api","translate-api-config","onClick:translateApi","onClick:promptFormat","tag-complete-file","only-csv-on-auto","onClick:selectLanguage","onClick:selectTheme","onClick:showChatgpt","extra-networks","loras","lycos","embeddings","version","latest-version","is-latest-version","onClick:showAbout"])):ze("",!0)],64))),128)),ve(c,{ref:"translateSetting","language-code":r.languageCode,"onUpdate:languageCode":t[13]||(t[13]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"onForceUpdate:translateApi":o.updateTranslateApiConfig,"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[14]||(t[14]=P=>r.tagCompleteFile=P),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[15]||(t[15]=P=>r.onlyCsvOnAuto=P),"translate-api":r.translateApi,"onUpdate:translateApi":t[16]||(t[16]=P=>r.translateApi=P)},null,8,["language-code","translate-apis","languages","onForceUpdate:translateApi","tag-complete-file","only-csv-on-auto","translate-api"]),ve(d,{ref:"selectLanguage","language-code":r.languageCode,"onUpdate:languageCode":t[17]||(t[17]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"translate-api":r.translateApi,"onUpdate:translateApi":t[18]||(t[18]=P=>r.translateApi=P),"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[19]||(t[19]=P=>r.tagCompleteFile=P),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[20]||(t[20]=P=>r.onlyCsvOnAuto=P)},null,8,["language-code","translate-apis","languages","translate-api","tag-complete-file","only-csv-on-auto"]),ve(m,{ref:"promptFormat","language-code":r.languageCode,"onUpdate:languageCode":t[21]||(t[21]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"auto-remove-space":r.autoRemoveSpace,"onUpdate:autoRemoveSpace":t[22]||(t[22]=P=>r.autoRemoveSpace=P),"auto-remove-last-comma":r.autoRemoveLastComma,"onUpdate:autoRemoveLastComma":t[23]||(t[23]=P=>r.autoRemoveLastComma=P),"auto-keep-weight-zero":r.autoKeepWeightZero,"onUpdate:autoKeepWeightZero":t[24]||(t[24]=P=>r.autoKeepWeightZero=P),"auto-keep-weight-one":r.autoKeepWeightOne,"onUpdate:autoKeepWeightOne":t[25]||(t[25]=P=>r.autoKeepWeightOne=P)},null,8,["language-code","translate-apis","languages","auto-remove-space","auto-remove-last-comma","auto-keep-weight-zero","auto-keep-weight-one"]),ve(g,{ref:"history","language-code":r.languageCode,"onUpdate:languageCode":t[26]||(t[26]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[27]||(t[27]=P=>r.tagCompleteFile=P),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[28]||(t[28]=P=>r.onlyCsvOnAuto=P),onRefreshFavorites:o.onRefreshFavorites,onUse:o.onUseHistory},null,8,["language-code","translate-apis","languages","tag-complete-file","only-csv-on-auto","onRefreshFavorites","onUse"]),ve(w,{ref:"favorite","language-code":r.languageCode,"onUpdate:languageCode":t[29]||(t[29]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[30]||(t[30]=P=>r.tagCompleteFile=P),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[31]||(t[31]=P=>r.onlyCsvOnAuto=P),onUse:o.onUseFavorite},null,8,["language-code","translate-apis","languages","tag-complete-file","only-csv-on-auto","onUse"]),ve(T,{ref:"extensionCss","language-code":r.languageCode,"onUpdate:languageCode":t[32]||(t[32]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages},null,8,["language-code","translate-apis","languages"]),ve(N,{ref:"packagesState","language-code":r.languageCode,"onUpdate:languageCode":t[33]||(t[33]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"onClick:selectLanguage":o.onSelectLanguageClick,"packages-state":r.packagesState,python:r.python},null,8,["language-code","translate-apis","languages","onClick:selectLanguage","packages-state","python"]),ve(S,{ref:"chatgptPrompt","language-code":r.languageCode,"onUpdate:languageCode":t[34]||(t[34]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,onUse:o.onUseChatgpt},null,8,["language-code","translate-apis","languages","onUse"]),ve(O,{ref:"about","language-code":r.languageCode,"onUpdate:languageCode":t[35]||(t[35]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,version:r.version,"latest-version":r.latestVersion,"is-latest-version":r.isLatestVersion},null,8,["language-code","translate-apis","languages","version","latest-version","is-latest-version"]),r.showPastePopup?(R(),B("div",{key:0,class:"physton-paste-popup",onClick:t[40]||(t[40]=(...P)=>o.closePastePopup&&o.closePastePopup(...P))},[_("div",{class:"paste-popup-main",onClick:t[39]||(t[39]=gt(()=>{},["stop"]))},[_("div",{class:"paste-popup-close",onClick:t[36]||(t[36]=(...P)=>o.closePastePopup&&o.closePastePopup(...P))},[ve(U,{name:"close"})]),_("div",sw,ce(r.pasteTitle),1),_("div",ow,[fe(_("textarea",{class:"paste-content","onUpdate:modelValue":t[37]||(t[37]=P=>r.pasteContent=P),placeholder:o.getLang("please_enter_the_content_here")},null,8,aw),[[Hi,r.pasteContent]]),r.pasteLoading?(R(),B("div",lw,[ve(U,{name:"loading"})])):(R(),B("div",{key:0,class:"paste-submit",onClick:t[38]||(t[38]=(...P)=>o.onClickPasteSubmit&&o.onClickPasteSubmit(...P))},"Submit"))])])])):ze("",!0)])}const cw=sn(rw,[["render",uw]]);var Oc={exports:{}},ja={exports:{}};/*!
+ * jQuery JavaScript Library v3.6.4
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright OpenJS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2023-03-08T15:28Z
+ */var Dc;function fw(){return Dc||(Dc=1,function(e){(function(t,n){e.exports=t.document?n(t,!0):function(i){if(!i.document)throw new Error("jQuery requires a window with a document");return n(i)}})(typeof window<"u"?window:Lc,function(t,n){var i=[],r=Object.getPrototypeOf,o=i.slice,l=i.flat?function(s){return i.flat.call(s)}:function(s){return i.concat.apply([],s)},c=i.push,d=i.indexOf,m={},g=m.toString,w=m.hasOwnProperty,T=w.toString,N=T.call(Object),S={},O=function(u){return typeof u=="function"&&typeof u.nodeType!="number"&&typeof u.item!="function"},U=function(u){return u!=null&&u===u.window},P=t.document,Z={type:!0,src:!0,nonce:!0,noModule:!0};function se(s,u,f){f=f||P;var h,v,y=f.createElement("script");if(y.text=s,u)for(h in Z)v=u[h]||u.getAttribute&&u.getAttribute(h),v&&y.setAttribute(h,v);f.head.appendChild(y).parentNode.removeChild(y)}function L(s){return s==null?s+"":typeof s=="object"||typeof s=="function"?m[g.call(s)]||"object":typeof s}var ke="3.6.4",p=function(s,u){return new p.fn.init(s,u)};p.fn=p.prototype={jquery:ke,constructor:p,length:0,toArray:function(){return o.call(this)},get:function(s){return s==null?o.call(this):s<0?this[s+this.length]:this[s]},pushStack:function(s){var u=p.merge(this.constructor(),s);return u.prevObject=this,u},each:function(s){return p.each(this,s)},map:function(s){return this.pushStack(p.map(this,function(u,f){return s.call(u,f,u)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(p.grep(this,function(s,u){return(u+1)%2}))},odd:function(){return this.pushStack(p.grep(this,function(s,u){return u%2}))},eq:function(s){var u=this.length,f=+s+(s<0?u:0);return this.pushStack(f>=0&&f0&&u-1 in s}var Me=function(s){var u,f,h,v,y,b,A,E,F,$,ee,j,K,Oe,Ye,Ae,Bt,Rt,yn,yt="sizzle"+1*new Date,Xe=s.document,fn=0,lt=0,Dt=Ro(),vs=Ro(),Po=Ro(),bn=Ro(),Xi=function(C,x){return C===x&&(ee=!0),0},Yi={}.hasOwnProperty,dn=[],Si=dn.pop,Ln=dn.push,ki=dn.push,gd=dn.slice,Gi=function(C,x){for(var I=0,z=C.length;I+~]|"+pt+")"+pt+"*"),W_=new RegExp(pt+"|>"),V_=new RegExp(Ll),K_=new RegExp("^"+Ji+"$"),No={ID:new RegExp("^#("+Ji+")"),CLASS:new RegExp("^\\.("+Ji+")"),TAG:new RegExp("^("+Ji+"|[*])"),ATTR:new RegExp("^"+md),PSEUDO:new RegExp("^"+Ll),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+pt+"*(even|odd|(([+-]|)(\\d*)n|)"+pt+"*(?:([+-]|)"+pt+"*(\\d+)|))"+pt+"*\\)|)","i"),bool:new RegExp("^(?:"+Al+")$","i"),needsContext:new RegExp("^"+pt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+pt+"*((?:-\\d)?\\d*)"+pt+"*\\)|)(?=[^-]|$)","i")},q_=/HTML$/i,z_=/^(?:input|select|textarea|button)$/i,X_=/^h\d$/i,ys=/^[^{]+\{\s*\[native \w/,Y_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Ol=/[+~]/,pi=new RegExp("\\\\[\\da-fA-F]{1,6}"+pt+"?|\\\\([^\\r\\n\\f])","g"),hi=function(C,x){var I="0x"+C.slice(1)-65536;return x||(I<0?String.fromCharCode(I+65536):String.fromCharCode(I>>10|55296,I&1023|56320))},yd=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,bd=function(C,x){return x?C==="\0"?"�":C.slice(0,-1)+"\\"+C.charCodeAt(C.length-1).toString(16)+" ":"\\"+C},Cd=function(){j()},G_=Fo(function(C){return C.disabled===!0&&C.nodeName.toLowerCase()==="fieldset"},{dir:"parentNode",next:"legend"});try{ki.apply(dn=gd.call(Xe.childNodes),Xe.childNodes),dn[Xe.childNodes.length].nodeType}catch{ki={apply:dn.length?function(x,I){Ln.apply(x,gd.call(I))}:function(x,I){for(var z=x.length,M=0;x[z++]=I[M++];);x.length=z-1}}}function bt(C,x,I,z){var M,G,te,ue,me,He,Ne,je=x&&x.ownerDocument,Qe=x?x.nodeType:9;if(I=I||[],typeof C!="string"||!C||Qe!==1&&Qe!==9&&Qe!==11)return I;if(!z&&(j(x),x=x||K,Ye)){if(Qe!==11&&(me=Y_.exec(C)))if(M=me[1]){if(Qe===9)if(te=x.getElementById(M)){if(te.id===M)return I.push(te),I}else return I;else if(je&&(te=je.getElementById(M))&&yn(x,te)&&te.id===M)return I.push(te),I}else{if(me[2])return ki.apply(I,x.getElementsByTagName(C)),I;if((M=me[3])&&f.getElementsByClassName&&x.getElementsByClassName)return ki.apply(I,x.getElementsByClassName(M)),I}if(f.qsa&&!bn[C+" "]&&(!Ae||!Ae.test(C))&&(Qe!==1||x.nodeName.toLowerCase()!=="object")){if(Ne=C,je=x,Qe===1&&(W_.test(C)||vd.test(C))){for(je=Ol.test(C)&&Pl(x.parentNode)||x,(je!==x||!f.scope)&&((ue=x.getAttribute("id"))?ue=ue.replace(yd,bd):x.setAttribute("id",ue=yt)),He=b(C),G=He.length;G--;)He[G]=(ue?"#"+ue:":scope")+" "+Mo(He[G]);Ne=He.join(",")}try{return ki.apply(I,je.querySelectorAll(Ne)),I}catch{bn(C,!0)}finally{ue===yt&&x.removeAttribute("id")}}}return E(C.replace(Io,"$1"),x,I,z)}function Ro(){var C=[];function x(I,z){return C.push(I+" ")>h.cacheLength&&delete x[C.shift()],x[I+" "]=z}return x}function $n(C){return C[yt]=!0,C}function On(C){var x=K.createElement("fieldset");try{return!!C(x)}catch{return!1}finally{x.parentNode&&x.parentNode.removeChild(x),x=null}}function Dl(C,x){for(var I=C.split("|"),z=I.length;z--;)h.attrHandle[I[z]]=x}function wd(C,x){var I=x&&C,z=I&&C.nodeType===1&&x.nodeType===1&&C.sourceIndex-x.sourceIndex;if(z)return z;if(I){for(;I=I.nextSibling;)if(I===x)return-1}return C?1:-1}function J_(C){return function(x){var I=x.nodeName.toLowerCase();return I==="input"&&x.type===C}}function Z_(C){return function(x){var I=x.nodeName.toLowerCase();return(I==="input"||I==="button")&&x.type===C}}function Td(C){return function(x){return"form"in x?x.parentNode&&x.disabled===!1?"label"in x?"label"in x.parentNode?x.parentNode.disabled===C:x.disabled===C:x.isDisabled===C||x.isDisabled!==!C&&G_(x)===C:x.disabled===C:"label"in x?x.disabled===C:!1}}function Zi(C){return $n(function(x){return x=+x,$n(function(I,z){for(var M,G=C([],I.length,x),te=G.length;te--;)I[M=G[te]]&&(I[M]=!(z[M]=I[M]))})})}function Pl(C){return C&&typeof C.getElementsByTagName<"u"&&C}f=bt.support={},y=bt.isXML=function(C){var x=C&&C.namespaceURI,I=C&&(C.ownerDocument||C).documentElement;return!q_.test(x||I&&I.nodeName||"HTML")},j=bt.setDocument=function(C){var x,I,z=C?C.ownerDocument||C:Xe;return z==K||z.nodeType!==9||!z.documentElement||(K=z,Oe=K.documentElement,Ye=!y(K),Xe!=K&&(I=K.defaultView)&&I.top!==I&&(I.addEventListener?I.addEventListener("unload",Cd,!1):I.attachEvent&&I.attachEvent("onunload",Cd)),f.scope=On(function(M){return Oe.appendChild(M).appendChild(K.createElement("div")),typeof M.querySelectorAll<"u"&&!M.querySelectorAll(":scope fieldset div").length}),f.cssHas=On(function(){try{return K.querySelector(":has(*,:jqfake)"),!1}catch{return!0}}),f.attributes=On(function(M){return M.className="i",!M.getAttribute("className")}),f.getElementsByTagName=On(function(M){return M.appendChild(K.createComment("")),!M.getElementsByTagName("*").length}),f.getElementsByClassName=ys.test(K.getElementsByClassName),f.getById=On(function(M){return Oe.appendChild(M).id=yt,!K.getElementsByName||!K.getElementsByName(yt).length}),f.getById?(h.filter.ID=function(M){var G=M.replace(pi,hi);return function(te){return te.getAttribute("id")===G}},h.find.ID=function(M,G){if(typeof G.getElementById<"u"&&Ye){var te=G.getElementById(M);return te?[te]:[]}}):(h.filter.ID=function(M){var G=M.replace(pi,hi);return function(te){var ue=typeof te.getAttributeNode<"u"&&te.getAttributeNode("id");return ue&&ue.value===G}},h.find.ID=function(M,G){if(typeof G.getElementById<"u"&&Ye){var te,ue,me,He=G.getElementById(M);if(He){if(te=He.getAttributeNode("id"),te&&te.value===M)return[He];for(me=G.getElementsByName(M),ue=0;He=me[ue++];)if(te=He.getAttributeNode("id"),te&&te.value===M)return[He]}return[]}}),h.find.TAG=f.getElementsByTagName?function(M,G){if(typeof G.getElementsByTagName<"u")return G.getElementsByTagName(M);if(f.qsa)return G.querySelectorAll(M)}:function(M,G){var te,ue=[],me=0,He=G.getElementsByTagName(M);if(M==="*"){for(;te=He[me++];)te.nodeType===1&&ue.push(te);return ue}return He},h.find.CLASS=f.getElementsByClassName&&function(M,G){if(typeof G.getElementsByClassName<"u"&&Ye)return G.getElementsByClassName(M)},Bt=[],Ae=[],(f.qsa=ys.test(K.querySelectorAll))&&(On(function(M){var G;Oe.appendChild(M).innerHTML=" ",M.querySelectorAll("[msallowcapture^='']").length&&Ae.push("[*^$]="+pt+`*(?:''|"")`),M.querySelectorAll("[selected]").length||Ae.push("\\["+pt+"*(?:value|"+Al+")"),M.querySelectorAll("[id~="+yt+"-]").length||Ae.push("~="),G=K.createElement("input"),G.setAttribute("name",""),M.appendChild(G),M.querySelectorAll("[name='']").length||Ae.push("\\["+pt+"*name"+pt+"*="+pt+`*(?:''|"")`),M.querySelectorAll(":checked").length||Ae.push(":checked"),M.querySelectorAll("a#"+yt+"+*").length||Ae.push(".#.+[+~]"),M.querySelectorAll("\\\f"),Ae.push("[\\r\\n\\f]")}),On(function(M){M.innerHTML=" ";var G=K.createElement("input");G.setAttribute("type","hidden"),M.appendChild(G).setAttribute("name","D"),M.querySelectorAll("[name=d]").length&&Ae.push("name"+pt+"*[*^$|!~]?="),M.querySelectorAll(":enabled").length!==2&&Ae.push(":enabled",":disabled"),Oe.appendChild(M).disabled=!0,M.querySelectorAll(":disabled").length!==2&&Ae.push(":enabled",":disabled"),M.querySelectorAll("*,:x"),Ae.push(",.*:")})),(f.matchesSelector=ys.test(Rt=Oe.matches||Oe.webkitMatchesSelector||Oe.mozMatchesSelector||Oe.oMatchesSelector||Oe.msMatchesSelector))&&On(function(M){f.disconnectedMatch=Rt.call(M,"*"),Rt.call(M,"[s!='']:x"),Bt.push("!=",Ll)}),f.cssHas||Ae.push(":has"),Ae=Ae.length&&new RegExp(Ae.join("|")),Bt=Bt.length&&new RegExp(Bt.join("|")),x=ys.test(Oe.compareDocumentPosition),yn=x||ys.test(Oe.contains)?function(M,G){var te=M.nodeType===9&&M.documentElement||M,ue=G&&G.parentNode;return M===ue||!!(ue&&ue.nodeType===1&&(te.contains?te.contains(ue):M.compareDocumentPosition&&M.compareDocumentPosition(ue)&16))}:function(M,G){if(G){for(;G=G.parentNode;)if(G===M)return!0}return!1},Xi=x?function(M,G){if(M===G)return ee=!0,0;var te=!M.compareDocumentPosition-!G.compareDocumentPosition;return te||(te=(M.ownerDocument||M)==(G.ownerDocument||G)?M.compareDocumentPosition(G):1,te&1||!f.sortDetached&&G.compareDocumentPosition(M)===te?M==K||M.ownerDocument==Xe&&yn(Xe,M)?-1:G==K||G.ownerDocument==Xe&&yn(Xe,G)?1:$?Gi($,M)-Gi($,G):0:te&4?-1:1)}:function(M,G){if(M===G)return ee=!0,0;var te,ue=0,me=M.parentNode,He=G.parentNode,Ne=[M],je=[G];if(!me||!He)return M==K?-1:G==K?1:me?-1:He?1:$?Gi($,M)-Gi($,G):0;if(me===He)return wd(M,G);for(te=M;te=te.parentNode;)Ne.unshift(te);for(te=G;te=te.parentNode;)je.unshift(te);for(;Ne[ue]===je[ue];)ue++;return ue?wd(Ne[ue],je[ue]):Ne[ue]==Xe?-1:je[ue]==Xe?1:0}),K},bt.matches=function(C,x){return bt(C,null,null,x)},bt.matchesSelector=function(C,x){if(j(C),f.matchesSelector&&Ye&&!bn[x+" "]&&(!Bt||!Bt.test(x))&&(!Ae||!Ae.test(x)))try{var I=Rt.call(C,x);if(I||f.disconnectedMatch||C.document&&C.document.nodeType!==11)return I}catch{bn(x,!0)}return bt(x,K,null,[C]).length>0},bt.contains=function(C,x){return(C.ownerDocument||C)!=K&&j(C),yn(C,x)},bt.attr=function(C,x){(C.ownerDocument||C)!=K&&j(C);var I=h.attrHandle[x.toLowerCase()],z=I&&Yi.call(h.attrHandle,x.toLowerCase())?I(C,x,!Ye):void 0;return z!==void 0?z:f.attributes||!Ye?C.getAttribute(x):(z=C.getAttributeNode(x))&&z.specified?z.value:null},bt.escape=function(C){return(C+"").replace(yd,bd)},bt.error=function(C){throw new Error("Syntax error, unrecognized expression: "+C)},bt.uniqueSort=function(C){var x,I=[],z=0,M=0;if(ee=!f.detectDuplicates,$=!f.sortStable&&C.slice(0),C.sort(Xi),ee){for(;x=C[M++];)x===C[M]&&(z=I.push(M));for(;z--;)C.splice(I[z],1)}return $=null,C},v=bt.getText=function(C){var x,I="",z=0,M=C.nodeType;if(M){if(M===1||M===9||M===11){if(typeof C.textContent=="string")return C.textContent;for(C=C.firstChild;C;C=C.nextSibling)I+=v(C)}else if(M===3||M===4)return C.nodeValue}else for(;x=C[z++];)I+=v(x);return I},h=bt.selectors={cacheLength:50,createPseudo:$n,match:No,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(C){return C[1]=C[1].replace(pi,hi),C[3]=(C[3]||C[4]||C[5]||"").replace(pi,hi),C[2]==="~="&&(C[3]=" "+C[3]+" "),C.slice(0,4)},CHILD:function(C){return C[1]=C[1].toLowerCase(),C[1].slice(0,3)==="nth"?(C[3]||bt.error(C[0]),C[4]=+(C[4]?C[5]+(C[6]||1):2*(C[3]==="even"||C[3]==="odd")),C[5]=+(C[7]+C[8]||C[3]==="odd")):C[3]&&bt.error(C[0]),C},PSEUDO:function(C){var x,I=!C[6]&&C[2];return No.CHILD.test(C[0])?null:(C[3]?C[2]=C[4]||C[5]||"":I&&V_.test(I)&&(x=b(I,!0))&&(x=I.indexOf(")",I.length-x)-I.length)&&(C[0]=C[0].slice(0,x),C[2]=I.slice(0,x)),C.slice(0,3))}},filter:{TAG:function(C){var x=C.replace(pi,hi).toLowerCase();return C==="*"?function(){return!0}:function(I){return I.nodeName&&I.nodeName.toLowerCase()===x}},CLASS:function(C){var x=Dt[C+" "];return x||(x=new RegExp("(^|"+pt+")"+C+"("+pt+"|$)"))&&Dt(C,function(I){return x.test(typeof I.className=="string"&&I.className||typeof I.getAttribute<"u"&&I.getAttribute("class")||"")})},ATTR:function(C,x,I){return function(z){var M=bt.attr(z,C);return M==null?x==="!=":x?(M+="",x==="="?M===I:x==="!="?M!==I:x==="^="?I&&M.indexOf(I)===0:x==="*="?I&&M.indexOf(I)>-1:x==="$="?I&&M.slice(-I.length)===I:x==="~="?(" "+M.replace($_," ")+" ").indexOf(I)>-1:x==="|="?M===I||M.slice(0,I.length+1)===I+"-":!1):!0}},CHILD:function(C,x,I,z,M){var G=C.slice(0,3)!=="nth",te=C.slice(-4)!=="last",ue=x==="of-type";return z===1&&M===0?function(me){return!!me.parentNode}:function(me,He,Ne){var je,Qe,Ct,Be,jt,Yt,Cn=G!==te?"nextSibling":"previousSibling",kt=me.parentNode,bs=ue&&me.nodeName.toLowerCase(),Cs=!Ne&&!ue,wn=!1;if(kt){if(G){for(;Cn;){for(Be=me;Be=Be[Cn];)if(ue?Be.nodeName.toLowerCase()===bs:Be.nodeType===1)return!1;Yt=Cn=C==="only"&&!Yt&&"nextSibling"}return!0}if(Yt=[te?kt.firstChild:kt.lastChild],te&&Cs){for(Be=kt,Ct=Be[yt]||(Be[yt]={}),Qe=Ct[Be.uniqueID]||(Ct[Be.uniqueID]={}),je=Qe[C]||[],jt=je[0]===fn&&je[1],wn=jt&&je[2],Be=jt&&kt.childNodes[jt];Be=++jt&&Be&&Be[Cn]||(wn=jt=0)||Yt.pop();)if(Be.nodeType===1&&++wn&&Be===me){Qe[C]=[fn,jt,wn];break}}else if(Cs&&(Be=me,Ct=Be[yt]||(Be[yt]={}),Qe=Ct[Be.uniqueID]||(Ct[Be.uniqueID]={}),je=Qe[C]||[],jt=je[0]===fn&&je[1],wn=jt),wn===!1)for(;(Be=++jt&&Be&&Be[Cn]||(wn=jt=0)||Yt.pop())&&!((ue?Be.nodeName.toLowerCase()===bs:Be.nodeType===1)&&++wn&&(Cs&&(Ct=Be[yt]||(Be[yt]={}),Qe=Ct[Be.uniqueID]||(Ct[Be.uniqueID]={}),Qe[C]=[fn,wn]),Be===me)););return wn-=M,wn===z||wn%z===0&&wn/z>=0}}},PSEUDO:function(C,x){var I,z=h.pseudos[C]||h.setFilters[C.toLowerCase()]||bt.error("unsupported pseudo: "+C);return z[yt]?z(x):z.length>1?(I=[C,C,"",x],h.setFilters.hasOwnProperty(C.toLowerCase())?$n(function(M,G){for(var te,ue=z(M,x),me=ue.length;me--;)te=Gi(M,ue[me]),M[te]=!(G[te]=ue[me])}):function(M){return z(M,0,I)}):z}},pseudos:{not:$n(function(C){var x=[],I=[],z=A(C.replace(Io,"$1"));return z[yt]?$n(function(M,G,te,ue){for(var me,He=z(M,null,ue,[]),Ne=M.length;Ne--;)(me=He[Ne])&&(M[Ne]=!(G[Ne]=me))}):function(M,G,te){return x[0]=M,z(x,null,te,I),x[0]=null,!I.pop()}}),has:$n(function(C){return function(x){return bt(C,x).length>0}}),contains:$n(function(C){return C=C.replace(pi,hi),function(x){return(x.textContent||v(x)).indexOf(C)>-1}}),lang:$n(function(C){return K_.test(C||"")||bt.error("unsupported lang: "+C),C=C.replace(pi,hi).toLowerCase(),function(x){var I;do if(I=Ye?x.lang:x.getAttribute("xml:lang")||x.getAttribute("lang"))return I=I.toLowerCase(),I===C||I.indexOf(C+"-")===0;while((x=x.parentNode)&&x.nodeType===1);return!1}}),target:function(C){var x=s.location&&s.location.hash;return x&&x.slice(1)===C.id},root:function(C){return C===Oe},focus:function(C){return C===K.activeElement&&(!K.hasFocus||K.hasFocus())&&!!(C.type||C.href||~C.tabIndex)},enabled:Td(!1),disabled:Td(!0),checked:function(C){var x=C.nodeName.toLowerCase();return x==="input"&&!!C.checked||x==="option"&&!!C.selected},selected:function(C){return C.parentNode&&C.parentNode.selectedIndex,C.selected===!0},empty:function(C){for(C=C.firstChild;C;C=C.nextSibling)if(C.nodeType<6)return!1;return!0},parent:function(C){return!h.pseudos.empty(C)},header:function(C){return X_.test(C.nodeName)},input:function(C){return z_.test(C.nodeName)},button:function(C){var x=C.nodeName.toLowerCase();return x==="input"&&C.type==="button"||x==="button"},text:function(C){var x;return C.nodeName.toLowerCase()==="input"&&C.type==="text"&&((x=C.getAttribute("type"))==null||x.toLowerCase()==="text")},first:Zi(function(){return[0]}),last:Zi(function(C,x){return[x-1]}),eq:Zi(function(C,x,I){return[I<0?I+x:I]}),even:Zi(function(C,x){for(var I=0;Ix?x:I;--z>=0;)C.push(z);return C}),gt:Zi(function(C,x,I){for(var z=I<0?I+x:I;++z1?function(x,I,z){for(var M=C.length;M--;)if(!C[M](x,I,z))return!1;return!0}:C[0]}function Q_(C,x,I){for(var z=0,M=x.length;z-1&&(te[Ne]=!(ue[Ne]=Qe))}}else kt=Ho(kt===ue?kt.splice(jt,kt.length):kt),M?M(null,ue,kt,He):ki.apply(ue,kt)})}function Rl(C){for(var x,I,z,M=C.length,G=h.relative[C[0].type],te=G||h.relative[" "],ue=G?1:0,me=Fo(function(je){return je===x},te,!0),He=Fo(function(je){return Gi(x,je)>-1},te,!0),Ne=[function(je,Qe,Ct){var Be=!G&&(Ct||Qe!==F)||((x=Qe).nodeType?me(je,Qe,Ct):He(je,Qe,Ct));return x=null,Be}];ue1&&Il(Ne),ue>1&&Mo(C.slice(0,ue-1).concat({value:C[ue-2].type===" "?"*":""})).replace(Io,"$1"),I,ue0,z=C.length>0,M=function(G,te,ue,me,He){var Ne,je,Qe,Ct=0,Be="0",jt=G&&[],Yt=[],Cn=F,kt=G||z&&h.find.TAG("*",He),bs=fn+=Cn==null?1:Math.random()||.1,Cs=kt.length;for(He&&(F=te==K||te||He);Be!==Cs&&(Ne=kt[Be])!=null;Be++){if(z&&Ne){for(je=0,!te&&Ne.ownerDocument!=K&&(j(Ne),ue=!Ye);Qe=C[je++];)if(Qe(Ne,te||K,ue)){me.push(Ne);break}He&&(fn=bs)}I&&((Ne=!Qe&&Ne)&&Ct--,G&&jt.push(Ne))}if(Ct+=Be,I&&Be!==Ct){for(je=0;Qe=x[je++];)Qe(jt,Yt,te,ue);if(G){if(Ct>0)for(;Be--;)jt[Be]||Yt[Be]||(Yt[Be]=Si.call(me));Yt=Ho(Yt)}ki.apply(me,Yt),He&&!G&&Yt.length>0&&Ct+x.length>1&&bt.uniqueSort(me)}return He&&(fn=bs,F=Cn),jt};return I?$n(M):M}return A=bt.compile=function(C,x){var I,z=[],M=[],G=Po[C+" "];if(!G){for(x||(x=b(C)),I=x.length;I--;)G=Rl(x[I]),G[yt]?z.push(G):M.push(G);G=Po(C,e1(M,z)),G.selector=C}return G},E=bt.select=function(C,x,I,z){var M,G,te,ue,me,He=typeof C=="function"&&C,Ne=!z&&b(C=He.selector||C);if(I=I||[],Ne.length===1){if(G=Ne[0]=Ne[0].slice(0),G.length>2&&(te=G[0]).type==="ID"&&x.nodeType===9&&Ye&&h.relative[G[1].type]){if(x=(h.find.ID(te.matches[0].replace(pi,hi),x)||[])[0],x)He&&(x=x.parentNode);else return I;C=C.slice(G.shift().value.length)}for(M=No.needsContext.test(C)?0:G.length;M--&&(te=G[M],!h.relative[ue=te.type]);)if((me=h.find[ue])&&(z=me(te.matches[0].replace(pi,hi),Ol.test(G[0].type)&&Pl(x.parentNode)||x))){if(G.splice(M,1),C=z.length&&Mo(G),!C)return ki.apply(I,z),I;break}}return(He||A(C,Ne))(z,x,!Ye,I,!x||Ol.test(C)&&Pl(x.parentNode)||x),I},f.sortStable=yt.split("").sort(Xi).join("")===yt,f.detectDuplicates=!!ee,j(),f.sortDetached=On(function(C){return C.compareDocumentPosition(K.createElement("fieldset"))&1}),On(function(C){return C.innerHTML=" ",C.firstChild.getAttribute("href")==="#"})||Dl("type|href|height|width",function(C,x,I){if(!I)return C.getAttribute(x,x.toLowerCase()==="type"?1:2)}),(!f.attributes||!On(function(C){return C.innerHTML=" ",C.firstChild.setAttribute("value",""),C.firstChild.getAttribute("value")===""}))&&Dl("value",function(C,x,I){if(!I&&C.nodeName.toLowerCase()==="input")return C.defaultValue}),On(function(C){return C.getAttribute("disabled")==null})||Dl(Al,function(C,x,I){var z;if(!I)return C[x]===!0?x.toLowerCase():(z=C.getAttributeNode(x))&&z.specified?z.value:null}),bt}(t);p.find=Me,p.expr=Me.selectors,p.expr[":"]=p.expr.pseudos,p.uniqueSort=p.unique=Me.uniqueSort,p.text=Me.getText,p.isXMLDoc=Me.isXML,p.contains=Me.contains,p.escapeSelector=Me.escape;var ne=function(s,u,f){for(var h=[],v=f!==void 0;(s=s[u])&&s.nodeType!==9;)if(s.nodeType===1){if(v&&p(s).is(f))break;h.push(s)}return h},Y=function(s,u){for(var f=[];s;s=s.nextSibling)s.nodeType===1&&s!==u&&f.push(s);return f},Ee=p.expr.match.needsContext;function De(s,u){return s.nodeName&&s.nodeName.toLowerCase()===u.toLowerCase()}var Te=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function tt(s,u,f){return O(u)?p.grep(s,function(h,v){return!!u.call(h,v,h)!==f}):u.nodeType?p.grep(s,function(h){return h===u!==f}):typeof u!="string"?p.grep(s,function(h){return d.call(u,h)>-1!==f}):p.filter(u,s,f)}p.filter=function(s,u,f){var h=u[0];return f&&(s=":not("+s+")"),u.length===1&&h.nodeType===1?p.find.matchesSelector(h,s)?[h]:[]:p.find.matches(s,p.grep(u,function(v){return v.nodeType===1}))},p.fn.extend({find:function(s){var u,f,h=this.length,v=this;if(typeof s!="string")return this.pushStack(p(s).filter(function(){for(u=0;u1?p.uniqueSort(f):f},filter:function(s){return this.pushStack(tt(this,s||[],!1))},not:function(s){return this.pushStack(tt(this,s||[],!0))},is:function(s){return!!tt(this,typeof s=="string"&&Ee.test(s)?p(s):s||[],!1).length}});var ft,$e=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Ie=p.fn.init=function(s,u,f){var h,v;if(!s)return this;if(f=f||ft,typeof s=="string")if(s[0]==="<"&&s[s.length-1]===">"&&s.length>=3?h=[null,s,null]:h=$e.exec(s),h&&(h[1]||!u))if(h[1]){if(u=u instanceof p?u[0]:u,p.merge(this,p.parseHTML(h[1],u&&u.nodeType?u.ownerDocument||u:P,!0)),Te.test(h[1])&&p.isPlainObject(u))for(h in u)O(this[h])?this[h](u[h]):this.attr(h,u[h]);return this}else return v=P.getElementById(h[2]),v&&(this[0]=v,this.length=1),this;else return!u||u.jquery?(u||f).find(s):this.constructor(u).find(s);else{if(s.nodeType)return this[0]=s,this.length=1,this;if(O(s))return f.ready!==void 0?f.ready(s):s(p)}return p.makeArray(s,this)};Ie.prototype=p.fn,ft=p(P);var be=/^(?:parents|prev(?:Until|All))/,st={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({has:function(s){var u=p(s,this),f=u.length;return this.filter(function(){for(var h=0;h-1:f.nodeType===1&&p.find.matchesSelector(f,s))){y.push(f);break}}return this.pushStack(y.length>1?p.uniqueSort(y):y)},index:function(s){return s?typeof s=="string"?d.call(p(s),this[0]):d.call(this,s.jquery?s[0]:s):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(s,u){return this.pushStack(p.uniqueSort(p.merge(this.get(),p(s,u))))},addBack:function(s){return this.add(s==null?this.prevObject:this.prevObject.filter(s))}});function St(s,u){for(;(s=s[u])&&s.nodeType!==1;);return s}p.each({parent:function(s){var u=s.parentNode;return u&&u.nodeType!==11?u:null},parents:function(s){return ne(s,"parentNode")},parentsUntil:function(s,u,f){return ne(s,"parentNode",f)},next:function(s){return St(s,"nextSibling")},prev:function(s){return St(s,"previousSibling")},nextAll:function(s){return ne(s,"nextSibling")},prevAll:function(s){return ne(s,"previousSibling")},nextUntil:function(s,u,f){return ne(s,"nextSibling",f)},prevUntil:function(s,u,f){return ne(s,"previousSibling",f)},siblings:function(s){return Y((s.parentNode||{}).firstChild,s)},children:function(s){return Y(s.firstChild)},contents:function(s){return s.contentDocument!=null&&r(s.contentDocument)?s.contentDocument:(De(s,"template")&&(s=s.content||s),p.merge([],s.childNodes))}},function(s,u){p.fn[s]=function(f,h){var v=p.map(this,u,f);return s.slice(-5)!=="Until"&&(h=f),h&&typeof h=="string"&&(v=p.filter(h,v)),this.length>1&&(st[s]||p.uniqueSort(v),be.test(s)&&v.reverse()),this.pushStack(v)}});var ot=/[^\x20\t\r\n\f]+/g;function we(s){var u={};return p.each(s.match(ot)||[],function(f,h){u[h]=!0}),u}p.Callbacks=function(s){s=typeof s=="string"?we(s):p.extend({},s);var u,f,h,v,y=[],b=[],A=-1,E=function(){for(v=v||s.once,h=u=!0;b.length;A=-1)for(f=b.shift();++A-1;)y.splice(j,1),j<=A&&A--}),this},has:function($){return $?p.inArray($,y)>-1:y.length>0},empty:function(){return y&&(y=[]),this},disable:function(){return v=b=[],y=f="",this},disabled:function(){return!y},lock:function(){return v=b=[],!f&&!u&&(y=f=""),this},locked:function(){return!!v},fireWith:function($,ee){return v||(ee=ee||[],ee=[$,ee.slice?ee.slice():ee],b.push(ee),u||E()),this},fire:function(){return F.fireWith(this,arguments),this},fired:function(){return!!h}};return F};function pe(s){return s}function he(s){throw s}function Se(s,u,f,h){var v;try{s&&O(v=s.promise)?v.call(s).done(u).fail(f):s&&O(v=s.then)?v.call(s,u,f):u.apply(void 0,[s].slice(h))}catch(y){f.apply(void 0,[y])}}p.extend({Deferred:function(s){var u=[["notify","progress",p.Callbacks("memory"),p.Callbacks("memory"),2],["resolve","done",p.Callbacks("once memory"),p.Callbacks("once memory"),0,"resolved"],["reject","fail",p.Callbacks("once memory"),p.Callbacks("once memory"),1,"rejected"]],f="pending",h={state:function(){return f},always:function(){return v.done(arguments).fail(arguments),this},catch:function(y){return h.then(null,y)},pipe:function(){var y=arguments;return p.Deferred(function(b){p.each(u,function(A,E){var F=O(y[E[4]])&&y[E[4]];v[E[1]](function(){var $=F&&F.apply(this,arguments);$&&O($.promise)?$.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[E[0]+"With"](this,F?[$]:arguments)})}),y=null}).promise()},then:function(y,b,A){var E=0;function F($,ee,j,K){return function(){var Oe=this,Ye=arguments,Ae=function(){var Rt,yn;if(!($=E&&(j!==he&&(Oe=void 0,Ye=[Rt]),ee.rejectWith(Oe,Ye))}};$?Bt():(p.Deferred.getStackHook&&(Bt.stackTrace=p.Deferred.getStackHook()),t.setTimeout(Bt))}}return p.Deferred(function($){u[0][3].add(F(0,$,O(A)?A:pe,$.notifyWith)),u[1][3].add(F(0,$,O(y)?y:pe)),u[2][3].add(F(0,$,O(b)?b:he))}).promise()},promise:function(y){return y!=null?p.extend(y,h):h}},v={};return p.each(u,function(y,b){var A=b[2],E=b[5];h[b[1]]=A.add,E&&A.add(function(){f=E},u[3-y][2].disable,u[3-y][3].disable,u[0][2].lock,u[0][3].lock),A.add(b[3].fire),v[b[0]]=function(){return v[b[0]+"With"](this===v?void 0:this,arguments),this},v[b[0]+"With"]=A.fireWith}),h.promise(v),s&&s.call(v,v),v},when:function(s){var u=arguments.length,f=u,h=Array(f),v=o.call(arguments),y=p.Deferred(),b=function(A){return function(E){h[A]=this,v[A]=arguments.length>1?o.call(arguments):E,--u||y.resolveWith(h,v)}};if(u<=1&&(Se(s,y.done(b(f)).resolve,y.reject,!u),y.state()==="pending"||O(v[f]&&v[f].then)))return y.then();for(;f--;)Se(v[f],b(f),y.reject);return y.promise()}});var _e=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;p.Deferred.exceptionHook=function(s,u){t.console&&t.console.warn&&s&&_e.test(s.name)&&t.console.warn("jQuery.Deferred exception: "+s.message,s.stack,u)},p.readyException=function(s){t.setTimeout(function(){throw s})};var Fe=p.Deferred();p.fn.ready=function(s){return Fe.then(s).catch(function(u){p.readyException(u)}),this},p.extend({isReady:!1,readyWait:1,ready:function(s){(s===!0?--p.readyWait:p.isReady)||(p.isReady=!0,!(s!==!0&&--p.readyWait>0)&&Fe.resolveWith(P,[p]))}}),p.ready.then=Fe.then;function ct(){P.removeEventListener("DOMContentLoaded",ct),t.removeEventListener("load",ct),p.ready()}P.readyState==="complete"||P.readyState!=="loading"&&!P.documentElement.doScroll?t.setTimeout(p.ready):(P.addEventListener("DOMContentLoaded",ct),t.addEventListener("load",ct));var dt=function(s,u,f,h,v,y,b){var A=0,E=s.length,F=f==null;if(L(f)==="object"){v=!0;for(A in f)dt(s,u,A,f[A],!0,y,b)}else if(h!==void 0&&(v=!0,O(h)||(b=!0),F&&(b?(u.call(s,h),u=null):(F=u,u=function($,ee,j){return F.call(p($),j)})),u))for(;A1,null,!0)},removeData:function(s){return this.each(function(){V.remove(this,s)})}}),p.extend({queue:function(s,u,f){var h;if(s)return u=(u||"fx")+"queue",h=H.get(s,u),f&&(!h||Array.isArray(f)?h=H.access(s,u,p.makeArray(f)):h.push(f)),h||[]},dequeue:function(s,u){u=u||"fx";var f=p.queue(s,u),h=f.length,v=f.shift(),y=p._queueHooks(s,u),b=function(){p.dequeue(s,u)};v==="inprogress"&&(v=f.shift(),h--),v&&(u==="fx"&&f.unshift("inprogress"),delete y.stop,v.call(s,b,y)),!h&&y&&y.empty.fire()},_queueHooks:function(s,u){var f=u+"queueHooks";return H.get(s,f)||H.access(s,f,{empty:p.Callbacks("once memory").add(function(){H.remove(s,[u+"queue",f])})})}}),p.fn.extend({queue:function(s,u){var f=2;return typeof s!="string"&&(u=s,s="fx",f--),arguments.length\x20\t\r\n\f]*)/i,de=/^$|^module$|\/(?:java|ecma)script/i;(function(){var s=P.createDocumentFragment(),u=s.appendChild(P.createElement("div")),f=P.createElement("input");f.setAttribute("type","radio"),f.setAttribute("checked","checked"),f.setAttribute("name","t"),u.appendChild(f),S.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,u.innerHTML="",S.noCloneChecked=!!u.cloneNode(!0).lastChild.defaultValue,u.innerHTML=" ",S.option=!!u.lastChild})();var ye={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};ye.tbody=ye.tfoot=ye.colgroup=ye.caption=ye.thead,ye.th=ye.td,S.option||(ye.optgroup=ye.option=[1,""," "]);function qe(s,u){var f;return typeof s.getElementsByTagName<"u"?f=s.getElementsByTagName(u||"*"):typeof s.querySelectorAll<"u"?f=s.querySelectorAll(u||"*"):f=[],u===void 0||u&&De(s,u)?p.merge([s],f):f}function et(s,u){for(var f=0,h=s.length;f-1){v&&v.push(y);continue}if(F=Ke(y),b=qe(ee.appendChild(y),"script"),F&&et(b),f)for($=0;y=b[$++];)de.test(y.type||"")&&f.push(y)}return ee}var fi=/^([^.]*)(?:\.(.+)|)/;function di(){return!0}function un(){return!1}function fs(s,u){return s===_r()==(u==="focus")}function _r(){try{return P.activeElement}catch{}}function ni(s,u,f,h,v,y){var b,A;if(typeof u=="object"){typeof f!="string"&&(h=h||f,f=void 0);for(A in u)ni(s,A,f,h,u[A],y);return s}if(h==null&&v==null?(v=f,h=f=void 0):v==null&&(typeof f=="string"?(v=h,h=void 0):(v=h,h=f,f=void 0)),v===!1)v=un;else if(!v)return s;return y===1&&(b=v,v=function(E){return p().off(E),b.apply(this,arguments)},v.guid=b.guid||(b.guid=p.guid++)),s.each(function(){p.event.add(this,u,v,h,f)})}p.event={global:{},add:function(s,u,f,h,v){var y,b,A,E,F,$,ee,j,K,Oe,Ye,Ae=H.get(s);if(W(s))for(f.handler&&(y=f,f=y.handler,v=y.selector),v&&p.find.matchesSelector(Le,v),f.guid||(f.guid=p.guid++),(E=Ae.events)||(E=Ae.events=Object.create(null)),(b=Ae.handle)||(b=Ae.handle=function(Bt){return typeof p<"u"&&p.event.triggered!==Bt.type?p.event.dispatch.apply(s,arguments):void 0}),u=(u||"").match(ot)||[""],F=u.length;F--;)A=fi.exec(u[F])||[],K=Ye=A[1],Oe=(A[2]||"").split(".").sort(),K&&(ee=p.event.special[K]||{},K=(v?ee.delegateType:ee.bindType)||K,ee=p.event.special[K]||{},$=p.extend({type:K,origType:Ye,data:h,handler:f,guid:f.guid,selector:v,needsContext:v&&p.expr.match.needsContext.test(v),namespace:Oe.join(".")},y),(j=E[K])||(j=E[K]=[],j.delegateCount=0,(!ee.setup||ee.setup.call(s,h,Oe,b)===!1)&&s.addEventListener&&s.addEventListener(K,b)),ee.add&&(ee.add.call(s,$),$.handler.guid||($.handler.guid=f.guid)),v?j.splice(j.delegateCount++,0,$):j.push($),p.event.global[K]=!0)},remove:function(s,u,f,h,v){var y,b,A,E,F,$,ee,j,K,Oe,Ye,Ae=H.hasData(s)&&H.get(s);if(!(!Ae||!(E=Ae.events))){for(u=(u||"").match(ot)||[""],F=u.length;F--;){if(A=fi.exec(u[F])||[],K=Ye=A[1],Oe=(A[2]||"").split(".").sort(),!K){for(K in E)p.event.remove(s,K+u[F],f,h,!0);continue}for(ee=p.event.special[K]||{},K=(h?ee.delegateType:ee.bindType)||K,j=E[K]||[],A=A[2]&&new RegExp("(^|\\.)"+Oe.join("\\.(?:.*\\.|)")+"(\\.|$)"),b=y=j.length;y--;)$=j[y],(v||Ye===$.origType)&&(!f||f.guid===$.guid)&&(!A||A.test($.namespace))&&(!h||h===$.selector||h==="**"&&$.selector)&&(j.splice(y,1),$.selector&&j.delegateCount--,ee.remove&&ee.remove.call(s,$));b&&!j.length&&((!ee.teardown||ee.teardown.call(s,Oe,Ae.handle)===!1)&&p.removeEvent(s,K,Ae.handle),delete E[K])}p.isEmptyObject(E)&&H.remove(s,"handle events")}},dispatch:function(s){var u,f,h,v,y,b,A=new Array(arguments.length),E=p.event.fix(s),F=(H.get(this,"events")||Object.create(null))[E.type]||[],$=p.event.special[E.type]||{};for(A[0]=E,u=1;u=1)){for(;F!==this;F=F.parentNode||this)if(F.nodeType===1&&!(s.type==="click"&&F.disabled===!0)){for(y=[],b={},f=0;f-1:p.find(v,this,null,[F]).length),b[v]&&y.push(h);y.length&&A.push({elem:F,handlers:y})}}return F=this,E\s*$/g;function Kf(s,u){return De(s,"table")&&De(u.nodeType!==11?u:u.firstChild,"tr")&&p(s).children("tbody")[0]||s}function c_(s){return s.type=(s.getAttribute("type")!==null)+"/"+s.type,s}function f_(s){return(s.type||"").slice(0,5)==="true/"?s.type=s.type.slice(5):s.removeAttribute("type"),s}function qf(s,u){var f,h,v,y,b,A,E;if(u.nodeType===1){if(H.hasData(s)&&(y=H.get(s),E=y.events,E)){H.remove(u,"handle events");for(v in E)for(f=0,h=E[v].length;f1&&typeof K=="string"&&!S.checkClone&&xr.test(K))return s.each(function(Ye){var Ae=s.eq(Ye);Oe&&(u[0]=K.call(this,Ye,Ae.html())),Sr(Ae,u,f,h)});if(ee&&(v=en(u,s[0].ownerDocument,!1,s,h),y=v.firstChild,v.childNodes.length===1&&(v=y),y||h)){for(b=p.map(qe(v,"script"),c_),A=b.length;$0&&et(b,!E&&qe(s,"script")),A},cleanData:function(s){for(var u,f,h,v=p.event.special,y=0;(f=s[y])!==void 0;y++)if(W(f)){if(u=f[H.expando]){if(u.events)for(h in u.events)v[h]?p.event.remove(f,h):p.removeEvent(f,h,u.handle);f[H.expando]=void 0}f[V.expando]&&(f[V.expando]=void 0)}}}),p.fn.extend({detach:function(s){return zf(this,s,!0)},remove:function(s){return zf(this,s)},text:function(s){return dt(this,function(u){return u===void 0?p.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=u)})},null,s,arguments.length)},append:function(){return Sr(this,arguments,function(s){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var u=Kf(this,s);u.appendChild(s)}})},prepend:function(){return Sr(this,arguments,function(s){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var u=Kf(this,s);u.insertBefore(s,u.firstChild)}})},before:function(){return Sr(this,arguments,function(s){this.parentNode&&this.parentNode.insertBefore(s,this)})},after:function(){return Sr(this,arguments,function(s){this.parentNode&&this.parentNode.insertBefore(s,this.nextSibling)})},empty:function(){for(var s,u=0;(s=this[u])!=null;u++)s.nodeType===1&&(p.cleanData(qe(s,!1)),s.textContent="");return this},clone:function(s,u){return s=s??!1,u=u??s,this.map(function(){return p.clone(this,s,u)})},html:function(s){return dt(this,function(u){var f=this[0]||{},h=0,v=this.length;if(u===void 0&&f.nodeType===1)return f.innerHTML;if(typeof u=="string"&&!ds.test(u)&&!ye[(q.exec(u)||["",""])[1].toLowerCase()]){u=p.htmlPrefilter(u);try{for(;h=0&&(E+=Math.max(0,Math.ceil(s["offset"+u[0].toUpperCase()+u.slice(1)]-y-E-A-.5))||0),E}function nd(s,u,f){var h=Lo(s),v=!S.boxSizingReliable()||f,y=v&&p.css(s,"boxSizing",!1,h)==="border-box",b=y,A=ps(s,u,h),E="offset"+u[0].toUpperCase()+u.slice(1);if(ml.test(A)){if(!f)return A;A="auto"}return(!S.boxSizingReliable()&&y||!S.reliableTrDimensions()&&De(s,"tr")||A==="auto"||!parseFloat(A)&&p.css(s,"display",!1,h)==="inline")&&s.getClientRects().length&&(y=p.css(s,"boxSizing",!1,h)==="border-box",b=E in s,b&&(A=s[E])),A=parseFloat(A)||0,A+bl(s,u,f||(y?"border":"content"),b,h,A)+"px"}p.extend({cssHooks:{opacity:{get:function(s,u){if(u){var f=ps(s,"opacity");return f===""?"1":f}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(s,u,f,h){if(!(!s||s.nodeType===3||s.nodeType===8||!s.style)){var v,y,b,A=D(u),E=vl.test(u),F=s.style;if(E||(u=yl(A)),b=p.cssHooks[u]||p.cssHooks[A],f!==void 0){if(y=typeof f,y==="string"&&(v=ge.exec(f))&&v[1]&&(f=Et(s,u,v),y="number"),f==null||f!==f)return;y==="number"&&!E&&(f+=v&&v[3]||(p.cssNumber[A]?"":"px")),!S.clearCloneStyle&&f===""&&u.indexOf("background")===0&&(F[u]="inherit"),(!b||!("set"in b)||(f=b.set(s,f,h))!==void 0)&&(E?F.setProperty(u,f):F[u]=f)}else return b&&"get"in b&&(v=b.get(s,!1,h))!==void 0?v:F[u]}},css:function(s,u,f,h){var v,y,b,A=D(u),E=vl.test(u);return E||(u=yl(A)),b=p.cssHooks[u]||p.cssHooks[A],b&&"get"in b&&(v=b.get(s,!0,f)),v===void 0&&(v=ps(s,u,h)),v==="normal"&&u in ed&&(v=ed[u]),f===""||f?(y=parseFloat(v),f===!0||isFinite(y)?y||0:v):v}}),p.each(["height","width"],function(s,u){p.cssHooks[u]={get:function(f,h,v){if(h)return m_.test(p.css(f,"display"))&&(!f.getClientRects().length||!f.getBoundingClientRect().width)?Xf(f,v_,function(){return nd(f,u,v)}):nd(f,u,v)},set:function(f,h,v){var y,b=Lo(f),A=!S.scrollboxSize()&&b.position==="absolute",E=A||v,F=E&&p.css(f,"boxSizing",!1,b)==="border-box",$=v?bl(f,u,v,F,b):0;return F&&A&&($-=Math.ceil(f["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(b[u])-bl(f,u,"border",!1,b)-.5)),$&&(y=ge.exec(h))&&(y[3]||"px")!=="px"&&(f.style[u]=h,h=p.css(f,u)),td(f,h,$)}}}),p.cssHooks.marginLeft=Gf(S.reliableMarginLeft,function(s,u){if(u)return(parseFloat(ps(s,"marginLeft"))||s.getBoundingClientRect().left-Xf(s,{marginLeft:0},function(){return s.getBoundingClientRect().left}))+"px"}),p.each({margin:"",padding:"",border:"Width"},function(s,u){p.cssHooks[s+u]={expand:function(f){for(var h=0,v={},y=typeof f=="string"?f.split(" "):[f];h<4;h++)v[s+Ce[h]+u]=y[h]||y[h-2]||y[0];return v}},s!=="margin"&&(p.cssHooks[s+u].set=td)}),p.fn.extend({css:function(s,u){return dt(this,function(f,h,v){var y,b,A={},E=0;if(Array.isArray(h)){for(y=Lo(f),b=h.length;E1)}});function cn(s,u,f,h,v){return new cn.prototype.init(s,u,f,h,v)}p.Tween=cn,cn.prototype={constructor:cn,init:function(s,u,f,h,v,y){this.elem=s,this.prop=f,this.easing=v||p.easing._default,this.options=u,this.start=this.now=this.cur(),this.end=h,this.unit=y||(p.cssNumber[f]?"":"px")},cur:function(){var s=cn.propHooks[this.prop];return s&&s.get?s.get(this):cn.propHooks._default.get(this)},run:function(s){var u,f=cn.propHooks[this.prop];return this.options.duration?this.pos=u=p.easing[this.easing](s,this.options.duration*s,0,1,this.options.duration):this.pos=u=s,this.now=(this.end-this.start)*u+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),f&&f.set?f.set(this):cn.propHooks._default.set(this),this}},cn.prototype.init.prototype=cn.prototype,cn.propHooks={_default:{get:function(s){var u;return s.elem.nodeType!==1||s.elem[s.prop]!=null&&s.elem.style[s.prop]==null?s.elem[s.prop]:(u=p.css(s.elem,s.prop,""),!u||u==="auto"?0:u)},set:function(s){p.fx.step[s.prop]?p.fx.step[s.prop](s):s.elem.nodeType===1&&(p.cssHooks[s.prop]||s.elem.style[yl(s.prop)]!=null)?p.style(s.elem,s.prop,s.now+s.unit):s.elem[s.prop]=s.now}}},cn.propHooks.scrollTop=cn.propHooks.scrollLeft={set:function(s){s.elem.nodeType&&s.elem.parentNode&&(s.elem[s.prop]=s.now)}},p.easing={linear:function(s){return s},swing:function(s){return .5-Math.cos(s*Math.PI)/2},_default:"swing"},p.fx=cn.prototype.init,p.fx.step={};var kr,Oo,y_=/^(?:toggle|show|hide)$/,b_=/queueHooks$/;function Cl(){Oo&&(P.hidden===!1&&t.requestAnimationFrame?t.requestAnimationFrame(Cl):t.setTimeout(Cl,p.fx.interval),p.fx.tick())}function id(){return t.setTimeout(function(){kr=void 0}),kr=Date.now()}function Do(s,u){var f,h=0,v={height:s};for(u=u?1:0;h<4;h+=2-u)f=Ce[h],v["margin"+f]=v["padding"+f]=s;return u&&(v.opacity=v.width=s),v}function rd(s,u,f){for(var h,v=(jn.tweeners[u]||[]).concat(jn.tweeners["*"]),y=0,b=v.length;y1)},removeAttr:function(s){return this.each(function(){p.removeAttr(this,s)})}}),p.extend({attr:function(s,u,f){var h,v,y=s.nodeType;if(!(y===3||y===8||y===2)){if(typeof s.getAttribute>"u")return p.prop(s,u,f);if((y!==1||!p.isXMLDoc(s))&&(v=p.attrHooks[u.toLowerCase()]||(p.expr.match.bool.test(u)?sd:void 0)),f!==void 0){if(f===null){p.removeAttr(s,u);return}return v&&"set"in v&&(h=v.set(s,f,u))!==void 0?h:(s.setAttribute(u,f+""),f)}return v&&"get"in v&&(h=v.get(s,u))!==null?h:(h=p.find.attr(s,u),h??void 0)}},attrHooks:{type:{set:function(s,u){if(!S.radioValue&&u==="radio"&&De(s,"input")){var f=s.value;return s.setAttribute("type",u),f&&(s.value=f),u}}}},removeAttr:function(s,u){var f,h=0,v=u&&u.match(ot);if(v&&s.nodeType===1)for(;f=v[h++];)s.removeAttribute(f)}}),sd={set:function(s,u,f){return u===!1?p.removeAttr(s,f):s.setAttribute(f,f),f}},p.each(p.expr.match.bool.source.match(/\w+/g),function(s,u){var f=hs[u]||p.find.attr;hs[u]=function(h,v,y){var b,A,E=v.toLowerCase();return y||(A=hs[E],hs[E]=b,b=f(h,v,y)!=null?E:null,hs[E]=A),b}});var T_=/^(?:input|select|textarea|button)$/i,__=/^(?:a|area)$/i;p.fn.extend({prop:function(s,u){return dt(this,p.prop,s,u,arguments.length>1)},removeProp:function(s){return this.each(function(){delete this[p.propFix[s]||s]})}}),p.extend({prop:function(s,u,f){var h,v,y=s.nodeType;if(!(y===3||y===8||y===2))return(y!==1||!p.isXMLDoc(s))&&(u=p.propFix[u]||u,v=p.propHooks[u]),f!==void 0?v&&"set"in v&&(h=v.set(s,f,u))!==void 0?h:s[u]=f:v&&"get"in v&&(h=v.get(s,u))!==null?h:s[u]},propHooks:{tabIndex:{get:function(s){var u=p.find.attr(s,"tabindex");return u?parseInt(u,10):T_.test(s.nodeName)||__.test(s.nodeName)&&s.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),S.optSelected||(p.propHooks.selected={get:function(s){var u=s.parentNode;return u&&u.parentNode&&u.parentNode.selectedIndex,null},set:function(s){var u=s.parentNode;u&&(u.selectedIndex,u.parentNode&&u.parentNode.selectedIndex)}}),p.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){p.propFix[this.toLowerCase()]=this});function qi(s){var u=s.match(ot)||[];return u.join(" ")}function zi(s){return s.getAttribute&&s.getAttribute("class")||""}function wl(s){return Array.isArray(s)?s:typeof s=="string"?s.match(ot)||[]:[]}p.fn.extend({addClass:function(s){var u,f,h,v,y,b;return O(s)?this.each(function(A){p(this).addClass(s.call(this,A,zi(this)))}):(u=wl(s),u.length?this.each(function(){if(h=zi(this),f=this.nodeType===1&&" "+qi(h)+" ",f){for(y=0;y-1;)f=f.replace(" "+v+" "," ");b=qi(f),h!==b&&this.setAttribute("class",b)}}):this):this.attr("class","")},toggleClass:function(s,u){var f,h,v,y,b=typeof s,A=b==="string"||Array.isArray(s);return O(s)?this.each(function(E){p(this).toggleClass(s.call(this,E,zi(this),u),u)}):typeof u=="boolean"&&A?u?this.addClass(s):this.removeClass(s):(f=wl(s),this.each(function(){if(A)for(y=p(this),v=0;v-1)return!0;return!1}});var E_=/\r/g;p.fn.extend({val:function(s){var u,f,h,v=this[0];return arguments.length?(h=O(s),this.each(function(y){var b;this.nodeType===1&&(h?b=s.call(this,y,p(this).val()):b=s,b==null?b="":typeof b=="number"?b+="":Array.isArray(b)&&(b=p.map(b,function(A){return A==null?"":A+""})),u=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()],(!u||!("set"in u)||u.set(this,b,"value")===void 0)&&(this.value=b))})):v?(u=p.valHooks[v.type]||p.valHooks[v.nodeName.toLowerCase()],u&&"get"in u&&(f=u.get(v,"value"))!==void 0?f:(f=v.value,typeof f=="string"?f.replace(E_,""):f??"")):void 0}}),p.extend({valHooks:{option:{get:function(s){var u=p.find.attr(s,"value");return u??qi(p.text(s))}},select:{get:function(s){var u,f,h,v=s.options,y=s.selectedIndex,b=s.type==="select-one",A=b?null:[],E=b?y+1:v.length;for(y<0?h=E:h=b?y:0;h-1)&&(f=!0);return f||(s.selectedIndex=-1),y}}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]={set:function(s,u){if(Array.isArray(u))return s.checked=p.inArray(p(s).val(),u)>-1}},S.checkOn||(p.valHooks[this].get=function(s){return s.getAttribute("value")===null?"on":s.value})}),S.focusin="onfocusin"in t;var od=/^(?:focusinfocus|focusoutblur)$/,ad=function(s){s.stopPropagation()};p.extend(p.event,{trigger:function(s,u,f,h){var v,y,b,A,E,F,$,ee,j=[f||P],K=w.call(s,"type")?s.type:s,Oe=w.call(s,"namespace")?s.namespace.split("."):[];if(y=ee=b=f=f||P,!(f.nodeType===3||f.nodeType===8)&&!od.test(K+p.event.triggered)&&(K.indexOf(".")>-1&&(Oe=K.split("."),K=Oe.shift(),Oe.sort()),E=K.indexOf(":")<0&&"on"+K,s=s[p.expando]?s:new p.Event(K,typeof s=="object"&&s),s.isTrigger=h?2:3,s.namespace=Oe.join("."),s.rnamespace=s.namespace?new RegExp("(^|\\.)"+Oe.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,s.result=void 0,s.target||(s.target=f),u=u==null?[s]:p.makeArray(u,[s]),$=p.event.special[K]||{},!(!h&&$.trigger&&$.trigger.apply(f,u)===!1))){if(!h&&!$.noBubble&&!U(f)){for(A=$.delegateType||K,od.test(A+K)||(y=y.parentNode);y;y=y.parentNode)j.push(y),b=y;b===(f.ownerDocument||P)&&j.push(b.defaultView||b.parentWindow||t)}for(v=0;(y=j[v++])&&!s.isPropagationStopped();)ee=y,s.type=v>1?A:$.bindType||K,F=(H.get(y,"events")||Object.create(null))[s.type]&&H.get(y,"handle"),F&&F.apply(y,u),F=E&&y[E],F&&F.apply&&W(y)&&(s.result=F.apply(y,u),s.result===!1&&s.preventDefault());return s.type=K,!h&&!s.isDefaultPrevented()&&(!$._default||$._default.apply(j.pop(),u)===!1)&&W(f)&&E&&O(f[K])&&!U(f)&&(b=f[E],b&&(f[E]=null),p.event.triggered=K,s.isPropagationStopped()&&ee.addEventListener(K,ad),f[K](),s.isPropagationStopped()&&ee.removeEventListener(K,ad),p.event.triggered=void 0,b&&(f[E]=b)),s.result}},simulate:function(s,u,f){var h=p.extend(new p.Event,f,{type:s,isSimulated:!0});p.event.trigger(h,null,u)}}),p.fn.extend({trigger:function(s,u){return this.each(function(){p.event.trigger(s,u,this)})},triggerHandler:function(s,u){var f=this[0];if(f)return p.event.trigger(s,u,f,!0)}}),S.focusin||p.each({focus:"focusin",blur:"focusout"},function(s,u){var f=function(h){p.event.simulate(u,h.target,p.event.fix(h))};p.event.special[u]={setup:function(){var h=this.ownerDocument||this.document||this,v=H.access(h,u);v||h.addEventListener(s,f,!0),H.access(h,u,(v||0)+1)},teardown:function(){var h=this.ownerDocument||this.document||this,v=H.access(h,u)-1;v?H.access(h,u,v):(h.removeEventListener(s,f,!0),H.remove(h,u))}}});var gs=t.location,ld={guid:Date.now()},Tl=/\?/;p.parseXML=function(s){var u,f;if(!s||typeof s!="string")return null;try{u=new t.DOMParser().parseFromString(s,"text/xml")}catch{}return f=u&&u.getElementsByTagName("parsererror")[0],(!u||f)&&p.error("Invalid XML: "+(f?p.map(f.childNodes,function(h){return h.textContent}).join(`
+`):s)),u};var x_=/\[\]$/,ud=/\r?\n/g,S_=/^(?:submit|button|image|reset|file)$/i,k_=/^(?:input|select|textarea|keygen)/i;function _l(s,u,f,h){var v;if(Array.isArray(u))p.each(u,function(y,b){f||x_.test(s)?h(s,b):_l(s+"["+(typeof b=="object"&&b!=null?y:"")+"]",b,f,h)});else if(!f&&L(u)==="object")for(v in u)_l(s+"["+v+"]",u[v],f,h);else h(s,u)}p.param=function(s,u){var f,h=[],v=function(y,b){var A=O(b)?b():b;h[h.length]=encodeURIComponent(y)+"="+encodeURIComponent(A??"")};if(s==null)return"";if(Array.isArray(s)||s.jquery&&!p.isPlainObject(s))p.each(s,function(){v(this.name,this.value)});else for(f in s)_l(f,s[f],u,v);return h.join("&")},p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var s=p.prop(this,"elements");return s?p.makeArray(s):this}).filter(function(){var s=this.type;return this.name&&!p(this).is(":disabled")&&k_.test(this.nodeName)&&!S_.test(s)&&(this.checked||!vn.test(s))}).map(function(s,u){var f=p(this).val();return f==null?null:Array.isArray(f)?p.map(f,function(h){return{name:u.name,value:h.replace(ud,`\r
+`)}}):{name:u.name,value:f.replace(ud,`\r
+`)}}).get()}});var A_=/%20/g,L_=/#.*$/,O_=/([?&])_=[^&]*/,D_=/^(.*?):[ \t]*([^\r\n]*)$/mg,P_=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,I_=/^(?:GET|HEAD)$/,N_=/^\/\//,cd={},El={},fd="*/".concat("*"),xl=P.createElement("a");xl.href=gs.href;function dd(s){return function(u,f){typeof u!="string"&&(f=u,u="*");var h,v=0,y=u.toLowerCase().match(ot)||[];if(O(f))for(;h=y[v++];)h[0]==="+"?(h=h.slice(1)||"*",(s[h]=s[h]||[]).unshift(f)):(s[h]=s[h]||[]).push(f)}}function pd(s,u,f,h){var v={},y=s===El;function b(A){var E;return v[A]=!0,p.each(s[A]||[],function(F,$){var ee=$(u,f,h);if(typeof ee=="string"&&!y&&!v[ee])return u.dataTypes.unshift(ee),b(ee),!1;if(y)return!(E=ee)}),E}return b(u.dataTypes[0])||!v["*"]&&b("*")}function Sl(s,u){var f,h,v=p.ajaxSettings.flatOptions||{};for(f in u)u[f]!==void 0&&((v[f]?s:h||(h={}))[f]=u[f]);return h&&p.extend(!0,s,h),s}function R_(s,u,f){for(var h,v,y,b,A=s.contents,E=s.dataTypes;E[0]==="*";)E.shift(),h===void 0&&(h=s.mimeType||u.getResponseHeader("Content-Type"));if(h){for(v in A)if(A[v]&&A[v].test(h)){E.unshift(v);break}}if(E[0]in f)y=E[0];else{for(v in f){if(!E[0]||s.converters[v+" "+E[0]]){y=v;break}b||(b=v)}y=y||b}if(y)return y!==E[0]&&E.unshift(y),f[y]}function M_(s,u,f,h){var v,y,b,A,E,F={},$=s.dataTypes.slice();if($[1])for(b in s.converters)F[b.toLowerCase()]=s.converters[b];for(y=$.shift();y;)if(s.responseFields[y]&&(f[s.responseFields[y]]=u),!E&&h&&s.dataFilter&&(u=s.dataFilter(u,s.dataType)),E=y,y=$.shift(),y){if(y==="*")y=E;else if(E!=="*"&&E!==y){if(b=F[E+" "+y]||F["* "+y],!b){for(v in F)if(A=v.split(" "),A[1]===y&&(b=F[E+" "+A[0]]||F["* "+A[0]],b)){b===!0?b=F[v]:F[v]!==!0&&(y=A[0],$.unshift(A[1]));break}}if(b!==!0)if(b&&s.throws)u=b(u);else try{u=b(u)}catch(ee){return{state:"parsererror",error:b?ee:"No conversion from "+E+" to "+y}}}}return{state:"success",data:u}}p.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:gs.href,type:"GET",isLocal:P_.test(gs.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":fd,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":p.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(s,u){return u?Sl(Sl(s,p.ajaxSettings),u):Sl(p.ajaxSettings,s)},ajaxPrefilter:dd(cd),ajaxTransport:dd(El),ajax:function(s,u){typeof s=="object"&&(u=s,s=void 0),u=u||{};var f,h,v,y,b,A,E,F,$,ee,j=p.ajaxSetup({},u),K=j.context||j,Oe=j.context&&(K.nodeType||K.jquery)?p(K):p.event,Ye=p.Deferred(),Ae=p.Callbacks("once memory"),Bt=j.statusCode||{},Rt={},yn={},yt="canceled",Xe={readyState:0,getResponseHeader:function(lt){var Dt;if(E){if(!y)for(y={};Dt=D_.exec(v);)y[Dt[1].toLowerCase()+" "]=(y[Dt[1].toLowerCase()+" "]||[]).concat(Dt[2]);Dt=y[lt.toLowerCase()+" "]}return Dt==null?null:Dt.join(", ")},getAllResponseHeaders:function(){return E?v:null},setRequestHeader:function(lt,Dt){return E==null&&(lt=yn[lt.toLowerCase()]=yn[lt.toLowerCase()]||lt,Rt[lt]=Dt),this},overrideMimeType:function(lt){return E==null&&(j.mimeType=lt),this},statusCode:function(lt){var Dt;if(lt)if(E)Xe.always(lt[Xe.status]);else for(Dt in lt)Bt[Dt]=[Bt[Dt],lt[Dt]];return this},abort:function(lt){var Dt=lt||yt;return f&&f.abort(Dt),fn(0,Dt),this}};if(Ye.promise(Xe),j.url=((s||j.url||gs.href)+"").replace(N_,gs.protocol+"//"),j.type=u.method||u.type||j.method||j.type,j.dataTypes=(j.dataType||"*").toLowerCase().match(ot)||[""],j.crossDomain==null){A=P.createElement("a");try{A.href=j.url,A.href=A.href,j.crossDomain=xl.protocol+"//"+xl.host!=A.protocol+"//"+A.host}catch{j.crossDomain=!0}}if(j.data&&j.processData&&typeof j.data!="string"&&(j.data=p.param(j.data,j.traditional)),pd(cd,j,u,Xe),E)return Xe;F=p.event&&j.global,F&&p.active++===0&&p.event.trigger("ajaxStart"),j.type=j.type.toUpperCase(),j.hasContent=!I_.test(j.type),h=j.url.replace(L_,""),j.hasContent?j.data&&j.processData&&(j.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(j.data=j.data.replace(A_,"+")):(ee=j.url.slice(h.length),j.data&&(j.processData||typeof j.data=="string")&&(h+=(Tl.test(h)?"&":"?")+j.data,delete j.data),j.cache===!1&&(h=h.replace(O_,"$1"),ee=(Tl.test(h)?"&":"?")+"_="+ld.guid+++ee),j.url=h+ee),j.ifModified&&(p.lastModified[h]&&Xe.setRequestHeader("If-Modified-Since",p.lastModified[h]),p.etag[h]&&Xe.setRequestHeader("If-None-Match",p.etag[h])),(j.data&&j.hasContent&&j.contentType!==!1||u.contentType)&&Xe.setRequestHeader("Content-Type",j.contentType),Xe.setRequestHeader("Accept",j.dataTypes[0]&&j.accepts[j.dataTypes[0]]?j.accepts[j.dataTypes[0]]+(j.dataTypes[0]!=="*"?", "+fd+"; q=0.01":""):j.accepts["*"]);for($ in j.headers)Xe.setRequestHeader($,j.headers[$]);if(j.beforeSend&&(j.beforeSend.call(K,Xe,j)===!1||E))return Xe.abort();if(yt="abort",Ae.add(j.complete),Xe.done(j.success),Xe.fail(j.error),f=pd(El,j,u,Xe),!f)fn(-1,"No Transport");else{if(Xe.readyState=1,F&&Oe.trigger("ajaxSend",[Xe,j]),E)return Xe;j.async&&j.timeout>0&&(b=t.setTimeout(function(){Xe.abort("timeout")},j.timeout));try{E=!1,f.send(Rt,fn)}catch(lt){if(E)throw lt;fn(-1,lt)}}function fn(lt,Dt,vs,Po){var bn,Xi,Yi,dn,Si,Ln=Dt;E||(E=!0,b&&t.clearTimeout(b),f=void 0,v=Po||"",Xe.readyState=lt>0?4:0,bn=lt>=200&<<300||lt===304,vs&&(dn=R_(j,Xe,vs)),!bn&&p.inArray("script",j.dataTypes)>-1&&p.inArray("json",j.dataTypes)<0&&(j.converters["text script"]=function(){}),dn=M_(j,dn,Xe,bn),bn?(j.ifModified&&(Si=Xe.getResponseHeader("Last-Modified"),Si&&(p.lastModified[h]=Si),Si=Xe.getResponseHeader("etag"),Si&&(p.etag[h]=Si)),lt===204||j.type==="HEAD"?Ln="nocontent":lt===304?Ln="notmodified":(Ln=dn.state,Xi=dn.data,Yi=dn.error,bn=!Yi)):(Yi=Ln,(lt||!Ln)&&(Ln="error",lt<0&&(lt=0))),Xe.status=lt,Xe.statusText=(Dt||Ln)+"",bn?Ye.resolveWith(K,[Xi,Ln,Xe]):Ye.rejectWith(K,[Xe,Ln,Yi]),Xe.statusCode(Bt),Bt=void 0,F&&Oe.trigger(bn?"ajaxSuccess":"ajaxError",[Xe,j,bn?Xi:Yi]),Ae.fireWith(K,[Xe,Ln]),F&&(Oe.trigger("ajaxComplete",[Xe,j]),--p.active||p.event.trigger("ajaxStop")))}return Xe},getJSON:function(s,u,f){return p.get(s,u,f,"json")},getScript:function(s,u){return p.get(s,void 0,u,"script")}}),p.each(["get","post"],function(s,u){p[u]=function(f,h,v,y){return O(h)&&(y=y||v,v=h,h=void 0),p.ajax(p.extend({url:f,type:u,dataType:y,data:h,success:v},p.isPlainObject(f)&&f))}}),p.ajaxPrefilter(function(s){var u;for(u in s.headers)u.toLowerCase()==="content-type"&&(s.contentType=s.headers[u]||"")}),p._evalUrl=function(s,u,f){return p.ajax({url:s,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(h){p.globalEval(h,u,f)}})},p.fn.extend({wrapAll:function(s){var u;return this[0]&&(O(s)&&(s=s.call(this[0])),u=p(s,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&u.insertBefore(this[0]),u.map(function(){for(var f=this;f.firstElementChild;)f=f.firstElementChild;return f}).append(this)),this},wrapInner:function(s){return O(s)?this.each(function(u){p(this).wrapInner(s.call(this,u))}):this.each(function(){var u=p(this),f=u.contents();f.length?f.wrapAll(s):u.append(s)})},wrap:function(s){var u=O(s);return this.each(function(f){p(this).wrapAll(u?s.call(this,f):s)})},unwrap:function(s){return this.parent(s).not("body").each(function(){p(this).replaceWith(this.childNodes)}),this}}),p.expr.pseudos.hidden=function(s){return!p.expr.pseudos.visible(s)},p.expr.pseudos.visible=function(s){return!!(s.offsetWidth||s.offsetHeight||s.getClientRects().length)},p.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch{}};var F_={0:200,1223:204},ms=p.ajaxSettings.xhr();S.cors=!!ms&&"withCredentials"in ms,S.ajax=ms=!!ms,p.ajaxTransport(function(s){var u,f;if(S.cors||ms&&!s.crossDomain)return{send:function(h,v){var y,b=s.xhr();if(b.open(s.type,s.url,s.async,s.username,s.password),s.xhrFields)for(y in s.xhrFields)b[y]=s.xhrFields[y];s.mimeType&&b.overrideMimeType&&b.overrideMimeType(s.mimeType),!s.crossDomain&&!h["X-Requested-With"]&&(h["X-Requested-With"]="XMLHttpRequest");for(y in h)b.setRequestHeader(y,h[y]);u=function(A){return function(){u&&(u=f=b.onload=b.onerror=b.onabort=b.ontimeout=b.onreadystatechange=null,A==="abort"?b.abort():A==="error"?typeof b.status!="number"?v(0,"error"):v(b.status,b.statusText):v(F_[b.status]||b.status,b.statusText,(b.responseType||"text")!=="text"||typeof b.responseText!="string"?{binary:b.response}:{text:b.responseText},b.getAllResponseHeaders()))}},b.onload=u(),f=b.onerror=b.ontimeout=u("error"),b.onabort!==void 0?b.onabort=f:b.onreadystatechange=function(){b.readyState===4&&t.setTimeout(function(){u&&f()})},u=u("abort");try{b.send(s.hasContent&&s.data||null)}catch(A){if(u)throw A}},abort:function(){u&&u()}}}),p.ajaxPrefilter(function(s){s.crossDomain&&(s.contents.script=!1)}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(s){return p.globalEval(s),s}}}),p.ajaxPrefilter("script",function(s){s.cache===void 0&&(s.cache=!1),s.crossDomain&&(s.type="GET")}),p.ajaxTransport("script",function(s){if(s.crossDomain||s.scriptAttrs){var u,f;return{send:function(h,v){u=p("","import common from \"@/utils/common\";\n\nexport default {\n data() {\n return {\n autocompleteResults: null,\n\n showAppendList: false,\n appendListStyle: {\n top: 0,\n left: 0,\n },\n appendListSelected: null,\n appendListChildSelected: null,\n appendList: [\n {\n \"type\": \"wrap\",\n \"name\": \"line_break_character\",\n \"icon\": \"wrap\",\n \"children\": []\n },\n /*{\n \"type\": \"lora\",\n \"name\": \"Lora\",\n \"children\": []\n },*/\n /*{\n \"type\": \"favorite\",\n \"name\": \"favorite\",\n \"icon\": \"favorite\",\n \"children\": []\n },\n {\n \"type\": \"history\",\n \"name\": \"history\",\n \"icon\": \"history\",\n \"children\": []\n }*/\n ],\n }\n },\n computed: {\n appendListChildItemTags() {\n if (this.appendListSelected === null) return []\n if (this.appendListChildSelected === null) return []\n if (this.appendList[this.appendListSelected].type !== 'favorite' && this.appendList[this.appendListSelected].type !== 'history') return []\n return this.appendList[this.appendListSelected].children[this.appendListChildSelected].tags\n }\n },\n mounted() {\n let temp = [\n {\n 'name': 'txt2img',\n 'type': 'prompt',\n 'key': 'txt2img',\n 'neg': false,\n },\n {\n 'name': 'txt2img',\n 'type': 'negative_prompt',\n 'key': 'txt2img_neg',\n 'neg': true,\n },\n {\n 'name': 'img2img',\n 'type': 'prompt',\n 'key': 'img2img',\n 'neg': false,\n },\n {\n 'name': 'img2img',\n 'type': 'negative_prompt',\n 'key': 'img2img_neg',\n 'neg': true,\n },\n ]\n /*for (let i = 0; i < temp.length; i++) {\n if (temp[i].key === this.favoriteKey) {\n // 排到第一位\n let item = temp[i]\n temp.splice(i, 1)\n temp.unshift(item)\n break\n }\n }*/\n temp.forEach(item => {\n if (item.neg !== this.neg) return\n this.appendList.push({\n 'type': \"favorite\",\n 'name': [\"favorite\", item.name/*, item.type*/],\n \"icon\": \"favorite\",\n \"key\": item.key,\n 'dataKey': 'favorite.' + item.key,\n \"children\": [],\n })\n })\n /*temp.forEach(item => {\n this.appendList.push({\n 'type': \"history\",\n 'name': [\"history\", item.name, item.type],\n \"icon\": \"history\",\n \"key\": item.key,\n 'dataKey': 'history.' + item.key,\n \"children\": [],\n })\n })*/\n },\n methods: {\n onUnfoldClick() {\n if (this.hidePanel) {\n this.$nextTick(() => {\n this.onResize()\n })\n }\n this.$emit(\"update:hidePanel\", !this.hidePanel)\n },\n onTranslatesToLocalClick() {\n if (this.tags.length === 0) return // 没有关键词需要翻译\n if (this.loading['all_local']) {\n // 正在翻译中,取消翻译\n this.cancelMultiTranslate = true\n this.loading['all_local'] = false\n return\n }\n this.loading['all_local'] = true\n let tagIndexes = []\n for (const index in this.tags) {\n if (this.tags[index].type && this.tags[index].type !== 'text') continue\n tagIndexes.push(index)\n }\n return this.translates(tagIndexes, true, true).finally(() => {\n this.loading['all_local'] = false\n this.updateTags()\n })\n },\n onTranslatesToEnglishClick() {\n if (this.tags.length === 0) return // 没有关键词需要翻译\n if (this.loading['all_en']) {\n // 正在翻译中,取消翻译\n this.cancelMultiTranslate = true\n this.loading['all_en'] = false\n return\n }\n this.loading['all_en'] = true\n let tagIndexes = []\n for (const index in this.tags) {\n if (this.tags[index].type && this.tags[index].type !== 'text') continue\n tagIndexes.push(index)\n }\n this.translates(tagIndexes, false, true).finally(() => {\n this.loading['all_en'] = false\n this.updateTags()\n })\n },\n onCopyAllTagsClick() {\n this.copy(this.prompt)\n },\n onDeleteAllTagsClick() {\n if (!confirm(this.getLang('delete_all_keywords_confirm'))) return\n this.tags = []\n this.updateTags()\n },\n appendListItemName(item) {\n let names = []\n if (typeof item.name === \"object\") {\n for (let name of item.name) {\n names.push(this.getLang(name))\n }\n } else {\n names = [this.getLang(item.name)]\n }\n return names.join(' / ')\n },\n onAppendTagFocus(e) {\n if (this.$refs.promptTagAppend.value === '' || this.$refs.promptTagAppend.value.trim() === '') {\n this.appendListStyle = {\n top: e.target.offsetTop + e.target.offsetHeight + 'px',\n left: e.target.offsetLeft + 'px',\n }\n this.appendListSelected = null\n this.appendListChildSelected = null\n this.showAppendList = true\n let dataKeys = []\n this.appendList.forEach(item => {\n if (typeof item['dataKey'] === 'string') {\n dataKeys.push(item['dataKey'])\n }\n })\n this.gradioAPI.getDatas(dataKeys).then(res => {\n this.appendList.forEach(item => {\n if (typeof item['dataKey'] !== 'string') return\n item.children = res[item['dataKey']] || []\n // 反转\n item.children.reverse()\n })\n })\n /*this.gradioAPI.getFavorites(this.favoriteKey).then(res => {\n this.appendList.forEach(item => {\n if (item.type !== 'favorite') return\n item.children = res\n })\n })\n this.gradioAPI.getHistories(this.historyKey).then(res => {\n this.appendList.forEach(item => {\n if (item.type !== 'history') return\n item.children = res\n })\n })*/\n }\n this._setTextareaFocus()\n },\n onAppendTagBlur(e) {\n setTimeout(() => {\n this.showAppendList = false\n }, 300)\n },\n selectAppendList(down = true) {\n if (this.appendList.length === 0) return\n if (this.appendListSelected === null) {\n this.appendListSelected = 0\n } else {\n if (down) {\n this.appendListSelected++\n if (this.appendListSelected >= this.appendList.length) {\n this.appendListSelected = 0\n }\n } else {\n this.appendListSelected--\n if (this.appendListSelected < 0) {\n this.appendListSelected = this.appendList.length - 1\n }\n }\n }\n this.appendListChildSelected = null\n },\n selectAppendListChild(down = true) {\n if (this.appendList.length === 0) return\n if (this.appendListSelected === null) return\n if (this.appendList[this.appendListSelected].children.length === 0) return\n if (this.appendListChildSelected === null) {\n this.appendListChildSelected = 0\n } else {\n if (down) {\n this.appendListChildSelected++\n if (this.appendListChildSelected >= this.appendList[this.appendListSelected].children.length) {\n this.appendListChildSelected = 0\n }\n } else {\n this.appendListChildSelected--\n if (this.appendListChildSelected < 0) {\n this.appendListChildSelected = this.appendList[this.appendListSelected].children.length - 1\n }\n }\n }\n this.scrollAppendListChild()\n },\n scrollAppendListChild() {\n if (this.appendListSelected === null) return\n if (this.appendListChildSelected === 0 || this.appendListChildSelected === null) {\n this.$refs.promptAppendListChildren[this.appendListSelected].scrollTop = 0\n } else {\n this.$refs.promptAppendListChild[this.appendListChildSelected].scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n })\n }\n },\n onAppendTagKeyDown(e, localValue = null) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n } else if (e.keyCode === 13) {\n if (this.getAutocompleteResults() && this.autocompleteResults.style.display === 'block' && this.getAutocompleteResultsSelected()) {\n let text = this.getAutocompleteResultsSelectedText()\n setTimeout(() => {\n localValue = this.$refs.promptTagAppend.value\n if (text) {\n localValue = text\n } else {\n text = this.getAutocompleteResultsSelectedText()\n if (text) localValue = text\n }\n this.onAppendTagKeyDown(e, localValue)\n }, 300)\n return\n }\n\n let tags = this.$refs.promptTagAppend.value\n this.$refs.promptTagAppend.value = ''\n this.showAppendList = true\n // [night light:magical forest: 5, 15]\n console.log(tags, localValue)\n if (localValue) {\n // 去除末尾的逗号\n tags = tags.replace(/\\s*,\\s*$/, '').trim()\n if (common.hasBrackets(tags)) {\n tags = common.replaceBrackets(tags)\n }\n this._appendTag(tags, localValue)\n this.updateTags()\n } else {\n if (common.hasBrackets(tags)) {\n // 如果已经被英文括号括起来,那么就不需要再分词了\n tags = common.replaceBrackets(tags)\n tags = [tags]\n } else {\n tags = common.splitTags(tags)\n }\n let indexes = []\n tags.forEach(tag => {\n let index = -1\n if (tag === \"\\n\") {\n index = this._appendTag(\"\\n\", \"\\n\", false, -1, 'wrap')\n } else {\n index = this._appendTag(tag)\n }\n if (index !== -1) indexes.push(index)\n })\n this.updatePrompt() // 先更新再翻译\n if (this.autoTranslateToEnglish || this.autoTranslateToLocal) {\n this.$nextTick(() => {\n let useNetwork = !(this.tagCompleteFile && this.onlyCsvOnAuto)\n if (this.autoTranslateToEnglish) {\n // 如果开启了自动翻译到英语,那么就自动翻译\n this.translates(indexes, false, useNetwork).finally(() => {\n this.updateTags()\n })\n } else if (this.autoTranslateToLocal) {\n // 如果开启了自动翻译到本地语言,那么就自动翻译\n this.translates(indexes, true, useNetwork).finally(() => {\n this.updateTags()\n })\n }\n })\n } else {\n this.updateTags()\n }\n }\n } else {\n // 不是上下键,也不是回车\n this.removeAutocompleteResultsSelected()\n }\n },\n onAppendTagKeyUp(e) {\n if (this.$refs.promptTagAppend.value === '' || this.$refs.promptTagAppend.value.trim() === '') {\n this.$refs.promptTagAppend.value = ''\n this.showAppendList = true\n\n if (e.keyCode === 38 || e.keyCode === 40) {\n // 如果是上下键\n if (this.appendListChildSelected === null) {\n this.selectAppendList(e.keyCode === 40)\n } else {\n this.selectAppendListChild(e.keyCode === 40)\n }\n } else if (e.keyCode === 37 || e.keyCode === 39) {\n // 如果是左右键\n if (this.appendListSelected !== null) {\n if (e.keyCode === 37) {\n this.appendListChildSelected = null\n this.scrollAppendListChild()\n } else {\n if (this.appendList[this.appendListSelected].children.length === 0) {\n this.appendListChildSelected = null\n } else {\n this.appendListChildSelected = 0\n this.scrollAppendListChild()\n }\n }\n }\n } else if (e.keyCode === 13) {\n // 如果是回车键\n this._appendTagByList()\n this.scrollAppendListChild()\n this.appendListSelected = null\n this.appendListChildSelected = null\n }\n } else {\n this.showAppendList = false\n }\n },\n onAppendGroupClick(index, childIndex, e) {\n if (index === null) return\n this.appendListSelected = index\n if (childIndex === null) {\n // 如果是点击的是父级\n if (this.appendList[this.appendListSelected].children.length > 0) return\n } else {\n this.appendListChildSelected = childIndex\n }\n this._appendTagByList()\n },\n onAppendListChildMouseLeave(index, childIndex, e) {\n this.appendListSelected = null\n this.appendListChildSelected = null\n },\n onAppendListChildMouseEnter(index, childIndex, e) {\n this.appendListSelected = index\n this.appendListChildSelected = childIndex\n },\n _appendTagByList() {\n if (this.appendListSelected === null) return\n const appendItem = this.appendList[this.appendListSelected]\n let appendChildItem = null\n if (appendItem.children.length > 0) {\n if (this.appendListChildSelected !== null) {\n // 有子项并且选中了子项\n appendChildItem = appendItem.children[this.appendListChildSelected]\n }\n } else {\n // 没有子项\n }\n let appendTags = []\n switch (appendItem.type) {\n case 'wrap':\n appendTags.push({\n value: \"\\n\",\n localValue: \"\\n\",\n disabled: false,\n type: 'wrap'\n })\n break\n case 'lora':\n break\n case 'favorite':\n case 'history':\n if (appendChildItem) {\n appendChildItem.tags.forEach(tag => {\n appendTags.push({\n value: tag.value,\n localValue: tag.localValue,\n disabled: tag.disabled,\n type: tag.type || 'text'\n })\n })\n }\n break\n }\n if (appendTags.length <= 0) return\n appendTags.forEach(tag => {\n this._appendTag(tag.value, tag.localValue, tag.disabled, -1, tag.type)\n })\n this.updateTags()\n },\n getAutocompleteResults() {\n if (!this.autocompleteResults) {\n const autocompleteResults = this.$refs.promptTagAppend.parentElement.querySelector('.autocompleteResults')\n if (autocompleteResults) {\n this.autocompleteResults = autocompleteResults\n // 增加mousemove事件\n if (this.autocompleteResults.getAttribute('data-mousemove') !== 'true') {\n this.autocompleteResults.setAttribute('data-mousemove', 'true')\n this.autocompleteResults.addEventListener('mousemove', (e) => {\n this.bindAutocompleteResultsClick()\n })\n }\n }\n }\n return this.autocompleteResults\n },\n removeAutocompleteResultsSelected() {\n const autocompleteResults = this.getAutocompleteResults()\n if (!autocompleteResults) return false\n autocompleteResults.querySelectorAll('li').forEach(li => {\n li.classList.remove('selected')\n })\n return true\n },\n getAutocompleteResultsSelected() {\n const autocompleteResults = this.getAutocompleteResults()\n if (!autocompleteResults) return null\n const el = autocompleteResults.querySelector('li.selected')\n if (!el) return null\n return el\n },\n getAutocompleteResultsSelectedText(el = null) {\n if (!el) {\n el = this.getAutocompleteResultsSelected()\n if (!el) return null\n }\n const $acListItem = el.querySelector('.acListItem')\n const text = $acListItem.innerText\n const match = text.match(/\\[(.+?)\\]/)\n if (!match) return null\n return match[1]\n },\n bindAutocompleteResultsClick() {\n this.getAutocompleteResults()\n if (!this.autocompleteResults) return\n // 获取列表\n let lis = this.autocompleteResults.querySelectorAll('li')\n // 给每个li绑定点击事件\n lis.forEach(li => {\n // 判断是否已经绑定过\n if (li.getAttribute('physton-on-clicked') === 'true') return\n li.setAttribute('physton-on-clicked', 'true')\n li.addEventListener('click', () => {\n this.onAutocompleteResultsClicked(li)\n })\n })\n },\n onAutocompleteResultsClicked(li) {\n const text = this.getAutocompleteResultsSelectedText(li)\n setTimeout(() => {\n let tags = this.$refs.promptTagAppend.value.replace(/,\\s*$/, '')\n this.$refs.promptTagAppend.value = ''\n // 去除末尾的逗号\n tags = tags.replace(/\\s*,\\s*$/, '').trim()\n if (common.hasBrackets(tags)) {\n tags = common.replaceBrackets(tags)\n }\n this._appendTag(tags, text)\n this.updateTags()\n }, 300)\n },\n }\n}","export default {\n data() {\n return {\n // 鼠标框选功能\n dropStartX: 0,\n dropStartY: 0,\n dropEndX: 0,\n dropEndY: 0,\n dropOffsetX: 0,\n dropOffsetY: 0,\n dropIsSelecting: false,\n dropIsStart: false,\n dropIsEnd: false,\n dropArea: {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n },\n dropTags: [],\n dropTimeId: 0,\n }\n },\n methods: {\n _dropOver() {\n this.dropIsSelecting = false\n this.dropIsStart = false\n this.dropIsEnd = false\n this.dropTags = []\n for (let i = 0; i < this.$refs.promptTagsList.children.length; i++) {\n let tag = this.$refs.promptTagsList.children[i]\n if (tag.style.display === 'none') {\n // 删除display:none属性\n tag.style.display = ''\n }\n tag.classList.remove('drop-selected')\n }\n },\n onDropMouseDown(e) {\n if (this.droping) return\n this._dropOver()\n this.dropOffsetX = e.clientX - e.layerX\n this.dropOffsetY = e.clientY - e.layerY\n this.dropStartX = e.clientX - this.dropOffsetX\n this.dropStartY = e.clientY - this.dropOffsetY\n this.dropEndX = e.clientX - this.dropOffsetX\n this.dropEndY = e.clientY - this.dropOffsetY\n this.dropIsStart = true\n },\n onDropMouseMove(e) {\n if (this.dropIsStart) {\n this.dropIsSelecting = true\n this.dropEndX = e.clientX - this.dropOffsetX\n this.dropEndY = e.clientY - this.dropOffsetY\n let left = Math.min(this.dropStartX, this.dropEndX)\n let top = Math.min(this.dropStartY, this.dropEndY)\n let width = Math.abs(this.dropStartX - this.dropEndX)\n let height = Math.abs(this.dropStartY - this.dropEndY)\n // 设置不超过 this.$refs.promptTags 范围\n left = Math.max(left, 0)\n top = Math.max(top, 0)\n width = Math.min(width, this.$refs.promptTags.clientWidth - left)\n height = Math.min(height, this.$refs.promptTags.clientHeight - top)\n\n this.dropArea.top = top\n this.dropArea.left = left\n this.dropArea.width = width\n this.dropArea.height = height\n\n if (this.dropTimeId) clearTimeout(this.dropTimeId)\n this.dropTimeId = setTimeout(this.dropSelectItems, 10)\n }\n },\n dropSelectItems() {\n if (this.dropTimeId) clearTimeout(this.dropTimeId)\n let selectIds = []\n for (let i = 0; i < this.$refs.promptTagsList.children.length; i++) {\n let tag = this.$refs.promptTagsList.children[i]\n if (!tag.classList.contains('prompt-tag')) continue\n let tagLeft = tag.offsetLeft\n let tagTop = tag.offsetTop\n let tagWidth = tag.clientWidth\n let tagHeight = tag.clientHeight\n let tagRight = tagLeft + tagWidth\n let tagBottom = tagTop + tagHeight\n let isSelect = !(tagRight < this.dropArea.left || tagBottom < this.dropArea.top || tagLeft > this.dropArea.left + this.dropArea.width || tagTop > this.dropArea.top + this.dropArea.height)\n if (isSelect) {\n selectIds.push(tag.getAttribute('data-id'))\n tag.classList.add('drop-selected')\n } else {\n tag.classList.remove('drop-selected')\n }\n this.dropTags = selectIds\n }\n },\n onDropMouseUp(e) {\n this.dropIsSelecting = false\n this.dropIsStart = false\n this.dropIsEnd = true\n this.$refs.dropSelectBtns.style.left = this.$refs.dropSelectBox.style.left\n this.$refs.dropSelectBtns.style.top = this.$refs.dropSelectBox.style.top\n },\n _getDropTags() {\n let tags = []\n this.dropTags.forEach(id => {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n tags.push(tag)\n })\n return tags\n },\n _getDropIndexes() {\n let indexes = []\n this.dropTags.forEach(id => {\n let index = this.tags.findIndex(tag => tag.id === id)\n if (index === -1) return\n indexes.push(index)\n })\n return indexes\n },\n _getDropTagsEle() {\n let elements = []\n this.dropTags.forEach(id => {\n let tag = this.$refs.promptTagsList.querySelector(`.prompt-tag[data-id=\"${id}\"]`)\n if (!tag) return\n elements.push(tag)\n })\n return elements\n },\n onDropCopy() {\n let tags = this._getDropTags()\n this._dropOver()\n let prompt = this.genPrompt(tags, true)\n this.copy(prompt)\n },\n onDropFavorite() {\n let tags = this._getDropTags()\n this._dropOver()\n let prompt = this.genPrompt(tags, true)\n this.gradioAPI.pushFavorite(this.favoriteKey, tags, prompt, '').then(res => {\n if (res) {\n this.$toastr.success(this.getLang('success'))\n this.$emit('refreshFavorites', this.favoriteKey)\n } else {\n this.$toastr.error(this.getLang('failed'))\n }\n }).catch(error => {\n this.$toastr.error(this.getLang('failed'))\n })\n },\n onDropDisable() {\n let tags = this._getDropTags()\n this._dropOver()\n tags.forEach(tag => {\n tag.disabled = true\n })\n this.updateTags()\n },\n onDropEnable() {\n let tags = this._getDropTags()\n this._dropOver()\n tags.forEach(tag => {\n tag.disabled = false\n })\n this.updateTags()\n },\n onDropDelete() {\n let indexes = this._getDropIndexes()\n this._dropOver()\n indexes.sort((a, b) => b - a)\n indexes.forEach(index => {\n this.tags.splice(index, 1)\n })\n this.updateTags()\n },\n }\n}","var GHOST_ELEMENT_ID = '__autosizeInputGhost'\n\nvar characterEntities = {\n ' ': 'nbsp',\n '<': 'lt',\n '>': 'gt'\n}\nfunction mapSpecialCharacterToCharacterEntity (specialCharacter) {\n return '&' + characterEntities[specialCharacter] + ';'\n}\nfunction escapeSpecialCharacters (string) {\n return string.replace(/\\s|<|>/g, mapSpecialCharacterToCharacterEntity)\n}\n\n// Create `ghostElement`, with inline styles to hide it and ensure that the text is all\n// on a single line.\nfunction createGhostElement () {\n var ghostElement = document.createElement('div')\n ghostElement.id = GHOST_ELEMENT_ID\n ghostElement.style.cssText =\n 'display:inline-block;height:0;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:nowrap;'\n document.body.appendChild(ghostElement)\n return ghostElement\n}\n\nmodule.exports = function (element, options) {\n var elementStyle = window.getComputedStyle(element)\n // prettier-ignore\n var elementCssText = 'box-sizing:' + elementStyle.boxSizing +\n ';border-left:' + elementStyle.borderLeftWidth + ' solid red' +\n ';border-right:' + elementStyle.borderRightWidth + ' solid red' +\n ';font-family:' + elementStyle.fontFamily +\n ';font-feature-settings:' + elementStyle.fontFeatureSettings +\n ';font-kerning:' + elementStyle.fontKerning +\n ';font-size:' + elementStyle.fontSize +\n ';font-stretch:' + elementStyle.fontStretch +\n ';font-style:' + elementStyle.fontStyle +\n ';font-variant:' + elementStyle.fontVariant +\n ';font-variant-caps:' + elementStyle.fontVariantCaps +\n ';font-variant-ligatures:' + elementStyle.fontVariantLigatures +\n ';font-variant-numeric:' + elementStyle.fontVariantNumeric +\n ';font-weight:' + elementStyle.fontWeight +\n ';letter-spacing:' + elementStyle.letterSpacing +\n ';margin-left:' + elementStyle.marginLeft +\n ';margin-right:' + elementStyle.marginRight +\n ';padding-left:' + elementStyle.paddingLeft +\n ';padding-right:' + elementStyle.paddingRight +\n ';text-indent:' + elementStyle.textIndent +\n ';text-transform:' + elementStyle.textTransform\n\n // Assigns an appropriate width to the given `element` based on its contents.\n function setWidth () {\n var string = element.value || element.getAttribute('placeholder') || ''\n // Check if the `ghostElement` exists. If no, create it.\n var ghostElement =\n document.getElementById(GHOST_ELEMENT_ID) || createGhostElement()\n // Copy all width-affecting styles to the `ghostElement`.\n ghostElement.style.cssText += elementCssText\n ghostElement.innerHTML = escapeSpecialCharacters(string)\n // Copy the width of `ghostElement` to `element`.\n var width = window.getComputedStyle(ghostElement).width\n element.style.width = width\n return width\n }\n\n element.addEventListener('input', setWidth)\n\n var width = setWidth()\n\n // Set `min-width` only if `options.minWidth` was set, and only if the initial\n // width is non-zero.\n if (options && options.minWidth && width !== '0px') {\n element.style.minWidth = width\n }\n\n // Return a function for unbinding the event listener and removing the `ghostElement`.\n return function () {\n element.removeEventListener('input', setWidth)\n var ghostElement = document.getElementById(GHOST_ELEMENT_ID)\n if (ghostElement) {\n ghostElement.parentNode.removeChild(ghostElement)\n }\n }\n}\n","import common from \"@/utils/common\";\nimport autoSizeInput from \"autosize-input\";\n\nexport default {\n data() {\n return {\n tagClickTimeId: 0,\n }\n },\n mounted() {\n common.gradioApp().addEventListener('mousemove', () => {\n this.$refs.highlightPrompt.hide()\n })\n },\n methods: {\n _setTag(tag) {\n if (typeof tag['type'] === 'string' && tag.type === 'wrap') {\n tag.weightNum = 1\n tag.incWeight = 0\n tag.decWeight = 0\n } else {\n tag.weightNum = common.getTagWeightNum(tag.value)\n tag.weightNum = tag.weightNum <= 0 ? 1 : tag.weightNum\n tag.incWeight = common.getTagIncWeight(tag.value)\n tag.decWeight = common.getTagDecWeight(tag.value)\n // const bracket = common.hasBrackets(tag.value)\n }\n this._setTagClass(tag)\n this.$nextTick(() => {\n this._setTagHeight(tag)\n })\n },\n _setTagHeight(tag) {\n setTimeout(() => {\n let $tag = this.$refs['promptTagValue-' + tag.id][0]\n let height = $tag.offsetHeight\n $tag.parentNode.style.height = height + 'px'\n if (this.$refs['promptTagEdit-' + tag.id]) {\n this.$refs['promptTagEdit-' + tag.id][0].style.height = height + 'px'\n }\n if (this.$refs['promptTagDelete-' + tag.id]) {\n this.$refs['promptTagDelete-' + tag.id][0].style.height = height + 'px'\n }\n }, 300)\n },\n _setTagClass(tag) {\n tag.isLora = false\n tag.loraExists = false\n tag.isLyco = false\n tag.lycoExists = false\n tag.isEmbedding = false\n\n if (typeof tag['type'] === 'string' && tag.type === 'wrap') {\n } else {\n // 判断是否lora\n const match = tag.value.match(common.loraRegex)\n if (match) {\n tag.isLora = true\n const loraName = this.loraExists(match[1])\n if (loraName !== false) {\n tag.loraExists = true\n tag.loraName = loraName\n }\n }\n\n if (!tag.isLora) {\n // 判断是否lyco\n const match = tag.value.match(common.lycoRegex)\n if (match) {\n tag.isLyco = true\n const lycoName = this.lycoExists(match[1])\n if (lycoName !== false) {\n tag.lycoExists = true\n tag.lycoName = lycoName\n }\n }\n }\n\n if (!tag.isLora && !tag.isLyco) {\n // 判断是否embedding\n const embeddingName = this.embeddingExists(tag.value)\n if (embeddingName !== false) {\n tag.isEmbedding = true\n tag.value = embeddingName\n }\n }\n }\n\n let classes = ['prompt-tag-value']\n if (tag.isLora) {\n classes.push('lora-tag')\n if (!tag.loraExists) {\n classes.push('lora-not-exists')\n }\n } else if (tag.isLyco) {\n classes.push('lyco-tag')\n if (!tag.lycoExists) {\n classes.push('lyco-not-exists')\n }\n } else if (tag.isEmbedding) {\n classes.push('embedding-tag')\n } else if (this.neg) {\n classes.push('neg-tag')\n }\n\n tag.classes = classes\n return classes\n },\n _setTagById(id, value = null, localValue = null) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (value !== null) tag.value = value\n if (localValue !== null) tag.localValue = localValue\n return tag\n },\n _appendTag(value, localValue = '', disabled = false, index = -1, type = 'text') {\n if (value === '') return -1\n // 唯一数:当前时间戳+随机数\n const id = Date.now() + (Math.random() * 1000000).toFixed(0)\n let tag = {\n id,\n value: value === null || value === undefined || value === false ? '' : value,\n localValue: localValue === null || localValue === undefined || localValue === false ? '' : localValue,\n disabled,\n type\n }\n this._setTag(tag)\n // value = common.setLayers(value, 0, '(', ')')\n // value = common.setLayers(value, 0, '[', ']')\n if (index >= 0) {\n // 插入到指定位置\n this.tags.splice(index, 0, tag)\n } else {\n index = this.tags.push(tag)\n }\n this.$nextTick(() => {\n if (this.$refs['promptTagEdit-' + id]) autoSizeInput(this.$refs['promptTagEdit-' + id][0])\n })\n return index - 1\n },\n renderTag(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return ''\n let value = tag.value\n value = common.escapeHtml(value)\n if (tag.incWeight > 0) {\n value = common.setLayers(value, 0, '(', ')')\n value = '' + value + '
'\n let start = '' + '('.repeat(tag.incWeight) + '
'\n let end = '' + ')'.repeat(tag.incWeight) + '
'\n value = start + value + end\n } else if (tag.decWeight > 0) {\n value = common.setLayers(value, 0, '[', ']')\n value = '' + value + '
'\n let start = '' + '['.repeat(tag.decWeight) + '
'\n let end = '' + ']'.repeat(tag.decWeight) + '
'\n value = start + value + end\n } else {\n value = '' + value + '
'\n }\n return value\n },\n isFavorite(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (typeof window.phystonPromptfavorites === 'object') {\n for (const group of window.phystonPromptfavorites) {\n if (group.key !== this.favoriteKey) continue\n for (const favorite of group.list) {\n if (favorite.tags.length !== 1) continue\n if (favorite.tags[0].value === tag.value) return favorite.id\n }\n }\n }\n return false\n },\n onTagMouseEnter(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n tag.isFavorite = this.isFavorite(tag.id)\n\n this.$refs.highlightPrompt.show(tag)\n },\n onTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (this.tagClickTimeId) clearTimeout(this.tagClickTimeId)\n this.tagClickTimeId = setTimeout(() => {\n this.editing = {}\n this.editing[tag.id] = true\n this.$forceUpdate()\n this.$nextTick(() => {\n const input = this.$refs['promptTagEdit-' + tag.id][0]\n input.focus()\n input.dispatchEvent(new Event('input'))\n // input.select()\n })\n clearTimeout(this.tagClickTimeId)\n }, 250)\n },\n onTagDblclick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n clearTimeout(this.tagClickTimeId)\n this.onDisabledTagClick(tag.id)\n },\n onTagInputBlur(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n this.editing[tag.id] = false\n },\n onTagInputKeyDown(id, e) {\n if (e.keyCode === 13) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n this.editing[tag.id] = false\n if (tag.value !== e.target.value) {\n tag.value = e.target.value\n this._setTag(tag)\n this.updateTags()\n }\n }\n },\n onTagInputChange(id, e) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (tag.value === e.target.value) return\n tag.value = e.target.value\n this._setTag(tag)\n this.updateTags()\n },\n onTagWeightNumChange(id, e) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n e = typeof e === \"number\" || typeof a === \"string\" ? e : e.target.value\n if (tag.weightNum == e) return\n let weightNum = e\n let value = tag.value\n let localValue = tag.localValue\n if (weightNum > 0) {\n if (weightNum === 1 && !this.autoKeepWeightOne) {\n // 如果权重数是1,那么就去掉权重数\n const bracket = common.hasBrackets(value)\n if (bracket[0] === '(' && bracket[1] === ')') {\n // 移除括号\n value = common.setLayers(value, 0, bracket[0], bracket[1])\n if (localValue !== '') localValue = common.setLayers(localValue, 0, bracket[0], bracket[1])\n } else {\n // 不移除括号\n }\n // 移除权重数\n value = value.replace(common.weightNumRegex, '$1')\n if (localValue !== '') localValue = localValue.replace(common.weightNumRegex, '$1')\n } else {\n // 如果原来没有权重数,那么就加上权重数\n if (!common.weightNumRegex.test(value)) {\n // 如果原来有括号,就要加到括号内\n let bracket = common.hasBrackets(value)\n if (bracket) {\n value = common.setLayers(value, 1, bracket[0], bracket[1], ':' + weightNum)\n if (localValue !== '') localValue = common.setLayers(localValue, 1, bracket[0], bracket[1], ':' + weightNum)\n } else {\n value = value + ':' + weightNum\n if (localValue !== '') localValue = localValue + ':' + weightNum\n }\n }\n // 如果原来没有括号() [] {} <>,那么就加上括号\n if (!common.hasBrackets(value)) {\n value = common.setLayers(value, 1, '(', ')')\n if (localValue !== '') localValue = common.setLayers(localValue, 1, '(', ')')\n }\n }\n if (value !== tag.value) {\n tag.value = value\n if (localValue !== '') tag.localValue = localValue\n this._setTag(tag)\n }\n } else {\n // 如果原来的括号是<>,那么最小权重数只能是0.1\n const bracket = common.hasBrackets(value)\n if (bracket[0] === '<' && bracket[1] === '>') {\n weightNum = 0.1\n } else {\n if (this.autoKeepWeightZero) {\n // 保留权重数\n tag.value = value.replace(common.weightNumRegex, '$1:0')\n if (localValue !== '') tag.localValue = tag.localValue.replace(common.weightNumRegex, '$1:0')\n } else {\n // 移除权重数\n tag.value = value.replace(common.weightNumRegex, '$1')\n if (localValue !== '') tag.localValue = tag.localValue.replace(common.weightNumRegex, '$1')\n }\n }\n }\n tag.weightNum = weightNum\n this.updateTags()\n },\n onDeleteTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n let index = this.tags.indexOf(tag)\n this.tags.splice(index, 1)\n this.updateTags()\n },\n onFavoriteTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n let favoriteId = this.isFavorite(tag.id)\n if (!favoriteId) {\n // 收藏\n this.gradioAPI.pushFavorite(this.favoriteKey, [tag], tag.value, tag.localValue === '' ? tag.value : tag.localValue).then(res => {\n if (res) {\n tag.isFavorite = true\n this.$emit('refreshFavorites', this.favoriteKey)\n }\n })\n } else {\n // 取消收藏\n this.gradioAPI.unFavorite(this.favoriteKey, favoriteId).then(res => {\n if (res) {\n tag.isFavorite = false\n this.$emit('refreshFavorites', this.favoriteKey)\n }\n })\n }\n },\n onDisabledTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n tag.disabled = !tag.disabled\n this.updateTags()\n },\n onIncWeightClick(id, num) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let value = tag.value\n let localValue = tag.localValue\n value = common.setLayers(value, 0, '[', ']')\n if (localValue !== '') localValue = common.setLayers(localValue, 0, '[', ']')\n let incWeight = tag.incWeight\n incWeight += num\n if (incWeight < 0) incWeight = 0\n tag.incWeight = incWeight\n tag.decWeight = 0\n value = common.setLayers(value, incWeight, '(', ')')\n if (localValue !== '') localValue = common.setLayers(localValue, incWeight, '(', ')')\n tag.value = value\n if (localValue !== '') tag.localValue = localValue\n this.updateTags()\n },\n onDecWeightClick(id, num) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let value = tag.value\n let localValue = tag.localValue\n value = common.setLayers(value, 0, '(', ')')\n if (localValue !== '') localValue = common.setLayers(localValue, 0, '(', ')')\n let decWeight = tag.decWeight\n decWeight += num\n if (decWeight < 0) decWeight = 0\n tag.incWeight = 0\n tag.decWeight = decWeight\n value = common.setLayers(value, decWeight, '[', ']')\n if (localValue !== '') localValue = common.setLayers(localValue, decWeight, '[', ']')\n tag.value = value\n if (localValue !== '') tag.localValue = localValue\n this.updateTags()\n },\n onWrapTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let index = this.tags.indexOf(tag)\n let wrapIndex = this._appendTag(\"\\n\", \"\\n\", false, -1, 'wrap')\n let wrapTag = this.tags[wrapIndex]\n // 移动到当前标签的下面\n this.tags.splice(wrapIndex, 1);\n // 然后将 'c' 插入到 'e' 后面\n this.tags.splice(index + 1, 0, wrapTag);\n this.updateTags()\n },\n onTranslateToLocalClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let index = this.tags.indexOf(tag)\n if (this.loading[tag.id + '_local']) return\n this.translates([index], true, true).finally(() => {\n this.updateTags()\n })\n },\n onTranslateToEnglishClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let index = this.tags.indexOf(tag)\n if (this.loading[tag.id + '_en']) return\n this.translates([index], false, true).finally(() => {\n this.updateTags()\n })\n },\n }\n}","\n
\n \n","\n
\n \n","\n \n
\n \n
\n
\n
\n
\n \n \n
\n
{{ tag.localValue }}
\n
\n
\n
\n
\n \n
\n
\n
\n
{{ getLang('batch_operation') }}
\n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n \n \n \n \n\n\n","\n \n
\n
\n
\n
{{ getLang('translate_api') }}
\n
\n \n \n \n {{ getItemName(item) }}\n \n \n \n
\n
\n
\n
\n
\n *{{ getLang('not_api_key_desc') }} \n
\n
\n
\n
\n
{{ config.title }}
\n
\n \n \n {{ option }} \n \n
\n
\n
\n
{{ getLang('translate_test') }}
\n
\n \n
\n
\n
\n
\n
\n
\n \n {{getLang('test')}} \n
\n
\n
\n
\n
\n
\n
{{ errorMessage }}
\n
\n
\n
\n
\n
TagComplete
\n
\n
\n
\n
\n
\n {{ item.name }} \n \n
\n \n \n
\n
\n
\n \n {{ getLang('only_csv_on_auto') }} \n \n
\n
\n
\n
\n
\n
{{ getLang('test') }}
\n
\n
\n
\n
\n
\n
{{ getLang('save') }}
\n
{{ getLang('close') }}
\n
\n
\n
\n \n","\n \n
\n
\n \n
\n
\n
\n {{ item.code }} - {{ item.name }}\n
\n
\n
\n
\n \n","\n \n \n \n
\n
0\">\n
\n \n
{{ item.prompt }}
\n
\n
\n
\n \n {{ emptyMsg }} \n
\n
\n
\n \n","\n \n \n \n
\n
0\">\n
\n \n {{ getLang('delete_all_history') }}\n
\n
\n \n
{{ item.prompt }}
\n
\n
\n
\n \n {{ emptyMsg }} \n
\n
\n
\n \n","\n \n \n","\n \n \n","\n \n
\n
\n \n
\n
\n
\n \n \n {{ getLang('today_not_show') }}\n \n
\n
sd-webui-prompt-all-in-one
\n
\n
\n Language: {{ langName }}
\n \n
\n
\n
\n
{{ item.name }}
\n
{{ getLang(item.state ? 'installed' : 'not_install') }}
\n
{{ getCommand(item) }}
\n
\n
\n
\n \n {{ getLang('install') }} \n
\n
\n {{ getLang('packages_installing') }}\n
{{ result }}
\n
\n
\n
\n
\n \n","\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
{{ config.title }}
\n
\n \n \n {{ option }} \n \n
\n
\n
\n
\n
\n
\n \n {{ getLang('save') }} \n
\n
\n
\n
\n
\n
\n \n
\n
\n
{{ getLang('preset') }}\n
{{ getLang('ai_one') }}
\n
\n
\n \n
\n
\n
\n
\n
{{ getLang('image_desc') }}\n
{{ getLang('ai_two') }}
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n {{ getLang('generate') }} \n
\n
\n
\n
\n
\n
\n \n
\n
\n
{{ getLang('generate_result') }}
\n
\n \n
\n
\n
\n
\n
\n
{{ getLang('use') }}
\n
\n
\n
\n
\n
\n
\n
\n \n","\n \n \n","\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n\n \n \n \n\n","/*!\n * jQuery JavaScript Library v3.6.4\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-03-08T15:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.10\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2023-02-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t// Make sure the the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \" \" +\n\t\t\t\t\"\" +\n\t\t\t\t\" \";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \" \" +\n\t\t\t\t\" \";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within ` ` may have\n\t\t\t// a null one - a default behavior of all modern browsers.\n\t\t\tvar adown = a.nodeType === 9 && a.documentElement || a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \" \";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \" \";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \" \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\" ],\n\tcol: [ 2, \"\" ],\n\ttr: [ 2, \"\" ],\n\ttd: [ 3, \"\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\", \" \" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /
diff --git a/src/src/components/phystonPrompt.vue.REMOVED.git-id b/src/src/components/phystonPrompt.vue.REMOVED.git-id
deleted file mode 100644
index e01f16f..0000000
--- a/src/src/components/phystonPrompt.vue.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-f1925daddc3097ff0dae4b577a8e100bc68fdf77
\ No newline at end of file
diff --git a/styles/main.less b/styles/main.less
new file mode 100644
index 0000000..9a31b05
--- /dev/null
+++ b/styles/main.less
@@ -0,0 +1,4035 @@
+.physton-gradio-container {
+ // .hover-scale-120
+ --hoverScale120-animation: all 0.3s;
+
+ // .hover-scale-120:hover
+ --hoverScale120-hover-transform: scale(1.2);
+
+ // .hover-scale-140
+ --hoverScale140-animation: all 0.3s;
+
+ // .hover-scale-140:hover
+ --hoverScale140-hover-transform: scale(1.4);
+
+ // common
+ --physton-common-red: #d81e06;
+ --physton-common-blue: #4a54ff;
+
+ // icon-svg
+ --iconSvg-padding: 1px;
+ --iconSvg-box-sizing: border-box;
+
+ // .common-popup-bg
+ --commonPopupBg-position: fixed;
+ --commonPopupBg-top: 0;
+ --commonPopupBg-left: 0;
+ --commonPopupBg-width: 100%;
+ --commonPopupBg-height: 100%;
+ --commonPopupBg-z-index: 2000;
+ --commonPopupBg-display: flex;
+ --commonPopupBg-justify-content: center;
+ --commonPopupBg-align-items: center;
+ --commonPopupBg-background: rgba(0, 0, 0, 0.5);
+
+ // .common-popup-main-background
+ --commonPopupMainBackground-box-shadow: 0 0 3px 0 @common-blue;
+ --commonPopupMainBackground-border-radius: 6px 6px 4px 4px;
+ --commonPopupMainBackground-background-color: rgba(30, 30, 30, .9);
+ --commonPopupMainBackground-transition: height .1s ease-in-out, width .1s ease-in-out;
+
+ // .common-popup-main
+ --commonPopupMain-height: auto;
+ --commonPopupMain-margin: 0;
+ --commonPopupMain-color: #fff;
+
+ // .common-popup-close
+ --commonPopupClose-display: block;
+ --commonPopupClose-padding: 4px;
+ --commonPopupClose-position: absolute;
+ --commonPopupClose-right: -14px;
+ --commonPopupClose-top: -14px;
+ --commonPopupClose-background: rgba(255, 255, 255, .6);
+ --commonPopupClose-border-radius: 50%;
+ --commonPopupClose-box-shadow: 0 1px 5px 0 @common-red;
+ --commonPopupClose-cursor: pointer;
+ --commonPopupClose-z-index: 1;
+
+ // .common-popup-close:hover
+ --commonPopupClose-hover-background: @common-red;
+
+ // .common-popup-close .icon-svg-close
+ --commonPopupClose-iconSvgClose-width: auto;
+ --commonPopupClose-iconSvgClose-height: 20px;
+ --commonPopupClose-iconSvgClose-color: #000;
+
+ // .common-colourful-background
+ --commonColourfulBackground-background: @common-blue linear-gradient(315deg, #6772FF 0, #00F9E5 100%) center center;
+ --commonColourfulBackground-background-size: 104% 104%;
+
+ // .physton-paste-popup .paste-popup-main .paste-popup-title
+ --ppp-ppm-pastePopupTitle-font-size: 14px;
+ --ppp-ppm-pastePopupTitle-font-weight: bold;
+ --ppp-ppm-pastePopupTitle-margin-bottom: 10px;
+ --ppp-ppm-pastePopupTitle-word-break: keep-all;
+ --ppp-ppm-pastePopupTitle-white-space: nowrap;
+ --ppp-ppm-pastePopupTitle-overflow: hidden;
+
+ // .physton-paste-popup .paste-popup-main .paste-popup-body .paste-content
+ --ppp-ppm-ppb-pasteContent-background: rgba(30, 30, 30, .9);
+ --ppp-ppm-ppb-pasteContent-border: 1px solid #3c3c3c;
+ --ppp-ppm-ppb-pasteContent-padding: 4px;
+ --ppp-ppm-ppb-pasteContent-width: 100%;
+ --ppp-ppm-ppb-pasteContent-font-size: 14px;
+ --ppp-ppm-ppb-pasteContent-color: #fff;
+ --ppp-ppm-ppb-pasteContent-resize: none;
+ --ppp-ppm-ppb-pasteContent-height: 400px;
+ --ppp-ppm-ppb-pasteContent-box-sizing: border-box;
+
+ // .physton-paste-popup .paste-popup-main .paste-popup-body .paste-content:hover
+ --ppp-ppm-ppb-pasteContent-hover-outline: none;
+ --ppp-ppm-ppb-pasteContent-hover-border-color: @common-blue;
+
+ // .physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit
+ --ppp-ppm-ppb-pasteSubmit-border-radius: 10px;
+ --ppp-ppm-ppb-pasteSubmit-padding: 10px;
+ --ppp-ppm-ppb-pasteSubmit-margin-top: 10px;
+ --ppp-ppm-ppb-pasteSubmit-text-align: center;
+ --ppp-ppm-ppb-pasteSubmit-color: #fff;
+ --ppp-ppm-ppb-pasteSubmit-font-size: 20px;
+ --ppp-ppm-ppb-pasteSubmit-cursor: pointer;
+ --ppp-ppm-ppb-pasteSubmit-display: flex;
+ --ppp-ppm-ppb-pasteSubmit-justify-content: center;
+ --ppp-ppm-ppb-pasteSubmit-align-items: center;
+
+ // .physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit:hover
+ --ppp-ppm-ppb-pasteSubmitHover-box-shadow: 0 0 14px @common-blue;
+
+ // .physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit .icon-svg-loading
+ --ppp-ppm-ppb-ps-iconSvgLoading-width: auto;
+ --ppp-ppm-ppb-ps-iconSvgLoading-height: 20px;
+ --ppp-ppm-ppb-ps-iconSvgLoading-color: none;
+
+ // .physton-prompt
+ --pp-border: 1px solid rgba(0, 0, 0, .04);
+ --pp-padding: 0;
+ --pp-margin: 5px 0;
+
+ // .physton-prompt div
+ --pp-div-line-height: 1;
+
+ // .physton-prompt svg
+ --pp-svg-display: inline-block;
+
+ // .physton-prompt .icon-svg
+ --pp-iconSvg-display: inline-block;
+ --pp-iconSvg-line-height: 0;
+
+ // .physton-prompt .prompt-main.fold
+ --pp-promptMainFold-max-height: 36px;
+
+ // .physton-prompt .prompt-main.fold .prompt-unfold
+ --pp-pmf-promptUnfold-transform: rotate(180deg);
+
+ // .physton-prompt .prompt-main.fold .prompt-tags
+ --pp-pmf-promptTags-display: none;
+
+ // .physton-prompt .prompt-header
+ --pp-promptHeader-margin: 0;
+ --pp-promptHeader-padding: 5px 10px;
+ --pp-promptHeader-display: flex;
+ --pp-promptHeader-justify-content: flex-start;
+ --pp-promptHeader-align-items: center;
+ --pp-promptHeader-border-bottom: 1px dashed rgba(0, 0, 0, .04);
+ --pp-promptHeader-flex-wrap: wrap;
+
+ // .physton-prompt .prompt-header>*
+ --pp-promptHeaderAny-margin-right: 10px;
+
+ // .physton-prompt .prompt-header>*:last-child
+ --pp-promptHeaderAnyLastChild-margin-right: 0;
+
+ // .physton-prompt .prompt-header .prompt-unfold
+ --pp-ph-promptUnfold-cursor: pointer;
+ --pp-ph-promptUnfold-margin-right: 2px;
+ --pp-ph-promptUnfold-animation: all .3s;
+
+ // .physton-prompt .prompt-header .prompt-unfold .icon-svg-unfold
+ --pp-ph-pu-iconSvgUnfold-width: auto;
+ --pp-ph-pu-iconSvgUnfold-height: 20px;
+ --pp-ph-pu-iconSvgUnfold-color: #02b7fd;
+
+ // .physton-prompt .prompt-header .extend-btn-item
+ --pp-ph-ebi-iconSvgI18n-width: auto;
+ --pp-ph-ebi-iconSvgI18n-height: 18px;
+ --pp-ph-ebi-iconSvgI18n-color: #d81e06;
+ --pp-ph-ebi-iconSvgSetting-width: auto;
+ --pp-ph-ebi-iconSvgSetting-height: 18px;
+ --pp-ph-ebi-iconSvgSetting-color: #d81e06;
+ --pp-ph-ebi-iconSvgHistory-width: auto;
+ --pp-ph-ebi-iconSvgHistory-height: 18px;
+ --pp-ph-ebi-iconSvgHistory-color: #02b7fd;
+ --pp-ph-ebi-iconSvgFavorite-width: auto;
+ --pp-ph-ebi-iconSvgFavorite-height: 18px;
+ --pp-ph-ebi-iconSvgFavorite-color: #02b7fd;
+ --pp-ph-ebi-iconSvgTranslate-width: auto;
+ --pp-ph-ebi-iconSvgTranslate-height: 18px;
+ --pp-ph-ebi-iconSvgTranslate-color: #ad6800;
+ --pp-ph-ebi-iconSvgEnglish-width: auto;
+ --pp-ph-ebi-iconSvgEnglish-height: 18px;
+ --pp-ph-ebi-iconSvgEnglish-color: #ad6800;
+ --pp-ph-ebi-iconSvgLoading-width: auto;
+ --pp-ph-ebi-iconSvgLoading-height: 18px;
+ --pp-ph-ebi-iconSvgLoading-color: none;
+ --pp-ph-ebi-iconSvgCopy-width: auto;
+ --pp-ph-ebi-iconSvgCopy-height: 18px;
+ --pp-ph-ebi-iconSvgCopy-color: rgba(0, 0, 0, .88);
+ --pp-ph-ebi-iconSvgRemove-width: auto;
+ --pp-ph-ebi-iconSvgRemove-height: 18px;
+ --pp-ph-ebi-iconSvgRemove-color: #d81e06;
+ --pp-ph-ebi-iconSvgChatgpt-width: auto;
+ --pp-ph-ebi-iconSvgChatgpt-height: 18px;
+ --pp-ph-ebi-iconSvgChatgpt-color: #02b7fd;
+
+ // .physton-prompt .prompt-header .setting-box
+ --pp-ph-sb-iconSvgApi-width: auto;
+ --pp-ph-sb-iconSvgApi-height: 22px;
+ --pp-ph-sb-iconSvgApi-color: #d81e06;
+ --pp-ph-sb-iconSvgFormat-width: auto;
+ --pp-ph-sb-iconSvgFormat-height: 22px;
+ --pp-ph-sb-iconSvgFormat-color: #d81e06;
+ --pp-ph-sb-iconSvgTheme-width: auto;
+ --pp-ph-sb-iconSvgTheme-height: 22px;
+ --pp-ph-sb-iconSvgTheme-color: #02b7fd;
+ --pp-ph-sb-iconSvgTranslate-width: auto;
+ --pp-ph-sb-iconSvgTranslate-height: 22px;
+ --pp-ph-sb-iconSvgTranslate-color: #ad6800;
+ --pp-ph-sb-iconSvgEnglish-width: auto;
+ --pp-ph-sb-iconSvgEnglish-height: 22px;
+ --pp-ph-sb-iconSvgEnglish-color: #ad6800;
+ --pp-ph-sb-iconSvgRemoveSpace-width: auto;
+ --pp-ph-sb-iconSvgRemoveSpace-height: 22px;
+ --pp-ph-sb-iconSvgRemoveSpace-color: #1f2937;
+ --pp-ph-sb-iconSvgTooltip-width: auto;
+ --pp-ph-sb-iconSvgTooltip-height: 22px;
+ --pp-ph-sb-iconSvgTooltip-color: #1f2937;
+ --pp-ph-sb-iconSvgAbout-width: auto;
+ --pp-ph-sb-iconSvgAbout-height: 22px;
+ --pp-ph-sb-iconSvgAbout-color: #1f2937;
+
+ // .physton-prompt .prompt-header
+ --pp-ph-iconSvgInput-width: auto;
+ --pp-ph-iconSvgInput-height: 22px;
+ --pp-ph-iconSvgInput-color: rgba(0, 0, 0, .88);
+
+ // .physton-prompt .prompt-header .prompt-append-list
+ --pp-ph-pal-iconSvgWrap-width: auto;
+ --pp-ph-pal-iconSvgWrap-height: 16px;
+ --pp-ph-pal-iconSvgWrap-color: #fff;
+ --pp-ph-pal-iconSvgHistory-width: auto;
+ --pp-ph-pal-iconSvgHistory-height: 16px;
+ --pp-ph-pal-iconSvgHistory-color: #fff;
+ --pp-ph-pal-iconSvgFavorite-width: auto;
+ --pp-ph-pal-iconSvgFavorite-height: 16px;
+ --pp-ph-pal-iconSvgFavorite-color: #fff;
+
+ // .physton-prompt .prompt-header .prompt-header-title
+ --pp-ph-promptHeaderTitle-font-weight: bold;
+ --pp-ph-promptHeaderTitle-font-size: 1rem;
+ --pp-ph-promptHeaderTitle-white-space: nowrap;
+
+ // .physton-prompt .prompt-header .prompt-header-counter
+ --pp-ph-promptHeaderCounter-font-size: .9rem;
+ --pp-ph-promptHeaderCounter-min-width: 64px;
+
+ // .physton-prompt .prompt-header .prompt-header-break
+ --pp-ph-promptHeaderBreak-flex-basis: 100%;
+ --pp-ph-promptHeaderBreak-height: 0;
+ --pp-ph-promptHeaderBreak-margin-bottom: 0;
+
+ // .physton-prompt .prompt-header .prompt-header-extend
+ --pp-ph-promptHeaderExtend-margin-right: 10px;
+ --pp-ph-promptHeaderExtend-display: flex;
+ --pp-ph-promptHeaderExtend-justify-content: flex-start;
+ --pp-ph-promptHeaderExtend-align-items: center;
+
+ // .physton-prompt .prompt-header .prompt-header-extend:last-child
+ --pp-ph-promptHeaderExtendLastChild-margin-right: 0;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-title
+ --pp-ph-phe-extendTitle-font-size: 0.8rem;
+ --pp-ph-phe-extendTitle-margin-right: 5px;
+
+ // .physton-prompt .prompt-header .prompt-header-extend.prompt-append
+ --pp-ph-phe-promptAppend-position: relative;
+ --pp-ph-phe-promptAppend-flex: 1;
+
+ // .physton-prompt .prompt-header .prompt-header-extend.prompt-append .extend-content
+ --pp-ph-phe-pa-extendContent-width: 100%;
+ --pp-ph-phe-pa-extendContent-display: flex;
+ --pp-ph-phe-pa-extendContent-justify-content: flex-end;
+ --pp-ph-phe-pa-extendContent-align-items: center;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content select, .select-btn
+ --pp-ph-phe-ec-selectSelectBtn-padding: 0 10px 0 5px;
+ --pp-ph-phe-ec-selectSelectBtn-font-size: 0.8rem;
+ --pp-ph-phe-ec-selectSelectBtn-appearance: auto;
+ --pp-ph-phe-ec-selectSelectBtn-border: 1px solid rgba(0, 0, 0, .88);
+ --pp-ph-phe-ec-selectSelectBtn-background: #fff;
+ --pp-ph-phe-ec-selectSelectBtn-color: rgba(0, 0, 0, .88);
+ --pp-ph-phe-ec-selectSelectBtn-height: 20px;
+ --pp-ph-phe-ec-selectSelectBtn-line-height: 20px;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content select:hover, .select-btn:hover
+ --pp-ph-phe-ec-selectSelectBtnHover-border-color: #1677ff;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn
+ --pp-ph-phe-ec-selectBtn-cursor: pointer;
+ --pp-ph-phe-ec-selectBtn-padding: 0 10px;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn:hover
+ --pp-ph-phe-ec-selectBtnHover-background: #0958d9;
+ --pp-ph-phe-ec-selectBtnHover-border-color: #0958d9;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .autocompleteResults
+ --pp-ph-phe-ec-autocompleteresults-top: 26px;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .input-tag-append
+ --pp-ph-phe-ec-inputTagAppend-display: inline-block;
+ --pp-ph-phe-ec-inputTagAppend-height: 26px;
+ --pp-ph-phe-ec-inputTagAppend-padding: 4px;
+ --pp-ph-phe-ec-inputTagAppend-border: 1px solid rgba(0, 0, 0, .12);
+ --pp-ph-phe-ec-inputTagAppend-appearance: none;
+ --pp-ph-phe-ec-inputTagAppend-background-color: transparent;
+ --pp-ph-phe-ec-inputTagAppend-font-size: 0.9rem;
+ --pp-ph-phe-ec-inputTagAppend-line-height: 0.9rem;
+ --pp-ph-phe-ec-inputTagAppend-font-family: inherit;
+ --pp-ph-phe-ec-inputTagAppend-font-weight: inherit;
+ --pp-ph-phe-ec-inputTagAppend-border-radius: 4px;
+ --pp-ph-phe-ec-inputTagAppend-min-width: 200px;
+ --pp-ph-phe-ec-inputTagAppend-width: 80%;
+ --pp-ph-phe-ec-inputTagAppend-text-align: left;
+ --pp-ph-phe-ec-inputTagAppend-resize: none;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .input-tag-append:focus
+ --pp-ph-phe-ec-inputTagAppendFocus-box-shadow: none;
+ --pp-ph-phe-ec-inputTagAppendFocus-border-color: #02b7fd;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group
+ --pp-ph-phe-ec-extendBtnGroup-display: flex;
+ --pp-ph-phe-ec-extendBtnGroup-justify-content: center;
+ --pp-ph-phe-ec-extendBtnGroup-align-items: center;
+ --pp-ph-phe-ec-extendBtnGroup-color: rgba(0, 0, 0, .88);
+ --pp-ph-phe-ec-extendBtnGroup-background: rgba(0, 0, 0, .06);
+ --pp-ph-phe-ec-extendBtnGroup-border: 1px solid rgba(0, 0, 0, .04);
+ --pp-ph-phe-ec-extendBtnGroup-padding: 0;
+ --pp-ph-phe-ec-extendBtnGroup-border-radius: 4px;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item
+ --pp-ph-phe-ec-ebg-extendBtnItem-cursor: pointer;
+ --pp-ph-phe-ec-ebg-extendBtnItem-height: 26px;
+ --pp-ph-phe-ec-ebg-extendBtnItem-width: 30px;
+ --pp-ph-phe-ec-ebg-extendBtnItem-display: flex;
+ --pp-ph-phe-ec-ebg-extendBtnItem-justify-content: center;
+ --pp-ph-phe-ec-ebg-extendBtnItem-align-items: center;
+ --pp-ph-phe-ec-ebg-extendBtnItem-position: relative;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item:first-child
+ --pp-ph-phe-ec-ebg-extendBtnItemFirstChild-border-left: 0;
+ --pp-ph-phe-ec-ebg-extendBtnItemFirstChild-margin-left: 0;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item:hover .setting-box
+ --pp-ph-phe-ec-ebg-ebih-settingBox-display: flex;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item:hover.red-dot icon:after
+ --pp-ph-phe-ec-ebg-ebihrd-iconAfter-display: none;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item.red-dot icon:after
+ --pp-ph-phe-ec-ebg-ebird-iconAfter-content: '';
+ --pp-ph-phe-ec-ebg-ebird-iconAfter-display: block;
+ --pp-ph-phe-ec-ebg-ebird-iconAfter-width: 8px;
+ --pp-ph-phe-ec-ebg-ebird-iconAfter-height: 8px;
+ --pp-ph-phe-ec-ebg-ebird-iconAfter-background: var(--physton-common-red);
+ --pp-ph-phe-ec-ebg-ebird-iconAfter-border-radius: 50%;
+ --pp-ph-phe-ec-ebg-ebird-iconAfter-position: absolute;
+ --pp-ph-phe-ec-ebg-ebird-iconAfter-top: -4px;
+ --pp-ph-phe-ec-ebg-ebird-iconAfter-right: -4px;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item .setting-box
+ --pp-ph-phe-ec-ebg-ebi-settingBox-display: none;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-position: absolute;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-background: #e6f4ff;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-top: -5px;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-left: 28px;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-justify-content: flex-start;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-align-items: center;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-width: max-content;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-height: 36px;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-padding: 0 10px;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-box-shadow: 0 0 3px 0 @common-blue;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-border-radius: 6px 6px 4px 4px;
+ --pp-ph-phe-ec-ebg-ebi-settingBox-z-index: 10;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item .setting-box>*
+ --pp-ph-phe-ec-ebg-ebi-settingBoxAny-margin-left: 5px;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item .setting-box>*:first-child
+ --pp-ph-phe-ec-ebg-ebi-settingBoxAnyFirstChild-margin-left: 0;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .gradio-button, a
+ --pp-ph-phe-ec-ebg-gradioButtonA-height: 26px;
+ --pp-ph-phe-ec-ebg-gradioButtonA-min-height: 26px;
+ --pp-ph-phe-ec-ebg-gradioButtonA-max-height: 26px;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .gradio-checkbox
+ --pp-ph-phe-ec-gradioCheckbox-cursor: pointer;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content input[type="checkbox"]
+ --pp-ph-phe-ec-inputCheckbox-position: relative;
+ --pp-ph-phe-ec-inputCheckbox-box-shadow: none;
+ --pp-ph-phe-ec-inputCheckbox-border: 1px solid #7c7c7c;
+ --pp-ph-phe-ec-inputCheckbox-border-radius: 4px;
+ --pp-ph-phe-ec-inputCheckbox-background-color: rgba(0, 0, 0, .02);
+ --pp-ph-phe-ec-inputCheckbox-line-height: 1.4;
+ --pp-ph-phe-ec-inputCheckbox-width: 16px;
+ --pp-ph-phe-ec-inputCheckbox-height: 16px;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content input[type="checkbox"]:checked
+ --pp-ph-phe-ec-inputCheckboxChecked-border-color: #1677ff;
+ --pp-ph-phe-ec-inputCheckboxChecked-background-color: #1677ff;
+
+ // .physton-prompt .prompt-tags
+ --pp-promptTags-display: flex;
+ --pp-promptTags-flex-wrap: wrap;
+ --pp-promptTags-justify-content: flex-start;
+ --pp-promptTags-align-items: flex-start;
+ --pp-promptTags-position: relative;
+ --pp-promptTags-padding: 5px 10px 0;
+
+ // .physton-prompt .prompt-tags.droping, .selecting .btn-tag-extend
+ --pp-pt-ds-btnTagExtend-display: none;
+
+ // .physton-prompt .prompt-tags .prompt-tag-edit
+ --pp-pt-pte-iconSvgWrap-width: auto;
+ --pp-pt-pte-iconSvgWrap-height: 16px;
+ --pp-pt-pte-iconSvgWrap-color: #02b7fd;
+
+ // .physton-prompt .prompt-tags .btn-tag-delete
+ --pp-pt-btd-iconSvgClose-width: auto;
+ --pp-pt-btd-iconSvgClose-height: 10px;
+ --pp-pt-btd-iconSvgClose-color: #000;
+
+ // .physton-prompt .prompt-tags .btn-tag-extend
+ --pp-pt-bte-iconSvgWeightParenthesesInc-width: auto;
+ --pp-pt-bte-iconSvgWeightParenthesesInc-height: 20px;
+ --pp-pt-bte-iconSvgWeightParenthesesInc-color: #ff6969;
+ --pp-pt-bte-iconSvgWeightParenthesesDec-width: auto;
+ --pp-pt-bte-iconSvgWeightParenthesesDec-height: 20px;
+ --pp-pt-bte-iconSvgWeightParenthesesDec-color: #ff6969;
+ --pp-pt-bte-iconSvgWeightBracketsInc-width: auto;
+ --pp-pt-bte-iconSvgWeightBracketsInc-height: 20px;
+ --pp-pt-bte-iconSvgWeightBracketsInc-color: #84ff8f;
+ --pp-pt-bte-iconSvgWeightBracketsDec-width: auto;
+ --pp-pt-bte-iconSvgWeightBracketsDec-height: 20px;
+ --pp-pt-bte-iconSvgWeightBracketsDec-color: #84ff8f;
+ --pp-pt-bte-iconSvgEnglish-width: auto;
+ --pp-pt-bte-iconSvgEnglish-height: 20px;
+ --pp-pt-bte-iconSvgEnglish-color: #ff9900;
+ --pp-pt-bte-iconSvgLoading-width: auto;
+ --pp-pt-bte-iconSvgLoading-height: 20px;
+ --pp-pt-bte-iconSvgLoading-color: none;
+ --pp-pt-bte-iconSvgCopy-width: auto;
+ --pp-pt-bte-iconSvgCopy-height: 20px;
+ --pp-pt-bte-iconSvgCopy-color: #3c3c3c;
+ --pp-pt-bte-iconSvgDisabled-width: auto;
+ --pp-pt-bte-iconSvgDisabled-height: 20px;
+ --pp-pt-bte-iconSvgDisabled-color: #ff472f;
+ --pp-pt-bte-iconSvgEnable-width: auto;
+ --pp-pt-bte-iconSvgEnable-height: 20px;
+ --pp-pt-bte-iconSvgEnable-color: #00eeff;
+ --pp-pt-bte-iconSvgWrap-width: auto;
+ --pp-pt-bte-iconSvgWrap-height: 20px;
+ --pp-pt-bte-iconSvgWrap-color: #00eeff;
+ --pp-pt-bte-iconSvgFavoriteNo-width: auto;
+ --pp-pt-bte-iconSvgFavoriteNo-height: 20px;
+ --pp-pt-bte-iconSvgFavoriteNo-color: none;
+ --pp-pt-bte-iconSvgFavoriteYes-width: auto;
+ --pp-pt-bte-iconSvgFavoriteYes-height: 20px;
+ --pp-pt-bte-iconSvgFavoriteYes-color: none;
+
+ // .physton-prompt .prompt-tags .prompt-local-language
+ --pp-pt-pll-iconSvgTranslate-width: auto;
+ --pp-pt-pll-iconSvgTranslate-height: 16px;
+ --pp-pt-pll-iconSvgTranslate-color: rgba(0, 0, 0, .88);
+ --pp-pt-pll-iconSvgLoading-width: auto;
+ --pp-pt-pll-iconSvgLoading-height: 16px;
+ --pp-pt-pll-iconSvgLoading-color: none;
+
+ // .physton-prompt .prompt-tags .drop-select-bg
+ --pp-pt-dropSelectBg-position: fixed;
+ --pp-pt-dropSelectBg-display: none;
+ --pp-pt-dropSelectBg-left: 0;
+ --pp-pt-dropSelectBg-top: 0;
+ --pp-pt-dropSelectBg-width: 100%;
+ --pp-pt-dropSelectBg-height: 100%;
+ --pp-pt-dropSelectBg-z-index: 999;
+
+ // .physton-prompt .prompt-tags .drop-select-box
+ --pp-pt-dropSelectBox-position: absolute;
+ --pp-pt-dropSelectBox-display: none;
+ --pp-pt-dropSelectBox-left: 0;
+ --pp-pt-dropSelectBox-top: 0;
+ --pp-pt-dropSelectBox-width: 0;
+ --pp-pt-dropSelectBox-height: 0;
+ --pp-pt-dropSelectBox-box-sizing: border-box;
+ --pp-pt-dropSelectBox-background: rgba(0, 175, 255, 0.2);
+ --pp-pt-dropSelectBox-border: 1px solid rgba(0, 175, 255, 0.8);
+ --pp-pt-dropSelectBox-z-index: 1000;
+
+ // .physton-prompt .prompt-tags .drop-select-btns
+ --pp-pt-dropSelectBtns-position: absolute;
+ --pp-pt-dropSelectBtns-display: none;
+ --pp-pt-dropSelectBtns-left: 0;
+ --pp-pt-dropSelectBtns-top: 0;
+ --pp-pt-dropSelectBtns-width: auto;
+ --pp-pt-dropSelectBtns-height: auto;
+ --pp-pt-dropSelectBtns-z-index: 1000;
+ --pp-pt-dropSelectBtns-justify-content: flex-start;
+ --pp-pt-dropSelectBtns-align-items: center;
+ --pp-pt-dropSelectBtns-padding: 0;
+ --pp-pt-dropSelectBtns-box-sizing: border-box;
+ --pp-pt-dropSelectBtns-box-shadow: 0 0 3px #4a54ff;
+ --pp-pt-dropSelectBtns-background: #0c0c0c;
+ --pp-pt-dropSelectBtns-border-radius: 4px;
+ --pp-pt-dropSelectBtns-overflow: hidden;
+ --pp-pt-dsb-iconSvgCopy-width: auto;
+ --pp-pt-dsb-iconSvgCopy-height: 20px;
+ --pp-pt-dsb-iconSvgCopy-color: #c5c5c5;
+ --pp-pt-dsb-iconSvgDisabled-width: auto;
+ --pp-pt-dsb-iconSvgDisabled-height: 20px;
+ --pp-pt-dsb-iconSvgDisabled-color: #ff472f;
+ --pp-pt-dsb-iconSvgEnable-width: auto;
+ --pp-pt-dsb-iconSvgEnable-height: 20px;
+ --pp-pt-dsb-iconSvgEnable-color: #2fff53;
+ --pp-pt-dsb-iconSvgFavoriteNo-width: auto;
+ --pp-pt-dsb-iconSvgFavoriteNo-height: 20px;
+ --pp-pt-dsb-iconSvgFavoriteNo-color: none;
+ --pp-pt-dsb-iconSvgFavoriteYes-width: auto;
+ --pp-pt-dsb-iconSvgFavoriteYes-height: 20px;
+ --pp-pt-dsb-iconSvgFavoriteYes-color: none;
+ --pp-pt-dsb-iconSvgRemove-width: auto;
+ --pp-pt-dsb-iconSvgRemove-height: 20px;
+ --pp-pt-dsb-iconSvgRemove-color: #ff472f;
+
+ // .physton-prompt .prompt-tags .drop-select-btns .btns-title
+ --pp-pt-dsb-btnsTitle-color: #fff;
+ --pp-pt-dsb-btnsTitle-padding: 0 5px;
+ --pp-pt-dsb-btnsTitle-border-right: 1px solid rgba(255, 255, 255, 0.2);
+ --pp-pt-dsb-btnsTitle-height: 32px;
+ --pp-pt-dsb-btnsTitle-line-height: 32px;
+
+ // .physton-prompt .prompt-tags .drop-select-btns >button
+ --pp-pt-dsb-button-height: 32px;
+ --pp-pt-dsb-button-width: 32px;
+ --pp-pt-dsb-button-border: 0;
+ --pp-pt-dsb-button-border-radius: 0;
+ --pp-pt-dsb-button-padding: 5px;
+ --pp-pt-dsb-button-min-width: auto;
+ --pp-pt-dsb-button-font-size: 0.9rem;
+ --pp-pt-dsb-button-min-height: auto;
+ --pp-pt-dsb-button-background: transparent;
+ --pp-pt-dsb-button-color: #fff;
+ --pp-pt-dsb-button-border-right: 1px solid rgba(255, 255, 255, 0.2);
+
+ // .physton-prompt .prompt-tags .drop-select-btns >button:last-child
+ --pp-pt-dsb-buttonLastChild-border-right: 0;
+
+ // .physton-prompt .prompt-tags .drop-select-btns >button:hover
+ --pp-pt-dsb-buttonHover-background: rgba(255, 255, 255, 0.2);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list
+ --pp-pt-dsb-promptTagsList-display: flex;
+ --pp-pt-dsb-promptTagsList-flex-wrap: wrap;
+ --pp-pt-dsb-promptTagsList-justify-content: flex-start;
+ --pp-pt-dsb-promptTagsList-align-items: flex-start;
+ --pp-pt-dsb-promptTagsList-width: 100%;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-wrap
+ --pp-pt-dsb-ptl-promptWrap-display: none;
+ --pp-pt-dsb-ptl-promptWrap-flex-basis: 100%;
+ --pp-pt-dsb-ptl-promptWrap-height: 0;
+ --pp-pt-dsb-ptl-promptWrap-margin: 0;
+ --pp-pt-dsb-ptl-promptWrap-padding: 0;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag
+ --pp-pt-dsb-ptl-promptTag-margin-bottom: 8px;
+ --pp-pt-dsb-ptl-promptTag-margin-right: 10px;
+ --pp-pt-dsb-ptl-promptTag-display: block;
+ --pp-pt-dsb-ptl-promptTag-align-items: center;
+ --pp-pt-dsb-ptl-promptTag-max-width: 100%;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag:last-child
+ --pp-pt-dsb-ptl-promptTagLastChild-margin-right: 12px;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag.disabled .prompt-tag-edit
+ --pp-pt-dsb-ptl-ptd-promptTagEdit-opacity: .7;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag.sortable-selected, .drop-selected .prompt-tag-value
+ --pp-pt-dsb-ptl-pt-ss-ds-promptTagValue-background: rgba(0, 175, 255, 0.4);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main
+ --pp-pt-dsb-ptl-pt-promptTagMain-width: 100%;
+ --pp-pt-dsb-ptl-pt-promptTagMain-display: flex;
+ --pp-pt-dsb-ptl-pt-promptTagMain-justify-content: flex-start;
+ --pp-pt-dsb-ptl-pt-promptTagMain-align-items: flex-start;
+ --pp-pt-dsb-ptl-pt-promptTagMain-position: relative;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main:hover .prompt-tag-edit, .btn-tag-extend
+ --pp-pt-dsb-ptl-pt-ptmh-pte-btnTagExtend-box-shadow: 0 0 3px 0 @common-blue;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main:hover .btn-tag-extend
+ --pp-pt-dsb-ptl-pt-ptmh-btnTagExtend-display: flex;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit
+ --pp-pt-dsb-ptl-pt-ptm-promptTagEdit-width: 100%;
+ --pp-pt-dsb-ptl-pt-ptm-promptTagEdit-display: flex;
+ --pp-pt-dsb-ptl-pt-ptm-promptTagEdit-justify-content: flex-start;
+ --pp-pt-dsb-ptl-pt-ptm-promptTagEdit-align-items: center;
+ --pp-pt-dsb-ptl-pt-ptm-promptTagEdit-position: relative;
+ --pp-pt-dsb-ptl-pt-ptm-promptTagEdit-border-radius: 4px;
+ --pp-pt-dsb-ptl-pt-ptm-promptTagEdit-min-height: 26px;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-width: calc(100% - 16px);
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-padding: 4px;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-font-size: 0.9rem;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-height: auto;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-radius: 4px;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-top-right-radius: 0;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-bottom-right-radius: 0;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-display: flex;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-align-items: center;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-justify-content: flex-start;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-color: rgba(0, 0, 0, .88);
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-background: rgba(0, 0, 0, .06);
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border: 1px solid rgba(0, 0, 0, .04);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.neg-tag
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueNegTag-color: rgba(0, 0, 0, .88);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.lora-tag
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraTag-color: #597ef7;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.lora-not-exists
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraNotExists-background: #ffccc7;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraNotExists-animation: lora-not-exists 1s infinite;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.lyco-tag
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoTag-color: #597ef7;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.lyco-not-exists
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoNotExists-background: #ffccc7;
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoNotExists-animation: lora-not-exists 1s infinite;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.embedding-tag
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueEmbeddingTag-color: #33bcb7;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value:hover
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-border-color: rgba(0, 0, 0, .06);
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-background: rgba(0, 0, 0, .15);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value .character
+ --pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-line-height: 1rem;
+ --pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-white-space: break-spaces;
+ --pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-word-break: break-all;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value .weight-character
+ --pp-pt-dsb-ptl-pt-ptm-pte-ptv-weightCharacter-color: @common-red;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .input-tag-edit
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-padding: 4px;
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-max-width: calc(100% - 16px);
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-radius: 4px;
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-top-right-radius: 0;
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-bottom-right-radius: 0;
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-max-height: unset;
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-resize: none;
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-line-height: 1rem;
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-font-size: 0.9rem;
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-background: transparent;
+ --pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-min-height: 26px;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-display: flex;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-justify-content: center;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-align-items: center;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-cursor: pointer;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border: 1px solid rgba(0, 0, 0, .04);
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-background: rgba(0, 0, 0, .06);
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-padding: 0;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-width: 16px;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-height: 100%;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-left: 0;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-radius: 0;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-top-right-radius: 4px;
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-bottom-right-radius: 4px;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete:hover
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDeleteHover-bbackground: @common-red;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete:hover svg
+ --pp-pt-dsb-ptl-pt-ptm-pte-btdh-svg-fill: #fff;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-display: none;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-justify-content: flex-start;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-align-items: center;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-position: absolute;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-top: -32px;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-left: 0;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-z-index: 100;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-padding: 0;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-box-shadow: 0 0 3px 0 @common-blue;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-border-radius: 4px;
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-overflow: hidden;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend > button
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-height: 32px;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-width: 32px;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-border: 0;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-border-radius: 0;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-padding: 5px;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-min-width: auto;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-font-size: 0.9rem;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-min-height: auto;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-background: transparent;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-color: #fff;
+ --pp-pt-dsb-ptl-pt-ptm-bte-button-border-right: 1px solid rgba(255, 255, 255, 0.2);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend > button:last-child
+ --pp-pt-dsb-ptl-pt-ptm-bte-buttonLastChild-border-right: 0;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend > button:hover
+ --pp-pt-dsb-ptl-pt-ptm-bte-buttonHover-background: rgba(255, 255, 255, 0.2);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend > input
+ --pp-pt-dsb-ptl-pt-ptm-bte-input-width: 54px;
+ --pp-pt-dsb-ptl-pt-ptm-bte-input-border: 0;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend .input-number
+ --pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-width: 90px;
+ --pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-border: 0;
+ --pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-padding: 0;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend .vue-number-input__button
+ --pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-width: 1.5rem;
+ --pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-background: rgba(255, 255, 255, .9);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend .vue-number-input__input
+ --pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-height: 32px;
+ --pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-border: 0;
+ --pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-padding: 0 26px;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-local-language
+ --pp-pt-dsb-ptl-pt-promptLocalLanguage-margin-top: 2px;
+ --pp-pt-dsb-ptl-pt-promptLocalLanguage-display: flex;
+ --pp-pt-dsb-ptl-pt-promptLocalLanguage-justify-content: flex-start;
+ --pp-pt-dsb-ptl-pt-promptLocalLanguage-align-items: center;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-local-language .translate-to-local
+ --pp-pt-dsb-ptl-pt-pll-translateToLocal-cursor: pointer;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-local-language .local-language
+ --pp-pt-dsb-ptl-pt-pll-localLanguage-font-size: .8rem;
+ --pp-pt-dsb-ptl-pt-pll-localLanguage-color: rgba(0, 0, 0, .45);
+ --pp-pt-dsb-ptl-pt-pll-localLanguage-margin-left: 2px;
+ --pp-pt-dsb-ptl-pt-pll-localLanguage-pointer-events: none;
+
+ // .physton-prompt .prompt-tags input[type="text"], input[type="number"]
+ --pp-pt-input-display: inline-block;
+ --pp-pt-input-overflow-y: scroll;
+ --pp-pt-input-height: 24px;
+ --pp-pt-input-padding: 4px;
+ --pp-pt-input-border: 1px solid #02b7fd;
+ --pp-pt-input-appearance: none;
+ --pp-pt-input-background-color: transparent;
+ --pp-pt-input-font-size: 0.9rem;
+ --pp-pt-input-line-height: 0.9rem;
+ --pp-pt-input-font-family: inherit;
+ --pp-pt-input-font-weight: inherit;
+ --pp-pt-input-border-radius: 4px;
+
+ // .physton-prompt .prompt-tags input[type="text"], input[type="number"]:focus
+ --pp-pt-inputFocus-box-shadow: none;
+ --pp-pt-inputFocus-border-color: rgba(0, 0, 0, .04);
+
+ // .physton-prompt .prompt-tags .gradio-button
+ --pp-pt-gradioButton-max-width: none;
+ --pp-pt-gradioButton-width: auto;
+ --pp-pt-gradioButton-padding: 4px 12px;
+
+ // .physton-prompt .prompt-tags .prompt-append-list
+ --pp-pt-promptAppendList-width: auto;
+ --pp-pt-promptAppendList-padding: 0;
+ --pp-pt-promptAppendList-position: absolute;
+ --pp-pt-promptAppendList-z-index: 1000;
+ --pp-pt-promptAppendList-background: rgba(30, 30, 30, .5);
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group
+ --pp-pt-pal-promptAppendGroup-font-size: 14px;
+ --pp-pt-pal-promptAppendGroup-color: #fff;
+ --pp-pt-pal-promptAppendGroup-padding: 10px;
+ --pp-pt-pal-promptAppendGroup-cursor: pointer;
+ --pp-pt-pal-promptAppendGroup-position: relative;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group:hover, .selected .append-group-list
+ --pp-pt-pal-paghs-appendGroupList-display: block;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .append-group-name
+ --pp-pt-pal-pag-appendGroupName-display: flex;
+ --pp-pt-pal-pag-appendGroupName-justify-content: flex-start;
+ --pp-pt-pal-pag-appendGroupName-align-items: center;
+ --pp-pt-pal-pag-appendGroupName-cursor: pointer;
+ --pp-pt-pal-pag-appendGroupName-flex-wrap: nowrap;
+ --pp-pt-pal-pag-appendGroupName-white-space: nowrap;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .append-group-name .name-icon
+ --pp-pt-pal-pag-agn-nameIcon-margin-right: 5px;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .append-group-name .arrow-right
+ --pp-pt-pal-pag-agn-arrowRight-margin-left: 20px;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .append-group-name .arrow-right:after
+ --pp-pt-pal-pag-agn-arrowRightAfter-content: '';
+ --pp-pt-pal-pag-agn-arrowRightAfter-display: inline-block;
+ --pp-pt-pal-pag-agn-arrowRightAfter-width: 0;
+ --pp-pt-pal-pag-agn-arrowRightAfter-height: 0;
+ --pp-pt-pal-pag-agn-arrowRightAfter-border-top: 6px solid transparent;
+ --pp-pt-pal-pag-agn-arrowRightAfter-border-bottom: 6px solid transparent;
+ --pp-pt-pal-pag-agn-arrowRightAfter-border-left: 6px solid #fff;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .append-group-list
+ --pp-pt-pal-pag-appendGroupList-background: rgba(30, 30, 30, .5);
+ --pp-pt-pal-pag-appendGroupList-display: none;
+ --pp-pt-pal-pag-appendGroupList-position: absolute;
+ --pp-pt-pal-pag-appendGroupList-top: 0;
+ --pp-pt-pal-pag-appendGroupList-left: 100%;
+ --pp-pt-pal-pag-appendGroupList-height: 400px;
+ --pp-pt-pal-pag-appendGroupList-overflow: hidden;
+ --pp-pt-pal-pag-appendGroupList-overflow-y: scroll;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .append-group-list .append-item
+ --pp-pt-pal-pag-agl-appendItem-width: 100%;
+ --pp-pt-pal-pag-agl-appendItem-font-size: 14px;
+ --pp-pt-pal-pag-agl-appendItem-color: #fff;
+ --pp-pt-pal-pag-agl-appendItem-padding: 10px;
+ --pp-pt-pal-pag-agl-appendItem-cursor: pointer;
+ --pp-pt-pal-pag-agl-appendItem-position: relative;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .append-group-list .append-item .tags-name
+ --pp-pt-pal-pag-agl-ai-tagsName-width: 300px;
+ --pp-pt-pal-pag-agl-ai-tagsName-overflow: hidden;
+ --pp-pt-pal-pag-agl-ai-tagsName-text-overflow: ellipsis;
+ --pp-pt-pal-pag-agl-ai-tagsName-white-space: nowrap;
+ --pp-pt-pal-pag-agl-ai-tagsName-display: inline-block;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .tags-detail
+ --pp-pt-pal-pag-tagsDetail-position: absolute;
+ --pp-pt-pal-pag-tagsDetail-right: 0;
+ --pp-pt-pal-pag-tagsDetail-top: 100%;
+ --pp-pt-pal-pag-tagsDetail-width: 400px;
+ --pp-pt-pal-pag-tagsDetail-z-index: 1001;
+ --pp-pt-pal-pag-tagsDetail-opacity: .9;
+ --pp-pt-pal-pag-tagsDetail-padding: 10px;
+ --pp-pt-pal-pag-tagsDetail-color: #1d1d1d;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .tags-detail .tags-list
+ --pp-pt-pal-pag-td-tagsList-display: flex;
+ --pp-pt-pal-pag-td-tagsList-justify-content: flex-start;
+ --pp-pt-pal-pag-td-tagsList-align-items: flex-start;
+ --pp-pt-pal-pag-td-tagsList-flex-wrap: wrap;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .tags-detail .tags-list .item-wrap
+ --pp-pt-pal-pag-td-tl-itemWrap-flex-basis: 100%;
+ --pp-pt-pal-pag-td-tl-itemWrap-height: 0;
+ --pp-pt-pal-pag-td-tl-itemWrap-margin: 0;
+ --pp-pt-pal-pag-td-tl-itemWrap-padding: 0;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .tags-detail .tags-list .tags-item
+ --pp-pt-pal-pag-td-tl-tagsItem-margin-right: 5px;
+ --pp-pt-pal-pag-td-tl-tagsItem-margin-bottom: 5px;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .tags-detail .tags-list .tags-item:last-child
+ --pp-pt-pal-pag-td-tl-tagsItemLastChild-margin-right: 0;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .tags-detail .tags-list .tags-item .item-tag-value
+ --pp-pt-pal-pag-td-tl-ti-itemTagValue-padding: 4px 6px;
+ --pp-pt-pal-pag-td-tl-ti-itemTagValue-border-radius: 5px;
+ --pp-pt-pal-pag-td-tl-ti-itemTagValue-background: rgba(30, 30, 30, .9);
+ --pp-pt-pal-pag-td-tl-ti-itemTagValue-font-size: 12px;
+ --pp-pt-pal-pag-td-tl-ti-itemTagValue-color: #fff;
+
+ // .physton-prompt .prompt-tags .prompt-append-list .prompt-append-group .tags-detail .tags-list .tags-item .item-tag-local-value
+ --pp-pt-pal-pag-td-tl-ti-itemTagLocalValue-font-size: 12px;
+ --pp-pt-pal-pag-td-tl-ti-itemTagLocalValue-margin-top: 2px;
+
+ // .physton-prompt-favorite, .physton-prompt-history
+ --ppfpph-width: 500px;
+ --ppfpph-padding: 0;
+ --ppfpph-position: absolute;
+ --ppfpph-z-index: 999;
+ --ppfpph-top: 0;
+ --ppfpph-left: 0;
+ --ppfpph-overflow: visible;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tabs
+ --ppfpph-popupTabs-display: flex;
+ --ppfpph-popupTabs-justify-content: space-around;
+ --ppfpph-popupTabs-align-items: center;
+ --ppfpph-popupTabs-border-top-left-radius: 6px;
+ --ppfpph-popupTabs-border-top-right-radius: 6px;
+ --ppfpph-popupTabs-overflow: hidden;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tabs .popup-tab
+ --ppfpph-pt-popupTab-padding: 5px 0;
+ --ppfpph-pt-popupTab-cursor: pointer;
+ --ppfpph-pt-popupTab-position: relative;
+ --ppfpph-pt-popupTab-flex: 1;
+ --ppfpph-pt-popupTab-border-bottom: 1px solid #787878;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tabs .popup-tab:hover, :active
+ --ppfpph-pt-popupTabHoverActive-border-bottom: 0;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tabs .popup-tab .tab-name, .tab-type, .tab-count
+ --ppfpph-pt-pt-tntytc-text-align: center;
+ --ppfpph-pt-pt-tntytc-color: #fff;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tabs .popup-tab .tab-name
+ --ppfpph-pt-pt-tabName-font-size: 14px;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tabs .popup-tab .tab-type
+ --ppfpph-pt-pt-tabType-font-size: 12px;
+ --ppfpph-pt-pt-tabType-margin-top: 4px;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tabs .popup-tab .tab-count
+ --ppfpph-pt-pt-tabCount-display: none;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-detail
+ --ppfpph-popupDetail-position: absolute;
+ --ppfpph-popupDetail-left: 100%;
+ --ppfpph-popupDetail-top: 0;
+ --ppfpph-popupDetail-width: 400px;
+ --ppfpph-popupDetail-z-index: 1000;
+ --ppfpph-popupDetail-padding: 10px;
+ --ppfpph-popupDetail-color: #1d1d1d;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-detail .popup-item-tags
+ --ppfpph-pd-popupItemTags-display: flex;
+ --ppfpph-pd-popupItemTags-justify-content: flex-start;
+ --ppfpph-pd-popupItemTags-align-items: flex-start;
+ --ppfpph-pd-popupItemTags-flex-wrap: wrap;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-detail .popup-item-tags .item-wrap
+ --ppfpph-pd-pit-itemWrap-flex-basis: 100%;
+ --ppfpph-pd-pit-itemWrap-height: 0;
+ --ppfpph-pd-pit-itemWrap-margin: 0;
+ --ppfpph-pd-pit-itemWrap-padding: 0;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-detail .popup-item-tags .item-tag
+ --ppfpph-pd-pit-itemTag-margin-right: 5px;
+ --ppfpph-pd-pit-itemTag-margin-bottom: 5px;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-detail .popup-item-tags .item-tag:last-child
+ --ppfpph-pd-pit-itemTagLastChild-margin-right: 0;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-detail .popup-item-tags .item-tag .item-tag-value
+ --ppfpph-pd-pit-it-itemTagValue-padding: 4px 6px;
+ --ppfpph-pd-pit-it-itemTagValue-border-radius: 5px;
+ --ppfpph-pd-pit-it-itemTagValue-background: rgba(30, 30, 30, .9);
+ --ppfpph-pd-pit-it-itemTagValue-font-size: 12px;
+ --ppfpph-pd-pit-it-itemTagValue-color: #fff;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-detail .popup-item-tags .item-tag .item-tag-local-value
+ --ppfpph-pd-pit-it-it-localValue-font-size: 12px;
+ --ppfpph-pd-pit-it-it-localValue-margin-top: 2px;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content
+ --ppfpph-popupTabContent-display: none;
+ --ppfpph-popupTabContent-width: 100%;
+ --ppfpph-popupTabContent-height: 500px;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content.active
+ --ppfpph-popupTabContentActive-display: block;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list
+ --ppfpph-ptc-contentList-width: 100%;
+ --ppfpph-ptc-contentList-height: 500px;
+ --ppfpph-ptc-contentList-overflow: hidden;
+ --ppfpph-ptc-contentList-overflow-y: auto;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .clear-btn
+ --ppfpph-ptc-cl-clearBtn-background: rgba(30, 30, 30, .9);
+ --ppfpph-ptc-cl-clearBtn-position: sticky;
+ --ppfpph-ptc-cl-clearBtn-top: 0;
+ --ppfpph-ptc-cl-clearBtn-padding: 10px 10px;
+ --ppfpph-ptc-cl-clearBtn-cursor: pointer;
+ --ppfpph-ptc-cl-clearBtn-border-bottom: 1px solid @common-blue;
+ --ppfpph-ptc-cl-clearBtn-color: @common-red;
+ --ppfpph-ptc-cl-clearBtn-text-align: center;
+ --ppfpph-ptc-cl-clearBtn-display: flex;
+ --ppfpph-ptc-cl-clearBtn-justify-content: center;
+ --ppfpph-ptc-cl-clearBtn-align-items: center;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .clear-btn:hover
+ --ppfpph-ptc-cl-clearBtnHover-border-bottom: 1px solid @common-red;
+ --ppfpph-ptc-cl-clearBtnHover-font-weight: bold;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .clear-btn icon-remove
+ --ppfpph-ptc-cl-cb-iconSvgRemove-width: auto;
+ --ppfpph-ptc-cl-cb-iconSvgRemove-height: 18px;
+ --ppfpph-ptc-cl-cb-iconSvgRemove-color: #ff4a4a;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item
+ --ppfpph-ptc-cl-contentItem-padding: 6px 10px;
+ --ppfpph-ptc-cl-contentItem-border-bottom: 1px solid #3c3c3c;
+ --ppfpph-ptc-cl-contentItem-cursor: pointer;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item:hover
+ --ppfpph-ptc-cl-contentItemHover-background: rgba(255, 255, 255, .2);
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item:hover .item-prompt
+ --ppfpph-ptc-cl-cih-itemPrompt-overflow: visible;
+ --ppfpph-ptc-cl-cih-itemPrompt-white-space: normal;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header
+ --ppfpph-ptc-cl-ci-itemHeader-display: flex;
+ --ppfpph-ptc-cl-ci-itemHeader-justify-content: space-between;
+ --ppfpph-ptc-cl-ci-itemHeader-align-items: center;
+ --ppfpph-ptc-cl-ci-itemHeader-margin-bottom: 5px;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left, .item-header-right
+ --ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-display: flex;
+ --ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-justify-content: flex-start;
+ --ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-align-items: center;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-width: auto;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-height: 14px;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-color: #ff4a4a;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-width: auto;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-height: 20px;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-color: none;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-width: auto;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-height: 20px;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-color: none;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-width: auto;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-height: 20px;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-color: #fff;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-width: auto;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-height: 20px;
+ --ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-color: #fff;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left, .item-header-right > div
+ --ppfpph-ptc-cl-ci-ih-ihlr-div-margin-right: 10px;
+ --ppfpph-ptc-cl-ci-ih-ihlr-div-font-size: 14px;
+ --ppfpph-ptc-cl-ci-ih-ihlr-div-color: #fff;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left, .item-header-right > div:last-child
+ --ppfpph-ptc-cl-ci-ih-ihlr-divLastChild-margin-right: 0;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left
+ --ppfpph-ptc-cl-ci-ih-itemHeaderLeft-flex: .94;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-index
+ --ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-background: @common-blue;
+ --ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-padding: 2px 0;
+ --ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-width: 32px;
+ --ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-text-align: center;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-time
+ --ppfpph-ptc-cl-ci-ih-ihl-itemHeaderTime-width: 100px;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-name
+ --ppfpph-ptc-cl-ci-ih-ihl-itemHeaderName-flex: 1;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-name .header-name-input
+ --ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-background: transparent;
+ --ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-border: 1px solid #3c3c3c;
+ --ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-height: 20px;
+ --ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-padding: 0 4px;
+ --ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-width: 100%;
+ --ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-font-size: 12px;
+ --ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-color: #00F9E5;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-name .header-name-input:focus
+ --ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInputFocus-outline: none;
+ --ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInputFocus-border-color: @common-blue;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right
+ --ppfpph-ptc-cl-ci-ih-itemHeaderRight-font-size: 12px;
+ --ppfpph-ptc-cl-ci-ih-itemHeaderRight-color: #fff;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-list .content-item .item-prompt
+ --ppfpph-ptc-cl-ci-itemPrompt-margin-top: 5px;
+ --ppfpph-ptc-cl-ci-itemPrompt-font-size: 14px;
+ --ppfpph-ptc-cl-ci-itemPrompt-line-height: 18px;
+ --ppfpph-ptc-cl-ci-itemPrompt-color: #fff;
+ --ppfpph-ptc-cl-ci-itemPrompt-overflow: hidden;
+ --ppfpph-ptc-cl-ci-itemPrompt-text-overflow: ellipsis;
+ --ppfpph-ptc-cl-ci-itemPrompt-white-space: nowrap;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-empty
+ --ppfpph-ptc-contentEmpty-height: 100%;
+ --ppfpph-ptc-contentEmpty-display: flex;
+ --ppfpph-ptc-contentEmpty-justify-content: center;
+ --ppfpph-ptc-contentEmpty-align-items: center;
+ --ppfpph-ptc-ce-iconSvgLoading-width: auto;
+ --ppfpph-ptc-ce-iconSvgLoading-height: 64px;
+ --ppfpph-ptc-ce-iconSvgLoading-color: none;
+
+ // .physton-prompt-favorite, .physton-prompt-history .popup-tab-content .content-empty span
+ --ppfpph-ptc-ce-span-font-size: 22px;
+ --ppfpph-ptc-ce-span-color: #999;
+
+ // .physton-prompt-select-language .language-main
+ --ppsl-languageMain-height: 70%;
+ --ppsl-languageMain-position: relative;
+
+ // .physton-prompt-select-language .language-list
+ --ppsl-languageList-height: 100%;
+ --ppsl-languageList-overflow: hidden;
+ --ppsl-languageList-overflow-y: scroll;
+ --ppsl-languageList-display: block;
+ --ppsl-languageList-position: relative;
+ --ppsl-languageList-box-shadow: 0 0 3px @common-blue;
+ --ppsl-languageList-border-radius: 6px 6px 4px 4px;
+ --ppsl-languageList-background-color: #1e1e1ee6;
+ --ppsl-languageList-transition: height .1s ease-in-out, width .1s ease-in-out;
+
+ // .physton-prompt-select-language .language-list .language-item
+ --ppsl-ll-languageItem-font-size: 14px;
+ --ppsl-ll-languageItem-color: #fff;
+ --ppsl-ll-languageItem-padding: 10px;
+ --ppsl-ll-languageItem-cursor: pointer;
+
+ // .physton-prompt-format .format-main
+ --ppf-formatMain-min-height: 300px;
+ --ppf-formatMain-position: relative;
+
+ // .physton-prompt-format .format-main .format-list
+ --ppf-fm-formatList-display: block;
+ --ppf-fm-formatList-position: relative;
+ --ppf-fm-formatList-box-shadow: 0 0 3px @common-blue;
+ --ppf-fm-formatList-border-radius: 6px 6px 4px 4px;
+ --ppf-fm-formatList-background-color: #1e1e1ee6;
+ --ppf-fm-formatList-transition: height .1s ease-in-out, width .1s ease-in-out;
+ --ppf-fm-formatList-padding: 20px 40px;
+
+ // .physton-prompt-format .format-main .format-list .format-item
+ --ppf-fm-fl-formatItem-display: flex;
+ --ppf-fm-fl-formatItem-justify-content: flex-start;
+ --ppf-fm-fl-formatItem-align-items: flex-start;
+ --ppf-fm-fl-formatItem-margin-top: 10px;
+
+ // .physton-prompt-format .format-main .format-list .format-item:first-child
+ --ppf-fm-fl-formatItemFirstChild-margin-top: 0;
+
+ // .physton-prompt-format .format-main .format-list .format-item .format-checkbox
+ --ppf-fm-fl-fi-formatCheckbox-position: relative;
+ --ppf-fm-fl-fi-formatCheckbox-box-shadow: none;
+ --ppf-fm-fl-fi-formatCheckbox-border: 1px solid #7c7c7c;
+ --ppf-fm-fl-fi-formatCheckbox-border-radius: 4px;
+ --ppf-fm-fl-fi-formatCheckbox-background-color: rgba(0, 0, 0, .02);
+ --ppf-fm-fl-fi-formatCheckbox-line-height: 1.4;
+ --ppf-fm-fl-fi-formatCheckbox-width: 16px;
+ --ppf-fm-fl-fi-formatCheckbox-height: 16px;
+ --ppf-fm-fl-fi-formatCheckbox-margin-top: 2px;
+
+ // .physton-prompt-format .format-main .format-list .format-item .format-checkbox:checked
+ --ppf-fm-fl-fi-formatCheckboxChecked-border-color: #1677ff;
+ --ppf-fm-fl-fi-formatCheckboxChecked-background-color: #1677ff;
+
+ // .physton-prompt-format .format-main .format-list .format-item .format-desc
+ --ppf-fm-fl-fi-formatDesc-font-size: 14px;
+ --ppf-fm-fl-fi-formatDesc-line-height: 20px;
+ --ppf-fm-fl-fi-formatDesc-color: #fff;
+ --ppf-fm-fl-fi-formatDesc-margin-left: 10px;
+
+ // .physton-packages-state
+ --pps-z-index: 1999;
+
+ // .physton-packages-state .state-main
+ --pps-stateMain-min-height: 300px;
+ --pps-stateMain-position: relative;
+
+ // .physton-packages-state .state-main .state-body
+ --pps-sm-stateBody-display: block;
+ --pps-sm-stateBody-position: relative;
+ --pps-sm-stateBody-box-shadow: 0 0 3px @common-blue;
+ --pps-sm-stateBody-border-radius: 6px 6px 4px 4px;
+ --pps-sm-stateBody-background-color: #1e1e1ee6;
+ --pps-sm-stateBody-transition: height .1s ease-in-out, width .1s ease-in-out;
+ --pps-sm-stateBody-padding: 20px;
+ --pps-sm-stateBody-font-size: 14px;
+ --pps-sm-stateBody-color: #fff;
+
+ // .physton-packages-state .state-main .state-body .today-now-show
+ --pps-sm-sb-todayNowShow-position: absolute;
+ --pps-sm-sb-todayNowShow-right: 20px;
+ --pps-sm-sb-todayNowShow-top: 20px;
+
+ // .physton-packages-state .state-main .state-body .today-now-show label
+ --pps-sm-sb-tns-label-display: flex;
+ --pps-sm-sb-tns-label-justify-content: flex-start;
+ --pps-sm-sb-tns-label-align-items: center;
+ --pps-sm-sb-tns-label-color: #ff1d00;
+
+ // .physton-packages-state .state-main .state-body .today-now-show input[type='checkbox']
+ --pps-sm-sb-tns-input-margin-right: 5px;
+ --pps-sm-sb-tns-input-width: 16px;
+ --pps-sm-sb-tns-input-height: 16px;
+
+ // .physton-packages-state .state-main .state-body .state-body-name
+ --pps-sm-sb-stateBodyName-font-size: 18px;
+ --pps-sm-sb-stateBodyName-font-weight: bold;
+ --pps-sm-sb-stateBodyName-margin-bottom: 10px;
+
+ // .physton-packages-state .state-main .state-body .state-body-language
+ --pps-sm-sb-stateBodyLanguage-color: #374151;
+ --pps-sm-sb-stateBodyLanguage-background: #fff;
+ --pps-sm-sb-stateBodyLanguage-border: 1px solid #e5e7eb;
+ --pps-sm-sb-stateBodyLanguage-padding: 5px 0;
+ --pps-sm-sb-stateBodyLanguage-line-height: 20px;
+ --pps-sm-sb-stateBodyLanguage-border-radius: 4px;
+ --pps-sm-sb-stateBodyLanguage-margin-bottom: 10px;
+ --pps-sm-sb-stateBodyLanguage-display: flex;
+ --pps-sm-sb-stateBodyLanguage-width: 235px;
+ --pps-sm-sb-stateBodyLanguage-cursor: pointer;
+
+ // .physton-packages-state .state-main .state-body .state-body-language:hover
+ --pps-sm-sb-stateBodyLanguageHover-background: #dcdcdc;
+ --pps-sm-sb-stateBodyLanguageHover-border-color: #d81e06;
+
+ // .physton-packages-state .state-main .state-body .state-body-language .icon-svg-i18n
+ --pps-sm-sb-sbl-iconSvgI18n-width: auto;
+ --pps-sm-sb-sbl-iconSvgI18n-height: 20px;
+ --pps-sm-sb-sbl-iconSvgI18n-color: #d81e06;
+ --pps-sm-sb-sbl-iconSvgI18n-margin: 0 10px;
+
+ // .physton-packages-state .state-main .state-body .state-body-desc
+ --pps-sm-sb-stateBodyDesc-color: #00e6ff;
+ --pps-sm-sb-stateBodyDesc-font-size: 16px;
+ --pps-sm-sb-stateBodyDesc-white-space: break-spaces;
+ --pps-sm-sb-stateBodyDesc-word-break: break-all;
+
+ // .physton-packages-state .state-main .state-body .package-list
+ --pps-sm-sb-packageList-margin-top: 10px;
+ --pps-sm-sb-packageList-border: 1px solid #545454;
+ --pps-sm-sb-packageList-padding: 10px;
+
+ // .physton-packages-state .state-main .state-body .package-list .package-item
+ --pps-sm-sb-pl-packageItem-padding: 5px 0;
+ --pps-sm-sb-pl-packageItem-display: flex;
+ --pps-sm-sb-pl-packageItem-justify-content: flex-start;
+ --pps-sm-sb-pl-packageItem-align-items: center;
+
+ // .physton-packages-state .state-main .state-body .package-list .package-item .package-name
+ --pps-sm-sb-pl-pi-packageName-width: 150px;
+
+ // .physton-packages-state .state-main .state-body .package-list .package-item .package-state
+ --pps-sm-sb-pl-pi-packageState-width: 150px;
+
+ // .physton-packages-state .state-main .state-body .package-list .package-item .package-state.not_install
+ --pps-sm-sb-pl-pi-packageStateNotInstall-color: #ff1d00;
+
+ // .physton-packages-state .state-main .state-body .package-list .package-item .package-command
+ --pps-sm-sb-pl-pi-packageCommand-white-space: nowrap;
+
+ // .physton-packages-state .state-main .state-body .btn-packages-install
+ --pps-sm-sb-btnPackagesInstall-cursor: pointer;
+ --pps-sm-sb-btnPackagesInstall-display: inline-block;
+ --pps-sm-sb-btnPackagesInstall-padding: 0 40px;
+ --pps-sm-sb-btnPackagesInstall-height: 40px;
+ --pps-sm-sb-btnPackagesInstall-line-height: 40px;
+ --pps-sm-sb-btnPackagesInstall-color: #fff;
+ --pps-sm-sb-btnPackagesInstall-border-radius: 4px;
+ --pps-sm-sb-btnPackagesInstall-margin-top: 10px;
+ --pps-sm-sb-bpi-iconSvgLoading-width: auto;
+ --pps-sm-sb-bpi-iconSvgLoading-height: 40px;
+ --pps-sm-sb-bpi-iconSvgLoading-color: none;
+
+ // .physton-packages-state .state-main .state-body .install-result
+ --pps-sm-sb-installResult-margin-top: 10px;
+ --pps-sm-sb-installResult-border: 1px solid #545454;
+ --pps-sm-sb-installResult-padding: 10px;
+
+ // .physton-packages-state .state-main .state-body .install-result .result-content
+ --pps-sm-sb-ir-resultContent-margin-top: 5px;
+ --pps-sm-sb-ir-resultContent-white-space: pre;
+ --pps-sm-sb-ir-resultContent-color: #00e6ff;
+ --pps-sm-sb-ir-resultContent-line-height: 20px;
+ --pps-sm-sb-ir-resultContent-overflow: hidden;
+ --pps-sm-sb-ir-resultContent-overflow-y: auto;
+ --pps-sm-sb-ir-resultContent-border: 1px solid #003c43;
+ --pps-sm-sb-ir-resultContent-padding: 5px;
+ --pps-sm-sb-ir-resultContent-max-height: 200px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .translate-setting-content
+ --ppts-tsm-translateSettingContent-max-height: 600px;
+ --ppts-tsm-translateSettingContent-overflow: hidden;
+ --ppts-tsm-translateSettingContent-overflow-y: auto;
+ --ppts-tsm-translateSettingContent-padding: 6px;
+ --ppts-tsm-translateSettingContent-border: 1px solid #464646;
+ --ppts-tsm-translateSettingContent-border-radius: 6px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .translate-setting-content::-webkit-scrollbar
+ --ppts-tsm-translateSettingContentWebkitScrollbar-width: 6px;
+ --ppts-tsm-translateSettingContentWebkitScrollbar-height: 6px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line
+ --ppts-tsm-settingLine-display: flex;
+ --ppts-tsm-settingLine-justify-content: flex-start;
+ --ppts-tsm-settingLine-align-items: flex-start;
+ --ppts-tsm-settingLine-margin-bottom: 10px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-title
+ --ppts-tsm-sl-lineTitle-font-size: 16px;
+ --ppts-tsm-sl-lineTitle-font-weight: bold;
+ --ppts-tsm-sl-lineTitle-color: #fff;
+ --ppts-tsm-sl-lineTitle-width: 150px;
+ --ppts-tsm-sl-lineTitle-line-height: 24px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content
+ --ppts-tsm-sl-lineContent-flex: 1;
+ --ppts-tsm-sl-lineContent-font-size: 14px;
+ --ppts-tsm-sl-lineContent-color: #fff;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content span, p
+ --ppts-tsm-sl-lc-spanP-font-size: 14px;
+ --ppts-tsm-sl-lc-spanP-color: #fff;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content p
+ --ppts-tsm-sl-lc-p-margin: 5px 0;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content a
+ --ppts-tsm-sl-lc-a-font-size: 14px;
+ --ppts-tsm-sl-lc-a-color: #108bb5;
+ --ppts-tsm-sl-lc-a-text-decoration: underline;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .common-red
+ --ppts-tsm-sl-lc-commonRed-color: #ff1d00;
+ --ppts-tsm-sl-lc-commonRed-font-size: 14px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .api-name
+ --ppts-tsm-sl-lc-apiName-display: inline-block;
+ --ppts-tsm-sl-lc-apiName-color: #1d1d1d;
+ --ppts-tsm-sl-lc-apiName-border-radius: 2px;
+ --ppts-tsm-sl-lc-apiName-padding: 4px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content input[type='text'], textarea, select
+ --ppts-tsm-sl-lc-inputTextareaSelect-background: rgba(30, 30, 30, .9);
+ --ppts-tsm-sl-lc-inputTextareaSelect-border: 1px solid #3c3c3c;
+ --ppts-tsm-sl-lc-inputTextareaSelect-padding: 4px;
+ --ppts-tsm-sl-lc-inputTextareaSelect-width: 100%;
+ --ppts-tsm-sl-lc-inputTextareaSelect-font-size: 14px;
+ --ppts-tsm-sl-lc-inputTextareaSelect-color: #fff;
+ --ppts-tsm-sl-lc-inputTextareaSelect-resize: none;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content input[type='text'], textarea, select:focus
+ --ppts-tsm-sl-lc-inputTextareaSelectFocus-outline: none;
+ --ppts-tsm-sl-lc-inputTextareaSelectFocus-border-color: @common-blue;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .onlyCsvOnAuto
+ --ppts-tsm-sl-lc-onlyCsvOnAuto-cursor: pointer;
+ --ppts-tsm-sl-lc-onlyCsvOnAuto-margin: 10px 0;
+ --ppts-tsm-sl-lc-onlyCsvOnAuto-display: flex;
+ --ppts-tsm-sl-lc-onlyCsvOnAuto-justify-content: flex-start;
+ --ppts-tsm-sl-lc-onlyCsvOnAuto-align-items: center;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .onlyCsvOnAuto input[type='checkbox']
+ --ppts-tsm-sl-lc-ocoa-input-margin-right: 5px;
+ --ppts-tsm-sl-lc-ocoa-input-width: 20px;
+ --ppts-tsm-sl-lc-ocoa-input-height: 20px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .onlyCsvOnAuto span
+ --ppts-tsm-sl-lc-ocoa-span-color: #ff9f37;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .line-row
+ --ppts-tsm-sl-lc-lineRow-display: flex;
+ --ppts-tsm-sl-lc-lineRow-justify-content: flex-start;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .line-row > *
+ --ppts-tsm-sl-lc-lineRowAny-margin-left: 4px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .line-row > *:last-child
+ --ppts-tsm-sl-lc-lineRowAnyLastChild-margin-left: 0;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .refresh-btn
+ --ppts-tsm-sl-lc-refreshBtn-cursor: pointer;
+ --ppts-tsm-sl-lc-refreshBtn-width: 28px;
+ --ppts-tsm-sl-lc-refreshBtn-height: 28px;
+ --ppts-tsm-sl-lc-refreshBtn-background: #000;
+ --ppts-tsm-sl-lc-refreshBtn-display: flex;
+ --ppts-tsm-sl-lc-refreshBtn-justify-content: center;
+ --ppts-tsm-sl-lc-refreshBtn-align-items: center;
+ --ppts-tsm-sl-lc-refreshBtn-border-radius: 4px;
+ --ppts-tsm-sl-lc-rb-iconSvgLoading-width: auto;
+ --ppts-tsm-sl-lc-rb-iconSvgLoading-height: 20px;
+ --ppts-tsm-sl-lc-rb-iconSvgLoading-color: none;
+ --ppts-tsm-sl-lc-rb-iconSvgRefresh-width: auto;
+ --ppts-tsm-sl-lc-rb-iconSvgRefresh-height: 20px;
+ --ppts-tsm-sl-lc-rb-iconSvgRefresh-color: #02b7fd;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-input
+ --ppts-tsm-sl-lc-testInput-height: 70px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-btn
+ --ppts-tsm-sl-lc-testBtn-cursor: pointer;
+ --ppts-tsm-sl-lc-testBtn-display: inline-block;
+ --ppts-tsm-sl-lc-testBtn-padding: 0 40px;
+ --ppts-tsm-sl-lc-testBtn-height: 32px;
+ --ppts-tsm-sl-lc-testBtn-line-height: 32px;
+ --ppts-tsm-sl-lc-testBtn-color: #fff;
+ --ppts-tsm-sl-lc-testBtn-background: #108bb5;
+ --ppts-tsm-sl-lc-testBtn-border-radius: 4px;
+ --ppts-tsm-sl-lc-tb-iconSvgLoading-width: auto;
+ --ppts-tsm-sl-lc-tb-iconSvgLoading-height: 40px;
+ --ppts-tsm-sl-lc-tb-iconSvgLoading-color: none;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .translate-error
+ --ppts-tsm-sl-lc-translateError-color: @common-red;
+ --ppts-tsm-sl-lc-translateError-font-size: 14px;
+ --ppts-tsm-sl-lc-translateError-margin-bottom: 10px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list
+ --ppts-tsm-sl-lc-helpList-font-size: 14px;
+ --ppts-tsm-sl-lc-helpList-line-height: 24px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item
+ --ppts-tsm-sl-lc-hl-helpItem-margin-bottom: 10px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item:last-child
+ --ppts-tsm-sl-lc-hl-helpItemAnyLastChild-margin-bottom: 0;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item a
+ --ppts-tsm-sl-lc-hl-hi-a-color: #fff;
+ --ppts-tsm-sl-lc-hl-hi-a-text-decoration: none;
+ --ppts-tsm-sl-lc-hl-hi-a-font-size: 14px;
+ --ppts-tsm-sl-lc-hl-hi-a-border-bottom: 1px solid #fff;
+ --ppts-tsm-sl-lc-hl-hi-a-padding-bottom: 4px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item a:hover
+ --ppts-tsm-sl-lc-hl-hi-aHover-color: #108bb5;
+ --ppts-tsm-sl-lc-hl-hi-aHover-border-bottom-color: #108bb5;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-btns
+ --ppts-tsm-settingBtns-display: flex;
+ --ppts-tsm-settingBtns-justify-content: flex-end;
+ --ppts-tsm-settingBtns-align-items: center;
+ --ppts-tsm-settingBtns-margin-top: 10px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-btns .translate-save
+ --ppts-tsm-sb-translateSave-cursor: pointer;
+ --ppts-tsm-sb-translateSave-display: inline-block;
+ --ppts-tsm-sb-translateSave-padding: 0 40px;
+ --ppts-tsm-sb-translateSave-height: 40px;
+ --ppts-tsm-sb-translateSave-line-height: 40px;
+ --ppts-tsm-sb-translateSave-color: #fff;
+ --ppts-tsm-sb-translateSave-border-radius: 4px;
+ --ppts-tsm-sb-translateSave-margin-right: 10px;
+
+ // .physton-prompt-translate-setting .translate-setting-main .setting-btns .translate-close
+ --ppts-tsm-sb-translateClose-cursor: pointer;
+ --ppts-tsm-sb-translateClose-display: inline-block;
+ --ppts-tsm-sb-translateClose-padding: 0 40px;
+ --ppts-tsm-sb-translateClose-height: 40px;
+ --ppts-tsm-sb-translateClose-line-height: 40px;
+ --ppts-tsm-sb-translateClose-color: @common-blue;
+ --ppts-tsm-sb-translateClose-background: transparent;
+ --ppts-tsm-sb-translateClose-border: 1px solid @common-blue;
+ --ppts-tsm-sb-translateClose-border-radius: 4px;
+
+ // .physton-prompt-extension-css
+ --ppec-justify-content: flex-end;
+ --ppec-align-items: flex-end;
+ --ppec-background: rgba(0, 0, 0, .2);
+
+ // .physton-prompt-extension-css .extension-main
+ --ppec-extensionMain-height: 500px;
+ --ppec-extensionMain-position: relative;
+ --ppec-extensionMain-margin-right: 20px;
+ --ppec-extensionMain-margin-bottom: 20px;
+
+ // .physton-prompt-extension-css .extension-main .extension-list
+ --ppec-em-extensionList-height: 100%;
+ --ppec-em-extensionList-overflow: hidden;
+ --ppec-em-extensionList-overflow-y: scroll;
+ --ppec-em-extensionList-display: block;
+ --ppec-em-extensionList-position: relative;
+ --ppec-em-extensionList-box-shadow: 0 0 3px @common-blue;
+ --ppec-em-extensionList-border-radius: 6px 6px 4px 4px;
+ --ppec-em-extensionList-background-color: #1e1e1ee6;
+ --ppec-em-extensionList-transition: height .1s ease-in-out, width .1s ease-in-out;
+
+ // .physton-prompt-extension-css .extension-main .extension-list .extension-table
+ --ppec-em-el-extensionTable-border: 0;
+
+ // .physton-prompt-extension-css .extension-main .extension-list .extension-table tr, td
+ --ppec-em-el-et-trTd-border: 0;
+ --ppec-em-el-et-trTd-margin: 0;
+ --ppec-em-el-et-trTd-font-size: 14px;
+ --ppec-em-el-et-trTd-color: #fff;
+ --ppec-em-el-et-trTd-padding: 5px;
+ --ppec-em-el-et-trTd-background: transparent;
+
+ // .physton-prompt-extension-css .extension-main .extension-list .extension-table tr, td:hover
+ --ppec-em-el-et-trTdHover-background: transparent;
+
+ // .physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-checkbox
+ --ppec-em-el-ei-extensionCheckbox-position: relative;
+ --ppec-em-el-ei-extensionCheckbox-box-shadow: none;
+ --ppec-em-el-ei-extensionCheckbox-border: 1px solid #7c7c7c;
+ --ppec-em-el-ei-extensionCheckbox-border-radius: 4px;
+ --ppec-em-el-ei-extensionCheckbox-background-color: rgba(0, 0, 0, .02);
+ --ppec-em-el-ei-extensionCheckbox-line-height: 1.4;
+ --ppec-em-el-ei-extensionCheckbox-width: 20px;
+ --ppec-em-el-ei-extensionCheckbox-height: 20px;
+
+ // .physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-checkbox:checked
+ --ppec-em-el-ei-extensionCheckboxChecked-border-color: #1677ff;
+ --ppec-em-el-ei-extensionCheckboxChecked-background-color: #1677ff;
+
+ // .physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-name, .extension-type, .extension-dir, .extension-author
+ --ppec-em-el-ei-enEtEd-white-space: nowrap;
+ --ppec-em-el-ei-enEtEd-overflow: hidden;
+ --ppec-em-el-ei-enEtEd-text-overflow: ellipsis;
+
+ // .physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-author
+ --ppec-em-el-ei-extensionAuthor-text-align: right;
+
+ // .physton-chatgpt-prompt .chatgpt-main
+ --pcp-chatgptMain-position: relative;
+ --pcp-chatgptMain-width: 900px;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body
+ --pcp-cm-chatgptBody-display: block;
+ --pcp-cm-chatgptBody-position: relative;
+ --pcp-cm-chatgptBody-box-shadow: 0 0 3px @common-blue;
+ --pcp-cm-chatgptBody-border-radius: 6px 6px 4px 4px;
+ --pcp-cm-chatgptBody-background-color: #1e1e1ee6;
+ --pcp-cm-chatgptBody-transition: height .1s ease-in-out, width .1s ease-in-out;
+ --pcp-cm-chatgptBody-padding: 20px;
+ --pcp-cm-chatgptBody-font-size: 14px;
+ --pcp-cm-chatgptBody-color: #fff;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel
+ --pcp-cm-cb-bodyPanel-border: 1px solid #434343;
+ --pcp-cm-cb-bodyPanel-border-radius: 6px;
+ --pcp-cm-cb-bodyPanel-overflow: hidden;
+ --pcp-cm-cb-bodyPanel-margin-bottom: 15px;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel.fold
+ --pcp-cm-cb-bodyPanelFold-max-height: 36px;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel.fold .panel-unfold
+ --pcp-cm-cb-bpf-panelUnfold-transform: rotate(180deg);
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel.fold .panel-content
+ --pcp-cm-cb-bpf-panelContent-display: none;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header
+ --pcp-cm-cb-bp-panelHeader-background: #626262;
+ --pcp-cm-cb-bp-panelHeader-width: 100%;
+ --pcp-cm-cb-bp-panelHeader-padding: 5px 10px;
+ --pcp-cm-cb-bp-panelHeader-box-sizing: border-box;
+ --pcp-cm-cb-bp-panelHeader-display: flex;
+ --pcp-cm-cb-bp-panelHeader-justify-content: flex-start;
+ --pcp-cm-cb-bp-panelHeader-align-items: center;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header .panel-unfold
+ --pcp-cm-cb-bp-ph-panelUnfold-cursor: pointer;
+ --pcp-cm-cb-bp-ph-panelUnfold-margin-right: 2px;
+ --pcp-cm-cb-bp-ph-panelUnfold-animation: all .3s;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header .panel-unfold .icon-svg-unfold
+ --pcp-cm-cb-bp-ph-pu-iconSvgUnfold-display: flex;
+ --pcp-cm-cb-bp-ph-pu-iconSvgUnfold-justify-content: center;
+ --pcp-cm-cb-bp-ph-pu-iconSvgUnfold-align-items: center;
+ --pcp-cm-cb-bp-ph-pu-iconSvgUnfold-width: auto;
+ --pcp-cm-cb-bp-ph-pu-iconSvgUnfold-height: 20px;
+ --pcp-cm-cb-bp-ph-pu-iconSvgUnfold-color: #02b7fd;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header .panel-title
+ --pcp-cm-cb-bp-ph-panelTitle-font-weight: bold;
+ --pcp-cm-cb-bp-ph-panelTitle-font-size: 16px;
+ --pcp-cm-cb-bp-ph-panelTitle-color: #fff;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-content
+ --pcp-cm-cb-bp-panelContent-padding: 12px;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line
+ --pcp-cm-cb-bodyLine-display: flex;
+ --pcp-cm-cb-bodyLine-justify-content: flex-start;
+ --pcp-cm-cb-bodyLine-align-items: flex-start;
+ --pcp-cm-cb-bodyLine-margin-bottom: 10px;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line:last-child
+ --pcp-cm-cb-bodyLineLastChild-margin-bottom: 0;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-title
+ --pcp-cm-cb-bl-lineTitle-font-size: 16px;
+ --pcp-cm-cb-bl-lineTitle-font-weight: bold;
+ --pcp-cm-cb-bl-lineTitle-color: #fff;
+ --pcp-cm-cb-bl-lineTitle-width: 140px;
+ --pcp-cm-cb-bl-lineTitle-line-height: 24px;
+ --pcp-cm-cb-bl-lineTitle-margin-right: 10px;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-title .line-subtitle
+ --pcp-cm-cb-bl-lt-lineSubtitle-font-size: 12px;
+ --pcp-cm-cb-bl-lt-lineSubtitle-font-weight: normal;
+ --pcp-cm-cb-bl-lt-lineSubtitle-color: #a4a4a4;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content
+ --pcp-cm-cb-bl-lineContent-flex: 1;
+ --pcp-cm-cb-bl-lineContent-font-size: 14px;
+ --pcp-cm-cb-bl-lineContent-color: #fff;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content.text-right
+ --pcp-cm-cb-bl-lc-textRight-text-align: right;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content span, p
+ --pcp-cm-cb-bl-lc-spanP-font-size: 14px;
+ --pcp-cm-cb-bl-lc-spanP-color: #fff;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content p
+ --pcp-cm-cb-bl-lc-p-margin: 5px 0;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content a
+ --pcp-cm-cb-bl-lc-a-font-size: 14px;
+ --pcp-cm-cb-bl-lc-a-color: #108bb5;
+ --pcp-cm-cb-bl-lc-a-text-decoration: underline;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content input[type='text'], textarea, select
+ --pcp-cm-cb-bl-lc-inputTextareaSelect-background: rgba(30, 30, 30, .9);
+ --pcp-cm-cb-bl-lc-inputTextareaSelect-border: 1px solid #3c3c3c;
+ --pcp-cm-cb-bl-lc-inputTextareaSelect-padding: 4px;
+ --pcp-cm-cb-bl-lc-inputTextareaSelect-width: 100%;
+ --pcp-cm-cb-bl-lc-inputTextareaSelect-font-size: 14px;
+ --pcp-cm-cb-bl-lc-inputTextareaSelect-color: #fff;
+ --pcp-cm-cb-bl-lc-inputTextareaSelect-resize: none;
+ --pcp-cm-cb-bl-lc-inputTextareaSelect-box-sizing: border-box;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content input[type='text'], textarea, select:focus
+ --pcp-cm-cb-bl-lc-inputTextareaSelectFocus-outline: none;
+ --pcp-cm-cb-bl-lc-inputTextareaSelectFocus-border-color: @common-blue;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content textarea
+ --pcp-cm-cb-bl-lc-textarea-line-height: 20px;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content .common-btn
+ --pcp-cm-cb-bl-lc-commonBtn-cursor: pointer;
+ --pcp-cm-cb-bl-lc-commonBtn-display: inline-block;
+ --pcp-cm-cb-bl-lc-commonBtn-padding: 0 30px;
+ --pcp-cm-cb-bl-lc-commonBtn-height: 30px;
+ --pcp-cm-cb-bl-lc-commonBtn-line-height: 30px;
+ --pcp-cm-cb-bl-lc-commonBtn-color: #fff;
+ --pcp-cm-cb-bl-lc-commonBtn-border-radius: 4px;
+ --pcp-cm-cb-bl-lc-cb-iconSvgLoading-width: auto;
+ --pcp-cm-cb-bl-lc-cb-iconSvgLoading-height: 30px;
+ --pcp-cm-cb-bl-lc-cb-iconSvgLoading-color: none;
+
+ // .physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content .common-sub-btn
+ --pcp-cm-cb-bl-lc-commonSubBtn-cursor: pointer;
+ --pcp-cm-cb-bl-lc-commonSubBtn-display: inline-block;
+ --pcp-cm-cb-bl-lc-commonSubBtn-padding: 0 30px;
+ --pcp-cm-cb-bl-lc-commonSubBtn-height: 30px;
+ --pcp-cm-cb-bl-lc-commonSubBtn-line-height: 30px;
+ --pcp-cm-cb-bl-lc-commonSubBtn-color: @common-blue;
+ --pcp-cm-cb-bl-lc-commonSubBtn-background: transparent;
+ --pcp-cm-cb-bl-lc-commonSubBtn-border: 1px solid @common-blue;
+ --pcp-cm-cb-bl-lc-commonSubBtn-border-radius: 4px;
+
+ // .physton-about-prompt .about-main
+ --pap-aboutMain-position: relative;
+ --pap-aboutMain-width: 700px;
+
+ // .physton-about-prompt .about-main .about-body
+ --pap-cm-aboutBody-display: block;
+ --pap-cm-aboutBody-position: relative;
+ --pap-cm-aboutBody-box-shadow: 0 0 3px @common-blue;
+ --pap-cm-aboutBody-border-radius: 6px 6px 4px 4px;
+ --pap-cm-aboutBody-background-color: #1e1e1ee6;
+ --pap-cm-aboutBody-transition: height .1s ease-in-out, width .1s ease-in-out;
+ --pap-cm-aboutBody-padding: 20px;
+ --pap-cm-aboutBody-font-size: 14px;
+ --pap-cm-aboutBody-color: #fff;
+
+ // .physton-about-prompt .about-main .about-body a
+ --pap-cm-ab-a-color: #108bb5;
+ --pap-cm-ab-a-text-decoration: underline;
+
+ // .physton-about-prompt .about-main .about-body img
+ --pap-cm-ab-img-margin-right: 5px;
+
+ // .physton-about-prompt .about-main .about-body .body-title
+ --pap-cm-ab-bodyTitle-margin: 0 0 20px 0;
+ --pap-cm-ab-bodyTitle-font-size: 30px;
+
+ // .physton-about-prompt .about-main .about-body .has-new-version
+ --pap-cm-ab-hasNewVersion-color: var(--physton-common-red);
+ --pap-cm-ab-hasNewVersion-animation: blink 1s linear infinite;
+
+ // .physton-about-prompt .about-main .about-body .version-list
+ --pap-cm-ab-versionList-height: 400px;
+ --pap-cm-ab-versionList-overflow: hidden;
+ --pap-cm-ab-versionList-overflow-y: auto;
+ --pap-cm-ab-versionList-border: 1px solid #434343;
+ --pap-cm-ab-versionList-border-radius: 6px;
+
+ // .physton-about-prompt .about-main .about-body .version-list .icon-svg-loading
+ --pap-cm-ab-vl-iconSvgLoading-width: auto;
+ --pap-cm-ab-vl-iconSvgLoading-height: 50px;
+ --pap-cm-ab-vl-iconSvgLoading-color: none;
+
+ // .physton-about-prompt .about-main .about-body .version-list .version-item
+ --pap-cm-ab-vl-versionItem-margin: 5px;
+ --pap-cm-ab-vl-versionItem-padding: 5px;
+ --pap-cm-ab-vl-versionItem-border-bottom: 1px dashed #434343;
+
+ // .physton-about-prompt .about-main .about-body .version-list .version-item .item-header
+ --pap-cm-ab-vl-vi-itemHeader-display: flex;
+ --pap-cm-ab-vl-vi-itemHeader-justify-content: space-between;
+ --pap-cm-ab-vl-vi-itemHeader-align-items: center;
+
+ // .physton-about-prompt .about-main .about-body .version-list .version-item .version-msg
+ --pap-cm-ab-vl-vi-versionMsg-margin-top: 5px;
+ --pap-cm-ab-vl-vi-versionMsg-color: #c3c3c3;
+
+ // .physton-highlight-prompt
+ --physton-highlight-prompt-background: rgba(0, 175, 255, 0.2);
+}
+
+.hover-scale-120 {
+ animation: var(--hoverScale120-animation);
+
+ &:hover {
+ transform: var(--hoverScale120-hover-transform);
+ }
+}
+
+.hover-scale-140 {
+ animation: var(--hoverScale140-animation);
+
+ &:hover {
+ transform: var(--hoverScale140-hover-transform);
+ }
+}
+
+@common-red: var(--physton-common-red);
+@common-blue: var(--physton-common-blue);
+
+.set-icon-svg(@width: 20px, @height: 20px, @fill: none, @className: icon-svg) when (@fill=none) {
+ /*.@{className} {
+ width: @width;
+ height: @height;
+ }*/
+
+ .@{className} svg {
+ width: @width;
+ height: @height;
+ padding: var(--iconSvg-padding);
+ box-sizing: var(--iconSvg-box-sizing);
+ }
+}
+
+.set-icon-svg(@width: 20px, @height: 20px, @fill: none, @className: icon-svg) when not (@fill=none) {
+ /*.@{className} {
+ width: @width;
+ height: @height;
+ }*/
+
+ .@{className} svg {
+ width: @width;
+ height: @height;
+ padding: var(--iconSvg-padding);
+ box-sizing: var(--iconSvg-box-sizing);
+
+ path {
+ fill: @fill;
+ }
+ }
+}
+
+.common-popup-bg() {
+ position: var(--commonPopupBg-position);
+ top: var(--commonPopupBg-top);
+ left: var(--commonPopupBg-left);
+ width: var(--commonPopupBg-width);
+ height: var(--commonPopupBg-height);
+ z-index: var(--commonPopupBg-z-index);
+ display: var(--commonPopupBg-display);
+ justify-content: var(--commonPopupBg-justify-content);
+ align-items: var(--commonPopupBg-align-items);
+ background: var(--commonPopupBg-background);
+}
+
+.common-popup-main-background() {
+ box-shadow: var(--commonPopupMainBackground-box-shadow);
+ border-radius: var(--commonPopupMainBackground-border-radius);
+ background-color: var(--commonPopupMainBackground-background-color);
+ transition: var(--commonPopupMainBackground-transition);
+}
+
+.common-popup-main(@width: 700px, @padding: 20px, @position: relative) {
+ width: @width;
+ height: var(--commonPopupMain-height);
+ padding: @padding;
+ margin: var(--commonPopupMain-margin);
+ .common-popup-main-background();
+ color: var(--commonPopupMain-color);
+ position: @position;
+}
+
+.common-popup-close() {
+ display: var(--commonPopupClose-display);
+ padding: var(--commonPopupClose-padding);
+ position: var(--commonPopupClose-position);
+ right: var(--commonPopupClose-right);
+ top: var(--commonPopupClose-top);
+ background: var(--commonPopupClose-background);
+ border-radius: var(--commonPopupClose-border-radius);
+ box-shadow: var(--commonPopupClose-box-shadow);
+ cursor: var(--commonPopupClose-cursor);
+ z-index: var(--commonPopupClose-z-index);
+
+ &:hover {
+ background: var(--commonPopupClose-hover-background);
+ }
+
+ .set-icon-svg(var(--commonPopupClose-iconSvgClose-width), var(--commonPopupClose-iconSvgClose-height), var(--commonPopupClose-iconSvgClose-color), icon-svg-close);
+}
+
+.common-colourful-background() {
+ background: var(--commonColourfulBackground-background);
+ background-size: var(--commonColourfulBackground-background-size);
+}
+
+.vue-number-input {
+ display: block;
+ font-size: 0;
+ max-width: 100%;
+ overflow: hidden;
+ position: relative;
+
+ &__button {
+ background-color: #fff;
+ border: 0;
+ border-radius: 0.25rem;
+ bottom: 1px;
+ position: absolute;
+ top: 1px;
+ width: 2.5rem;
+ z-index: 1;
+
+ &:focus {
+ outline: none;
+ }
+
+ &:hover {
+ &::before,
+ &::after {
+ background-color: #0074d9;
+ }
+ }
+
+ &:disabled {
+ opacity: 0.65;
+
+ &::before,
+ &::after {
+ background-color: #ddd;
+ }
+ }
+
+ &::before,
+ &::after {
+ background-color: #111;
+ content: "";
+ left: 50%;
+ position: absolute;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ transition: background-color 0.15s;
+ }
+
+ &::before {
+ height: 1px;
+ width: 50%;
+ }
+
+ &::after {
+ height: 50%;
+ width: 1px;
+ }
+
+ &--minus {
+ border-bottom-right-radius: 0;
+ border-right: 1px solid #ddd;
+ border-top-right-radius: 0;
+ left: 1px;
+
+ &::after {
+ visibility: hidden;
+ }
+ }
+
+ &--plus {
+ border-bottom-left-radius: 0;
+ border-left: 1px solid #ddd;
+ border-top-left-radius: 0;
+ right: 1px;
+ }
+ }
+
+ &__input {
+ -moz-appearance: textfield;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 0.25rem;
+ display: block;
+ font-size: 1rem;
+ line-height: 1.5;
+ max-width: 100%;
+ min-height: 1.5rem;
+ min-width: 3rem;
+ padding: 0.4375rem 0.875rem;
+ transition: border-color 0.15s;
+ width: 100%;
+
+ &::-webkit-outer-spin-button,
+ &::-webkit-inner-spin-button {
+ -webkit-appearance: none;
+ }
+
+ &:focus {
+ border-color: #0074d9;
+ outline: none;
+ }
+
+ &:disabled,
+ &[readonly] {
+ background-color: #f8f8f8;
+ }
+ }
+
+ &--inline {
+ display: inline-block;
+
+ & > input {
+ display: inline-block;
+ width: 12.5rem;
+ }
+ }
+
+ &--center {
+ & > input {
+ text-align: center;
+ }
+ }
+
+ &--controls {
+ & > input {
+ padding-left: 3.375rem;
+ padding-right: 3.375rem;
+ }
+ }
+
+ &--small {
+ & > input {
+ border-radius: 0.1875rem;
+ font-size: 0.875rem;
+ padding: 0.25rem 0.5rem;
+ }
+
+ &.vue-number-input--inline > input {
+ width: 10rem;
+ }
+
+ &.vue-number-input--controls > button {
+ width: 2rem;
+ }
+
+ &.vue-number-input--controls > input {
+ padding-left: 2.5rem;
+ padding-right: 2.5rem;
+ }
+ }
+
+ &--large {
+ & > input {
+ border-radius: 0.3125rem;
+ font-size: 1.25rem;
+ padding: 0.5rem 1rem;
+ }
+
+ &.vue-number-input--inline > input {
+ width: 15rem;
+ }
+
+ &.vue-number-input--controls > button {
+ width: 3rem;
+ }
+
+ &.vue-number-input--controls > input {
+ padding-left: 4rem;
+ padding-right: 4rem;
+ }
+ }
+}
+
+.physton-paste-popup {
+ .common-popup-bg();
+
+ .paste-popup-main {
+ .common-popup-main();
+
+ .paste-popup-close {
+ .common-popup-close();
+ }
+
+ .paste-popup-title {
+ font-size: var(--ppp-ppm-pastePopupTitle-font-size);
+ font-weight: var(--ppp-ppm-pastePopupTitle-font-weight);
+ margin-bottom: var(--ppp-ppm-pastePopupTitle-margin-bottom);
+ word-break: var(--ppp-ppm-pastePopupTitle-word-break);
+ white-space: var(--ppp-ppm-pastePopupTitle-white-space);
+ overflow: var(--ppp-ppm-pastePopupTitle-overflow);
+ }
+
+ .paste-popup-body {
+ .paste-content {
+ background: var(--ppp-ppm-ppb-pasteContent-background);
+ border: var(--ppp-ppm-ppb-pasteContent-border);
+ padding: var(--ppp-ppm-ppb-pasteContent-padding);
+ width: var(--ppp-ppm-ppb-pasteContent-width);
+ font-size: var(--ppp-ppm-ppb-pasteContent-font-size);
+ color: var(--ppp-ppm-ppb-pasteContent-color);
+ resize: var(--ppp-ppm-ppb-pasteContent-resize);
+ height: var(--ppp-ppm-ppb-pasteContent-height);
+ box-sizing: var(--ppp-ppm-ppb-pasteContent-box-sizing);
+
+ &:focus {
+ outline: var(--ppp-ppm-ppb-pasteContent-hover-outline);
+ border-color: var(--ppp-ppm-ppb-pasteContent-hover-border-color);
+ }
+ }
+
+ .paste-submit {
+ .common-colourful-background();
+ border-radius: var(--ppp-ppm-ppb-pasteSubmit-border-radius);
+ padding: var(--ppp-ppm-ppb-pasteSubmit-padding);
+ margin-top: var(--ppp-ppm-ppb-pasteSubmit-margin-top);
+ text-align: var(--ppp-ppm-ppb-pasteSubmit-text-align);
+ color: var(--ppp-ppm-ppb-pasteSubmit-color);
+ font-size: var(--ppp-ppm-ppb-pasteSubmit-font-size);
+ cursor: var(--ppp-ppm-ppb-pasteSubmit-cursor);
+ display: var(--ppp-ppm-ppb-pasteSubmit-display);
+ justify-content: var(--ppp-ppm-ppb-pasteSubmit-justify-content);
+ align-items: var(--ppp-ppm-ppb-pasteSubmit-align-items);
+
+ &:hover {
+ box-shadow: var(--ppp-ppm-ppb-pasteSubmitHover-box-shadow);
+ }
+
+ .set-icon-svg(var(--ppp-ppm-ppb-ps-iconSvgLoading-width), var(--ppp-ppm-ppb-ps-iconSvgLoading-height), var(--ppp-ppm-ppb-ps-iconSvgLoading-color), icon-svg-loading);
+ }
+ }
+ }
+}
+
+.physton-prompt {
+ border: var(--pp-border);
+ padding: var(--pp-padding);
+ margin: var(--pp-margin);
+
+ div {
+ line-height: var(--pp-div-line-height);
+ }
+
+ svg {
+ display: var(--pp-svg-display);
+ }
+
+ .icon-svg {
+ display: var(--pp-iconSvg-display);
+ line-height: var(--pp-iconSvg-line-height);
+ }
+
+ .prompt-main {
+ &.fold {
+ max-height: var(--pp-promptMainFold-max-height);
+
+ .prompt-unfold {
+ transform: var(--pp-pmf-promptUnfold-transform);
+ }
+
+ .prompt-tags {
+ display: var(--pp-pmf-promptTags-display);
+ }
+ }
+ }
+
+ .prompt-header {
+ margin: var(--pp-promptHeader-margin);
+ padding: var(--pp-promptHeader-padding);
+ display: var(--pp-promptHeader-display);
+ justify-content: var(--pp-promptHeader-justify-content);
+ align-items: var(--pp-promptHeader-align-items);
+ border-bottom: var(--pp-promptHeader-border-bottom);
+ flex-wrap: var(--pp-promptHeader-flex-wrap);
+
+ > * {
+ margin-right: var(--pp-promptHeaderAny-margin-right);
+
+ &:last-child {
+ margin-right: var(--pp-promptHeaderAnyLastChild-margin-right);
+ }
+ }
+
+ .prompt-unfold {
+ cursor: var(--pp-ph-promptUnfold-cursor);
+ margin-right: var(--pp-ph-promptUnfold-margin-right);
+ animation: var(--pp-ph-promptUnfold-animation);
+ }
+
+ .prompt-unfold {
+ .set-icon-svg(var(--pp-ph-pu-iconSvgUnfold-width), var(--pp-ph-pu-iconSvgUnfold-height), var(--pp-ph-pu-iconSvgUnfold-color), icon-svg-unfold);
+ }
+
+ .extend-btn-item {
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgI18n-width), var(--pp-ph-ebi-iconSvgI18n-height), var(--pp-ph-ebi-iconSvgI18n-color), icon-svg-i18n);
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgSetting-width), var(--pp-ph-ebi-iconSvgSetting-height), var(--pp-ph-ebi-iconSvgSetting-color), icon-svg-setting);
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgHistory-width), var(--pp-ph-ebi-iconSvgHistory-height), var(--pp-ph-ebi-iconSvgHistory-color), icon-svg-history);
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgFavorite-width), var(--pp-ph-ebi-iconSvgFavorite-height), var(--pp-ph-ebi-iconSvgFavorite-color), icon-svg-favorite);
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgTranslate-width), var(--pp-ph-ebi-iconSvgTranslate-height), var(--pp-ph-ebi-iconSvgTranslate-color), icon-svg-translate);
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgEnglish-width), var(--pp-ph-ebi-iconSvgEnglish-height), var(--pp-ph-ebi-iconSvgEnglish-color), icon-svg-english);
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgLoading-width), var(--pp-ph-ebi-iconSvgLoading-height), var(--pp-ph-ebi-iconSvgLoading-color), icon-svg-loading);
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgCopy-width), var(--pp-ph-ebi-iconSvgCopy-height), var(--pp-ph-ebi-iconSvgCopy-color), icon-svg-copy);
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgRemove-width), var(--pp-ph-ebi-iconSvgRemove-height), var(--pp-ph-ebi-iconSvgRemove-color), icon-svg-remove);
+ .set-icon-svg(var(--pp-ph-ebi-iconSvgChatgpt-width), var(--pp-ph-ebi-iconSvgChatgpt-height), var(--pp-ph-ebi-iconSvgChatgpt-color), icon-svg-chatgpt);
+ }
+
+ .setting-box {
+ .set-icon-svg(var(--pp-ph-sb-iconSvgApi-width), var(--pp-ph-sb-iconSvgApi-height), var(--pp-ph-sb-iconSvgApi-color), icon-svg-api);
+ .set-icon-svg(var(--pp-ph-sb-iconSvgFormat-width), var(--pp-ph-sb-iconSvgFormat-height), var(--pp-ph-sb-iconSvgFormat-color), icon-svg-format);
+ .set-icon-svg(var(--pp-ph-sb-iconSvgTheme-width), var(--pp-ph-sb-iconSvgTheme-height), var(--pp-ph-sb-iconSvgTheme-color), icon-svg-theme);
+ .set-icon-svg(var(--pp-ph-sb-iconSvgTranslate-width), var(--pp-ph-sb-iconSvgTranslate-height), var(--pp-ph-sb-iconSvgTranslate-color), icon-svg-translate);
+ .set-icon-svg(var(--pp-ph-sb-iconSvgEnglish-width), var(--pp-ph-sb-iconSvgEnglish-height), var(--pp-ph-sb-iconSvgEnglish-color), icon-svg-english);
+ .set-icon-svg(var(--pp-ph-sb-iconSvgRemoveSpace-width), var(--pp-ph-sb-iconSvgRemoveSpace-height), var(--pp-ph-sb-iconSvgRemoveSpace-color), icon-svg-remove-space);
+ .set-icon-svg(var(--pp-ph-sb-iconSvgTooltip-width), var(--pp-ph-sb-iconSvgTooltip-height), var(--pp-ph-sb-iconSvgTooltip-color), icon-svg-tooltip);
+ .set-icon-svg(var(--pp-ph-sb-iconSvgAbout-width), var(--pp-ph-sb-iconSvgAbout-height), var(--pp-ph-sb-iconSvgAbout-color), icon-svg-about);
+ }
+
+ .set-icon-svg(var(--pp-ph-iconSvgInput-width), var(--pp-ph-iconSvgInput-height), var(--pp-ph-iconSvgInput-color), icon-svg-input);
+
+ .prompt-append-list {
+ .set-icon-svg(var(--pp-ph-pal-iconSvgWrap-width), var(--pp-ph-pal-iconSvgWrap-height), var(--pp-ph-pal-iconSvgWrap-color), icon-svg-wrap);
+ .set-icon-svg(var(--pp-ph-pal-iconSvgHistory-width), var(--pp-ph-pal-iconSvgHistory-height), var(--pp-ph-pal-iconSvgHistory-color), icon-svg-history);
+ .set-icon-svg(var(--pp-ph-pal-iconSvgFavorite-width), var(--pp-ph-pal-iconSvgFavorite-height), var(--pp-ph-pal-iconSvgFavorite-color), icon-svg-favorite);
+ }
+
+ .prompt-header-title {
+ font-weight: var(--pp-ph-promptHeaderTitle-font-weight);
+ font-size: var(--pp-ph-promptHeaderTitle-font-size);
+ white-space: var(--pp-ph-promptHeaderTitle-white-space);
+ }
+
+ .prompt-header-counter {
+ font-size: var(--pp-ph-promptHeaderCounter-font-size);
+ min-width: var(--pp-ph-promptHeaderCounter-min-width);
+ }
+
+ .prompt-header-break {
+ flex-basis: var(--pp-ph-promptHeaderBreak-flex-basis);
+ height: var(--pp-ph-promptHeaderBreak-height);
+ margin-bottom: var(--pp-ph-promptHeaderBreak-margin-bottom);
+ }
+
+ .prompt-header-extend {
+ margin-right: var(--pp-ph-promptHeaderExtend-margin-right);
+ display: var(--pp-ph-promptHeaderExtend-display);
+ justify-content: var(--pp-ph-promptHeaderExtend-justify-content);
+ align-items: var(--pp-ph-promptHeaderExtend-align-items);
+
+ &:last-child {
+ margin-right: var(--pp-ph-promptHeaderExtendLastChild-margin-right);
+ }
+
+ .extend-title {
+ font-size: var(--pp-ph-phe-extendTitle-font-size);
+ margin-right: var(--pp-ph-phe-extendTitle-margin-right);
+ }
+
+ &.prompt-append {
+ position: var(--pp-ph-phe-promptAppend-position);
+ flex: var(--pp-ph-phe-promptAppend-flex);
+
+ .extend-content {
+ width: var(--pp-ph-phe-pa-extendContent-width);
+ display: var(--pp-ph-phe-pa-extendContent-display);
+ justify-content: var(--pp-ph-phe-pa-extendContent-justify-content);
+ align-items: var(--pp-ph-phe-pa-extendContent-align-items);
+ }
+ }
+
+ .extend-content {
+ select, .select-btn {
+ padding: var(--pp-ph-phe-ec-selectSelectBtn-padding);
+ font-size: var(--pp-ph-phe-ec-selectSelectBtn-font-size);
+ appearance: var(--pp-ph-phe-ec-selectSelectBtn-appearance);
+ border: var(--pp-ph-phe-ec-selectSelectBtn-border);
+ background: var(--pp-ph-phe-ec-selectSelectBtn-background);
+ color: var(--pp-ph-phe-ec-selectSelectBtn-color);
+ height: var(--pp-ph-phe-ec-selectSelectBtn-height);
+ line-height: var(--pp-ph-phe-ec-selectSelectBtn-line-height);
+
+ &:hover {
+ border-color: var(--pp-ph-phe-ec-selectSelectBtnHover-border-color);
+ }
+ }
+
+ .select-btn {
+ cursor: var(--pp-ph-phe-ec-selectBtn-cursor);
+ padding: var(--pp-ph-phe-ec-selectBtn-padding);
+
+ &:hover {
+ background: var(--pp-ph-phe-ec-selectBtnHover-background);
+ border-color: var(--pp-ph-phe-ec-selectBtnHover-border-color);
+ }
+ }
+
+ .autocompleteResults {
+ top: var(--pp-ph-phe-ec-autocompleteresults-top) !important;
+ }
+
+ .input-tag-append {
+ display: var(--pp-ph-phe-ec-inputTagAppend-display);
+ height: var(--pp-ph-phe-ec-inputTagAppend-height) !important;
+ padding: var(--pp-ph-phe-ec-inputTagAppend-padding) !important;
+ border: var(--pp-ph-phe-ec-inputTagAppend-border);
+ appearance: var(--pp-ph-phe-ec-inputTagAppend-appearance);
+ background-color: var(--pp-ph-phe-ec-inputTagAppend-background-color);
+ font-size: var(--pp-ph-phe-ec-inputTagAppend-font-size) !important;
+ line-height: var(--pp-ph-phe-ec-inputTagAppend-line-height) !important;
+ font-family: var(--pp-ph-phe-ec-inputTagAppend-font-family);
+ font-weight: var(--pp-ph-phe-ec-inputTagAppend-font-weight);
+ border-radius: var(--pp-ph-phe-ec-inputTagAppend-border-radius) !important;
+ min-width: var(--pp-ph-phe-ec-inputTagAppend-min-width);
+ width: var(--pp-ph-phe-ec-inputTagAppend-width);
+ text-align: var(--pp-ph-phe-ec-inputTagAppend-text-align);
+ resize: var(--pp-ph-phe-ec-inputTagAppend-resize);
+
+ &:focus {
+ box-shadow: var(--pp-ph-phe-ec-inputTagAppendFocus-box-shadow) !important;
+ border-color: var(--pp-ph-phe-ec-inputTagAppendFocus-border-color);
+ }
+ }
+
+ .extend-btn-group {
+ display: var(--pp-ph-phe-ec-extendBtnGroup-display);
+ justify-content: var(--pp-ph-phe-ec-extendBtnGroup-justify-content);
+ align-items: var(--pp-ph-phe-ec-extendBtnGroup-align-items);
+ color: var(--pp-ph-phe-ec-extendBtnGroup-color);
+ background: var(--pp-ph-phe-ec-extendBtnGroup-background);
+ border: var(--pp-ph-phe-ec-extendBtnGroup-border);
+ padding: var(--pp-ph-phe-ec-extendBtnGroup-padding);
+ border-radius: var(--pp-ph-phe-ec-extendBtnGroup-border-radius);
+
+ .extend-btn-item {
+ cursor: var(--pp-ph-phe-ec-ebg-extendBtnItem-cursor);
+ height: var(--pp-ph-phe-ec-ebg-extendBtnItem-height);
+ width: var(--pp-ph-phe-ec-ebg-extendBtnItem-width);
+ display: var(--pp-ph-phe-ec-ebg-extendBtnItem-display);
+ justify-content: var(--pp-ph-phe-ec-ebg-extendBtnItem-justify-content);
+ align-items: var(--pp-ph-phe-ec-ebg-extendBtnItem-align-items);
+ position: var(--pp-ph-phe-ec-ebg-extendBtnItem-position);
+
+ &:first-child {
+ border-left: var(--pp-ph-phe-ec-ebg-extendBtnItemFirstChild-border-left);
+ margin-left: var(--pp-ph-phe-ec-ebg-extendBtnItemFirstChild-margin-left);
+ }
+
+ &:hover {
+ .setting-box {
+ display: var(--pp-ph-phe-ec-ebg-ebih-settingBox-display);
+ }
+
+ &.red-dot {
+ > .icon-svg-setting, > .icon-svg-about {
+ &:after {
+ display: var(--pp-ph-phe-ec-ebg-ebihrd-iconAfter-display);
+ }
+ }
+ }
+ }
+
+ &.red-dot {
+ > .icon-svg-setting, > .icon-svg-about {
+ &:after {
+ content: var(--pp-ph-phe-ec-ebg-ebird-iconAfter-content);
+ display: var(--pp-ph-phe-ec-ebg-ebird-iconAfter-display);
+ width: var(--pp-ph-phe-ec-ebg-ebird-iconAfter-width);
+ height: var(--pp-ph-phe-ec-ebg-ebird-iconAfter-height);
+ background: var(--pp-ph-phe-ec-ebg-ebird-iconAfter-background);
+ border-radius: var(--pp-ph-phe-ec-ebg-ebird-iconAfter-border-radius);
+ position: var(--pp-ph-phe-ec-ebg-ebird-iconAfter-position);
+ top: var(--pp-ph-phe-ec-ebg-ebird-iconAfter-top);
+ right: var(--pp-ph-phe-ec-ebg-ebird-iconAfter-right);
+ }
+ }
+ }
+
+ .setting-box {
+ display: var(--pp-ph-phe-ec-ebg-ebi-settingBox-display);
+ position: var(--pp-ph-phe-ec-ebg-ebi-settingBox-position);
+ background: var(--pp-ph-phe-ec-ebg-ebi-settingBox-background);
+ top: var(--pp-ph-phe-ec-ebg-ebi-settingBox-top);
+ left: var(--pp-ph-phe-ec-ebg-ebi-settingBox-left);
+ justify-content: var(--pp-ph-phe-ec-ebg-ebi-settingBox-justify-content);
+ align-items: var(--pp-ph-phe-ec-ebg-ebi-settingBox-align-items);
+ width: var(--pp-ph-phe-ec-ebg-ebi-settingBox-width);
+ height: var(--pp-ph-phe-ec-ebg-ebi-settingBox-height);
+ padding: var(--pp-ph-phe-ec-ebg-ebi-settingBox-padding);
+ box-shadow: var(--pp-ph-phe-ec-ebg-ebi-settingBox-box-shadow);
+ border-radius: var(--pp-ph-phe-ec-ebg-ebi-settingBox-border-radius);
+ z-index: var(--pp-ph-phe-ec-ebg-ebi-settingBox-z-index);
+
+ > * {
+ margin-left: var(--pp-ph-phe-ec-ebg-ebi-settingBoxAny-margin-left);
+
+ &:first-child {
+ margin-left: var(--pp-ph-phe-ec-ebg-ebi-settingBoxAnyFirstChild-margin-left);
+ }
+ }
+ }
+ }
+ }
+
+ .gradio-button, a {
+ height: var(--pp-ph-phe-ec-ebg-gradioButtonA-height) !important;
+ min-height: var(--pp-ph-phe-ec-ebg-gradioButtonA-min-height) !important;
+ max-height: var(--pp-ph-phe-ec-ebg-gradioButtonA-max-height) !important;
+ }
+
+ .gradio-checkbox {
+ cursor: var(--pp-ph-phe-ec-gradioCheckbox-cursor);
+ }
+
+ input[type="checkbox"] {
+ position: var(--pp-ph-phe-ec-inputCheckbox-position);
+ box-shadow: var(--pp-ph-phe-ec-inputCheckbox-box-shadow);
+ border: var(--pp-ph-phe-ec-inputCheckbox-border);
+ border-radius: var(--pp-ph-phe-ec-inputCheckbox-border-radius);
+ background-color: var(--pp-ph-phe-ec-inputCheckbox-background-color);
+ line-height: var(--pp-ph-phe-ec-inputCheckbox-line-height);
+ width: var(--pp-ph-phe-ec-inputCheckbox-width);
+ height: var(--pp-ph-phe-ec-inputCheckbox-height);
+
+ &:checked {
+ border-color: var(--pp-ph-phe-ec-inputCheckboxChecked-border-color);
+ background-color: var(--pp-ph-phe-ec-inputCheckboxChecked-background-color);
+ }
+ }
+ }
+ }
+ }
+
+ .prompt-tags {
+ display: var(--pp-promptTags-display);
+ flex-wrap: var(--pp-promptTags-flex-wrap);
+ justify-content: var(--pp-promptTags-justify-content);
+ align-items: var(--pp-promptTags-align-items);
+ position: var(--pp-promptTags-position);
+ padding: var(--pp-promptTags-padding);
+
+ &.droping, &.selecting {
+ .btn-tag-extend {
+ display: var(--pp-pt-ds-btnTagExtend-display) !important;
+ }
+ }
+
+ &.selecting {
+ * {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+ }
+
+ .prompt-tag-edit {
+ .set-icon-svg(var(--pp-pt-pte-iconSvgWrap-width), var(--pp-pt-pte-iconSvgWrap-height), var(--pp-pt-pte-iconSvgWrap-color), icon-svg-wrap);
+ }
+
+ .btn-tag-delete {
+ .set-icon-svg(var(--pp-pt-btd-iconSvgClose-width), var(--pp-pt-btd-iconSvgClose-height), var(--pp-pt-btd-iconSvgClose-color), icon-svg-close);
+ }
+
+ .btn-tag-extend {
+ .set-icon-svg(var(--pp-pt-bte-iconSvgWeightParenthesesInc-width), var(--pp-pt-bte-iconSvgWeightParenthesesInc-height), var(--pp-pt-bte-iconSvgWeightParenthesesInc-color), icon-svg-weight-parentheses-inc);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgWeightParenthesesDec-width), var(--pp-pt-bte-iconSvgWeightParenthesesDec-height), var(--pp-pt-bte-iconSvgWeightParenthesesDec-color), icon-svg-weight-parentheses-dec);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgWeightBracketsInc-width), var(--pp-pt-bte-iconSvgWeightBracketsInc-height), var(--pp-pt-bte-iconSvgWeightBracketsInc-color), icon-svg-weight-brackets-inc);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgWeightBracketsDec-width), var(--pp-pt-bte-iconSvgWeightBracketsDec-height), var(--pp-pt-bte-iconSvgWeightBracketsDec-color), icon-svg-weight-brackets-dec);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgEnglish-width), var(--pp-pt-bte-iconSvgEnglish-height), var(--pp-pt-bte-iconSvgEnglish-color), icon-svg-english);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgLoading-width), var(--pp-pt-bte-iconSvgLoading-height), var(--pp-pt-bte-iconSvgLoading-color), icon-svg-loading);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgCopy-width), var(--pp-pt-bte-iconSvgCopy-height), var(--pp-pt-bte-iconSvgCopy-color), icon-svg-copy);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgDisabled-width), var(--pp-pt-bte-iconSvgDisabled-height), var(--pp-pt-bte-iconSvgDisabled-color), icon-svg-disabled);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgEnable-width), var(--pp-pt-bte-iconSvgEnable-height), var(--pp-pt-bte-iconSvgEnable-color), icon-svg-enable);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgWrap-width), var(--pp-pt-bte-iconSvgWrap-height), var(--pp-pt-bte-iconSvgWrap-color), icon-svg-wrap);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgFavoriteNo-width), var(--pp-pt-bte-iconSvgFavoriteNo-height), var(--pp-pt-bte-iconSvgFavoriteNo-color), icon-svg-favorite-no);
+ .set-icon-svg(var(--pp-pt-bte-iconSvgFavoriteYes-width), var(--pp-pt-bte-iconSvgFavoriteYes-height), var(--pp-pt-bte-iconSvgFavoriteYes-color), icon-svg-favorite-yes);
+ }
+
+ .prompt-local-language {
+ .set-icon-svg(var(--pp-pt-pll-iconSvgTranslate-width), var(--pp-pt-pll-iconSvgTranslate-height), var(--pp-pt-pll-iconSvgTranslate-color), icon-svg-translate);
+ .set-icon-svg(var(--pp-pt-pll-iconSvgLoading-width), var(--pp-pt-pll-iconSvgLoading-height), var(--pp-pt-pll-iconSvgLoading-color), icon-svg-loading);
+ }
+
+ .drop-select-bg {
+ position: var(--pp-pt-dropSelectBg-position);
+ display: var(--pp-pt-dropSelectBg-display);
+ left: var(--pp-pt-dropSelectBg-left);
+ top: var(--pp-pt-dropSelectBg-top);
+ width: var(--pp-pt-dropSelectBg-width);
+ height: var(--pp-pt-dropSelectBg-height);
+ z-index: var(--pp-pt-dropSelectBg-z-index);
+ }
+
+ .drop-select-box {
+ position: var(--pp-pt-dropSelectBox-position);
+ display: var(--pp-pt-dropSelectBox-display);
+ left: var(--pp-pt-dropSelectBox-left);
+ top: var(--pp-pt-dropSelectBox-top);
+ width: var(--pp-pt-dropSelectBox-width);
+ height: var(--pp-pt-dropSelectBox-height);
+ box-sizing: var(--pp-pt-dropSelectBox-box-sizing);
+ background: var(--pp-pt-dropSelectBox-background);
+ border: var(--pp-pt-dropSelectBox-border);
+ z-index: var(--pp-pt-dropSelectBox-z-index);
+ }
+
+ .drop-select-btns {
+ position: var(--pp-pt-dropSelectBtns-position);
+ display: var(--pp-pt-dropSelectBtns-display);
+ left: var(--pp-pt-dropSelectBtns-left);
+ top: var(--pp-pt-dropSelectBtns-top);
+ width: var(--pp-pt-dropSelectBtns-width);
+ height: var(--pp-pt-dropSelectBtns-height);
+ z-index: var(--pp-pt-dropSelectBtns-z-index);
+
+ justify-content: var(--pp-pt-dropSelectBtns-justify-content);
+ align-items: var(--pp-pt-dropSelectBtns-align-items);
+ padding: var(--pp-pt-dropSelectBtns-padding);
+ box-sizing: var(--pp-pt-dropSelectBtns-box-sizing);
+ box-shadow: var(--pp-pt-dropSelectBtns-box-shadow);
+ background: var(--pp-pt-dropSelectBtns-background);
+ border-radius: var(--pp-pt-dropSelectBtns-border-radius);
+ overflow: var(--pp-pt-dropSelectBtns-overflow);
+
+ .set-icon-svg(var(--pp-pt-dsb-iconSvgCopy-width), var(--pp-pt-dsb-iconSvgCopy-height), var(--pp-pt-dsb-iconSvgCopy-color), icon-svg-copy);
+ .set-icon-svg(var(--pp-pt-dsb-iconSvgDisabled-width), var(--pp-pt-dsb-iconSvgDisabled-height), var(--pp-pt-dsb-iconSvgDisabled-color), icon-svg-disabled);
+ .set-icon-svg(var(--pp-pt-dsb-iconSvgEnable-width), var(--pp-pt-dsb-iconSvgEnable-height), var(--pp-pt-dsb-iconSvgEnable-color), icon-svg-enable);
+ .set-icon-svg(var(--pp-pt-dsb-iconSvgFavoriteNo-width), var(--pp-pt-dsb-iconSvgFavoriteNo-height), var(--pp-pt-dsb-iconSvgFavoriteNo-color), icon-svg-favorite-no);
+ .set-icon-svg(var(--pp-pt-dsb-iconSvgFavoriteYes-width), var(--pp-pt-dsb-iconSvgFavoriteYes-height), var(--pp-pt-dsb-iconSvgFavoriteYes-color), icon-svg-favorite-yes);
+ .set-icon-svg(var(--pp-pt-dsb-iconSvgRemove-width), var(--pp-pt-dsb-iconSvgRemove-height), var(--pp-pt-dsb-iconSvgRemove-color), icon-svg-remove);
+
+ .btns-title {
+ color: var(--pp-pt-dsb-btnsTitle-color);
+ padding: var(--pp-pt-dsb-btnsTitle-padding);
+ border-right: var(--pp-pt-dsb-btnsTitle-border-right);
+ height: var(--pp-pt-dsb-btnsTitle-height);
+ line-height: var(--pp-pt-dsb-btnsTitle-line-height);
+ }
+
+ > button {
+ height: var(--pp-pt-dsb-button-height);
+ width: var(--pp-pt-dsb-button-width);
+ border: var(--pp-pt-dsb-button-border);
+ border-radius: var(--pp-pt-dsb-button-border-radius);
+ padding: var(--pp-pt-dsb-button-padding);
+ min-width: var(--pp-pt-dsb-button-min-width);
+ font-size: var(--pp-pt-dsb-button-font-size);
+ min-height: var(--pp-pt-dsb-button-min-height);
+ background: var(--pp-pt-dsb-button-background);
+ color: var(--pp-pt-dsb-button-color);
+ border-right: var(--pp-pt-dsb-button-border-right);
+
+ &:last-child {
+ border-right: var(--pp-pt-dsb-buttonLastChild-border-right);
+ }
+
+ &:hover {
+ background: var(--pp-pt-dsb-buttonHover-background);
+ }
+ }
+ }
+
+ .prompt-tags-list {
+ display: var(--pp-pt-dsb-promptTagsList-display);
+ flex-wrap: var(--pp-pt-dsb-promptTagsList-flex-wrap);
+ justify-content: var(--pp-pt-dsb-promptTagsList-justify-content);
+ align-items: var(--pp-pt-dsb-promptTagsList-align-items);
+ width: var(--pp-pt-dsb-promptTagsList-width);
+
+ .prompt-wrap {
+ display: var(--pp-pt-dsb-ptl-promptWrap-display);
+ flex-basis: var(--pp-pt-dsb-ptl-promptWrap-flex-basis);
+ height: var(--pp-pt-dsb-ptl-promptWrap-height);
+ margin: var(--pp-pt-dsb-ptl-promptWrap-margin);
+ padding: var(--pp-pt-dsb-ptl-promptWrap-padding);
+ }
+
+ .prompt-tag {
+ margin-bottom: var(--pp-pt-dsb-ptl-promptTag-margin-bottom);
+ margin-right: var(--pp-pt-dsb-ptl-promptTag-margin-right);
+ display: var(--pp-pt-dsb-ptl-promptTag-display);
+ align-items: var(--pp-pt-dsb-ptl-promptTag-align-items);
+ max-width: var(--pp-pt-dsb-ptl-promptTag-max-width);
+
+ &:last-child {
+ margin-right: var(--pp-pt-dsb-ptl-promptTagLastChild-margin-right);
+ }
+
+ &.disabled {
+ .prompt-tag-edit {
+ opacity: var(--pp-pt-dsb-ptl-ptd-promptTagEdit-opacity);
+ }
+ }
+
+ &.sortable-selected, &.drop-selected {
+ .prompt-tag-value {
+ background: var(--pp-pt-dsb-ptl-pt-ss-ds-promptTagValue-background) !important;
+ }
+ }
+
+ .prompt-tag-main {
+ width: var(--pp-pt-dsb-ptl-pt-promptTagMain-width);
+ display: var(--pp-pt-dsb-ptl-pt-promptTagMain-display);
+ justify-content: var(--pp-pt-dsb-ptl-pt-promptTagMain-justify-content);
+ align-items: var(--pp-pt-dsb-ptl-pt-promptTagMain-align-items);
+ position: var(--pp-pt-dsb-ptl-pt-promptTagMain-position);
+
+ &:hover {
+ .prompt-tag-edit, .btn-tag-extend {
+ box-shadow: var(--pp-pt-dsb-ptl-pt-ptmh-pte-btnTagExtend-box-shadow);
+ }
+
+ .btn-tag-extend {
+ display: var(--pp-pt-dsb-ptl-pt-ptmh-btnTagExtend-display);
+ }
+ }
+
+ .prompt-tag-edit {
+ width: var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-width);
+ display: var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-display);
+ justify-content: var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-justify-content);
+ align-items: var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-align-items);
+ position: var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-position);
+ border-radius: var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-border-radius);
+ min-height: var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-min-height);
+
+ .prompt-tag-value {
+ width: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-width);
+ padding: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-padding);
+ font-size: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-font-size);
+ height: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-height);
+ border-radius: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-radius);
+ border-top-right-radius: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-top-right-radius);
+ border-bottom-right-radius: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-bottom-right-radius);
+ display: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-display);
+ align-items: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-align-items);
+ justify-content: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-justify-content);
+ color: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-color);
+ background: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-background);
+ border: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border);
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+
+ &.neg-tag {
+ color: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueNegTag-color);
+ }
+
+ &.lora-tag {
+ color: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraTag-color);
+ }
+
+ &.lora-not-exists {
+ background: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraNotExists-background);
+ animation: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraNotExists-animation);
+ }
+
+ &.lyco-tag {
+ color: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoTag-color);
+ }
+
+ &.lyco-not-exists {
+ background: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoNotExists-background);
+ animation: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoNotExists-animation);
+ }
+
+ @keyframes lora-not-exists {
+ 0% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: .7;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+
+ &.embedding-tag {
+ color: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueEmbeddingTag-color);
+ }
+
+ &:hover {
+ border-color: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-border-color);
+ background: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-background);
+ color: var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-color);
+ }
+
+ .character {
+ line-height: var(--pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-line-height);
+ white-space: var(--pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-white-space);
+ word-break: var(--pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-word-break);
+ }
+
+ .weight-character {
+ color: var(--pp-pt-dsb-ptl-pt-ptm-pte-ptv-weightCharacter-color);
+ }
+ }
+
+ .input-tag-edit {
+ padding: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-padding);
+ max-width: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-max-width);
+ border-radius: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-radius) !important;
+ border-top-right-radius: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-top-right-radius) !important;
+ border-bottom-right-radius: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-bottom-right-radius) !important;
+ max-height: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-max-height);
+ resize: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-resize);
+ line-height: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-line-height);
+ font-size: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-font-size);
+ background: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-background);
+ min-height: var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-min-height);
+ }
+
+ .btn-tag-delete {
+ display: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-display);
+ justify-content: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-justify-content);
+ align-items: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-align-items);
+ cursor: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-cursor);
+ border: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border);
+ background: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-background);
+ padding: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-padding);
+ width: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-width);
+ height: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-height);
+ border-left: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-left);
+ border-radius: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-radius);
+ border-top-right-radius: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-top-right-radius);
+ border-bottom-right-radius: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-bottom-right-radius);
+
+ &:hover {
+ background: var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDeleteHover-bbackground);
+
+ svg {
+ fill: var(--pp-pt-dsb-ptl-pt-ptm-pte-btdh-svg-fill) !important;
+ }
+ }
+ }
+ }
+
+ .btn-tag-extend {
+ display: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-display);
+ justify-content: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-justify-content);
+ align-items: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-align-items);
+ position: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-position);
+ top: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-top);
+ left: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-left);
+ z-index: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-z-index);
+ padding: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-padding);
+ box-shadow: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-box-shadow);
+ .common-colourful-background();
+ border-radius: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-border-radius);
+ overflow: var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-overflow);
+
+ > button {
+ height: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-height);
+ width: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-width);
+ border: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-border);
+ border-radius: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-border-radius);
+ padding: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-padding);
+ min-width: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-min-width);
+ font-size: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-font-size);
+ min-height: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-min-height);
+ background: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-background);
+ color: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-color);
+ border-right: var(--pp-pt-dsb-ptl-pt-ptm-bte-button-border-right);
+
+ &:last-child {
+ border-right: var(--pp-pt-dsb-ptl-pt-ptm-bte-buttonLastChild-border-right);
+ }
+
+ &:hover {
+ background: var(--pp-pt-dsb-ptl-pt-ptm-bte-buttonHover-background);
+ }
+ }
+
+ > input {
+ width: var(--pp-pt-dsb-ptl-pt-ptm-bte-input-width);
+ border: var(--pp-pt-dsb-ptl-pt-ptm-bte-input-border);
+ }
+
+ .input-number {
+ width: var(--pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-width);
+ border: var(--pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-border);
+ padding: var(--pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-padding);
+
+ .vue-number-input__button {
+ width: var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-width);
+ background: var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-background);
+ }
+
+ .vue-number-input__input {
+ height: var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-height);
+ border: var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-border);
+ padding: var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-padding);
+ }
+ }
+
+ input[type=number]::-webkit-inner-spin-button,
+ input[type=number]::-webkit-outer-spin-button {
+ opacity: 1;
+ }
+ }
+ }
+
+ .prompt-local-language {
+ margin-top: var(--pp-pt-dsb-ptl-pt-promptLocalLanguage-margin-top);
+ display: var(--pp-pt-dsb-ptl-pt-promptLocalLanguage-display);
+ justify-content: var(--pp-pt-dsb-ptl-pt-promptLocalLanguage-justify-content);
+ align-items: var(--pp-pt-dsb-ptl-pt-promptLocalLanguage-align-items);
+
+ .translate-to-local {
+ cursor: var(--pp-pt-dsb-ptl-pt-pll-translateToLocal-cursor);
+ }
+
+ .local-language {
+ font-size: var(--pp-pt-dsb-ptl-pt-pll-localLanguage-font-size);
+ color: var(--pp-pt-dsb-ptl-pt-pll-localLanguage-color);
+ margin-left: var(--pp-pt-dsb-ptl-pt-pll-localLanguage-margin-left);
+ pointer-events: var(--pp-pt-dsb-ptl-pt-pll-localLanguage-pointer-events);
+ }
+ }
+ }
+ }
+
+ input[type="text"], input[type="number"] {
+ display: var(--pp-pt-input-display);
+ overflow-y: var(--pp-pt-input-overflow-y);
+ height: var(--pp-pt-input-height);
+ padding: var(--pp-pt-input-padding);
+ border: var(--pp-pt-input-border);
+ appearance: var(--pp-pt-input-appearance);
+ background-color: var(--pp-pt-input-background-color);
+ font-size: var(--pp-pt-input-font-size);
+ line-height: var(--pp-pt-input-line-height);
+ font-family: var(--pp-pt-input-font-family);
+ font-weight: var(--pp-pt-input-font-weight);
+ border-radius: var(--pp-pt-input-border-radius);
+
+ &:focus {
+ box-shadow: var(--pp-pt-inputFocus-box-shadow);
+ border-color: var(--pp-pt-inputFocus-border-color);
+ }
+ }
+
+ .gradio-button {
+ max-width: var(--pp-pt-gradioButton-max-width) !important;
+ width: var(--pp-pt-gradioButton-width) !important;
+ padding: var(--pp-pt-gradioButton-padding) !important;
+ }
+ }
+
+ .prompt-append-list {
+ .common-popup-main(var(--pp-pt-promptAppendList-width), var(--pp-pt-promptAppendList-padding), var(--pp-pt-promptAppendList-position));
+ z-index: var(--pp-pt-promptAppendList-z-index);
+ background: var(--pp-pt-promptAppendList-background);
+
+ .prompt-append-group {
+ font-size: var(--pp-pt-pal-promptAppendGroup-font-size);
+ color: var(--pp-pt-pal-promptAppendGroup-color);
+ padding: var(--pp-pt-pal-promptAppendGroup-padding);
+ cursor: var(--pp-pt-pal-promptAppendGroup-cursor);
+ position: var(--pp-pt-pal-promptAppendGroup-position);
+
+ &:hover, &.selected {
+ .common-colourful-background();
+
+ .append-group-list {
+ display: var(--pp-pt-pal-paghs-appendGroupList-display);
+ }
+ }
+
+ .append-group-name {
+ display: var(--pp-pt-pal-pag-appendGroupName-display);
+ justify-content: var(--pp-pt-pal-pag-appendGroupName-justify-content);
+ align-items: var(--pp-pt-pal-pag-appendGroupName-align-items);
+ cursor: var(--pp-pt-pal-pag-appendGroupName-cursor);
+ flex-wrap: var(--pp-pt-pal-pag-appendGroupName-flex-wrap);
+ white-space: var(--pp-pt-pal-pag-appendGroupName-white-space);
+
+ .name-icon {
+ margin-right: var(--pp-pt-pal-pag-agn-nameIcon-margin-right);
+ }
+
+ .arrow-right {
+ margin-left: var(--pp-pt-pal-pag-agn-arrowRight-margin-left);
+
+ &::after {
+ content: var(--pp-pt-pal-pag-agn-arrowRightAfter-content);
+ display: var(--pp-pt-pal-pag-agn-arrowRightAfter-display);
+ width: var(--pp-pt-pal-pag-agn-arrowRightAfter-width);
+ height: var(--pp-pt-pal-pag-agn-arrowRightAfter-height);
+ border-top: var(--pp-pt-pal-pag-agn-arrowRightAfter-border-top);
+ border-bottom: var(--pp-pt-pal-pag-agn-arrowRightAfter-border-bottom);
+ border-left: var(--pp-pt-pal-pag-agn-arrowRightAfter-border-left);
+ }
+ }
+ }
+
+ .append-group-list {
+ .common-popup-main-background();
+ background: var(--pp-pt-pal-pag-appendGroupList-background);
+ display: var(--pp-pt-pal-pag-appendGroupList-display);
+ position: var(--pp-pt-pal-pag-appendGroupList-position);
+ top: var(--pp-pt-pal-pag-appendGroupList-top);
+ left: var(--pp-pt-pal-pag-appendGroupList-left);
+ height: var(--pp-pt-pal-pag-appendGroupList-height);
+ overflow: var(--pp-pt-pal-pag-appendGroupList-overflow);
+ overflow-y: var(--pp-pt-pal-pag-appendGroupList-overflow-y);
+
+ .append-item {
+ width: var(--pp-pt-pal-pag-agl-appendItem-width);
+ font-size: var(--pp-pt-pal-pag-agl-appendItem-font-size);
+ color: var(--pp-pt-pal-pag-agl-appendItem-color);
+ padding: var(--pp-pt-pal-pag-agl-appendItem-padding);
+ cursor: var(--pp-pt-pal-pag-agl-appendItem-cursor);
+ position: var(--pp-pt-pal-pag-agl-appendItem-position);
+
+ &:hover, &.selected {
+ .common-colourful-background();
+ }
+
+ .tags-name {
+ width: var(--pp-pt-pal-pag-agl-ai-tagsName-width);
+ overflow: var(--pp-pt-pal-pag-agl-ai-tagsName-overflow);
+ text-overflow: var(--pp-pt-pal-pag-agl-ai-tagsName-text-overflow);
+ white-space: var(--pp-pt-pal-pag-agl-ai-tagsName-white-space);
+ display: var(--pp-pt-pal-pag-agl-ai-tagsName-display);
+ }
+ }
+ }
+
+ .tags-detail {
+ position: var(--pp-pt-pal-pag-tagsDetail-position);
+ right: var(--pp-pt-pal-pag-tagsDetail-right);
+ top: var(--pp-pt-pal-pag-tagsDetail-top);
+ width: var(--pp-pt-pal-pag-tagsDetail-width);
+ z-index: var(--pp-pt-pal-pag-tagsDetail-z-index);
+ .common-colourful-background();
+ .common-popup-main-background();
+ opacity: var(--pp-pt-pal-pag-tagsDetail-opacity);
+ padding: var(--pp-pt-pal-pag-tagsDetail-padding);
+ color: var(--pp-pt-pal-pag-tagsDetail-color);
+
+ .tags-list {
+ display: var(--pp-pt-pal-pag-td-tagsList-display);
+ justify-content: var(--pp-pt-pal-pag-td-tagsList-justify-content);
+ align-items: var(--pp-pt-pal-pag-td-tagsList-align-items);
+ flex-wrap: var(--pp-pt-pal-pag-td-tagsList-flex-wrap);
+
+ .item-wrap {
+ flex-basis: var(--pp-pt-pal-pag-td-tl-itemWrap-flex-basis);
+ height: var(--pp-pt-pal-pag-td-tl-itemWrap-height);
+ margin: var(--pp-pt-pal-pag-td-tl-itemWrap-margin);
+ padding: var(--pp-pt-pal-pag-td-tl-itemWrap-padding);
+ }
+
+ .tags-item {
+ margin-right: var(--pp-pt-pal-pag-td-tl-tagsItem-margin-right);
+ margin-bottom: var(--pp-pt-pal-pag-td-tl-tagsItem-margin-bottom);
+
+ &:last-child {
+ margin-right: var(--pp-pt-pal-pag-td-tl-tagsItemLastChild-margin-right);
+ }
+
+ .item-tag-value {
+ padding: var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-padding);
+ border-radius: var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-border-radius);
+ background: var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-background);
+ font-size: var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-font-size);
+ color: var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-color);
+ }
+
+ .item-tag-local-value {
+ font-size: var(--pp-pt-pal-pag-td-tl-ti-itemTagLocalValue-font-size);
+ margin-top: var(--pp-pt-pal-pag-td-tl-ti-itemTagLocalValue-margin-top);
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+.physton-prompt-favorite, .physton-prompt-history {
+ .common-popup-main(var(--ppfpph-width), var(--ppfpph-padding), var(--ppfpph-position));
+ z-index: var(--ppfpph-z-index);
+ top: var(--ppfpph-top);
+ left: var(--ppfpph-left);
+ overflow: var(--ppfpph-overflow);
+
+ .popup-tabs {
+ display: var(--ppfpph-popupTabs-display);
+ justify-content: var(--ppfpph-popupTabs-justify-content);
+ align-items: var(--ppfpph-popupTabs-align-items);
+ border-top-left-radius: var(--ppfpph-popupTabs-border-top-left-radius);
+ border-top-right-radius: var(--ppfpph-popupTabs-border-top-right-radius);
+ overflow: var(--ppfpph-popupTabs-overflow);
+
+ .popup-tab {
+ padding: var(--ppfpph-pt-popupTab-padding);
+ cursor: var(--ppfpph-pt-popupTab-cursor);
+ position: var(--ppfpph-pt-popupTab-position);
+ flex: var(--ppfpph-pt-popupTab-flex);
+ border-bottom: var(--ppfpph-pt-popupTab-border-bottom);
+
+ &:hover, &.active {
+ .common-colourful-background();
+ border-bottom: var(--ppfpph-pt-popupTabHoverActive-border-bottom);
+ }
+
+ .tab-name, .tab-type, .tab-count {
+ text-align: var(--ppfpph-pt-pt-tntytc-text-align);
+ color: var(--ppfpph-pt-pt-tntytc-color);
+ }
+
+ .tab-name {
+ font-size: var(--ppfpph-pt-pt-tabName-font-size);
+ }
+
+ .tab-type {
+ font-size: var(--ppfpph-pt-pt-tabType-font-size);
+ margin-top: var(--ppfpph-pt-pt-tabType-margin-top);
+ }
+
+ .tab-count {
+ display: var(--ppfpph-pt-pt-tabCount-display);
+ }
+ }
+ }
+
+ .popup-detail {
+ position: var(--ppfpph-popupDetail-position);
+ left: var(--ppfpph-popupDetail-left);
+ top: var(--ppfpph-popupDetail-top);
+ width: var(--ppfpph-popupDetail-width);
+ z-index: var(--ppfpph-popupDetail-z-index);
+ .common-colourful-background();
+ .common-popup-main-background();
+ padding: var(--ppfpph-popupDetail-padding);
+ color: var(--ppfpph-popupDetail-color);
+
+ .popup-item-tags {
+ display: var(--ppfpph-pd-popupItemTags-display);
+ justify-content: var(--ppfpph-pd-popupItemTags-justify-content);
+ align-items: var(--ppfpph-pd-popupItemTags-align-items);
+ flex-wrap: var(--ppfpph-pd-popupItemTags-flex-wrap);
+
+ .item-wrap {
+ flex-basis: var(--ppfpph-pd-pit-itemWrap-flex-basis);
+ height: var(--ppfpph-pd-pit-itemWrap-height);
+ margin: var(--ppfpph-pd-pit-itemWrap-margin);
+ padding: var(--ppfpph-pd-pit-itemWrap-padding);
+ }
+
+ .item-tag {
+ margin-right: var(--ppfpph-pd-pit-itemTag-margin-right);
+ margin-bottom: var(--ppfpph-pd-pit-itemTag-margin-bottom);
+
+ &:last-child {
+ margin-right: var(--ppfpph-pd-pit-itemTagLastChild-margin-right);
+ }
+
+ .item-tag-value {
+ padding: var(--ppfpph-pd-pit-it-itemTagValue-padding);
+ border-radius: var(--ppfpph-pd-pit-it-itemTagValue-border-radius);
+ background: var(--ppfpph-pd-pit-it-itemTagValue-background);
+ font-size: var(--ppfpph-pd-pit-it-itemTagValue-font-size);
+ color: var(--ppfpph-pd-pit-it-itemTagValue-color);
+ }
+
+ .item-tag-local-value {
+ font-size: var(--ppfpph-pd-pit-it-it-localValue-font-size);
+ margin-top: var(--ppfpph-pd-pit-it-it-localValue-margin-top);
+ }
+ }
+ }
+ }
+
+ .popup-tab-content {
+ display: var(--ppfpph-popupTabContent-display);
+ width: var(--ppfpph-popupTabContent-width);
+ height: var(--ppfpph-popupTabContent-height);
+
+ &.active {
+ display: var(--ppfpph-popupTabContentActive-display);
+ }
+
+ .content-list {
+ width: var(--ppfpph-ptc-contentList-width);
+ height: var(--ppfpph-ptc-contentList-height);
+ overflow: var(--ppfpph-ptc-contentList-overflow);
+ overflow-y: var(--ppfpph-ptc-contentList-overflow-y);
+
+ .clear-btn {
+ background: var(--ppfpph-ptc-cl-clearBtn-background);
+ position: var(--ppfpph-ptc-cl-clearBtn-position);
+ top: var(--ppfpph-ptc-cl-clearBtn-top);
+ padding: var(--ppfpph-ptc-cl-clearBtn-padding);
+ cursor: var(--ppfpph-ptc-cl-clearBtn-cursor);
+ border-bottom: var(--ppfpph-ptc-cl-clearBtn-border-bottom); // 6772FF
+ color: var(--ppfpph-ptc-cl-clearBtn-color);
+ text-align: var(--ppfpph-ptc-cl-clearBtn-text-align);
+ display: var(--ppfpph-ptc-cl-clearBtn-display);
+ justify-content: var(--ppfpph-ptc-cl-clearBtn-justify-content);
+ align-items: var(--ppfpph-ptc-cl-clearBtn-align-items);
+
+ &:hover {
+ border-bottom: var(--ppfpph-ptc-cl-clearBtnHover-border-bottom);
+ font-weight: var(--ppfpph-ptc-cl-clearBtnHover-font-weight);
+ }
+
+ .set-icon-svg(var(--ppfpph-ptc-cl-cb-iconSvgRemove-width), var(--ppfpph-ptc-cl-cb-iconSvgRemove-height), var(--ppfpph-ptc-cl-cb-iconSvgRemove-color), icon-svg-remove);
+ }
+
+ .content-item {
+ padding: var(--ppfpph-ptc-cl-contentItem-padding);
+ border-bottom: var(--ppfpph-ptc-cl-contentItem-border-bottom);
+ cursor: var(--ppfpph-ptc-cl-contentItem-cursor);
+
+ &:hover {
+ background: var(--ppfpph-ptc-cl-contentItemHover-background);
+
+ .item-prompt {
+ overflow: var(--ppfpph-ptc-cl-cih-itemPrompt-overflow);
+ white-space: var(--ppfpph-ptc-cl-cih-itemPrompt-white-space);
+ }
+ }
+
+ .item-header {
+ display: var(--ppfpph-ptc-cl-ci-itemHeader-display);
+ justify-content: var(--ppfpph-ptc-cl-ci-itemHeader-justify-content);
+ align-items: var(--ppfpph-ptc-cl-ci-itemHeader-align-items);
+ margin-bottom: var(--ppfpph-ptc-cl-ci-itemHeader-margin-bottom);
+
+ .item-header-left, .item-header-right {
+ display: var(--ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-display);
+ justify-content: var(--ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-justify-content);
+ align-items: var(--ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-align-items);
+
+ .set-icon-svg(var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-width), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-height), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-color), icon-svg-remove);
+ .set-icon-svg(var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-width), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-height), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-color), icon-svg-favorite-yes);
+ .set-icon-svg(var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-width), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-height), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-color), icon-svg-favorite-no);
+ .set-icon-svg(var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-width), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-height), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-color), icon-svg-copy);
+ .set-icon-svg(var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-width), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-height), var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-color), icon-svg-use);
+
+ > div {
+ margin-right: var(--ppfpph-ptc-cl-ci-ih-ihlr-div-margin-right);
+ font-size: var(--ppfpph-ptc-cl-ci-ih-ihlr-div-font-size);
+ color: var(--ppfpph-ptc-cl-ci-ih-ihlr-div-color);
+
+ &:last-child {
+ margin-right: var(--ppfpph-ptc-cl-ci-ih-ihlr-divLastChild-margin-right);
+ }
+ }
+ }
+
+ .item-header-left {
+ flex: var(--ppfpph-ptc-cl-ci-ih-itemHeaderLeft-flex);
+
+ .item-header-index {
+ background: var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-background);
+ padding: var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-padding);
+ width: var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-width);
+ text-align: var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-text-align);
+ }
+
+ .item-header-time {
+ width: var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderTime-width);
+ }
+
+ .item-header-name {
+ flex: var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderName-flex);
+
+ .header-name-input {
+ background: var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-background);
+ border: var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-border);
+ height: var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-height);
+ padding: var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-padding);
+ width: var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-width);
+ font-size: var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-font-size);
+ color: var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-color);
+
+ &:focus {
+ outline: var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInputFocus-outline);
+ border-color: var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInputFocus-border-color);
+ }
+ }
+ }
+ }
+
+ .item-header-right {
+ font-size: var(--ppfpph-ptc-cl-ci-ih-itemHeaderRight-font-size);
+ color: var(--ppfpph-ptc-cl-ci-ih-itemHeaderRight-color);
+ }
+ }
+
+ .item-prompt {
+ margin-top: var(--ppfpph-ptc-cl-ci-itemPrompt-margin-top);
+ font-size: var(--ppfpph-ptc-cl-ci-itemPrompt-font-size);
+ line-height: var(--ppfpph-ptc-cl-ci-itemPrompt-line-height);
+ color: var(--ppfpph-ptc-cl-ci-itemPrompt-color);
+ overflow: var(--ppfpph-ptc-cl-ci-itemPrompt-overflow);
+ text-overflow: var(--ppfpph-ptc-cl-ci-itemPrompt-text-overflow);
+ white-space: var(--ppfpph-ptc-cl-ci-itemPrompt-white-space);
+ }
+ }
+ }
+
+ .content-empty {
+ height: var(--ppfpph-ptc-contentEmpty-height);
+ display: var(--ppfpph-ptc-contentEmpty-display);
+ justify-content: var(--ppfpph-ptc-contentEmpty-justify-content);
+ align-items: var(--ppfpph-ptc-contentEmpty-align-items);
+
+ .set-icon-svg(var(--ppfpph-ptc-ce-iconSvgLoading-width), var(--ppfpph-ptc-ce-iconSvgLoading-height), var(--ppfpph-ptc-ce-iconSvgLoading-color), icon-svg-loading);
+
+ span {
+ font-size: var(--ppfpph-ptc-ce-span-font-size);
+ color: var(--ppfpph-ptc-ce-span-color);
+ }
+ }
+ }
+}
+
+.physton-prompt-select-language {
+ .common-popup-bg();
+
+ .language-main {
+ height: var(--ppsl-languageMain-height);
+ position: var(--ppsl-languageMain-position);
+
+ .language-close {
+ .common-popup-close();
+ }
+
+ .language-list {
+ height: var(--ppsl-languageList-height);
+ overflow: var(--ppsl-languageList-overflow);
+ overflow-y: var(--ppsl-languageList-overflow-y);
+ display: var(--ppsl-languageList-display);
+ position: var(--ppsl-languageList-position);
+ box-shadow: var(--ppsl-languageList-box-shadow);
+ border-radius: var(--ppsl-languageList-border-radius);
+ background-color: var(--ppsl-languageList-background-color);
+ transition: var(--ppsl-languageList-transition);
+
+ .language-item {
+ font-size: var(--ppsl-ll-languageItem-font-size);
+ color: var(--ppsl-ll-languageItem-color);
+ padding: var(--ppsl-ll-languageItem-padding);
+ cursor: var(--ppsl-ll-languageItem-cursor);
+
+ &:hover, &.selected {
+ .common-colourful-background();
+ }
+ }
+ }
+ }
+}
+
+.physton-prompt-format {
+ .common-popup-bg();
+
+ .format-main {
+ min-height: var(--ppf-formatMain-min-height);
+ position: var(--ppf-formatMain-position);
+
+ .format-close {
+ .common-popup-close();
+ }
+
+ .format-list {
+ display: var(--ppf-fm-formatList-display);
+ position: var(--ppf-fm-formatList-position);
+ box-shadow: var(--ppf-fm-formatList-box-shadow);
+ border-radius: var(--ppf-fm-formatList-border-radius);
+ background-color: var(--ppf-fm-formatList-background-color);
+ transition: var(--ppf-fm-formatList-transition);
+ padding: var(--ppf-fm-formatList-padding);
+
+ .format-item {
+ display: var(--ppf-fm-fl-formatItem-display);
+ justify-content: var(--ppf-fm-fl-formatItem-justify-content);
+ align-items: var(--ppf-fm-fl-formatItem-align-items);
+ margin-top: var(--ppf-fm-fl-formatItem-margin-top);
+
+ &:first-child {
+ margin-top: var(--ppf-fm-fl-formatItemFirstChild-margin-top);
+ }
+
+ .format-checkbox {
+ position: var(--ppf-fm-fl-fi-formatCheckbox-position);
+ box-shadow: var(--ppf-fm-fl-fi-formatCheckbox-box-shadow);
+ border: var(--ppf-fm-fl-fi-formatCheckbox-border);
+ border-radius: var(--ppf-fm-fl-fi-formatCheckbox-border-radius);
+ background-color: var(--ppf-fm-fl-fi-formatCheckbox-background-color);
+ line-height: var(--ppf-fm-fl-fi-formatCheckbox-line-height);
+ width: var(--ppf-fm-fl-fi-formatCheckbox-width);
+ height: var(--ppf-fm-fl-fi-formatCheckbox-height);
+ margin-top: var(--ppf-fm-fl-fi-formatCheckbox-margin-top);
+
+ &:checked {
+ border-color: var(--ppf-fm-fl-fi-formatCheckboxChecked-border-color);
+ background-color: var(--ppf-fm-fl-fi-formatCheckboxChecked-background-color);
+ }
+ }
+
+ .format-desc {
+ font-size: var(--ppf-fm-fl-fi-formatDesc-font-size);
+ line-height: var(--ppf-fm-fl-fi-formatDesc-line-height);
+ color: var(--ppf-fm-fl-fi-formatDesc-color);
+ margin-left: var(--ppf-fm-fl-fi-formatDesc-margin-left);
+ }
+ }
+ }
+ }
+}
+
+.physton-packages-state {
+ .common-popup-bg();
+ z-index: var(--pps-z-index);
+
+ .state-main {
+ min-height: var(--pps-stateMain-min-height);
+ position: var(--pps-stateMain-position);
+
+ .state-close {
+ .common-popup-close();
+ }
+
+ .state-body {
+ display: var(--pps-sm-stateBody-display);
+ position: var(--pps-sm-stateBody-position);
+ box-shadow: var(--pps-sm-stateBody-box-shadow);
+ border-radius: var(--pps-sm-stateBody-border-radius);
+ background-color: var(--pps-sm-stateBody-background-color);
+ transition: var(--pps-sm-stateBody-transition);
+ padding: var(--pps-sm-stateBody-padding);
+ font-size: var(--pps-sm-stateBody-font-size);
+ color: var(--pps-sm-stateBody-color);
+
+ .today-now-show {
+ position: var(--pps-sm-sb-todayNowShow-position);
+ right: var(--pps-sm-sb-todayNowShow-right);
+ top: var(--pps-sm-sb-todayNowShow-top);
+
+ label {
+ display: var(--pps-sm-sb-tns-label-display);
+ justify-content: var(--pps-sm-sb-tns-label-justify-content);
+ align-items: var(--pps-sm-sb-tns-label-align-items);
+ color: var(--pps-sm-sb-tns-label-color);
+ }
+
+ input[type='checkbox'] {
+ margin-right: var(--pps-sm-sb-tns-input-margin-right);
+ width: var(--pps-sm-sb-tns-input-width);
+ height: var(--pps-sm-sb-tns-input-height);
+ }
+ }
+
+ .state-body-name {
+ font-size: var(--pps-sm-sb-stateBodyName-font-size);
+ font-weight: var(--pps-sm-sb-stateBodyName-font-weight);
+ margin-bottom: var(--pps-sm-sb-stateBodyName-margin-bottom);
+ }
+
+ .state-body-language {
+ color: var(--pps-sm-sb-stateBodyLanguage-color);
+ background: var(--pps-sm-sb-stateBodyLanguage-background);
+ border: var(--pps-sm-sb-stateBodyLanguage-border);
+ padding: var(--pps-sm-sb-stateBodyLanguage-padding);
+ line-height: var(--pps-sm-sb-stateBodyLanguage-line-height);
+ border-radius: var(--pps-sm-sb-stateBodyLanguage-border-radius);
+ margin-bottom: var(--pps-sm-sb-stateBodyLanguage-margin-bottom);
+ display: var(--pps-sm-sb-stateBodyLanguage-display);
+ width: var(--pps-sm-sb-stateBodyLanguage-width);
+ cursor: var(--pps-sm-sb-stateBodyLanguage-cursor);
+
+ &:hover {
+ background: var(--pps-sm-sb-stateBodyLanguageHover-background);
+ border-color: var(--pps-sm-sb-stateBodyLanguageHover-border-color);
+ }
+
+ .set-icon-svg(var(--pps-sm-sb-sbl-iconSvgI18n-width), var(--pps-sm-sb-sbl-iconSvgI18n-height), var(--pps-sm-sb-sbl-iconSvgI18n-color), icon-svg-i18n);
+
+ .icon-svg-i18n {
+ margin: var(--pps-sm-sb-sbl-iconSvgI18n-margin);
+ }
+ }
+
+ .state-body-desc {
+ color: var(--pps-sm-sb-stateBodyDesc-color);
+ font-size: var(--pps-sm-sb-stateBodyDesc-font-size);
+ white-space: var(--pps-sm-sb-stateBodyDesc-white-space);
+ word-break: var(--pps-sm-sb-stateBodyDesc-word-break);
+ }
+
+ .package-list {
+ margin-top: var(--pps-sm-sb-packageList-margin-top);
+ border: var(--pps-sm-sb-packageList-border);
+ padding: var(--pps-sm-sb-packageList-padding);
+
+ .package-item {
+ padding: var(--pps-sm-sb-pl-packageItem-padding);
+ display: var(--pps-sm-sb-pl-packageItem-display);
+ justify-content: var(--pps-sm-sb-pl-packageItem-justify-content);
+ align-items: var(--pps-sm-sb-pl-packageItem-align-items);
+
+ .package-name {
+ width: var(--pps-sm-sb-pl-pi-packageName-width);
+ }
+
+ .package-state {
+ width: var(--pps-sm-sb-pl-pi-packageState-width);
+
+ &.installed {
+
+ }
+
+ &.not_install {
+ color: var(--pps-sm-sb-pl-pi-packageStateNotInstall-color);
+ }
+ }
+
+ .package-command {
+ white-space: var(--pps-sm-sb-pl-pi-packageCommand-white-space);
+ }
+ }
+ }
+
+ .btn-packages-install {
+ cursor: var(--pps-sm-sb-btnPackagesInstall-cursor);
+ display: var(--pps-sm-sb-btnPackagesInstall-display);
+ padding: var(--pps-sm-sb-btnPackagesInstall-padding);
+ height: var(--pps-sm-sb-btnPackagesInstall-height);
+ line-height: var(--pps-sm-sb-btnPackagesInstall-line-height);
+ color: var(--pps-sm-sb-btnPackagesInstall-color);
+ .common-colourful-background();
+ border-radius: var(--pps-sm-sb-btnPackagesInstall-border-radius);
+ margin-top: var(--pps-sm-sb-btnPackagesInstall-margin-top);
+
+ .set-icon-svg(var(--pps-sm-sb-bpi-iconSvgLoading-width), var(--pps-sm-sb-bpi-iconSvgLoading-height), var(--pps-sm-sb-bpi-iconSvgLoading-color), icon-svg-loading);
+ }
+
+ .install-result {
+ margin-top: var(--pps-sm-sb-installResult-margin-top);
+ border: var(--pps-sm-sb-installResult-border);
+ padding: var(--pps-sm-sb-installResult-padding);
+
+ .result-content {
+ margin-top: var(--pps-sm-sb-ir-resultContent-margin-top);
+ white-space: var(--pps-sm-sb-ir-resultContent-white-space);
+ color: var(--pps-sm-sb-ir-resultContent-color);
+ line-height: var(--pps-sm-sb-ir-resultContent-line-height);
+ overflow: var(--pps-sm-sb-ir-resultContent-overflow);
+ overflow-y: var(--pps-sm-sb-ir-resultContent-overflow-y);
+ border: var(--pps-sm-sb-ir-resultContent-border);
+ padding: var(--pps-sm-sb-ir-resultContent-padding);
+ max-height: var(--pps-sm-sb-ir-resultContent-max-height);
+ }
+ }
+ }
+ }
+}
+
+.physton-prompt-translate-setting {
+ .common-popup-bg();
+
+ .translate-setting-main {
+ .common-popup-main();
+
+ .translate-setting-content {
+ max-height: var(--ppts-tsm-translateSettingContent-max-height);
+ overflow: var(--ppts-tsm-translateSettingContent-overflow);
+ overflow-y: var(--ppts-tsm-translateSettingContent-overflow-y);
+ padding: var(--ppts-tsm-translateSettingContent-padding);
+ border: var(--ppts-tsm-translateSettingContent-border);
+ border-radius: var(--ppts-tsm-translateSettingContent-border-radius);
+
+ // 始终显示滚动条
+ &::-webkit-scrollbar {
+ width: var(--ppts-tsm-translateSettingContentWebkitScrollbar-width);
+ height: var(--ppts-tsm-translateSettingContentWebkitScrollbar-height);
+ }
+ }
+
+ .setting-line {
+ display: var(--ppts-tsm-settingLine-display);
+ justify-content: var(--ppts-tsm-settingLine-justify-content);
+ align-items: var(--ppts-tsm-settingLine-align-items);
+ margin-bottom: var(--ppts-tsm-settingLine-margin-bottom);
+
+ .line-title {
+ font-size: var(--ppts-tsm-sl-lineTitle-font-size);
+ font-weight: var(--ppts-tsm-sl-lineTitle-font-weight);
+ color: var(--ppts-tsm-sl-lineTitle-color);
+ width: var(--ppts-tsm-sl-lineTitle-width);
+ line-height: var(--ppts-tsm-sl-lineTitle-line-height);
+ }
+
+ .line-content {
+ flex: var(--ppts-tsm-sl-lineContent-flex);
+ font-size: var(--ppts-tsm-sl-lineContent-font-size);
+ color: var(--ppts-tsm-sl-lineContent-color);
+
+ span, p {
+ font-size: var(--ppts-tsm-sl-lc-spanP-font-size);
+ color: var(--ppts-tsm-sl-lc-spanP-color);
+ }
+
+ p {
+ margin: var(--ppts-tsm-sl-lc-p-margin);
+ }
+
+ a {
+ font-size: var(--ppts-tsm-sl-lc-a-font-size);
+ color: var(--ppts-tsm-sl-lc-a-color);
+ text-decoration: var(--ppts-tsm-sl-lc-a-text-decoration);
+ }
+
+ .common-red {
+ color: var(--ppts-tsm-sl-lc-commonRed-color);
+ font-size: var(--ppts-tsm-sl-lc-commonRed-font-size);
+ }
+
+ .api-name {
+ display: var(--ppts-tsm-sl-lc-apiName-display);
+ .common-colourful-background();
+ color: var(--ppts-tsm-sl-lc-apiName-color);
+ border-radius: var(--ppts-tsm-sl-lc-apiName-border-radius);
+ padding: var(--ppts-tsm-sl-lc-apiName-padding);
+ }
+
+ input[type='text'], textarea, select {
+ background: var(--ppts-tsm-sl-lc-inputTextareaSelect-background);
+ border: var(--ppts-tsm-sl-lc-inputTextareaSelect-border);
+ padding: var(--ppts-tsm-sl-lc-inputTextareaSelect-padding);
+ width: var(--ppts-tsm-sl-lc-inputTextareaSelect-width);
+ font-size: var(--ppts-tsm-sl-lc-inputTextareaSelect-font-size);
+ color: var(--ppts-tsm-sl-lc-inputTextareaSelect-color);
+ resize: var(--ppts-tsm-sl-lc-inputTextareaSelect-resize);
+
+ &:focus {
+ outline: var(--ppts-tsm-sl-lc-inputTextareaSelectFocus-outline);
+ border-color: var(--ppts-tsm-sl-lc-inputTextareaSelectFocus-border-color);
+ }
+ }
+
+ .onlyCsvOnAuto {
+ cursor: var(--ppts-tsm-sl-lc-onlyCsvOnAuto-cursor);
+ margin: var(--ppts-tsm-sl-lc-onlyCsvOnAuto-margin);
+ display: var(--ppts-tsm-sl-lc-onlyCsvOnAuto-display);
+ justify-content: var(--ppts-tsm-sl-lc-onlyCsvOnAuto-justify-content);
+ align-items: var(--ppts-tsm-sl-lc-onlyCsvOnAuto-align-items);
+
+ input[type='checkbox'] {
+ margin-right: var(--ppts-tsm-sl-lc-ocoa-input-margin-right);
+ width: var(--ppts-tsm-sl-lc-ocoa-input-width);
+ height: var(--ppts-tsm-sl-lc-ocoa-input-height);
+ }
+
+ span {
+ color: var(--ppts-tsm-sl-lc-ocoa-span-color);
+ }
+ }
+
+ .line-row {
+ display: var(--ppts-tsm-sl-lc-lineRow-display);
+ justify-content: var(--ppts-tsm-sl-lc-lineRow-justify-content);
+
+ > * {
+ margin-left: var(--ppts-tsm-sl-lc-lineRowAny-margin-left);
+
+ &:first-child {
+ margin-left: var(--ppts-tsm-sl-lc-lineRowAnyLastChild-margin-left);
+ }
+ }
+ }
+
+ .refresh-btn {
+ cursor: var(--ppts-tsm-sl-lc-refreshBtn-cursor);
+ width: var(--ppts-tsm-sl-lc-refreshBtn-width);
+ height: var(--ppts-tsm-sl-lc-refreshBtn-height);
+ background: var(--ppts-tsm-sl-lc-refreshBtn-background);
+ display: var(--ppts-tsm-sl-lc-refreshBtn-display);
+ justify-content: var(--ppts-tsm-sl-lc-refreshBtn-justify-content);
+ align-items: var(--ppts-tsm-sl-lc-refreshBtn-align-items);
+ border-radius: var(--ppts-tsm-sl-lc-refreshBtn-border-radius);
+
+ .set-icon-svg(var(--ppts-tsm-sl-lc-rb-iconSvgLoading-width), var(--ppts-tsm-sl-lc-rb-iconSvgLoading-height), var(--ppts-tsm-sl-lc-rb-iconSvgLoading-color), icon-svg-loading);
+ .set-icon-svg(var(--ppts-tsm-sl-lc-rb-iconSvgRefresh-width), var(--ppts-tsm-sl-lc-rb-iconSvgRefresh-height), var(--ppts-tsm-sl-lc-rb-iconSvgRefresh-color), icon-svg-refresh);
+ }
+
+ .test-input {
+ height: var(--ppts-tsm-sl-lc-testInput-height);
+ }
+
+ .test-btn {
+ cursor: var(--ppts-tsm-sl-lc-testBtn-cursor);
+ display: var(--ppts-tsm-sl-lc-testBtn-display);
+ padding: var(--ppts-tsm-sl-lc-testBtn-padding);
+ height: var(--ppts-tsm-sl-lc-testBtn-height);
+ line-height: var(--ppts-tsm-sl-lc-testBtn-line-height);
+ color: var(--ppts-tsm-sl-lc-testBtn-color);
+ background: var(--ppts-tsm-sl-lc-testBtn-background);
+ border-radius: var(--ppts-tsm-sl-lc-testBtn-border-radius);
+
+ .set-icon-svg(var(--ppts-tsm-sl-lc-tb-iconSvgLoading-width), var(--ppts-tsm-sl-lc-tb-iconSvgLoading-height), var(--ppts-tsm-sl-lc-tb-iconSvgLoading-color), icon-svg-loading);
+ }
+
+ .translate-error {
+ color: var(--ppts-tsm-sl-lc-translateError-color);
+ font-size: var(--ppts-tsm-sl-lc-translateError-font-size);
+ margin-bottom: var(--ppts-tsm-sl-lc-translateError-margin-bottom);
+ }
+
+ .help-list {
+ font-size: var(--ppts-tsm-sl-lc-helpList-font-size);
+ line-height: var(--ppts-tsm-sl-lc-helpList-line-height);
+
+ .help-item {
+ margin-bottom: var(--ppts-tsm-sl-lc-hl-helpItem-margin-bottom);
+
+ &:last-child {
+ margin-bottom: var(--ppts-tsm-sl-lc-hl-helpItemAnyLastChild-margin-bottom);
+ }
+
+ a {
+ color: var(--ppts-tsm-sl-lc-hl-hi-a-color);
+ text-decoration: var(--ppts-tsm-sl-lc-hl-hi-a-text-decoration);
+ font-size: var(--ppts-tsm-sl-lc-hl-hi-a-font-size);
+ border-bottom: var(--ppts-tsm-sl-lc-hl-hi-a-border-bottom);
+ padding-bottom: var(--ppts-tsm-sl-lc-hl-hi-a-padding-bottom);
+
+ &:hover {
+ color: var(--ppts-tsm-sl-lc-hl-hi-aHover-color);
+ border-bottom-color: var(--ppts-tsm-sl-lc-hl-hi-aHover-border-bottom-color);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .setting-btns {
+ display: var(--ppts-tsm-settingBtns-display);
+ justify-content: var(--ppts-tsm-settingBtns-justify-content);
+ align-items: var(--ppts-tsm-settingBtns-align-items);
+ margin-top: var(--ppts-tsm-settingBtns-margin-top);
+
+ .translate-save {
+ cursor: var(--ppts-tsm-sb-translateSave-cursor);
+ display: var(--ppts-tsm-sb-translateSave-display);
+ padding: var(--ppts-tsm-sb-translateSave-padding);
+ height: var(--ppts-tsm-sb-translateSave-height);
+ line-height: var(--ppts-tsm-sb-translateSave-line-height);
+ color: var(--ppts-tsm-sb-translateSave-color);
+ .common-colourful-background();
+ border-radius: var(--ppts-tsm-sb-translateSave-border-radius);
+ margin-right: var(--ppts-tsm-sb-translateSave-margin-right);
+ }
+
+ .translate-close {
+ cursor: var(--ppts-tsm-sb-translateClose-cursor);
+ display: var(--ppts-tsm-sb-translateClose-display);
+ padding: var(--ppts-tsm-sb-translateClose-padding);
+ height: var(--ppts-tsm-sb-translateClose-height);
+ line-height: var(--ppts-tsm-sb-translateClose-line-height);
+ color: var(--ppts-tsm-sb-translateClose-color);
+ background: var(--ppts-tsm-sb-translateClose-background);
+ border: var(--ppts-tsm-sb-translateClose-border);
+ border-radius: var(--ppts-tsm-sb-translateClose-border-radius);
+ }
+ }
+ }
+}
+
+.physton-prompt-extension-css {
+ .common-popup-bg();
+ justify-content: var(--ppec-justify-content);
+ align-items: var(--ppec-align-items);
+ background: var(--ppec-background);
+
+ .extension-main {
+ height: var(--ppec-extensionMain-height);
+ position: var(--ppec-extensionMain-position);
+ margin-right: var(--ppec-extensionMain-margin-right);
+ margin-bottom: var(--ppec-extensionMain-margin-bottom);
+
+ .extension-close {
+ .common-popup-close();
+ }
+
+ .extension-list {
+ height: var(--ppec-em-extensionList-height);
+ overflow: var(--ppec-em-extensionList-overflow);
+ overflow-y: var(--ppec-em-extensionList-overflow-y);
+ display: var(--ppec-em-extensionList-display);
+ position: var(--ppec-em-extensionList-position);
+ box-shadow: var(--ppec-em-extensionList-box-shadow);
+ border-radius: var(--ppec-em-extensionList-border-radius);
+ background-color: var(--ppec-em-extensionList-background-color);
+ transition: var(--ppec-em-extensionList-transition);
+
+ .extension-table {
+ border: var(--ppec-em-el-extensionTable-border);
+
+ tr, td {
+ border: var(--ppec-em-el-et-trTd-border) !important;
+ margin: var(--ppec-em-el-et-trTd-margin) !important;
+ font-size: var(--ppec-em-el-et-trTd-font-size);
+ color: var(--ppec-em-el-et-trTd-color);
+ padding: var(--ppec-em-el-et-trTd-padding) !important;
+ background: var(--ppec-em-el-et-trTd-background) !important;
+
+ &:hover {
+ background: var(--ppec-em-el-et-trTdHover-background) !important;
+ }
+ }
+ }
+
+ .extension-item {
+ .extension-checkbox {
+ position: var(--ppec-em-el-ei-extensionCheckbox-position);
+ box-shadow: var(--ppec-em-el-ei-extensionCheckbox-box-shadow);
+ border: var(--ppec-em-el-ei-extensionCheckbox-border);
+ border-radius: var(--ppec-em-el-ei-extensionCheckbox-border-radius);
+ background-color: var(--ppec-em-el-ei-extensionCheckbox-background-color);
+ line-height: var(--ppec-em-el-ei-extensionCheckbox-line-height);
+ width: var(--ppec-em-el-ei-extensionCheckbox-width);
+ height: var(--ppec-em-el-ei-extensionCheckbox-height);
+
+ &:checked {
+ border-color: var(--ppec-em-el-ei-extensionCheckboxChecked-border-color);
+ background-color: var(--ppec-em-el-ei-extensionCheckboxChecked-background-color);
+ }
+ }
+
+ .extension-name, .extension-type, .extension-dir, .extension-author {
+ white-space: var(--ppec-em-el-ei-enEtEd-white-space);
+ overflow: var(--ppec-em-el-ei-enEtEd-overflow);
+ text-overflow: var(--ppec-em-el-ei-enEtEd-text-overflow);
+ }
+
+ .extension-name {
+ }
+
+ .extension-type {
+ }
+
+ .extension-dir {
+ }
+
+ .extension-author {
+ text-align: var(--ppec-em-el-ei-extensionAuthor-text-align);
+ }
+ }
+ }
+ }
+}
+
+.physton-chatgpt-prompt {
+ .common-popup-bg();
+
+ .chatgpt-main {
+ position: var(--pcp-chatgptMain-position);
+ width: var(--pcp-chatgptMain-width);
+
+ .chatgpt-close {
+ .common-popup-close();
+ }
+
+ .chatgpt-body {
+ display: var(--pcp-cm-chatgptBody-display);
+ position: var(--pcp-cm-chatgptBody-position);
+ box-shadow: var(--pcp-cm-chatgptBody-box-shadow);
+ border-radius: var(--pcp-cm-chatgptBody-border-radius);
+ background-color: var(--pcp-cm-chatgptBody-background-color);
+ transition: var(--pcp-cm-chatgptBody-transition);
+ padding: var(--pcp-cm-chatgptBody-padding);
+ font-size: var(--pcp-cm-chatgptBody-font-size);
+ color: var(--pcp-cm-chatgptBody-color);
+
+ .body-panel {
+ border: var(--pcp-cm-cb-bodyPanel-border);
+ border-radius: var(--pcp-cm-cb-bodyPanel-border-radius);
+ overflow: var(--pcp-cm-cb-bodyPanel-overflow);
+ margin-bottom: var(--pcp-cm-cb-bodyPanel-margin-bottom);
+
+ &.fold {
+ max-height: var(--pcp-cm-cb-bodyPanelFold-max-height);
+
+ .panel-unfold {
+ transform: var(--pcp-cm-cb-bpf-panelUnfold-transform);
+ }
+
+ .panel-content {
+ display: var(--pcp-cm-cb-bpf-panelContent-display);
+ }
+ }
+
+ .panel-header {
+ background: var(--pcp-cm-cb-bp-panelHeader-background);
+ width: var(--pcp-cm-cb-bp-panelHeader-width);
+ padding: var(--pcp-cm-cb-bp-panelHeader-padding);
+ box-sizing: var(--pcp-cm-cb-bp-panelHeader-box-sizing);
+ display: var(--pcp-cm-cb-bp-panelHeader-display);
+ justify-content: var(--pcp-cm-cb-bp-panelHeader-justify-content);
+ align-items: var(--pcp-cm-cb-bp-panelHeader-align-items);
+
+ .panel-unfold {
+ cursor: var(--pcp-cm-cb-bp-ph-panelUnfold-cursor);
+ margin-right: var(--pcp-cm-cb-bp-ph-panelUnfold-margin-right);
+ animation: var(--pcp-cm-cb-bp-ph-panelUnfold-animation);
+
+ .icon-svg-unfold {
+ display: var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-display);
+ justify-content: var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-justify-content);
+ align-items: var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-align-items);
+ }
+
+ .set-icon-svg(var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-width), var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-height), var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-color), icon-svg-unfold);
+ }
+
+ .panel-title {
+ font-weight: var(--pcp-cm-cb-bp-ph-panelTitle-font-weight);
+ font-size: var(--pcp-cm-cb-bp-ph-panelTitle-font-size);
+ color: var(--pcp-cm-cb-bp-ph-panelTitle-color);
+ }
+ }
+
+ .panel-content {
+ padding: var(--pcp-cm-cb-bp-panelContent-padding);
+ }
+ }
+
+ .body-line {
+ display: var(--pcp-cm-cb-bodyLine-display);
+ justify-content: var(--pcp-cm-cb-bodyLine-justify-content);
+ align-items: var(--pcp-cm-cb-bodyLine-align-items);
+ margin-bottom: var(--pcp-cm-cb-bodyLine-margin-bottom);
+
+ &:last-child {
+ margin-bottom: var(--pcp-cm-cb-bodyLineLastChild-margin-bottom);
+ }
+
+ .line-title {
+ font-size: var(--pcp-cm-cb-bl-lineTitle-font-size);
+ font-weight: var(--pcp-cm-cb-bl-lineTitle-font-weight);
+ color: var(--pcp-cm-cb-bl-lineTitle-color);
+ width: var(--pcp-cm-cb-bl-lineTitle-width);
+ line-height: var(--pcp-cm-cb-bl-lineTitle-line-height);
+ margin-right: var(--pcp-cm-cb-bl-lineTitle-margin-right);
+
+ .line-subtitle {
+ font-size: var(--pcp-cm-cb-bl-lt-lineSubtitle-font-size);
+ font-weight: var(--pcp-cm-cb-bl-lt-lineSubtitle-font-weight);
+ color: var(--pcp-cm-cb-bl-lt-lineSubtitle-color);
+ }
+ }
+
+ .line-content {
+ flex: var(--pcp-cm-cb-bl-lineContent-flex);
+ font-size: var(--pcp-cm-cb-bl-lineContent-font-size);
+ color: var(--pcp-cm-cb-bl-lineContent-color);
+
+ &.text-right {
+ text-align: var(--pcp-cm-cb-bl-lc-textRight-text-align);
+ }
+
+ span, p {
+ font-size: var(--pcp-cm-cb-bl-lc-spanP-font-size);
+ color: var(--pcp-cm-cb-bl-lc-spanP-color);
+ }
+
+ p {
+ margin: var(--pcp-cm-cb-bl-lc-p-margin);
+ }
+
+ a {
+ font-size: var(--pcp-cm-cb-bl-lc-a-font-size);
+ color: var(--pcp-cm-cb-bl-lc-a-color);
+ text-decoration: var(--pcp-cm-cb-bl-lc-a-text-decoration);
+ }
+
+ input[type='text'], textarea, select {
+ background: var(--pcp-cm-cb-bl-lc-inputTextareaSelect-background);
+ border: var(--pcp-cm-cb-bl-lc-inputTextareaSelect-border);
+ padding: var(--pcp-cm-cb-bl-lc-inputTextareaSelect-padding);
+ width: var(--pcp-cm-cb-bl-lc-inputTextareaSelect-width);
+ font-size: var(--pcp-cm-cb-bl-lc-inputTextareaSelect-font-size);
+ color: var(--pcp-cm-cb-bl-lc-inputTextareaSelect-color);
+ resize: var(--pcp-cm-cb-bl-lc-inputTextareaSelect-resize);
+ box-sizing: var(--pcp-cm-cb-bl-lc-inputTextareaSelect-box-sizing);
+
+ &:focus {
+ outline: var(--pcp-cm-cb-bl-lc-inputTextareaSelectFocus-outline);
+ border-color: var(--pcp-cm-cb-bl-lc-inputTextareaSelectFocus-border-color);
+ }
+ }
+
+ textarea {
+ line-height: var(--pcp-cm-cb-bl-lc-textarea-line-height);
+ }
+
+ .common-btn {
+ cursor: var(--pcp-cm-cb-bl-lc-commonBtn-cursor);
+ display: var(--pcp-cm-cb-bl-lc-commonBtn-display);
+ padding: var(--pcp-cm-cb-bl-lc-commonBtn-padding);
+ height: var(--pcp-cm-cb-bl-lc-commonBtn-height);
+ line-height: var(--pcp-cm-cb-bl-lc-commonBtn-line-height);
+ color: var(--pcp-cm-cb-bl-lc-commonBtn-color);
+ .common-colourful-background();
+ border-radius: var(--pcp-cm-cb-bl-lc-commonBtn-border-radius);
+
+ .set-icon-svg(var(--pcp-cm-cb-bl-lc-cb-iconSvgLoading-width), var(--pcp-cm-cb-bl-lc-cb-iconSvgLoading-height), var(--pcp-cm-cb-bl-lc-cb-iconSvgLoading-color), icon-svg-loading);
+ }
+
+ .common-sub-btn {
+ cursor: var(--pcp-cm-cb-bl-lc-commonSubBtn-cursor);
+ display: var(--pcp-cm-cb-bl-lc-commonSubBtn-display);
+ padding: var(--pcp-cm-cb-bl-lc-commonSubBtn-padding);
+ height: var(--pcp-cm-cb-bl-lc-commonSubBtn-height);
+ line-height: var(--pcp-cm-cb-bl-lc-commonSubBtn-line-height);
+ color: var(--pcp-cm-cb-bl-lc-commonSubBtn-color);
+ background: var(--pcp-cm-cb-bl-lc-commonSubBtn-background);
+ border: var(--pcp-cm-cb-bl-lc-commonSubBtn-border);
+ border-radius: var(--pcp-cm-cb-bl-lc-commonSubBtn-border-radius);
+ }
+ }
+ }
+ }
+ }
+}
+
+.physton-about-prompt {
+ .common-popup-bg();
+
+ .about-main {
+ position: var(--pap-aboutMain-position);
+ width: var(--pap-aboutMain-width);
+
+ .about-close {
+ .common-popup-close();
+ }
+
+ .about-body {
+ display: var(--pap-cm-aboutBody-display);
+ position: var(--pap-cm-aboutBody-position);
+ box-shadow: var(--pap-cm-aboutBody-box-shadow);
+ border-radius: var(--pap-cm-aboutBody-border-radius);
+ background-color: var(--pap-cm-aboutBody-background-color);
+ transition: var(--pap-cm-aboutBody-transition);
+ padding: var(--pap-cm-aboutBody-padding);
+ font-size: var(--pap-cm-aboutBody-font-size);
+ color: var(--pap-cm-aboutBody-color);
+
+ a {
+ color: var(--pap-cm-ab-a-color);
+ text-decoration: var(--pap-cm-ab-a-text-decoration);
+ }
+
+ img {
+ margin-right: var(--pap-cm-ab-img-margin-right);
+ }
+
+ .body-title {
+ margin: var(--pap-cm-ab-bodyTitle-margin);
+ font-size: var(--pap-cm-ab-bodyTitle-font-size);
+ }
+
+ .has-new-version {
+ color: var(--pap-cm-ab-hasNewVersion-color);
+ animation: var(--pap-cm-ab-hasNewVersion-animation);
+ }
+
+ @keyframes blink {
+ 0% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: .8;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+
+ .version-list {
+ height: var(--pap-cm-ab-versionList-height);
+ overflow: var(--pap-cm-ab-versionList-overflow);
+ overflow-y: var(--pap-cm-ab-versionList-overflow-y);
+ border: var(--pap-cm-ab-versionList-border);
+ border-radius: var(--pap-cm-ab-versionList-border-radius);
+
+ .set-icon-svg(var(--pap-cm-ab-vl-iconSvgLoading-width), var(--pap-cm-ab-vl-iconSvgLoading-height), var(--pap-cm-ab-vl-iconSvgLoading-color), icon-svg-loading);
+
+ .version-item {
+ margin: var(--pap-cm-ab-vl-versionItem-margin);
+ padding: var(--pap-cm-ab-vl-versionItem-padding);
+ border-bottom: var(--pap-cm-ab-vl-versionItem-border-bottom);
+
+ .item-header {
+ display: var(--pap-cm-ab-vl-vi-itemHeader-display);
+ justify-content: var(--pap-cm-ab-vl-vi-itemHeader-justify-content);
+ align-items: var(--pap-cm-ab-vl-vi-itemHeader-align-items);
+
+ .version-sha {
+
+ }
+
+ .version-date {
+
+ }
+ }
+
+ .version-msg {
+ margin-top: var(--pap-cm-ab-vl-vi-versionMsg-margin-top);
+ color: var(--pap-cm-ab-vl-vi-versionMsg-color);
+ }
+ }
+ }
+ }
+ }
+}
+
+.physton-highlight-prompt {
+ background: var(--physton-highlight-prompt-background);
+}
+
+
+.physton-gradio-container {
+ &.light {
+ // 浅色主题
+ }
+
+ &.dark {
+ // 深色主题
+
+ // .physton-prompt
+ --pp-border: 1px solid rgba(255, 255, 255, .08);
+
+ // .physton-prompt .prompt-header
+ --pp-promptHeader-border-bottom: 1px dashed rgba(255, 255, 255, .08);
+ --pp-ph-iconSvgInput-color: rgba(255, 255, 255, .85);
+
+ // .physton-prompt .prompt-header .extend-btn-item
+ --pp-ph-ebi-iconSvgTranslate-color: #ff9900;
+ --pp-ph-ebi-iconSvgEnglish-color: #ff9900;
+ --pp-ph-ebi-iconSvgCopy-color: rgba(255, 255, 255, .85);
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group
+ --pp-ph-phe-ec-extendBtnGroup-color: rgba(255, 255, 255, .85);
+ --pp-ph-phe-ec-extendBtnGroup-background: rgba(255, 255, 255, .12);
+ --pp-ph-phe-ec-extendBtnGroup-border: 1px solid rgba(255, 255, 255, .08);
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content select, .select-btn
+ --pp-ph-phe-ec-selectSelectBtn-border: 1px solid rgba(255, 255, 255, .85);
+ --pp-ph-phe-ec-selectSelectBtn-background: #1f1f1f;
+ --pp-ph-phe-ec-selectSelectBtn-color: rgba(255, 255, 255, .85);
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content select:hover, .select-btn:hover
+ --pp-ph-phe-ec-selectSelectBtnHover-border-color: #1668dc;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn:hover
+ --pp-ph-phe-ec-selectBtnHover-background: #3c89e8;
+ --pp-ph-phe-ec-selectBtnHover-border-color: #3c89e8;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item .setting-box
+ --pp-ph-phe-ec-ebg-ebi-settingBox-background: #0c0c0c;
+ --pp-ph-sb-iconSvgRemoveSpace-color: #c5c5c5;
+ --pp-ph-sb-iconSvgTooltip-color: #c5c5c5;
+ --pp-ph-sb-iconSvgAbout-color: #c5c5c5;
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content input[type="checkbox"]
+ --pp-ph-phe-ec-inputCheckbox-border: 1px solid rgba(255, 255, 255, .08);
+ --pp-ph-phe-ec-inputCheckbox-background-color: rgba(255, 255, 255, .04);
+
+ // .physton-prompt .prompt-header .prompt-header-extend .extend-content .input-tag-append
+ --pp-ph-phe-ec-inputTagAppend-border: 1px solid rgba(255, 255, 255, 0.12);
+
+ // .physton-prompt .prompt-tags .prompt-local-language
+ --pp-pt-pll-iconSvgTranslate-color: rgba(255, 255, 255, .85);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-color: rgba(255, 255, 255, .85);
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-background: rgba(255, 255, 255, .12);
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border: 1px solid rgba(255, 255, 255, .08);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.neg-tag
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueNegTag-color: rgba(255, 255, 255, .85);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value:hover
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-border-color: rgba(255, 255, 255, .12);
+ --pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-background: rgba(255, 255, 255, .18);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete
+ -pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border: 1px solid rgba(255, 255, 255, .08);
+ --pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-background: rgba(255, 255, 255, .12);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-local-language .local-language
+ --pp-pt-dsb-ptl-pt-pll-localLanguage-color: rgba(255, 255, 255, .45);
+
+ // .physton-prompt .prompt-tags input[type="text"], input[type="number"]:focus
+ --pp-pt-inputFocus-border-color: rgba(255, 255, 255, .08);
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend
+ --pp-pt-dsb-ptl-pt-ptm-btnTagExtend-box-shadow: 0 0 3px #4a54ff;
+ --pp-pt-bte-iconSvgCopy-color: #c5c5c5;
+
+ // .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend .vue-number-input__button
+ --pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-background: #2a2a2a;
+
+ .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend {
+ background: #0c0c0c;
+
+ .input-number .vue-number-input__button {
+ &:after, &:before {
+ background-color: #fff !important;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/styles/main.less.REMOVED.git-id b/styles/main.less.REMOVED.git-id
deleted file mode 100644
index e31877e..0000000
--- a/styles/main.less.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-9a31b0506a52effe9cc6312a29f7a494d816eb00
\ No newline at end of file
diff --git a/styles/main.min.css b/styles/main.min.css
new file mode 100644
index 0000000..7088e9d
--- /dev/null
+++ b/styles/main.min.css
@@ -0,0 +1 @@
+.physton-gradio-container{--hoverScale120-animation:all 0.3s;--hoverScale120-hover-transform:scale(1.2);--hoverScale140-animation:all 0.3s;--hoverScale140-hover-transform:scale(1.4);--physton-common-red:#d81e06;--physton-common-blue:#4a54ff;--iconSvg-padding:1px;--iconSvg-box-sizing:border-box;--commonPopupBg-position:fixed;--commonPopupBg-top:0;--commonPopupBg-left:0;--commonPopupBg-width:100%;--commonPopupBg-height:100%;--commonPopupBg-z-index:2000;--commonPopupBg-display:flex;--commonPopupBg-justify-content:center;--commonPopupBg-align-items:center;--commonPopupBg-background:rgba(0, 0, 0, 0.5);--commonPopupMainBackground-box-shadow:0 0 3px 0 var(--physton-common-blue);--commonPopupMainBackground-border-radius:6px 6px 4px 4px;--commonPopupMainBackground-background-color:rgba(30, 30, 30, 0.9);--commonPopupMainBackground-transition:height 0.1s ease-in-out,width .1s ease-in-out;--commonPopupMain-height:auto;--commonPopupMain-margin:0;--commonPopupMain-color:#fff;--commonPopupClose-display:block;--commonPopupClose-padding:4px;--commonPopupClose-position:absolute;--commonPopupClose-right:-14px;--commonPopupClose-top:-14px;--commonPopupClose-background:rgba(255, 255, 255, 0.6);--commonPopupClose-border-radius:50%;--commonPopupClose-box-shadow:0 1px 5px 0 var(--physton-common-red);--commonPopupClose-cursor:pointer;--commonPopupClose-z-index:1;--commonPopupClose-hover-background:var(--physton-common-red);--commonPopupClose-iconSvgClose-width:auto;--commonPopupClose-iconSvgClose-height:20px;--commonPopupClose-iconSvgClose-color:#000;--commonColourfulBackground-background:var(--physton-common-blue) linear-gradient(315deg, #6772FF 0, #00F9E5 100%) center center;--commonColourfulBackground-background-size:104% 104%;--ppp-ppm-pastePopupTitle-font-size:14px;--ppp-ppm-pastePopupTitle-font-weight:bold;--ppp-ppm-pastePopupTitle-margin-bottom:10px;--ppp-ppm-pastePopupTitle-word-break:keep-all;--ppp-ppm-pastePopupTitle-white-space:nowrap;--ppp-ppm-pastePopupTitle-overflow:hidden;--ppp-ppm-ppb-pasteContent-background:rgba(30, 30, 30, 0.9);--ppp-ppm-ppb-pasteContent-border:1px solid #3c3c3c;--ppp-ppm-ppb-pasteContent-padding:4px;--ppp-ppm-ppb-pasteContent-width:100%;--ppp-ppm-ppb-pasteContent-font-size:14px;--ppp-ppm-ppb-pasteContent-color:#fff;--ppp-ppm-ppb-pasteContent-resize:none;--ppp-ppm-ppb-pasteContent-height:400px;--ppp-ppm-ppb-pasteContent-box-sizing:border-box;--ppp-ppm-ppb-pasteContent-hover-outline:none;--ppp-ppm-ppb-pasteContent-hover-border-color:var(--physton-common-blue);--ppp-ppm-ppb-pasteSubmit-border-radius:10px;--ppp-ppm-ppb-pasteSubmit-padding:10px;--ppp-ppm-ppb-pasteSubmit-margin-top:10px;--ppp-ppm-ppb-pasteSubmit-text-align:center;--ppp-ppm-ppb-pasteSubmit-color:#fff;--ppp-ppm-ppb-pasteSubmit-font-size:20px;--ppp-ppm-ppb-pasteSubmit-cursor:pointer;--ppp-ppm-ppb-pasteSubmit-display:flex;--ppp-ppm-ppb-pasteSubmit-justify-content:center;--ppp-ppm-ppb-pasteSubmit-align-items:center;--ppp-ppm-ppb-pasteSubmitHover-box-shadow:0 0 14px var(--physton-common-blue);--ppp-ppm-ppb-ps-iconSvgLoading-width:auto;--ppp-ppm-ppb-ps-iconSvgLoading-height:20px;--ppp-ppm-ppb-ps-iconSvgLoading-color:none;--pp-border:1px solid rgba(0, 0, 0, 0.04);--pp-padding:0;--pp-margin:5px 0;--pp-div-line-height:1;--pp-svg-display:inline-block;--pp-iconSvg-display:inline-block;--pp-iconSvg-line-height:0;--pp-promptMainFold-max-height:36px;--pp-pmf-promptUnfold-transform:rotate(180deg);--pp-pmf-promptTags-display:none;--pp-promptHeader-margin:0;--pp-promptHeader-padding:5px 10px;--pp-promptHeader-display:flex;--pp-promptHeader-justify-content:flex-start;--pp-promptHeader-align-items:center;--pp-promptHeader-border-bottom:1px dashed rgba(0, 0, 0, 0.04);--pp-promptHeader-flex-wrap:wrap;--pp-promptHeaderAny-margin-right:10px;--pp-promptHeaderAnyLastChild-margin-right:0;--pp-ph-promptUnfold-cursor:pointer;--pp-ph-promptUnfold-margin-right:2px;--pp-ph-promptUnfold-animation:all 0.3s;--pp-ph-pu-iconSvgUnfold-width:auto;--pp-ph-pu-iconSvgUnfold-height:20px;--pp-ph-pu-iconSvgUnfold-color:#02b7fd;--pp-ph-ebi-iconSvgI18n-width:auto;--pp-ph-ebi-iconSvgI18n-height:18px;--pp-ph-ebi-iconSvgI18n-color:#d81e06;--pp-ph-ebi-iconSvgSetting-width:auto;--pp-ph-ebi-iconSvgSetting-height:18px;--pp-ph-ebi-iconSvgSetting-color:#d81e06;--pp-ph-ebi-iconSvgHistory-width:auto;--pp-ph-ebi-iconSvgHistory-height:18px;--pp-ph-ebi-iconSvgHistory-color:#02b7fd;--pp-ph-ebi-iconSvgFavorite-width:auto;--pp-ph-ebi-iconSvgFavorite-height:18px;--pp-ph-ebi-iconSvgFavorite-color:#02b7fd;--pp-ph-ebi-iconSvgTranslate-width:auto;--pp-ph-ebi-iconSvgTranslate-height:18px;--pp-ph-ebi-iconSvgTranslate-color:#ad6800;--pp-ph-ebi-iconSvgEnglish-width:auto;--pp-ph-ebi-iconSvgEnglish-height:18px;--pp-ph-ebi-iconSvgEnglish-color:#ad6800;--pp-ph-ebi-iconSvgLoading-width:auto;--pp-ph-ebi-iconSvgLoading-height:18px;--pp-ph-ebi-iconSvgLoading-color:none;--pp-ph-ebi-iconSvgCopy-width:auto;--pp-ph-ebi-iconSvgCopy-height:18px;--pp-ph-ebi-iconSvgCopy-color:rgba(0, 0, 0, 0.88);--pp-ph-ebi-iconSvgRemove-width:auto;--pp-ph-ebi-iconSvgRemove-height:18px;--pp-ph-ebi-iconSvgRemove-color:#d81e06;--pp-ph-ebi-iconSvgChatgpt-width:auto;--pp-ph-ebi-iconSvgChatgpt-height:18px;--pp-ph-ebi-iconSvgChatgpt-color:#02b7fd;--pp-ph-sb-iconSvgApi-width:auto;--pp-ph-sb-iconSvgApi-height:22px;--pp-ph-sb-iconSvgApi-color:#d81e06;--pp-ph-sb-iconSvgFormat-width:auto;--pp-ph-sb-iconSvgFormat-height:22px;--pp-ph-sb-iconSvgFormat-color:#d81e06;--pp-ph-sb-iconSvgTheme-width:auto;--pp-ph-sb-iconSvgTheme-height:22px;--pp-ph-sb-iconSvgTheme-color:#02b7fd;--pp-ph-sb-iconSvgTranslate-width:auto;--pp-ph-sb-iconSvgTranslate-height:22px;--pp-ph-sb-iconSvgTranslate-color:#ad6800;--pp-ph-sb-iconSvgEnglish-width:auto;--pp-ph-sb-iconSvgEnglish-height:22px;--pp-ph-sb-iconSvgEnglish-color:#ad6800;--pp-ph-sb-iconSvgRemoveSpace-width:auto;--pp-ph-sb-iconSvgRemoveSpace-height:22px;--pp-ph-sb-iconSvgRemoveSpace-color:#1f2937;--pp-ph-sb-iconSvgTooltip-width:auto;--pp-ph-sb-iconSvgTooltip-height:22px;--pp-ph-sb-iconSvgTooltip-color:#1f2937;--pp-ph-sb-iconSvgAbout-width:auto;--pp-ph-sb-iconSvgAbout-height:22px;--pp-ph-sb-iconSvgAbout-color:#1f2937;--pp-ph-iconSvgInput-width:auto;--pp-ph-iconSvgInput-height:22px;--pp-ph-iconSvgInput-color:rgba(0, 0, 0, 0.88);--pp-ph-pal-iconSvgWrap-width:auto;--pp-ph-pal-iconSvgWrap-height:16px;--pp-ph-pal-iconSvgWrap-color:#fff;--pp-ph-pal-iconSvgHistory-width:auto;--pp-ph-pal-iconSvgHistory-height:16px;--pp-ph-pal-iconSvgHistory-color:#fff;--pp-ph-pal-iconSvgFavorite-width:auto;--pp-ph-pal-iconSvgFavorite-height:16px;--pp-ph-pal-iconSvgFavorite-color:#fff;--pp-ph-promptHeaderTitle-font-weight:bold;--pp-ph-promptHeaderTitle-font-size:1rem;--pp-ph-promptHeaderTitle-white-space:nowrap;--pp-ph-promptHeaderCounter-font-size:0.9rem;--pp-ph-promptHeaderCounter-min-width:64px;--pp-ph-promptHeaderBreak-flex-basis:100%;--pp-ph-promptHeaderBreak-height:0;--pp-ph-promptHeaderBreak-margin-bottom:0;--pp-ph-promptHeaderExtend-margin-right:10px;--pp-ph-promptHeaderExtend-display:flex;--pp-ph-promptHeaderExtend-justify-content:flex-start;--pp-ph-promptHeaderExtend-align-items:center;--pp-ph-promptHeaderExtendLastChild-margin-right:0;--pp-ph-phe-extendTitle-font-size:0.8rem;--pp-ph-phe-extendTitle-margin-right:5px;--pp-ph-phe-promptAppend-position:relative;--pp-ph-phe-promptAppend-flex:1;--pp-ph-phe-pa-extendContent-width:100%;--pp-ph-phe-pa-extendContent-display:flex;--pp-ph-phe-pa-extendContent-justify-content:flex-end;--pp-ph-phe-pa-extendContent-align-items:center;--pp-ph-phe-ec-selectSelectBtn-padding:0 10px 0 5px;--pp-ph-phe-ec-selectSelectBtn-font-size:0.8rem;--pp-ph-phe-ec-selectSelectBtn-appearance:auto;--pp-ph-phe-ec-selectSelectBtn-border:1px solid rgba(0, 0, 0, 0.88);--pp-ph-phe-ec-selectSelectBtn-background:#fff;--pp-ph-phe-ec-selectSelectBtn-color:rgba(0, 0, 0, 0.88);--pp-ph-phe-ec-selectSelectBtn-height:20px;--pp-ph-phe-ec-selectSelectBtn-line-height:20px;--pp-ph-phe-ec-selectSelectBtnHover-border-color:#1677ff;--pp-ph-phe-ec-selectBtn-cursor:pointer;--pp-ph-phe-ec-selectBtn-padding:0 10px;--pp-ph-phe-ec-selectBtnHover-background:#0958d9;--pp-ph-phe-ec-selectBtnHover-border-color:#0958d9;--pp-ph-phe-ec-autocompleteresults-top:26px;--pp-ph-phe-ec-inputTagAppend-display:inline-block;--pp-ph-phe-ec-inputTagAppend-height:26px;--pp-ph-phe-ec-inputTagAppend-padding:4px;--pp-ph-phe-ec-inputTagAppend-border:1px solid rgba(0, 0, 0, 0.12);--pp-ph-phe-ec-inputTagAppend-appearance:none;--pp-ph-phe-ec-inputTagAppend-background-color:transparent;--pp-ph-phe-ec-inputTagAppend-font-size:0.9rem;--pp-ph-phe-ec-inputTagAppend-line-height:0.9rem;--pp-ph-phe-ec-inputTagAppend-font-family:inherit;--pp-ph-phe-ec-inputTagAppend-font-weight:inherit;--pp-ph-phe-ec-inputTagAppend-border-radius:4px;--pp-ph-phe-ec-inputTagAppend-min-width:200px;--pp-ph-phe-ec-inputTagAppend-width:80%;--pp-ph-phe-ec-inputTagAppend-text-align:left;--pp-ph-phe-ec-inputTagAppend-resize:none;--pp-ph-phe-ec-inputTagAppendFocus-box-shadow:none;--pp-ph-phe-ec-inputTagAppendFocus-border-color:#02b7fd;--pp-ph-phe-ec-extendBtnGroup-display:flex;--pp-ph-phe-ec-extendBtnGroup-justify-content:center;--pp-ph-phe-ec-extendBtnGroup-align-items:center;--pp-ph-phe-ec-extendBtnGroup-color:rgba(0, 0, 0, 0.88);--pp-ph-phe-ec-extendBtnGroup-background:rgba(0, 0, 0, 0.06);--pp-ph-phe-ec-extendBtnGroup-border:1px solid rgba(0, 0, 0, 0.04);--pp-ph-phe-ec-extendBtnGroup-padding:0;--pp-ph-phe-ec-extendBtnGroup-border-radius:4px;--pp-ph-phe-ec-ebg-extendBtnItem-cursor:pointer;--pp-ph-phe-ec-ebg-extendBtnItem-height:26px;--pp-ph-phe-ec-ebg-extendBtnItem-width:30px;--pp-ph-phe-ec-ebg-extendBtnItem-display:flex;--pp-ph-phe-ec-ebg-extendBtnItem-justify-content:center;--pp-ph-phe-ec-ebg-extendBtnItem-align-items:center;--pp-ph-phe-ec-ebg-extendBtnItem-position:relative;--pp-ph-phe-ec-ebg-extendBtnItemFirstChild-border-left:0;--pp-ph-phe-ec-ebg-extendBtnItemFirstChild-margin-left:0;--pp-ph-phe-ec-ebg-ebih-settingBox-display:flex;--pp-ph-phe-ec-ebg-ebihrd-iconAfter-display:none;--pp-ph-phe-ec-ebg-ebird-iconAfter-content:'';--pp-ph-phe-ec-ebg-ebird-iconAfter-display:block;--pp-ph-phe-ec-ebg-ebird-iconAfter-width:8px;--pp-ph-phe-ec-ebg-ebird-iconAfter-height:8px;--pp-ph-phe-ec-ebg-ebird-iconAfter-background:var(--physton-common-red);--pp-ph-phe-ec-ebg-ebird-iconAfter-border-radius:50%;--pp-ph-phe-ec-ebg-ebird-iconAfter-position:absolute;--pp-ph-phe-ec-ebg-ebird-iconAfter-top:-4px;--pp-ph-phe-ec-ebg-ebird-iconAfter-right:-4px;--pp-ph-phe-ec-ebg-ebi-settingBox-display:none;--pp-ph-phe-ec-ebg-ebi-settingBox-position:absolute;--pp-ph-phe-ec-ebg-ebi-settingBox-background:#e6f4ff;--pp-ph-phe-ec-ebg-ebi-settingBox-top:-5px;--pp-ph-phe-ec-ebg-ebi-settingBox-left:28px;--pp-ph-phe-ec-ebg-ebi-settingBox-justify-content:flex-start;--pp-ph-phe-ec-ebg-ebi-settingBox-align-items:center;--pp-ph-phe-ec-ebg-ebi-settingBox-width:max-content;--pp-ph-phe-ec-ebg-ebi-settingBox-height:36px;--pp-ph-phe-ec-ebg-ebi-settingBox-padding:0 10px;--pp-ph-phe-ec-ebg-ebi-settingBox-box-shadow:0 0 3px 0 var(--physton-common-blue);--pp-ph-phe-ec-ebg-ebi-settingBox-border-radius:6px 6px 4px 4px;--pp-ph-phe-ec-ebg-ebi-settingBox-z-index:10;--pp-ph-phe-ec-ebg-ebi-settingBoxAny-margin-left:5px;--pp-ph-phe-ec-ebg-ebi-settingBoxAnyFirstChild-margin-left:0;--pp-ph-phe-ec-ebg-gradioButtonA-height:26px;--pp-ph-phe-ec-ebg-gradioButtonA-min-height:26px;--pp-ph-phe-ec-ebg-gradioButtonA-max-height:26px;--pp-ph-phe-ec-gradioCheckbox-cursor:pointer;--pp-ph-phe-ec-inputCheckbox-position:relative;--pp-ph-phe-ec-inputCheckbox-box-shadow:none;--pp-ph-phe-ec-inputCheckbox-border:1px solid #7c7c7c;--pp-ph-phe-ec-inputCheckbox-border-radius:4px;--pp-ph-phe-ec-inputCheckbox-background-color:rgba(0, 0, 0, 0.02);--pp-ph-phe-ec-inputCheckbox-line-height:1.4;--pp-ph-phe-ec-inputCheckbox-width:16px;--pp-ph-phe-ec-inputCheckbox-height:16px;--pp-ph-phe-ec-inputCheckboxChecked-border-color:#1677ff;--pp-ph-phe-ec-inputCheckboxChecked-background-color:#1677ff;--pp-promptTags-display:flex;--pp-promptTags-flex-wrap:wrap;--pp-promptTags-justify-content:flex-start;--pp-promptTags-align-items:flex-start;--pp-promptTags-position:relative;--pp-promptTags-padding:5px 10px 0;--pp-pt-ds-btnTagExtend-display:none;--pp-pt-pte-iconSvgWrap-width:auto;--pp-pt-pte-iconSvgWrap-height:16px;--pp-pt-pte-iconSvgWrap-color:#02b7fd;--pp-pt-btd-iconSvgClose-width:auto;--pp-pt-btd-iconSvgClose-height:10px;--pp-pt-btd-iconSvgClose-color:#000;--pp-pt-bte-iconSvgWeightParenthesesInc-width:auto;--pp-pt-bte-iconSvgWeightParenthesesInc-height:20px;--pp-pt-bte-iconSvgWeightParenthesesInc-color:#ff6969;--pp-pt-bte-iconSvgWeightParenthesesDec-width:auto;--pp-pt-bte-iconSvgWeightParenthesesDec-height:20px;--pp-pt-bte-iconSvgWeightParenthesesDec-color:#ff6969;--pp-pt-bte-iconSvgWeightBracketsInc-width:auto;--pp-pt-bte-iconSvgWeightBracketsInc-height:20px;--pp-pt-bte-iconSvgWeightBracketsInc-color:#84ff8f;--pp-pt-bte-iconSvgWeightBracketsDec-width:auto;--pp-pt-bte-iconSvgWeightBracketsDec-height:20px;--pp-pt-bte-iconSvgWeightBracketsDec-color:#84ff8f;--pp-pt-bte-iconSvgEnglish-width:auto;--pp-pt-bte-iconSvgEnglish-height:20px;--pp-pt-bte-iconSvgEnglish-color:#ff9900;--pp-pt-bte-iconSvgLoading-width:auto;--pp-pt-bte-iconSvgLoading-height:20px;--pp-pt-bte-iconSvgLoading-color:none;--pp-pt-bte-iconSvgCopy-width:auto;--pp-pt-bte-iconSvgCopy-height:20px;--pp-pt-bte-iconSvgCopy-color:#3c3c3c;--pp-pt-bte-iconSvgDisabled-width:auto;--pp-pt-bte-iconSvgDisabled-height:20px;--pp-pt-bte-iconSvgDisabled-color:#ff472f;--pp-pt-bte-iconSvgEnable-width:auto;--pp-pt-bte-iconSvgEnable-height:20px;--pp-pt-bte-iconSvgEnable-color:#00eeff;--pp-pt-bte-iconSvgWrap-width:auto;--pp-pt-bte-iconSvgWrap-height:20px;--pp-pt-bte-iconSvgWrap-color:#00eeff;--pp-pt-bte-iconSvgFavoriteNo-width:auto;--pp-pt-bte-iconSvgFavoriteNo-height:20px;--pp-pt-bte-iconSvgFavoriteNo-color:none;--pp-pt-bte-iconSvgFavoriteYes-width:auto;--pp-pt-bte-iconSvgFavoriteYes-height:20px;--pp-pt-bte-iconSvgFavoriteYes-color:none;--pp-pt-pll-iconSvgTranslate-width:auto;--pp-pt-pll-iconSvgTranslate-height:16px;--pp-pt-pll-iconSvgTranslate-color:rgba(0, 0, 0, 0.88);--pp-pt-pll-iconSvgLoading-width:auto;--pp-pt-pll-iconSvgLoading-height:16px;--pp-pt-pll-iconSvgLoading-color:none;--pp-pt-dropSelectBg-position:fixed;--pp-pt-dropSelectBg-display:none;--pp-pt-dropSelectBg-left:0;--pp-pt-dropSelectBg-top:0;--pp-pt-dropSelectBg-width:100%;--pp-pt-dropSelectBg-height:100%;--pp-pt-dropSelectBg-z-index:999;--pp-pt-dropSelectBox-position:absolute;--pp-pt-dropSelectBox-display:none;--pp-pt-dropSelectBox-left:0;--pp-pt-dropSelectBox-top:0;--pp-pt-dropSelectBox-width:0;--pp-pt-dropSelectBox-height:0;--pp-pt-dropSelectBox-box-sizing:border-box;--pp-pt-dropSelectBox-background:rgba(0, 175, 255, 0.2);--pp-pt-dropSelectBox-border:1px solid rgba(0, 175, 255, 0.8);--pp-pt-dropSelectBox-z-index:1000;--pp-pt-dropSelectBtns-position:absolute;--pp-pt-dropSelectBtns-display:none;--pp-pt-dropSelectBtns-left:0;--pp-pt-dropSelectBtns-top:0;--pp-pt-dropSelectBtns-width:auto;--pp-pt-dropSelectBtns-height:auto;--pp-pt-dropSelectBtns-z-index:1000;--pp-pt-dropSelectBtns-justify-content:flex-start;--pp-pt-dropSelectBtns-align-items:center;--pp-pt-dropSelectBtns-padding:0;--pp-pt-dropSelectBtns-box-sizing:border-box;--pp-pt-dropSelectBtns-box-shadow:0 0 3px #4a54ff;--pp-pt-dropSelectBtns-background:#0c0c0c;--pp-pt-dropSelectBtns-border-radius:4px;--pp-pt-dropSelectBtns-overflow:hidden;--pp-pt-dsb-iconSvgCopy-width:auto;--pp-pt-dsb-iconSvgCopy-height:20px;--pp-pt-dsb-iconSvgCopy-color:#c5c5c5;--pp-pt-dsb-iconSvgDisabled-width:auto;--pp-pt-dsb-iconSvgDisabled-height:20px;--pp-pt-dsb-iconSvgDisabled-color:#ff472f;--pp-pt-dsb-iconSvgEnable-width:auto;--pp-pt-dsb-iconSvgEnable-height:20px;--pp-pt-dsb-iconSvgEnable-color:#2fff53;--pp-pt-dsb-iconSvgFavoriteNo-width:auto;--pp-pt-dsb-iconSvgFavoriteNo-height:20px;--pp-pt-dsb-iconSvgFavoriteNo-color:none;--pp-pt-dsb-iconSvgFavoriteYes-width:auto;--pp-pt-dsb-iconSvgFavoriteYes-height:20px;--pp-pt-dsb-iconSvgFavoriteYes-color:none;--pp-pt-dsb-iconSvgRemove-width:auto;--pp-pt-dsb-iconSvgRemove-height:20px;--pp-pt-dsb-iconSvgRemove-color:#ff472f;--pp-pt-dsb-btnsTitle-color:#fff;--pp-pt-dsb-btnsTitle-padding:0 5px;--pp-pt-dsb-btnsTitle-border-right:1px solid rgba(255, 255, 255, 0.2);--pp-pt-dsb-btnsTitle-height:32px;--pp-pt-dsb-btnsTitle-line-height:32px;--pp-pt-dsb-button-height:32px;--pp-pt-dsb-button-width:32px;--pp-pt-dsb-button-border:0;--pp-pt-dsb-button-border-radius:0;--pp-pt-dsb-button-padding:5px;--pp-pt-dsb-button-min-width:auto;--pp-pt-dsb-button-font-size:0.9rem;--pp-pt-dsb-button-min-height:auto;--pp-pt-dsb-button-background:transparent;--pp-pt-dsb-button-color:#fff;--pp-pt-dsb-button-border-right:1px solid rgba(255, 255, 255, 0.2);--pp-pt-dsb-buttonLastChild-border-right:0;--pp-pt-dsb-buttonHover-background:rgba(255, 255, 255, 0.2);--pp-pt-dsb-promptTagsList-display:flex;--pp-pt-dsb-promptTagsList-flex-wrap:wrap;--pp-pt-dsb-promptTagsList-justify-content:flex-start;--pp-pt-dsb-promptTagsList-align-items:flex-start;--pp-pt-dsb-promptTagsList-width:100%;--pp-pt-dsb-ptl-promptWrap-display:none;--pp-pt-dsb-ptl-promptWrap-flex-basis:100%;--pp-pt-dsb-ptl-promptWrap-height:0;--pp-pt-dsb-ptl-promptWrap-margin:0;--pp-pt-dsb-ptl-promptWrap-padding:0;--pp-pt-dsb-ptl-promptTag-margin-bottom:8px;--pp-pt-dsb-ptl-promptTag-margin-right:10px;--pp-pt-dsb-ptl-promptTag-display:block;--pp-pt-dsb-ptl-promptTag-align-items:center;--pp-pt-dsb-ptl-promptTag-max-width:100%;--pp-pt-dsb-ptl-promptTagLastChild-margin-right:12px;--pp-pt-dsb-ptl-ptd-promptTagEdit-opacity:0.7;--pp-pt-dsb-ptl-pt-ss-ds-promptTagValue-background:rgba(0, 175, 255, 0.4);--pp-pt-dsb-ptl-pt-promptTagMain-width:100%;--pp-pt-dsb-ptl-pt-promptTagMain-display:flex;--pp-pt-dsb-ptl-pt-promptTagMain-justify-content:flex-start;--pp-pt-dsb-ptl-pt-promptTagMain-align-items:flex-start;--pp-pt-dsb-ptl-pt-promptTagMain-position:relative;--pp-pt-dsb-ptl-pt-ptmh-pte-btnTagExtend-box-shadow:0 0 3px 0 var(--physton-common-blue);--pp-pt-dsb-ptl-pt-ptmh-btnTagExtend-display:flex;--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-width:100%;--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-display:flex;--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-justify-content:flex-start;--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-align-items:center;--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-position:relative;--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-border-radius:4px;--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-min-height:26px;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-width:calc(100% - 16px);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-padding:4px;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-font-size:0.9rem;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-height:auto;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-radius:4px;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-top-right-radius:0;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-bottom-right-radius:0;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-display:flex;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-align-items:center;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-justify-content:flex-start;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-color:rgba(0, 0, 0, 0.88);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-background:rgba(0, 0, 0, 0.06);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border:1px solid rgba(0, 0, 0, 0.04);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueNegTag-color:rgba(0, 0, 0, 0.88);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraTag-color:#597ef7;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraNotExists-background:#ffccc7;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraNotExists-animation:lora-not-exists 1s infinite;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoTag-color:#597ef7;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoNotExists-background:#ffccc7;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoNotExists-animation:lora-not-exists 1s infinite;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueEmbeddingTag-color:#33bcb7;--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-border-color:rgba(0, 0, 0, 0.06);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-background:rgba(0, 0, 0, 0.15);--pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-line-height:1rem;--pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-white-space:break-spaces;--pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-word-break:break-all;--pp-pt-dsb-ptl-pt-ptm-pte-ptv-weightCharacter-color:var(--physton-common-red);--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-padding:4px;--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-max-width:calc(100% - 16px);--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-radius:4px;--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-top-right-radius:0;--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-bottom-right-radius:0;--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-max-height:unset;--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-resize:none;--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-line-height:1rem;--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-font-size:0.9rem;--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-background:transparent;--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-min-height:26px;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-display:flex;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-justify-content:center;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-align-items:center;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-cursor:pointer;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border:1px solid rgba(0, 0, 0, 0.04);--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-background:rgba(0, 0, 0, 0.06);--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-padding:0;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-width:16px;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-height:100%;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-left:0;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-radius:0;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-top-right-radius:4px;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-bottom-right-radius:4px;--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDeleteHover-bbackground:var(--physton-common-red);--pp-pt-dsb-ptl-pt-ptm-pte-btdh-svg-fill:#fff;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-display:none;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-justify-content:flex-start;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-align-items:center;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-position:absolute;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-top:-32px;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-left:0;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-z-index:100;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-padding:0;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-box-shadow:0 0 3px 0 var(--physton-common-blue);--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-border-radius:4px;--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-overflow:hidden;--pp-pt-dsb-ptl-pt-ptm-bte-button-height:32px;--pp-pt-dsb-ptl-pt-ptm-bte-button-width:32px;--pp-pt-dsb-ptl-pt-ptm-bte-button-border:0;--pp-pt-dsb-ptl-pt-ptm-bte-button-border-radius:0;--pp-pt-dsb-ptl-pt-ptm-bte-button-padding:5px;--pp-pt-dsb-ptl-pt-ptm-bte-button-min-width:auto;--pp-pt-dsb-ptl-pt-ptm-bte-button-font-size:0.9rem;--pp-pt-dsb-ptl-pt-ptm-bte-button-min-height:auto;--pp-pt-dsb-ptl-pt-ptm-bte-button-background:transparent;--pp-pt-dsb-ptl-pt-ptm-bte-button-color:#fff;--pp-pt-dsb-ptl-pt-ptm-bte-button-border-right:1px solid rgba(255, 255, 255, 0.2);--pp-pt-dsb-ptl-pt-ptm-bte-buttonLastChild-border-right:0;--pp-pt-dsb-ptl-pt-ptm-bte-buttonHover-background:rgba(255, 255, 255, 0.2);--pp-pt-dsb-ptl-pt-ptm-bte-input-width:54px;--pp-pt-dsb-ptl-pt-ptm-bte-input-border:0;--pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-width:90px;--pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-border:0;--pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-padding:0;--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-width:1.5rem;--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-background:rgba(255, 255, 255, 0.9);--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-height:32px;--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-border:0;--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-padding:0 26px;--pp-pt-dsb-ptl-pt-promptLocalLanguage-margin-top:2px;--pp-pt-dsb-ptl-pt-promptLocalLanguage-display:flex;--pp-pt-dsb-ptl-pt-promptLocalLanguage-justify-content:flex-start;--pp-pt-dsb-ptl-pt-promptLocalLanguage-align-items:center;--pp-pt-dsb-ptl-pt-pll-translateToLocal-cursor:pointer;--pp-pt-dsb-ptl-pt-pll-localLanguage-font-size:0.8rem;--pp-pt-dsb-ptl-pt-pll-localLanguage-color:rgba(0, 0, 0, 0.45);--pp-pt-dsb-ptl-pt-pll-localLanguage-margin-left:2px;--pp-pt-dsb-ptl-pt-pll-localLanguage-pointer-events:none;--pp-pt-input-display:inline-block;--pp-pt-input-overflow-y:scroll;--pp-pt-input-height:24px;--pp-pt-input-padding:4px;--pp-pt-input-border:1px solid #02b7fd;--pp-pt-input-appearance:none;--pp-pt-input-background-color:transparent;--pp-pt-input-font-size:0.9rem;--pp-pt-input-line-height:0.9rem;--pp-pt-input-font-family:inherit;--pp-pt-input-font-weight:inherit;--pp-pt-input-border-radius:4px;--pp-pt-inputFocus-box-shadow:none;--pp-pt-inputFocus-border-color:rgba(0, 0, 0, 0.04);--pp-pt-gradioButton-max-width:none;--pp-pt-gradioButton-width:auto;--pp-pt-gradioButton-padding:4px 12px;--pp-pt-promptAppendList-width:auto;--pp-pt-promptAppendList-padding:0;--pp-pt-promptAppendList-position:absolute;--pp-pt-promptAppendList-z-index:1000;--pp-pt-promptAppendList-background:rgba(30, 30, 30, 0.5);--pp-pt-pal-promptAppendGroup-font-size:14px;--pp-pt-pal-promptAppendGroup-color:#fff;--pp-pt-pal-promptAppendGroup-padding:10px;--pp-pt-pal-promptAppendGroup-cursor:pointer;--pp-pt-pal-promptAppendGroup-position:relative;--pp-pt-pal-paghs-appendGroupList-display:block;--pp-pt-pal-pag-appendGroupName-display:flex;--pp-pt-pal-pag-appendGroupName-justify-content:flex-start;--pp-pt-pal-pag-appendGroupName-align-items:center;--pp-pt-pal-pag-appendGroupName-cursor:pointer;--pp-pt-pal-pag-appendGroupName-flex-wrap:nowrap;--pp-pt-pal-pag-appendGroupName-white-space:nowrap;--pp-pt-pal-pag-agn-nameIcon-margin-right:5px;--pp-pt-pal-pag-agn-arrowRight-margin-left:20px;--pp-pt-pal-pag-agn-arrowRightAfter-content:'';--pp-pt-pal-pag-agn-arrowRightAfter-display:inline-block;--pp-pt-pal-pag-agn-arrowRightAfter-width:0;--pp-pt-pal-pag-agn-arrowRightAfter-height:0;--pp-pt-pal-pag-agn-arrowRightAfter-border-top:6px solid transparent;--pp-pt-pal-pag-agn-arrowRightAfter-border-bottom:6px solid transparent;--pp-pt-pal-pag-agn-arrowRightAfter-border-left:6px solid #fff;--pp-pt-pal-pag-appendGroupList-background:rgba(30, 30, 30, 0.5);--pp-pt-pal-pag-appendGroupList-display:none;--pp-pt-pal-pag-appendGroupList-position:absolute;--pp-pt-pal-pag-appendGroupList-top:0;--pp-pt-pal-pag-appendGroupList-left:100%;--pp-pt-pal-pag-appendGroupList-height:400px;--pp-pt-pal-pag-appendGroupList-overflow:hidden;--pp-pt-pal-pag-appendGroupList-overflow-y:scroll;--pp-pt-pal-pag-agl-appendItem-width:100%;--pp-pt-pal-pag-agl-appendItem-font-size:14px;--pp-pt-pal-pag-agl-appendItem-color:#fff;--pp-pt-pal-pag-agl-appendItem-padding:10px;--pp-pt-pal-pag-agl-appendItem-cursor:pointer;--pp-pt-pal-pag-agl-appendItem-position:relative;--pp-pt-pal-pag-agl-ai-tagsName-width:300px;--pp-pt-pal-pag-agl-ai-tagsName-overflow:hidden;--pp-pt-pal-pag-agl-ai-tagsName-text-overflow:ellipsis;--pp-pt-pal-pag-agl-ai-tagsName-white-space:nowrap;--pp-pt-pal-pag-agl-ai-tagsName-display:inline-block;--pp-pt-pal-pag-tagsDetail-position:absolute;--pp-pt-pal-pag-tagsDetail-right:0;--pp-pt-pal-pag-tagsDetail-top:100%;--pp-pt-pal-pag-tagsDetail-width:400px;--pp-pt-pal-pag-tagsDetail-z-index:1001;--pp-pt-pal-pag-tagsDetail-opacity:0.9;--pp-pt-pal-pag-tagsDetail-padding:10px;--pp-pt-pal-pag-tagsDetail-color:#1d1d1d;--pp-pt-pal-pag-td-tagsList-display:flex;--pp-pt-pal-pag-td-tagsList-justify-content:flex-start;--pp-pt-pal-pag-td-tagsList-align-items:flex-start;--pp-pt-pal-pag-td-tagsList-flex-wrap:wrap;--pp-pt-pal-pag-td-tl-itemWrap-flex-basis:100%;--pp-pt-pal-pag-td-tl-itemWrap-height:0;--pp-pt-pal-pag-td-tl-itemWrap-margin:0;--pp-pt-pal-pag-td-tl-itemWrap-padding:0;--pp-pt-pal-pag-td-tl-tagsItem-margin-right:5px;--pp-pt-pal-pag-td-tl-tagsItem-margin-bottom:5px;--pp-pt-pal-pag-td-tl-tagsItemLastChild-margin-right:0;--pp-pt-pal-pag-td-tl-ti-itemTagValue-padding:4px 6px;--pp-pt-pal-pag-td-tl-ti-itemTagValue-border-radius:5px;--pp-pt-pal-pag-td-tl-ti-itemTagValue-background:rgba(30, 30, 30, 0.9);--pp-pt-pal-pag-td-tl-ti-itemTagValue-font-size:12px;--pp-pt-pal-pag-td-tl-ti-itemTagValue-color:#fff;--pp-pt-pal-pag-td-tl-ti-itemTagLocalValue-font-size:12px;--pp-pt-pal-pag-td-tl-ti-itemTagLocalValue-margin-top:2px;--ppfpph-width:500px;--ppfpph-padding:0;--ppfpph-position:absolute;--ppfpph-z-index:999;--ppfpph-top:0;--ppfpph-left:0;--ppfpph-overflow:visible;--ppfpph-popupTabs-display:flex;--ppfpph-popupTabs-justify-content:space-around;--ppfpph-popupTabs-align-items:center;--ppfpph-popupTabs-border-top-left-radius:6px;--ppfpph-popupTabs-border-top-right-radius:6px;--ppfpph-popupTabs-overflow:hidden;--ppfpph-pt-popupTab-padding:5px 0;--ppfpph-pt-popupTab-cursor:pointer;--ppfpph-pt-popupTab-position:relative;--ppfpph-pt-popupTab-flex:1;--ppfpph-pt-popupTab-border-bottom:1px solid #787878;--ppfpph-pt-popupTabHoverActive-border-bottom:0;--ppfpph-pt-pt-tntytc-text-align:center;--ppfpph-pt-pt-tntytc-color:#fff;--ppfpph-pt-pt-tabName-font-size:14px;--ppfpph-pt-pt-tabType-font-size:12px;--ppfpph-pt-pt-tabType-margin-top:4px;--ppfpph-pt-pt-tabCount-display:none;--ppfpph-popupDetail-position:absolute;--ppfpph-popupDetail-left:100%;--ppfpph-popupDetail-top:0;--ppfpph-popupDetail-width:400px;--ppfpph-popupDetail-z-index:1000;--ppfpph-popupDetail-padding:10px;--ppfpph-popupDetail-color:#1d1d1d;--ppfpph-pd-popupItemTags-display:flex;--ppfpph-pd-popupItemTags-justify-content:flex-start;--ppfpph-pd-popupItemTags-align-items:flex-start;--ppfpph-pd-popupItemTags-flex-wrap:wrap;--ppfpph-pd-pit-itemWrap-flex-basis:100%;--ppfpph-pd-pit-itemWrap-height:0;--ppfpph-pd-pit-itemWrap-margin:0;--ppfpph-pd-pit-itemWrap-padding:0;--ppfpph-pd-pit-itemTag-margin-right:5px;--ppfpph-pd-pit-itemTag-margin-bottom:5px;--ppfpph-pd-pit-itemTagLastChild-margin-right:0;--ppfpph-pd-pit-it-itemTagValue-padding:4px 6px;--ppfpph-pd-pit-it-itemTagValue-border-radius:5px;--ppfpph-pd-pit-it-itemTagValue-background:rgba(30, 30, 30, 0.9);--ppfpph-pd-pit-it-itemTagValue-font-size:12px;--ppfpph-pd-pit-it-itemTagValue-color:#fff;--ppfpph-pd-pit-it-it-localValue-font-size:12px;--ppfpph-pd-pit-it-it-localValue-margin-top:2px;--ppfpph-popupTabContent-display:none;--ppfpph-popupTabContent-width:100%;--ppfpph-popupTabContent-height:500px;--ppfpph-popupTabContentActive-display:block;--ppfpph-ptc-contentList-width:100%;--ppfpph-ptc-contentList-height:500px;--ppfpph-ptc-contentList-overflow:hidden;--ppfpph-ptc-contentList-overflow-y:auto;--ppfpph-ptc-cl-clearBtn-background:rgba(30, 30, 30, 0.9);--ppfpph-ptc-cl-clearBtn-position:sticky;--ppfpph-ptc-cl-clearBtn-top:0;--ppfpph-ptc-cl-clearBtn-padding:10px 10px;--ppfpph-ptc-cl-clearBtn-cursor:pointer;--ppfpph-ptc-cl-clearBtn-border-bottom:1px solid var(--physton-common-blue);--ppfpph-ptc-cl-clearBtn-color:var(--physton-common-red);--ppfpph-ptc-cl-clearBtn-text-align:center;--ppfpph-ptc-cl-clearBtn-display:flex;--ppfpph-ptc-cl-clearBtn-justify-content:center;--ppfpph-ptc-cl-clearBtn-align-items:center;--ppfpph-ptc-cl-clearBtnHover-border-bottom:1px solid var(--physton-common-red);--ppfpph-ptc-cl-clearBtnHover-font-weight:bold;--ppfpph-ptc-cl-cb-iconSvgRemove-width:auto;--ppfpph-ptc-cl-cb-iconSvgRemove-height:18px;--ppfpph-ptc-cl-cb-iconSvgRemove-color:#ff4a4a;--ppfpph-ptc-cl-contentItem-padding:6px 10px;--ppfpph-ptc-cl-contentItem-border-bottom:1px solid #3c3c3c;--ppfpph-ptc-cl-contentItem-cursor:pointer;--ppfpph-ptc-cl-contentItemHover-background:rgba(255, 255, 255, 0.2);--ppfpph-ptc-cl-cih-itemPrompt-overflow:visible;--ppfpph-ptc-cl-cih-itemPrompt-white-space:normal;--ppfpph-ptc-cl-ci-itemHeader-display:flex;--ppfpph-ptc-cl-ci-itemHeader-justify-content:space-between;--ppfpph-ptc-cl-ci-itemHeader-align-items:center;--ppfpph-ptc-cl-ci-itemHeader-margin-bottom:5px;--ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-display:flex;--ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-justify-content:flex-start;--ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-align-items:center;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-width:auto;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-height:14px;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-color:#ff4a4a;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-width:auto;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-height:20px;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-color:none;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-width:auto;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-height:20px;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-color:none;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-width:auto;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-height:20px;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-color:#fff;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-width:auto;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-height:20px;--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-color:#fff;--ppfpph-ptc-cl-ci-ih-ihlr-div-margin-right:10px;--ppfpph-ptc-cl-ci-ih-ihlr-div-font-size:14px;--ppfpph-ptc-cl-ci-ih-ihlr-div-color:#fff;--ppfpph-ptc-cl-ci-ih-ihlr-divLastChild-margin-right:0;--ppfpph-ptc-cl-ci-ih-itemHeaderLeft-flex:0.94;--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-background:var(--physton-common-blue);--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-padding:2px 0;--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-width:32px;--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-text-align:center;--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderTime-width:100px;--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderName-flex:1;--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-background:transparent;--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-border:1px solid #3c3c3c;--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-height:20px;--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-padding:0 4px;--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-width:100%;--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-font-size:12px;--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-color:#00F9E5;--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInputFocus-outline:none;--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInputFocus-border-color:var(--physton-common-blue);--ppfpph-ptc-cl-ci-ih-itemHeaderRight-font-size:12px;--ppfpph-ptc-cl-ci-ih-itemHeaderRight-color:#fff;--ppfpph-ptc-cl-ci-itemPrompt-margin-top:5px;--ppfpph-ptc-cl-ci-itemPrompt-font-size:14px;--ppfpph-ptc-cl-ci-itemPrompt-line-height:18px;--ppfpph-ptc-cl-ci-itemPrompt-color:#fff;--ppfpph-ptc-cl-ci-itemPrompt-overflow:hidden;--ppfpph-ptc-cl-ci-itemPrompt-text-overflow:ellipsis;--ppfpph-ptc-cl-ci-itemPrompt-white-space:nowrap;--ppfpph-ptc-contentEmpty-height:100%;--ppfpph-ptc-contentEmpty-display:flex;--ppfpph-ptc-contentEmpty-justify-content:center;--ppfpph-ptc-contentEmpty-align-items:center;--ppfpph-ptc-ce-iconSvgLoading-width:auto;--ppfpph-ptc-ce-iconSvgLoading-height:64px;--ppfpph-ptc-ce-iconSvgLoading-color:none;--ppfpph-ptc-ce-span-font-size:22px;--ppfpph-ptc-ce-span-color:#999;--ppsl-languageMain-height:70%;--ppsl-languageMain-position:relative;--ppsl-languageList-height:100%;--ppsl-languageList-overflow:hidden;--ppsl-languageList-overflow-y:scroll;--ppsl-languageList-display:block;--ppsl-languageList-position:relative;--ppsl-languageList-box-shadow:0 0 3px var(--physton-common-blue);--ppsl-languageList-border-radius:6px 6px 4px 4px;--ppsl-languageList-background-color:#1e1e1ee6;--ppsl-languageList-transition:height 0.1s ease-in-out,width .1s ease-in-out;--ppsl-ll-languageItem-font-size:14px;--ppsl-ll-languageItem-color:#fff;--ppsl-ll-languageItem-padding:10px;--ppsl-ll-languageItem-cursor:pointer;--ppf-formatMain-min-height:300px;--ppf-formatMain-position:relative;--ppf-fm-formatList-display:block;--ppf-fm-formatList-position:relative;--ppf-fm-formatList-box-shadow:0 0 3px var(--physton-common-blue);--ppf-fm-formatList-border-radius:6px 6px 4px 4px;--ppf-fm-formatList-background-color:#1e1e1ee6;--ppf-fm-formatList-transition:height 0.1s ease-in-out,width .1s ease-in-out;--ppf-fm-formatList-padding:20px 40px;--ppf-fm-fl-formatItem-display:flex;--ppf-fm-fl-formatItem-justify-content:flex-start;--ppf-fm-fl-formatItem-align-items:flex-start;--ppf-fm-fl-formatItem-margin-top:10px;--ppf-fm-fl-formatItemFirstChild-margin-top:0;--ppf-fm-fl-fi-formatCheckbox-position:relative;--ppf-fm-fl-fi-formatCheckbox-box-shadow:none;--ppf-fm-fl-fi-formatCheckbox-border:1px solid #7c7c7c;--ppf-fm-fl-fi-formatCheckbox-border-radius:4px;--ppf-fm-fl-fi-formatCheckbox-background-color:rgba(0, 0, 0, 0.02);--ppf-fm-fl-fi-formatCheckbox-line-height:1.4;--ppf-fm-fl-fi-formatCheckbox-width:16px;--ppf-fm-fl-fi-formatCheckbox-height:16px;--ppf-fm-fl-fi-formatCheckbox-margin-top:2px;--ppf-fm-fl-fi-formatCheckboxChecked-border-color:#1677ff;--ppf-fm-fl-fi-formatCheckboxChecked-background-color:#1677ff;--ppf-fm-fl-fi-formatDesc-font-size:14px;--ppf-fm-fl-fi-formatDesc-line-height:20px;--ppf-fm-fl-fi-formatDesc-color:#fff;--ppf-fm-fl-fi-formatDesc-margin-left:10px;--pps-z-index:1999;--pps-stateMain-min-height:300px;--pps-stateMain-position:relative;--pps-sm-stateBody-display:block;--pps-sm-stateBody-position:relative;--pps-sm-stateBody-box-shadow:0 0 3px var(--physton-common-blue);--pps-sm-stateBody-border-radius:6px 6px 4px 4px;--pps-sm-stateBody-background-color:#1e1e1ee6;--pps-sm-stateBody-transition:height 0.1s ease-in-out,width .1s ease-in-out;--pps-sm-stateBody-padding:20px;--pps-sm-stateBody-font-size:14px;--pps-sm-stateBody-color:#fff;--pps-sm-sb-todayNowShow-position:absolute;--pps-sm-sb-todayNowShow-right:20px;--pps-sm-sb-todayNowShow-top:20px;--pps-sm-sb-tns-label-display:flex;--pps-sm-sb-tns-label-justify-content:flex-start;--pps-sm-sb-tns-label-align-items:center;--pps-sm-sb-tns-label-color:#ff1d00;--pps-sm-sb-tns-input-margin-right:5px;--pps-sm-sb-tns-input-width:16px;--pps-sm-sb-tns-input-height:16px;--pps-sm-sb-stateBodyName-font-size:18px;--pps-sm-sb-stateBodyName-font-weight:bold;--pps-sm-sb-stateBodyName-margin-bottom:10px;--pps-sm-sb-stateBodyLanguage-color:#374151;--pps-sm-sb-stateBodyLanguage-background:#fff;--pps-sm-sb-stateBodyLanguage-border:1px solid #e5e7eb;--pps-sm-sb-stateBodyLanguage-padding:5px 0;--pps-sm-sb-stateBodyLanguage-line-height:20px;--pps-sm-sb-stateBodyLanguage-border-radius:4px;--pps-sm-sb-stateBodyLanguage-margin-bottom:10px;--pps-sm-sb-stateBodyLanguage-display:flex;--pps-sm-sb-stateBodyLanguage-width:235px;--pps-sm-sb-stateBodyLanguage-cursor:pointer;--pps-sm-sb-stateBodyLanguageHover-background:#dcdcdc;--pps-sm-sb-stateBodyLanguageHover-border-color:#d81e06;--pps-sm-sb-sbl-iconSvgI18n-width:auto;--pps-sm-sb-sbl-iconSvgI18n-height:20px;--pps-sm-sb-sbl-iconSvgI18n-color:#d81e06;--pps-sm-sb-sbl-iconSvgI18n-margin:0 10px;--pps-sm-sb-stateBodyDesc-color:#00e6ff;--pps-sm-sb-stateBodyDesc-font-size:16px;--pps-sm-sb-stateBodyDesc-white-space:break-spaces;--pps-sm-sb-stateBodyDesc-word-break:break-all;--pps-sm-sb-packageList-margin-top:10px;--pps-sm-sb-packageList-border:1px solid #545454;--pps-sm-sb-packageList-padding:10px;--pps-sm-sb-pl-packageItem-padding:5px 0;--pps-sm-sb-pl-packageItem-display:flex;--pps-sm-sb-pl-packageItem-justify-content:flex-start;--pps-sm-sb-pl-packageItem-align-items:center;--pps-sm-sb-pl-pi-packageName-width:150px;--pps-sm-sb-pl-pi-packageState-width:150px;--pps-sm-sb-pl-pi-packageStateNotInstall-color:#ff1d00;--pps-sm-sb-pl-pi-packageCommand-white-space:nowrap;--pps-sm-sb-btnPackagesInstall-cursor:pointer;--pps-sm-sb-btnPackagesInstall-display:inline-block;--pps-sm-sb-btnPackagesInstall-padding:0 40px;--pps-sm-sb-btnPackagesInstall-height:40px;--pps-sm-sb-btnPackagesInstall-line-height:40px;--pps-sm-sb-btnPackagesInstall-color:#fff;--pps-sm-sb-btnPackagesInstall-border-radius:4px;--pps-sm-sb-btnPackagesInstall-margin-top:10px;--pps-sm-sb-bpi-iconSvgLoading-width:auto;--pps-sm-sb-bpi-iconSvgLoading-height:40px;--pps-sm-sb-bpi-iconSvgLoading-color:none;--pps-sm-sb-installResult-margin-top:10px;--pps-sm-sb-installResult-border:1px solid #545454;--pps-sm-sb-installResult-padding:10px;--pps-sm-sb-ir-resultContent-margin-top:5px;--pps-sm-sb-ir-resultContent-white-space:pre;--pps-sm-sb-ir-resultContent-color:#00e6ff;--pps-sm-sb-ir-resultContent-line-height:20px;--pps-sm-sb-ir-resultContent-overflow:hidden;--pps-sm-sb-ir-resultContent-overflow-y:auto;--pps-sm-sb-ir-resultContent-border:1px solid #003c43;--pps-sm-sb-ir-resultContent-padding:5px;--pps-sm-sb-ir-resultContent-max-height:200px;--ppts-tsm-translateSettingContent-max-height:600px;--ppts-tsm-translateSettingContent-overflow:hidden;--ppts-tsm-translateSettingContent-overflow-y:auto;--ppts-tsm-translateSettingContent-padding:6px;--ppts-tsm-translateSettingContent-border:1px solid #464646;--ppts-tsm-translateSettingContent-border-radius:6px;--ppts-tsm-translateSettingContentWebkitScrollbar-width:6px;--ppts-tsm-translateSettingContentWebkitScrollbar-height:6px;--ppts-tsm-settingLine-display:flex;--ppts-tsm-settingLine-justify-content:flex-start;--ppts-tsm-settingLine-align-items:flex-start;--ppts-tsm-settingLine-margin-bottom:10px;--ppts-tsm-sl-lineTitle-font-size:16px;--ppts-tsm-sl-lineTitle-font-weight:bold;--ppts-tsm-sl-lineTitle-color:#fff;--ppts-tsm-sl-lineTitle-width:150px;--ppts-tsm-sl-lineTitle-line-height:24px;--ppts-tsm-sl-lineContent-flex:1;--ppts-tsm-sl-lineContent-font-size:14px;--ppts-tsm-sl-lineContent-color:#fff;--ppts-tsm-sl-lc-spanP-font-size:14px;--ppts-tsm-sl-lc-spanP-color:#fff;--ppts-tsm-sl-lc-p-margin:5px 0;--ppts-tsm-sl-lc-a-font-size:14px;--ppts-tsm-sl-lc-a-color:#108bb5;--ppts-tsm-sl-lc-a-text-decoration:underline;--ppts-tsm-sl-lc-commonRed-color:#ff1d00;--ppts-tsm-sl-lc-commonRed-font-size:14px;--ppts-tsm-sl-lc-apiName-display:inline-block;--ppts-tsm-sl-lc-apiName-color:#1d1d1d;--ppts-tsm-sl-lc-apiName-border-radius:2px;--ppts-tsm-sl-lc-apiName-padding:4px;--ppts-tsm-sl-lc-inputTextareaSelect-background:rgba(30, 30, 30, 0.9);--ppts-tsm-sl-lc-inputTextareaSelect-border:1px solid #3c3c3c;--ppts-tsm-sl-lc-inputTextareaSelect-padding:4px;--ppts-tsm-sl-lc-inputTextareaSelect-width:100%;--ppts-tsm-sl-lc-inputTextareaSelect-font-size:14px;--ppts-tsm-sl-lc-inputTextareaSelect-color:#fff;--ppts-tsm-sl-lc-inputTextareaSelect-resize:none;--ppts-tsm-sl-lc-inputTextareaSelectFocus-outline:none;--ppts-tsm-sl-lc-inputTextareaSelectFocus-border-color:var(--physton-common-blue);--ppts-tsm-sl-lc-onlyCsvOnAuto-cursor:pointer;--ppts-tsm-sl-lc-onlyCsvOnAuto-margin:10px 0;--ppts-tsm-sl-lc-onlyCsvOnAuto-display:flex;--ppts-tsm-sl-lc-onlyCsvOnAuto-justify-content:flex-start;--ppts-tsm-sl-lc-onlyCsvOnAuto-align-items:center;--ppts-tsm-sl-lc-ocoa-input-margin-right:5px;--ppts-tsm-sl-lc-ocoa-input-width:20px;--ppts-tsm-sl-lc-ocoa-input-height:20px;--ppts-tsm-sl-lc-ocoa-span-color:#ff9f37;--ppts-tsm-sl-lc-lineRow-display:flex;--ppts-tsm-sl-lc-lineRow-justify-content:flex-start;--ppts-tsm-sl-lc-lineRowAny-margin-left:4px;--ppts-tsm-sl-lc-lineRowAnyLastChild-margin-left:0;--ppts-tsm-sl-lc-refreshBtn-cursor:pointer;--ppts-tsm-sl-lc-refreshBtn-width:28px;--ppts-tsm-sl-lc-refreshBtn-height:28px;--ppts-tsm-sl-lc-refreshBtn-background:#000;--ppts-tsm-sl-lc-refreshBtn-display:flex;--ppts-tsm-sl-lc-refreshBtn-justify-content:center;--ppts-tsm-sl-lc-refreshBtn-align-items:center;--ppts-tsm-sl-lc-refreshBtn-border-radius:4px;--ppts-tsm-sl-lc-rb-iconSvgLoading-width:auto;--ppts-tsm-sl-lc-rb-iconSvgLoading-height:20px;--ppts-tsm-sl-lc-rb-iconSvgLoading-color:none;--ppts-tsm-sl-lc-rb-iconSvgRefresh-width:auto;--ppts-tsm-sl-lc-rb-iconSvgRefresh-height:20px;--ppts-tsm-sl-lc-rb-iconSvgRefresh-color:#02b7fd;--ppts-tsm-sl-lc-testInput-height:70px;--ppts-tsm-sl-lc-testBtn-cursor:pointer;--ppts-tsm-sl-lc-testBtn-display:inline-block;--ppts-tsm-sl-lc-testBtn-padding:0 40px;--ppts-tsm-sl-lc-testBtn-height:32px;--ppts-tsm-sl-lc-testBtn-line-height:32px;--ppts-tsm-sl-lc-testBtn-color:#fff;--ppts-tsm-sl-lc-testBtn-background:#108bb5;--ppts-tsm-sl-lc-testBtn-border-radius:4px;--ppts-tsm-sl-lc-tb-iconSvgLoading-width:auto;--ppts-tsm-sl-lc-tb-iconSvgLoading-height:40px;--ppts-tsm-sl-lc-tb-iconSvgLoading-color:none;--ppts-tsm-sl-lc-translateError-color:var(--physton-common-red);--ppts-tsm-sl-lc-translateError-font-size:14px;--ppts-tsm-sl-lc-translateError-margin-bottom:10px;--ppts-tsm-sl-lc-helpList-font-size:14px;--ppts-tsm-sl-lc-helpList-line-height:24px;--ppts-tsm-sl-lc-hl-helpItem-margin-bottom:10px;--ppts-tsm-sl-lc-hl-helpItemAnyLastChild-margin-bottom:0;--ppts-tsm-sl-lc-hl-hi-a-color:#fff;--ppts-tsm-sl-lc-hl-hi-a-text-decoration:none;--ppts-tsm-sl-lc-hl-hi-a-font-size:14px;--ppts-tsm-sl-lc-hl-hi-a-border-bottom:1px solid #fff;--ppts-tsm-sl-lc-hl-hi-a-padding-bottom:4px;--ppts-tsm-sl-lc-hl-hi-aHover-color:#108bb5;--ppts-tsm-sl-lc-hl-hi-aHover-border-bottom-color:#108bb5;--ppts-tsm-settingBtns-display:flex;--ppts-tsm-settingBtns-justify-content:flex-end;--ppts-tsm-settingBtns-align-items:center;--ppts-tsm-settingBtns-margin-top:10px;--ppts-tsm-sb-translateSave-cursor:pointer;--ppts-tsm-sb-translateSave-display:inline-block;--ppts-tsm-sb-translateSave-padding:0 40px;--ppts-tsm-sb-translateSave-height:40px;--ppts-tsm-sb-translateSave-line-height:40px;--ppts-tsm-sb-translateSave-color:#fff;--ppts-tsm-sb-translateSave-border-radius:4px;--ppts-tsm-sb-translateSave-margin-right:10px;--ppts-tsm-sb-translateClose-cursor:pointer;--ppts-tsm-sb-translateClose-display:inline-block;--ppts-tsm-sb-translateClose-padding:0 40px;--ppts-tsm-sb-translateClose-height:40px;--ppts-tsm-sb-translateClose-line-height:40px;--ppts-tsm-sb-translateClose-color:var(--physton-common-blue);--ppts-tsm-sb-translateClose-background:transparent;--ppts-tsm-sb-translateClose-border:1px solid var(--physton-common-blue);--ppts-tsm-sb-translateClose-border-radius:4px;--ppec-justify-content:flex-end;--ppec-align-items:flex-end;--ppec-background:rgba(0, 0, 0, 0.2);--ppec-extensionMain-height:500px;--ppec-extensionMain-position:relative;--ppec-extensionMain-margin-right:20px;--ppec-extensionMain-margin-bottom:20px;--ppec-em-extensionList-height:100%;--ppec-em-extensionList-overflow:hidden;--ppec-em-extensionList-overflow-y:scroll;--ppec-em-extensionList-display:block;--ppec-em-extensionList-position:relative;--ppec-em-extensionList-box-shadow:0 0 3px var(--physton-common-blue);--ppec-em-extensionList-border-radius:6px 6px 4px 4px;--ppec-em-extensionList-background-color:#1e1e1ee6;--ppec-em-extensionList-transition:height 0.1s ease-in-out,width .1s ease-in-out;--ppec-em-el-extensionTable-border:0;--ppec-em-el-et-trTd-border:0;--ppec-em-el-et-trTd-margin:0;--ppec-em-el-et-trTd-font-size:14px;--ppec-em-el-et-trTd-color:#fff;--ppec-em-el-et-trTd-padding:5px;--ppec-em-el-et-trTd-background:transparent;--ppec-em-el-et-trTdHover-background:transparent;--ppec-em-el-ei-extensionCheckbox-position:relative;--ppec-em-el-ei-extensionCheckbox-box-shadow:none;--ppec-em-el-ei-extensionCheckbox-border:1px solid #7c7c7c;--ppec-em-el-ei-extensionCheckbox-border-radius:4px;--ppec-em-el-ei-extensionCheckbox-background-color:rgba(0, 0, 0, 0.02);--ppec-em-el-ei-extensionCheckbox-line-height:1.4;--ppec-em-el-ei-extensionCheckbox-width:20px;--ppec-em-el-ei-extensionCheckbox-height:20px;--ppec-em-el-ei-extensionCheckboxChecked-border-color:#1677ff;--ppec-em-el-ei-extensionCheckboxChecked-background-color:#1677ff;--ppec-em-el-ei-enEtEd-white-space:nowrap;--ppec-em-el-ei-enEtEd-overflow:hidden;--ppec-em-el-ei-enEtEd-text-overflow:ellipsis;--ppec-em-el-ei-extensionAuthor-text-align:right;--pcp-chatgptMain-position:relative;--pcp-chatgptMain-width:900px;--pcp-cm-chatgptBody-display:block;--pcp-cm-chatgptBody-position:relative;--pcp-cm-chatgptBody-box-shadow:0 0 3px var(--physton-common-blue);--pcp-cm-chatgptBody-border-radius:6px 6px 4px 4px;--pcp-cm-chatgptBody-background-color:#1e1e1ee6;--pcp-cm-chatgptBody-transition:height 0.1s ease-in-out,width .1s ease-in-out;--pcp-cm-chatgptBody-padding:20px;--pcp-cm-chatgptBody-font-size:14px;--pcp-cm-chatgptBody-color:#fff;--pcp-cm-cb-bodyPanel-border:1px solid #434343;--pcp-cm-cb-bodyPanel-border-radius:6px;--pcp-cm-cb-bodyPanel-overflow:hidden;--pcp-cm-cb-bodyPanel-margin-bottom:15px;--pcp-cm-cb-bodyPanelFold-max-height:36px;--pcp-cm-cb-bpf-panelUnfold-transform:rotate(180deg);--pcp-cm-cb-bpf-panelContent-display:none;--pcp-cm-cb-bp-panelHeader-background:#626262;--pcp-cm-cb-bp-panelHeader-width:100%;--pcp-cm-cb-bp-panelHeader-padding:5px 10px;--pcp-cm-cb-bp-panelHeader-box-sizing:border-box;--pcp-cm-cb-bp-panelHeader-display:flex;--pcp-cm-cb-bp-panelHeader-justify-content:flex-start;--pcp-cm-cb-bp-panelHeader-align-items:center;--pcp-cm-cb-bp-ph-panelUnfold-cursor:pointer;--pcp-cm-cb-bp-ph-panelUnfold-margin-right:2px;--pcp-cm-cb-bp-ph-panelUnfold-animation:all 0.3s;--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-display:flex;--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-justify-content:center;--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-align-items:center;--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-width:auto;--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-height:20px;--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-color:#02b7fd;--pcp-cm-cb-bp-ph-panelTitle-font-weight:bold;--pcp-cm-cb-bp-ph-panelTitle-font-size:16px;--pcp-cm-cb-bp-ph-panelTitle-color:#fff;--pcp-cm-cb-bp-panelContent-padding:12px;--pcp-cm-cb-bodyLine-display:flex;--pcp-cm-cb-bodyLine-justify-content:flex-start;--pcp-cm-cb-bodyLine-align-items:flex-start;--pcp-cm-cb-bodyLine-margin-bottom:10px;--pcp-cm-cb-bodyLineLastChild-margin-bottom:0;--pcp-cm-cb-bl-lineTitle-font-size:16px;--pcp-cm-cb-bl-lineTitle-font-weight:bold;--pcp-cm-cb-bl-lineTitle-color:#fff;--pcp-cm-cb-bl-lineTitle-width:140px;--pcp-cm-cb-bl-lineTitle-line-height:24px;--pcp-cm-cb-bl-lineTitle-margin-right:10px;--pcp-cm-cb-bl-lt-lineSubtitle-font-size:12px;--pcp-cm-cb-bl-lt-lineSubtitle-font-weight:normal;--pcp-cm-cb-bl-lt-lineSubtitle-color:#a4a4a4;--pcp-cm-cb-bl-lineContent-flex:1;--pcp-cm-cb-bl-lineContent-font-size:14px;--pcp-cm-cb-bl-lineContent-color:#fff;--pcp-cm-cb-bl-lc-textRight-text-align:right;--pcp-cm-cb-bl-lc-spanP-font-size:14px;--pcp-cm-cb-bl-lc-spanP-color:#fff;--pcp-cm-cb-bl-lc-p-margin:5px 0;--pcp-cm-cb-bl-lc-a-font-size:14px;--pcp-cm-cb-bl-lc-a-color:#108bb5;--pcp-cm-cb-bl-lc-a-text-decoration:underline;--pcp-cm-cb-bl-lc-inputTextareaSelect-background:rgba(30, 30, 30, 0.9);--pcp-cm-cb-bl-lc-inputTextareaSelect-border:1px solid #3c3c3c;--pcp-cm-cb-bl-lc-inputTextareaSelect-padding:4px;--pcp-cm-cb-bl-lc-inputTextareaSelect-width:100%;--pcp-cm-cb-bl-lc-inputTextareaSelect-font-size:14px;--pcp-cm-cb-bl-lc-inputTextareaSelect-color:#fff;--pcp-cm-cb-bl-lc-inputTextareaSelect-resize:none;--pcp-cm-cb-bl-lc-inputTextareaSelect-box-sizing:border-box;--pcp-cm-cb-bl-lc-inputTextareaSelectFocus-outline:none;--pcp-cm-cb-bl-lc-inputTextareaSelectFocus-border-color:var(--physton-common-blue);--pcp-cm-cb-bl-lc-textarea-line-height:20px;--pcp-cm-cb-bl-lc-commonBtn-cursor:pointer;--pcp-cm-cb-bl-lc-commonBtn-display:inline-block;--pcp-cm-cb-bl-lc-commonBtn-padding:0 30px;--pcp-cm-cb-bl-lc-commonBtn-height:30px;--pcp-cm-cb-bl-lc-commonBtn-line-height:30px;--pcp-cm-cb-bl-lc-commonBtn-color:#fff;--pcp-cm-cb-bl-lc-commonBtn-border-radius:4px;--pcp-cm-cb-bl-lc-cb-iconSvgLoading-width:auto;--pcp-cm-cb-bl-lc-cb-iconSvgLoading-height:30px;--pcp-cm-cb-bl-lc-cb-iconSvgLoading-color:none;--pcp-cm-cb-bl-lc-commonSubBtn-cursor:pointer;--pcp-cm-cb-bl-lc-commonSubBtn-display:inline-block;--pcp-cm-cb-bl-lc-commonSubBtn-padding:0 30px;--pcp-cm-cb-bl-lc-commonSubBtn-height:30px;--pcp-cm-cb-bl-lc-commonSubBtn-line-height:30px;--pcp-cm-cb-bl-lc-commonSubBtn-color:var(--physton-common-blue);--pcp-cm-cb-bl-lc-commonSubBtn-background:transparent;--pcp-cm-cb-bl-lc-commonSubBtn-border:1px solid var(--physton-common-blue);--pcp-cm-cb-bl-lc-commonSubBtn-border-radius:4px;--pap-aboutMain-position:relative;--pap-aboutMain-width:700px;--pap-cm-aboutBody-display:block;--pap-cm-aboutBody-position:relative;--pap-cm-aboutBody-box-shadow:0 0 3px var(--physton-common-blue);--pap-cm-aboutBody-border-radius:6px 6px 4px 4px;--pap-cm-aboutBody-background-color:#1e1e1ee6;--pap-cm-aboutBody-transition:height 0.1s ease-in-out,width .1s ease-in-out;--pap-cm-aboutBody-padding:20px;--pap-cm-aboutBody-font-size:14px;--pap-cm-aboutBody-color:#fff;--pap-cm-ab-a-color:#108bb5;--pap-cm-ab-a-text-decoration:underline;--pap-cm-ab-img-margin-right:5px;--pap-cm-ab-bodyTitle-margin:0 0 20px 0;--pap-cm-ab-bodyTitle-font-size:30px;--pap-cm-ab-hasNewVersion-color:var(--physton-common-red);--pap-cm-ab-hasNewVersion-animation:blink 1s linear infinite;--pap-cm-ab-versionList-height:400px;--pap-cm-ab-versionList-overflow:hidden;--pap-cm-ab-versionList-overflow-y:auto;--pap-cm-ab-versionList-border:1px solid #434343;--pap-cm-ab-versionList-border-radius:6px;--pap-cm-ab-vl-iconSvgLoading-width:auto;--pap-cm-ab-vl-iconSvgLoading-height:50px;--pap-cm-ab-vl-iconSvgLoading-color:none;--pap-cm-ab-vl-versionItem-margin:5px;--pap-cm-ab-vl-versionItem-padding:5px;--pap-cm-ab-vl-versionItem-border-bottom:1px dashed #434343;--pap-cm-ab-vl-vi-itemHeader-display:flex;--pap-cm-ab-vl-vi-itemHeader-justify-content:space-between;--pap-cm-ab-vl-vi-itemHeader-align-items:center;--pap-cm-ab-vl-vi-versionMsg-margin-top:5px;--pap-cm-ab-vl-vi-versionMsg-color:#c3c3c3;--physton-highlight-prompt-background:rgba(0, 175, 255, 0.2)}.hover-scale-120{animation:var(--hoverScale120-animation)}.hover-scale-120:hover{transform:var(--hoverScale120-hover-transform)}.hover-scale-140{animation:var(--hoverScale140-animation)}.hover-scale-140:hover{transform:var(--hoverScale140-hover-transform)}.vue-number-input{display:block;font-size:0;max-width:100%;overflow:hidden;position:relative}.vue-number-input__button{background-color:#fff;border:0;border-radius:.25rem;bottom:1px;position:absolute;top:1px;width:2.5rem;z-index:1}.vue-number-input__button:focus{outline:0}.vue-number-input__button:hover::after,.vue-number-input__button:hover::before{background-color:#0074d9}.vue-number-input__button:disabled{opacity:.65}.vue-number-input__button:disabled::after,.vue-number-input__button:disabled::before{background-color:#ddd}.vue-number-input__button::after,.vue-number-input__button::before{background-color:#111;content:"";left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:background-color .15s}.vue-number-input__button::before{height:1px;width:50%}.vue-number-input__button::after{height:50%;width:1px}.vue-number-input__button--minus{border-bottom-right-radius:0;border-right:1px solid #ddd;border-top-right-radius:0;left:1px}.vue-number-input__button--minus::after{visibility:hidden}.vue-number-input__button--plus{border-bottom-left-radius:0;border-left:1px solid #ddd;border-top-left-radius:0;right:1px}.vue-number-input__input{-moz-appearance:textfield;background-color:#fff;border:1px solid #ddd;border-radius:.25rem;display:block;font-size:1rem;line-height:1.5;max-width:100%;min-height:1.5rem;min-width:3rem;padding:.4375rem .875rem;transition:border-color .15s;width:100%}.vue-number-input__input::-webkit-inner-spin-button,.vue-number-input__input::-webkit-outer-spin-button{-webkit-appearance:none}.vue-number-input__input:focus{border-color:#0074d9;outline:0}.vue-number-input__input:disabled,.vue-number-input__input[readonly]{background-color:#f8f8f8}.vue-number-input--inline{display:inline-block}.vue-number-input--inline>input{display:inline-block;width:12.5rem}.vue-number-input--center>input{text-align:center}.vue-number-input--controls>input{padding-left:3.375rem;padding-right:3.375rem}.vue-number-input--small>input{border-radius:.1875rem;font-size:.875rem;padding:.25rem .5rem}.vue-number-input--small.vue-number-input--inline>input{width:10rem}.vue-number-input--small.vue-number-input--controls>button{width:2rem}.vue-number-input--small.vue-number-input--controls>input{padding-left:2.5rem;padding-right:2.5rem}.vue-number-input--large>input{border-radius:.3125rem;font-size:1.25rem;padding:.5rem 1rem}.vue-number-input--large.vue-number-input--inline>input{width:15rem}.vue-number-input--large.vue-number-input--controls>button{width:3rem}.vue-number-input--large.vue-number-input--controls>input{padding-left:4rem;padding-right:4rem}.physton-paste-popup{position:var(--commonPopupBg-position);top:var(--commonPopupBg-top);left:var(--commonPopupBg-left);width:var(--commonPopupBg-width);height:var(--commonPopupBg-height);z-index:var(--commonPopupBg-z-index);display:var(--commonPopupBg-display);justify-content:var(--commonPopupBg-justify-content);align-items:var(--commonPopupBg-align-items);background:var(--commonPopupBg-background)}.physton-paste-popup .paste-popup-main{width:700px;height:var(--commonPopupMain-height);padding:20px;margin:var(--commonPopupMain-margin);box-shadow:var(--commonPopupMainBackground-box-shadow);border-radius:var(--commonPopupMainBackground-border-radius);background-color:var(--commonPopupMainBackground-background-color);transition:var(--commonPopupMainBackground-transition);color:var(--commonPopupMain-color);position:relative}.physton-paste-popup .paste-popup-main .paste-popup-close{display:var(--commonPopupClose-display);padding:var(--commonPopupClose-padding);position:var(--commonPopupClose-position);right:var(--commonPopupClose-right);top:var(--commonPopupClose-top);background:var(--commonPopupClose-background);border-radius:var(--commonPopupClose-border-radius);box-shadow:var(--commonPopupClose-box-shadow);cursor:var(--commonPopupClose-cursor);z-index:var(--commonPopupClose-z-index)}.physton-paste-popup .paste-popup-main .paste-popup-close:hover{background:var(--commonPopupClose-hover-background)}.physton-paste-popup .paste-popup-main .paste-popup-close .icon-svg-close svg{width:var(--commonPopupClose-iconSvgClose-width);height:var(--commonPopupClose-iconSvgClose-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-paste-popup .paste-popup-main .paste-popup-close .icon-svg-close svg path{fill:var(--commonPopupClose-iconSvgClose-color)}.physton-paste-popup .paste-popup-main .paste-popup-title{font-size:var(--ppp-ppm-pastePopupTitle-font-size);font-weight:var(--ppp-ppm-pastePopupTitle-font-weight);margin-bottom:var(--ppp-ppm-pastePopupTitle-margin-bottom);word-break:var(--ppp-ppm-pastePopupTitle-word-break);white-space:var(--ppp-ppm-pastePopupTitle-white-space);overflow:var(--ppp-ppm-pastePopupTitle-overflow)}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-content{background:var(--ppp-ppm-ppb-pasteContent-background);border:var(--ppp-ppm-ppb-pasteContent-border);padding:var(--ppp-ppm-ppb-pasteContent-padding);width:var(--ppp-ppm-ppb-pasteContent-width);font-size:var(--ppp-ppm-ppb-pasteContent-font-size);color:var(--ppp-ppm-ppb-pasteContent-color);resize:var(--ppp-ppm-ppb-pasteContent-resize);height:var(--ppp-ppm-ppb-pasteContent-height);box-sizing:var(--ppp-ppm-ppb-pasteContent-box-sizing)}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-content:focus{outline:var(--ppp-ppm-ppb-pasteContent-hover-outline);border-color:var(--ppp-ppm-ppb-pasteContent-hover-border-color)}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit{background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size);border-radius:var(--ppp-ppm-ppb-pasteSubmit-border-radius);padding:var(--ppp-ppm-ppb-pasteSubmit-padding);margin-top:var(--ppp-ppm-ppb-pasteSubmit-margin-top);text-align:var(--ppp-ppm-ppb-pasteSubmit-text-align);color:var(--ppp-ppm-ppb-pasteSubmit-color);font-size:var(--ppp-ppm-ppb-pasteSubmit-font-size);cursor:var(--ppp-ppm-ppb-pasteSubmit-cursor);display:var(--ppp-ppm-ppb-pasteSubmit-display);justify-content:var(--ppp-ppm-ppb-pasteSubmit-justify-content);align-items:var(--ppp-ppm-ppb-pasteSubmit-align-items)}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit:hover{box-shadow:var(--ppp-ppm-ppb-pasteSubmitHover-box-shadow)}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit .icon-svg-loading svg{width:var(--ppp-ppm-ppb-ps-iconSvgLoading-width);height:var(--ppp-ppm-ppb-ps-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit .icon-svg-loading svg path{fill:var(--ppp-ppm-ppb-ps-iconSvgLoading-color)}.physton-prompt{border:var(--pp-border);padding:var(--pp-padding);margin:var(--pp-margin)}.physton-prompt div{line-height:var(--pp-div-line-height)}.physton-prompt svg{display:var(--pp-svg-display)}.physton-prompt .icon-svg{display:var(--pp-iconSvg-display);line-height:var(--pp-iconSvg-line-height)}.physton-prompt .prompt-main.fold{max-height:var(--pp-promptMainFold-max-height)}.physton-prompt .prompt-main.fold .prompt-unfold{transform:var(--pp-pmf-promptUnfold-transform)}.physton-prompt .prompt-main.fold .prompt-tags{display:var(--pp-pmf-promptTags-display)}.physton-prompt .prompt-header{margin:var(--pp-promptHeader-margin);padding:var(--pp-promptHeader-padding);display:var(--pp-promptHeader-display);justify-content:var(--pp-promptHeader-justify-content);align-items:var(--pp-promptHeader-align-items);border-bottom:var(--pp-promptHeader-border-bottom);flex-wrap:var(--pp-promptHeader-flex-wrap)}.physton-prompt .prompt-header>*{margin-right:var(--pp-promptHeaderAny-margin-right)}.physton-prompt .prompt-header>:last-child{margin-right:var(--pp-promptHeaderAnyLastChild-margin-right)}.physton-prompt .prompt-header .prompt-unfold{cursor:var(--pp-ph-promptUnfold-cursor);margin-right:var(--pp-ph-promptUnfold-margin-right);animation:var(--pp-ph-promptUnfold-animation)}.physton-prompt .prompt-header .prompt-unfold .icon-svg-unfold svg{width:var(--pp-ph-pu-iconSvgUnfold-width);height:var(--pp-ph-pu-iconSvgUnfold-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .prompt-unfold .icon-svg-unfold svg path{fill:var(--pp-ph-pu-iconSvgUnfold-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-i18n svg{width:var(--pp-ph-ebi-iconSvgI18n-width);height:var(--pp-ph-ebi-iconSvgI18n-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-i18n svg path{fill:var(--pp-ph-ebi-iconSvgI18n-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-setting svg{width:var(--pp-ph-ebi-iconSvgSetting-width);height:var(--pp-ph-ebi-iconSvgSetting-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-setting svg path{fill:var(--pp-ph-ebi-iconSvgSetting-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-history svg{width:var(--pp-ph-ebi-iconSvgHistory-width);height:var(--pp-ph-ebi-iconSvgHistory-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-history svg path{fill:var(--pp-ph-ebi-iconSvgHistory-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-favorite svg{width:var(--pp-ph-ebi-iconSvgFavorite-width);height:var(--pp-ph-ebi-iconSvgFavorite-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-favorite svg path{fill:var(--pp-ph-ebi-iconSvgFavorite-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-translate svg{width:var(--pp-ph-ebi-iconSvgTranslate-width);height:var(--pp-ph-ebi-iconSvgTranslate-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-translate svg path{fill:var(--pp-ph-ebi-iconSvgTranslate-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-english svg{width:var(--pp-ph-ebi-iconSvgEnglish-width);height:var(--pp-ph-ebi-iconSvgEnglish-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-english svg path{fill:var(--pp-ph-ebi-iconSvgEnglish-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-loading svg{width:var(--pp-ph-ebi-iconSvgLoading-width);height:var(--pp-ph-ebi-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-loading svg path{fill:var(--pp-ph-ebi-iconSvgLoading-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-copy svg{width:var(--pp-ph-ebi-iconSvgCopy-width);height:var(--pp-ph-ebi-iconSvgCopy-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-copy svg path{fill:var(--pp-ph-ebi-iconSvgCopy-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-remove svg{width:var(--pp-ph-ebi-iconSvgRemove-width);height:var(--pp-ph-ebi-iconSvgRemove-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-remove svg path{fill:var(--pp-ph-ebi-iconSvgRemove-color)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-chatgpt svg{width:var(--pp-ph-ebi-iconSvgChatgpt-width);height:var(--pp-ph-ebi-iconSvgChatgpt-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .extend-btn-item .icon-svg-chatgpt svg path{fill:var(--pp-ph-ebi-iconSvgChatgpt-color)}.physton-prompt .prompt-header .setting-box .icon-svg-api svg{width:var(--pp-ph-sb-iconSvgApi-width);height:var(--pp-ph-sb-iconSvgApi-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .setting-box .icon-svg-api svg path{fill:var(--pp-ph-sb-iconSvgApi-color)}.physton-prompt .prompt-header .setting-box .icon-svg-format svg{width:var(--pp-ph-sb-iconSvgFormat-width);height:var(--pp-ph-sb-iconSvgFormat-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .setting-box .icon-svg-format svg path{fill:var(--pp-ph-sb-iconSvgFormat-color)}.physton-prompt .prompt-header .setting-box .icon-svg-theme svg{width:var(--pp-ph-sb-iconSvgTheme-width);height:var(--pp-ph-sb-iconSvgTheme-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .setting-box .icon-svg-theme svg path{fill:var(--pp-ph-sb-iconSvgTheme-color)}.physton-prompt .prompt-header .setting-box .icon-svg-translate svg{width:var(--pp-ph-sb-iconSvgTranslate-width);height:var(--pp-ph-sb-iconSvgTranslate-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .setting-box .icon-svg-translate svg path{fill:var(--pp-ph-sb-iconSvgTranslate-color)}.physton-prompt .prompt-header .setting-box .icon-svg-english svg{width:var(--pp-ph-sb-iconSvgEnglish-width);height:var(--pp-ph-sb-iconSvgEnglish-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .setting-box .icon-svg-english svg path{fill:var(--pp-ph-sb-iconSvgEnglish-color)}.physton-prompt .prompt-header .setting-box .icon-svg-remove-space svg{width:var(--pp-ph-sb-iconSvgRemoveSpace-width);height:var(--pp-ph-sb-iconSvgRemoveSpace-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .setting-box .icon-svg-remove-space svg path{fill:var(--pp-ph-sb-iconSvgRemoveSpace-color)}.physton-prompt .prompt-header .setting-box .icon-svg-tooltip svg{width:var(--pp-ph-sb-iconSvgTooltip-width);height:var(--pp-ph-sb-iconSvgTooltip-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .setting-box .icon-svg-tooltip svg path{fill:var(--pp-ph-sb-iconSvgTooltip-color)}.physton-prompt .prompt-header .setting-box .icon-svg-about svg{width:var(--pp-ph-sb-iconSvgAbout-width);height:var(--pp-ph-sb-iconSvgAbout-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .setting-box .icon-svg-about svg path{fill:var(--pp-ph-sb-iconSvgAbout-color)}.physton-prompt .prompt-header .icon-svg-input svg{width:var(--pp-ph-iconSvgInput-width);height:var(--pp-ph-iconSvgInput-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .icon-svg-input svg path{fill:var(--pp-ph-iconSvgInput-color)}.physton-prompt .prompt-header .prompt-append-list .icon-svg-wrap svg{width:var(--pp-ph-pal-iconSvgWrap-width);height:var(--pp-ph-pal-iconSvgWrap-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .prompt-append-list .icon-svg-wrap svg path{fill:var(--pp-ph-pal-iconSvgWrap-color)}.physton-prompt .prompt-header .prompt-append-list .icon-svg-history svg{width:var(--pp-ph-pal-iconSvgHistory-width);height:var(--pp-ph-pal-iconSvgHistory-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .prompt-append-list .icon-svg-history svg path{fill:var(--pp-ph-pal-iconSvgHistory-color)}.physton-prompt .prompt-header .prompt-append-list .icon-svg-favorite svg{width:var(--pp-ph-pal-iconSvgFavorite-width);height:var(--pp-ph-pal-iconSvgFavorite-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-header .prompt-append-list .icon-svg-favorite svg path{fill:var(--pp-ph-pal-iconSvgFavorite-color)}.physton-prompt .prompt-header .prompt-header-title{font-weight:var(--pp-ph-promptHeaderTitle-font-weight);font-size:var(--pp-ph-promptHeaderTitle-font-size);white-space:var(--pp-ph-promptHeaderTitle-white-space)}.physton-prompt .prompt-header .prompt-header-counter{font-size:var(--pp-ph-promptHeaderCounter-font-size);min-width:var(--pp-ph-promptHeaderCounter-min-width)}.physton-prompt .prompt-header .prompt-header-break{flex-basis:var(--pp-ph-promptHeaderBreak-flex-basis);height:var(--pp-ph-promptHeaderBreak-height);margin-bottom:var(--pp-ph-promptHeaderBreak-margin-bottom)}.physton-prompt .prompt-header .prompt-header-extend{margin-right:var(--pp-ph-promptHeaderExtend-margin-right);display:var(--pp-ph-promptHeaderExtend-display);justify-content:var(--pp-ph-promptHeaderExtend-justify-content);align-items:var(--pp-ph-promptHeaderExtend-align-items)}.physton-prompt .prompt-header .prompt-header-extend:last-child{margin-right:var(--pp-ph-promptHeaderExtendLastChild-margin-right)}.physton-prompt .prompt-header .prompt-header-extend .extend-title{font-size:var(--pp-ph-phe-extendTitle-font-size);margin-right:var(--pp-ph-phe-extendTitle-margin-right)}.physton-prompt .prompt-header .prompt-header-extend.prompt-append{position:var(--pp-ph-phe-promptAppend-position);flex:var(--pp-ph-phe-promptAppend-flex)}.physton-prompt .prompt-header .prompt-header-extend.prompt-append .extend-content{width:var(--pp-ph-phe-pa-extendContent-width);display:var(--pp-ph-phe-pa-extendContent-display);justify-content:var(--pp-ph-phe-pa-extendContent-justify-content);align-items:var(--pp-ph-phe-pa-extendContent-align-items)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn,.physton-prompt .prompt-header .prompt-header-extend .extend-content select{padding:var(--pp-ph-phe-ec-selectSelectBtn-padding);font-size:var(--pp-ph-phe-ec-selectSelectBtn-font-size);appearance:var(--pp-ph-phe-ec-selectSelectBtn-appearance);border:var(--pp-ph-phe-ec-selectSelectBtn-border);background:var(--pp-ph-phe-ec-selectSelectBtn-background);color:var(--pp-ph-phe-ec-selectSelectBtn-color);height:var(--pp-ph-phe-ec-selectSelectBtn-height);line-height:var(--pp-ph-phe-ec-selectSelectBtn-line-height)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn:hover,.physton-prompt .prompt-header .prompt-header-extend .extend-content select:hover{border-color:var(--pp-ph-phe-ec-selectSelectBtnHover-border-color)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn{cursor:var(--pp-ph-phe-ec-selectBtn-cursor);padding:var(--pp-ph-phe-ec-selectBtn-padding)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn:hover{background:var(--pp-ph-phe-ec-selectBtnHover-background);border-color:var(--pp-ph-phe-ec-selectBtnHover-border-color)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .autocompleteResults{top:var(--pp-ph-phe-ec-autocompleteresults-top)!important}.physton-prompt .prompt-header .prompt-header-extend .extend-content .input-tag-append{display:var(--pp-ph-phe-ec-inputTagAppend-display);height:var(--pp-ph-phe-ec-inputTagAppend-height)!important;padding:var(--pp-ph-phe-ec-inputTagAppend-padding)!important;border:var(--pp-ph-phe-ec-inputTagAppend-border);appearance:var(--pp-ph-phe-ec-inputTagAppend-appearance);background-color:var(--pp-ph-phe-ec-inputTagAppend-background-color);font-size:var(--pp-ph-phe-ec-inputTagAppend-font-size)!important;line-height:var(--pp-ph-phe-ec-inputTagAppend-line-height)!important;font-family:var(--pp-ph-phe-ec-inputTagAppend-font-family);font-weight:var(--pp-ph-phe-ec-inputTagAppend-font-weight);border-radius:var(--pp-ph-phe-ec-inputTagAppend-border-radius)!important;min-width:var(--pp-ph-phe-ec-inputTagAppend-min-width);width:var(--pp-ph-phe-ec-inputTagAppend-width);text-align:var(--pp-ph-phe-ec-inputTagAppend-text-align);resize:var(--pp-ph-phe-ec-inputTagAppend-resize)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .input-tag-append:focus{box-shadow:var(--pp-ph-phe-ec-inputTagAppendFocus-box-shadow)!important;border-color:var(--pp-ph-phe-ec-inputTagAppendFocus-border-color)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group{display:var(--pp-ph-phe-ec-extendBtnGroup-display);justify-content:var(--pp-ph-phe-ec-extendBtnGroup-justify-content);align-items:var(--pp-ph-phe-ec-extendBtnGroup-align-items);color:var(--pp-ph-phe-ec-extendBtnGroup-color);background:var(--pp-ph-phe-ec-extendBtnGroup-background);border:var(--pp-ph-phe-ec-extendBtnGroup-border);padding:var(--pp-ph-phe-ec-extendBtnGroup-padding);border-radius:var(--pp-ph-phe-ec-extendBtnGroup-border-radius)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item{cursor:var(--pp-ph-phe-ec-ebg-extendBtnItem-cursor);height:var(--pp-ph-phe-ec-ebg-extendBtnItem-height);width:var(--pp-ph-phe-ec-ebg-extendBtnItem-width);display:var(--pp-ph-phe-ec-ebg-extendBtnItem-display);justify-content:var(--pp-ph-phe-ec-ebg-extendBtnItem-justify-content);align-items:var(--pp-ph-phe-ec-ebg-extendBtnItem-align-items);position:var(--pp-ph-phe-ec-ebg-extendBtnItem-position)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item:first-child{border-left:var(--pp-ph-phe-ec-ebg-extendBtnItemFirstChild-border-left);margin-left:var(--pp-ph-phe-ec-ebg-extendBtnItemFirstChild-margin-left)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item:hover .setting-box{display:var(--pp-ph-phe-ec-ebg-ebih-settingBox-display)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item:hover.red-dot>.icon-svg-about:after,.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item:hover.red-dot>.icon-svg-setting:after{display:var(--pp-ph-phe-ec-ebg-ebihrd-iconAfter-display)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item.red-dot>.icon-svg-about:after,.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item.red-dot>.icon-svg-setting:after{content:var(--pp-ph-phe-ec-ebg-ebird-iconAfter-content);display:var(--pp-ph-phe-ec-ebg-ebird-iconAfter-display);width:var(--pp-ph-phe-ec-ebg-ebird-iconAfter-width);height:var(--pp-ph-phe-ec-ebg-ebird-iconAfter-height);background:var(--pp-ph-phe-ec-ebg-ebird-iconAfter-background);border-radius:var(--pp-ph-phe-ec-ebg-ebird-iconAfter-border-radius);position:var(--pp-ph-phe-ec-ebg-ebird-iconAfter-position);top:var(--pp-ph-phe-ec-ebg-ebird-iconAfter-top);right:var(--pp-ph-phe-ec-ebg-ebird-iconAfter-right)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item .setting-box{display:var(--pp-ph-phe-ec-ebg-ebi-settingBox-display);position:var(--pp-ph-phe-ec-ebg-ebi-settingBox-position);background:var(--pp-ph-phe-ec-ebg-ebi-settingBox-background);top:var(--pp-ph-phe-ec-ebg-ebi-settingBox-top);left:var(--pp-ph-phe-ec-ebg-ebi-settingBox-left);justify-content:var(--pp-ph-phe-ec-ebg-ebi-settingBox-justify-content);align-items:var(--pp-ph-phe-ec-ebg-ebi-settingBox-align-items);width:var(--pp-ph-phe-ec-ebg-ebi-settingBox-width);height:var(--pp-ph-phe-ec-ebg-ebi-settingBox-height);padding:var(--pp-ph-phe-ec-ebg-ebi-settingBox-padding);box-shadow:var(--pp-ph-phe-ec-ebg-ebi-settingBox-box-shadow);border-radius:var(--pp-ph-phe-ec-ebg-ebi-settingBox-border-radius);z-index:var(--pp-ph-phe-ec-ebg-ebi-settingBox-z-index)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item .setting-box>*{margin-left:var(--pp-ph-phe-ec-ebg-ebi-settingBoxAny-margin-left)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item .setting-box>:first-child{margin-left:var(--pp-ph-phe-ec-ebg-ebi-settingBoxAnyFirstChild-margin-left)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .gradio-button,.physton-prompt .prompt-header .prompt-header-extend .extend-content a{height:var(--pp-ph-phe-ec-ebg-gradioButtonA-height)!important;min-height:var(--pp-ph-phe-ec-ebg-gradioButtonA-min-height)!important;max-height:var(--pp-ph-phe-ec-ebg-gradioButtonA-max-height)!important}.physton-prompt .prompt-header .prompt-header-extend .extend-content .gradio-checkbox{cursor:var(--pp-ph-phe-ec-gradioCheckbox-cursor)}.physton-prompt .prompt-header .prompt-header-extend .extend-content input[type=checkbox]{position:var(--pp-ph-phe-ec-inputCheckbox-position);box-shadow:var(--pp-ph-phe-ec-inputCheckbox-box-shadow);border:var(--pp-ph-phe-ec-inputCheckbox-border);border-radius:var(--pp-ph-phe-ec-inputCheckbox-border-radius);background-color:var(--pp-ph-phe-ec-inputCheckbox-background-color);line-height:var(--pp-ph-phe-ec-inputCheckbox-line-height);width:var(--pp-ph-phe-ec-inputCheckbox-width);height:var(--pp-ph-phe-ec-inputCheckbox-height)}.physton-prompt .prompt-header .prompt-header-extend .extend-content input[type=checkbox]:checked{border-color:var(--pp-ph-phe-ec-inputCheckboxChecked-border-color);background-color:var(--pp-ph-phe-ec-inputCheckboxChecked-background-color)}.physton-prompt .prompt-tags{display:var(--pp-promptTags-display);flex-wrap:var(--pp-promptTags-flex-wrap);justify-content:var(--pp-promptTags-justify-content);align-items:var(--pp-promptTags-align-items);position:var(--pp-promptTags-position);padding:var(--pp-promptTags-padding)}.physton-prompt .prompt-tags.droping .btn-tag-extend,.physton-prompt .prompt-tags.selecting .btn-tag-extend{display:var(--pp-pt-ds-btnTagExtend-display)!important}.physton-prompt .prompt-tags.selecting *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.physton-prompt .prompt-tags .prompt-tag-edit .icon-svg-wrap svg{width:var(--pp-pt-pte-iconSvgWrap-width);height:var(--pp-pt-pte-iconSvgWrap-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .prompt-tag-edit .icon-svg-wrap svg path{fill:var(--pp-pt-pte-iconSvgWrap-color)}.physton-prompt .prompt-tags .btn-tag-delete .icon-svg-close svg{width:var(--pp-pt-btd-iconSvgClose-width);height:var(--pp-pt-btd-iconSvgClose-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-delete .icon-svg-close svg path{fill:var(--pp-pt-btd-iconSvgClose-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-weight-parentheses-inc svg{width:var(--pp-pt-bte-iconSvgWeightParenthesesInc-width);height:var(--pp-pt-bte-iconSvgWeightParenthesesInc-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-weight-parentheses-inc svg path{fill:var(--pp-pt-bte-iconSvgWeightParenthesesInc-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-weight-parentheses-dec svg{width:var(--pp-pt-bte-iconSvgWeightParenthesesDec-width);height:var(--pp-pt-bte-iconSvgWeightParenthesesDec-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-weight-parentheses-dec svg path{fill:var(--pp-pt-bte-iconSvgWeightParenthesesDec-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-weight-brackets-inc svg{width:var(--pp-pt-bte-iconSvgWeightBracketsInc-width);height:var(--pp-pt-bte-iconSvgWeightBracketsInc-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-weight-brackets-inc svg path{fill:var(--pp-pt-bte-iconSvgWeightBracketsInc-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-weight-brackets-dec svg{width:var(--pp-pt-bte-iconSvgWeightBracketsDec-width);height:var(--pp-pt-bte-iconSvgWeightBracketsDec-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-weight-brackets-dec svg path{fill:var(--pp-pt-bte-iconSvgWeightBracketsDec-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-english svg{width:var(--pp-pt-bte-iconSvgEnglish-width);height:var(--pp-pt-bte-iconSvgEnglish-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-english svg path{fill:var(--pp-pt-bte-iconSvgEnglish-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-loading svg{width:var(--pp-pt-bte-iconSvgLoading-width);height:var(--pp-pt-bte-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-loading svg path{fill:var(--pp-pt-bte-iconSvgLoading-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-copy svg{width:var(--pp-pt-bte-iconSvgCopy-width);height:var(--pp-pt-bte-iconSvgCopy-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-copy svg path{fill:var(--pp-pt-bte-iconSvgCopy-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-disabled svg{width:var(--pp-pt-bte-iconSvgDisabled-width);height:var(--pp-pt-bte-iconSvgDisabled-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-disabled svg path{fill:var(--pp-pt-bte-iconSvgDisabled-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-enable svg{width:var(--pp-pt-bte-iconSvgEnable-width);height:var(--pp-pt-bte-iconSvgEnable-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-enable svg path{fill:var(--pp-pt-bte-iconSvgEnable-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-wrap svg{width:var(--pp-pt-bte-iconSvgWrap-width);height:var(--pp-pt-bte-iconSvgWrap-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-wrap svg path{fill:var(--pp-pt-bte-iconSvgWrap-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-favorite-no svg{width:var(--pp-pt-bte-iconSvgFavoriteNo-width);height:var(--pp-pt-bte-iconSvgFavoriteNo-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-favorite-no svg path{fill:var(--pp-pt-bte-iconSvgFavoriteNo-color)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-favorite-yes svg{width:var(--pp-pt-bte-iconSvgFavoriteYes-width);height:var(--pp-pt-bte-iconSvgFavoriteYes-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .btn-tag-extend .icon-svg-favorite-yes svg path{fill:var(--pp-pt-bte-iconSvgFavoriteYes-color)}.physton-prompt .prompt-tags .prompt-local-language .icon-svg-translate svg{width:var(--pp-pt-pll-iconSvgTranslate-width);height:var(--pp-pt-pll-iconSvgTranslate-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .prompt-local-language .icon-svg-translate svg path{fill:var(--pp-pt-pll-iconSvgTranslate-color)}.physton-prompt .prompt-tags .prompt-local-language .icon-svg-loading svg{width:var(--pp-pt-pll-iconSvgLoading-width);height:var(--pp-pt-pll-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .prompt-local-language .icon-svg-loading svg path{fill:var(--pp-pt-pll-iconSvgLoading-color)}.physton-prompt .prompt-tags .drop-select-bg{position:var(--pp-pt-dropSelectBg-position);display:var(--pp-pt-dropSelectBg-display);left:var(--pp-pt-dropSelectBg-left);top:var(--pp-pt-dropSelectBg-top);width:var(--pp-pt-dropSelectBg-width);height:var(--pp-pt-dropSelectBg-height);z-index:var(--pp-pt-dropSelectBg-z-index)}.physton-prompt .prompt-tags .drop-select-box{position:var(--pp-pt-dropSelectBox-position);display:var(--pp-pt-dropSelectBox-display);left:var(--pp-pt-dropSelectBox-left);top:var(--pp-pt-dropSelectBox-top);width:var(--pp-pt-dropSelectBox-width);height:var(--pp-pt-dropSelectBox-height);box-sizing:var(--pp-pt-dropSelectBox-box-sizing);background:var(--pp-pt-dropSelectBox-background);border:var(--pp-pt-dropSelectBox-border);z-index:var(--pp-pt-dropSelectBox-z-index)}.physton-prompt .prompt-tags .drop-select-btns{position:var(--pp-pt-dropSelectBtns-position);display:var(--pp-pt-dropSelectBtns-display);left:var(--pp-pt-dropSelectBtns-left);top:var(--pp-pt-dropSelectBtns-top);width:var(--pp-pt-dropSelectBtns-width);height:var(--pp-pt-dropSelectBtns-height);z-index:var(--pp-pt-dropSelectBtns-z-index);justify-content:var(--pp-pt-dropSelectBtns-justify-content);align-items:var(--pp-pt-dropSelectBtns-align-items);padding:var(--pp-pt-dropSelectBtns-padding);box-sizing:var(--pp-pt-dropSelectBtns-box-sizing);box-shadow:var(--pp-pt-dropSelectBtns-box-shadow);background:var(--pp-pt-dropSelectBtns-background);border-radius:var(--pp-pt-dropSelectBtns-border-radius);overflow:var(--pp-pt-dropSelectBtns-overflow)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-copy svg{width:var(--pp-pt-dsb-iconSvgCopy-width);height:var(--pp-pt-dsb-iconSvgCopy-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-copy svg path{fill:var(--pp-pt-dsb-iconSvgCopy-color)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-disabled svg{width:var(--pp-pt-dsb-iconSvgDisabled-width);height:var(--pp-pt-dsb-iconSvgDisabled-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-disabled svg path{fill:var(--pp-pt-dsb-iconSvgDisabled-color)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-enable svg{width:var(--pp-pt-dsb-iconSvgEnable-width);height:var(--pp-pt-dsb-iconSvgEnable-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-enable svg path{fill:var(--pp-pt-dsb-iconSvgEnable-color)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-favorite-no svg{width:var(--pp-pt-dsb-iconSvgFavoriteNo-width);height:var(--pp-pt-dsb-iconSvgFavoriteNo-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-favorite-no svg path{fill:var(--pp-pt-dsb-iconSvgFavoriteNo-color)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-favorite-yes svg{width:var(--pp-pt-dsb-iconSvgFavoriteYes-width);height:var(--pp-pt-dsb-iconSvgFavoriteYes-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-favorite-yes svg path{fill:var(--pp-pt-dsb-iconSvgFavoriteYes-color)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-remove svg{width:var(--pp-pt-dsb-iconSvgRemove-width);height:var(--pp-pt-dsb-iconSvgRemove-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt .prompt-tags .drop-select-btns .icon-svg-remove svg path{fill:var(--pp-pt-dsb-iconSvgRemove-color)}.physton-prompt .prompt-tags .drop-select-btns .btns-title{color:var(--pp-pt-dsb-btnsTitle-color);padding:var(--pp-pt-dsb-btnsTitle-padding);border-right:var(--pp-pt-dsb-btnsTitle-border-right);height:var(--pp-pt-dsb-btnsTitle-height);line-height:var(--pp-pt-dsb-btnsTitle-line-height)}.physton-prompt .prompt-tags .drop-select-btns>button{height:var(--pp-pt-dsb-button-height);width:var(--pp-pt-dsb-button-width);border:var(--pp-pt-dsb-button-border);border-radius:var(--pp-pt-dsb-button-border-radius);padding:var(--pp-pt-dsb-button-padding);min-width:var(--pp-pt-dsb-button-min-width);font-size:var(--pp-pt-dsb-button-font-size);min-height:var(--pp-pt-dsb-button-min-height);background:var(--pp-pt-dsb-button-background);color:var(--pp-pt-dsb-button-color);border-right:var(--pp-pt-dsb-button-border-right)}.physton-prompt .prompt-tags .drop-select-btns>button:last-child{border-right:var(--pp-pt-dsb-buttonLastChild-border-right)}.physton-prompt .prompt-tags .drop-select-btns>button:hover{background:var(--pp-pt-dsb-buttonHover-background)}.physton-prompt .prompt-tags .prompt-tags-list{display:var(--pp-pt-dsb-promptTagsList-display);flex-wrap:var(--pp-pt-dsb-promptTagsList-flex-wrap);justify-content:var(--pp-pt-dsb-promptTagsList-justify-content);align-items:var(--pp-pt-dsb-promptTagsList-align-items);width:var(--pp-pt-dsb-promptTagsList-width)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-wrap{display:var(--pp-pt-dsb-ptl-promptWrap-display);flex-basis:var(--pp-pt-dsb-ptl-promptWrap-flex-basis);height:var(--pp-pt-dsb-ptl-promptWrap-height);margin:var(--pp-pt-dsb-ptl-promptWrap-margin);padding:var(--pp-pt-dsb-ptl-promptWrap-padding)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag{margin-bottom:var(--pp-pt-dsb-ptl-promptTag-margin-bottom);margin-right:var(--pp-pt-dsb-ptl-promptTag-margin-right);display:var(--pp-pt-dsb-ptl-promptTag-display);align-items:var(--pp-pt-dsb-ptl-promptTag-align-items);max-width:var(--pp-pt-dsb-ptl-promptTag-max-width)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag:last-child{margin-right:var(--pp-pt-dsb-ptl-promptTagLastChild-margin-right)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag.disabled .prompt-tag-edit{opacity:var(--pp-pt-dsb-ptl-ptd-promptTagEdit-opacity)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag.drop-selected .prompt-tag-value,.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag.sortable-selected .prompt-tag-value{background:var(--pp-pt-dsb-ptl-pt-ss-ds-promptTagValue-background)!important}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main{width:var(--pp-pt-dsb-ptl-pt-promptTagMain-width);display:var(--pp-pt-dsb-ptl-pt-promptTagMain-display);justify-content:var(--pp-pt-dsb-ptl-pt-promptTagMain-justify-content);align-items:var(--pp-pt-dsb-ptl-pt-promptTagMain-align-items);position:var(--pp-pt-dsb-ptl-pt-promptTagMain-position)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main:hover .btn-tag-extend,.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main:hover .prompt-tag-edit{box-shadow:var(--pp-pt-dsb-ptl-pt-ptmh-pte-btnTagExtend-box-shadow)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main:hover .btn-tag-extend{display:var(--pp-pt-dsb-ptl-pt-ptmh-btnTagExtend-display)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit{width:var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-width);display:var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-display);justify-content:var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-justify-content);align-items:var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-align-items);position:var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-position);border-radius:var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-border-radius);min-height:var(--pp-pt-dsb-ptl-pt-ptm-promptTagEdit-min-height)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value{width:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-width);padding:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-padding);font-size:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-font-size);height:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-height);border-radius:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-radius);border-top-right-radius:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-top-right-radius);border-bottom-right-radius:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border-bottom-right-radius);display:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-display);align-items:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-align-items);justify-content:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-justify-content);color:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-color);background:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-background);border:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.neg-tag{color:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueNegTag-color)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.lora-tag{color:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraTag-color)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.lora-not-exists{background:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraNotExists-background);animation:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLoraNotExists-animation)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.lyco-tag{color:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoTag-color)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.lyco-not-exists{background:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoNotExists-background);animation:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueLycoNotExists-animation)}@keyframes lora-not-exists{0%{opacity:1}50%{opacity:.7}100%{opacity:1}}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value.embedding-tag{color:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueEmbeddingTag-color)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value:hover{border-color:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-border-color);background:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-background);color:var(--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-color)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value .character{line-height:var(--pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-line-height);white-space:var(--pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-white-space);word-break:var(--pp-pt-dsb-ptl-pt-ptm-pte-ptv-character-word-break)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value .weight-character{color:var(--pp-pt-dsb-ptl-pt-ptm-pte-ptv-weightCharacter-color)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .input-tag-edit{padding:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-padding);max-width:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-max-width);border-radius:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-radius)!important;border-top-right-radius:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-top-right-radius)!important;border-bottom-right-radius:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-border-bottom-right-radius)!important;max-height:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-max-height);resize:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-resize);line-height:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-line-height);font-size:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-font-size);background:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-background);min-height:var(--pp-pt-dsb-ptl-pt-ptm-pte-inputTagEdit-min-height)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete{display:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-display);justify-content:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-justify-content);align-items:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-align-items);cursor:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-cursor);border:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border);background:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-background);padding:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-padding);width:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-width);height:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-height);border-left:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-left);border-radius:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-radius);border-top-right-radius:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-top-right-radius);border-bottom-right-radius:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border-bottom-right-radius)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete:hover{background:var(--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDeleteHover-bbackground)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete:hover svg{fill:var(--pp-pt-dsb-ptl-pt-ptm-pte-btdh-svg-fill)!important}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend{display:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-display);justify-content:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-justify-content);align-items:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-align-items);position:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-position);top:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-top);left:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-left);z-index:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-z-index);padding:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-padding);box-shadow:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-box-shadow);background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size);border-radius:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-border-radius);overflow:var(--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-overflow)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend>button{height:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-height);width:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-width);border:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-border);border-radius:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-border-radius);padding:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-padding);min-width:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-min-width);font-size:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-font-size);min-height:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-min-height);background:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-background);color:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-color);border-right:var(--pp-pt-dsb-ptl-pt-ptm-bte-button-border-right)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend>button:last-child{border-right:var(--pp-pt-dsb-ptl-pt-ptm-bte-buttonLastChild-border-right)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend>button:hover{background:var(--pp-pt-dsb-ptl-pt-ptm-bte-buttonHover-background)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend>input{width:var(--pp-pt-dsb-ptl-pt-ptm-bte-input-width);border:var(--pp-pt-dsb-ptl-pt-ptm-bte-input-border)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend .input-number{width:var(--pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-width);border:var(--pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-border);padding:var(--pp-pt-dsb-ptl-pt-ptm-bte-inputNumer-padding)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend .input-number .vue-number-input__button{width:var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-width);background:var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-background)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend .input-number .vue-number-input__input{height:var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-height);border:var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-border);padding:var(--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__input-padding)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend input[type=number]::-webkit-inner-spin-button,.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend input[type=number]::-webkit-outer-spin-button{opacity:1}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-local-language{margin-top:var(--pp-pt-dsb-ptl-pt-promptLocalLanguage-margin-top);display:var(--pp-pt-dsb-ptl-pt-promptLocalLanguage-display);justify-content:var(--pp-pt-dsb-ptl-pt-promptLocalLanguage-justify-content);align-items:var(--pp-pt-dsb-ptl-pt-promptLocalLanguage-align-items)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-local-language .translate-to-local{cursor:var(--pp-pt-dsb-ptl-pt-pll-translateToLocal-cursor)}.physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-local-language .local-language{font-size:var(--pp-pt-dsb-ptl-pt-pll-localLanguage-font-size);color:var(--pp-pt-dsb-ptl-pt-pll-localLanguage-color);margin-left:var(--pp-pt-dsb-ptl-pt-pll-localLanguage-margin-left);pointer-events:var(--pp-pt-dsb-ptl-pt-pll-localLanguage-pointer-events)}.physton-prompt .prompt-tags input[type=text],.physton-prompt .prompt-tags input[type=number]{display:var(--pp-pt-input-display);overflow-y:var(--pp-pt-input-overflow-y);height:var(--pp-pt-input-height);padding:var(--pp-pt-input-padding);border:var(--pp-pt-input-border);appearance:var(--pp-pt-input-appearance);background-color:var(--pp-pt-input-background-color);font-size:var(--pp-pt-input-font-size);line-height:var(--pp-pt-input-line-height);font-family:var(--pp-pt-input-font-family);font-weight:var(--pp-pt-input-font-weight);border-radius:var(--pp-pt-input-border-radius)}.physton-prompt .prompt-tags input[type=text]:focus,.physton-prompt .prompt-tags input[type=number]:focus{box-shadow:var(--pp-pt-inputFocus-box-shadow);border-color:var(--pp-pt-inputFocus-border-color)}.physton-prompt .prompt-tags .gradio-button{max-width:var(--pp-pt-gradioButton-max-width)!important;width:var(--pp-pt-gradioButton-width)!important;padding:var(--pp-pt-gradioButton-padding)!important}.physton-prompt .prompt-append-list{width:var(--pp-pt-promptAppendList-width);height:var(--commonPopupMain-height);padding:var(--pp-pt-promptAppendList-padding);margin:var(--commonPopupMain-margin);box-shadow:var(--commonPopupMainBackground-box-shadow);border-radius:var(--commonPopupMainBackground-border-radius);background-color:var(--commonPopupMainBackground-background-color);transition:var(--commonPopupMainBackground-transition);color:var(--commonPopupMain-color);position:var(--pp-pt-promptAppendList-position);z-index:var(--pp-pt-promptAppendList-z-index);background:var(--pp-pt-promptAppendList-background)}.physton-prompt .prompt-append-list .prompt-append-group{font-size:var(--pp-pt-pal-promptAppendGroup-font-size);color:var(--pp-pt-pal-promptAppendGroup-color);padding:var(--pp-pt-pal-promptAppendGroup-padding);cursor:var(--pp-pt-pal-promptAppendGroup-cursor);position:var(--pp-pt-pal-promptAppendGroup-position)}.physton-prompt .prompt-append-list .prompt-append-group.selected,.physton-prompt .prompt-append-list .prompt-append-group:hover{background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size)}.physton-prompt .prompt-append-list .prompt-append-group.selected .append-group-list,.physton-prompt .prompt-append-list .prompt-append-group:hover .append-group-list{display:var(--pp-pt-pal-paghs-appendGroupList-display)}.physton-prompt .prompt-append-list .prompt-append-group .append-group-name{display:var(--pp-pt-pal-pag-appendGroupName-display);justify-content:var(--pp-pt-pal-pag-appendGroupName-justify-content);align-items:var(--pp-pt-pal-pag-appendGroupName-align-items);cursor:var(--pp-pt-pal-pag-appendGroupName-cursor);flex-wrap:var(--pp-pt-pal-pag-appendGroupName-flex-wrap);white-space:var(--pp-pt-pal-pag-appendGroupName-white-space)}.physton-prompt .prompt-append-list .prompt-append-group .append-group-name .name-icon{margin-right:var(--pp-pt-pal-pag-agn-nameIcon-margin-right)}.physton-prompt .prompt-append-list .prompt-append-group .append-group-name .arrow-right{margin-left:var(--pp-pt-pal-pag-agn-arrowRight-margin-left)}.physton-prompt .prompt-append-list .prompt-append-group .append-group-name .arrow-right::after{content:var(--pp-pt-pal-pag-agn-arrowRightAfter-content);display:var(--pp-pt-pal-pag-agn-arrowRightAfter-display);width:var(--pp-pt-pal-pag-agn-arrowRightAfter-width);height:var(--pp-pt-pal-pag-agn-arrowRightAfter-height);border-top:var(--pp-pt-pal-pag-agn-arrowRightAfter-border-top);border-bottom:var(--pp-pt-pal-pag-agn-arrowRightAfter-border-bottom);border-left:var(--pp-pt-pal-pag-agn-arrowRightAfter-border-left)}.physton-prompt .prompt-append-list .prompt-append-group .append-group-list{box-shadow:var(--commonPopupMainBackground-box-shadow);border-radius:var(--commonPopupMainBackground-border-radius);background-color:var(--commonPopupMainBackground-background-color);transition:var(--commonPopupMainBackground-transition);background:var(--pp-pt-pal-pag-appendGroupList-background);display:var(--pp-pt-pal-pag-appendGroupList-display);position:var(--pp-pt-pal-pag-appendGroupList-position);top:var(--pp-pt-pal-pag-appendGroupList-top);left:var(--pp-pt-pal-pag-appendGroupList-left);height:var(--pp-pt-pal-pag-appendGroupList-height);overflow:var(--pp-pt-pal-pag-appendGroupList-overflow);overflow-y:var(--pp-pt-pal-pag-appendGroupList-overflow-y)}.physton-prompt .prompt-append-list .prompt-append-group .append-group-list .append-item{width:var(--pp-pt-pal-pag-agl-appendItem-width);font-size:var(--pp-pt-pal-pag-agl-appendItem-font-size);color:var(--pp-pt-pal-pag-agl-appendItem-color);padding:var(--pp-pt-pal-pag-agl-appendItem-padding);cursor:var(--pp-pt-pal-pag-agl-appendItem-cursor);position:var(--pp-pt-pal-pag-agl-appendItem-position)}.physton-prompt .prompt-append-list .prompt-append-group .append-group-list .append-item.selected,.physton-prompt .prompt-append-list .prompt-append-group .append-group-list .append-item:hover{background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size)}.physton-prompt .prompt-append-list .prompt-append-group .append-group-list .append-item .tags-name{width:var(--pp-pt-pal-pag-agl-ai-tagsName-width);overflow:var(--pp-pt-pal-pag-agl-ai-tagsName-overflow);text-overflow:var(--pp-pt-pal-pag-agl-ai-tagsName-text-overflow);white-space:var(--pp-pt-pal-pag-agl-ai-tagsName-white-space);display:var(--pp-pt-pal-pag-agl-ai-tagsName-display)}.physton-prompt .prompt-append-list .prompt-append-group .tags-detail{position:var(--pp-pt-pal-pag-tagsDetail-position);right:var(--pp-pt-pal-pag-tagsDetail-right);top:var(--pp-pt-pal-pag-tagsDetail-top);width:var(--pp-pt-pal-pag-tagsDetail-width);z-index:var(--pp-pt-pal-pag-tagsDetail-z-index);background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size);box-shadow:var(--commonPopupMainBackground-box-shadow);border-radius:var(--commonPopupMainBackground-border-radius);background-color:var(--commonPopupMainBackground-background-color);transition:var(--commonPopupMainBackground-transition);opacity:var(--pp-pt-pal-pag-tagsDetail-opacity);padding:var(--pp-pt-pal-pag-tagsDetail-padding);color:var(--pp-pt-pal-pag-tagsDetail-color)}.physton-prompt .prompt-append-list .prompt-append-group .tags-detail .tags-list{display:var(--pp-pt-pal-pag-td-tagsList-display);justify-content:var(--pp-pt-pal-pag-td-tagsList-justify-content);align-items:var(--pp-pt-pal-pag-td-tagsList-align-items);flex-wrap:var(--pp-pt-pal-pag-td-tagsList-flex-wrap)}.physton-prompt .prompt-append-list .prompt-append-group .tags-detail .tags-list .item-wrap{flex-basis:var(--pp-pt-pal-pag-td-tl-itemWrap-flex-basis);height:var(--pp-pt-pal-pag-td-tl-itemWrap-height);margin:var(--pp-pt-pal-pag-td-tl-itemWrap-margin);padding:var(--pp-pt-pal-pag-td-tl-itemWrap-padding)}.physton-prompt .prompt-append-list .prompt-append-group .tags-detail .tags-list .tags-item{margin-right:var(--pp-pt-pal-pag-td-tl-tagsItem-margin-right);margin-bottom:var(--pp-pt-pal-pag-td-tl-tagsItem-margin-bottom)}.physton-prompt .prompt-append-list .prompt-append-group .tags-detail .tags-list .tags-item:last-child{margin-right:var(--pp-pt-pal-pag-td-tl-tagsItemLastChild-margin-right)}.physton-prompt .prompt-append-list .prompt-append-group .tags-detail .tags-list .tags-item .item-tag-value{padding:var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-padding);border-radius:var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-border-radius);background:var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-background);font-size:var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-font-size);color:var(--pp-pt-pal-pag-td-tl-ti-itemTagValue-color)}.physton-prompt .prompt-append-list .prompt-append-group .tags-detail .tags-list .tags-item .item-tag-local-value{font-size:var(--pp-pt-pal-pag-td-tl-ti-itemTagLocalValue-font-size);margin-top:var(--pp-pt-pal-pag-td-tl-ti-itemTagLocalValue-margin-top)}.physton-prompt-favorite,.physton-prompt-history{width:var(--ppfpph-width);height:var(--commonPopupMain-height);padding:var(--ppfpph-padding);margin:var(--commonPopupMain-margin);box-shadow:var(--commonPopupMainBackground-box-shadow);border-radius:var(--commonPopupMainBackground-border-radius);background-color:var(--commonPopupMainBackground-background-color);transition:var(--commonPopupMainBackground-transition);color:var(--commonPopupMain-color);position:var(--ppfpph-position);z-index:var(--ppfpph-z-index);top:var(--ppfpph-top);left:var(--ppfpph-left);overflow:var(--ppfpph-overflow)}.physton-prompt-favorite .popup-tabs,.physton-prompt-history .popup-tabs{display:var(--ppfpph-popupTabs-display);justify-content:var(--ppfpph-popupTabs-justify-content);align-items:var(--ppfpph-popupTabs-align-items);border-top-left-radius:var(--ppfpph-popupTabs-border-top-left-radius);border-top-right-radius:var(--ppfpph-popupTabs-border-top-right-radius);overflow:var(--ppfpph-popupTabs-overflow)}.physton-prompt-favorite .popup-tabs .popup-tab,.physton-prompt-history .popup-tabs .popup-tab{padding:var(--ppfpph-pt-popupTab-padding);cursor:var(--ppfpph-pt-popupTab-cursor);position:var(--ppfpph-pt-popupTab-position);flex:var(--ppfpph-pt-popupTab-flex);border-bottom:var(--ppfpph-pt-popupTab-border-bottom)}.physton-prompt-favorite .popup-tabs .popup-tab.active,.physton-prompt-favorite .popup-tabs .popup-tab:hover,.physton-prompt-history .popup-tabs .popup-tab.active,.physton-prompt-history .popup-tabs .popup-tab:hover{background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size);border-bottom:var(--ppfpph-pt-popupTabHoverActive-border-bottom)}.physton-prompt-favorite .popup-tabs .popup-tab .tab-count,.physton-prompt-favorite .popup-tabs .popup-tab .tab-name,.physton-prompt-favorite .popup-tabs .popup-tab .tab-type,.physton-prompt-history .popup-tabs .popup-tab .tab-count,.physton-prompt-history .popup-tabs .popup-tab .tab-name,.physton-prompt-history .popup-tabs .popup-tab .tab-type{text-align:var(--ppfpph-pt-pt-tntytc-text-align);color:var(--ppfpph-pt-pt-tntytc-color)}.physton-prompt-favorite .popup-tabs .popup-tab .tab-name,.physton-prompt-history .popup-tabs .popup-tab .tab-name{font-size:var(--ppfpph-pt-pt-tabName-font-size)}.physton-prompt-favorite .popup-tabs .popup-tab .tab-type,.physton-prompt-history .popup-tabs .popup-tab .tab-type{font-size:var(--ppfpph-pt-pt-tabType-font-size);margin-top:var(--ppfpph-pt-pt-tabType-margin-top)}.physton-prompt-favorite .popup-tabs .popup-tab .tab-count,.physton-prompt-history .popup-tabs .popup-tab .tab-count{display:var(--ppfpph-pt-pt-tabCount-display)}.physton-prompt-favorite .popup-detail,.physton-prompt-history .popup-detail{position:var(--ppfpph-popupDetail-position);left:var(--ppfpph-popupDetail-left);top:var(--ppfpph-popupDetail-top);width:var(--ppfpph-popupDetail-width);z-index:var(--ppfpph-popupDetail-z-index);background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size);box-shadow:var(--commonPopupMainBackground-box-shadow);border-radius:var(--commonPopupMainBackground-border-radius);background-color:var(--commonPopupMainBackground-background-color);transition:var(--commonPopupMainBackground-transition);padding:var(--ppfpph-popupDetail-padding);color:var(--ppfpph-popupDetail-color)}.physton-prompt-favorite .popup-detail .popup-item-tags,.physton-prompt-history .popup-detail .popup-item-tags{display:var(--ppfpph-pd-popupItemTags-display);justify-content:var(--ppfpph-pd-popupItemTags-justify-content);align-items:var(--ppfpph-pd-popupItemTags-align-items);flex-wrap:var(--ppfpph-pd-popupItemTags-flex-wrap)}.physton-prompt-favorite .popup-detail .popup-item-tags .item-wrap,.physton-prompt-history .popup-detail .popup-item-tags .item-wrap{flex-basis:var(--ppfpph-pd-pit-itemWrap-flex-basis);height:var(--ppfpph-pd-pit-itemWrap-height);margin:var(--ppfpph-pd-pit-itemWrap-margin);padding:var(--ppfpph-pd-pit-itemWrap-padding)}.physton-prompt-favorite .popup-detail .popup-item-tags .item-tag,.physton-prompt-history .popup-detail .popup-item-tags .item-tag{margin-right:var(--ppfpph-pd-pit-itemTag-margin-right);margin-bottom:var(--ppfpph-pd-pit-itemTag-margin-bottom)}.physton-prompt-favorite .popup-detail .popup-item-tags .item-tag:last-child,.physton-prompt-history .popup-detail .popup-item-tags .item-tag:last-child{margin-right:var(--ppfpph-pd-pit-itemTagLastChild-margin-right)}.physton-prompt-favorite .popup-detail .popup-item-tags .item-tag .item-tag-value,.physton-prompt-history .popup-detail .popup-item-tags .item-tag .item-tag-value{padding:var(--ppfpph-pd-pit-it-itemTagValue-padding);border-radius:var(--ppfpph-pd-pit-it-itemTagValue-border-radius);background:var(--ppfpph-pd-pit-it-itemTagValue-background);font-size:var(--ppfpph-pd-pit-it-itemTagValue-font-size);color:var(--ppfpph-pd-pit-it-itemTagValue-color)}.physton-prompt-favorite .popup-detail .popup-item-tags .item-tag .item-tag-local-value,.physton-prompt-history .popup-detail .popup-item-tags .item-tag .item-tag-local-value{font-size:var(--ppfpph-pd-pit-it-it-localValue-font-size);margin-top:var(--ppfpph-pd-pit-it-it-localValue-margin-top)}.physton-prompt-favorite .popup-tab-content,.physton-prompt-history .popup-tab-content{display:var(--ppfpph-popupTabContent-display);width:var(--ppfpph-popupTabContent-width);height:var(--ppfpph-popupTabContent-height)}.physton-prompt-favorite .popup-tab-content.active,.physton-prompt-history .popup-tab-content.active{display:var(--ppfpph-popupTabContentActive-display)}.physton-prompt-favorite .popup-tab-content .content-list,.physton-prompt-history .popup-tab-content .content-list{width:var(--ppfpph-ptc-contentList-width);height:var(--ppfpph-ptc-contentList-height);overflow:var(--ppfpph-ptc-contentList-overflow);overflow-y:var(--ppfpph-ptc-contentList-overflow-y)}.physton-prompt-favorite .popup-tab-content .content-list .clear-btn,.physton-prompt-history .popup-tab-content .content-list .clear-btn{background:var(--ppfpph-ptc-cl-clearBtn-background);position:var(--ppfpph-ptc-cl-clearBtn-position);top:var(--ppfpph-ptc-cl-clearBtn-top);padding:var(--ppfpph-ptc-cl-clearBtn-padding);cursor:var(--ppfpph-ptc-cl-clearBtn-cursor);border-bottom:var(--ppfpph-ptc-cl-clearBtn-border-bottom);color:var(--ppfpph-ptc-cl-clearBtn-color);text-align:var(--ppfpph-ptc-cl-clearBtn-text-align);display:var(--ppfpph-ptc-cl-clearBtn-display);justify-content:var(--ppfpph-ptc-cl-clearBtn-justify-content);align-items:var(--ppfpph-ptc-cl-clearBtn-align-items)}.physton-prompt-favorite .popup-tab-content .content-list .clear-btn:hover,.physton-prompt-history .popup-tab-content .content-list .clear-btn:hover{border-bottom:var(--ppfpph-ptc-cl-clearBtnHover-border-bottom);font-weight:var(--ppfpph-ptc-cl-clearBtnHover-font-weight)}.physton-prompt-favorite .popup-tab-content .content-list .clear-btn .icon-svg-remove svg,.physton-prompt-history .popup-tab-content .content-list .clear-btn .icon-svg-remove svg{width:var(--ppfpph-ptc-cl-cb-iconSvgRemove-width);height:var(--ppfpph-ptc-cl-cb-iconSvgRemove-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-favorite .popup-tab-content .content-list .clear-btn .icon-svg-remove svg path,.physton-prompt-history .popup-tab-content .content-list .clear-btn .icon-svg-remove svg path{fill:var(--ppfpph-ptc-cl-cb-iconSvgRemove-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item,.physton-prompt-history .popup-tab-content .content-list .content-item{padding:var(--ppfpph-ptc-cl-contentItem-padding);border-bottom:var(--ppfpph-ptc-cl-contentItem-border-bottom);cursor:var(--ppfpph-ptc-cl-contentItem-cursor)}.physton-prompt-favorite .popup-tab-content .content-list .content-item:hover,.physton-prompt-history .popup-tab-content .content-list .content-item:hover{background:var(--ppfpph-ptc-cl-contentItemHover-background)}.physton-prompt-favorite .popup-tab-content .content-list .content-item:hover .item-prompt,.physton-prompt-history .popup-tab-content .content-list .content-item:hover .item-prompt{overflow:var(--ppfpph-ptc-cl-cih-itemPrompt-overflow);white-space:var(--ppfpph-ptc-cl-cih-itemPrompt-white-space)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header{display:var(--ppfpph-ptc-cl-ci-itemHeader-display);justify-content:var(--ppfpph-ptc-cl-ci-itemHeader-justify-content);align-items:var(--ppfpph-ptc-cl-ci-itemHeader-align-items);margin-bottom:var(--ppfpph-ptc-cl-ci-itemHeader-margin-bottom)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right{display:var(--ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-display);justify-content:var(--ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-justify-content);align-items:var(--ppfpph-ptc-cl-ci-ih-itemHeaderLeftRight-align-items)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-remove svg,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-remove svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-remove svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-remove svg{width:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-width);height:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-remove svg path,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-remove svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-remove svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-remove svg path{fill:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgRemove-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-favorite-yes svg,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-favorite-yes svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-favorite-yes svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-favorite-yes svg{width:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-width);height:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-favorite-yes svg path,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-favorite-yes svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-favorite-yes svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-favorite-yes svg path{fill:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteYes-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-favorite-no svg,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-favorite-no svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-favorite-no svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-favorite-no svg{width:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-width);height:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-favorite-no svg path,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-favorite-no svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-favorite-no svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-favorite-no svg path{fill:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgFavoriteNo-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-copy svg,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-copy svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-copy svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-copy svg{width:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-width);height:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-copy svg path,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-copy svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-copy svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-copy svg path{fill:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgCopy-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-use svg,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-use svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-use svg,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-use svg{width:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-width);height:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-use svg path,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-use svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .icon-svg-use svg path,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right .icon-svg-use svg path{fill:var(--ppfpph-ptc-cl-ci-ih-ihlr-iconSvgUse-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left>div,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right>div,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left>div,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right>div{margin-right:var(--ppfpph-ptc-cl-ci-ih-ihlr-div-margin-right);font-size:var(--ppfpph-ptc-cl-ci-ih-ihlr-div-font-size);color:var(--ppfpph-ptc-cl-ci-ih-ihlr-div-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left>div:last-child,.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right>div:last-child,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left>div:last-child,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right>div:last-child{margin-right:var(--ppfpph-ptc-cl-ci-ih-ihlr-divLastChild-margin-right)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left{flex:var(--ppfpph-ptc-cl-ci-ih-itemHeaderLeft-flex)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-index,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-index{background:var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-background);padding:var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-padding);width:var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-width);text-align:var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderIndex-text-align)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-time,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-time{width:var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderTime-width)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-name,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-name{flex:var(--ppfpph-ptc-cl-ci-ih-ihl-itemHeaderName-flex)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-name .header-name-input,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-name .header-name-input{background:var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-background);border:var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-border);height:var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-height);padding:var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-padding);width:var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-width);font-size:var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-font-size);color:var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInput-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-name .header-name-input:focus,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-left .item-header-name .header-name-input:focus{outline:var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInputFocus-outline);border-color:var(--ppfpph-ptc-cl-ci-ih-ihl-ihn-headerNameInputFocus-border-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-header .item-header-right,.physton-prompt-history .popup-tab-content .content-list .content-item .item-header .item-header-right{font-size:var(--ppfpph-ptc-cl-ci-ih-itemHeaderRight-font-size);color:var(--ppfpph-ptc-cl-ci-ih-itemHeaderRight-color)}.physton-prompt-favorite .popup-tab-content .content-list .content-item .item-prompt,.physton-prompt-history .popup-tab-content .content-list .content-item .item-prompt{margin-top:var(--ppfpph-ptc-cl-ci-itemPrompt-margin-top);font-size:var(--ppfpph-ptc-cl-ci-itemPrompt-font-size);line-height:var(--ppfpph-ptc-cl-ci-itemPrompt-line-height);color:var(--ppfpph-ptc-cl-ci-itemPrompt-color);overflow:var(--ppfpph-ptc-cl-ci-itemPrompt-overflow);text-overflow:var(--ppfpph-ptc-cl-ci-itemPrompt-text-overflow);white-space:var(--ppfpph-ptc-cl-ci-itemPrompt-white-space)}.physton-prompt-favorite .popup-tab-content .content-empty,.physton-prompt-history .popup-tab-content .content-empty{height:var(--ppfpph-ptc-contentEmpty-height);display:var(--ppfpph-ptc-contentEmpty-display);justify-content:var(--ppfpph-ptc-contentEmpty-justify-content);align-items:var(--ppfpph-ptc-contentEmpty-align-items)}.physton-prompt-favorite .popup-tab-content .content-empty .icon-svg-loading svg,.physton-prompt-history .popup-tab-content .content-empty .icon-svg-loading svg{width:var(--ppfpph-ptc-ce-iconSvgLoading-width);height:var(--ppfpph-ptc-ce-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-favorite .popup-tab-content .content-empty .icon-svg-loading svg path,.physton-prompt-history .popup-tab-content .content-empty .icon-svg-loading svg path{fill:var(--ppfpph-ptc-ce-iconSvgLoading-color)}.physton-prompt-favorite .popup-tab-content .content-empty span,.physton-prompt-history .popup-tab-content .content-empty span{font-size:var(--ppfpph-ptc-ce-span-font-size);color:var(--ppfpph-ptc-ce-span-color)}.physton-prompt-select-language{position:var(--commonPopupBg-position);top:var(--commonPopupBg-top);left:var(--commonPopupBg-left);width:var(--commonPopupBg-width);height:var(--commonPopupBg-height);z-index:var(--commonPopupBg-z-index);display:var(--commonPopupBg-display);justify-content:var(--commonPopupBg-justify-content);align-items:var(--commonPopupBg-align-items);background:var(--commonPopupBg-background)}.physton-prompt-select-language .language-main{height:var(--ppsl-languageMain-height);position:var(--ppsl-languageMain-position)}.physton-prompt-select-language .language-main .language-close{display:var(--commonPopupClose-display);padding:var(--commonPopupClose-padding);position:var(--commonPopupClose-position);right:var(--commonPopupClose-right);top:var(--commonPopupClose-top);background:var(--commonPopupClose-background);border-radius:var(--commonPopupClose-border-radius);box-shadow:var(--commonPopupClose-box-shadow);cursor:var(--commonPopupClose-cursor);z-index:var(--commonPopupClose-z-index)}.physton-prompt-select-language .language-main .language-close:hover{background:var(--commonPopupClose-hover-background)}.physton-prompt-select-language .language-main .language-close .icon-svg-close svg{width:var(--commonPopupClose-iconSvgClose-width);height:var(--commonPopupClose-iconSvgClose-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-select-language .language-main .language-close .icon-svg-close svg path{fill:var(--commonPopupClose-iconSvgClose-color)}.physton-prompt-select-language .language-main .language-list{height:var(--ppsl-languageList-height);overflow:var(--ppsl-languageList-overflow);overflow-y:var(--ppsl-languageList-overflow-y);display:var(--ppsl-languageList-display);position:var(--ppsl-languageList-position);box-shadow:var(--ppsl-languageList-box-shadow);border-radius:var(--ppsl-languageList-border-radius);background-color:var(--ppsl-languageList-background-color);transition:var(--ppsl-languageList-transition)}.physton-prompt-select-language .language-main .language-list .language-item{font-size:var(--ppsl-ll-languageItem-font-size);color:var(--ppsl-ll-languageItem-color);padding:var(--ppsl-ll-languageItem-padding);cursor:var(--ppsl-ll-languageItem-cursor)}.physton-prompt-select-language .language-main .language-list .language-item.selected,.physton-prompt-select-language .language-main .language-list .language-item:hover{background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size)}.physton-prompt-format{position:var(--commonPopupBg-position);top:var(--commonPopupBg-top);left:var(--commonPopupBg-left);width:var(--commonPopupBg-width);height:var(--commonPopupBg-height);z-index:var(--commonPopupBg-z-index);display:var(--commonPopupBg-display);justify-content:var(--commonPopupBg-justify-content);align-items:var(--commonPopupBg-align-items);background:var(--commonPopupBg-background)}.physton-prompt-format .format-main{min-height:var(--ppf-formatMain-min-height);position:var(--ppf-formatMain-position)}.physton-prompt-format .format-main .format-close{display:var(--commonPopupClose-display);padding:var(--commonPopupClose-padding);position:var(--commonPopupClose-position);right:var(--commonPopupClose-right);top:var(--commonPopupClose-top);background:var(--commonPopupClose-background);border-radius:var(--commonPopupClose-border-radius);box-shadow:var(--commonPopupClose-box-shadow);cursor:var(--commonPopupClose-cursor);z-index:var(--commonPopupClose-z-index)}.physton-prompt-format .format-main .format-close:hover{background:var(--commonPopupClose-hover-background)}.physton-prompt-format .format-main .format-close .icon-svg-close svg{width:var(--commonPopupClose-iconSvgClose-width);height:var(--commonPopupClose-iconSvgClose-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-format .format-main .format-close .icon-svg-close svg path{fill:var(--commonPopupClose-iconSvgClose-color)}.physton-prompt-format .format-main .format-list{display:var(--ppf-fm-formatList-display);position:var(--ppf-fm-formatList-position);box-shadow:var(--ppf-fm-formatList-box-shadow);border-radius:var(--ppf-fm-formatList-border-radius);background-color:var(--ppf-fm-formatList-background-color);transition:var(--ppf-fm-formatList-transition);padding:var(--ppf-fm-formatList-padding)}.physton-prompt-format .format-main .format-list .format-item{display:var(--ppf-fm-fl-formatItem-display);justify-content:var(--ppf-fm-fl-formatItem-justify-content);align-items:var(--ppf-fm-fl-formatItem-align-items);margin-top:var(--ppf-fm-fl-formatItem-margin-top)}.physton-prompt-format .format-main .format-list .format-item:first-child{margin-top:var(--ppf-fm-fl-formatItemFirstChild-margin-top)}.physton-prompt-format .format-main .format-list .format-item .format-checkbox{position:var(--ppf-fm-fl-fi-formatCheckbox-position);box-shadow:var(--ppf-fm-fl-fi-formatCheckbox-box-shadow);border:var(--ppf-fm-fl-fi-formatCheckbox-border);border-radius:var(--ppf-fm-fl-fi-formatCheckbox-border-radius);background-color:var(--ppf-fm-fl-fi-formatCheckbox-background-color);line-height:var(--ppf-fm-fl-fi-formatCheckbox-line-height);width:var(--ppf-fm-fl-fi-formatCheckbox-width);height:var(--ppf-fm-fl-fi-formatCheckbox-height);margin-top:var(--ppf-fm-fl-fi-formatCheckbox-margin-top)}.physton-prompt-format .format-main .format-list .format-item .format-checkbox:checked{border-color:var(--ppf-fm-fl-fi-formatCheckboxChecked-border-color);background-color:var(--ppf-fm-fl-fi-formatCheckboxChecked-background-color)}.physton-prompt-format .format-main .format-list .format-item .format-desc{font-size:var(--ppf-fm-fl-fi-formatDesc-font-size);line-height:var(--ppf-fm-fl-fi-formatDesc-line-height);color:var(--ppf-fm-fl-fi-formatDesc-color);margin-left:var(--ppf-fm-fl-fi-formatDesc-margin-left)}.physton-packages-state{position:var(--commonPopupBg-position);top:var(--commonPopupBg-top);left:var(--commonPopupBg-left);width:var(--commonPopupBg-width);height:var(--commonPopupBg-height);z-index:var(--commonPopupBg-z-index);display:var(--commonPopupBg-display);justify-content:var(--commonPopupBg-justify-content);align-items:var(--commonPopupBg-align-items);background:var(--commonPopupBg-background);z-index:var(--pps-z-index)}.physton-packages-state .state-main{min-height:var(--pps-stateMain-min-height);position:var(--pps-stateMain-position)}.physton-packages-state .state-main .state-close{display:var(--commonPopupClose-display);padding:var(--commonPopupClose-padding);position:var(--commonPopupClose-position);right:var(--commonPopupClose-right);top:var(--commonPopupClose-top);background:var(--commonPopupClose-background);border-radius:var(--commonPopupClose-border-radius);box-shadow:var(--commonPopupClose-box-shadow);cursor:var(--commonPopupClose-cursor);z-index:var(--commonPopupClose-z-index)}.physton-packages-state .state-main .state-close:hover{background:var(--commonPopupClose-hover-background)}.physton-packages-state .state-main .state-close .icon-svg-close svg{width:var(--commonPopupClose-iconSvgClose-width);height:var(--commonPopupClose-iconSvgClose-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-packages-state .state-main .state-close .icon-svg-close svg path{fill:var(--commonPopupClose-iconSvgClose-color)}.physton-packages-state .state-main .state-body{display:var(--pps-sm-stateBody-display);position:var(--pps-sm-stateBody-position);box-shadow:var(--pps-sm-stateBody-box-shadow);border-radius:var(--pps-sm-stateBody-border-radius);background-color:var(--pps-sm-stateBody-background-color);transition:var(--pps-sm-stateBody-transition);padding:var(--pps-sm-stateBody-padding);font-size:var(--pps-sm-stateBody-font-size);color:var(--pps-sm-stateBody-color)}.physton-packages-state .state-main .state-body .today-now-show{position:var(--pps-sm-sb-todayNowShow-position);right:var(--pps-sm-sb-todayNowShow-right);top:var(--pps-sm-sb-todayNowShow-top)}.physton-packages-state .state-main .state-body .today-now-show label{display:var(--pps-sm-sb-tns-label-display);justify-content:var(--pps-sm-sb-tns-label-justify-content);align-items:var(--pps-sm-sb-tns-label-align-items);color:var(--pps-sm-sb-tns-label-color)}.physton-packages-state .state-main .state-body .today-now-show input[type=checkbox]{margin-right:var(--pps-sm-sb-tns-input-margin-right);width:var(--pps-sm-sb-tns-input-width);height:var(--pps-sm-sb-tns-input-height)}.physton-packages-state .state-main .state-body .state-body-name{font-size:var(--pps-sm-sb-stateBodyName-font-size);font-weight:var(--pps-sm-sb-stateBodyName-font-weight);margin-bottom:var(--pps-sm-sb-stateBodyName-margin-bottom)}.physton-packages-state .state-main .state-body .state-body-language{color:var(--pps-sm-sb-stateBodyLanguage-color);background:var(--pps-sm-sb-stateBodyLanguage-background);border:var(--pps-sm-sb-stateBodyLanguage-border);padding:var(--pps-sm-sb-stateBodyLanguage-padding);line-height:var(--pps-sm-sb-stateBodyLanguage-line-height);border-radius:var(--pps-sm-sb-stateBodyLanguage-border-radius);margin-bottom:var(--pps-sm-sb-stateBodyLanguage-margin-bottom);display:var(--pps-sm-sb-stateBodyLanguage-display);width:var(--pps-sm-sb-stateBodyLanguage-width);cursor:var(--pps-sm-sb-stateBodyLanguage-cursor)}.physton-packages-state .state-main .state-body .state-body-language:hover{background:var(--pps-sm-sb-stateBodyLanguageHover-background);border-color:var(--pps-sm-sb-stateBodyLanguageHover-border-color)}.physton-packages-state .state-main .state-body .state-body-language .icon-svg-i18n svg{width:var(--pps-sm-sb-sbl-iconSvgI18n-width);height:var(--pps-sm-sb-sbl-iconSvgI18n-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-packages-state .state-main .state-body .state-body-language .icon-svg-i18n svg path{fill:var(--pps-sm-sb-sbl-iconSvgI18n-color)}.physton-packages-state .state-main .state-body .state-body-language .icon-svg-i18n{margin:var(--pps-sm-sb-sbl-iconSvgI18n-margin)}.physton-packages-state .state-main .state-body .state-body-desc{color:var(--pps-sm-sb-stateBodyDesc-color);font-size:var(--pps-sm-sb-stateBodyDesc-font-size);white-space:var(--pps-sm-sb-stateBodyDesc-white-space);word-break:var(--pps-sm-sb-stateBodyDesc-word-break)}.physton-packages-state .state-main .state-body .package-list{margin-top:var(--pps-sm-sb-packageList-margin-top);border:var(--pps-sm-sb-packageList-border);padding:var(--pps-sm-sb-packageList-padding)}.physton-packages-state .state-main .state-body .package-list .package-item{padding:var(--pps-sm-sb-pl-packageItem-padding);display:var(--pps-sm-sb-pl-packageItem-display);justify-content:var(--pps-sm-sb-pl-packageItem-justify-content);align-items:var(--pps-sm-sb-pl-packageItem-align-items)}.physton-packages-state .state-main .state-body .package-list .package-item .package-name{width:var(--pps-sm-sb-pl-pi-packageName-width)}.physton-packages-state .state-main .state-body .package-list .package-item .package-state{width:var(--pps-sm-sb-pl-pi-packageState-width)}.physton-packages-state .state-main .state-body .package-list .package-item .package-state.not_install{color:var(--pps-sm-sb-pl-pi-packageStateNotInstall-color)}.physton-packages-state .state-main .state-body .package-list .package-item .package-command{white-space:var(--pps-sm-sb-pl-pi-packageCommand-white-space)}.physton-packages-state .state-main .state-body .btn-packages-install{cursor:var(--pps-sm-sb-btnPackagesInstall-cursor);display:var(--pps-sm-sb-btnPackagesInstall-display);padding:var(--pps-sm-sb-btnPackagesInstall-padding);height:var(--pps-sm-sb-btnPackagesInstall-height);line-height:var(--pps-sm-sb-btnPackagesInstall-line-height);color:var(--pps-sm-sb-btnPackagesInstall-color);background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size);border-radius:var(--pps-sm-sb-btnPackagesInstall-border-radius);margin-top:var(--pps-sm-sb-btnPackagesInstall-margin-top)}.physton-packages-state .state-main .state-body .btn-packages-install .icon-svg-loading svg{width:var(--pps-sm-sb-bpi-iconSvgLoading-width);height:var(--pps-sm-sb-bpi-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-packages-state .state-main .state-body .btn-packages-install .icon-svg-loading svg path{fill:var(--pps-sm-sb-bpi-iconSvgLoading-color)}.physton-packages-state .state-main .state-body .install-result{margin-top:var(--pps-sm-sb-installResult-margin-top);border:var(--pps-sm-sb-installResult-border);padding:var(--pps-sm-sb-installResult-padding)}.physton-packages-state .state-main .state-body .install-result .result-content{margin-top:var(--pps-sm-sb-ir-resultContent-margin-top);white-space:var(--pps-sm-sb-ir-resultContent-white-space);color:var(--pps-sm-sb-ir-resultContent-color);line-height:var(--pps-sm-sb-ir-resultContent-line-height);overflow:var(--pps-sm-sb-ir-resultContent-overflow);overflow-y:var(--pps-sm-sb-ir-resultContent-overflow-y);border:var(--pps-sm-sb-ir-resultContent-border);padding:var(--pps-sm-sb-ir-resultContent-padding);max-height:var(--pps-sm-sb-ir-resultContent-max-height)}.physton-prompt-translate-setting{position:var(--commonPopupBg-position);top:var(--commonPopupBg-top);left:var(--commonPopupBg-left);width:var(--commonPopupBg-width);height:var(--commonPopupBg-height);z-index:var(--commonPopupBg-z-index);display:var(--commonPopupBg-display);justify-content:var(--commonPopupBg-justify-content);align-items:var(--commonPopupBg-align-items);background:var(--commonPopupBg-background)}.physton-prompt-translate-setting .translate-setting-main{width:700px;height:var(--commonPopupMain-height);padding:20px;margin:var(--commonPopupMain-margin);box-shadow:var(--commonPopupMainBackground-box-shadow);border-radius:var(--commonPopupMainBackground-border-radius);background-color:var(--commonPopupMainBackground-background-color);transition:var(--commonPopupMainBackground-transition);color:var(--commonPopupMain-color);position:relative}.physton-prompt-translate-setting .translate-setting-main .translate-setting-content{max-height:var(--ppts-tsm-translateSettingContent-max-height);overflow:var(--ppts-tsm-translateSettingContent-overflow);overflow-y:var(--ppts-tsm-translateSettingContent-overflow-y);padding:var(--ppts-tsm-translateSettingContent-padding);border:var(--ppts-tsm-translateSettingContent-border);border-radius:var(--ppts-tsm-translateSettingContent-border-radius)}.physton-prompt-translate-setting .translate-setting-main .translate-setting-content::-webkit-scrollbar{width:var(--ppts-tsm-translateSettingContentWebkitScrollbar-width);height:var(--ppts-tsm-translateSettingContentWebkitScrollbar-height)}.physton-prompt-translate-setting .translate-setting-main .setting-line{display:var(--ppts-tsm-settingLine-display);justify-content:var(--ppts-tsm-settingLine-justify-content);align-items:var(--ppts-tsm-settingLine-align-items);margin-bottom:var(--ppts-tsm-settingLine-margin-bottom)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-title{font-size:var(--ppts-tsm-sl-lineTitle-font-size);font-weight:var(--ppts-tsm-sl-lineTitle-font-weight);color:var(--ppts-tsm-sl-lineTitle-color);width:var(--ppts-tsm-sl-lineTitle-width);line-height:var(--ppts-tsm-sl-lineTitle-line-height)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content{flex:var(--ppts-tsm-sl-lineContent-flex);font-size:var(--ppts-tsm-sl-lineContent-font-size);color:var(--ppts-tsm-sl-lineContent-color)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content p,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content span{font-size:var(--ppts-tsm-sl-lc-spanP-font-size);color:var(--ppts-tsm-sl-lc-spanP-color)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content p{margin:var(--ppts-tsm-sl-lc-p-margin)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content a{font-size:var(--ppts-tsm-sl-lc-a-font-size);color:var(--ppts-tsm-sl-lc-a-color);text-decoration:var(--ppts-tsm-sl-lc-a-text-decoration)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .common-red{color:var(--ppts-tsm-sl-lc-commonRed-color);font-size:var(--ppts-tsm-sl-lc-commonRed-font-size)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .api-name{display:var(--ppts-tsm-sl-lc-apiName-display);background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size);color:var(--ppts-tsm-sl-lc-apiName-color);border-radius:var(--ppts-tsm-sl-lc-apiName-border-radius);padding:var(--ppts-tsm-sl-lc-apiName-padding)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content input[type=text],.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content select,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content textarea{background:var(--ppts-tsm-sl-lc-inputTextareaSelect-background);border:var(--ppts-tsm-sl-lc-inputTextareaSelect-border);padding:var(--ppts-tsm-sl-lc-inputTextareaSelect-padding);width:var(--ppts-tsm-sl-lc-inputTextareaSelect-width);font-size:var(--ppts-tsm-sl-lc-inputTextareaSelect-font-size);color:var(--ppts-tsm-sl-lc-inputTextareaSelect-color);resize:var(--ppts-tsm-sl-lc-inputTextareaSelect-resize)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content input[type=text]:focus,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content select:focus,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content textarea:focus{outline:var(--ppts-tsm-sl-lc-inputTextareaSelectFocus-outline);border-color:var(--ppts-tsm-sl-lc-inputTextareaSelectFocus-border-color)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .onlyCsvOnAuto{cursor:var(--ppts-tsm-sl-lc-onlyCsvOnAuto-cursor);margin:var(--ppts-tsm-sl-lc-onlyCsvOnAuto-margin);display:var(--ppts-tsm-sl-lc-onlyCsvOnAuto-display);justify-content:var(--ppts-tsm-sl-lc-onlyCsvOnAuto-justify-content);align-items:var(--ppts-tsm-sl-lc-onlyCsvOnAuto-align-items)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .onlyCsvOnAuto input[type=checkbox]{margin-right:var(--ppts-tsm-sl-lc-ocoa-input-margin-right);width:var(--ppts-tsm-sl-lc-ocoa-input-width);height:var(--ppts-tsm-sl-lc-ocoa-input-height)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .onlyCsvOnAuto span{color:var(--ppts-tsm-sl-lc-ocoa-span-color)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .line-row{display:var(--ppts-tsm-sl-lc-lineRow-display);justify-content:var(--ppts-tsm-sl-lc-lineRow-justify-content)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .line-row>*{margin-left:var(--ppts-tsm-sl-lc-lineRowAny-margin-left)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .line-row>:first-child{margin-left:var(--ppts-tsm-sl-lc-lineRowAnyLastChild-margin-left)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .refresh-btn{cursor:var(--ppts-tsm-sl-lc-refreshBtn-cursor);width:var(--ppts-tsm-sl-lc-refreshBtn-width);height:var(--ppts-tsm-sl-lc-refreshBtn-height);background:var(--ppts-tsm-sl-lc-refreshBtn-background);display:var(--ppts-tsm-sl-lc-refreshBtn-display);justify-content:var(--ppts-tsm-sl-lc-refreshBtn-justify-content);align-items:var(--ppts-tsm-sl-lc-refreshBtn-align-items);border-radius:var(--ppts-tsm-sl-lc-refreshBtn-border-radius)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .refresh-btn .icon-svg-loading svg{width:var(--ppts-tsm-sl-lc-rb-iconSvgLoading-width);height:var(--ppts-tsm-sl-lc-rb-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .refresh-btn .icon-svg-loading svg path{fill:var(--ppts-tsm-sl-lc-rb-iconSvgLoading-color)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .refresh-btn .icon-svg-refresh svg{width:var(--ppts-tsm-sl-lc-rb-iconSvgRefresh-width);height:var(--ppts-tsm-sl-lc-rb-iconSvgRefresh-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .refresh-btn .icon-svg-refresh svg path{fill:var(--ppts-tsm-sl-lc-rb-iconSvgRefresh-color)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-input{height:var(--ppts-tsm-sl-lc-testInput-height)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-btn{cursor:var(--ppts-tsm-sl-lc-testBtn-cursor);display:var(--ppts-tsm-sl-lc-testBtn-display);padding:var(--ppts-tsm-sl-lc-testBtn-padding);height:var(--ppts-tsm-sl-lc-testBtn-height);line-height:var(--ppts-tsm-sl-lc-testBtn-line-height);color:var(--ppts-tsm-sl-lc-testBtn-color);background:var(--ppts-tsm-sl-lc-testBtn-background);border-radius:var(--ppts-tsm-sl-lc-testBtn-border-radius)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-btn .icon-svg-loading svg{width:var(--ppts-tsm-sl-lc-tb-iconSvgLoading-width);height:var(--ppts-tsm-sl-lc-tb-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-btn .icon-svg-loading svg path{fill:var(--ppts-tsm-sl-lc-tb-iconSvgLoading-color)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .translate-error{color:var(--ppts-tsm-sl-lc-translateError-color);font-size:var(--ppts-tsm-sl-lc-translateError-font-size);margin-bottom:var(--ppts-tsm-sl-lc-translateError-margin-bottom)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list{font-size:var(--ppts-tsm-sl-lc-helpList-font-size);line-height:var(--ppts-tsm-sl-lc-helpList-line-height)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item{margin-bottom:var(--ppts-tsm-sl-lc-hl-helpItem-margin-bottom)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item:last-child{margin-bottom:var(--ppts-tsm-sl-lc-hl-helpItemAnyLastChild-margin-bottom)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item a{color:var(--ppts-tsm-sl-lc-hl-hi-a-color);text-decoration:var(--ppts-tsm-sl-lc-hl-hi-a-text-decoration);font-size:var(--ppts-tsm-sl-lc-hl-hi-a-font-size);border-bottom:var(--ppts-tsm-sl-lc-hl-hi-a-border-bottom);padding-bottom:var(--ppts-tsm-sl-lc-hl-hi-a-padding-bottom)}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item a:hover{color:var(--ppts-tsm-sl-lc-hl-hi-aHover-color);border-bottom-color:var(--ppts-tsm-sl-lc-hl-hi-aHover-border-bottom-color)}.physton-prompt-translate-setting .translate-setting-main .setting-btns{display:var(--ppts-tsm-settingBtns-display);justify-content:var(--ppts-tsm-settingBtns-justify-content);align-items:var(--ppts-tsm-settingBtns-align-items);margin-top:var(--ppts-tsm-settingBtns-margin-top)}.physton-prompt-translate-setting .translate-setting-main .setting-btns .translate-save{cursor:var(--ppts-tsm-sb-translateSave-cursor);display:var(--ppts-tsm-sb-translateSave-display);padding:var(--ppts-tsm-sb-translateSave-padding);height:var(--ppts-tsm-sb-translateSave-height);line-height:var(--ppts-tsm-sb-translateSave-line-height);color:var(--ppts-tsm-sb-translateSave-color);background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size);border-radius:var(--ppts-tsm-sb-translateSave-border-radius);margin-right:var(--ppts-tsm-sb-translateSave-margin-right)}.physton-prompt-translate-setting .translate-setting-main .setting-btns .translate-close{cursor:var(--ppts-tsm-sb-translateClose-cursor);display:var(--ppts-tsm-sb-translateClose-display);padding:var(--ppts-tsm-sb-translateClose-padding);height:var(--ppts-tsm-sb-translateClose-height);line-height:var(--ppts-tsm-sb-translateClose-line-height);color:var(--ppts-tsm-sb-translateClose-color);background:var(--ppts-tsm-sb-translateClose-background);border:var(--ppts-tsm-sb-translateClose-border);border-radius:var(--ppts-tsm-sb-translateClose-border-radius)}.physton-prompt-extension-css{position:var(--commonPopupBg-position);top:var(--commonPopupBg-top);left:var(--commonPopupBg-left);width:var(--commonPopupBg-width);height:var(--commonPopupBg-height);z-index:var(--commonPopupBg-z-index);display:var(--commonPopupBg-display);justify-content:var(--commonPopupBg-justify-content);align-items:var(--commonPopupBg-align-items);background:var(--commonPopupBg-background);justify-content:var(--ppec-justify-content);align-items:var(--ppec-align-items);background:var(--ppec-background)}.physton-prompt-extension-css .extension-main{height:var(--ppec-extensionMain-height);position:var(--ppec-extensionMain-position);margin-right:var(--ppec-extensionMain-margin-right);margin-bottom:var(--ppec-extensionMain-margin-bottom)}.physton-prompt-extension-css .extension-main .extension-close{display:var(--commonPopupClose-display);padding:var(--commonPopupClose-padding);position:var(--commonPopupClose-position);right:var(--commonPopupClose-right);top:var(--commonPopupClose-top);background:var(--commonPopupClose-background);border-radius:var(--commonPopupClose-border-radius);box-shadow:var(--commonPopupClose-box-shadow);cursor:var(--commonPopupClose-cursor);z-index:var(--commonPopupClose-z-index)}.physton-prompt-extension-css .extension-main .extension-close:hover{background:var(--commonPopupClose-hover-background)}.physton-prompt-extension-css .extension-main .extension-close .icon-svg-close svg{width:var(--commonPopupClose-iconSvgClose-width);height:var(--commonPopupClose-iconSvgClose-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-prompt-extension-css .extension-main .extension-close .icon-svg-close svg path{fill:var(--commonPopupClose-iconSvgClose-color)}.physton-prompt-extension-css .extension-main .extension-list{height:var(--ppec-em-extensionList-height);overflow:var(--ppec-em-extensionList-overflow);overflow-y:var(--ppec-em-extensionList-overflow-y);display:var(--ppec-em-extensionList-display);position:var(--ppec-em-extensionList-position);box-shadow:var(--ppec-em-extensionList-box-shadow);border-radius:var(--ppec-em-extensionList-border-radius);background-color:var(--ppec-em-extensionList-background-color);transition:var(--ppec-em-extensionList-transition)}.physton-prompt-extension-css .extension-main .extension-list .extension-table{border:var(--ppec-em-el-extensionTable-border)}.physton-prompt-extension-css .extension-main .extension-list .extension-table td,.physton-prompt-extension-css .extension-main .extension-list .extension-table tr{border:var(--ppec-em-el-et-trTd-border)!important;margin:var(--ppec-em-el-et-trTd-margin)!important;font-size:var(--ppec-em-el-et-trTd-font-size);color:var(--ppec-em-el-et-trTd-color);padding:var(--ppec-em-el-et-trTd-padding)!important;background:var(--ppec-em-el-et-trTd-background)!important}.physton-prompt-extension-css .extension-main .extension-list .extension-table td:hover,.physton-prompt-extension-css .extension-main .extension-list .extension-table tr:hover{background:var(--ppec-em-el-et-trTdHover-background)!important}.physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-checkbox{position:var(--ppec-em-el-ei-extensionCheckbox-position);box-shadow:var(--ppec-em-el-ei-extensionCheckbox-box-shadow);border:var(--ppec-em-el-ei-extensionCheckbox-border);border-radius:var(--ppec-em-el-ei-extensionCheckbox-border-radius);background-color:var(--ppec-em-el-ei-extensionCheckbox-background-color);line-height:var(--ppec-em-el-ei-extensionCheckbox-line-height);width:var(--ppec-em-el-ei-extensionCheckbox-width);height:var(--ppec-em-el-ei-extensionCheckbox-height)}.physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-checkbox:checked{border-color:var(--ppec-em-el-ei-extensionCheckboxChecked-border-color);background-color:var(--ppec-em-el-ei-extensionCheckboxChecked-background-color)}.physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-author,.physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-dir,.physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-name,.physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-type{white-space:var(--ppec-em-el-ei-enEtEd-white-space);overflow:var(--ppec-em-el-ei-enEtEd-overflow);text-overflow:var(--ppec-em-el-ei-enEtEd-text-overflow)}.physton-prompt-extension-css .extension-main .extension-list .extension-item .extension-author{text-align:var(--ppec-em-el-ei-extensionAuthor-text-align)}.physton-chatgpt-prompt{position:var(--commonPopupBg-position);top:var(--commonPopupBg-top);left:var(--commonPopupBg-left);width:var(--commonPopupBg-width);height:var(--commonPopupBg-height);z-index:var(--commonPopupBg-z-index);display:var(--commonPopupBg-display);justify-content:var(--commonPopupBg-justify-content);align-items:var(--commonPopupBg-align-items);background:var(--commonPopupBg-background)}.physton-chatgpt-prompt .chatgpt-main{position:var(--pcp-chatgptMain-position);width:var(--pcp-chatgptMain-width)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-close{display:var(--commonPopupClose-display);padding:var(--commonPopupClose-padding);position:var(--commonPopupClose-position);right:var(--commonPopupClose-right);top:var(--commonPopupClose-top);background:var(--commonPopupClose-background);border-radius:var(--commonPopupClose-border-radius);box-shadow:var(--commonPopupClose-box-shadow);cursor:var(--commonPopupClose-cursor);z-index:var(--commonPopupClose-z-index)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-close:hover{background:var(--commonPopupClose-hover-background)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-close .icon-svg-close svg{width:var(--commonPopupClose-iconSvgClose-width);height:var(--commonPopupClose-iconSvgClose-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-close .icon-svg-close svg path{fill:var(--commonPopupClose-iconSvgClose-color)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body{display:var(--pcp-cm-chatgptBody-display);position:var(--pcp-cm-chatgptBody-position);box-shadow:var(--pcp-cm-chatgptBody-box-shadow);border-radius:var(--pcp-cm-chatgptBody-border-radius);background-color:var(--pcp-cm-chatgptBody-background-color);transition:var(--pcp-cm-chatgptBody-transition);padding:var(--pcp-cm-chatgptBody-padding);font-size:var(--pcp-cm-chatgptBody-font-size);color:var(--pcp-cm-chatgptBody-color)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel{border:var(--pcp-cm-cb-bodyPanel-border);border-radius:var(--pcp-cm-cb-bodyPanel-border-radius);overflow:var(--pcp-cm-cb-bodyPanel-overflow);margin-bottom:var(--pcp-cm-cb-bodyPanel-margin-bottom)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel.fold{max-height:var(--pcp-cm-cb-bodyPanelFold-max-height)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel.fold .panel-unfold{transform:var(--pcp-cm-cb-bpf-panelUnfold-transform)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel.fold .panel-content{display:var(--pcp-cm-cb-bpf-panelContent-display)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header{background:var(--pcp-cm-cb-bp-panelHeader-background);width:var(--pcp-cm-cb-bp-panelHeader-width);padding:var(--pcp-cm-cb-bp-panelHeader-padding);box-sizing:var(--pcp-cm-cb-bp-panelHeader-box-sizing);display:var(--pcp-cm-cb-bp-panelHeader-display);justify-content:var(--pcp-cm-cb-bp-panelHeader-justify-content);align-items:var(--pcp-cm-cb-bp-panelHeader-align-items)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header .panel-unfold{cursor:var(--pcp-cm-cb-bp-ph-panelUnfold-cursor);margin-right:var(--pcp-cm-cb-bp-ph-panelUnfold-margin-right);animation:var(--pcp-cm-cb-bp-ph-panelUnfold-animation)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header .panel-unfold .icon-svg-unfold{display:var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-display);justify-content:var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-justify-content);align-items:var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-align-items)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header .panel-unfold .icon-svg-unfold svg{width:var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-width);height:var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header .panel-unfold .icon-svg-unfold svg path{fill:var(--pcp-cm-cb-bp-ph-pu-iconSvgUnfold-color)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-header .panel-title{font-weight:var(--pcp-cm-cb-bp-ph-panelTitle-font-weight);font-size:var(--pcp-cm-cb-bp-ph-panelTitle-font-size);color:var(--pcp-cm-cb-bp-ph-panelTitle-color)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-panel .panel-content{padding:var(--pcp-cm-cb-bp-panelContent-padding)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line{display:var(--pcp-cm-cb-bodyLine-display);justify-content:var(--pcp-cm-cb-bodyLine-justify-content);align-items:var(--pcp-cm-cb-bodyLine-align-items);margin-bottom:var(--pcp-cm-cb-bodyLine-margin-bottom)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line:last-child{margin-bottom:var(--pcp-cm-cb-bodyLineLastChild-margin-bottom)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-title{font-size:var(--pcp-cm-cb-bl-lineTitle-font-size);font-weight:var(--pcp-cm-cb-bl-lineTitle-font-weight);color:var(--pcp-cm-cb-bl-lineTitle-color);width:var(--pcp-cm-cb-bl-lineTitle-width);line-height:var(--pcp-cm-cb-bl-lineTitle-line-height);margin-right:var(--pcp-cm-cb-bl-lineTitle-margin-right)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-title .line-subtitle{font-size:var(--pcp-cm-cb-bl-lt-lineSubtitle-font-size);font-weight:var(--pcp-cm-cb-bl-lt-lineSubtitle-font-weight);color:var(--pcp-cm-cb-bl-lt-lineSubtitle-color)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content{flex:var(--pcp-cm-cb-bl-lineContent-flex);font-size:var(--pcp-cm-cb-bl-lineContent-font-size);color:var(--pcp-cm-cb-bl-lineContent-color)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content.text-right{text-align:var(--pcp-cm-cb-bl-lc-textRight-text-align)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content p,.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content span{font-size:var(--pcp-cm-cb-bl-lc-spanP-font-size);color:var(--pcp-cm-cb-bl-lc-spanP-color)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content p{margin:var(--pcp-cm-cb-bl-lc-p-margin)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content a{font-size:var(--pcp-cm-cb-bl-lc-a-font-size);color:var(--pcp-cm-cb-bl-lc-a-color);text-decoration:var(--pcp-cm-cb-bl-lc-a-text-decoration)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content input[type=text],.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content select,.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content textarea{background:var(--pcp-cm-cb-bl-lc-inputTextareaSelect-background);border:var(--pcp-cm-cb-bl-lc-inputTextareaSelect-border);padding:var(--pcp-cm-cb-bl-lc-inputTextareaSelect-padding);width:var(--pcp-cm-cb-bl-lc-inputTextareaSelect-width);font-size:var(--pcp-cm-cb-bl-lc-inputTextareaSelect-font-size);color:var(--pcp-cm-cb-bl-lc-inputTextareaSelect-color);resize:var(--pcp-cm-cb-bl-lc-inputTextareaSelect-resize);box-sizing:var(--pcp-cm-cb-bl-lc-inputTextareaSelect-box-sizing)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content input[type=text]:focus,.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content select:focus,.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content textarea:focus{outline:var(--pcp-cm-cb-bl-lc-inputTextareaSelectFocus-outline);border-color:var(--pcp-cm-cb-bl-lc-inputTextareaSelectFocus-border-color)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content textarea{line-height:var(--pcp-cm-cb-bl-lc-textarea-line-height)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content .common-btn{cursor:var(--pcp-cm-cb-bl-lc-commonBtn-cursor);display:var(--pcp-cm-cb-bl-lc-commonBtn-display);padding:var(--pcp-cm-cb-bl-lc-commonBtn-padding);height:var(--pcp-cm-cb-bl-lc-commonBtn-height);line-height:var(--pcp-cm-cb-bl-lc-commonBtn-line-height);color:var(--pcp-cm-cb-bl-lc-commonBtn-color);background:var(--commonColourfulBackground-background);background-size:var(--commonColourfulBackground-background-size);border-radius:var(--pcp-cm-cb-bl-lc-commonBtn-border-radius)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content .common-btn .icon-svg-loading svg{width:var(--pcp-cm-cb-bl-lc-cb-iconSvgLoading-width);height:var(--pcp-cm-cb-bl-lc-cb-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content .common-btn .icon-svg-loading svg path{fill:var(--pcp-cm-cb-bl-lc-cb-iconSvgLoading-color)}.physton-chatgpt-prompt .chatgpt-main .chatgpt-body .body-line .line-content .common-sub-btn{cursor:var(--pcp-cm-cb-bl-lc-commonSubBtn-cursor);display:var(--pcp-cm-cb-bl-lc-commonSubBtn-display);padding:var(--pcp-cm-cb-bl-lc-commonSubBtn-padding);height:var(--pcp-cm-cb-bl-lc-commonSubBtn-height);line-height:var(--pcp-cm-cb-bl-lc-commonSubBtn-line-height);color:var(--pcp-cm-cb-bl-lc-commonSubBtn-color);background:var(--pcp-cm-cb-bl-lc-commonSubBtn-background);border:var(--pcp-cm-cb-bl-lc-commonSubBtn-border);border-radius:var(--pcp-cm-cb-bl-lc-commonSubBtn-border-radius)}.physton-about-prompt{position:var(--commonPopupBg-position);top:var(--commonPopupBg-top);left:var(--commonPopupBg-left);width:var(--commonPopupBg-width);height:var(--commonPopupBg-height);z-index:var(--commonPopupBg-z-index);display:var(--commonPopupBg-display);justify-content:var(--commonPopupBg-justify-content);align-items:var(--commonPopupBg-align-items);background:var(--commonPopupBg-background)}.physton-about-prompt .about-main{position:var(--pap-aboutMain-position);width:var(--pap-aboutMain-width)}.physton-about-prompt .about-main .about-close{display:var(--commonPopupClose-display);padding:var(--commonPopupClose-padding);position:var(--commonPopupClose-position);right:var(--commonPopupClose-right);top:var(--commonPopupClose-top);background:var(--commonPopupClose-background);border-radius:var(--commonPopupClose-border-radius);box-shadow:var(--commonPopupClose-box-shadow);cursor:var(--commonPopupClose-cursor);z-index:var(--commonPopupClose-z-index)}.physton-about-prompt .about-main .about-close:hover{background:var(--commonPopupClose-hover-background)}.physton-about-prompt .about-main .about-close .icon-svg-close svg{width:var(--commonPopupClose-iconSvgClose-width);height:var(--commonPopupClose-iconSvgClose-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-about-prompt .about-main .about-close .icon-svg-close svg path{fill:var(--commonPopupClose-iconSvgClose-color)}.physton-about-prompt .about-main .about-body{display:var(--pap-cm-aboutBody-display);position:var(--pap-cm-aboutBody-position);box-shadow:var(--pap-cm-aboutBody-box-shadow);border-radius:var(--pap-cm-aboutBody-border-radius);background-color:var(--pap-cm-aboutBody-background-color);transition:var(--pap-cm-aboutBody-transition);padding:var(--pap-cm-aboutBody-padding);font-size:var(--pap-cm-aboutBody-font-size);color:var(--pap-cm-aboutBody-color)}.physton-about-prompt .about-main .about-body a{color:var(--pap-cm-ab-a-color);text-decoration:var(--pap-cm-ab-a-text-decoration)}.physton-about-prompt .about-main .about-body img{margin-right:var(--pap-cm-ab-img-margin-right)}.physton-about-prompt .about-main .about-body .body-title{margin:var(--pap-cm-ab-bodyTitle-margin);font-size:var(--pap-cm-ab-bodyTitle-font-size)}.physton-about-prompt .about-main .about-body .has-new-version{color:var(--pap-cm-ab-hasNewVersion-color);animation:var(--pap-cm-ab-hasNewVersion-animation)}@keyframes blink{0%{opacity:1}50%{opacity:.8}100%{opacity:1}}.physton-about-prompt .about-main .about-body .version-list{height:var(--pap-cm-ab-versionList-height);overflow:var(--pap-cm-ab-versionList-overflow);overflow-y:var(--pap-cm-ab-versionList-overflow-y);border:var(--pap-cm-ab-versionList-border);border-radius:var(--pap-cm-ab-versionList-border-radius)}.physton-about-prompt .about-main .about-body .version-list .icon-svg-loading svg{width:var(--pap-cm-ab-vl-iconSvgLoading-width);height:var(--pap-cm-ab-vl-iconSvgLoading-height);padding:var(--iconSvg-padding);box-sizing:var(--iconSvg-box-sizing)}.physton-about-prompt .about-main .about-body .version-list .icon-svg-loading svg path{fill:var(--pap-cm-ab-vl-iconSvgLoading-color)}.physton-about-prompt .about-main .about-body .version-list .version-item{margin:var(--pap-cm-ab-vl-versionItem-margin);padding:var(--pap-cm-ab-vl-versionItem-padding);border-bottom:var(--pap-cm-ab-vl-versionItem-border-bottom)}.physton-about-prompt .about-main .about-body .version-list .version-item .item-header{display:var(--pap-cm-ab-vl-vi-itemHeader-display);justify-content:var(--pap-cm-ab-vl-vi-itemHeader-justify-content);align-items:var(--pap-cm-ab-vl-vi-itemHeader-align-items)}.physton-about-prompt .about-main .about-body .version-list .version-item .version-msg{margin-top:var(--pap-cm-ab-vl-vi-versionMsg-margin-top);color:var(--pap-cm-ab-vl-vi-versionMsg-color)}.physton-highlight-prompt{background:var(--physton-highlight-prompt-background)}.physton-gradio-container.dark{--pp-border:1px solid rgba(255, 255, 255, 0.08);--pp-promptHeader-border-bottom:1px dashed rgba(255, 255, 255, 0.08);--pp-ph-iconSvgInput-color:rgba(255, 255, 255, 0.85);--pp-ph-ebi-iconSvgTranslate-color:#ff9900;--pp-ph-ebi-iconSvgEnglish-color:#ff9900;--pp-ph-ebi-iconSvgCopy-color:rgba(255, 255, 255, 0.85);--pp-ph-phe-ec-extendBtnGroup-color:rgba(255, 255, 255, 0.85);--pp-ph-phe-ec-extendBtnGroup-background:rgba(255, 255, 255, 0.12);--pp-ph-phe-ec-extendBtnGroup-border:1px solid rgba(255, 255, 255, 0.08);--pp-ph-phe-ec-selectSelectBtn-border:1px solid rgba(255, 255, 255, 0.85);--pp-ph-phe-ec-selectSelectBtn-background:#1f1f1f;--pp-ph-phe-ec-selectSelectBtn-color:rgba(255, 255, 255, 0.85);--pp-ph-phe-ec-selectSelectBtnHover-border-color:#1668dc;--pp-ph-phe-ec-selectBtnHover-background:#3c89e8;--pp-ph-phe-ec-selectBtnHover-border-color:#3c89e8;--pp-ph-phe-ec-ebg-ebi-settingBox-background:#0c0c0c;--pp-ph-sb-iconSvgRemoveSpace-color:#c5c5c5;--pp-ph-sb-iconSvgTooltip-color:#c5c5c5;--pp-ph-sb-iconSvgAbout-color:#c5c5c5;--pp-ph-phe-ec-inputCheckbox-border:1px solid rgba(255, 255, 255, 0.08);--pp-ph-phe-ec-inputCheckbox-background-color:rgba(255, 255, 255, 0.04);--pp-ph-phe-ec-inputTagAppend-border:1px solid rgba(255, 255, 255, 0.12);--pp-pt-pll-iconSvgTranslate-color:rgba(255, 255, 255, 0.85);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-color:rgba(255, 255, 255, 0.85);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-background:rgba(255, 255, 255, 0.12);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValue-border:1px solid rgba(255, 255, 255, 0.08);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueNegTag-color:rgba(255, 255, 255, 0.85);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-border-color:rgba(255, 255, 255, 0.12);--pp-pt-dsb-ptl-pt-ptm-pte-promptTagValueHover-background:rgba(255, 255, 255, 0.18);-pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-border:1px solid rgba(255,255,255,.08);--pp-pt-dsb-ptl-pt-ptm-pte-btnTagDelete-background:rgba(255, 255, 255, 0.12);--pp-pt-dsb-ptl-pt-pll-localLanguage-color:rgba(255, 255, 255, 0.45);--pp-pt-inputFocus-border-color:rgba(255, 255, 255, 0.08);--pp-pt-dsb-ptl-pt-ptm-btnTagExtend-box-shadow:0 0 3px #4a54ff;--pp-pt-bte-iconSvgCopy-color:#c5c5c5;--pp-pt-dsb-ptl-pt-ptm-bte-vue-number-input__button-background:#2a2a2a}.physton-gradio-container.dark .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend{background:#0c0c0c}.physton-gradio-container.dark .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend .input-number .vue-number-input__button:after,.physton-gradio-container.dark .physton-prompt .prompt-tags .prompt-tags-list .prompt-tag .prompt-tag-main .btn-tag-extend .input-number .vue-number-input__button:before{background-color:#fff!important}
\ No newline at end of file
diff --git a/styles/main.min.css.REMOVED.git-id b/styles/main.min.css.REMOVED.git-id
deleted file mode 100644
index a9f74da..0000000
--- a/styles/main.min.css.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-7088e9ddf5c4a87b2e5c028f215d500c6f3b7ee1
\ No newline at end of file
diff --git a/tests/get_lang.py b/tests/get_lang.py
index a03253b..4527769 100644
--- a/tests/get_lang.py
+++ b/tests/get_lang.py
@@ -2,7 +2,7 @@ import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
-from scripts.get_lang import get_lang
+from scripts.physton_prompt.get_lang import get_lang
print(get_lang('is_required', {'0': '11'}))
print(get_lang('is_required1'))
\ No newline at end of file
diff --git a/tests/get_version.py b/tests/get_version.py
index 6ce5dad..e43e0ec 100644
--- a/tests/get_version.py
+++ b/tests/get_version.py
@@ -2,7 +2,7 @@ import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
-from scripts.get_version import get_git_commit_version, get_git_remote_versions, get_latest_version
+from scripts.physton_prompt.get_version import get_git_commit_version, get_git_remote_versions, get_latest_version
print(get_git_remote_versions())
print(get_git_commit_version())
diff --git a/tests/translate.py b/tests/translate.py
index ebdfc1a..59e317d 100644
--- a/tests/translate.py
+++ b/tests/translate.py
@@ -3,13 +3,13 @@ import sys
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
import time
import json
-from scripts.translate import translate
-from scripts.get_i18n import get_i18n
-from scripts.get_translate_apis import get_translate_apis
-from scripts.storage import storage
+from scripts.physton_prompt.translate import translate
+from scripts.physton_prompt.get_i18n import get_i18n
+from scripts.physton_prompt.get_translate_apis import get_translate_apis
+from scripts.physton_prompt.storage import Storage
i18n = get_i18n()
-st = storage()
+st = Storage()
text = 'Hello World, I am a boy'
tested_file = os.path.join(os.path.dirname(__file__), 'tested.json')
diff --git a/tests/translator.py b/tests/translator.py
index 996b230..0f5a322 100644
--- a/tests/translator.py
+++ b/tests/translator.py
@@ -5,19 +5,19 @@ sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
from dotenv import load_dotenv
load_dotenv(os.path.join(os.path.dirname(__file__), '.env'))
-from scripts.translator.microsoft_translator import MicrosoftTranslator
-from scripts.translator.google_tanslator import GoogleTranslator
-from scripts.translator.openai_translator import OpenaiTranslator
-from scripts.translator.amazon_translator import AmazonTranslator
-from scripts.translator.deepl_translator import DeeplTranslator
-from scripts.translator.baidu_translator import BaiduTranslator
-from scripts.translator.youdao_translator import YoudaoTranslator
-from scripts.translator.alibaba_translator import AlibabaTranslator
-from scripts.translator.tencent_translator import TencentTranslator
-from scripts.translator.translators_translator import TranslatorsTranslator
-from scripts.translator.yandex_translator import YandexTranslator
+from scripts.physton_prompt.translator.microsoft_translator import MicrosoftTranslator
+from scripts.physton_prompt.translator.google_tanslator import GoogleTranslator
+from scripts.physton_prompt.translator.openai_translator import OpenaiTranslator
+from scripts.physton_prompt.translator.amazon_translator import AmazonTranslator
+from scripts.physton_prompt.translator.deepl_translator import DeeplTranslator
+from scripts.physton_prompt.translator.baidu_translator import BaiduTranslator
+from scripts.physton_prompt.translator.youdao_translator import YoudaoTranslator
+from scripts.physton_prompt.translator.alibaba_translator import AlibabaTranslator
+from scripts.physton_prompt.translator.tencent_translator import TencentTranslator
+from scripts.physton_prompt.translator.translators_translator import TranslatorsTranslator
+from scripts.physton_prompt.translator.yandex_translator import YandexTranslator
-from scripts.translate import translate
+from scripts.physton_prompt.translate import translate
text = 'Hello World'
texts = [
diff --git a/translate_apis.json b/translate_apis.json
new file mode 100644
index 0000000..ec7f9fd
--- /dev/null
+++ b/translate_apis.json
@@ -0,0 +1,2649 @@
+{
+ "default": "alibaba_free",
+ "apis": [
+ {
+ "type": "dont_need_api_key",
+ "children": [
+ {
+ "key": "bing_free",
+ "name": "[Free] Microsoft Bing, America",
+ "type": "translators",
+ "translator": "bing",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh-Hans",
+ "zh_HK": "yue",
+ "zh_TW": "zh-Hant",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "as_IN": "as",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "ba_RU": "ba",
+ "eu_ES": "eu",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "prs_AF": "prs",
+ "dv_MV": "dv",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fo_FO": "fo",
+ "fj_FJ": "fj",
+ "fil_PH": "fil",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "fr_CA": "fr-CA",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "mww_Latn_US": "mww",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "ikt_CA": "ikt",
+ "iu_CA": "iu",
+ "iu_Latn_CA": "iu-Latn",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "tlh_Latn": "tlh-Latn",
+ "ko_KR": "ko",
+ "ku_Arab_IQ": "ku",
+ "ku_Latn_TR": "kmr",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "mn_Cyrl_MN": "mn-Cyrl",
+ "mn_Mong_CN": "mn-Mong",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "nb",
+ "or_IN": "or",
+ "ps_AF": "ps",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt-PT",
+ "pa_Guru_IN": "pa",
+ "otq_Latn_MX": "otq",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sm_Latn_WS": "sm",
+ "sr_Cyrl_RS": "sr-Cyrl",
+ "sr_Latn_RS": "sr-Latn",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ty_PF": "ty",
+ "ta_IN": "ta",
+ "tt_Latn_RU": "tt",
+ "te_IN": "te",
+ "th_TH": "th",
+ "bo_CN": "bo",
+ "ti_ET": "ti",
+ "to_TO": "to",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "ug_Arab_CN": "ug",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "yua_MX": "yua",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "Bing - Microsoft, America",
+ "url": "https://www.bing.com/Translator"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ],
+ "config": [
+ {
+ "key": "region",
+ "title": "Region",
+ "type": "select",
+ "default": "CN",
+ "options": [
+ "CN",
+ "EN",
+ "JP",
+ "HK",
+ "TW",
+ "SG",
+ "DE",
+ "FR",
+ "KR",
+ "RU",
+ "ES",
+ "PT",
+ "BR",
+ "IT",
+ "NL",
+ "PL",
+ "VI",
+ "AR",
+ "TR",
+ "BE",
+ "FI",
+ "GR",
+ "ID",
+ "RO",
+ "SK",
+ "UK",
+ "TH",
+ "CZ",
+ "DK",
+ "HU",
+ "NO",
+ "SV",
+ "HR",
+ "LT",
+ "LV",
+ "SL",
+ "SR",
+ "BG",
+ "ET",
+ "HI",
+ "IW",
+ "FA"
+ ]
+ }
+ ]
+ },
+ {
+ "key": "google_free",
+ "name": "[Free] Google, America",
+ "type": "translators",
+ "translator": "google",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh-CN",
+ "zh_HK": "zh-TW",
+ "zh_TW": "zh-TW",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "as_IN": "as",
+ "az_Latn_AZ": "az",
+ "eu_ES": "eu",
+ "bn_BD": "bn",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "dv_MV": "dv",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "ko_KR": "ko",
+ "ku_Arab_IQ": "ku",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "mn_MN": "mn",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "no",
+ "ny_MW": "ny",
+ "or_IN": "or",
+ "om_ET": "om",
+ "ps_AF": "ps",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt",
+ "pa_IN": "pa",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sm_Latn_WS": "sm",
+ "sr_Cyrl_RS": "sr",
+ "sr_Latn_RS": "sr",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ta_IN": "ta",
+ "tt_Latn_RU": "tt",
+ "te_IN": "te",
+ "th_TH": "th",
+ "ti_ET": "ti",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "ug_Arab_CN": "ug",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "Google - Google, America",
+ "url": "https://translate.google.com/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ],
+ "config": [
+ {
+ "key": "region",
+ "title": "Region",
+ "type": "select",
+ "default": "EN",
+ "options": [
+ "EN",
+ "JP",
+ "HK",
+ "TW",
+ "SG",
+ "DE",
+ "FR",
+ "KR",
+ "RU",
+ "ES",
+ "PT",
+ "BR",
+ "IT",
+ "NL",
+ "PL",
+ "VI",
+ "AR",
+ "TR",
+ "BE",
+ "FI",
+ "GR",
+ "ID",
+ "RO",
+ "SK",
+ "UK",
+ "TH",
+ "CZ",
+ "DK",
+ "HU",
+ "NO",
+ "SV",
+ "HR",
+ "LT",
+ "LV",
+ "SL",
+ "SR",
+ "BG",
+ "ET",
+ "HI",
+ "IW",
+ "FA"
+ ]
+ }
+ ]
+ },
+ {
+ "key": "itranslate_free",
+ "name": "[Free] iTranslate, Austria",
+ "type": "translators",
+ "translator": "itranslate",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh-CN",
+ "zh_HK": "zh-HK",
+ "zh_TW": "zh-TW",
+ "en_US": "en-US",
+ "en_GB": "en-UK",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "ar_SA": "ar-SA",
+ "hy_AM": "hy",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "eu_ES": "eu",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fi_FI": "fi",
+ "fr_FR": "fr-FR",
+ "fr_CA": "fr-CA",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "ko_KR": "ko",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "mn_Cyrl_MN": "mn",
+ "mn_Mong_CN": "mn",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "no",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_BR": "pt-BR",
+ "pt_PT": "pt-PT",
+ "pa_Guru_IN": "pa",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es-ES",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ta_IN": "ta",
+ "te_IN": "te",
+ "th_TH": "th",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "iTranslate - Itranslate, Austria",
+ "url": "https://itranslate.com/webapp"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "lingvanex_free",
+ "name": "[Free] Lingvanex, Cyprus",
+ "type": "translators",
+ "translator": "lingvanex",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh-Hans_CN",
+ "zh_HK": "zh-Hant_TW",
+ "zh_TW": "zh-Hant_TW",
+ "en_US": "en_GB",
+ "en_GB": "en_GB",
+ "af_ZA": "af_ZA",
+ "sq_AL": "sq_AL",
+ "am_ET": "am_ET",
+ "ar_SA": "ar_SA",
+ "hy_AM": "hy_AM",
+ "az_Latn_AZ": "az_AZ",
+ "bn_BD": "bn_BD",
+ "eu_ES": "eu_ES",
+ "bs_Latn_BA": "bs_BA",
+ "bg_BG": "bg_BG",
+ "ca_ES": "ca_ES",
+ "hr_HR": "hr_HR",
+ "cs_CZ": "cs_CZ",
+ "da_DK": "da_DK",
+ "nl_NL": "nl_NL",
+ "et_EE": "et_EE",
+ "fi_FI": "fi_FI",
+ "fr_CA": "fr_FR",
+ "gl_ES": "gl_ES",
+ "ka_GE": "ka_GE",
+ "de_DE": "de_DE",
+ "el_GR": "el_GR",
+ "gu_IN": "gu_IN",
+ "ht_HT": "ht_HT",
+ "he_IL": "he_IL",
+ "hi_IN": "hi_IN",
+ "hu_HU": "hu_HU",
+ "is_IS": "is_IS",
+ "id_ID": "id_ID",
+ "ga_IE": "ga_IE",
+ "it_IT": "it_IT",
+ "ja_JP": "ja_JP",
+ "kn_IN": "kn_IN",
+ "kk_KZ": "kk_KZ",
+ "km_KH": "km_KH",
+ "ko_KR": "ko_KR",
+ "ky_KG": "ky_KG",
+ "lo_LA": "lo_LA",
+ "lv_LV": "lv_LV",
+ "lt_LT": "lt_LT",
+ "mk_MK": "mk_MK",
+ "mg_MG": "mg_MG",
+ "ms_Latn_MY": "ms_MY",
+ "ml_IN": "ml_IN",
+ "mt_MT": "mt_MT",
+ "mi_NZ": "mi_NZ",
+ "mr_IN": "mr_IN",
+ "mn_Cyrl_MN": "mn_MN",
+ "mn_Mong_CN": "mn_MN",
+ "my_MM": "my_MM",
+ "ne_NP": "ne_NP",
+ "no_NO": "no_NO",
+ "or_IN": "or_OR",
+ "ps_AF": "ps_AF",
+ "fa_IR": "fa_IR",
+ "pl_PL": "pl_PL",
+ "pt_BR": "pt_PT",
+ "pt_PT": "pt_PT",
+ "ro_RO": "ro_RO",
+ "ru_RU": "ru_RU",
+ "sm_Latn_WS": "sm_WS",
+ "sr_Cyrl_RS": "sr-Cyrl_RS",
+ "sk_SK": "sk_SK",
+ "sl_SI": "sl_SI",
+ "so_SO": "so_SO",
+ "es_ES": "es_ES",
+ "sw_KE": "sw_TZ",
+ "sv_SE": "sv_SE",
+ "ta_IN": "ta_IN",
+ "tt_Latn_RU": "tt_TT",
+ "te_IN": "te_IN",
+ "th_TH": "th_TH",
+ "tr_TR": "tr_TR",
+ "uk_UA": "uk_UA",
+ "ur_PK": "ur_PK",
+ "ug_Arab_CN": "ug_CN",
+ "uz_Latn_UZ": "uz_UZ",
+ "vi_VN": "vi_VN",
+ "cy_GB": "cy_GB",
+ "zu_ZA": "zu_ZA"
+ },
+ "help": [
+ {
+ "title": "Lingvanex - Lingvanex, Cyprus",
+ "url": "https://lingvanex.com/demo"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "modernMt_free",
+ "name": "[Free] ModernMt / Translated, Italy",
+ "type": "translators",
+ "translator": "modernMt",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh",
+ "zh_HK": "zh-TW",
+ "zh_TW": "zh-TW",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "as_IN": "as",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "ba_RU": "ba",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "prs_AF": "prs",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fo_FO": "fo",
+ "fj_FJ": "fj",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "ko_KR": "ko",
+ "ku_Latn_TR": "km",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "mn_Cyrl_MN": "mn",
+ "mn_Mong_CN": "mn",
+ "ne_NP": "ne",
+ "no_NO": "nb",
+ "or_IN": "or",
+ "ps_AF": "ps",
+ "pl_PL": "pl",
+ "pt_BR": "pt-BR",
+ "pt_PT": "pt-PT",
+ "pa_Guru_IN": "pa",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sr_Cyrl_RS": "sr-Cyrl",
+ "sr_Latn_RS": "sr-Latn",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es-ES",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ta_IN": "ta",
+ "tt_Latn_RU": "tt",
+ "te_IN": "te",
+ "th_TH": "th",
+ "bo_CN": "bo",
+ "ti_ET": "ti",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "ModernMt - Modernmt / Translated, Italy",
+ "url": "https://www.modernmt.com/translate"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "sysTran_free",
+ "name": "[Free] SysTran, France",
+ "type": "translators",
+ "translator": "sysTran",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh-Hans",
+ "zh_HK": "zh-Hant",
+ "zh_TW": "zh-Hant",
+ "en_US": "en",
+ "en_GB": "en",
+ "sq_AL": "sq",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "bn_BD": "bn",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "id_ID": "id",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "ko_KR": "ko",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "ms_Latn_MY": "ms",
+ "my_MM": "my",
+ "no_NO": "no",
+ "ps_AF": "ps",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sr_Cyrl_RS": "sr",
+ "sr_Latn_RS": "sr",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ta_IN": "ta",
+ "th_TH": "th",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "vi_VN": "vi",
+ "zu_ZA": false
+ },
+ "help": [
+ {
+ "title": "SysTran - SysTran, France",
+ "url": "https://www.systran.net/translate/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "translateCom_free",
+ "name": "[Free] TranslateCom, America",
+ "type": "translators",
+ "translator": "translateCom",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh",
+ "zh_HK": "zh-TW",
+ "zh_TW": "zh-TW",
+ "en_US": "en",
+ "en_GB": "en",
+ "ar_SA": "ar",
+ "nl_NL": "nl",
+ "fr_FR": "fr",
+ "fr_CA": "fr-ca",
+ "de_DE": "de",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "ko_KR": "ko",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_BR": "pt-br",
+ "pt_PT": "pt",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "es_ES": "es",
+ "uk_UA": "uk",
+ "zu_ZA": false
+ },
+ "help": [
+ {
+ "title": "TranslateCom - TranslateCom, America",
+ "url": "https://www.translate.com/machine-translation"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "argos_free",
+ "name": "[Free] Argos / Libre, America",
+ "type": "translators",
+ "translator": "argos",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh",
+ "en_US": "en",
+ "en_GB": "en",
+ "ar_SA": "ar",
+ "fr_FR": "fr",
+ "de_DE": "de",
+ "hi_IN": "hi",
+ "id_ID": "id",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "ko_KR": "ko",
+ "pl_PL": "pl",
+ "pt_PT": "pt",
+ "ru_RU": "ru",
+ "es_ES": "es",
+ "tr_TR": "tr",
+ "vi_VN": "vi"
+ },
+ "help": [
+ {
+ "title": "Argos - Argos / Libre, America",
+ "url": "https://translate.argosopentech.com/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "papago_free",
+ "name": "[Free] Papago / Naver, South Korea",
+ "type": "translators",
+ "translator": "papago",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh-CN",
+ "zh_HK": "zh-TW",
+ "zh_TW": "zh-TW",
+ "en_US": "en",
+ "en_GB": "en",
+ "es_ES": "es",
+ "fr_FR": "fr",
+ "id_ID": "id",
+ "ja_JP": "ja",
+ "th_TH": "th",
+ "vi_VN": "vi",
+ "de_DE": "de",
+ "ru_RU": "ru",
+ "pt_PT": "pt",
+ "hi_IN": "hi",
+ "it_IT": "it"
+ },
+ "help": [
+ {
+ "title": "Papago - Naver, South Korea",
+ "url": "https://papago.naver.com/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "reverso_free",
+ "name": "[Free] Reverso, France",
+ "type": "translators",
+ "translator": "reverso",
+ "concurrent": 999,
+ "support": {
+ "ar_SA": "ar",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "de_DE": "de",
+ "el_GR": "el",
+ "en_GB": "en",
+ "en_US": "en",
+ "es_ES": "es",
+ "fr_FR": "fr",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "ko_KR": "ko",
+ "nl_NL": "nl",
+ "pe_PE": "pe",
+ "pl_PL": "pl",
+ "pt_BR": "ptb",
+ "pt_PT": "pt",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sk_SK": "sk",
+ "sv_SE": "sv",
+ "th_TH": "th",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "zh_CN": "zh"
+ },
+ "help": [
+ {
+ "title": "Reverso - Reverso, France",
+ "url": "https://www.reverso.net/text-translation"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "translateMe_free",
+ "name": "[Free] TranslateMe / Neosus, Lithuania",
+ "type": "translators",
+ "translator": "translateMe",
+ "concurrent": 999,
+ "support": {
+ "en_US": "English",
+ "en_GB": "English",
+ "hi_IN": "Hindi",
+ "de_DE": "German",
+ "fr_FR": "French",
+ "pt_PT": "Portuguese",
+ "zu_ZA": "Zulu",
+ "ru_RU": "Russian",
+ "es_ES": "Spanish",
+ "ta_IN": "Tamil",
+ "bn_BD": "Bengali",
+ "it_IT": "Italian",
+ "zh_CN": "Chinese",
+ "tr_TR": "Turkish"
+ },
+ "help": [
+ {
+ "title": "TranslateMe - TranslateMe / Neosus, Lithuania",
+ "url": "https://translateme.network/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "elia_free",
+ "name": "[Free] Elia / Elhuyar, Spain",
+ "type": "translators",
+ "translator": "elia",
+ "concurrent": 999,
+ "support": {
+ "gl_ES": "gl",
+ "ca_ES": "ca",
+ "fr_FR": "fr",
+ "en_US": "en",
+ "en_GB": "en"
+ },
+ "help": [
+ {
+ "title": "Elia - Elhuyar, Spain",
+ "url": "https://elia.eus/translator"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "judic_free",
+ "name": "[Free] Judic / CrossLang, Belgium",
+ "type": "translators",
+ "translator": "judic",
+ "concurrent": 999,
+ "support": {
+ "nl_NL": "nl",
+ "fr_FR": "fr",
+ "en_US": "en",
+ "en_GB": "en",
+ "de_DE": "de"
+ },
+ "help": [
+ {
+ "title": "Judic - CrossLang, Belgium",
+ "url": "https://judic.io/en/translate"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "alibaba_free",
+ "name": "[Free] Alibaba / 阿里翻译, China",
+ "type": "translators",
+ "translator": "alibaba",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh",
+ "zh_HK": "zh-tw",
+ "zh_TW": "zh-tw",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "as_IN": "as",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "ba_RU": "ba",
+ "eu_ES": "eu",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hbs",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "dv_MV": "dv",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fo_FO": "fo",
+ "fj_FJ": "fj",
+ "fil_PH": "fil",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "iu_CA": "iu",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "tlh_Latn": "tlh",
+ "tlh_Piqd": "tlh",
+ "ko_KR": "ko",
+ "ku_Arab_IQ": "ku",
+ "ku_Latn_TR": "ku",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "no",
+ "or_IN": "or",
+ "ps_AF": "ps",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt",
+ "pa_Guru_IN": "pa",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sm_Latn_WS": "sm",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ty_PF": "ty",
+ "ta_IN": "ta",
+ "tt_Latn_RU": "tt",
+ "te_IN": "te",
+ "th_TH": "th",
+ "ti_ET": "ti",
+ "tr_TR": "tr",
+ "ur_PK": "ur",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "Alibaba/阿里翻译 - Alibaba, China",
+ "url": "https://translate.alibaba.com/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "baidu_free",
+ "name": "[Free] Baidu / 百度翻译, China",
+ "type": "translators",
+ "translator": "baidu",
+ "concurrent": 1,
+ "support": {
+ "zh_CN": "zh",
+ "zh_HK": "yue",
+ "zh_TW": "cht",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "afr",
+ "sq_AL": "alb",
+ "am_ET": "amh",
+ "ar_SA": "ara",
+ "hy_AM": "arm",
+ "as_IN": "asm",
+ "az_Latn_AZ": "aze",
+ "bn_BD": "ben",
+ "ba_RU": "bak",
+ "eu_ES": "baq",
+ "bs_Latn_BA": "bos",
+ "bg_BG": "bul",
+ "ca_ES": "cat",
+ "hr_HR": "hrv",
+ "cs_CZ": "cs",
+ "da_DK": "dan",
+ "dv_MV": "div",
+ "nl_NL": "nl",
+ "et_EE": "est",
+ "fo_FO": "fao",
+ "fil_PH": "fil",
+ "fi_FI": "fin",
+ "fr_FR": "fra",
+ "fr_CA": "fra",
+ "gl_ES": "glg",
+ "ka_GE": "geo",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "guj",
+ "ht_HT": "mau",
+ "he_IL": "heb",
+ "hi_IN": "hi",
+ "mww_Latn_US": "hmn",
+ "hu_HU": "hu",
+ "is_IS": "ice",
+ "id_ID": "id",
+ "iu_CA": "iku",
+ "iu_Latn_CA": "iku",
+ "ga_IE": "gle",
+ "it_IT": "it",
+ "ja_JP": "jp",
+ "kn_IN": "kan",
+ "tlh_Latn": "kli",
+ "tlh_Piqd": "kli",
+ "ko_KR": "kor",
+ "ku_Arab_IQ": "kur",
+ "ku_Latn_TR": "kur",
+ "ky_KG": "kir",
+ "lo_LA": "lao",
+ "lv_LV": "lav",
+ "lt_LT": "lit",
+ "mk_MK": "mac",
+ "ms_Latn_MY": "may",
+ "ml_IN": "mal",
+ "mt_MT": "mlt",
+ "mi_NZ": "mao",
+ "mr_IN": "mar",
+ "my_MM": "bur",
+ "ne_NP": "nep",
+ "no_NO": "nob",
+ "or_IN": "ori",
+ "ps_AF": "pus",
+ "fa_IR": "per",
+ "pl_PL": "pl",
+ "pt_BR": "pot",
+ "pt_PT": "pt",
+ "pa_Guru_IN": "pan",
+ "ro_RO": "rom",
+ "ru_RU": "ru",
+ "sm_Latn_WS": "sm",
+ "sr_Cyrl_RS": "srp",
+ "sr_Latn_RS": "srp",
+ "sk_SK": "sk",
+ "sl_SI": "slo",
+ "so_SO": "som",
+ "es_ES": "spa",
+ "sw_KE": "swa",
+ "sv_SE": "swe",
+ "ta_IN": "tam",
+ "tt_Latn_RU": "tat",
+ "te_IN": "tel",
+ "th_TH": "th",
+ "ti_ET": "tir",
+ "tr_TR": "tr",
+ "uk_UA": "ukr",
+ "ur_PK": "urd",
+ "vi_VN": "vie",
+ "cy_GB": "wel",
+ "zu_ZA": "zul"
+ },
+ "help": [
+ {
+ "title": "Baidu/百度翻译 - Baidu, China",
+ "url": "https://fanyi.baidu.com/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "sogou_free",
+ "name": "[Free] Sogou / 搜狗翻译, China",
+ "type": "translators",
+ "translator": "sogou",
+ "concurrent": 999,
+ "support": {
+ "ar_SA": "ar",
+ "pl_PL": "pl",
+ "da_DK": "da",
+ "de_DE": "de",
+ "ru_RU": "ru",
+ "fr_FR": "fr",
+ "fi_FI": "fi",
+ "ko_KR": "ko",
+ "nl_NL": "nl",
+ "cs_CZ": "cs",
+ "pt_PT": "pt",
+ "ja_JP": "ja",
+ "sv_SE": "sv",
+ "th_TH": "th",
+ "tr_TR": "tr",
+ "es_ES": "es",
+ "hu_HU": "hu",
+ "en_US": "en",
+ "en_GB": "en",
+ "it_IT": "it",
+ "vi_VN": "vi",
+ "zh_CN": "zh-CHS"
+ },
+ "help": [
+ {
+ "title": "Sogou/搜狗翻译 - Tencent, China",
+ "url": "https://fanyi.sogou.com/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "qqTranSmart_free",
+ "name": "[Free] QQTranSmart / 腾讯交互翻译, China",
+ "type": "translators",
+ "translator": "qqTranSmart",
+ "concurrent": 999,
+ "support": {
+ "ar_SA": "ar",
+ "de_DE": "de",
+ "ru_RU": "ru",
+ "fr_FR": "fr",
+ "fil_PH": "fil",
+ "km_KH": "km",
+ "ko_KR": "ko",
+ "lo_LA": "lo",
+ "ms_Latn_MY": "ms",
+ "pt_PT": "pt",
+ "ja_JP": "ja",
+ "th_TH": "th",
+ "tr_TR": "tr",
+ "es_ES": "es",
+ "it_IT": "it",
+ "id_ID": "id",
+ "en_US": "en",
+ "en_GB": "en",
+ "vi_VN": "vi",
+ "zh_CN": "zh"
+ },
+ "help": [
+ {
+ "title": "QQTranSmart/腾讯交互翻译 - Tencent, China",
+ "url": "https://transmart.qq.com/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "youdao_free",
+ "name": "[Free] Youdao / 有道翻译, China",
+ "type": "translators",
+ "translator": "youdao",
+ "concurrent": 1,
+ "support": {
+ "zh_CN": "zh-CHS",
+ "en_US": "en",
+ "en_GB": "en"
+ },
+ "help": [
+ {
+ "title": "Youdao/有道翻译 - NetEase, China",
+ "url": "https://ai.youdao.com/product-fanyi-text.s"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "iciba_free",
+ "name": "[Free] Iciba / 爱词霸, China",
+ "type": "translators",
+ "translator": "iciba",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh",
+ "zh_HK": "cht",
+ "zh_TW": "cht",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "ba_RU": "ba",
+ "eu_ES": "eu",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "dv_MV": "dv",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fo_FO": "fo",
+ "fj_FJ": "fj",
+ "fil_PH": "fil",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "fr_CA": "fr",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "mww_Latn_US": "mww",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "ko_KR": "ko",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "mn_Cyrl_MN": "mn",
+ "mn_Mong_CN": "mn",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "no",
+ "or_IN": "or",
+ "ps_AF": "ps",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_PT": "pt",
+ "pa_Guru_IN": "pa",
+ "otq_Latn_MX": "otq",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sm_Latn_WS": "sm",
+ "sr_Cyrl_RS": "sr",
+ "sr_Latn_RS": "sr",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ty_PF": "ty",
+ "ta_IN": "ta",
+ "tt_Latn_RU": "tt",
+ "te_IN": "te",
+ "th_TH": "th",
+ "ti_ET": "ti",
+ "to_TO": "to",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "yua_MX": "yua",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "Iciba/爱词霸 - Kingsoft / Xiaomi, China",
+ "url": "https://www.iciba.com/fy"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "cloudYi_free",
+ "name": "[Free] CloudYi / 深圳云译, China",
+ "type": "translators",
+ "translator": "cloudYi",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh-cn",
+ "zh_TW": "zh-tw",
+ "en_US": "en-us",
+ "en_GB": "en-us",
+ "ar_SA": "ar",
+ "nl_NL": "nl",
+ "fr_FR": "fr",
+ "fr_CA": "fr",
+ "de_DE": "de",
+ "id_ID": "id",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "ko_KR": "ko",
+ "ms_Latn_MY": "ms",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "ru_RU": "ru",
+ "sk_SK": "sk",
+ "es_ES": "es",
+ "th_TH": "th",
+ "uk_UA": "uk",
+ "vi_VN": "vi"
+ },
+ "help": [
+ {
+ "title": "CloudYi/深圳云译 - Xiamen University / CloudTranslation, China",
+ "url": "https://www.cloudtranslation.com/#/translate"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ },
+ {
+ "key": "caiyun_free",
+ "name": "[Free] Caiyun / 彩云翻译, China",
+ "type": "translators",
+ "translator": "caiyun",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh",
+ "en_GB": "en",
+ "en_US": "en",
+ "fr_FR": "fr",
+ "es_ES": "es",
+ "ru_RU": "ru"
+ },
+ "help": [
+ {
+ "title": "Caiyun/彩云翻译 - ColorfulClouds, China",
+ "url": "https://fanyi.caiyunapp.com/"
+ },
+ {
+ "title": "[github]translators",
+ "url": "https://github.com/UlionTse/translators"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "need_api_key",
+ "children": [
+ {
+ "key": "google",
+ "name": "[ApiKey] Google",
+ "concurrent": 10,
+ "support": {
+ "zh_CN": "zh-CN",
+ "zh_HK": "zh-TW",
+ "zh_TW": "zh-TW",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "as_IN": "as",
+ "az_Latn_AZ": "az",
+ "eu_ES": "eu",
+ "bn_BD": "bn",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "dv_MV": "dv",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fil_PH": "fil",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "ko_KR": "ko",
+ "ku_Arab_IQ": "ku",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "mn_MN": "mn",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "no",
+ "ny_MW": "ny",
+ "or_IN": "or",
+ "om_ET": "om",
+ "ps_AF": "ps",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt",
+ "pa_IN": "pa",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sm_Latn_WS": "sm",
+ "sr_Cyrl_RS": "sr",
+ "sr_Latn_RS": "sr",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ta_IN": "ta",
+ "tt_Latn_RU": "tt",
+ "te_IN": "te",
+ "th_TH": "th",
+ "ti_ET": "ti",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "ug_Arab_CN": "ug",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "[official] Google Cloud Translation API",
+ "url": "https://cloud.google.com/translate/docs/setup"
+ },
+ {
+ "title": "[YouTube] How to get a Google API translation key",
+ "url": "https://www.youtube.com/watch?v=1wcE-DfqNtU"
+ },
+ {
+ "title": "【中文】申请教程 by BobTranslate",
+ "url": "https://bobtranslate.com/service/translate/google.html"
+ },
+ {
+ "title": "【中文】申请教程 by TTime",
+ "url": "https://ttime.timerecord.cn/pages/2448b0/"
+ }
+ ],
+ "config": [
+ {
+ "key": "api_key",
+ "title": "API Key",
+ "type": "input"
+ }
+ ]
+ },
+ {
+ "key": "openai",
+ "name": "OpenAI / ChatGPT",
+ "concurrent": 1,
+ "support": {
+ "zh_CN": "Simplified Chinese",
+ "zh_HK": "Traditional Chinese in Hong Kong",
+ "zh_TW": "Traditional Chinese in Taiwan",
+ "en_US": "English",
+ "en_GB": "English in the United Kingdom",
+ "af_ZA": "Afrikaans",
+ "sq_AL": "Albanian",
+ "am_ET": "Amharic",
+ "ar_SA": "Arabic",
+ "hy_AM": "Armenian",
+ "as_IN": "Assamese",
+ "az_Latn_AZ": "Azerbaijani",
+ "bn_BD": "Bengali",
+ "ba_RU": "Bashkir",
+ "eu_ES": "Basque",
+ "bs_Latn_BA": "Bosnian",
+ "bg_BG": "Bulgarian",
+ "ca_ES": "Catalan",
+ "hr_HR": "Croatian",
+ "cs_CZ": "Czech",
+ "da_DK": "Danish",
+ "prs_AF": "Dari",
+ "dv_MV": "Divehi",
+ "nl_NL": "Dutch",
+ "et_EE": "Estonian",
+ "fo_FO": "Faroese",
+ "fj_FJ": "Fijian",
+ "fil_PH": "Filipino",
+ "fi_FI": "Finnish",
+ "fr_FR": "French",
+ "fr_CA": "French in Canada",
+ "gl_ES": "Galician",
+ "ka_GE": "Georgian",
+ "de_DE": "German",
+ "el_GR": "Greek",
+ "gu_IN": "Gujarati",
+ "ht_HT": "Haitian Creole",
+ "he_IL": "Hebrew",
+ "hi_IN": "Hindi",
+ "mww_Latn_US": "Hmong Daw",
+ "hu_HU": "Hungarian",
+ "is_IS": "Icelandic",
+ "id_ID": "Indonesian",
+ "ikt_CA": "Inuktitut",
+ "iu_CA": "Inuktitut in Canada (Syllabics)",
+ "iu_Latn_CA": "Inuktitut in Canada (Latin)",
+ "ga_IE": "Irish",
+ "it_IT": "Italian",
+ "ja_JP": "Japanese",
+ "kn_IN": "Kannada",
+ "kk_KZ": "Kazakh",
+ "km_KH": "Khmer",
+ "tlh_Latn": "Klingon",
+ "tlh_Piqd": "Klingon (plqaD)",
+ "ko_KR": "Korean",
+ "ku_Arab_IQ": "Kurdish (Central Kurdish)",
+ "ku_Latn_TR": "Kurdish (Latin)",
+ "ky_KG": "Kyrgyz",
+ "lo_LA": "Lao",
+ "lv_LV": "Latvian",
+ "lt_LT": "Lithuanian",
+ "mk_MK": "Macedonian",
+ "mg_MG": "Malagasy",
+ "ms_Latn_MY": "Malay",
+ "ml_IN": "Malayalam",
+ "mt_MT": "Maltese",
+ "mi_NZ": "Maori",
+ "mr_IN": "Marathi",
+ "mn_Cyrl_MN": "Mongolian (Cyrillic)",
+ "mn_Mong_CN": "Mongolian (Traditional Mongolian)",
+ "my_MM": "Myanmar",
+ "ne_NP": "Nepali",
+ "no_NO": "Norwegian",
+ "or_IN": "Odia",
+ "ps_AF": "Pashto",
+ "fa_IR": "Persian",
+ "pl_PL": "Polish",
+ "pt_BR": "Portuguese in Brazil",
+ "pt_PT": "Portuguese in Portugal",
+ "pa_Guru_IN": "Punjabi",
+ "otq_Latn_MX": "Queretaro Otomi",
+ "ro_RO": "Romanian",
+ "ru_RU": "Russian",
+ "sm_Latn_WS": "Samoan",
+ "sr_Cyrl_RS": "Serbian (Cyrillic)",
+ "sr_Latn_RS": "Serbian (Latin)",
+ "sk_SK": "Slovak",
+ "sl_SI": "Slovenian",
+ "so_SO": "Somali",
+ "es_ES": "Spanish",
+ "sw_KE": "Swahili",
+ "sv_SE": "Swedish",
+ "ty_PF": "Tahitian",
+ "ta_IN": "Tamil",
+ "tt_Latn_RU": "Tatar",
+ "te_IN": "Telugu",
+ "th_TH": "Thai",
+ "bo_CN": "Tibetan",
+ "ti_ET": "Tigrinya",
+ "to_TO": "Tongan",
+ "tr_TR": "Turkish",
+ "uk_UA": "Ukrainian",
+ "ur_PK": "Urdu",
+ "ug_Arab_CN": "Uyghur",
+ "uz_Latn_UZ": "Uzbek",
+ "vi_VN": "Vietnamese",
+ "cy_GB": "Welsh",
+ "yua_MX": "Yucatec Maya",
+ "zu_ZA": "Zulu"
+ },
+ "help": [
+ {
+ "title": "[official] OpenAI API",
+ "url": "https://platform.openai.com/docs/introduction"
+ },
+ {
+ "title": "[YouTube] How to Get Your OpenAI API Key",
+ "url": "https://www.youtube.com/watch?v=nafDyRsVnXU"
+ },
+ {
+ "title": "【中文】申请教程 by BobTranslate",
+ "url": "https://bobtranslate.com/service/translate/openai.html"
+ },
+ {
+ "title": "【中文】申请教程 by TTime",
+ "url": "https://ttime.timerecord.cn/pages/bc2a83/"
+ }
+ ],
+ "config": [
+ {
+ "key": "api_base",
+ "title": "API Base",
+ "type": "input",
+ "default": "https://api.openai.com/v1"
+ },
+ {
+ "key": "api_key",
+ "title": "API Key",
+ "type": "input"
+ },
+ {
+ "key": "model",
+ "title": "Model",
+ "type": "select",
+ "default": "gpt-3.5-turbo",
+ "options": [
+ "gpt-3.5-turbo",
+ "gpt-3.5-turbo-16k",
+ "gpt-3.5-turbo-0301",
+ "gpt-3.5-turbo-0613",
+ "gpt-3.5-turbo-16k-0613",
+ "text-davinci-003",
+ "text-davinci-002",
+ "code-davinci-002",
+ "gpt-4",
+ "gpt-4-0314",
+ "gpt-4-0613",
+ "gpt-4-32k",
+ "gpt-4-32k-0314",
+ "gpt-4-32k-0613"
+ ]
+ }
+ ]
+ },
+ {
+ "key": "microsoft",
+ "name": "[ApiKey] Microsoft",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh-Hans",
+ "zh_HK": "yue",
+ "zh_TW": "zh-Hant",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "as_IN": "as",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "ba_RU": "ba",
+ "eu_ES": "eu",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "prs_AF": "prs",
+ "dv_MV": "dv",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fo_FO": "fo",
+ "fj_FJ": "fj",
+ "fil_PH": "fil",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "fr_CA": "fr-ca",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "mww_Latn_US": "mww",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "ikt_CA": "ikt",
+ "iu_CA": "iu",
+ "iu_Latn_CA": "iu-Latn",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "tlh_Latn": "tlh-Latn",
+ "tlh_Piqd": "tlh-Piqd",
+ "ko_KR": "ko",
+ "ku_Arab_IQ": "ku",
+ "ku_Latn_TR": "kmr",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "mn_Cyrl_MN": "mn-Cyrl",
+ "mn_Mong_CN": "mn-Mong",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "nb",
+ "or_IN": "or",
+ "ps_AF": "ps",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt-pt",
+ "pa_Guru_IN": "pa",
+ "otq_Latn_MX": "otq",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sm_Latn_WS": "sm",
+ "sr_Cyrl_RS": "sr-Cyrl",
+ "sr_Latn_RS": "sr-Latn",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ty_PF": "ty",
+ "ta_IN": "ta",
+ "tt_Latn_RU": "tt",
+ "te_IN": "te",
+ "th_TH": "th",
+ "bo_CN": "bo",
+ "ti_ET": "ti",
+ "to_TO": "to",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "ug_Arab_CN": "ug",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "yua_MX": "yua",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "[official] Microsoft Translator Text API",
+ "url": "https://learn.microsoft.com/azure/cognitive-services/translator/quickstart-translator?tabs=csharp"
+ },
+ {
+ "title": "[YouTube] How to get a Microsoft Translator API key",
+ "url": "https://www.youtube.com/watch?v=l6Rl4HSZVvg"
+ },
+ {
+ "title": "【中文】申请教程 by BobTranslate",
+ "url": "https://bobtranslate.com/service/translate/microsoft.html"
+ }
+ ],
+ "config": [
+ {
+ "key": "api_key",
+ "title": "API Key",
+ "type": "input"
+ },
+ {
+ "key": "region",
+ "title": "Region",
+ "type": "input",
+ "default": "eastasia"
+ }
+ ]
+ },
+ {
+ "key": "amazon",
+ "name": "[ApiKey] Amazon",
+ "concurrent": 999,
+ "support": {
+ "zh_CN": "zh",
+ "zh_HK": "zh-TW",
+ "zh_TW": "zh-TW",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "prs_AF": "fa-AF",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fa_IR": "fa",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "fr_CA": "fr-CA",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "ha_Latn_NG": "ha",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "ko_KR": "ko",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mr_IN": "mr",
+ "mn_Cyrl_MN": "mn",
+ "mn_Mong_CN": "mn",
+ "no_NO": "no",
+ "ps_AF": "ps",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt-PT",
+ "pa_Guru_IN": "pa",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sr_Cyrl_RS": "sr",
+ "sr_Latn_RS": "sr",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ta_IN": "ta",
+ "te_IN": "te",
+ "th_TH": "th",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy"
+ },
+ "help": [
+ {
+ "title": "[official] Amazon Translate",
+ "url": "https://docs.aws.amazon.com/translate/latest/dg/getting-started.html"
+ },
+ {
+ "title": "【中文】申请教程 by BobTranslate",
+ "url": "https://bobtranslate.com/service/translate/amazon.html"
+ }
+ ],
+ "config": [
+ {
+ "key": "api_key_id",
+ "title": "API Key ID",
+ "type": "input"
+ },
+ {
+ "key": "api_key_secret",
+ "title": "API Key Secret",
+ "type": "input"
+ },
+ {
+ "key": "region",
+ "title": "Region",
+ "type": "select",
+ "default": "us-east-1",
+ "options": [
+ "af-south-1",
+ "ap-east-1",
+ "ap-northeast-1",
+ "ap-northeast-2",
+ "ap-northeast-3",
+ "ap-south-1",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ap-southeast-3",
+ "ca-central-1",
+ "cn-north-1",
+ "cn-northwest-1",
+ "eu-central-1",
+ "eu-north-1",
+ "eu-south-1",
+ "eu-west-1",
+ "eu-west-2",
+ "eu-west-3",
+ "me-south-1",
+ "sa-east-1",
+ "us-east-1",
+ "us-east-2",
+ "us-gov-east-1",
+ "us-gov-west-1",
+ "us-iso-east-1",
+ "us-isob-east-1",
+ "us-west-1",
+ "us-west-2"
+ ]
+ }
+ ]
+ },
+ {
+ "key": "deepl",
+ "name": "DeepL",
+ "concurrent": 999,
+ "support": {
+ "bg_BG": "BG",
+ "cs_CZ": "CS",
+ "da_DK": "DA",
+ "de_DE": "DE",
+ "el_GR": "EL",
+ "en_GB": "EN",
+ "en_US": "EN",
+ "es_ES": "ES",
+ "et_EE": "ET",
+ "fi_FI": "FI",
+ "fr_FR": "FR",
+ "hu_HU": "HU",
+ "id_ID": "ID",
+ "it_IT": "IT",
+ "ja_JP": "JA",
+ "ko_KR": "KO",
+ "lt_LT": "LT",
+ "lv_LV": "LV",
+ "no_NO": "NB",
+ "nl_NL": "NL",
+ "pl_PL": "PL",
+ "pt_BR": "PT",
+ "pt_PT": "PT",
+ "ro_RO": "RO",
+ "ru_RU": "RU",
+ "sk_SK": "SK",
+ "sl_SI": "SL",
+ "sv_SE": "SV",
+ "tr_TR": "TR",
+ "uk_UA": "UK",
+ "zh_CN": "ZH"
+ },
+ "help": [
+ {
+ "title": "[official] DeepL API",
+ "url": "https://www.deepl.com/docs-api/"
+ },
+ {
+ "title": "[YouTube] How to get the DeepL API key and use it in Bohemicus, Trados, memoQ...",
+ "url": "https://www.youtube.com/watch?v=PEEmJNZN5X0"
+ },
+ {
+ "title": "【中文】申请教程 by BobTranslate",
+ "url": "https://bobtranslate.com/service/translate/deepl.html"
+ },
+ {
+ "title": "【中文】申请教程 by TTime",
+ "url": "https://ttime.timerecord.cn/pages/5216d6/"
+ }
+ ],
+ "config": [
+ {
+ "key": "api_key",
+ "title": "API Key",
+ "type": "input"
+ }
+ ]
+ },
+ {
+ "key": "yandex",
+ "name": "[ApiKey] Yandex",
+ "concurrent": 20,
+ "support": {
+ "zh_CN": "zh",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "ba_RU": "ba",
+ "eu_ES": "eu",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "ko_KR": "ko",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "mn_Cyrl_MN": "mn",
+ "mn_Mong_CN": "mn",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "no",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt",
+ "pa_Guru_IN": "pa",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sr_Cyrl_RS": "sr",
+ "sr_Latn_RS": "sr",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ta_IN": "ta",
+ "tt_Latn_RU": "tt",
+ "te_IN": "te",
+ "th_TH": "th",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy"
+ },
+ "help": [
+ {
+ "title": "[official] Creating API keys | Yandex Cloud - Documentation",
+ "url": "https://cloud.yandex.com/en/docs/iam/operations/api-key/create"
+ }
+ ],
+ "config": [
+ {
+ "key": "api_key",
+ "title": "API Key",
+ "type": "input"
+ }
+ ]
+ },
+ {
+ "key": "baidu",
+ "name": "[ApiKey] Baidu / 百度翻译",
+ "concurrent": 1,
+ "support": {
+ "zh_CN": "zh",
+ "zh_HK": "yue",
+ "zh_TW": "cht",
+ "en_US": "en",
+ "en_GB": "en",
+ "ar_SA": "ara",
+ "bg_BG": "bul",
+ "cs_CZ": "cs",
+ "da_DK": "dan",
+ "nl_NL": "nl",
+ "et_EE": "est",
+ "fi_FI": "fin",
+ "fr_FR": "fra",
+ "fr_CA": "fra",
+ "de_DE": "de",
+ "el_GR": "el",
+ "hu_HU": "hu",
+ "it_IT": "it",
+ "ja_JP": "jp",
+ "ko_KR": "kor",
+ "pl_PL": "pl",
+ "pt_PT": "pt",
+ "ro_RO": "rom",
+ "ru_RU": "ru",
+ "sl_SI": "slo",
+ "es_ES": "spa",
+ "sv_SE": "swe",
+ "th_TH": "th",
+ "vi_VN": "vie"
+ },
+ "help": [
+ {
+ "title": "[official] 百度翻译开放平台",
+ "url": "https://fanyi-api.baidu.com/product/11"
+ },
+ {
+ "title": "【中文】申请教程 by BobTranslate",
+ "url": "https://bobtranslate.com/service/translate/baidu.html"
+ },
+ {
+ "title": "【中文】申请教程 by TTime",
+ "url": "https://ttime.timerecord.cn/pages/4596af/"
+ }
+ ],
+ "config": [
+ {
+ "key": "app_id",
+ "title": "APP ID",
+ "type": "input"
+ },
+ {
+ "key": "app_secret",
+ "title": "APP Secret",
+ "type": "input"
+ }
+ ]
+ },
+ {
+ "key": "alibaba",
+ "name": "[ApiKey] Alibaba / 阿里翻译",
+ "concurrent": 50,
+ "support": {
+ "zh_CN": "zh",
+ "zh_HK": "zh-tw",
+ "zh_TW": "zh-tw",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "as_IN": "as",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "ba_RU": "ba",
+ "eu_ES": "eu",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hbs",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "dv_MV": "dv",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fo_FO": "fo",
+ "fj_FJ": "fj",
+ "fil_PH": "fil",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "iu_CA": "iu",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "tlh_Latn": "tlh",
+ "tlh_Piqd": "tlh",
+ "ko_KR": "ko",
+ "ku_Arab_IQ": "ku",
+ "ku_Latn_TR": "ku",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "no",
+ "or_IN": "or",
+ "ps_AF": "ps",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt",
+ "pa_Guru_IN": "pa",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sm_Latn_WS": "sm",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ty_PF": "ty",
+ "ta_IN": "ta",
+ "tt_Latn_RU": "tt",
+ "te_IN": "te",
+ "th_TH": "th",
+ "ti_ET": "ti",
+ "to_TO": "to",
+ "tr_TR": "tr",
+ "ur_PK": "ur",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "[official] 阿里云翻译",
+ "url": "https://help.aliyun.com/document_detail/468740.html"
+ },
+ {
+ "title": "【中文】申请教程 by BobTranslate",
+ "url": "https://bobtranslate.com/service/translate/ali.html"
+ },
+ {
+ "title": "【中文】申请教程 by TTime",
+ "url": "https://ttime.timerecord.cn/pages/635309/"
+ }
+ ],
+ "config": [
+ {
+ "key": "access_key_id",
+ "title": "Access Key ID",
+ "type": "input"
+ },
+ {
+ "key": "access_key_secret",
+ "title": "Access Key Secret",
+ "type": "input"
+ },
+ {
+ "key": "region",
+ "title": "Region ID",
+ "type": "select",
+ "default": "cn-shanghai",
+ "options": [
+ "cn-qingdao",
+ "cn-beijing",
+ "cn-zhangjiakou",
+ "cn-huhehaote",
+ "cn-hangzhou",
+ "cn-shanghai",
+ "cn-shenzhen",
+ "cn-chengdu",
+ "cn-hongkong",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ap-southeast-3",
+ "ap-southeast-5",
+ "ap-northeast-1",
+ "us-west-1",
+ "us-east-1",
+ "eu-central-1",
+ "eu-west-1",
+ "me-east-1",
+ "ap-south-1"
+ ]
+ }
+ ]
+ },
+ {
+ "key": "youdao",
+ "name": "[ApiKey] Youdao / 有道翻译",
+ "concurrent": 1,
+ "support": {
+ "zh_CN": "zh-CHS",
+ "en_US": "en",
+ "en_GB": "en",
+ "af_ZA": "af",
+ "sq_AL": "sq",
+ "am_ET": "am",
+ "ar_SA": "ar",
+ "hy_AM": "hy",
+ "az_Latn_AZ": "az",
+ "bn_BD": "bn",
+ "eu_ES": "eu",
+ "bs_Latn_BA": "bs",
+ "bg_BG": "bg",
+ "ca_ES": "ca",
+ "hr_HR": "hr",
+ "cs_CZ": "cs",
+ "da_DK": "da",
+ "nl_NL": "nl",
+ "et_EE": "et",
+ "fo_FO": "fo",
+ "fj_FJ": "fj",
+ "fil_PH": "tl",
+ "fi_FI": "fi",
+ "fr_FR": "fr",
+ "fr_CA": "fr",
+ "gl_ES": "gl",
+ "ka_GE": "ka",
+ "de_DE": "de",
+ "el_GR": "el",
+ "gu_IN": "gu",
+ "ht_HT": "ht",
+ "he_IL": "he",
+ "hi_IN": "hi",
+ "mww_Latn_US": "mww",
+ "hu_HU": "hu",
+ "is_IS": "is",
+ "id_ID": "id",
+ "ga_IE": "ga",
+ "it_IT": "it",
+ "ja_JP": "ja",
+ "kn_IN": "kn",
+ "kk_KZ": "kk",
+ "km_KH": "km",
+ "tlh_Latn": "tlh",
+ "tlh_Piqd": "tlh",
+ "ko_KR": "ko",
+ "ku_Arab_IQ": "ku",
+ "ku_Latn_TR": "ku",
+ "ky_KG": "ky",
+ "lo_LA": "lo",
+ "lv_LV": "lv",
+ "lt_LT": "lt",
+ "mk_MK": "mk",
+ "mg_MG": "mg",
+ "ms_Latn_MY": "ms",
+ "ml_IN": "ml",
+ "mt_MT": "mt",
+ "mi_NZ": "mi",
+ "mr_IN": "mr",
+ "mn_Cyrl_MN": "mn",
+ "mn_Mong_CN": "mn",
+ "my_MM": "my",
+ "ne_NP": "ne",
+ "no_NO": "no",
+ "ps_AF": "ps",
+ "fa_IR": "fa",
+ "pl_PL": "pl",
+ "pt_BR": "pt",
+ "pt_PT": "pt",
+ "pa_Guru_IN": "pa",
+ "otq_Latn_MX": "otq",
+ "ro_RO": "ro",
+ "ru_RU": "ru",
+ "sm_Latn_WS": "sm",
+ "sr_Cyrl_RS": "sr-Cyrl",
+ "sr_Latn_RS": "sr-Latn",
+ "sk_SK": "sk",
+ "sl_SI": "sl",
+ "so_SO": "so",
+ "es_ES": "es",
+ "sw_KE": "sw",
+ "sv_SE": "sv",
+ "ty_PF": "ty",
+ "ta_IN": "ta",
+ "te_IN": "te",
+ "th_TH": "th",
+ "to_TO": "to",
+ "tr_TR": "tr",
+ "uk_UA": "uk",
+ "ur_PK": "ur",
+ "uz_Latn_UZ": "uz",
+ "vi_VN": "vi",
+ "cy_GB": "cy",
+ "yua_MX": "yua",
+ "zu_ZA": "zu"
+ },
+ "help": [
+ {
+ "title": "[official] 有道智云翻译",
+ "url": "https://ai.youdao.com/doc.s#guide"
+ },
+ {
+ "title": "【中文】申请教程 by BobTranslate",
+ "url": "https://bobtranslate.com/service/translate/youdao.html"
+ },
+ {
+ "title": "【中文】申请教程 by TTime",
+ "url": "https://ttime.timerecord.cn/pages/43750c/"
+ }
+ ],
+ "config": [
+ {
+ "key": "app_id",
+ "title": "App ID",
+ "type": "input"
+ },
+ {
+ "key": "app_secret",
+ "title": "App Secret",
+ "type": "input"
+ }
+ ]
+ },
+ {
+ "key": "tencent",
+ "name": "[ApiKey] Tencent / 腾讯翻译",
+ "concurrent": 5,
+ "support": {
+ "zh_CN": "zh",
+ "zh_HK": "zh-TW",
+ "zh_TW": "zh-TW",
+ "en_US": "en",
+ "ja_JP": "ja",
+ "ko_KR": "ko",
+ "fr_FR": "fr",
+ "es_ES": "es",
+ "it_IT": "it",
+ "de_DE": "de",
+ "tr_TR": "tr",
+ "ru_RU": "ru",
+ "pt_PT": "pt",
+ "vi_VN": "vi",
+ "id_ID": "id",
+ "th_TH": "th",
+ "ms_Latn_MY": "ms",
+ "ar_SA": "ar",
+ "hi_IN": "hi"
+ },
+ "help": [
+ {
+ "title": "[official] 腾讯云翻译",
+ "url": "https://cloud.tencent.com/document/product/551"
+ },
+ {
+ "title": "【中文】申请教程 by BobTranslate",
+ "url": "https://bobtranslate.com/service/translate/tencent.html"
+ },
+ {
+ "title": "【中文】申请教程 by TTime",
+ "url": "https://ttime.timerecord.cn/pages/e2d1b5/"
+ }
+ ],
+ "config": [
+ {
+ "key": "secret_id",
+ "title": "Secret ID",
+ "type": "input"
+ },
+ {
+ "key": "secret_key",
+ "title": "Secret Key",
+ "type": "input"
+ },
+ {
+ "key": "region",
+ "title": "Region",
+ "type": "select",
+ "default": "ap-shanghai",
+ "options": [
+ "ap-bangkok",
+ "ap-beijing",
+ "ap-chengdu",
+ "ap-chongqing",
+ "ap-guangzhou",
+ "ap-hongkong",
+ "ap-mumbai",
+ "ap-seoul",
+ "ap-shanghai",
+ "ap-shenzhen-fsi",
+ "ap-shenzhen-fsi",
+ "ap-singapore",
+ "ap-tokyo",
+ "eu-frankfurt",
+ "na-ashburn",
+ "na-siliconvalley",
+ "na-toronto"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/translate_apis.json.REMOVED.git-id b/translate_apis.json.REMOVED.git-id
deleted file mode 100644
index 414c595..0000000
--- a/translate_apis.json.REMOVED.git-id
+++ /dev/null
@@ -1 +0,0 @@
-ec7f9fdd27e99564d844eace9d67a0349c65fe33
\ No newline at end of file