22 lines
230 KiB
JavaScript
22 lines
230 KiB
JavaScript
"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/learn/page",{
|
||
|
||
/***/ "(app-pages-browser)/./app/learn/page.tsx":
|
||
/*!****************************!*\
|
||
!*** ./app/learn/page.tsx ***!
|
||
\****************************/
|
||
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
||
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LearnPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/client/app-dir/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\nfunction LearnPage() {\n _s();\n const [currentCardIndex, setCurrentCardIndex] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [isFlipped, setIsFlipped] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [mode, setMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('flip');\n const [score, setScore] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n correct: 0,\n total: 0\n });\n const [selectedAnswer, setSelectedAnswer] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [showResult, setShowResult] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [fillAnswer, setFillAnswer] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [showHint, setShowHint] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isRecording, setIsRecording] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [audioPlaying, setAudioPlaying] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [modalImage, setModalImage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [showReportModal, setShowReportModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [reportReason, setReportReason] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [reportingCard, setReportingCard] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n // Mock data with real example images\n const cards = [\n {\n id: 1,\n word: 'brought',\n partOfSpeech: 'verb',\n pronunciation: '/brɔːt/',\n translation: '提出、帶來',\n definition: 'Past tense of bring; to mention or introduce a topic in conversation',\n example: 'He brought this thing up during our meeting and no one agreed.',\n exampleTranslation: '他在我們的會議中提出了這件事,但沒有人同意。',\n exampleImage: '/images/examples/bring_up.png',\n synonyms: [\n 'mentioned',\n 'raised',\n 'introduced'\n ],\n difficulty: 'B1'\n },\n {\n id: 2,\n word: 'instincts',\n partOfSpeech: 'noun',\n pronunciation: '/ˈɪnstɪŋkts/',\n translation: '本能、直覺',\n definition: 'Natural abilities that help living things survive without learning',\n example: 'Animals use their instincts to find food and stay safe.',\n exampleTranslation: '動物利用本能來尋找食物並保持安全。',\n exampleImage: '/images/examples/instinct.png',\n synonyms: [\n 'intuition',\n 'impulse',\n 'tendency'\n ],\n difficulty: 'B2'\n },\n {\n id: 3,\n word: 'warrants',\n partOfSpeech: 'noun',\n pronunciation: '/ˈwɔːrənts/',\n translation: '搜查令、授權令',\n definition: 'Official documents that give police permission to do something',\n example: 'The police obtained warrants to search the building.',\n exampleTranslation: '警方取得了搜查令來搜查這棟建築物。',\n exampleImage: '/images/examples/warrant.png',\n synonyms: [\n 'authorization',\n 'permit',\n 'license'\n ],\n difficulty: 'C1'\n }\n ];\n const currentCard = cards[currentCardIndex];\n // Quiz mode options - dynamically generate from current cards\n const quizOptions = [\n cards[currentCardIndex].translation,\n ...cards.filter((_, idx)=>idx !== currentCardIndex).map((card)=>card.translation).slice(0, 2),\n '建議、提議' // additional wrong option\n ].sort(()=>Math.random() - 0.5) // shuffle options\n ;\n const handleFlip = ()=>{\n setIsFlipped(!isFlipped);\n };\n const handleNext = ()=>{\n if (currentCardIndex < cards.length - 1) {\n setCurrentCardIndex(currentCardIndex + 1);\n setIsFlipped(false);\n setSelectedAnswer(null);\n setShowResult(false);\n setFillAnswer('');\n setShowHint(false);\n }\n };\n const handlePrevious = ()=>{\n if (currentCardIndex > 0) {\n setCurrentCardIndex(currentCardIndex - 1);\n setIsFlipped(false);\n setSelectedAnswer(null);\n setShowResult(false);\n setFillAnswer('');\n setShowHint(false);\n }\n };\n const handleDifficultyRate = (rating)=>{\n // Mock rating logic\n console.log(\"Rated \".concat(rating, \" for \").concat(currentCard.word));\n handleNext();\n };\n const handleQuizAnswer = (answer)=>{\n setSelectedAnswer(answer);\n setShowResult(true);\n if (answer === currentCard.translation) {\n setScore({\n ...score,\n correct: score.correct + 1,\n total: score.total + 1\n });\n } else {\n setScore({\n ...score,\n total: score.total + 1\n });\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"bg-white shadow-sm border-b\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between h-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/dashboard\",\n className: \"text-2xl font-bold text-primary\",\n children: \"DramaLing\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 128,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"hidden md:flex space-x-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/dashboard\",\n className: \"text-gray-600 hover:text-gray-900\",\n children: \"儀表板\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 130,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/flashcards\",\n className: \"text-gray-600 hover:text-gray-900\",\n children: \"詞卡\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 131,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/learn\",\n className: \"text-gray-900 font-medium\",\n children: \"學習\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 132,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/generate\",\n className: \"text-gray-600 hover:text-gray-900\",\n children: \"AI 生成\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 133,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 129,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 127,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>window.location.href = '/dashboard',\n className: \"text-gray-600 hover:text-gray-900\",\n children: \"\\xd7 結束學習\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 136,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 126,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 125,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 124,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-4xl mx-auto px-4 py-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-gray-600\",\n children: \"進度\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 150,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-gray-600\",\n children: [\n currentCardIndex + 1,\n \" / \",\n cards.length\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 151,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 149,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full bg-gray-200 rounded-full h-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-primary h-2 rounded-full transition-all\",\n style: {\n width: \"\".concat((currentCardIndex + 1) / cards.length * 100, \"%\")\n }\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 156,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 155,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 148,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center mb-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-lg shadow-sm p-1 inline-flex flex-wrap\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('flip'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'flip' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"翻卡模式\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 166,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('quiz'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'quiz' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"選擇題\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 176,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('fill'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'fill' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"填空題\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 186,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('listening'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'listening' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"聽力測試\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 196,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setMode('speaking'),\n className: \"px-3 py-2 rounded-md transition-colors \".concat(mode === 'speaking' ? 'bg-primary text-white' : 'text-gray-600 hover:text-gray-900'),\n children: \"口說測試\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 206,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 165,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 164,\n columnNumber: 9\n }, this),\n mode === 'flip' ? /* Flip Card Mode */ /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 233,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 232,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 224,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 223,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-96 cursor-pointer\",\n onClick: handleFlip,\n style: {\n perspective: '1000px'\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute w-full h-full transition-transform duration-600 \".concat(isFlipped ? 'rotate-y-180' : ''),\n style: {\n transformStyle: 'preserve-3d',\n transform: isFlipped ? 'rotateY(180deg)' : 'rotateY(0deg)'\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute w-full h-full bg-white rounded-2xl shadow-xl p-8 flex flex-col items-center justify-center\",\n style: {\n backfaceVisibility: 'hidden'\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-4xl font-bold text-gray-900 mb-4\",\n children: currentCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 258,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg text-gray-600 mb-2\",\n children: currentCard.partOfSpeech\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 261,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg text-gray-500\",\n children: currentCard.pronunciation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 264,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8 text-sm text-gray-400\",\n children: \"點擊翻轉查看答案\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 267,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 254,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute w-full h-full bg-white rounded-2xl shadow-xl p-8 overflow-y-auto\",\n style: {\n backfaceVisibility: 'hidden',\n transform: 'rotateY(180deg)'\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-1\",\n children: \"翻譯\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 282,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-bold text-gray-900\",\n children: currentCard.translation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 283,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 281,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-1\",\n children: \"定義\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 286,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-600\",\n children: currentCard.definition\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 287,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 285,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-1\",\n children: \"例句\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 290,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-600\",\n children: currentCard.example\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 291,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-500 text-sm mt-1\",\n children: currentCard.exampleTranslation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 292,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 289,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-1\",\n children: \"同義詞\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 295,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-2\",\n children: currentCard.synonyms.map((syn, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-3 py-1 bg-gray-100 rounded-full text-sm\",\n children: syn\n }, idx, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 298,\n columnNumber: 27\n }, this))\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 296,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 294,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 280,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 273,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 244,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 239,\n columnNumber: 13\n }, this),\n isFlipped && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-gray-600\",\n children: \"這個單字對你來說難度如何?\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 313,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 312,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center space-x-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleDifficultyRate(1),\n className: \"px-4 py-2 bg-red-100 text-red-700 rounded-lg hover:bg-red-200 transition-colors\",\n children: \"\\uD83D\\uDE14 完全不記得\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 316,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleDifficultyRate(3),\n className: \"px-4 py-2 bg-yellow-100 text-yellow-700 rounded-lg hover:bg-yellow-200 transition-colors\",\n children: \"\\uD83D\\uDE10 有點困難\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 322,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>handleDifficultyRate(5),\n className: \"px-4 py-2 bg-green-100 text-green-700 rounded-lg hover:bg-green-200 transition-colors\",\n children: \"\\uD83D\\uDE0A 很簡單\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 328,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 315,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 311,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 221,\n columnNumber: 11\n }, this) : mode === 'quiz' ? /* Quiz Mode - 選擇題:英文定義選中文翻譯 */ /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 352,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 351,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 343,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 342,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl shadow-xl p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-2\",\n children: \"根據定義選擇正確的中文翻譯\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 360,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xl text-gray-800 leading-relaxed\",\n children: currentCard.definition\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-500 mt-2\",\n children: [\n \"(\",\n currentCard.partOfSpeech,\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 364,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 359,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: quizOptions.map((option, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>!showResult && handleQuizAnswer(option),\n disabled: showResult,\n className: \"w-full p-4 text-left rounded-lg border-2 transition-all \".concat(showResult && option === currentCard.translation ? 'border-green-500 bg-green-50' : showResult && option === selectedAnswer && option !== currentCard.translation ? 'border-red-500 bg-red-50' : selectedAnswer === option ? 'border-primary bg-primary-light' : 'border-gray-200 hover:border-gray-300'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-medium\",\n children: option\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 386,\n columnNumber: 21\n }, this),\n showResult && option === currentCard.translation && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5 text-green-500\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M5 13l4 4L19 7\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 389,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 388,\n columnNumber: 23\n }, this),\n showResult && option === selectedAnswer && option !== currentCard.translation && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5 text-red-500\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M6 18L18 6M6 6l12 12\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 394,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 393,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 385,\n columnNumber: 19\n }, this)\n }, idx, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 371,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 369,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 358,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 340,\n columnNumber: 11\n }, this) : mode === 'fill' ? /* Fill in the Blank Mode - 填空題 */ /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 418,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 417,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 409,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 408,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl shadow-xl p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-4\",\n children: \"根據例句圖片和句子填入正確的詞彙\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 426,\n columnNumber: 17\n }, this),\n currentCard.exampleImage && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: currentCard.exampleImage,\n alt: \"Example context\",\n className: \"w-full rounded-lg shadow-md cursor-pointer hover:shadow-lg transition-shadow\",\n style: {\n maxHeight: '400px',\n objectFit: 'contain'\n },\n onClick: ()=>setModalImage(currentCard.exampleImage)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 431,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 mt-2 text-center\",\n children: \"點擊圖片可放大查看\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 438,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 430,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg text-gray-800 mb-4\",\n children: currentCard.example.split(currentCard.word).map((part, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n part,\n i < currentCard.example.split(currentCard.word).length - 1 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-block w-32 border-b-2 border-gray-400 mx-1\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 448,\n columnNumber: 23\n }, this)\n ]\n }, i, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 445,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 443,\n columnNumber: 15\n }, this),\n !showHint && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowHint(true),\n className: \"text-sm text-primary hover:text-primary-hover flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 461,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 460,\n columnNumber: 19\n }, this),\n \"點擊查看提示\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 456,\n columnNumber: 17\n }, this),\n showHint && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 p-3 bg-blue-50 rounded-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-blue-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n children: \"定義提示:\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 471,\n columnNumber: 21\n }, this),\n \" \",\n currentCard.definition\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 470,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 469,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 425,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: fillAnswer,\n onChange: (e)=>setFillAnswer(e.target.value),\n placeholder: \"輸入答案...\",\n className: \"w-full px-4 py-3 border-2 border-gray-300 rounded-lg focus:border-primary focus:outline-none text-lg\",\n onKeyPress: (e)=>{\n if (e.key === 'Enter' && fillAnswer) {\n setShowResult(true);\n }\n }\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 479,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 478,\n columnNumber: 13\n }, this),\n !showResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>fillAnswer && setShowResult(true),\n disabled: !fillAnswer,\n className: \"w-full py-3 bg-primary text-white rounded-lg font-medium hover:bg-primary-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed\",\n children: \"提交答案\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 495,\n columnNumber: 15\n }, this),\n showResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 rounded-lg \".concat(fillAnswer.toLowerCase() === currentCard.word.toLowerCase() ? 'bg-green-50 border-2 border-green-500' : 'bg-red-50 border-2 border-red-500'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold \".concat(fillAnswer.toLowerCase() === currentCard.word.toLowerCase() ? 'text-green-700' : 'text-red-700'),\n children: fillAnswer.toLowerCase() === currentCard.word.toLowerCase() ? '✓ 正確!' : '✗ 錯誤'\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 512,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 511,\n columnNumber: 17\n }, this),\n fillAnswer.toLowerCase() !== currentCard.word.toLowerCase() && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-700\",\n children: [\n \"正確答案:\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-bold\",\n children: currentCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 522,\n columnNumber: 26\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 521,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 text-sm text-gray-600\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"font-semibold mb-1\",\n children: \"完整例句:\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 526,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: currentCard.example\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 527,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-500 mt-1\",\n children: currentCard.exampleTranslation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 528,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 525,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 506,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 424,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 406,\n columnNumber: 11\n }, this) : mode === 'listening' ? /* Listening Test Mode - 聽力測試 */ /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 548,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 547,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 539,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 538,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl shadow-xl p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-4\",\n children: \"聽音頻,選擇正確的單字\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 556,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setAudioPlaying(true);\n // Simulate audio playing\n setTimeout(()=>setAudioPlaying(false), 2000);\n },\n className: \"mx-auto mb-6 p-8 bg-gray-100 rounded-full hover:bg-gray-200 transition-colors\",\n children: audioPlaying ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 text-primary animate-pulse\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 569,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 568,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 text-gray-600\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 573,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 574,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 572,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 559,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-500\",\n children: \"點擊播放按鈕聽發音\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 579,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 555,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 gap-3\",\n children: [\n currentCard.word,\n 'determine',\n 'achieve',\n 'consider'\n ].map((word)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>!showResult && handleQuizAnswer(word),\n disabled: showResult,\n className: \"p-4 text-lg font-medium rounded-lg border-2 transition-all \".concat(showResult && word === currentCard.word ? 'border-green-500 bg-green-50' : showResult && word === selectedAnswer && word !== currentCard.word ? 'border-red-500 bg-red-50' : selectedAnswer === word ? 'border-primary bg-primary-light' : 'border-gray-200 hover:border-gray-300'),\n children: word\n }, word, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 585,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 583,\n columnNumber: 13\n }, this),\n showResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6 p-4 bg-gray-50 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-gray-700 mb-2\",\n children: \"單字詳情\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 607,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: currentCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 610,\n columnNumber: 21\n }, this),\n \" - \",\n currentCard.translation\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 609,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: currentCard.definition\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 612,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-500 italic\",\n children: [\n '\"',\n currentCard.example,\n '\"'\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 613,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 608,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 606,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 554,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 536,\n columnNumber: 11\n }, this) : mode === 'speaking' ? /* Speaking Test Mode - 口說測試 */ /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-end mb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setReportingCard(currentCard);\n setShowReportModal(true);\n },\n className: \"text-red-500 hover:text-red-600 text-sm flex items-center gap-1\",\n title: \"回報錯誤\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 633,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 632,\n columnNumber: 17\n }, this),\n \"回報錯誤\"\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 624,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 623,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-2xl shadow-xl p-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-4\",\n children: \"念出以下例句\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 641,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6 bg-gray-50 rounded-lg mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xl text-gray-800 leading-relaxed mb-3\",\n children: currentCard.example\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 645,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-600\",\n children: currentCard.exampleTranslation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 648,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 644,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-2\",\n children: \"重點單字發音:\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 655,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold text-lg\",\n children: currentCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 657,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-gray-500\",\n children: currentCard.pronunciation\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 658,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"text-primary hover:text-primary-hover\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 661,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 660,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 659,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 656,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 654,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setIsRecording(!isRecording);\n if (!isRecording) {\n // Start recording\n setTimeout(()=>{\n setIsRecording(false);\n setShowResult(true);\n }, 3000);\n }\n },\n className: \"p-6 rounded-full transition-all \".concat(isRecording ? 'bg-red-500 hover:bg-red-600 animate-pulse' : 'bg-primary hover:bg-primary-hover'),\n children: isRecording ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-12 h-12 text-white\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 688,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 689,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 687,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-12 h-12 text-white\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 693,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 692,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 669,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 text-sm text-gray-600\",\n children: isRecording ? '錄音中... 點擊停止' : '點擊開始錄音'\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 697,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 668,\n columnNumber: 15\n }, this),\n showResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6 p-4 bg-green-50 border-2 border-green-500 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-green-700 font-semibold mb-2\",\n children: \"✓ 完成口說練習!\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 705,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600\",\n children: \"提示:持續練習可以提高發音準確度和流暢度\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 708,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 704,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 640,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 639,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 621,\n columnNumber: 11\n }, this) : null,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between mt-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handlePrevious,\n disabled: currentCardIndex === 0,\n className: \"flex items-center space-x-2 px-6 py-3 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow disabled:opacity-50 disabled:cursor-not-allowed\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M15 19l-7-7 7-7\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 726,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 725,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"上一個\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 728,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 720,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleNext,\n disabled: currentCardIndex === cards.length - 1,\n className: \"flex items-center space-x-2 px-6 py-3 bg-primary text-white rounded-lg shadow-sm hover:bg-primary-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"下一個\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 736,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M9 5l7 7-7 7\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 738,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 737,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 731,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 719,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 146,\n columnNumber: 7\n }, this),\n modalImage && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-75 p-4\",\n onClick: ()=>setModalImage(null),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative max-w-4xl max-h-[90vh] bg-white rounded-lg overflow-hidden\",\n onClick: (e)=>e.stopPropagation(),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setModalImage(null),\n className: \"absolute top-2 right-2 z-10 p-2 bg-white bg-opacity-90 rounded-full hover:bg-opacity-100 transition-all shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-6 h-6 text-gray-700\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M6 18L18 6M6 6l12 12\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 760,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 759,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 755,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: modalImage,\n alt: \"Example context enlarged\",\n className: \"w-full h-full object-contain\",\n style: {\n maxHeight: 'calc(90vh - 2rem)'\n }\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 766,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 765,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 750,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 746,\n columnNumber: 9\n }, this),\n showReportModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-50 p-4\",\n onClick: ()=>setShowReportModal(false),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-white rounded-lg shadow-xl max-w-md w-full p-6\",\n onClick: (e)=>e.stopPropagation(),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold\",\n children: \"回報錯誤\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 788,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowReportModal(false),\n className: \"text-gray-400 hover:text-gray-600\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-6 h-6\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M6 18L18 6M6 6l12 12\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 794,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 793,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 789,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 787,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-2\",\n children: [\n \"詞卡:\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-medium\",\n children: reportingCard === null || reportingCard === void 0 ? void 0 : reportingCard.word\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 801,\n columnNumber: 20\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 800,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-600 mb-2\",\n children: [\n \"測驗模式:\",\n mode === 'flip' ? '翻卡模式' : mode === 'quiz' ? '選擇題' : mode === 'fill' ? '填空題' : mode === 'listening' ? '聽力測試' : '口說測試'\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 803,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 799,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-gray-700 mb-2\",\n children: \"錯誤原因(選填)\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 809,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n value: reportReason,\n onChange: (e)=>setReportReason(e.target.value),\n placeholder: \"請描述錯誤內容...\",\n className: \"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-primary focus:border-primary\",\n rows: 3\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 812,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 808,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n // Submit error report\n console.log('Error reported:', {\n card: reportingCard,\n mode,\n reason: reportReason\n });\n setShowReportModal(false);\n setReportReason('');\n setReportingCard(null);\n // Show success message (could add a toast notification here)\n alert('感謝您的回報,我們會盡快處理!');\n },\n className: \"flex-1 px-4 py-2 bg-primary text-white rounded-lg hover:bg-primary-hover transition-colors\",\n children: \"送出回報\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 822,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>{\n setShowReportModal(false);\n setReportReason('');\n setReportingCard(null);\n },\n className: \"flex-1 px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors\",\n children: \"取消\"\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 840,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 821,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 783,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 779,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/app/learn/page.tsx\",\n lineNumber: 122,\n columnNumber: 5\n }, this);\n}\n_s(LearnPage, \"WqPWxKK2kVLHn5FQq3JGaZOrz6Y=\");\n_c = LearnPage;\nvar _c;\n$RefreshReg$(_c, \"LearnPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FDbkI7b0NBQ0FtQyxXQUFVOzhDQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNmO0dBaDFCd0JqRTtLQUFBQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvYXBwL2xlYXJuL3BhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IExpbmsgZnJvbSAnbmV4dC9saW5rJ1xuaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJ1xuaW1wb3J0IHsgTmF2aWdhdGlvbiB9IGZyb20gJ0AvY29tcG9uZW50cy9OYXZpZ2F0aW9uJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBMZWFyblBhZ2UoKSB7XG4gIGNvbnN0IFtjdXJyZW50Q2FyZEluZGV4LCBzZXRDdXJyZW50Q2FyZEluZGV4XSA9IHVzZVN0YXRlKDApXG4gIGNvbnN0IFtpc0ZsaXBwZWQsIHNldElzRmxpcHBlZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW21vZGUsIHNldE1vZGVdID0gdXNlU3RhdGU8J2ZsaXAnIHwgJ3F1aXonIHwgJ2ZpbGwnIHwgJ2xpc3RlbmluZycgfCAnc3BlYWtpbmcnPignZmxpcCcpXG4gIGNvbnN0IFtzY29yZSwgc2V0U2NvcmVdID0gdXNlU3RhdGUoeyBjb3JyZWN0OiAwLCB0b3RhbDogMCB9KVxuICBjb25zdCBbc2VsZWN0ZWRBbnN3ZXIsIHNldFNlbGVjdGVkQW5zd2VyXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzaG93UmVzdWx0LCBzZXRTaG93UmVzdWx0XSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZmlsbEFuc3dlciwgc2V0RmlsbEFuc3dlcl0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW3Nob3dIaW50LCBzZXRTaG93SGludF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzUmVjb3JkaW5nLCBzZXRJc1JlY29yZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2F1ZGlvUGxheWluZywgc2V0QXVkaW9QbGF5aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbW9kYWxJbWFnZSwgc2V0TW9kYWxJbWFnZV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbc2hvd1JlcG9ydE1vZGFsLCBzZXRTaG93UmVwb3J0TW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtyZXBvcnRSZWFzb24sIHNldFJlcG9ydFJlYXNvbl0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW3JlcG9ydGluZ0NhcmQsIHNldFJlcG9ydGluZ0NhcmRdID0gdXNlU3RhdGU8YW55PihudWxsKVxuXG4gIC8vIE1vY2sgZGF0YSB3aXRoIHJlYWwgZXhhbXBsZSBpbWFnZXNcbiAgY29uc3QgY2FyZHMgPSBbXG4gICAge1xuICAgICAgaWQ6IDEsXG4gICAgICB3b3JkOiAnYnJvdWdodCcsXG4gICAgICBwYXJ0T2ZTcGVlY2g6ICd2ZXJiJyxcbiAgICAgIHByb251bmNpYXRpb246ICcvYnLJlMuQdC8nLFxuICAgICAgdHJhbnNsYXRpb246ICfmj5Dlh7rjgIHluLbkvoYnLFxuICAgICAgZGVmaW5pdGlvbjogJ1Bhc3QgdGVuc2Ugb2YgYnJpbmc7IHRvIG1lbnRpb24gb3IgaW50cm9kdWNlIGEgdG9waWMgaW4gY29udmVyc2F0aW9uJyxcbiAgICAgIGV4YW1wbGU6ICdIZSBicm91Z2h0IHRoaXMgdGhpbmcgdXAgZHVyaW5nIG91ciBtZWV0aW5nIGFuZCBubyBvbmUgYWdyZWVkLicsXG4gICAgICBleGFtcGxlVHJhbnNsYXRpb246ICfku5blnKjmiJHlgJHnmoTmnIPorbDkuK3mj5Dlh7rkuobpgJnku7bkuovvvIzkvYbmspLmnInkurrlkIzmhI/jgIInLFxuICAgICAgZXhhbXBsZUltYWdlOiAnL2ltYWdlcy9leGFtcGxlcy9icmluZ191cC5wbmcnLFxuICAgICAgc3lub255bXM6IFsnbWVudGlvbmVkJywgJ3JhaXNlZCcsICdpbnRyb2R1Y2VkJ10sXG4gICAgICBkaWZmaWN1bHR5OiAnQjEnXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMixcbiAgICAgIHdvcmQ6ICdpbnN0aW5jdHMnLFxuICAgICAgcGFydE9mU3BlZWNoOiAnbm91bicsXG4gICAgICBwcm9udW5jaWF0aW9uOiAnL8uIyapuc3TJqsWLa3RzLycsXG4gICAgICB0cmFuc2xhdGlvbjogJ+acrOiDveOAgeebtOimuicsXG4gICAgICBkZWZpbml0aW9uOiAnTmF0dXJhbCBhYmlsaXRpZXMgdGhhdCBoZWxwIGxpdmluZyB0aGluZ3Mgc3Vydml2ZSB3aXRob3V0IGxlYXJuaW5nJyxcbiAgICAgIGV4YW1wbGU6ICdBbmltYWxzIHVzZSB0aGVpciBpbnN0aW5jdHMgdG8gZmluZCBmb29kIGFuZCBzdGF5IHNhZmUuJyxcbiAgICAgIGV4YW1wbGVUcmFuc2xhdGlvbjogJ+WLleeJqeWIqeeUqOacrOiDveS+huWwi+aJvumjn+eJqeS4puS/neaMgeWuieWFqOOAgicsXG4gICAgICBleGFtcGxlSW1hZ2U6ICcvaW1hZ2VzL2V4YW1wbGVzL2luc3RpbmN0LnBuZycsXG4gICAgICBzeW5vbnltczogWydpbnR1aXRpb24nLCAnaW1wdWxzZScsICd0ZW5kZW5jeSddLFxuICAgICAgZGlmZmljdWx0eTogJ0IyJ1xuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDMsXG4gICAgICB3b3JkOiAnd2FycmFudHMnLFxuICAgICAgcGFydE9mU3BlZWNoOiAnbm91bicsXG4gICAgICBwcm9udW5jaWF0aW9uOiAnL8uId8mUy5ByyZludHMvJyxcbiAgICAgIHRyYW5zbGF0aW9uOiAn5pCc5p+l5Luk44CB5o6I5qyK5LukJyxcbiAgICAgIGRlZmluaXRpb246ICdPZmZpY2lhbCBkb2N1bWVudHMgdGhhdCBnaXZlIHBvbGljZSBwZXJtaXNzaW9uIHRvIGRvIHNvbWV0aGluZycsXG4gICAgICBleGFtcGxlOiAnVGhlIHBvbGljZSBvYnRhaW5lZCB3YXJyYW50cyB0byBzZWFyY2ggdGhlIGJ1aWxkaW5nLicsXG4gICAgICBleGFtcGxlVHJhbnNsYXRpb246ICforabmlrnlj5blvpfkuobmkJzmn6Xku6TkvobmkJzmn6XpgJnmo5/lu7rnr4nnianjgIInLFxuICAgICAgZXhhbXBsZUltYWdlOiAnL2ltYWdlcy9leGFtcGxlcy93YXJyYW50LnBuZycsXG4gICAgICBzeW5vbnltczogWydhdXRob3JpemF0aW9uJywgJ3Blcm1pdCcsICdsaWNlbnNlJ10sXG4gICAgICBkaWZmaWN1bHR5OiAnQzEnXG4gICAgfVxuICBdXG5cbiAgY29uc3QgY3VycmVudENhcmQgPSBjYXJkc1tjdXJyZW50Q2FyZEluZGV4XVxuXG4gIC8vIFF1aXogbW9kZSBvcHRpb25zIC0gZHluYW1pY2FsbHkgZ2VuZXJhdGUgZnJvbSBjdXJyZW50IGNhcmRzXG4gIGNvbnN0IHF1aXpPcHRpb25zID0gW1xuICAgIGNhcmRzW2N1cnJlbnRDYXJkSW5kZXhdLnRyYW5zbGF0aW9uLFxuICAgIC4uLmNhcmRzXG4gICAgICAuZmlsdGVyKChfLCBpZHgpID0+IGlkeCAhPT0gY3VycmVudENhcmRJbmRleClcbiAgICAgIC5tYXAoY2FyZCA9PiBjYXJkLnRyYW5zbGF0aW9uKVxuICAgICAgLnNsaWNlKDAsIDIpLFxuICAgICflu7rorbDjgIHmj5DorbAnIC8vIGFkZGl0aW9uYWwgd3Jvbmcgb3B0aW9uXG4gIF0uc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KSAvLyBzaHVmZmxlIG9wdGlvbnNcblxuICBjb25zdCBoYW5kbGVGbGlwID0gKCkgPT4ge1xuICAgIHNldElzRmxpcHBlZCghaXNGbGlwcGVkKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlTmV4dCA9ICgpID0+IHtcbiAgICBpZiAoY3VycmVudENhcmRJbmRleCA8IGNhcmRzLmxlbmd0aCAtIDEpIHtcbiAgICAgIHNldEN1cnJlbnRDYXJkSW5kZXgoY3VycmVudENhcmRJbmRleCArIDEpXG4gICAgICBzZXRJc0ZsaXBwZWQoZmFsc2UpXG4gICAgICBzZXRTZWxlY3RlZEFuc3dlcihudWxsKVxuICAgICAgc2V0U2hvd1Jlc3VsdChmYWxzZSlcbiAgICAgIHNldEZpbGxBbnN3ZXIoJycpXG4gICAgICBzZXRTaG93SGludChmYWxzZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVQcmV2aW91cyA9ICgpID0+IHtcbiAgICBpZiAoY3VycmVudENhcmRJbmRleCA+IDApIHtcbiAgICAgIHNldEN1cnJlbnRDYXJkSW5kZXgoY3VycmVudENhcmRJbmRleCAtIDEpXG4gICAgICBzZXRJc0ZsaXBwZWQoZmFsc2UpXG4gICAgICBzZXRTZWxlY3RlZEFuc3dlcihudWxsKVxuICAgICAgc2V0U2hvd1Jlc3VsdChmYWxzZSlcbiAgICAgIHNldEZpbGxBbnN3ZXIoJycpXG4gICAgICBzZXRTaG93SGludChmYWxzZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEaWZmaWN1bHR5UmF0ZSA9IChyYXRpbmc6IG51bWJlcikgPT4ge1xuICAgIC8vIE1vY2sgcmF0aW5nIGxvZ2ljXG4gICAgY29uc29sZS5sb2coYFJhdGVkICR7cmF0aW5nfSBmb3IgJHtjdXJyZW50Q2FyZC53b3JkfWApXG4gICAgaGFuZGxlTmV4dCgpXG4gIH1cblxuICBjb25zdCBoYW5kbGVRdWl6QW5zd2VyID0gKGFuc3dlcjogc3RyaW5nKSA9PiB7XG4gICAgc2V0U2VsZWN0ZWRBbnN3ZXIoYW5zd2VyKVxuICAgIHNldFNob3dSZXN1bHQodHJ1ZSlcbiAgICBpZiAoYW5zd2VyID09PSBjdXJyZW50Q2FyZC50cmFuc2xhdGlvbikge1xuICAgICAgc2V0U2NvcmUoeyAuLi5zY29yZSwgY29ycmVjdDogc2NvcmUuY29ycmVjdCArIDEsIHRvdGFsOiBzY29yZS50b3RhbCArIDEgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0U2NvcmUoeyAuLi5zY29yZSwgdG90YWw6IHNjb3JlLnRvdGFsICsgMSB9KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1ibHVlLTUwIHRvLWluZGlnby0xMDBcIj5cbiAgICAgIHsvKiBOYXZpZ2F0aW9uICovfVxuICAgICAgPG5hdiBjbGFzc05hbWU9XCJiZy13aGl0ZSBzaGFkb3ctc20gYm9yZGVyLWJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy03eGwgbXgtYXV0byBweC00IHNtOnB4LTYgbGc6cHgtOFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaC0xNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LThcIj5cbiAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9kYXNoYm9hcmRcIiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5XCI+RHJhbWFMaW5nPC9MaW5rPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBtZDpmbGV4IHNwYWNlLXgtNlwiPlxuICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvZGFzaGJvYXJkXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWdyYXktOTAwXCI+5YSA6KGo5p2/PC9MaW5rPlxuICAgICAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvZmxhc2hjYXJkc1wiIGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1ncmF5LTkwMFwiPuipnuWNoTwvTGluaz5cbiAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2xlYXJuXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTkwMCBmb250LW1lZGl1bVwiPuWtuOe/kjwvTGluaz5cbiAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2dlbmVyYXRlXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWdyYXktOTAwXCI+QUkg55Sf5oiQPC9MaW5rPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvZGFzaGJvYXJkJ31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWdyYXktOTAwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgw5cg57WQ5p2f5a2457+SXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25hdj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy00eGwgbXgtYXV0byBweC00IHB5LThcIj5cbiAgICAgICAgey8qIFByb2dyZXNzIEJhciAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi04XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgbWItMlwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+6YCy5bqmPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+XG4gICAgICAgICAgICAgIHtjdXJyZW50Q2FyZEluZGV4ICsgMX0gLyB7Y2FyZHMubGVuZ3RofVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIGJnLWdyYXktMjAwIHJvdW5kZWQtZnVsbCBoLTJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctcHJpbWFyeSBoLTIgcm91bmRlZC1mdWxsIHRyYW5zaXRpb24tYWxsXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGAkeygoY3VycmVudENhcmRJbmRleCArIDEpIC8gY2FyZHMubGVuZ3RoKSAqIDEwMH0lYCB9fVxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7LyogTW9kZSBUb2dnbGUgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBtYi02XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1zbSBwLTEgaW5saW5lLWZsZXggZmxleC13cmFwXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE1vZGUoJ2ZsaXAnKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtMyBweS0yIHJvdW5kZWQtbWQgdHJhbnNpdGlvbi1jb2xvcnMgJHtcbiAgICAgICAgICAgICAgICBtb2RlID09PSAnZmxpcCdcbiAgICAgICAgICAgICAgICAgID8gJ2JnLXByaW1hcnkgdGV4dC13aGl0ZSdcbiAgICAgICAgICAgICAgICAgIDogJ3RleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1ncmF5LTkwMCdcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIOe/u+WNoeaooeW8j1xuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE1vZGUoJ3F1aXonKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtMyBweS0yIHJvdW5kZWQtbWQgdHJhbnNpdGlvbi1jb2xvcnMgJHtcbiAgICAgICAgICAgICAgICBtb2RlID09PSAncXVpeidcbiAgICAgICAgICAgICAgICAgID8gJ2JnLXByaW1hcnkgdGV4dC13aGl0ZSdcbiAgICAgICAgICAgICAgICAgIDogJ3RleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1ncmF5LTkwMCdcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIOmBuOaTh+mhjFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE1vZGUoJ2ZpbGwnKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtMyBweS0yIHJvdW5kZWQtbWQgdHJhbnNpdGlvbi1jb2xvcnMgJHtcbiAgICAgICAgICAgICAgICBtb2RlID09PSAnZmlsbCdcbiAgICAgICAgICAgICAgICAgID8gJ2JnLXByaW1hcnkgdGV4dC13aGl0ZSdcbiAgICAgICAgICAgICAgICAgIDogJ3RleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1ncmF5LTkwMCdcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIOWhq+epuumhjFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE1vZGUoJ2xpc3RlbmluZycpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2BweC0zIHB5LTIgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyAke1xuICAgICAgICAgICAgICAgIG1vZGUgPT09ICdsaXN0ZW5pbmcnXG4gICAgICAgICAgICAgICAgICA/ICdiZy1wcmltYXJ5IHRleHQtd2hpdGUnXG4gICAgICAgICAgICAgICAgICA6ICd0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtZ3JheS05MDAnXG4gICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICDogb3lipvmuKzoqaZcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRNb2RlKCdzcGVha2luZycpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2BweC0zIHB5LTIgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyAke1xuICAgICAgICAgICAgICAgIG1vZGUgPT09ICdzcGVha2luZydcbiAgICAgICAgICAgICAgICAgID8gJ2JnLXByaW1hcnkgdGV4dC13aGl0ZSdcbiAgICAgICAgICAgICAgICAgIDogJ3RleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1ncmF5LTkwMCdcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIOWPo+iqqua4rOipplxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHttb2RlID09PSAnZmxpcCcgPyAoXG4gICAgICAgICAgLyogRmxpcCBDYXJkIE1vZGUgKi9cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICB7LyogRXJyb3IgUmVwb3J0IEJ1dHRvbiBmb3IgRmxpcCBNb2RlICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktZW5kIG1iLTJcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFJlcG9ydGluZ0NhcmQoY3VycmVudENhcmQpXG4gICAgICAgICAgICAgICAgICBzZXRTaG93UmVwb3J0TW9kYWwodHJ1ZSlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCBob3Zlcjp0ZXh0LXJlZC02MDAgdGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCLlm57loLHpjK/oqqRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTQgaC00XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMTIgOHY0bTAgNGguMDFNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICDlm57loLHpjK/oqqRcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSB3LWZ1bGwgaC05NiBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUZsaXB9XG4gICAgICAgICAgICAgIHN0eWxlPXt7IHBlcnNwZWN0aXZlOiAnMTAwMHB4JyB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYWJzb2x1dGUgdy1mdWxsIGgtZnVsbCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi02MDAgJHtcbiAgICAgICAgICAgICAgICAgIGlzRmxpcHBlZCA/ICdyb3RhdGUteS0xODAnIDogJydcbiAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtU3R5bGU6ICdwcmVzZXJ2ZS0zZCcsXG4gICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IGlzRmxpcHBlZCA/ICdyb3RhdGVZKDE4MGRlZyknIDogJ3JvdGF0ZVkoMGRlZyknXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHsvKiBGcm9udCBvZiBjYXJkICovfVxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHctZnVsbCBoLWZ1bGwgYmctd2hpdGUgcm91bmRlZC0yeGwgc2hhZG93LXhsIHAtOCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZmFjZVZpc2liaWxpdHk6ICdoaWRkZW4nIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBmb250LWJvbGQgdGV4dC1ncmF5LTkwMCBtYi00XCI+XG4gICAgICAgICAgICAgICAgICAgIHtjdXJyZW50Q2FyZC53b3JkfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtbGcgdGV4dC1ncmF5LTYwMCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIHtjdXJyZW50Q2FyZC5wYXJ0T2ZTcGVlY2h9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyB0ZXh0LWdyYXktNTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIHtjdXJyZW50Q2FyZC5wcm9udW5jaWF0aW9ufVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTggdGV4dC1zbSB0ZXh0LWdyYXktNDAwXCI+XG4gICAgICAgICAgICAgICAgICAgIOm7nuaTiue/u+i9ieafpeeci+etlOahiFxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICB7LyogQmFjayBvZiBjYXJkICovfVxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHctZnVsbCBoLWZ1bGwgYmctd2hpdGUgcm91bmRlZC0yeGwgc2hhZG93LXhsIHAtOCBvdmVyZmxvdy15LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgXG4gICAgICAgICAgICAgICAgICAgIGJhY2tmYWNlVmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZVkoMTgwZGVnKSdcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktNzAwIG1iLTFcIj7nv7vora88L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWdyYXktOTAwXCI+e2N1cnJlbnRDYXJkLnRyYW5zbGF0aW9ufTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktNzAwIG1iLTFcIj7lrprnvqk8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtZ3JheS02MDBcIj57Y3VycmVudENhcmQuZGVmaW5pdGlvbn08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTcwMCBtYi0xXCI+5L6L5Y+lPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNjAwXCI+e2N1cnJlbnRDYXJkLmV4YW1wbGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNTAwIHRleHQtc20gbXQtMVwiPntjdXJyZW50Q2FyZC5leGFtcGxlVHJhbnNsYXRpb259PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtZ3JheS03MDAgbWItMVwiPuWQjOe+qeipnjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50Q2FyZC5zeW5vbnltcy5tYXAoKHN5biwgaWR4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17aWR4fSBjbGFzc05hbWU9XCJweC0zIHB5LTEgYmctZ3JheS0xMDAgcm91bmRlZC1mdWxsIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3lufVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIERpZmZpY3VsdHkgUmF0aW5nICovfVxuICAgICAgICAgICAge2lzRmxpcHBlZCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtOFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgbWItNFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMFwiPumAmeWAi+WWruWtl+WwjeS9oOS+huiqqumbo+W6puWmguS9le+8nzwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1jZW50ZXIgc3BhY2UteC0zXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZURpZmZpY3VsdHlSYXRlKDEpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC00IHB5LTIgYmctcmVkLTEwMCB0ZXh0LXJlZC03MDAgcm91bmRlZC1sZyBob3ZlcjpiZy1yZWQtMjAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAg8J+YlCDlrozlhajkuI3oqJjlvpdcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEaWZmaWN1bHR5UmF0ZSgzKX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHgtNCBweS0yIGJnLXllbGxvdy0xMDAgdGV4dC15ZWxsb3ctNzAwIHJvdW5kZWQtbGcgaG92ZXI6YmcteWVsbG93LTIwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIPCfmJAg5pyJ6bue5Zuw6ZujXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlRGlmZmljdWx0eVJhdGUoNSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTQgcHktMiBiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi03MDAgcm91bmRlZC1sZyBob3ZlcjpiZy1ncmVlbi0yMDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICDwn5iKIOW+iOewoeWWrlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG1vZGUgPT09ICdxdWl6JyA/IChcbiAgICAgICAgICAvKiBRdWl6IE1vZGUgLSDpgbjmk4fpoYzvvJroi7HmloflrprnvqnpgbjkuK3mlofnv7vora8gKi9cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICB7LyogRXJyb3IgUmVwb3J0IEJ1dHRvbiBmb3IgUXVpeiBNb2RlICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktZW5kIG1iLTJcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFJlcG9ydGluZ0NhcmQoY3VycmVudENhcmQpXG4gICAgICAgICAgICAgICAgICBzZXRTaG93UmVwb3J0TW9kYWwodHJ1ZSlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMCBob3Zlcjp0ZXh0LXJlZC02MDAgdGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCLlm57loLHpjK/oqqRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTQgaC00XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMTIgOHY0bTAgNGguMDFNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICDlm57loLHpjK/oqqRcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSByb3VuZGVkLTJ4bCBzaGFkb3cteGwgcC04XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG1iLTJcIj7moLnmk5rlrprnvqnpgbjmk4fmraPnorrnmoTkuK3mlofnv7vora88L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteGwgdGV4dC1ncmF5LTgwMCBsZWFkaW5nLXJlbGF4ZWRcIj5cbiAgICAgICAgICAgICAgICAgIHtjdXJyZW50Q2FyZC5kZWZpbml0aW9ufVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgICh7Y3VycmVudENhcmQucGFydE9mU3BlZWNofSlcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgICAgICAgICAgIHtxdWl6T3B0aW9ucy5tYXAoKG9wdGlvbiwgaWR4KSA9PiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtpZHh9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiAhc2hvd1Jlc3VsdCAmJiBoYW5kbGVRdWl6QW5zd2VyKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c2hvd1Jlc3VsdH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHctZnVsbCBwLTQgdGV4dC1sZWZ0IHJvdW5kZWQtbGcgYm9yZGVyLTIgdHJhbnNpdGlvbi1hbGwgJHtcbiAgICAgICAgICAgICAgICAgICAgc2hvd1Jlc3VsdCAmJiBvcHRpb24gPT09IGN1cnJlbnRDYXJkLnRyYW5zbGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYm9yZGVyLWdyZWVuLTUwMCBiZy1ncmVlbi01MCdcbiAgICAgICAgICAgICAgICAgICAgICA6IHNob3dSZXN1bHQgJiYgb3B0aW9uID09PSBzZWxlY3RlZEFuc3dlciAmJiBvcHRpb24gIT09IGN1cnJlbnRDYXJkLnRyYW5zbGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYm9yZGVyLXJlZC01MDAgYmctcmVkLTUwJ1xuICAgICAgICAgICAgICAgICAgICAgIDogc2VsZWN0ZWRBbnN3ZXIgPT09IG9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgID8gJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnktbGlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnYm9yZGVyLWdyYXktMjAwIGhvdmVyOmJvcmRlci1ncmF5LTMwMCdcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtXCI+e29wdGlvbn08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtzaG93UmVzdWx0ICYmIG9wdGlvbiA9PT0gY3VycmVudENhcmQudHJhbnNsYXRpb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy01IGgtNSB0ZXh0LWdyZWVuLTUwMFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTUgMTNsNCA0TDE5IDdcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICB7c2hvd1Jlc3VsdCAmJiBvcHRpb24gPT09IHNlbGVjdGVkQW5zd2VyICYmIG9wdGlvbiAhPT0gY3VycmVudENhcmQudHJhbnNsYXRpb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy01IGgtNSB0ZXh0LXJlZC01MDBcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk02IDE4TDE4IDZNNiA2bDEyIDEyXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG1vZGUgPT09ICdmaWxsJyA/IChcbiAgICAgICAgICAvKiBGaWxsIGluIHRoZSBCbGFuayBNb2RlIC0g5aGr56m66aGMICovXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgey8qIEVycm9yIFJlcG9ydCBCdXR0b24gZm9yIEZpbGwgTW9kZSAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWVuZCBtYi0yXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRSZXBvcnRpbmdDYXJkKGN1cnJlbnRDYXJkKVxuICAgICAgICAgICAgICAgICAgc2V0U2hvd1JlcG9ydE1vZGFsKHRydWUpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDAgaG92ZXI6dGV4dC1yZWQtNjAwIHRleHQtc20gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwi5Zue5aCx6Yyv6KqkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy00IGgtNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTEyIDh2NG0wIDRoLjAxTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAg5Zue5aCx6Yyv6KqkXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgcm91bmRlZC0yeGwgc2hhZG93LXhsIHAtOFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTZcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMCBtYi00XCI+5qC55pOa5L6L5Y+l5ZyW54mH5ZKM5Y+l5a2Q5aGr5YWl5q2j56K655qE6Kme5b2ZPC9kaXY+XG5cbiAgICAgICAgICAgICAgey8qIEV4YW1wbGUgSW1hZ2UgKi99XG4gICAgICAgICAgICAgIHtjdXJyZW50Q2FyZC5leGFtcGxlSW1hZ2UgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNFwiPlxuICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBzcmM9e2N1cnJlbnRDYXJkLmV4YW1wbGVJbWFnZX1cbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiRXhhbXBsZSBjb250ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHJvdW5kZWQtbGcgc2hhZG93LW1kIGN1cnNvci1wb2ludGVyIGhvdmVyOnNoYWRvdy1sZyB0cmFuc2l0aW9uLXNoYWRvd1wiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1heEhlaWdodDogJzQwMHB4Jywgb2JqZWN0Rml0OiAnY29udGFpbicgfX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0TW9kYWxJbWFnZShjdXJyZW50Q2FyZC5leGFtcGxlSW1hZ2UpfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTIgdGV4dC1jZW50ZXJcIj7pu57mk4rlnJbniYflj6/mlL7lpKfmn6XnnIs8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICB7LyogRXhhbXBsZSBTZW50ZW5jZSB3aXRoIEJsYW5rICovfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtbGcgdGV4dC1ncmF5LTgwMCBtYi00XCI+XG4gICAgICAgICAgICAgICAge2N1cnJlbnRDYXJkLmV4YW1wbGUuc3BsaXQoY3VycmVudENhcmQud29yZCkubWFwKChwYXJ0LCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8c3BhbiBrZXk9e2l9PlxuICAgICAgICAgICAgICAgICAgICB7cGFydH1cbiAgICAgICAgICAgICAgICAgICAge2kgPCBjdXJyZW50Q2FyZC5leGFtcGxlLnNwbGl0KGN1cnJlbnRDYXJkLndvcmQpLmxlbmd0aCAtIDEgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImlubGluZS1ibG9jayB3LTMyIGJvcmRlci1iLTIgYm9yZGVyLWdyYXktNDAwIG14LTFcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBIaW50IEJ1dHRvbiAqL31cbiAgICAgICAgICAgICAgeyFzaG93SGludCAmJiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0hpbnQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtcHJpbWFyeSBob3Zlcjp0ZXh0LXByaW1hcnktaG92ZXIgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy00IGgtNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMTMgMTZoLTF2LTRoLTFtMS00aC4wMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICDpu57mk4rmn6XnnIvmj5DnpLpcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICB7LyogRGVmaW5pdGlvbiBIaW50ICovfVxuICAgICAgICAgICAgICB7c2hvd0hpbnQgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMyBwLTMgYmctYmx1ZS01MCByb3VuZGVkLWxnXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ibHVlLTgwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPuWumue+qeaPkOekuu+8mjwvc3Ryb25nPiB7Y3VycmVudENhcmQuZGVmaW5pdGlvbn1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBBbnN3ZXIgSW5wdXQgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTZcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtmaWxsQW5zd2VyfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0RmlsbEFuc3dlcihlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLovLjlhaXnrZTmoYguLi5cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBweC00IHB5LTMgYm9yZGVyLTIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgZm9jdXM6Ym9yZGVyLXByaW1hcnkgZm9jdXM6b3V0bGluZS1ub25lIHRleHQtbGdcIlxuICAgICAgICAgICAgICAgIG9uS2V5UHJlc3M9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgZmlsbEFuc3dlcikge1xuICAgICAgICAgICAgICAgICAgICBzZXRTaG93UmVzdWx0KHRydWUpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogU3VibWl0IEJ1dHRvbiAqL31cbiAgICAgICAgICAgIHshc2hvd1Jlc3VsdCAmJiAoXG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBmaWxsQW5zd2VyICYmIHNldFNob3dSZXN1bHQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFmaWxsQW5zd2VyfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBweS0zIGJnLXByaW1hcnkgdGV4dC13aGl0ZSByb3VuZGVkLWxnIGZvbnQtbWVkaXVtIGhvdmVyOmJnLXByaW1hcnktaG92ZXIgdHJhbnNpdGlvbi1jb2xvcnMgZGlzYWJsZWQ6b3BhY2l0eS01MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAg5o+Q5Lqk562U5qGIXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgey8qIFJlc3VsdCBEaXNwbGF5ICovfVxuICAgICAgICAgICAge3Nob3dSZXN1bHQgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHAtNCByb3VuZGVkLWxnICR7XG4gICAgICAgICAgICAgICAgZmlsbEFuc3dlci50b0xvd2VyQ2FzZSgpID09PSBjdXJyZW50Q2FyZC53b3JkLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgID8gJ2JnLWdyZWVuLTUwIGJvcmRlci0yIGJvcmRlci1ncmVlbi01MDAnXG4gICAgICAgICAgICAgICAgICA6ICdiZy1yZWQtNTAgYm9yZGVyLTIgYm9yZGVyLXJlZC01MDAnXG4gICAgICAgICAgICAgIH1gfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2Bmb250LXNlbWlib2xkICR7XG4gICAgICAgICAgICAgICAgICAgIGZpbGxBbnN3ZXIudG9Mb3dlckNhc2UoKSA9PT0gY3VycmVudENhcmQud29yZC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgPyAndGV4dC1ncmVlbi03MDAnXG4gICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC1yZWQtNzAwJ1xuICAgICAgICAgICAgICAgICAgfWB9PlxuICAgICAgICAgICAgICAgICAgICB7ZmlsbEFuc3dlci50b0xvd2VyQ2FzZSgpID09PSBjdXJyZW50Q2FyZC53b3JkLnRvTG93ZXJDYXNlKCkgPyAn4pyTIOato+eiuu+8gScgOiAn4pyXIOmMr+iqpCd9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAge2ZpbGxBbnN3ZXIudG9Mb3dlckNhc2UoKSAhPT0gY3VycmVudENhcmQud29yZC50b0xvd2VyQ2FzZSgpICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNzAwXCI+XG4gICAgICAgICAgICAgICAgICAgIOato+eiuuetlOahiO+8mjxzcGFuIGNsYXNzTmFtZT1cImZvbnQtYm9sZFwiPntjdXJyZW50Q2FyZC53b3JkfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0zIHRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkIG1iLTFcIj7lrozmlbTkvovlj6XvvJo8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+e2N1cnJlbnRDYXJkLmV4YW1wbGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtZ3JheS01MDAgbXQtMVwiPntjdXJyZW50Q2FyZC5leGFtcGxlVHJhbnNsYXRpb259PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbW9kZSA9PT0gJ2xpc3RlbmluZycgPyAoXG4gICAgICAgICAgLyogTGlzdGVuaW5nIFRlc3QgTW9kZSAtIOiBveWKm+a4rOippiAqL1xuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgIHsvKiBFcnJvciBSZXBvcnQgQnV0dG9uIGZvciBMaXN0ZW5pbmcgTW9kZSAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWVuZCBtYi0yXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRSZXBvcnRpbmdDYXJkKGN1cnJlbnRDYXJkKVxuICAgICAgICAgICAgICAgICAgc2V0U2hvd1JlcG9ydE1vZGFsKHRydWUpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDAgaG92ZXI6dGV4dC1yZWQtNjAwIHRleHQtc20gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwi5Zue5aCx6Yyv6KqkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy00IGgtNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTEyIDh2NG0wIDRoLjAxTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAg5Zue5aCx6Yyv6KqkXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgcm91bmRlZC0yeGwgc2hhZG93LXhsIHAtOFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTYgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMCBtYi00XCI+6IG96Z+z6aC777yM6YG45pOH5q2j56K655qE5Zau5a2XPC9kaXY+XG5cbiAgICAgICAgICAgICAgey8qIEF1ZGlvIFBsYXkgQnV0dG9uICovfVxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0QXVkaW9QbGF5aW5nKHRydWUpXG4gICAgICAgICAgICAgICAgICAvLyBTaW11bGF0ZSBhdWRpbyBwbGF5aW5nXG4gICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHNldEF1ZGlvUGxheWluZyhmYWxzZSksIDIwMDApXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteC1hdXRvIG1iLTYgcC04IGJnLWdyYXktMTAwIHJvdW5kZWQtZnVsbCBob3ZlcjpiZy1ncmF5LTIwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YXVkaW9QbGF5aW5nID8gKFxuICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTE2IGgtMTYgdGV4dC1wcmltYXJ5IGFuaW1hdGUtcHVsc2VcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTE1LjUzNiA4LjQ2NGE1IDUgMCAwMTAgNy4wNzJtMi44MjgtOS45YTkgOSAwIDAxMCAxMi43MjhNNS41ODYgMTVINGExIDEgMCAwMS0xLTF2LTRhMSAxIDAgMDExLTFoMS41ODZsNC43MDctNC43MDdDMTAuOTIzIDMuNjYzIDEyIDQuMTA5IDEyIDV2MTRjMCAuODkxLTEuMDc3IDEuMzM3LTEuNzA3LjcwN0w1LjU4NiAxNXpcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy0xNiBoLTE2IHRleHQtZ3JheS02MDBcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTE0Ljc1MiAxMS4xNjhsLTMuMTk3LTIuMTMyQTEgMSAwIDAwMTAgOS44N3Y0LjI2M2ExIDEgMCAwMDEuNTU1LjgzMmwzLjE5Ny0yLjEzMmExIDEgMCAwMDAtMS42NjR6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMFwiPum7nuaTiuaSreaUvuaMiemIleiBveeZvOmfszwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBXb3JkIE9wdGlvbnMgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAge1tjdXJyZW50Q2FyZC53b3JkLCAnZGV0ZXJtaW5lJywgJ2FjaGlldmUnLCAnY29uc2lkZXInXS5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBrZXk9e3dvcmR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiAhc2hvd1Jlc3VsdCAmJiBoYW5kbGVRdWl6QW5zd2VyKHdvcmQpfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3Nob3dSZXN1bHR9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BwLTQgdGV4dC1sZyBmb250LW1lZGl1bSByb3VuZGVkLWxnIGJvcmRlci0yIHRyYW5zaXRpb24tYWxsICR7XG4gICAgICAgICAgICAgICAgICAgIHNob3dSZXN1bHQgJiYgd29yZCA9PT0gY3VycmVudENhcmQud29yZFxuICAgICAgICAgICAgICAgICAgICAgID8gJ2JvcmRlci1ncmVlbi01MDAgYmctZ3JlZW4tNTAnXG4gICAgICAgICAgICAgICAgICAgICAgOiBzaG93UmVzdWx0ICYmIHdvcmQgPT09IHNlbGVjdGVkQW5zd2VyICYmIHdvcmQgIT09IGN1cnJlbnRDYXJkLndvcmRcbiAgICAgICAgICAgICAgICAgICAgICA/ICdib3JkZXItcmVkLTUwMCBiZy1yZWQtNTAnXG4gICAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RlZEFuc3dlciA9PT0gd29yZFxuICAgICAgICAgICAgICAgICAgICAgID8gJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnktbGlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnYm9yZGVyLWdyYXktMjAwIGhvdmVyOmJvcmRlci1ncmF5LTMwMCdcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt3b3JkfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogUmVzdWx0IERpc3BsYXkgKi99XG4gICAgICAgICAgICB7c2hvd1Jlc3VsdCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNiBwLTQgYmctZ3JheS01MCByb3VuZGVkLWxnXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTcwMCBtYi0yXCI+5Zau5a2X6Kmz5oOFPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57Y3VycmVudENhcmQud29yZH08L3NwYW4+IC0ge2N1cnJlbnRDYXJkLnRyYW5zbGF0aW9ufVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPntjdXJyZW50Q2FyZC5kZWZpbml0aW9ufTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDAgaXRhbGljXCI+XCJ7Y3VycmVudENhcmQuZXhhbXBsZX1cIjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG1vZGUgPT09ICdzcGVha2luZycgPyAoXG4gICAgICAgICAgLyogU3BlYWtpbmcgVGVzdCBNb2RlIC0g5Y+j6Kqq5ris6KmmICovXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgey8qIEVycm9yIFJlcG9ydCBCdXR0b24gZm9yIFNwZWFraW5nIE1vZGUgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1lbmQgbWItMlwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0UmVwb3J0aW5nQ2FyZChjdXJyZW50Q2FyZClcbiAgICAgICAgICAgICAgICAgIHNldFNob3dSZXBvcnRNb2RhbCh0cnVlKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1yZWQtNTAwIGhvdmVyOnRleHQtcmVkLTYwMCB0ZXh0LXNtIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIuWbnuWgsemMr+iqpFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNCBoLTRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk0xMiA4djRtMCA0aC4wMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIOWbnuWgsemMr+iqpFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXdoaXRlIHJvdW5kZWQtMnhsIHNoYWRvdy14bCBwLThcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbWItNFwiPuW/teWHuuS7peS4i+S+i+WPpTwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBUYXJnZXQgU2VudGVuY2UgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC02IGJnLWdyYXktNTAgcm91bmRlZC1sZyBtYi02XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhsIHRleHQtZ3JheS04MDAgbGVhZGluZy1yZWxheGVkIG1iLTNcIj5cbiAgICAgICAgICAgICAgICAgIHtjdXJyZW50Q2FyZC5leGFtcGxlfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTYwMFwiPlxuICAgICAgICAgICAgICAgICAge2N1cnJlbnRDYXJkLmV4YW1wbGVUcmFuc2xhdGlvbn1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgey8qIFByb251bmNpYXRpb24gR3VpZGUgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG1iLTJcIj7ph43pu57llq7lrZfnmbzpn7PvvJo8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkIHRleHQtbGdcIj57Y3VycmVudENhcmQud29yZH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNTAwXCI+e2N1cnJlbnRDYXJkLnByb251bmNpYXRpb259PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJ0ZXh0LXByaW1hcnkgaG92ZXI6dGV4dC1wcmltYXJ5LWhvdmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy01IGgtNVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk0xNS41MzYgOC40NjRhNSA1IDAgMDEwIDcuMDcybTIuODI4LTkuOWE5IDkgMCAwMTAgMTIuNzI4TTUuNTg2IDE1SDRhMSAxIDAgMDEtMS0xdi00YTEgMSAwIDAxMS0xaDEuNTg2bDQuNzA3LTQuNzA3QzEwLjkyMyAzLjY2MyAxMiA0LjEwOSAxMiA1djE0YzAgLjg5MS0xLjA3NyAxLjMzNy0xLjcwNy43MDdMNS41ODYgMTV6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgey8qIFJlY29yZGluZyBCdXR0b24gKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldElzUmVjb3JkaW5nKCFpc1JlY29yZGluZylcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1JlY29yZGluZykge1xuICAgICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHJlY29yZGluZ1xuICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZWNvcmRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTaG93UmVzdWx0KHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgfSwgMzAwMClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHAtNiByb3VuZGVkLWZ1bGwgdHJhbnNpdGlvbi1hbGwgJHtcbiAgICAgICAgICAgICAgICAgICAgaXNSZWNvcmRpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/ICdiZy1yZWQtNTAwIGhvdmVyOmJnLXJlZC02MDAgYW5pbWF0ZS1wdWxzZSdcbiAgICAgICAgICAgICAgICAgICAgICA6ICdiZy1wcmltYXJ5IGhvdmVyOmJnLXByaW1hcnktaG92ZXInXG4gICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7aXNSZWNvcmRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy0xMiBoLTEyIHRleHQtd2hpdGVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNOSAxMGExIDEgMCAwMTEtMWg0YTEgMSAwIDAxMSAxdjRhMSAxIDAgMDEtMSAxaC00YTEgMSAwIDAxLTEtMXYtNHpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy0xMiBoLTEyIHRleHQtd2hpdGVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBzdHJva2VMaW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlV2lkdGg9ezJ9IGQ9XCJNMTkgMTFhNyA3IDAgMDEtNyA3bTAgMGE3IDcgMCAwMS03LTdtNyA3djRtMCAwSDhtNCAwaDRtLTQtOGEzIDMgMCAwMS0zLTNWNWEzIDMgMCAxMTYgMHY2YTMgMyAwIDAxLTMgM3pcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0zIHRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxuICAgICAgICAgICAgICAgICAge2lzUmVjb3JkaW5nID8gJ+mMhOmfs+S4rS4uLiDpu57mk4rlgZzmraInIDogJ+m7nuaTiumWi+Wni+mMhOmfsyd9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBSZXN1bHQgRGlzcGxheSAqL31cbiAgICAgICAgICAgICAge3Nob3dSZXN1bHQgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNiBwLTQgYmctZ3JlZW4tNTAgYm9yZGVyLTIgYm9yZGVyLWdyZWVuLTUwMCByb3VuZGVkLWxnXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtZ3JlZW4tNzAwIGZvbnQtc2VtaWJvbGQgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICDinJMg5a6M5oiQ5Y+j6Kqq57e057+S77yBXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+XG4gICAgICAgICAgICAgICAgICAgIOaPkOekuu+8muaMgee6jOe3tOe/kuWPr+S7peaPkOmrmOeZvOmfs+a6lueiuuW6puWSjOa1geaaouW6plxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgey8qIE5hdmlnYXRpb24gQnV0dG9ucyAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBtdC04XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlUHJldmlvdXN9XG4gICAgICAgICAgICBkaXNhYmxlZD17Y3VycmVudENhcmRJbmRleCA9PT0gMH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMiBweC02IHB5LTMgYmctd2hpdGUgcm91bmRlZC1sZyBzaGFkb3ctc20gaG92ZXI6c2hhZG93LW1kIHRyYW5zaXRpb24tc2hhZG93IGRpc2FibGVkOm9wYWNpdHktNTAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNSBoLTVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTE1IDE5bC03LTcgNy03XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPHNwYW4+5LiK5LiA5YCLPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlTmV4dH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtjdXJyZW50Q2FyZEluZGV4ID09PSBjYXJkcy5sZW5ndGggLSAxfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIHB4LTYgcHktMyBiZy1wcmltYXJ5IHRleHQtd2hpdGUgcm91bmRlZC1sZyBzaGFkb3ctc20gaG92ZXI6YmctcHJpbWFyeS1ob3ZlciB0cmFuc2l0aW9uLWNvbG9ycyBkaXNhYmxlZDpvcGFjaXR5LTUwIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+5LiL5LiA5YCLPC9zcGFuPlxuICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTUgaC01XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk05IDVsNyA3LTcgN1wiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIEltYWdlIE1vZGFsICovfVxuICAgICAge21vZGFsSW1hZ2UgJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQgaW5zZXQtMCB6LTUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLWJsYWNrIGJnLW9wYWNpdHktNzUgcC00XCJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRNb2RhbEltYWdlKG51bGwpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgbWF4LXctNHhsIG1heC1oLVs5MHZoXSBiZy13aGl0ZSByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlblwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LyogQ2xvc2UgQnV0dG9uICovfVxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRNb2RhbEltYWdlKG51bGwpfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMiByaWdodC0yIHotMTAgcC0yIGJnLXdoaXRlIGJnLW9wYWNpdHktOTAgcm91bmRlZC1mdWxsIGhvdmVyOmJnLW9wYWNpdHktMTAwIHRyYW5zaXRpb24tYWxsIHNoYWRvdy1sZ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy02IGgtNiB0ZXh0LWdyYXktNzAwXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZVdpZHRoPXsyfSBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICB7LyogSW1hZ2UgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNFwiPlxuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgc3JjPXttb2RhbEltYWdlfVxuICAgICAgICAgICAgICAgIGFsdD1cIkV4YW1wbGUgY29udGV4dCBlbmxhcmdlZFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGgtZnVsbCBvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgbWF4SGVpZ2h0OiAnY2FsYyg5MHZoIC0gMnJlbSknIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7LyogRXJyb3IgUmVwb3J0IE1vZGFsICovfVxuICAgICAge3Nob3dSZXBvcnRNb2RhbCAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIHotNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctYmxhY2sgYmctb3BhY2l0eS01MCBwLTRcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dSZXBvcnRNb2RhbChmYWxzZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJiZy13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy14bCBtYXgtdy1tZCB3LWZ1bGwgcC02XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIG1iLTRcIj5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZFwiPuWbnuWgsemMr+iqpDwvaDM+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93UmVwb3J0TW9kYWwoZmFsc2UpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTYwMFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNiBoLTZcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBzdHJva2VXaWR0aD17Mn0gZD1cIk02IDE4TDE4IDZNNiA2bDEyIDEyXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG1iLTJcIj5cbiAgICAgICAgICAgICAgICDoqZ7ljaHvvJo8c3BhbiBjbGFzc05hbWU9XCJmb250LW1lZGl1bVwiPntyZXBvcnRpbmdDYXJkPy53b3JkfTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG1iLTJcIj5cbiAgICAgICAgICAgICAgICDmuKzpqZfmqKHlvI/vvJp7bW9kZSA9PT0gJ2ZsaXAnID8gJ+e/u+WNoeaooeW8jycgOiBtb2RlID09PSAncXVpeicgPyAn6YG45pOH6aGMJyA6IG1vZGUgPT09ICdmaWxsJyA/ICfloavnqbrpoYwnIDogbW9kZSA9PT0gJ2xpc3RlbmluZycgPyAn6IG95Yqb5ris6KmmJyA6ICflj6PoqqrmuKzoqaYnfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBtYi0yXCI+XG4gICAgICAgICAgICAgICAg6Yyv6Kqk5Y6f5Zug77yI6YG45aGr77yJXG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIHZhbHVlPXtyZXBvcnRSZWFzb259XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRSZXBvcnRSZWFzb24oZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6KuL5o+P6L+w6Yyv6Kqk5YWn5a65Li4uXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcHgtMyBweS0yIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBmb2N1czpyaW5nLXByaW1hcnkgZm9jdXM6Ym9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIHJvd3M9ezN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0zXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBTdWJtaXQgZXJyb3IgcmVwb3J0XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3IgcmVwb3J0ZWQ6Jywge1xuICAgICAgICAgICAgICAgICAgICBjYXJkOiByZXBvcnRpbmdDYXJkLFxuICAgICAgICAgICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgICAgICAgICByZWFzb246IHJlcG9ydFJlYXNvblxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIHNldFNob3dSZXBvcnRNb2RhbChmYWxzZSlcbiAgICAgICAgICAgICAgICAgIHNldFJlcG9ydFJlYXNvbignJylcbiAgICAgICAgICAgICAgICAgIHNldFJlcG9ydGluZ0NhcmQobnVsbClcbiAgICAgICAgICAgICAgICAgIC8vIFNob3cgc3VjY2VzcyBtZXNzYWdlIChjb3VsZCBhZGQgYSB0b2FzdCBub3RpZmljYXRpb24gaGVyZSlcbiAgICAgICAgICAgICAgICAgIGFsZXJ0KCfmhJ/orJ3mgqjnmoTlm57loLHvvIzmiJHlgJHmnIPnm6Hlv6vomZXnkIbvvIEnKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIHB4LTQgcHktMiBiZy1wcmltYXJ5IHRleHQtd2hpdGUgcm91bmRlZC1sZyBob3ZlcjpiZy1wcmltYXJ5LWhvdmVyIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIOmAgeWHuuWbnuWgsVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFNob3dSZXBvcnRNb2RhbChmYWxzZSlcbiAgICAgICAgICAgICAgICAgIHNldFJlcG9ydFJlYXNvbignJylcbiAgICAgICAgICAgICAgICAgIHNldFJlcG9ydGluZ0NhcmQobnVsbClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBweC00IHB5LTIgYmctZ3JheS0xMDAgdGV4dC1ncmF5LTcwMCByb3VuZGVkLWxnIGhvdmVyOmJnLWdyYXktMjAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIOWPlua2iFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn0iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJMaW5rIiwiTGVhcm5QYWdlIiwiY3VycmVudENhcmRJbmRleCIsInNldEN1cnJlbnRDYXJkSW5kZXgiLCJpc0ZsaXBwZWQiLCJzZXRJc0ZsaXBwZWQiLCJtb2RlIiwic2V0TW9kZSIsInNjb3JlIiwic2V0U2NvcmUiLCJjb3JyZWN0IiwidG90YWwiLCJzZWxlY3RlZEFuc3dlciIsInNldFNlbGVjdGVkQW5zd2VyIiwic2hvd1Jlc3VsdCIsInNldFNob3dSZXN1bHQiLCJmaWxsQW5zd2VyIiwic2V0RmlsbEFuc3dlciIsInNob3dIaW50Iiwic2V0U2hvd0hpbnQiLCJpc1JlY29yZGluZyIsInNldElzUmVjb3JkaW5nIiwiYXVkaW9QbGF5aW5nIiwic2V0QXVkaW9QbGF5aW5nIiwibW9kYWxJbWFnZSIsInNldE1vZGFsSW1hZ2UiLCJzaG93UmVwb3J0TW9kYWwiLCJzZXRTaG93UmVwb3J0TW9kYWwiLCJyZXBvcnRSZWFzb24iLCJzZXRSZXBvcnRSZWFzb24iLCJyZXBvcnRpbmdDYXJkIiwic2V0UmVwb3J0aW5nQ2FyZCIsImNhcmRzIiwiaWQiLCJ3b3JkIiwicGFydE9mU3BlZWNoIiwicHJvbnVuY2lhdGlvbiIsInRyYW5zbGF0aW9uIiwiZGVmaW5pdGlvbiIsImV4YW1wbGUiLCJleGFtcGxlVHJhbnNsYXRpb24iLCJleGFtcGxlSW1hZ2UiLCJzeW5vbnltcyIsImRpZmZpY3VsdHkiLCJjdXJyZW50Q2FyZCIsInF1aXpPcHRpb25zIiwiZmlsdGVyIiwiXyIsImlkeCIsIm1hcCIsImNhcmQiLCJzbGljZSIsInNvcnQiLCJNYXRoIiwicmFuZG9tIiwiaGFuZGxlRmxpcCIsImhhbmRsZU5leHQiLCJsZW5ndGgiLCJoYW5kbGVQcmV2aW91cyIsImhhbmRsZURpZmZpY3VsdHlSYXRlIiwicmF0aW5nIiwiY29uc29sZSIsImxvZyIsImhhbmRsZVF1aXpBbnN3ZXIiLCJhbnN3ZXIiLCJkaXYiLCJjbGFzc05hbWUiLCJuYXYiLCJocmVmIiwiYnV0dG9uIiwib25DbGljayIsIndpbmRvdyIsImxvY2F0aW9uIiwic3BhbiIsInN0eWxlIiwid2lkdGgiLCJ0aXRsZSIsInN2ZyIsImZpbGwiLCJzdHJva2UiLCJ2aWV3Qm94IiwicGF0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInN0cm9rZVdpZHRoIiwiZCIsInBlcnNwZWN0aXZlIiwidHJhbnNmb3JtU3R5bGUiLCJ0cmFuc2Zvcm0iLCJiYWNrZmFjZVZpc2liaWxpdHkiLCJzeW4iLCJvcHRpb24iLCJkaXNhYmxlZCIsImltZyIsInNyYyIsImFsdCIsIm1heEhlaWdodCIsIm9iamVjdEZpdCIsInNwbGl0IiwicGFydCIsImkiLCJzdHJvbmciLCJpbnB1dCIsInR5cGUiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiZSIsInRhcmdldCIsInBsYWNlaG9sZGVyIiwib25LZXlQcmVzcyIsImtleSIsInRvTG93ZXJDYXNlIiwic2V0VGltZW91dCIsInN0b3BQcm9wYWdhdGlvbiIsImgzIiwibGFiZWwiLCJ0ZXh0YXJlYSIsInJvd3MiLCJyZWFzb24iLCJhbGVydCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/learn/page.tsx\n"));
|
||
|
||
/***/ })
|
||
|
||
}); |