Files
Dramlog-Prod/.next/static/webpack/app/page.2b916cde7b7b9504.hot-update.js

22 lines
62 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"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/page",{
/***/ "(app-pages-browser)/./src/components/CameraCapture.tsx":
/*!******************************************!*\
!*** ./src/components/CameraCapture.tsx ***!
\******************************************/
/***/ (function(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\": function() { return /* binding */ CameraCapture; }\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 _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/camera.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check-circle-2.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/upload.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/alert-circle.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/sparkles.js\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/auth-helpers-nextjs */ \"(app-pages-browser)/./node_modules/@supabase/auth-helpers-nextjs/dist/index.js\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _services_analyze_bottle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/services/analyze-bottle */ \"(app-pages-browser)/./src/services/analyze-bottle.ts\");\n/* harmony import */ var _services_save_bottle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/services/save-bottle */ \"(app-pages-browser)/./src/services/save-bottle.ts\");\n/* harmony import */ var _lib_offline_db__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/offline-db */ \"(app-pages-browser)/./src/lib/offline-db.ts\");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! uuid */ \"(app-pages-browser)/./node_modules/uuid/dist/v4.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\nfunction CameraCapture(param) {\n let { onImageCaptured, onAnalysisComplete, onSaveComplete } = param;\n _s();\n const supabase = (0,_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__.createClientComponentClient)();\n const fileInputRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [isProcessing, setIsProcessing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isSaving, setIsSaving] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [previewUrl, setPreviewUrl] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [analysisResult, setAnalysisResult] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [isQueued, setIsQueued] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const handleCapture = async (event)=>{\n var _event_target_files;\n const file = (_event_target_files = event.target.files) === null || _event_target_files === void 0 ? void 0 : _event_target_files[0];\n if (!file) return;\n setIsProcessing(true);\n setError(null);\n setAnalysisResult(null);\n setIsQueued(false);\n try {\n const compressedBase64 = await compressImage(file);\n setPreviewUrl(compressedBase64);\n if (onImageCaptured) {\n onImageCaptured(compressedBase64);\n }\n // Check if Offline\n if (!navigator.onLine) {\n console.log(\"Offline detected. Queuing image...\");\n await (0,_lib_offline_db__WEBPACK_IMPORTED_MODULE_5__.savePendingBottle)({\n id: (0,uuid__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(),\n imageBase64: compressedBase64,\n timestamp: Date.now()\n });\n setIsQueued(true);\n return;\n }\n const response = await (0,_services_analyze_bottle__WEBPACK_IMPORTED_MODULE_3__.analyzeBottle)(compressedBase64);\n if (response.success && response.data) {\n setAnalysisResult(response.data);\n if (onAnalysisComplete) {\n onAnalysisComplete(response.data);\n }\n } else {\n setError(response.error || \"Analyse fehlgeschlagen.\");\n }\n } catch (err) {\n console.error(\"Processing failed:\", err);\n setError(\"Verarbeitung fehlgeschlagen. Bitte erneut versuchen.\");\n } finally{\n setIsProcessing(false);\n }\n };\n const handleSave = async ()=>{\n if (!analysisResult || !previewUrl) return;\n setIsSaving(true);\n setError(null);\n try {\n // Get current user (simple check for now, can be improved with Auth)\n const { data: { user } } = await supabase.auth.getUser();\n if (!user) {\n throw new Error(\"Bitte melde dich an, um Flaschen zu speichern.\");\n }\n const response = await (0,_services_save_bottle__WEBPACK_IMPORTED_MODULE_4__.saveBottle)(analysisResult, previewUrl, user.id);\n if (response.success) {\n setPreviewUrl(null);\n setAnalysisResult(null);\n if (onSaveComplete) onSaveComplete();\n // Optionale Erfolgsmeldung oder Redirect\n } else {\n setError(response.error || \"Speichern fehlgeschlagen.\");\n }\n } catch (err) {\n console.error(\"Save failed:\", err);\n setError(err instanceof Error ? err.message : \"Speichern fehlgeschlagen.\");\n } finally{\n setIsSaving(false);\n }\n };\n const compressImage = (file)=>{\n return new Promise((resolve, reject)=>{\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (event)=>{\n var _event_target;\n const img = new Image();\n img.src = (_event_target = event.target) === null || _event_target === void 0 ? void 0 : _event_target.result;\n img.onload = ()=>{\n const canvas = document.createElement(\"canvas\");\n const MAX_WIDTH = 1024;\n let width = img.width;\n let height = img.height;\n if (width > MAX_WIDTH) {\n height = height * MAX_WIDTH / width;\n width = MAX_WIDTH;\n }\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Canvas context not available\"));\n return;\n }\n ctx.drawImage(img, 0, 0, width, height);\n const base64 = canvas.toDataURL(\"image/jpeg\", 0.8);\n resolve(base64);\n };\n img.onerror = reject;\n };\n reader.onerror = reject;\n });\n };\n const triggerUpload = ()=>{\n var _fileInputRef_current;\n (_fileInputRef_current = fileInputRef.current) === null || _fileInputRef_current === void 0 ? void 0 : _fileInputRef_current.click();\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-6 w-full max-w-md mx-auto p-6 bg-white dark:bg-zinc-900 rounded-3xl shadow-2xl border border-zinc-200 dark:border-zinc-800 transition-all hover:shadow-whisky-amber/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl font-bold text-zinc-800 dark:text-zinc-100 italic\",\n children: \"Magic Shot\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 149,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative group cursor-pointer w-full aspect-square rounded-2xl border-2 border-dashed border-zinc-300 dark:border-zinc-700 overflow-hidden flex items-center justify-center bg-zinc-50 dark:bg-zinc-800/50 hover:border-amber-500 transition-colors\",\n onClick: triggerUpload,\n children: [\n previewUrl ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: previewUrl,\n alt: \"Preview\",\n className: \"w-full h-full object-cover\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 156,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-2 text-zinc-400 group-hover:text-amber-500 transition-colors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n size: 48,\n strokeWidth: 1.5\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 159,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-medium\",\n children: \"Flasche scannen\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 160,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 158,\n columnNumber: 21\n }, this),\n isProcessing && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-12 w-12 border-b-2 border-white\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 166,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 165,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 151,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"file\",\n accept: \"image/*\",\n capture: \"environment\",\n ref: fileInputRef,\n onChange: handleCapture,\n className: \"hidden\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 171,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: isQueued ? ()=>setPreviewUrl(null) : previewUrl && analysisResult ? handleSave : triggerUpload,\n disabled: isProcessing || isSaving,\n className: \"w-full py-4 px-6 bg-amber-600 hover:bg-amber-700 text-white rounded-xl font-semibold flex items-center justify-center gap-2 transition-all active:scale-[0.98] shadow-lg shadow-amber-600/20 disabled:opacity-50\",\n children: isSaving ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-5 w-5 border-b-2 border-white\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 187,\n columnNumber: 25\n }, this),\n \"Wird gespeichert...\"\n ]\n }, void 0, true) : isQueued ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 192,\n columnNumber: 25\n }, this),\n \"N\\xe4chste Flasche\"\n ]\n }, void 0, true) : previewUrl && analysisResult ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 197,\n columnNumber: 25\n }, this),\n \"Im Vault speichern\"\n ]\n }, void 0, true) : previewUrl ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 202,\n columnNumber: 25\n }, this),\n \"Neu aufnehmen\"\n ]\n }, void 0, true) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 207,\n columnNumber: 25\n }, this),\n \"Kamera \\xf6ffnen\"\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 180,\n columnNumber: 13\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 text-red-500 text-sm bg-red-50 dark:bg-red-900/10 p-3 rounded-lg w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n size: 16\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 215,\n columnNumber: 21\n }, this),\n error\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 214,\n columnNumber: 17\n }, this),\n isQueued && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 text-purple-500 text-sm bg-purple-50 dark:bg-purple-900/10 p-4 rounded-xl w-full border border-purple-100 dark:border-purple-800/30 font-medium\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n size: 16\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 222,\n columnNumber: 21\n }, this),\n \"Offline! Foto wurde gemerkt wird automatisch analysiert, sobald du wieder Netz hast. \\uD83D\\uDCE1\"\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 221,\n columnNumber: 17\n }, this),\n previewUrl && !isProcessing && !error && !isQueued && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-3 w-full animate-in fade-in slide-in-from-top-4 duration-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 text-green-500 text-sm bg-green-50 dark:bg-green-900/10 p-3 rounded-lg w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: 16\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 230,\n columnNumber: 25\n }, this),\n \"Bild erfolgreich analysiert\"\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 229,\n columnNumber: 21\n }, this),\n analysisResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 bg-zinc-50 dark:bg-zinc-800/50 rounded-2xl border border-zinc-200 dark:border-zinc-700\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 mb-3 text-amber-600 dark:text-amber-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n size: 18\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 237,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-bold text-sm uppercase tracking-wider\",\n children: \"Ergebnisse\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 238,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 236,\n columnNumber: 29\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 className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"Name:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 242,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.name || \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 243,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 241,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"Distille:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 246,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.distillery || \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 247,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 245,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"Kategorie:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 250,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.category || \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 251,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 249,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"ABV:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 254,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.abv ? \"\".concat(analysisResult.abv, \"%\") : \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 255,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 253,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 240,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 235,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 228,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 148,\n columnNumber: 9\n }, this);\n}\n_s(CameraCapture, \"7XvkPg/F124RCy/D3OnKuj3w5lE=\");\n_c = CameraCapture;\nvar _c;\n$RefreshReg$(_c, \"CameraCapture\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9jb21wb25lbnRzL0NhbWVyYUNhcHR1cmUudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWdEO0FBQ21DO0FBQ1A7QUFDbEI7QUFDTjtBQUVDO0FBQ2pCO0FBUXJCLFNBQVNjLGNBQWMsS0FBMkU7UUFBM0UsRUFBRUMsZUFBZSxFQUFFQyxrQkFBa0IsRUFBRUMsY0FBYyxFQUFzQixHQUEzRTs7SUFDbEMsTUFBTUMsV0FBV1YsMEZBQTJCQTtJQUM1QyxNQUFNVyxlQUFlbEIsNkNBQU1BLENBQW1CO0lBQzlDLE1BQU0sQ0FBQ21CLGNBQWNDLGdCQUFnQixHQUFHbkIsK0NBQVFBLENBQUM7SUFDakQsTUFBTSxDQUFDb0IsVUFBVUMsWUFBWSxHQUFHckIsK0NBQVFBLENBQUM7SUFDekMsTUFBTSxDQUFDc0IsWUFBWUMsY0FBYyxHQUFHdkIsK0NBQVFBLENBQWdCO0lBQzVELE1BQU0sQ0FBQ3dCLE9BQU9DLFNBQVMsR0FBR3pCLCtDQUFRQSxDQUFnQjtJQUNsRCxNQUFNLENBQUMwQixnQkFBZ0JDLGtCQUFrQixHQUFHM0IsK0NBQVFBLENBQXdCO0lBQzVFLE1BQU0sQ0FBQzRCLFVBQVVDLFlBQVksR0FBRzdCLCtDQUFRQSxDQUFDO0lBRXpDLE1BQU04QixnQkFBZ0IsT0FBT0M7WUFDWkE7UUFBYixNQUFNQyxRQUFPRCxzQkFBQUEsTUFBTUUsTUFBTSxDQUFDQyxLQUFLLGNBQWxCSCwwQ0FBQUEsbUJBQW9CLENBQUMsRUFBRTtRQUNwQyxJQUFJLENBQUNDLE1BQU07UUFFWGIsZ0JBQWdCO1FBQ2hCTSxTQUFTO1FBQ1RFLGtCQUFrQjtRQUNsQkUsWUFBWTtRQUVaLElBQUk7WUFDQSxNQUFNTSxtQkFBbUIsTUFBTUMsY0FBY0o7WUFDN0NULGNBQWNZO1lBRWQsSUFBSXRCLGlCQUFpQjtnQkFDakJBLGdCQUFnQnNCO1lBQ3BCO1lBRUEsbUJBQW1CO1lBQ25CLElBQUksQ0FBQ0UsVUFBVUMsTUFBTSxFQUFF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UUFBUSxJQUFJOzs7Ozs7Ozs7Ozs7a0RBRWhFLDhEQUFDbEI7d0NBQUlDLFdBQVU7OzBEQUNYLDhEQUFDTTtnREFBS04sV0FBVTswREFBZ0I7Ozs7OzswREFDaEMsOERBQUNNO2dEQUFLTixXQUFVOzBEQUFpQnpELGVBQWUyRSxHQUFHLEdBQUcsR0FBc0IsT0FBbkIzRSxlQUFlMkUsR0FBRyxFQUFDLE9BQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNySDtHQXRQd0J6RjtLQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9zcmMvY29tcG9uZW50cy9DYW1lcmFDYXB0dXJlLnRzeD8xYzM0Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDYW1lcmEsIFVwbG9hZCwgQ2hlY2tDaXJjbGUyLCBBbGVydENpcmNsZSwgU3BhcmtsZXMgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ2xpZW50Q29tcG9uZW50Q2xpZW50IH0gZnJvbSAnQHN1cGFiYXNlL2F1dGgtaGVscGVycy1uZXh0anMnO1xuaW1wb3J0IHsgYW5hbHl6ZUJvdHRsZSB9IGZyb20gJ0Avc2VydmljZXMvYW5hbHl6ZS1ib3R0bGUnO1xuaW1wb3J0IHsgc2F2ZUJvdHRsZSB9IGZyb20gJ0Avc2VydmljZXMvc2F2ZS1ib3R0bGUnO1xuaW1wb3J0IHsgQm90dGxlTWV0YWRhdGEgfSBmcm9tICdAL3R5cGVzL3doaXNreSc7XG5pbXBvcnQgeyBzYXZlUGVuZGluZ0JvdHRsZSB9IGZyb20gJ0AvbGliL29mZmxpbmUtZGInO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5cbmludGVyZmFjZSBDYW1lcmFDYXB0dXJlUHJvcHMge1xuICAgIG9uSW1hZ2VDYXB0dXJlZD86IChiYXNlNjRJbWFnZTogc3RyaW5nKSA9PiB2b2lkO1xuICAgIG9uQW5hbHlzaXNDb21wbGV0ZT86IChkYXRhOiBCb3R0bGVNZXRhZGF0YSkgPT4gdm9pZDtcbiAgICBvblNhdmVDb21wbGV0ZT86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENhbWVyYUNhcHR1cmUoeyBvbkltYWdlQ2FwdHVyZWQsIG9uQW5hbHlzaXNDb21wbGV0ZSwgb25TYXZlQ29tcGxldGUgfTogQ2FtZXJhQ2FwdHVyZVByb3BzKSB7XG4gICAgY29uc3Qgc3VwYWJhc2UgPSBjcmVhdGVDbGllbnRDb21wb25lbnRDbGllbnQoKTtcbiAgICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW2lzUHJvY2Vzc2luZywgc2V0SXNQcm9jZXNzaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNTYXZpbmcsIHNldElzU2F2aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbcHJldmlld1VybCwgc2V0UHJldmlld1VybF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFthbmFseXNpc1Jlc3VsdCwgc2V0QW5hbHlzaXNSZXN1bHRdID0gdXNlU3RhdGU8Qm90dGxlTWV0YWRhdGEgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbaXNRdWV1ZWQsIHNldElzUXVldWVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IGhhbmRsZUNhcHR1cmUgPSBhc3luYyAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXM/LlswXTtcbiAgICAgICAgaWYgKCFmaWxlKSByZXR1cm47XG5cbiAgICAgICAgc2V0SXNQcm9jZXNzaW5nKHRydWUpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcbiAgICAgICAgc2V0QW5hbHlzaXNSZXN1bHQobnVsbCk7XG4gICAgICAgIHNldElzUXVldWVkKGZhbHNlKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29tcHJlc3NlZEJhc2U2NCA9IGF3YWl0IGNvbXByZXNzSW1hZ2UoZmlsZSk7XG4gICAgICAgICAgICBzZXRQcmV2aWV3VXJsKGNvbXByZXNzZWRCYXNlNjQpO1xuXG4gICAgICAgICAgICBpZiAob25JbWFnZUNhcHR1cmVkKSB7XG4gICAgICAgICAgICAgICAgb25JbWFnZUNhcHR1cmVkKGNvbXByZXNzZWRCYXNlNjQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBPZmZsaW5lXG4gICAgICAgICAgICBpZiAoIW5hdmlnYXRvci5vbkxpbmUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnT2ZmbGluZSBkZXRlY3RlZC4gUXVldWluZyBpbWFnZS4uLicpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHNhdmVQZW5kaW5nQm90dGxlKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHV1aWR2NCgpLFxuICAgICAgICAgICAgICAgICAgICBpbWFnZUJhc2U2NDogY29tcHJlc3NlZEJhc2U2NCxcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNldElzUXVldWVkKHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhbmFseXplQm90dGxlKGNvbXByZXNzZWRCYXNlNjQpO1xuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgICAgICAgc2V0QW5hbHlzaXNSZXN1bHQocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgaWYgKG9uQW5hbHlzaXNDb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgICBvbkFuYWx5c2lzQ29tcGxldGUocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRFcnJvcihyZXNwb25zZS5lcnJvciB8fCAnQW5hbHlzZSBmZWhsZ2VzY2hsYWdlbi4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdQcm9jZXNzaW5nIGZhaWxlZDonLCBlcnIpO1xuICAgICAgICAgICAgc2V0RXJyb3IoJ1ZlcmFyYmVpdHVuZyBmZWhsZ2VzY2hsYWdlbi4gQml0dGUgZXJuZXV0IHZlcnN1Y2hlbi4nKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHNldElzUHJvY2Vzc2luZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2F2ZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKCFhbmFseXNpc1Jlc3VsdCB8fCAhcHJldmlld1VybCkgcmV0dXJuO1xuXG4gICAgICAgIHNldElzU2F2aW5nKHRydWUpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gR2V0IGN1cnJlbnQgdXNlciAoc2ltcGxlIGNoZWNrIGZvciBub3csIGNhbiBiZSBpbXByb3ZlZCB3aXRoIEF1dGgpXG4gICAgICAgICAgICBjb25zdCB7IGRhdGE6IHsgdXNlciB9IH0gPSBhd2FpdCBzdXBhYmFzZS5hdXRoLmdldFVzZXIoKTtcbiAgICAgICAgICAgIGlmICghdXNlcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQml0dGUgbWVsZGUgZGljaCBhbiwgdW0gRmxhc2NoZW4genUgc3BlaWNoZXJuLicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNhdmVCb3R0bGUoYW5hbHlzaXNSZXN1bHQsIHByZXZpZXdVcmwsIHVzZXIuaWQpO1xuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHNldFByZXZpZXdVcmwobnVsbCk7XG4gICAgICAgICAgICAgICAgc2V0QW5hbHlzaXNSZXN1bHQobnVsbCk7XG4gICAgICAgICAgICAgICAgaWYgKG9uU2F2ZUNvbXBsZXRlKSBvblNhdmVDb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIC8vIE9wdGlvbmFsZSBFcmZvbGdzbWVsZHVuZyBvZGVyIFJlZGlyZWN0XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldEVycm9yKHJlc3BvbnNlLmVycm9yIHx8ICdTcGVpY2hlcm4gZmVobGdlc2NobGFnZW4uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignU2F2ZSBmYWlsZWQ6JywgZXJyKTtcbiAgICAgICAgICAgIHNldEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnU3BlaWNoZXJuIGZlaGxnZXNjaGxhZ2VuLicpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgc2V0SXNTYXZpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGNvbXByZXNzSW1hZ2UgPSAoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgICAgICAgaW1nLnNyYyA9IGV2ZW50LnRhcmdldD8ucmVzdWx0IGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgTUFYX1dJRFRIID0gMTAyNDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHdpZHRoID0gaW1nLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaGVpZ2h0ID0gaW1nLmhlaWdodDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGggPiBNQVhfV0lEVEgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCA9IChoZWlnaHQgKiBNQVhfV0lEVEgpIC8gd2lkdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IE1BWF9XSURUSDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWN0eCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQ2FudmFzIGNvbnRleHQgbm90IGF2YWlsYWJsZScpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFzZTY0ID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDAuOCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoYmFzZTY0KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGltZy5vbmVycm9yID0gcmVqZWN0O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gcmVqZWN0O1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgdHJpZ2dlclVwbG9hZCA9ICgpID0+IHtcbiAgICAgICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKCk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTYgdy1mdWxsIG1heC13LW1kIG14LWF1dG8gcC02IGJnLXdoaXRlIGRhcms6YmctemluYy05MDAgcm91bmRlZC0zeGwgc2hhZG93LTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtMjAwIGRhcms6Ym9yZGVyLXppbmMtODAwIHRyYW5zaXRpb24tYWxsIGhvdmVyOnNoYWRvdy13aGlza3ktYW1iZXIvMjBcIj5cbiAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC16aW5jLTgwMCBkYXJrOnRleHQtemluYy0xMDAgaXRhbGljXCI+TWFnaWMgU2hvdDwvaDI+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBncm91cCBjdXJzb3ItcG9pbnRlciB3LWZ1bGwgYXNwZWN0LXNxdWFyZSByb3VuZGVkLTJ4bCBib3JkZXItMiBib3JkZXItZGFzaGVkIGJvcmRlci16aW5jLTMwMCBkYXJrOmJvcmRlci16aW5jLTcwMCBvdmVyZmxvdy1oaWRkZW4gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctemluYy01MCBkYXJrOmJnLXppbmMtODAwLzUwIGhvdmVyOmJvcmRlci1hbWJlci01MDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RyaWdnZXJVcGxvYWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3ByZXZpZXdVcmwgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtwcmV2aWV3VXJsfSBhbHQ9XCJQcmV2aWV3XCIgY2xhc3NOYW1lPVwidy1mdWxsIGgtZnVsbCBvYmplY3QtY292ZXJcIiAvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC16aW5jLTQwMCBncm91cC1ob3Zlcjp0ZXh0LWFtYmVyLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPENhbWVyYSBzaXplPXs0OH0gc3Ryb2tlV2lkdGg9ezEuNX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW1cIj5GbGFzY2hlIHNjYW5uZW48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICB7aXNQcm9jZXNzaW5nICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzUwIGJhY2tkcm9wLWJsdXItc20gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluIHJvdW5kZWQtZnVsbCBoLTEyIHctMTIgYm9yZGVyLWItMiBib3JkZXItd2hpdGVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgYWNjZXB0PVwiaW1hZ2UvKlwiXG4gICAgICAgICAgICAgICAgY2FwdHVyZT1cImVudmlyb25tZW50XCJcbiAgICAgICAgICAgICAgICByZWY9e2ZpbGVJbnB1dFJlZn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2FwdHVyZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2lzUXVldWVkID8gKCkgPT4gc2V0UHJldmlld1VybChudWxsKSA6IChwcmV2aWV3VXJsICYmIGFuYWx5c2lzUmVzdWx0ID8gaGFuZGxlU2F2ZSA6IHRyaWdnZXJVcGxvYWQpfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc1Byb2Nlc3NpbmcgfHwgaXNTYXZpbmd9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHB5LTQgcHgtNiBiZy1hbWJlci02MDAgaG92ZXI6YmctYW1iZXItNzAwIHRleHQtd2hpdGUgcm91bmRlZC14bCBmb250LXNlbWlib2xkIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIHRyYW5zaXRpb24tYWxsIGFjdGl2ZTpzY2FsZS1bMC45OF0gc2hhZG93LWxnIHNoYWRvdy1hbWJlci02MDAvMjAgZGlzYWJsZWQ6b3BhY2l0eS01MFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2lzU2F2aW5nID8gKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGgtNSB3LTUgYm9yZGVyLWItMiBib3JkZXItd2hpdGVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFdpcmQgZ2VzcGVpY2hlcnQuLi5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKSA6IGlzUXVldWVkID8gKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlMiBzaXplPXsyMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIE7DpGNoc3RlIEZsYXNjaGVcbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKSA6IHByZXZpZXdVcmwgJiYgYW5hbHlzaXNSZXN1bHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGUyIHNpemU9ezIwfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW0gVmF1bHQgc3BlaWNoZXJuXG4gICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICkgOiBwcmV2aWV3VXJsID8gKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFVwbG9hZCBzaXplPXsyMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIE5ldSBhdWZuZWhtZW5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDYW1lcmEgc2l6ZT17MjB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICBLYW1lcmEgw7ZmZm5lblxuICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIHtlcnJvciAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXJlZC01MDAgdGV4dC1zbSBiZy1yZWQtNTAgZGFyazpiZy1yZWQtOTAwLzEwIHAtMyByb3VuZGVkLWxnIHctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8QWxlcnRDaXJjbGUgc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgIHtlcnJvcn1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHtpc1F1ZXVlZCAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXB1cnBsZS01MDAgdGV4dC1zbSBiZy1wdXJwbGUtNTAgZGFyazpiZy1wdXJwbGUtOTAwLzEwIHAtNCByb3VuZGVkLXhsIHctZnVsbCBib3JkZXIgYm9yZGVyLXB1cnBsZS0xMDAgZGFyazpib3JkZXItcHVycGxlLTgwMC8zMCBmb250LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgICAgICA8U3BhcmtsZXMgc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgIE9mZmxpbmUhIEZvdG8gd3VyZGUgZ2VtZXJrdCDigJMgd2lyZCBhdXRvbWF0aXNjaCBhbmFseXNpZXJ0LCBzb2JhbGQgZHUgd2llZGVyIE5ldHogaGFzdC4g8J+ToVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAge3ByZXZpZXdVcmwgJiYgIWlzUHJvY2Vzc2luZyAmJiAhZXJyb3IgJiYgIWlzUXVldWVkICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTMgdy1mdWxsIGFuaW1hdGUtaW4gZmFkZS1pbiBzbGlkZS1pbi1mcm9tLXRvcC00IGR1cmF0aW9uLTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtZ3JlZW4tNTAwIHRleHQtc20gYmctZ3JlZW4tNTAgZGFyazpiZy1ncmVlbi05MDAvMTAgcC0zIHJvdW5kZWQtbGcgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGUyIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgQmlsZCBlcmZvbGdyZWljaCBhbmFseXNpZXJ0XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIHthbmFseXNpc1Jlc3VsdCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNCBiZy16aW5jLTUwIGRhcms6YmctemluYy04MDAvNTAgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci16aW5jLTIwMCBkYXJrOmJvcmRlci16aW5jLTcwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItMyB0ZXh0LWFtYmVyLTYwMCBkYXJrOnRleHQtYW1iZXItNTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTcGFya2xlcyBzaXplPXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1ib2xkIHRleHQtc20gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyXCI+RXJnZWJuaXNzZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtemluYy01MDBcIj5OYW1lOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57YW5hbHlzaXNSZXN1bHQubmFtZSB8fCAnLSd9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXppbmMtNTAwXCI+RGlzdGlsbGU6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZFwiPnthbmFseXNpc1Jlc3VsdC5kaXN0aWxsZXJ5IHx8ICctJ308L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtemluYy01MDBcIj5LYXRlZ29yaWU6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZFwiPnthbmFseXNpc1Jlc3VsdC5jYXRlZ29yeSB8fCAnLSd9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXppbmMtNTAwXCI+QUJWOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57YW5hbHlzaXNSZXN1bHQuYWJ2ID8gYCR7YW5hbHlzaXNSZXN1bHQuYWJ2fSVgIDogJy0nfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNhbWVyYSIsIlVwbG9hZCIsIkNoZWNrQ2lyY2xlMiIsIkFsZXJ0Q2lyY2xlIiwiU3BhcmtsZXMiLCJjcmVhdGVDbGllbnRDb21wb25lbnRDbGllbnQiLCJhbmFseXplQm90dGxlIiwic2F2ZUJvdHRsZSIsInNhdmVQZW5kaW5nQm90dGxlIiwidjQiLCJ1dWlkdjQiLCJDYW1lcmFDYXB0dXJlIiwib25JbWFnZUNhcHR1cmVkIiwib25BbmFseXNpc0NvbXBsZXRlIiwib25TYXZlQ29tcGxldGUiLCJzdXBhYmFzZSIsImZpbGVJbnB1dFJlZiIsImlzUHJvY2Vzc2luZyIsInNldElzUHJvY2Vzc2luZyIsImlzU2F2aW5nIiwic2V0SXNTYXZpbmciLCJwcmV2aWV3VXJsIiwic2V0UHJldmlld1VybCIsImVycm9yIiwic2V0RXJyb3IiLCJhbmFseXNpc1Jlc3VsdCIsInNldEFuYWx5c2lzUmVzdWx0IiwiaXNRdWV1ZWQiLCJzZXRJc1F1ZXVlZCIsImhhbmRsZUNhcHR1cmUiLCJldmVudCIsImZpbGUiLCJ0YXJnZXQiLCJmaWxlcyIsImNvbXByZXNzZWRCYXNlNjQiLCJjb21wcmVzc0ltYWdlIiwibmF2aWdhdG9yIiwib25MaW5lIiwiY29uc29sZSIsImxvZyIsImlkIiwiaW1hZ2VCYXNlNjQiLCJ0aW1lc3RhbXAiLCJEYXRlIiwibm93IiwicmVzcG9uc2UiLCJzdWNjZXNzIiwiZGF0YSIsImVyciIsImhhbmRsZVNhdmUiLCJ1c2VyIiwiYXV0aCIsImdldFVzZXIiLCJFcnJvciIsIm1lc3NhZ2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJyZWFkQXNEYXRhVVJMIiwib25sb2FkIiwiaW1nIiwiSW1hZ2UiLCJzcmMiLCJyZXN1bHQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJNQVhfV0lEVEgiLCJ3aWR0aCIsImhlaWdodCIsImN0eCIsImdldENvbnRleHQiLCJkcmF3SW1hZ2UiLCJiYXNlNjQiLCJ0b0RhdGFVUkwiLCJvbmVycm9yIiwidHJpZ2dlclVwbG9hZCIsImN1cnJlbnQiLCJjbGljayIsImRpdiIsImNsYXNzTmFtZSIsImgyIiwib25DbGljayIsImFsdCIsInNpemUiLCJzdHJva2VXaWR0aCIsInNwYW4iLCJpbnB1dCIsInR5cGUiLCJhY2NlcHQiLCJjYXB0dXJlIiwicmVmIiwib25DaGFuZ2UiLCJidXR0b24iLCJkaXNhYmxlZCIsIm5hbWUiLCJkaXN0aWxsZXJ5IiwiY2F0ZWdvcnkiLCJhYnYiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/components/CameraCapture.tsx\n"));
/***/ })
});