"use strict"; /* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ self["webpackHotUpdate_N_E"]("app/api/config/route",{ /***/ "(rsc)/./app/constant.ts": /*!*************************!*\ !*** ./app/constant.ts ***! \*************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ACCESS_CODE_PREFIX: () => (/* binding */ ACCESS_CODE_PREFIX),\n/* harmony export */ ALIBABA_BASE_URL: () => (/* binding */ ALIBABA_BASE_URL),\n/* harmony export */ ANTHROPIC_BASE_URL: () => (/* binding */ ANTHROPIC_BASE_URL),\n/* harmony export */ Alibaba: () => (/* binding */ Alibaba),\n/* harmony export */ Anthropic: () => (/* binding */ Anthropic),\n/* harmony export */ ApiPath: () => (/* binding */ ApiPath),\n/* harmony export */ Azure: () => (/* binding */ Azure),\n/* harmony export */ BAIDU_BASE_URL: () => (/* binding */ BAIDU_BASE_URL),\n/* harmony export */ BAIDU_OATUH_URL: () => (/* binding */ BAIDU_OATUH_URL),\n/* harmony export */ BYTEDANCE_BASE_URL: () => (/* binding */ BYTEDANCE_BASE_URL),\n/* harmony export */ Baidu: () => (/* binding */ Baidu),\n/* harmony export */ ByteDance: () => (/* binding */ ByteDance),\n/* harmony export */ CACHE_URL_PREFIX: () => (/* binding */ CACHE_URL_PREFIX),\n/* harmony export */ CHATGLM_BASE_URL: () => (/* binding */ CHATGLM_BASE_URL),\n/* harmony export */ CHAT_PAGE_SIZE: () => (/* binding */ CHAT_PAGE_SIZE),\n/* harmony export */ ChatGLM: () => (/* binding */ ChatGLM),\n/* harmony export */ DEEPSEEK_BASE_URL: () => (/* binding */ DEEPSEEK_BASE_URL),\n/* harmony export */ DEEPSEEK_SUMMARIZE_MODEL: () => (/* binding */ DEEPSEEK_SUMMARIZE_MODEL),\n/* harmony export */ DEFAULT_GA_ID: () => (/* binding */ DEFAULT_GA_ID),\n/* harmony export */ DEFAULT_INPUT_TEMPLATE: () => (/* binding */ DEFAULT_INPUT_TEMPLATE),\n/* harmony export */ DEFAULT_MODELS: () => (/* binding */ DEFAULT_MODELS),\n/* harmony export */ DEFAULT_SIDEBAR_WIDTH: () => (/* binding */ DEFAULT_SIDEBAR_WIDTH),\n/* harmony export */ DEFAULT_SYSTEM_TEMPLATE: () => (/* binding */ DEFAULT_SYSTEM_TEMPLATE),\n/* harmony export */ DEFAULT_TTS_ENGINE: () => (/* binding */ DEFAULT_TTS_ENGINE),\n/* harmony export */ DEFAULT_TTS_ENGINES: () => (/* binding */ DEFAULT_TTS_ENGINES),\n/* harmony export */ DEFAULT_TTS_MODEL: () => (/* binding */ DEFAULT_TTS_MODEL),\n/* harmony export */ DEFAULT_TTS_MODELS: () => (/* binding */ DEFAULT_TTS_MODELS),\n/* harmony export */ DEFAULT_TTS_VOICE: () => (/* binding */ DEFAULT_TTS_VOICE),\n/* harmony export */ DEFAULT_TTS_VOICES: () => (/* binding */ DEFAULT_TTS_VOICES),\n/* harmony export */ DeepSeek: () => (/* binding */ DeepSeek),\n/* harmony export */ EXCLUDE_VISION_MODEL_REGEXES: () => (/* binding */ EXCLUDE_VISION_MODEL_REGEXES),\n/* harmony export */ EXPORT_MESSAGE_CLASS_NAME: () => (/* binding */ EXPORT_MESSAGE_CLASS_NAME),\n/* harmony export */ FETCH_COMMIT_URL: () => (/* binding */ FETCH_COMMIT_URL),\n/* harmony export */ FETCH_TAG_URL: () => (/* binding */ FETCH_TAG_URL),\n/* harmony export */ FileName: () => (/* binding */ FileName),\n/* harmony export */ GEMINI_BASE_URL: () => (/* binding */ GEMINI_BASE_URL),\n/* harmony export */ GEMINI_SUMMARIZE_MODEL: () => (/* binding */ GEMINI_SUMMARIZE_MODEL),\n/* harmony export */ Google: () => (/* binding */ Google),\n/* harmony export */ GoogleSafetySettingsThreshold: () => (/* binding */ GoogleSafetySettingsThreshold),\n/* harmony export */ IFLYTEK_BASE_URL: () => (/* binding */ IFLYTEK_BASE_URL),\n/* harmony export */ ISSUE_URL: () => (/* binding */ ISSUE_URL),\n/* harmony export */ Iflytek: () => (/* binding */ Iflytek),\n/* harmony export */ KnowledgeCutOffDate: () => (/* binding */ KnowledgeCutOffDate),\n/* harmony export */ LAST_INPUT_KEY: () => (/* binding */ LAST_INPUT_KEY),\n/* harmony export */ MAX_RENDER_MSG_COUNT: () => (/* binding */ MAX_RENDER_MSG_COUNT),\n/* harmony export */ MAX_SIDEBAR_WIDTH: () => (/* binding */ MAX_SIDEBAR_WIDTH),\n/* harmony export */ MCP_SYSTEM_TEMPLATE: () => (/* binding */ MCP_SYSTEM_TEMPLATE),\n/* harmony export */ MCP_TOOLS_TEMPLATE: () => (/* binding */ MCP_TOOLS_TEMPLATE),\n/* harmony export */ MIN_SIDEBAR_WIDTH: () => (/* binding */ MIN_SIDEBAR_WIDTH),\n/* harmony export */ MOONSHOT_BASE_URL: () => (/* binding */ MOONSHOT_BASE_URL),\n/* harmony export */ ModelProvider: () => (/* binding */ ModelProvider),\n/* harmony export */ Moonshot: () => (/* binding */ Moonshot),\n/* harmony export */ NARROW_SIDEBAR_WIDTH: () => (/* binding */ NARROW_SIDEBAR_WIDTH),\n/* harmony export */ OPENAI_BASE_URL: () => (/* binding */ OPENAI_BASE_URL),\n/* harmony export */ OWNER: () => (/* binding */ OWNER),\n/* harmony export */ OpenaiPath: () => (/* binding */ OpenaiPath),\n/* harmony export */ PLUGINS_REPO_URL: () => (/* binding */ PLUGINS_REPO_URL),\n/* harmony export */ Path: () => (/* binding */ Path),\n/* harmony export */ RELEASE_URL: () => (/* binding */ RELEASE_URL),\n/* harmony export */ REPO: () => (/* binding */ REPO),\n/* harmony export */ REPO_URL: () => (/* binding */ REPO_URL),\n/* harmony export */ REQUEST_TIMEOUT_MS: () => (/* binding */ REQUEST_TIMEOUT_MS),\n/* harmony export */ REQUEST_TIMEOUT_MS_FOR_THINKING: () => (/* binding */ REQUEST_TIMEOUT_MS_FOR_THINKING),\n/* harmony export */ RUNTIME_CONFIG_DOM: () => (/* binding */ RUNTIME_CONFIG_DOM),\n/* harmony export */ SAAS_CHAT_URL: () => (/* binding */ SAAS_CHAT_URL),\n/* harmony export */ SAAS_CHAT_UTM_URL: () => (/* binding */ SAAS_CHAT_UTM_URL),\n/* harmony export */ SILICONFLOW_BASE_URL: () => (/* binding */ SILICONFLOW_BASE_URL),\n/* harmony export */ STABILITY_BASE_URL: () => (/* binding */ STABILITY_BASE_URL),\n/* harmony export */ STORAGE_KEY: () => (/* binding */ STORAGE_KEY),\n/* harmony export */ SUMMARIZE_MODEL: () => (/* binding */ SUMMARIZE_MODEL),\n/* harmony export */ ServiceProvider: () => (/* binding */ ServiceProvider),\n/* harmony export */ SiliconFlow: () => (/* binding */ SiliconFlow),\n/* harmony export */ SlotID: () => (/* binding */ SlotID),\n/* harmony export */ Stability: () => (/* binding */ Stability),\n/* harmony export */ StoreKey: () => (/* binding */ StoreKey),\n/* harmony export */ TENCENT_BASE_URL: () => (/* binding */ TENCENT_BASE_URL),\n/* harmony export */ Tencent: () => (/* binding */ Tencent),\n/* harmony export */ UNFINISHED_INPUT: () => (/* binding */ UNFINISHED_INPUT),\n/* harmony export */ UPDATE_URL: () => (/* binding */ UPDATE_URL),\n/* harmony export */ UPLOAD_URL: () => (/* binding */ UPLOAD_URL),\n/* harmony export */ VISION_MODEL_REGEXES: () => (/* binding */ VISION_MODEL_REGEXES),\n/* harmony export */ XAI: () => (/* binding */ XAI),\n/* harmony export */ XAI_BASE_URL: () => (/* binding */ XAI_BASE_URL),\n/* harmony export */ internalAllowedWebDavEndpoints: () => (/* binding */ internalAllowedWebDavEndpoints)\n/* harmony export */ });\nconst OWNER = \"ChatGPTNextWeb\";\nconst REPO = \"ChatGPT-Next-Web\";\nconst REPO_URL = `https://github.com/${OWNER}/${REPO}`;\nconst PLUGINS_REPO_URL = `https://github.com/${OWNER}/NextChat-Awesome-Plugins`;\nconst ISSUE_URL = `https://github.com/${OWNER}/${REPO}/issues`;\nconst UPDATE_URL = `${REPO_URL}#keep-updated`;\nconst RELEASE_URL = `${REPO_URL}/releases`;\nconst FETCH_COMMIT_URL = `https://api.github.com/repos/${OWNER}/${REPO}/commits?per_page=1`;\nconst FETCH_TAG_URL = `https://api.github.com/repos/${OWNER}/${REPO}/tags?per_page=1`;\nconst RUNTIME_CONFIG_DOM = \"danger-runtime-config\";\nconst STABILITY_BASE_URL = \"https://api.stability.ai\";\nconst OPENAI_BASE_URL = \"https://api.openai.com\";\nconst ANTHROPIC_BASE_URL = \"https://api.anthropic.com\";\nconst GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/\";\nconst BAIDU_BASE_URL = \"https://aip.baidubce.com\";\nconst BAIDU_OATUH_URL = `${BAIDU_BASE_URL}/oauth/2.0/token`;\nconst BYTEDANCE_BASE_URL = \"https://ark.cn-beijing.volces.com\";\nconst ALIBABA_BASE_URL = \"https://dashscope.aliyuncs.com/api/\";\nconst TENCENT_BASE_URL = \"https://hunyuan.tencentcloudapi.com\";\nconst MOONSHOT_BASE_URL = \"https://api.moonshot.cn\";\nconst IFLYTEK_BASE_URL = \"https://spark-api-open.xf-yun.com\";\nconst DEEPSEEK_BASE_URL = \"https://api.deepseek.com\";\nconst XAI_BASE_URL = \"https://api.x.ai\";\nconst CHATGLM_BASE_URL = \"https://open.bigmodel.cn\";\nconst SILICONFLOW_BASE_URL = \"https://api.siliconflow.cn\";\nconst CACHE_URL_PREFIX = \"/api/cache\";\nconst UPLOAD_URL = `${CACHE_URL_PREFIX}/upload`;\nvar Path;\n(function(Path) {\n Path[\"Home\"] = \"/\";\n Path[\"Chat\"] = \"/chat\";\n Path[\"Settings\"] = \"/settings\";\n Path[\"NewChat\"] = \"/new-chat\";\n Path[\"Masks\"] = \"/masks\";\n Path[\"Plugins\"] = \"/plugins\";\n Path[\"Auth\"] = \"/auth\";\n Path[\"Sd\"] = \"/sd\";\n Path[\"SdNew\"] = \"/sd-new\";\n Path[\"Artifacts\"] = \"/artifacts\";\n Path[\"SearchChat\"] = \"/search-chat\";\n Path[\"McpMarket\"] = \"/mcp-market\";\n})(Path || (Path = {}));\nvar ApiPath;\n(function(ApiPath) {\n ApiPath[\"Cors\"] = \"\";\n ApiPath[\"Azure\"] = \"/api/azure\";\n ApiPath[\"OpenAI\"] = \"/api/openai\";\n ApiPath[\"Anthropic\"] = \"/api/anthropic\";\n ApiPath[\"Google\"] = \"/api/google\";\n ApiPath[\"Baidu\"] = \"/api/baidu\";\n ApiPath[\"ByteDance\"] = \"/api/bytedance\";\n ApiPath[\"Alibaba\"] = \"/api/alibaba\";\n ApiPath[\"Tencent\"] = \"/api/tencent\";\n ApiPath[\"Moonshot\"] = \"/api/moonshot\";\n ApiPath[\"Iflytek\"] = \"/api/iflytek\";\n ApiPath[\"Stability\"] = \"/api/stability\";\n ApiPath[\"Artifacts\"] = \"/api/artifacts\";\n ApiPath[\"XAI\"] = \"/api/xai\";\n ApiPath[\"ChatGLM\"] = \"/api/chatglm\";\n ApiPath[\"DeepSeek\"] = \"/api/deepseek\";\n ApiPath[\"SiliconFlow\"] = \"/api/siliconflow\";\n})(ApiPath || (ApiPath = {}));\nvar SlotID;\n(function(SlotID) {\n SlotID[\"AppBody\"] = \"app-body\";\n SlotID[\"CustomModel\"] = \"custom-model\";\n})(SlotID || (SlotID = {}));\nvar FileName;\n(function(FileName) {\n FileName[\"Masks\"] = \"masks.json\";\n FileName[\"Prompts\"] = \"prompts.json\";\n})(FileName || (FileName = {}));\nvar StoreKey;\n(function(StoreKey) {\n StoreKey[\"Chat\"] = \"chat-next-web-store\";\n StoreKey[\"Plugin\"] = \"chat-next-web-plugin\";\n StoreKey[\"Access\"] = \"access-control\";\n StoreKey[\"Config\"] = \"app-config\";\n StoreKey[\"Mask\"] = \"mask-store\";\n StoreKey[\"Prompt\"] = \"prompt-store\";\n StoreKey[\"Update\"] = \"chat-update\";\n StoreKey[\"Sync\"] = \"sync\";\n StoreKey[\"SdList\"] = \"sd-list\";\n StoreKey[\"Mcp\"] = \"mcp-store\";\n})(StoreKey || (StoreKey = {}));\nconst DEFAULT_SIDEBAR_WIDTH = 300;\nconst MAX_SIDEBAR_WIDTH = 500;\nconst MIN_SIDEBAR_WIDTH = 230;\nconst NARROW_SIDEBAR_WIDTH = 100;\nconst ACCESS_CODE_PREFIX = \"nk-\";\nconst LAST_INPUT_KEY = \"last-input\";\nconst UNFINISHED_INPUT = (id)=>\"unfinished-input-\" + id;\nconst STORAGE_KEY = \"chatgpt-next-web\";\nconst REQUEST_TIMEOUT_MS = 60000;\nconst REQUEST_TIMEOUT_MS_FOR_THINKING = REQUEST_TIMEOUT_MS * 5;\nconst EXPORT_MESSAGE_CLASS_NAME = \"export-markdown\";\nvar ServiceProvider;\n(function(ServiceProvider) {\n ServiceProvider[\"OpenAI\"] = \"OpenAI\";\n ServiceProvider[\"Azure\"] = \"Azure\";\n ServiceProvider[\"Google\"] = \"Google\";\n ServiceProvider[\"Anthropic\"] = \"Anthropic\";\n ServiceProvider[\"Baidu\"] = \"Baidu\";\n ServiceProvider[\"ByteDance\"] = \"ByteDance\";\n ServiceProvider[\"Alibaba\"] = \"Alibaba\";\n ServiceProvider[\"Tencent\"] = \"Tencent\";\n ServiceProvider[\"Moonshot\"] = \"Moonshot\";\n ServiceProvider[\"Stability\"] = \"Stability\";\n ServiceProvider[\"Iflytek\"] = \"Iflytek\";\n ServiceProvider[\"XAI\"] = \"XAI\";\n ServiceProvider[\"ChatGLM\"] = \"ChatGLM\";\n ServiceProvider[\"DeepSeek\"] = \"DeepSeek\";\n ServiceProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ServiceProvider || (ServiceProvider = {}));\nvar GoogleSafetySettingsThreshold;\n(function(GoogleSafetySettingsThreshold) {\n GoogleSafetySettingsThreshold[\"BLOCK_NONE\"] = \"BLOCK_NONE\";\n GoogleSafetySettingsThreshold[\"BLOCK_ONLY_HIGH\"] = \"BLOCK_ONLY_HIGH\";\n GoogleSafetySettingsThreshold[\"BLOCK_MEDIUM_AND_ABOVE\"] = \"BLOCK_MEDIUM_AND_ABOVE\";\n GoogleSafetySettingsThreshold[\"BLOCK_LOW_AND_ABOVE\"] = \"BLOCK_LOW_AND_ABOVE\";\n})(GoogleSafetySettingsThreshold || (GoogleSafetySettingsThreshold = {}));\nvar ModelProvider;\n(function(ModelProvider) {\n ModelProvider[\"Stability\"] = \"Stability\";\n ModelProvider[\"GPT\"] = \"GPT\";\n ModelProvider[\"GeminiPro\"] = \"GeminiPro\";\n ModelProvider[\"Claude\"] = \"Claude\";\n ModelProvider[\"Ernie\"] = \"Ernie\";\n ModelProvider[\"Doubao\"] = \"Doubao\";\n ModelProvider[\"Qwen\"] = \"Qwen\";\n ModelProvider[\"Hunyuan\"] = \"Hunyuan\";\n ModelProvider[\"Moonshot\"] = \"Moonshot\";\n ModelProvider[\"Iflytek\"] = \"Iflytek\";\n ModelProvider[\"XAI\"] = \"XAI\";\n ModelProvider[\"ChatGLM\"] = \"ChatGLM\";\n ModelProvider[\"DeepSeek\"] = \"DeepSeek\";\n ModelProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ModelProvider || (ModelProvider = {}));\nconst Stability = {\n GeneratePath: \"v2beta/stable-image/generate\",\n ExampleEndpoint: \"https://api.stability.ai\"\n};\nconst Anthropic = {\n ChatPath: \"v1/messages\",\n ChatPath1: \"v1/complete\",\n ExampleEndpoint: \"https://api.anthropic.com\",\n Vision: \"2023-06-01\"\n};\nconst OpenaiPath = {\n ChatPath: \"v1/chat/completions\",\n SpeechPath: \"v1/audio/speech\",\n ImagePath: \"v1/images/generations\",\n UsagePath: \"dashboard/billing/usage\",\n SubsPath: \"dashboard/billing/subscription\",\n ListModelPath: \"v1/models\"\n};\nconst Azure = {\n ChatPath: (deployName, apiVersion)=>`deployments/${deployName}/chat/completions?api-version=${apiVersion}`,\n // https://.openai.azure.com/openai/deployments//images/generations?api-version=\n ImagePath: (deployName, apiVersion)=>`deployments/${deployName}/images/generations?api-version=${apiVersion}`,\n ExampleEndpoint: \"https://{resource-url}/openai\"\n};\nconst Google = {\n ExampleEndpoint: \"https://generativelanguage.googleapis.com/\",\n ChatPath: (modelName)=>`v1beta/models/${modelName}:streamGenerateContent`\n};\nconst Baidu = {\n ExampleEndpoint: BAIDU_BASE_URL,\n ChatPath: (modelName)=>{\n let endpoint = modelName;\n if (modelName === \"ernie-4.0-8k\") {\n endpoint = \"completions_pro\";\n }\n if (modelName === \"ernie-4.0-8k-preview-0518\") {\n endpoint = \"completions_adv_pro\";\n }\n if (modelName === \"ernie-3.5-8k\") {\n endpoint = \"completions\";\n }\n if (modelName === \"ernie-speed-8k\") {\n endpoint = \"ernie_speed\";\n }\n return `rpc/2.0/ai_custom/v1/wenxinworkshop/chat/${endpoint}`;\n }\n};\nconst ByteDance = {\n ExampleEndpoint: \"https://ark.cn-beijing.volces.com/api/\",\n ChatPath: \"api/v3/chat/completions\"\n};\nconst Alibaba = {\n ExampleEndpoint: ALIBABA_BASE_URL,\n ChatPath: \"v1/services/aigc/text-generation/generation\"\n};\nconst Tencent = {\n ExampleEndpoint: TENCENT_BASE_URL\n};\nconst Moonshot = {\n ExampleEndpoint: MOONSHOT_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst Iflytek = {\n ExampleEndpoint: IFLYTEK_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DeepSeek = {\n ExampleEndpoint: DEEPSEEK_BASE_URL,\n ChatPath: \"chat/completions\"\n};\nconst XAI = {\n ExampleEndpoint: XAI_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst ChatGLM = {\n ExampleEndpoint: CHATGLM_BASE_URL,\n ChatPath: \"api/paas/v4/chat/completions\",\n ImagePath: \"api/paas/v4/images/generations\",\n VideoPath: \"api/paas/v4/videos/generations\"\n};\nconst SiliconFlow = {\n ExampleEndpoint: SILICONFLOW_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DEFAULT_INPUT_TEMPLATE = `{{input}}`; // input / time / model / lang\n// export const DEFAULT_SYSTEM_TEMPLATE = `\n// You are ChatGPT, a large language model trained by {{ServiceProvider}}.\n// Knowledge cutoff: {{cutoff}}\n// Current model: {{model}}\n// Current time: {{time}}\n// Latex inline: $x^2$\n// Latex block: $$e=mc^2$$\n// `;\nconst DEFAULT_SYSTEM_TEMPLATE = `\r\nYou are ChatGPT, a large language model trained by {{ServiceProvider}}.\r\nKnowledge cutoff: {{cutoff}}\r\nCurrent model: {{model}}\r\nCurrent time: {{time}}\r\nLatex inline: \\\\(x^2\\\\) \r\nLatex block: $$e=mc^2$$\r\n`;\nconst MCP_TOOLS_TEMPLATE = `\r\n[clientId]\r\n{{ clientId }}\r\n[tools]\r\n{{ tools }}\r\n`;\nconst MCP_SYSTEM_TEMPLATE = `\r\nYou are an AI assistant with access to system tools. Your role is to help users by combining natural language understanding with tool operations when needed.\r\n\r\n1. AVAILABLE TOOLS:\r\n{{ MCP_TOOLS }}\r\n\r\n2. WHEN TO USE TOOLS:\r\n - ALWAYS USE TOOLS when they can help answer user questions\r\n - DO NOT just describe what you could do - TAKE ACTION immediately\r\n - If you're not sure whether to use a tool, USE IT\r\n - Common triggers for tool use:\r\n * Questions about files or directories\r\n * Requests to check, list, or manipulate system resources\r\n * Any query that can be answered with available tools\r\n\r\n3. HOW TO USE TOOLS:\r\n A. Tool Call Format:\r\n - Use markdown code blocks with format: \\`\\`\\`json:mcp:{clientId}\\`\\`\\`\r\n - Always include:\r\n * method: \"tools/call\"(Only this method is supported)\r\n * params: \r\n - name: must match an available primitive name\r\n - arguments: required parameters for the primitive\r\n\r\n B. Response Format:\r\n - Tool responses will come as user messages\r\n - Format: \\`\\`\\`json:mcp-response:{clientId}\\`\\`\\`\r\n - Wait for response before making another tool call\r\n\r\n C. Important Rules:\r\n - Only use tools/call method\r\n - Only ONE tool call per message\r\n - ALWAYS TAKE ACTION instead of just describing what you could do\r\n - Include the correct clientId in code block language tag\r\n - Verify arguments match the primitive's requirements\r\n\r\n4. INTERACTION FLOW:\r\n A. When user makes a request:\r\n - IMMEDIATELY use appropriate tool if available\r\n - DO NOT ask if user wants you to use the tool\r\n - DO NOT just describe what you could do\r\n B. After receiving tool response:\r\n - Explain results clearly\r\n - Take next appropriate action if needed\r\n C. If tools fail:\r\n - Explain the error\r\n - Try alternative approach immediately\r\n\r\n5. EXAMPLE INTERACTION:\r\n\r\n good example:\r\n\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"list_allowed_directories\",\r\n \"arguments\": {}\r\n }\r\n }\r\n \\`\\`\\`\"\r\n\r\n\r\n \\`\\`\\`json:mcp-response:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"write_file\",\r\n \"arguments\": {\r\n \"path\": \"/Users/river/dev/nextchat/test/joke.txt\",\r\n \"content\": \"为什么数学书总是感到忧伤?因为它有太多的问题。\"\r\n }\r\n }\r\n }\r\n\\`\\`\\`\r\n\r\n follwing is the wrong! mcp json example:\r\n\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"write_file\",\r\n \"params\": {\r\n \"path\": \"NextChat_Information.txt\",\r\n \"content\": \"1\"\r\n }\r\n }\r\n \\`\\`\\`\r\n\r\n This is wrong because the method is not tools/call.\r\n \r\n \\`\\`\\`{\r\n \"method\": \"search_repositories\",\r\n \"params\": {\r\n \"query\": \"2oeee\"\r\n }\r\n}\r\n \\`\\`\\`\r\n\r\n This is wrong because the method is not tools/call.!!!!!!!!!!!\r\n\r\n the right format is:\r\n \\`\\`\\`json:mcp:filesystem\r\n {\r\n \"method\": \"tools/call\",\r\n \"params\": {\r\n \"name\": \"search_repositories\",\r\n \"arguments\": {\r\n \"query\": \"2oeee\"\r\n }\r\n }\r\n }\r\n \\`\\`\\`\r\n \r\n please follow the format strictly ONLY use tools/call method!!!!!!!!!!!\r\n \r\n`;\nconst SUMMARIZE_MODEL = \"gpt-4o-mini\";\nconst GEMINI_SUMMARIZE_MODEL = \"gemini-pro\";\nconst DEEPSEEK_SUMMARIZE_MODEL = \"deepseek-ai/DeepSeek-R1-Distill-Llama-8B\";\nconst KnowledgeCutOffDate = {\n default: \"2021-09\",\n \"gpt-4-turbo\": \"2023-12\",\n \"gpt-4-turbo-2024-04-09\": \"2023-12\",\n \"gpt-4-turbo-preview\": \"2023-12\",\n \"gpt-4o\": \"2023-10\",\n \"gpt-4o-2024-05-13\": \"2023-10\",\n \"gpt-4o-2024-08-06\": \"2023-10\",\n \"gpt-4o-2024-11-20\": \"2023-10\",\n \"chatgpt-4o-latest\": \"2023-10\",\n \"gpt-4o-mini\": \"2023-10\",\n \"gpt-4o-mini-2024-07-18\": \"2023-10\",\n \"gpt-4-vision-preview\": \"2023-04\",\n \"o1-mini-2024-09-12\": \"2023-10\",\n \"o1-mini\": \"2023-10\",\n \"o1-preview-2024-09-12\": \"2023-10\",\n \"o1-preview\": \"2023-10\",\n \"o1-2024-12-17\": \"2023-10\",\n o1: \"2023-10\",\n \"o3-mini-2025-01-31\": \"2023-10\",\n \"o3-mini\": \"2023-10\",\n // After improvements,\n // it's now easier to add \"KnowledgeCutOffDate\" instead of stupid hardcoding it, as was done previously.\n \"gemini-pro\": \"2023-12\",\n \"gemini-pro-vision\": \"2023-12\",\n \"deepseek-chat\": \"2024-07\",\n \"deepseek-coder\": \"2024-07\"\n};\nconst DEFAULT_TTS_ENGINE = \"OpenAI-TTS\";\nconst DEFAULT_TTS_ENGINES = [\n \"OpenAI-TTS\",\n \"Edge-TTS\"\n];\nconst DEFAULT_TTS_MODEL = \"tts-1\";\nconst DEFAULT_TTS_VOICE = \"alloy\";\nconst DEFAULT_TTS_MODELS = [\n \"tts-1\",\n \"tts-1-hd\"\n];\nconst DEFAULT_TTS_VOICES = [\n \"alloy\",\n \"echo\",\n \"fable\",\n \"onyx\",\n \"nova\",\n \"shimmer\"\n];\nconst VISION_MODEL_REGEXES = [\n /vision/,\n /gpt-4o/,\n /claude-3/,\n /gemini-1\\.5/,\n /gemini-exp/,\n /gemini-2\\.0/,\n /learnlm/,\n /qwen-vl/,\n /qwen2-vl/,\n /gpt-4-turbo(?!.*preview)/,\n /^dall-e-3$/,\n /glm-4v/\n];\nconst EXCLUDE_VISION_MODEL_REGEXES = [\n /claude-3-5-haiku-20241022/\n];\nconst openaiModels = [];\nconst googleModels = [];\nconst anthropicModels = [];\nconst baiduModels = [];\nconst bytedanceModels = [];\nconst alibabaModes = [];\nconst tencentModels = [];\nconst moonshotModes = [];\nconst iflytekModels = [];\nconst deepseekModels = [];\nconst xAIModes = [];\nconst chatglmModels = [];\nconst siliconflowModels = [\n \"deepseek-ai/DeepSeek-R1\",\n \"deepseek-ai/DeepSeek-V3\"\n];\nlet seq = 1000; // 内置的模型序号生成器从1000开始\nconst DEFAULT_MODELS = [\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"openai\",\n providerName: \"OpenAI\",\n providerType: \"openai\",\n sorted: 1\n }\n })),\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"azure\",\n providerName: \"Azure\",\n providerType: \"azure\",\n sorted: 2\n }\n })),\n ...googleModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"google\",\n providerName: \"Google\",\n providerType: \"google\",\n sorted: 3\n }\n })),\n ...anthropicModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"anthropic\",\n providerName: \"Anthropic\",\n providerType: \"anthropic\",\n sorted: 4\n }\n })),\n ...baiduModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"baidu\",\n providerName: \"Baidu\",\n providerType: \"baidu\",\n sorted: 5\n }\n })),\n ...bytedanceModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"bytedance\",\n providerName: \"ByteDance\",\n providerType: \"bytedance\",\n sorted: 6\n }\n })),\n ...alibabaModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"alibaba\",\n providerName: \"Alibaba\",\n providerType: \"alibaba\",\n sorted: 7\n }\n })),\n ...tencentModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"tencent\",\n providerName: \"Tencent\",\n providerType: \"tencent\",\n sorted: 8\n }\n })),\n ...moonshotModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"moonshot\",\n providerName: \"Moonshot\",\n providerType: \"moonshot\",\n sorted: 9\n }\n })),\n ...iflytekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"iflytek\",\n providerName: \"Iflytek\",\n providerType: \"iflytek\",\n sorted: 10\n }\n })),\n ...xAIModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"xai\",\n providerName: \"XAI\",\n providerType: \"xai\",\n sorted: 11\n }\n })),\n ...chatglmModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"chatglm\",\n providerName: \"ChatGLM\",\n providerType: \"chatglm\",\n sorted: 12\n }\n })),\n ...deepseekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"deepseek\",\n providerName: \"DeepSeek\",\n providerType: \"deepseek\",\n sorted: 13\n }\n })),\n ...siliconflowModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"siliconflow\",\n providerName: \"SiliconFlow\",\n providerType: \"siliconflow\",\n sorted: 14\n }\n }))\n];\nconst CHAT_PAGE_SIZE = 15;\nconst MAX_RENDER_MSG_COUNT = 45;\n// some famous webdav endpoints\nconst internalAllowedWebDavEndpoints = [\n \"https://dav.jianguoyun.com/dav/\",\n \"https://dav.dropdav.com/\",\n \"https://dav.box.com/dav\",\n \"https://nanao.teracloud.jp/dav/\",\n \"https://bora.teracloud.jp/dav/\",\n \"https://webdav.4shared.com/\",\n \"https://dav.idrivesync.com\",\n \"https://webdav.yandex.com\",\n \"https://app.koofr.net/dav/Koofr\"\n];\nconst DEFAULT_GA_ID = \"G-89WN60ZK2E\";\nconst SAAS_CHAT_URL = \"https://nextchat.dev/chat\";\nconst SAAS_CHAT_UTM_URL = \"https://nextchat.dev/chat?utm=github\";\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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V0FBVztZQUNYQyxRQUFRTDtZQUNSTSxVQUFVO2dCQUNSM0UsSUFBSTtnQkFDSjRFLGNBQWM7Z0JBQ2RDLGNBQWM7Z0JBQ2RILFFBQVE7WUFDVjtRQUNGO0NBQ0QsQ0FBVTtBQUVKLE1BQU1JLGlCQUFpQixHQUFHO0FBQzFCLE1BQU1DLHVCQUF1QixHQUFHO0FBRXZDLCtCQUErQjtBQUN4QixNQUFNQyxpQ0FBaUM7SUFDNUM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0QsQ0FBQztBQUVLLE1BQU1DLGdCQUFnQixlQUFlO0FBRXJDLE1BQU1DLGdCQUFnQiw0QkFBNEI7QUFDbEQsTUFBTUMsb0JBQW9CLHVDQUF1QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvY29uc3RhbnQudHM/YWY0NCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgT1dORVIgPSBcIkNoYXRHUFROZXh0V2ViXCI7XHJcbmV4cG9ydCBjb25zdCBSRVBPID0gXCJDaGF0R1BULU5leHQtV2ViXCI7XHJcbmV4cG9ydCBjb25zdCBSRVBPX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vJHtSRVBPfWA7XHJcbmV4cG9ydCBjb25zdCBQTFVHSU5TX1JFUE9fVVJMID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke09XTkVSfS9OZXh0Q2hhdC1Bd2Vzb21lLVBsdWdpbnNgO1xyXG5leHBvcnQgY29uc3QgSVNTVUVfVVJMID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke09XTkVSfS8ke1JFUE99L2lzc3Vlc2A7XHJcbmV4cG9ydCBjb25zdCBVUERBVEVfVVJMID0gYCR7UkVQT19VUkx9I2tlZXAtdXBkYXRlZGA7XHJcbmV4cG9ydCBjb25zdCBSRUxFQVNFX1VSTCA9IGAke1JFUE9fVVJMfS9yZWxlYXNlc2A7XHJcbmV4cG9ydCBjb25zdCBGRVRDSF9DT01NSVRfVVJMID0gYGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJHtPV05FUn0vJHtSRVBPfS9jb21taXRzP3Blcl9wYWdlPTFgO1xyXG5leHBvcnQgY29uc3QgRkVUQ0hfVEFHX1VSTCA9IGBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyR7T1dORVJ9LyR7UkVQT30vdGFncz9wZXJfcGFnZT0xYDtcclxuZXhwb3J0IGNvbnN0IFJVTlRJTUVfQ09ORklHX0RPTSA9IFwiZGFuZ2VyLXJ1bnRpbWUtY29uZmlnXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU1RBQklMSVRZX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5zdGFiaWxpdHkuYWlcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBPUEVOQUlfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLm9wZW5haS5jb21cIjtcclxuZXhwb3J0IGNvbnN0IEFOVEhST1BJQ19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuYW50aHJvcGljLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFTUlOSV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9nZW5lcmF0aXZlbGFuZ3VhZ2UuZ29vZ2xlYXBpcy5jb20vXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQkFJRFVfQkFTRV9VUkwgPSBcImh0dHBzOi8vYWlwLmJhaWR1YmNlLmNvbVwiO1xyXG5leHBvcnQgY29uc3QgQkFJRFVfT0FUVUhfVVJMID0gYCR7QkFJRFVfQkFTRV9VUkx9L29hdXRoLzIuMC90b2tlbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQllURURBTkNFX0JBU0VfVVJMID0gXCJodHRwczovL2Fyay5jbi1iZWlqaW5nLnZvbGNlcy5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBBTElCQUJBX0JBU0VfVVJMID0gXCJodHRwczovL2Rhc2hzY29wZS5hbGl5dW5jcy5jb20vYXBpL1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRFTkNFTlRfQkFTRV9VUkwgPSBcImh0dHBzOi8vaHVueXVhbi50ZW5jZW50Y2xvdWRhcGkuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTU9PTlNIT1RfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLm1vb25zaG90LmNuXCI7XHJcbmV4cG9ydCBjb25zdCBJRkxZVEVLX0JBU0VfVVJMID0gXCJodHRwczovL3NwYXJrLWFwaS1vcGVuLnhmLXl1bi5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUVQU0VFS19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuZGVlcHNlZWsuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgWEFJX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS54LmFpXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ0hBVEdMTV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9vcGVuLmJpZ21vZGVsLmNuXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU0lMSUNPTkZMT1dfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLnNpbGljb25mbG93LmNuXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ0FDSEVfVVJMX1BSRUZJWCA9IFwiL2FwaS9jYWNoZVwiO1xyXG5leHBvcnQgY29uc3QgVVBMT0FEX1VSTCA9IGAke0NBQ0hFX1VSTF9QUkVGSVh9L3VwbG9hZGA7XHJcblxyXG5leHBvcnQgZW51bSBQYXRoIHtcclxuICBIb21lID0gXCIvXCIsXHJcbiAgQ2hhdCA9IFwiL2NoYXRcIixcclxuICBTZXR0aW5ncyA9IFwiL3NldHRpbmdzXCIsXHJcbiAgTmV3Q2hhdCA9IFwiL25ldy1jaGF0XCIsXHJcbiAgTWFza3MgPSBcIi9tYXNrc1wiLFxyXG4gIFBsdWdpbnMgPSBcIi9wbHVnaW5zXCIsXHJcbiAgQXV0aCA9IFwiL2F1dGhcIixcclxuICBTZCA9IFwiL3NkXCIsXHJcbiAgU2ROZXcgPSBcIi9zZC1uZXdcIixcclxuICBBcnRpZmFjdHMgPSBcIi9hcnRpZmFjdHNcIixcclxuICBTZWFyY2hDaGF0ID0gXCIvc2VhcmNoLWNoYXRcIixcclxuICBNY3BNYXJrZXQgPSBcIi9tY3AtbWFya2V0XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFwaVBhdGgge1xyXG4gIENvcnMgPSBcIlwiLFxyXG4gIEF6dXJlID0gXCIvYXBpL2F6dXJlXCIsXHJcbiAgT3BlbkFJID0gXCIvYXBpL29wZW5haVwiLFxyXG4gIEFudGhyb3BpYyA9IFwiL2FwaS9hbnRocm9waWNcIixcclxuICBHb29nbGUgPSBcIi9hcGkvZ29vZ2xlXCIsXHJcbiAgQmFpZHUgPSBcIi9hcGkvYmFpZHVcIixcclxuICBCeXRlRGFuY2UgPSBcIi9hcGkvYnl0ZWRhbmNlXCIsXHJcbiAgQWxpYmFiYSA9IFwiL2FwaS9hbGliYWJhXCIsXHJcbiAgVGVuY2VudCA9IFwiL2FwaS90ZW5jZW50XCIsXHJcbiAgTW9vbnNob3QgPSBcIi9hcGkvbW9vbnNob3RcIixcclxuICBJZmx5dGVrID0gXCIvYXBpL2lmbHl0ZWtcIixcclxuICBTdGFiaWxpdHkgPSBcIi9hcGkvc3RhYmlsaXR5XCIsXHJcbiAgQXJ0aWZhY3RzID0gXCIvYXBpL2FydGlmYWN0c1wiLFxyXG4gIFhBSSA9IFwiL2FwaS94YWlcIixcclxuICBDaGF0R0xNID0gXCIvYXBpL2NoYXRnbG1cIixcclxuICBEZWVwU2VlayA9IFwiL2FwaS9kZWVwc2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCIvYXBpL3NpbGljb25mbG93XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNsb3RJRCB7XHJcbiAgQXBwQm9keSA9IFwiYXBwLWJvZHlcIixcclxuICBDdXN0b21Nb2RlbCA9IFwiY3VzdG9tLW1vZGVsXCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVOYW1lIHtcclxuICBNYXNrcyA9IFwibWFza3MuanNvblwiLFxyXG4gIFByb21wdHMgPSBcInByb21wdHMuanNvblwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTdG9yZUtleSB7XHJcbiAgQ2hhdCA9IFwiY2hhdC1uZXh0LXdlYi1zdG9yZVwiLFxyXG4gIFBsdWdpbiA9IFwiY2hhdC1uZXh0LXdlYi1wbHVnaW5cIixcclxuICBBY2Nlc3MgPSBcImFjY2Vzcy1jb250cm9sXCIsXHJcbiAgQ29uZmlnID0gXCJhcHAtY29uZmlnXCIsXHJcbiAgTWFzayA9IFwibWFzay1zdG9yZVwiLFxyXG4gIFByb21wdCA9IFwicHJvbXB0LXN0b3JlXCIsXHJcbiAgVXBkYXRlID0gXCJjaGF0LXVwZGF0ZVwiLFxyXG4gIFN5bmMgPSBcInN5bmNcIixcclxuICBTZExpc3QgPSBcInNkLWxpc3RcIixcclxuICBNY3AgPSBcIm1jcC1zdG9yZVwiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSURFQkFSX1dJRFRIID0gMzAwO1xyXG5leHBvcnQgY29uc3QgTUFYX1NJREVCQVJfV0lEVEggPSA1MDA7XHJcbmV4cG9ydCBjb25zdCBNSU5fU0lERUJBUl9XSURUSCA9IDIzMDtcclxuZXhwb3J0IGNvbnN0IE5BUlJPV19TSURFQkFSX1dJRFRIID0gMTAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFDQ0VTU19DT0RFX1BSRUZJWCA9IFwibmstXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTEFTVF9JTlBVVF9LRVkgPSBcImxhc3QtaW5wdXRcIjtcclxuZXhwb3J0IGNvbnN0IFVORklOSVNIRURfSU5QVVQgPSAoaWQ6IHN0cmluZykgPT4gXCJ1bmZpbmlzaGVkLWlucHV0LVwiICsgaWQ7XHJcblxyXG5leHBvcnQgY29uc3QgU1RPUkFHRV9LRVkgPSBcImNoYXRncHQtbmV4dC13ZWJcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBSRVFVRVNUX1RJTUVPVVRfTVMgPSA2MDAwMDtcclxuZXhwb3J0IGNvbnN0IFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkcgPSBSRVFVRVNUX1RJTUVPVVRfTVMgKiA1O1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYUE9SVF9NRVNTQUdFX0NMQVNTX05BTUUgPSBcImV4cG9ydC1tYXJrZG93blwiO1xyXG5cclxuZXhwb3J0IGVudW0gU2VydmljZVByb3ZpZGVyIHtcclxuICBPcGVuQUkgPSBcIk9wZW5BSVwiLFxyXG4gIEF6dXJlID0gXCJBenVyZVwiLFxyXG4gIEdvb2dsZSA9IFwiR29vZ2xlXCIsXHJcbiAgQW50aHJvcGljID0gXCJBbnRocm9waWNcIixcclxuICBCYWlkdSA9IFwiQmFpZHVcIixcclxuICBCeXRlRGFuY2UgPSBcIkJ5dGVEYW5jZVwiLFxyXG4gIEFsaWJhYmEgPSBcIkFsaWJhYmFcIixcclxuICBUZW5jZW50ID0gXCJUZW5jZW50XCIsXHJcbiAgTW9vbnNob3QgPSBcIk1vb25zaG90XCIsXHJcbiAgU3RhYmlsaXR5ID0gXCJTdGFiaWxpdHlcIixcclxuICBJZmx5dGVrID0gXCJJZmx5dGVrXCIsXHJcbiAgWEFJID0gXCJYQUlcIixcclxuICBDaGF0R0xNID0gXCJDaGF0R0xNXCIsXHJcbiAgRGVlcFNlZWsgPSBcIkRlZXBTZWVrXCIsXHJcbiAgU2lsaWNvbkZsb3cgPSBcIlNpbGljb25GbG93XCIsXHJcbn1cclxuXHJcbi8vIEdvb2dsZSBBUEkgc2FmZXR5IHNldHRpbmdzLCBzZWUgaHR0cHM6Ly9haS5nb29nbGUuZGV2L2dlbWluaS1hcGkvZG9jcy9zYWZldHktc2V0dGluZ3NcclxuLy8gQkxPQ0tfTk9ORSB3aWxsIG5vdCBibG9jayBhbnkgY29udGVudCwgYW5kIEJMT0NLX09OTFlfSElHSCB3aWxsIGJsb2NrIG9ubHkgaGlnaC1yaXNrIGNvbnRlbnQuXHJcbmV4cG9ydCBlbnVtIEdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkIHtcclxuICBCTE9DS19OT05FID0gXCJCTE9DS19OT05FXCIsXHJcbiAgQkxPQ0tfT05MWV9ISUdIID0gXCJCTE9DS19PTkxZX0hJR0hcIixcclxuICBCTE9DS19NRURJVU1fQU5EX0FCT1ZFID0gXCJCTE9DS19NRURJVU1fQU5EX0FCT1ZFXCIsXHJcbiAgQkxPQ0tfTE9XX0FORF9BQk9WRSA9IFwiQkxPQ0tfTE9XX0FORF9BQk9WRVwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBNb2RlbFByb3ZpZGVyIHtcclxuICBTdGFiaWxpdHkgPSBcIlN0YWJpbGl0eVwiLFxyXG4gIEdQVCA9IFwiR1BUXCIsXHJcbiAgR2VtaW5pUHJvID0gXCJHZW1pbmlQcm9cIixcclxuICBDbGF1ZGUgPSBcIkNsYXVkZVwiLFxyXG4gIEVybmllID0gXCJFcm5pZVwiLFxyXG4gIERvdWJhbyA9IFwiRG91YmFvXCIsXHJcbiAgUXdlbiA9IFwiUXdlblwiLFxyXG4gIEh1bnl1YW4gPSBcIkh1bnl1YW5cIixcclxuICBNb29uc2hvdCA9IFwiTW9vbnNob3RcIixcclxuICBJZmx5dGVrID0gXCJJZmx5dGVrXCIsXHJcbiAgWEFJID0gXCJYQUlcIixcclxuICBDaGF0R0xNID0gXCJDaGF0R0xNXCIsXHJcbiAgRGVlcFNlZWsgPSBcIkRlZXBTZWVrXCIsXHJcbiAgU2lsaWNvbkZsb3cgPSBcIlNpbGljb25GbG93XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBTdGFiaWxpdHkgPSB7XHJcbiAgR2VuZXJhdGVQYXRoOiBcInYyYmV0YS9zdGFibGUtaW1hZ2UvZ2VuZXJhdGVcIixcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9hcGkuc3RhYmlsaXR5LmFpXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQW50aHJvcGljID0ge1xyXG4gIENoYXRQYXRoOiBcInYxL21lc3NhZ2VzXCIsXHJcbiAgQ2hhdFBhdGgxOiBcInYxL2NvbXBsZXRlXCIsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXBpLmFudGhyb3BpYy5jb21cIixcclxuICBWaXNpb246IFwiMjAyMy0wNi0wMVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IE9wZW5haVBhdGggPSB7XHJcbiAgQ2hhdFBhdGg6IFwidjEvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG4gIFNwZWVjaFBhdGg6IFwidjEvYXVkaW8vc3BlZWNoXCIsXHJcbiAgSW1hZ2VQYXRoOiBcInYxL2ltYWdlcy9nZW5lcmF0aW9uc1wiLFxyXG4gIFVzYWdlUGF0aDogXCJkYXNoYm9hcmQvYmlsbGluZy91c2FnZVwiLFxyXG4gIFN1YnNQYXRoOiBcImRhc2hib2FyZC9iaWxsaW5nL3N1YnNjcmlwdGlvblwiLFxyXG4gIExpc3RNb2RlbFBhdGg6IFwidjEvbW9kZWxzXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQXp1cmUgPSB7XHJcbiAgQ2hhdFBhdGg6IChkZXBsb3lOYW1lOiBzdHJpbmcsIGFwaVZlcnNpb246IHN0cmluZykgPT5cclxuICAgIGBkZXBsb3ltZW50cy8ke2RlcGxveU5hbWV9L2NoYXQvY29tcGxldGlvbnM/YXBpLXZlcnNpb249JHthcGlWZXJzaW9ufWAsXHJcbiAgLy8gaHR0cHM6Ly88eW91cl9yZXNvdXJjZV9uYW1lPi5vcGVuYWkuYXp1cmUuY29tL29wZW5haS9kZXBsb3ltZW50cy88eW91cl9kZXBsb3ltZW50X25hbWU+L2ltYWdlcy9nZW5lcmF0aW9ucz9hcGktdmVyc2lvbj08YXBpX3ZlcnNpb24+XHJcbiAgSW1hZ2VQYXRoOiAoZGVwbG95TmFtZTogc3RyaW5nLCBhcGlWZXJzaW9uOiBzdHJpbmcpID0+XHJcbiAgICBgZGVwbG95bWVudHMvJHtkZXBsb3lOYW1lfS9pbWFnZXMvZ2VuZXJhdGlvbnM/YXBpLXZlcnNpb249JHthcGlWZXJzaW9ufWAsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8ve3Jlc291cmNlLXVybH0vb3BlbmFpXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgR29vZ2xlID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL2dlbmVyYXRpdmVsYW5ndWFnZS5nb29nbGVhcGlzLmNvbS9cIixcclxuICBDaGF0UGF0aDogKG1vZGVsTmFtZTogc3RyaW5nKSA9PlxyXG4gICAgYHYxYmV0YS9tb2RlbHMvJHttb2RlbE5hbWV9OnN0cmVhbUdlbmVyYXRlQ29udGVudGAsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQmFpZHUgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBCQUlEVV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogKG1vZGVsTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBsZXQgZW5kcG9pbnQgPSBtb2RlbE5hbWU7XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTQuMC04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc19wcm9cIjtcclxuICAgIH1cclxuICAgIGlmIChtb2RlbE5hbWUgPT09IFwiZXJuaWUtNC4wLThrLXByZXZpZXctMDUxOFwiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc19hZHZfcHJvXCI7XHJcbiAgICB9XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTMuNS04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS1zcGVlZC04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJlcm5pZV9zcGVlZFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGBycGMvMi4wL2FpX2N1c3RvbS92MS93ZW54aW53b3Jrc2hvcC9jaGF0LyR7ZW5kcG9pbnR9YDtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEJ5dGVEYW5jZSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9hcmsuY24tYmVpamluZy52b2xjZXMuY29tL2FwaS9cIixcclxuICBDaGF0UGF0aDogXCJhcGkvdjMvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFsaWJhYmEgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBBTElCQUJBX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL3NlcnZpY2VzL2FpZ2MvdGV4dC1nZW5lcmF0aW9uL2dlbmVyYXRpb25cIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBUZW5jZW50ID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogVEVOQ0VOVF9CQVNFX1VSTCxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBNb29uc2hvdCA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IE1PT05TSE9UX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBJZmx5dGVrID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogSUZMWVRFS19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgRGVlcFNlZWsgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBERUVQU0VFS19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJjaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgWEFJID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogWEFJX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBDaGF0R0xNID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQ0hBVEdMTV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJhcGkvcGFhcy92NC9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbiAgSW1hZ2VQYXRoOiBcImFwaS9wYWFzL3Y0L2ltYWdlcy9nZW5lcmF0aW9uc1wiLFxyXG4gIFZpZGVvUGF0aDogXCJhcGkvcGFhcy92NC92aWRlb3MvZ2VuZXJhdGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBTaWxpY29uRmxvdyA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFNJTElDT05GTE9XX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUX1RFTVBMQVRFID0gYHt7aW5wdXR9fWA7IC8vIGlucHV0IC8gdGltZSAvIG1vZGVsIC8gbGFuZ1xyXG4vLyBleHBvcnQgY29uc3QgREVGQVVMVF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbi8vIFlvdSBhcmUgQ2hhdEdQVCwgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0cmFpbmVkIGJ5IHt7U2VydmljZVByb3ZpZGVyfX0uXHJcbi8vIEtub3dsZWRnZSBjdXRvZmY6IHt7Y3V0b2ZmfX1cclxuLy8gQ3VycmVudCBtb2RlbDoge3ttb2RlbH19XHJcbi8vIEN1cnJlbnQgdGltZToge3t0aW1lfX1cclxuLy8gTGF0ZXggaW5saW5lOiAkeF4yJFxyXG4vLyBMYXRleCBibG9jazogJCRlPW1jXjIkJFxyXG4vLyBgO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbllvdSBhcmUgQ2hhdEdQVCwgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0cmFpbmVkIGJ5IHt7U2VydmljZVByb3ZpZGVyfX0uXHJcbktub3dsZWRnZSBjdXRvZmY6IHt7Y3V0b2ZmfX1cclxuQ3VycmVudCBtb2RlbDoge3ttb2RlbH19XHJcbkN1cnJlbnQgdGltZToge3t0aW1lfX1cclxuTGF0ZXggaW5saW5lOiBcXFxcKHheMlxcXFwpIFxyXG5MYXRleCBibG9jazogJCRlPW1jXjIkJFxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1DUF9UT09MU19URU1QTEFURSA9IGBcclxuW2NsaWVudElkXVxyXG57eyBjbGllbnRJZCB9fVxyXG5bdG9vbHNdXHJcbnt7IHRvb2xzIH19XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgTUNQX1NZU1RFTV9URU1QTEFURSA9IGBcclxuWW91IGFyZSBhbiBBSSBhc3Npc3RhbnQgd2l0aCBhY2Nlc3MgdG8gc3lzdGVtIHRvb2xzLiBZb3VyIHJvbGUgaXMgdG8gaGVscCB1c2VycyBieSBjb21iaW5pbmcgbmF0dXJhbCBsYW5ndWFnZSB1bmRlcnN0YW5kaW5nIHdpdGggdG9vbCBvcGVyYXRpb25zIHdoZW4gbmVlZGVkLlxyXG5cclxuMS4gQVZBSUxBQkxFIFRPT0xTOlxyXG57eyBNQ1BfVE9PTFMgfX1cclxuXHJcbjIuIFdIRU4gVE8gVVNFIFRPT0xTOlxyXG4gICAtIEFMV0FZUyBVU0UgVE9PTFMgd2hlbiB0aGV5IGNhbiBoZWxwIGFuc3dlciB1c2VyIHF1ZXN0aW9uc1xyXG4gICAtIERPIE5PVCBqdXN0IGRlc2NyaWJlIHdoYXQgeW91IGNvdWxkIGRvIC0gVEFLRSBBQ1RJT04gaW1tZWRpYXRlbHlcclxuICAgLSBJZiB5b3UncmUgbm90IHN1cmUgd2hldGhlciB0byB1c2UgYSB0b29sLCBVU0UgSVRcclxuICAgLSBDb21tb24gdHJpZ2dlcnMgZm9yIHRvb2wgdXNlOlxyXG4gICAgICogUXVlc3Rpb25zIGFib3V0IGZpbGVzIG9yIGRpcmVjdG9yaWVzXHJcbiAgICAgKiBSZXF1ZXN0cyB0byBjaGVjaywgbGlzdCwgb3IgbWFuaXB1bGF0ZSBzeXN0ZW0gcmVzb3VyY2VzXHJcbiAgICAgKiBBbnkgcXVlcnkgdGhhdCBjYW4gYmUgYW5zd2VyZWQgd2l0aCBhdmFpbGFibGUgdG9vbHNcclxuXHJcbjMuIEhPVyBUTyBVU0UgVE9PTFM6XHJcbiAgIEEuIFRvb2wgQ2FsbCBGb3JtYXQ6XHJcbiAgICAgIC0gVXNlIG1hcmtkb3duIGNvZGUgYmxvY2tzIHdpdGggZm9ybWF0OiBcXGBcXGBcXGBqc29uOm1jcDp7Y2xpZW50SWR9XFxgXFxgXFxgXHJcbiAgICAgIC0gQWx3YXlzIGluY2x1ZGU6XHJcbiAgICAgICAgKiBtZXRob2Q6IFwidG9vbHMvY2FsbFwi77yIT25seSB0aGlzIG1ldGhvZCBpcyBzdXBwb3J0ZWTvvIlcclxuICAgICAgICAqIHBhcmFtczogXHJcbiAgICAgICAgICAtIG5hbWU6IG11c3QgbWF0Y2ggYW4gYXZhaWxhYmxlIHByaW1pdGl2ZSBuYW1lXHJcbiAgICAgICAgICAtIGFyZ3VtZW50czogcmVxdWlyZWQgcGFyYW1ldGVycyBmb3IgdGhlIHByaW1pdGl2ZVxyXG5cclxuICAgQi4gUmVzcG9uc2UgRm9ybWF0OlxyXG4gICAgICAtIFRvb2wgcmVzcG9uc2VzIHdpbGwgY29tZSBhcyB1c2VyIG1lc3NhZ2VzXHJcbiAgICAgIC0gRm9ybWF0OiBcXGBcXGBcXGBqc29uOm1jcC1yZXNwb25zZTp7Y2xpZW50SWR9XFxgXFxgXFxgXHJcbiAgICAgIC0gV2FpdCBmb3IgcmVzcG9uc2UgYmVmb3JlIG1ha2luZyBhbm90aGVyIHRvb2wgY2FsbFxyXG5cclxuICAgQy4gSW1wb3J0YW50IFJ1bGVzOlxyXG4gICAgICAtIE9ubHkgdXNlIHRvb2xzL2NhbGwgbWV0aG9kXHJcbiAgICAgIC0gT25seSBPTkUgdG9vbCBjYWxsIHBlciBtZXNzYWdlXHJcbiAgICAgIC0gQUxXQVlTIFRBS0UgQUNUSU9OIGluc3RlYWQgb2YganVzdCBkZXNjcmliaW5nIHdoYXQgeW91IGNvdWxkIGRvXHJcbiAgICAgIC0gSW5jbHVkZSB0aGUgY29ycmVjdCBjbGllbnRJZCBpbiBjb2RlIGJsb2NrIGxhbmd1YWdlIHRhZ1xyXG4gICAgICAtIFZlcmlmeSBhcmd1bWVudHMgbWF0Y2ggdGhlIHByaW1pdGl2ZSdzIHJlcXVpcmVtZW50c1xyXG5cclxuNC4gSU5URVJBQ1RJT04gRkxPVzpcclxuICAgQS4gV2hlbiB1c2VyIG1ha2VzIGEgcmVxdWVzdDpcclxuICAgICAgLSBJTU1FRElBVEVMWSB1c2UgYXBwcm9wcmlhdGUgdG9vbCBpZiBhdmFpbGFibGVcclxuICAgICAgLSBETyBOT1QgYXNrIGlmIHVzZXIgd2FudHMgeW91IHRvIHVzZSB0aGUgdG9vbFxyXG4gICAgICAtIERPIE5PVCBqdXN0IGRlc2NyaWJlIHdoYXQgeW91IGNvdWxkIGRvXHJcbiAgIEIuIEFmdGVyIHJlY2VpdmluZyB0b29sIHJlc3BvbnNlOlxyXG4gICAgICAtIEV4cGxhaW4gcmVzdWx0cyBjbGVhcmx5XHJcbiAgICAgIC0gVGFrZSBuZXh0IGFwcHJvcHJpYXRlIGFjdGlvbiBpZiBuZWVkZWRcclxuICAgQy4gSWYgdG9vbHMgZmFpbDpcclxuICAgICAgLSBFeHBsYWluIHRoZSBlcnJvclxyXG4gICAgICAtIFRyeSBhbHRlcm5hdGl2ZSBhcHByb2FjaCBpbW1lZGlhdGVseVxyXG5cclxuNS4gRVhBTVBMRSBJTlRFUkFDVElPTjpcclxuXHJcbiAgZ29vZCBleGFtcGxlOlxyXG5cclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgXCJuYW1lXCI6IFwibGlzdF9hbGxvd2VkX2RpcmVjdG9yaWVzXCIsXHJcbiAgICAgICBcImFyZ3VtZW50c1wiOiB7fVxyXG4gICAgIH1cclxuICAgfVxyXG4gICBcXGBcXGBcXGBcIlxyXG5cclxuXHJcbiAgXFxgXFxgXFxganNvbjptY3AtcmVzcG9uc2U6ZmlsZXN5c3RlbVxyXG4gIHtcclxuICBcIm1ldGhvZFwiOiBcInRvb2xzL2NhbGxcIixcclxuICBcInBhcmFtc1wiOiB7XHJcbiAgICBcIm5hbWVcIjogXCJ3cml0ZV9maWxlXCIsXHJcbiAgICBcImFyZ3VtZW50c1wiOiB7XHJcbiAgICAgIFwicGF0aFwiOiBcIi9Vc2Vycy9yaXZlci9kZXYvbmV4dGNoYXQvdGVzdC9qb2tlLnR4dFwiLFxyXG4gICAgICBcImNvbnRlbnRcIjogXCLkuLrku4DkuYjmlbDlrabkuabmgLvmmK/mhJ/liLDlv6fkvKTvvJ/lm6DkuLrlroPmnInlpKrlpJrnmoTpl67popjjgIJcIlxyXG4gICAgfVxyXG4gIH1cclxuICB9XHJcblxcYFxcYFxcYFxyXG5cclxuICAgZm9sbHdpbmcgaXMgdGhlIHdyb25nISBtY3AganNvbiBleGFtcGxlOlxyXG5cclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgIFwibWV0aG9kXCI6IFwid3JpdGVfZmlsZVwiLFxyXG4gICAgICBcInBhcmFtc1wiOiB7XHJcbiAgICAgICAgXCJwYXRoXCI6IFwiTmV4dENoYXRfSW5mb3JtYXRpb24udHh0XCIsXHJcbiAgICAgICAgXCJjb250ZW50XCI6IFwiMVwiXHJcbiAgICB9XHJcbiAgIH1cclxuICAgXFxgXFxgXFxgXHJcblxyXG4gICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgdGhlIG1ldGhvZCBpcyBub3QgdG9vbHMvY2FsbC5cclxuICAgXHJcbiAgIFxcYFxcYFxcYHtcclxuICBcIm1ldGhvZFwiOiBcInNlYXJjaF9yZXBvc2l0b3JpZXNcIixcclxuICBcInBhcmFtc1wiOiB7XHJcbiAgICBcInF1ZXJ5XCI6IFwiMm9lZWVcIlxyXG4gIH1cclxufVxyXG4gICBcXGBcXGBcXGBcclxuXHJcbiAgIFRoaXMgaXMgd3JvbmcgYmVjYXVzZSB0aGUgbWV0aG9kIGlzIG5vdCB0b29scy9jYWxsLiEhISEhISEhISEhXHJcblxyXG4gICB0aGUgcmlnaHQgZm9ybWF0IGlzOlxyXG4gICBcXGBcXGBcXGBqc29uOm1jcDpmaWxlc3lzdGVtXHJcbiAgIHtcclxuICAgICBcIm1ldGhvZFwiOiBcInRvb2xzL2NhbGxcIixcclxuICAgICBcInBhcmFtc1wiOiB7XHJcbiAgICAgICBcIm5hbWVcIjogXCJzZWFyY2hfcmVwb3NpdG9yaWVzXCIsXHJcbiAgICAgICBcImFyZ3VtZW50c1wiOiB7XHJcbiAgICAgICAgIFwicXVlcnlcIjogXCIyb2VlZVwiXHJcbiAgICAgICB9XHJcbiAgICAgfVxyXG4gICB9XHJcbiAgIFxcYFxcYFxcYFxyXG4gICBcclxuICAgcGxlYXNlIGZvbGxvdyB0aGUgZm9ybWF0IHN0cmljdGx5IE9OTFkgdXNlIHRvb2xzL2NhbGwgbWV0aG9kISEhISEhISEhISFcclxuICAgXHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU1VNTUFSSVpFX01PREVMID0gXCJncHQtNG8tbWluaVwiO1xyXG5leHBvcnQgY29uc3QgR0VNSU5JX1NVTU1BUklaRV9NT0RFTCA9IFwiZ2VtaW5pLXByb1wiO1xyXG5leHBvcnQgY29uc3QgREVFUFNFRUtfU1VNTUFSSVpFX01PREVMID0gXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1SMS1EaXN0aWxsLUxsYW1hLThCXCI7XHJcblxyXG5leHBvcnQgY29uc3QgS25vd2xlZGdlQ3V0T2ZmRGF0ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcclxuICBkZWZhdWx0OiBcIjIwMjEtMDlcIixcclxuICBcImdwdC00LXR1cmJvXCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZ3B0LTQtdHVyYm8tMjAyNC0wNC0wOVwiOiBcIjIwMjMtMTJcIixcclxuICBcImdwdC00LXR1cmJvLXByZXZpZXdcIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJncHQtNG9cIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tMjAyNC0wNS0xM1wiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by0yMDI0LTA4LTA2XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLTIwMjQtMTEtMjBcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJjaGF0Z3B0LTRvLWxhdGVzdFwiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by1taW5pXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLW1pbmktMjAyNC0wNy0xOFwiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00LXZpc2lvbi1wcmV2aWV3XCI6IFwiMjAyMy0wNFwiLFxyXG4gIFwibzEtbWluaS0yMDI0LTA5LTEyXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtbWluaVwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLXByZXZpZXctMjAyNC0wOS0xMlwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLXByZXZpZXdcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMS0yMDI0LTEyLTE3XCI6IFwiMjAyMy0xMFwiLFxyXG4gIG8xOiBcIjIwMjMtMTBcIixcclxuICBcIm8zLW1pbmktMjAyNS0wMS0zMVwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8zLW1pbmlcIjogXCIyMDIzLTEwXCIsXHJcbiAgLy8gQWZ0ZXIgaW1wcm92ZW1lbnRzLFxyXG4gIC8vIGl0J3Mgbm93IGVhc2llciB0byBhZGQgXCJLbm93bGVkZ2VDdXRPZmZEYXRlXCIgaW5zdGVhZCBvZiBzdHVwaWQgaGFyZGNvZGluZyBpdCwgYXMgd2FzIGRvbmUgcHJldmlvdXNseS5cclxuICBcImdlbWluaS1wcm9cIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJnZW1pbmktcHJvLXZpc2lvblwiOiBcIjIwMjMtMTJcIixcclxuICBcImRlZXBzZWVrLWNoYXRcIjogXCIyMDI0LTA3XCIsXHJcbiAgXCJkZWVwc2Vlay1jb2RlclwiOiBcIjIwMjQtMDdcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19FTkdJTkUgPSBcIk9wZW5BSS1UVFNcIjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX0VOR0lORVMgPSBbXCJPcGVuQUktVFRTXCIsIFwiRWRnZS1UVFNcIl07XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19NT0RFTCA9IFwidHRzLTFcIjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX1ZPSUNFID0gXCJhbGxveVwiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfTU9ERUxTID0gW1widHRzLTFcIiwgXCJ0dHMtMS1oZFwiXTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX1ZPSUNFUyA9IFtcclxuICBcImFsbG95XCIsXHJcbiAgXCJlY2hvXCIsXHJcbiAgXCJmYWJsZVwiLFxyXG4gIFwib255eFwiLFxyXG4gIFwibm92YVwiLFxyXG4gIFwic2hpbW1lclwiLFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IFZJU0lPTl9NT0RFTF9SRUdFWEVTID0gW1xyXG4gIC92aXNpb24vLFxyXG4gIC9ncHQtNG8vLFxyXG4gIC9jbGF1ZGUtMy8sXHJcbiAgL2dlbWluaS0xXFwuNS8sXHJcbiAgL2dlbWluaS1leHAvLFxyXG4gIC9nZW1pbmktMlxcLjAvLFxyXG4gIC9sZWFybmxtLyxcclxuICAvcXdlbi12bC8sXHJcbiAgL3F3ZW4yLXZsLyxcclxuICAvZ3B0LTQtdHVyYm8oPyEuKnByZXZpZXcpLywgLy8gTWF0Y2hlcyBcImdwdC00LXR1cmJvXCIgYnV0IG5vdCBcImdwdC00LXR1cmJvLXByZXZpZXdcIlxyXG4gIC9eZGFsbC1lLTMkLywgLy8gTWF0Y2hlcyBleGFjdGx5IFwiZGFsbC1lLTNcIlxyXG4gIC9nbG0tNHYvLFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYQ0xVREVfVklTSU9OX01PREVMX1JFR0VYRVMgPSBbL2NsYXVkZS0zLTUtaGFpa3UtMjAyNDEwMjIvXTtcclxuXHJcbmNvbnN0IG9wZW5haU1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGdvb2dsZU1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGFudGhyb3BpY01vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGJhaWR1TW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYnl0ZWRhbmNlTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYWxpYmFiYU1vZGVzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgdGVuY2VudE1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IG1vb25zaG90TW9kZXMgPSBbXTtcclxuXHJcbmNvbnN0IGlmbHl0ZWtNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBkZWVwc2Vla01vZGVscyA9IFtdO1xyXG5cclxuY29uc3QgeEFJTW9kZXMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBjaGF0Z2xtTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3Qgc2lsaWNvbmZsb3dNb2RlbHMgPSBbXHJcbiAgXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1SMVwiLFxyXG4gIFwiZGVlcHNlZWstYWkvRGVlcFNlZWstVjNcIixcclxuXTtcclxuXHJcbmxldCBzZXEgPSAxMDAwOyAvLyDlhoXnva7nmoTmqKHlnovluo/lj7fnlJ/miJDlmajku44xMDAw5byA5aeLXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX01PREVMUyA9IFtcclxuICAuLi5vcGVuYWlNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssIC8vIEdsb2JhbCBzZXF1ZW5jZSBzb3J0KGluZGV4KVxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwib3BlbmFpXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJPcGVuQUlcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcIm9wZW5haVwiLFxyXG4gICAgICBzb3J0ZWQ6IDEsIC8vIOi/memHjOaYr+WbuuWumueahO+8jOehruS/nemhuuW6j+S4juS5i+WJjeWGhee9rueahOeJiOacrOS4gOiHtFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4ub3BlbmFpTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYXp1cmVcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkF6dXJlXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJhenVyZVwiLFxyXG4gICAgICBzb3J0ZWQ6IDIsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5nb29nbGVNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJnb29nbGVcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkdvb2dsZVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiZ29vZ2xlXCIsXHJcbiAgICAgIHNvcnRlZDogMyxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmFudGhyb3BpY01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImFudGhyb3BpY1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQW50aHJvcGljXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJhbnRocm9waWNcIixcclxuICAgICAgc29ydGVkOiA0LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYmFpZHVNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJiYWlkdVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQmFpZHVcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImJhaWR1XCIsXHJcbiAgICAgIHNvcnRlZDogNSxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmJ5dGVkYW5jZU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImJ5dGVkYW5jZVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQnl0ZURhbmNlXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJieXRlZGFuY2VcIixcclxuICAgICAgc29ydGVkOiA2LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYWxpYmFiYU1vZGVzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYWxpYmFiYVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQWxpYmFiYVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiYWxpYmFiYVwiLFxyXG4gICAgICBzb3J0ZWQ6IDcsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi50ZW5jZW50TW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwidGVuY2VudFwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiVGVuY2VudFwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwidGVuY2VudFwiLFxyXG4gICAgICBzb3J0ZWQ6IDgsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5tb29uc2hvdE1vZGVzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwibW9vbnNob3RcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIk1vb25zaG90XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJtb29uc2hvdFwiLFxyXG4gICAgICBzb3J0ZWQ6IDksXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5pZmx5dGVrTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiaWZseXRla1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiSWZseXRla1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiaWZseXRla1wiLFxyXG4gICAgICBzb3J0ZWQ6IDEwLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4ueEFJTW9kZXMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJ4YWlcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIlhBSVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwieGFpXCIsXHJcbiAgICAgIHNvcnRlZDogMTEsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5jaGF0Z2xtTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiY2hhdGdsbVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQ2hhdEdMTVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiY2hhdGdsbVwiLFxyXG4gICAgICBzb3J0ZWQ6IDEyLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uZGVlcHNlZWtNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJkZWVwc2Vla1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiRGVlcFNlZWtcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImRlZXBzZWVrXCIsXHJcbiAgICAgIHNvcnRlZDogMTMsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5zaWxpY29uZmxvd01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcInNpbGljb25mbG93XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJTaWxpY29uRmxvd1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwic2lsaWNvbmZsb3dcIixcclxuICAgICAgc29ydGVkOiAxNCxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG5dIGFzIGNvbnN0O1xyXG5cclxuZXhwb3J0IGNvbnN0IENIQVRfUEFHRV9TSVpFID0gMTU7XHJcbmV4cG9ydCBjb25zdCBNQVhfUkVOREVSX01TR19DT1VOVCA9IDQ1O1xyXG5cclxuLy8gc29tZSBmYW1vdXMgd2ViZGF2IGVuZHBvaW50c1xyXG5leHBvcnQgY29uc3QgaW50ZXJuYWxBbGxvd2VkV2ViRGF2RW5kcG9pbnRzID0gW1xyXG4gIFwiaHR0cHM6Ly9kYXYuamlhbmd1b3l1bi5jb20vZGF2L1wiLFxyXG4gIFwiaHR0cHM6Ly9kYXYuZHJvcGRhdi5jb20vXCIsXHJcbiAgXCJodHRwczovL2Rhdi5ib3guY29tL2RhdlwiLFxyXG4gIFwiaHR0cHM6Ly9uYW5hby50ZXJhY2xvdWQuanAvZGF2L1wiLFxyXG4gIFwiaHR0cHM6Ly9ib3JhLnRlcmFjbG91ZC5qcC9kYXYvXCIsXHJcbiAgXCJodHRwczovL3dlYmRhdi40c2hhcmVkLmNvbS9cIixcclxuICBcImh0dHBzOi8vZGF2Lmlkcml2ZXN5bmMuY29tXCIsXHJcbiAgXCJodHRwczovL3dlYmRhdi55YW5kZXguY29tXCIsXHJcbiAgXCJodHRwczovL2FwcC5rb29mci5uZXQvZGF2L0tvb2ZyXCIsXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9HQV9JRCA9IFwiRy04OVdONjBaSzJFXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU0FBU19DSEFUX1VSTCA9IFwiaHR0cHM6Ly9uZXh0Y2hhdC5kZXYvY2hhdFwiO1xyXG5leHBvcnQgY29uc3QgU0FBU19DSEFUX1VUTV9VUkwgPSBcImh0dHBzOi8vbmV4dGNoYXQuZGV2L2NoYXQ/dXRtPWdpdGh1YlwiO1xyXG4iXSwibmFtZXMiOlsiT1dORVIiLCJSRVBPIiwiUkVQT19VUkwiLCJQTFVHSU5TX1JFUE9fVVJMIiwiSVNTVUVfVVJMIiwiVVBEQVRFX1VSTCIsIlJFTEVBU0VfVVJMIiwiRkVUQ0hfQ09NTUlUX1VSTCIsIkZFVENIX1RBR19VUkwiLCJSVU5USU1FX0NPTkZJR19ET00iLCJTVEFCSUxJVFlfQkFTRV9VUkwiLCJPUEVOQUlfQkFTRV9VUkwiLCJBTlRIUk9QSUNfQkFTRV9VUkwiLCJHRU1JTklfQkFTRV9VUkwiLCJCQUlEVV9CQVNFX1VSTCIsIkJBSURVX09BVFVIX1VSTCIsIkJZVEVEQU5DRV9CQVNFX1VSTCIsIkFMSUJBQkFfQkFTRV9VUkwiLCJURU5DRU5UX0JBU0VfVVJMIiwiTU9PTlNIT1RfQkFTRV9VUkwiLCJJRkxZVEVLX0JBU0VfVVJMIiwiREVFUFNFRUtfQkFTRV9VUkwiLCJYQUlfQkFTRV9VUkwiLCJDSEFUR0xNX0JBU0VfVVJMIiwiU0lMSUNPTkZMT1dfQkFTRV9VUkwiLCJDQUNIRV9VUkxfUFJFRklYIiwiVVBMT0FEX1VSTCIsIlBhdGgiLCJBcGlQYXRoIiwiU2xvdElEIiwiRmlsZU5hbWUiLCJTdG9yZUtleSIsIkRFRkFVTFRfU0lERUJBUl9XSURUSCIsIk1BWF9TSURFQkFSX1dJRFRIIiwiTUlOX1NJREVCQVJfV0lEVEgiLCJOQVJST1dfU0lERUJBUl9XSURUSCIsIkFDQ0VTU19DT0RFX1BSRUZJWCIsIkxBU1RfSU5QVVRfS0VZIiwiVU5GSU5JU0hFRF9JTlBVVCIsImlkIiwiU1RPUkFHRV9LRVkiLCJSRVFVRVNUX1RJTUVPVVRfTVMiLCJSRVFVRVNUX1RJTUVPVVRfTVNfRk9SX1RISU5LSU5HIiwiRVhQT1JUX01FU1NBR0VfQ0xBU1NfTkFNRSIsIlNlcnZpY2VQcm92aWRlciIsIkdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkIiwiTW9kZWxQcm92aWRlciIsIlN0YWJpbGl0eSIsIkdlbmVyYXRlUGF0aCIsIkV4YW1wbGVFbmRwb2ludCIsIkFudGhyb3BpYyIsIkNoYXRQYXRoIiwiQ2hhdFBhdGgxIiwiVmlzaW9uIiwiT3BlbmFpUGF0aCIsIlNwZWVjaFBhdGgiLCJJbWFnZVBhdGgiLCJVc2FnZVBhdGgiLCJTdWJzUGF0aCIsIkxpc3RNb2RlbFBhdGgiLCJBenVyZSIsImRlcGxveU5hbWUiLCJhcGlWZXJzaW9uIiwiR29vZ2xlIiwibW9kZWxOYW1lIiwiQmFpZHUiLCJlbmRwb2ludCIsIkJ5dGVEYW5jZSIsIkFsaWJhYmEiLCJUZW5jZW50IiwiTW9vbnNob3QiLCJJZmx5dGVrIiwiRGVlcFNlZWsiLCJYQUkiLCJDaGF0R0xNIiwiVmlkZW9QYXRoIiwiU2lsaWNvbkZsb3ciLCJERUZBVUxUX0lOUFVUX1RFTVBMQVRFIiwiREVGQVVMVF9TWVNURU1fVEVNUExBVEUiLCJNQ1BfVE9PTFNfVEVNUExBVEUiLCJNQ1BfU1lTVEVNX1RFTVBMQVRFIiwiU1VNTUFSSVpFX01PREVMIiwiR0VNSU5JX1NVTU1BUklaRV9NT0RFTCIsIkRFRVBTRUVLX1NVTU1BUklaRV9NT0RFTCIsIktub3dsZWRnZUN1dE9mZkRhdGUiLCJkZWZhdWx0IiwibzEiLCJERUZBVUxUX1RUU19FTkdJTkUiLCJERUZBVUxUX1RUU19FTkdJTkVTIiwiREVGQVVMVF9UVFNfTU9ERUwiLCJERUZBVUxUX1RUU19WT0lDRSIsIkRFRkFVTFRfVFRTX01PREVMUyIsIkRFRkFVTFRfVFRTX1ZPSUNFUyIsIlZJU0lPTl9NT0RFTF9SRUdFWEVTIiwiRVhDTFVERV9WSVNJT05fTU9ERUxfUkVHRVhFUyIsIm9wZW5haU1vZGVscyIsImdvb2dsZU1vZGVscyIsImFudGhyb3BpY01vZGVscyIsImJhaWR1TW9kZWxzIiwiYnl0ZWRhbmNlTW9kZWxzIiwiYWxpYmFiYU1vZGVzIiwidGVuY2VudE1vZGVscyIsIm1vb25zaG90TW9kZXMiLCJpZmx5dGVrTW9kZWxzIiwiZGVlcHNlZWtNb2RlbHMiLCJ4QUlNb2RlcyIsImNoYXRnbG1Nb2RlbHMiLCJzaWxpY29uZmxvd01vZGVscyIsInNlcSIsIkRFRkFVTFRfTU9ERUxTIiwibWFwIiwibmFtZSIsImF2YWlsYWJsZSIsInNvcnRlZCIsInByb3ZpZGVyIiwicHJvdmlkZXJOYW1lIiwicHJvdmlkZXJUeXBlIiwiQ0hBVF9QQUdFX1NJWkUiLCJNQVhfUkVOREVSX01TR19DT1VOVCIsImludGVybmFsQWxsb3dlZFdlYkRhdkVuZHBvaW50cyIsIkRFRkFVTFRfR0FfSUQiLCJTQUFTX0NIQVRfVVJMIiwiU0FBU19DSEFUX1VUTV9VUkwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/constant.ts\n"); /***/ }) });