22 lines
171 KiB
JavaScript
22 lines
171 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/dashboard/calendar/page",{
|
||
|
||
/***/ "(app-pages-browser)/./src/components/calendar/SlotActionModal.tsx":
|
||
/*!*****************************************************!*\
|
||
!*** ./src/components/calendar/SlotActionModal.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 */ SlotActionModal: () => (/* binding */ SlotActionModal)\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 react_hook_form__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! react-hook-form */ \"(app-pages-browser)/./node_modules/react-hook-form/dist/index.esm.mjs\");\n/* harmony import */ var _hookform_resolvers_zod__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @hookform/resolvers/zod */ \"(app-pages-browser)/./node_modules/@hookform/resolvers/zod/dist/zod.mjs\");\n/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! zod */ \"(app-pages-browser)/./node_modules/zod/v4/classic/schemas.js\");\n/* harmony import */ var sonner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sonner */ \"(app-pages-browser)/./node_modules/sonner/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! __barrel_optimize__?names=CalendarDays,CalendarPlus,Clock,Loader2,Lock,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calendar-plus.mjs\");\n/* harmony import */ var _barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! __barrel_optimize__?names=CalendarDays,CalendarPlus,Clock,Loader2,Lock,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/lock.mjs\");\n/* harmony import */ var _barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! __barrel_optimize__?names=CalendarDays,CalendarPlus,Clock,Loader2,Lock,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.mjs\");\n/* harmony import */ var _barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! __barrel_optimize__?names=CalendarDays,CalendarPlus,Clock,Loader2,Lock,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.mjs\");\n/* harmony import */ var _barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! __barrel_optimize__?names=CalendarDays,CalendarPlus,Clock,Loader2,Lock,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/calendar-days.mjs\");\n/* harmony import */ var _barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! __barrel_optimize__?names=CalendarDays,CalendarPlus,Clock,Loader2,Lock,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.mjs\");\n/* harmony import */ var date_fns_format__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! date-fns/format */ \"(app-pages-browser)/./node_modules/date-fns/format.js\");\n/* harmony import */ var date_fns_startOfDay__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! date-fns/startOfDay */ \"(app-pages-browser)/./node_modules/date-fns/startOfDay.js\");\n/* harmony import */ var date_fns_setHours__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! date-fns/setHours */ \"(app-pages-browser)/./node_modules/date-fns/setHours.js\");\n/* harmony import */ var date_fns_setMinutes__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! date-fns/setMinutes */ \"(app-pages-browser)/./node_modules/date-fns/setMinutes.js\");\n/* harmony import */ var date_fns_locale_es__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! date-fns/locale/es */ \"(app-pages-browser)/./node_modules/date-fns/locale/es.js\");\n/* harmony import */ var react_day_picker__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! react-day-picker */ \"(app-pages-browser)/./node_modules/react-day-picker/dist/esm/DayPicker.js\");\n/* harmony import */ var _utils_supabase_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/utils/supabase/client */ \"(app-pages-browser)/./src/utils/supabase/client.ts\");\n/* harmony import */ var _lib_stores_uiStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/stores/uiStore */ \"(app-pages-browser)/./src/lib/stores/uiStore.ts\");\n/* harmony import */ var _components_ui_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/dialog */ \"(app-pages-browser)/./src/components/ui/dialog.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./src/components/ui/button.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./src/components/ui/input.tsx\");\n/* harmony import */ var _components_ui_label__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/components/ui/label */ \"(app-pages-browser)/./src/components/ui/label.tsx\");\n/* harmony import */ var _components_ui_select__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/components/ui/select */ \"(app-pages-browser)/./src/components/ui/select.tsx\");\n/* harmony import */ var _components_ui_tabs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/components/ui/tabs */ \"(app-pages-browser)/./src/components/ui/tabs.tsx\");\n/* __next_internal_client_entry_do_not_use__ SlotActionModal auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// ─── Schemas ────────────────────────────────────────────────────────────────\nconst blockSchema = zod__WEBPACK_IMPORTED_MODULE_12__.object({\n dates: zod__WEBPACK_IMPORTED_MODULE_12__.array(zod__WEBPACK_IMPORTED_MODULE_12__.date()).min(1, \"Selecciona al menos un día\"),\n startTime: zod__WEBPACK_IMPORTED_MODULE_12__.string().min(1, \"Hora de inicio requerida\"),\n endTime: zod__WEBPACK_IMPORTED_MODULE_12__.string().min(1, \"Hora de fin requerida\"),\n blockType: zod__WEBPACK_IMPORTED_MODULE_12__[\"enum\"]([\n \"surgery\",\n \"admin\",\n \"vacation\",\n \"event\"\n ]),\n notes: zod__WEBPACK_IMPORTED_MODULE_12__.string().optional()\n}).refine((d)=>{\n if (!d.startTime || !d.endTime) return true;\n return d.startTime < d.endTime;\n}, {\n message: \"La hora de fin debe ser posterior a la de inicio\",\n path: [\n \"endTime\"\n ]\n});\nconst appointmentSchema = zod__WEBPACK_IMPORTED_MODULE_12__.object({\n patientSearch: zod__WEBPACK_IMPORTED_MODULE_12__.string(),\n patientId: zod__WEBPACK_IMPORTED_MODULE_12__.string().min(1, \"Selecciona un paciente\"),\n procedureId: zod__WEBPACK_IMPORTED_MODULE_12__.string().min(1, \"Selecciona un procedimiento\"),\n startTime: zod__WEBPACK_IMPORTED_MODULE_12__.string().min(1, \"Hora de inicio requerida\"),\n endTime: zod__WEBPACK_IMPORTED_MODULE_12__.string().min(1, \"Hora de fin requerida\"),\n channel: zod__WEBPACK_IMPORTED_MODULE_12__[\"enum\"]([\n \"whatsapp\",\n \"messenger\",\n \"instagram\",\n \"tiktok\",\n \"web\",\n \"manual\"\n ])\n}).refine((d)=>d.patientId.length > 0 && d.patientId !== \"\", {\n message: \"Selecciona un paciente válido\",\n path: [\n \"patientId\"\n ]\n}).refine((d)=>{\n if (!d.startTime || !d.endTime) return true;\n return d.startTime < d.endTime;\n}, {\n message: \"La hora de fin debe ser posterior a la de inicio\",\n path: [\n \"endTime\"\n ]\n});\n/**\n * Modal de acción sobre un slot del calendario.\n * Permite: bloquear espacio o agendar cita manual (RF-09.1.2 / RF-09.1.5).\n */ function SlotActionModal(param) {\n let { onSuccess } = param;\n _s();\n const supabase = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"SlotActionModal.useMemo[supabase]\": ()=>(0,_utils_supabase_client__WEBPACK_IMPORTED_MODULE_4__.createClient)()\n }[\"SlotActionModal.useMemo[supabase]\"], []);\n const activeModal = (0,_lib_stores_uiStore__WEBPACK_IMPORTED_MODULE_5__.useUIStore)({\n \"SlotActionModal.useUIStore[activeModal]\": (s)=>s.activeModal\n }[\"SlotActionModal.useUIStore[activeModal]\"]);\n const modalPayload = (0,_lib_stores_uiStore__WEBPACK_IMPORTED_MODULE_5__.useUIStore)({\n \"SlotActionModal.useUIStore[modalPayload]\": (s)=>s.modalPayload\n }[\"SlotActionModal.useUIStore[modalPayload]\"]);\n const closeModal = (0,_lib_stores_uiStore__WEBPACK_IMPORTED_MODULE_5__.useUIStore)({\n \"SlotActionModal.useUIStore[closeModal]\": (s)=>s.closeModal\n }[\"SlotActionModal.useUIStore[closeModal]\"]);\n const isOpen = activeModal === \"slotAction\";\n const [patients, setPatients] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [procedures, setProcedures] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [searchValue, setSearchValue] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [isSearching, setIsSearching] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [calendarMonth, setCalendarMonth] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Date());\n const [showCalendar, setShowCalendar] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Extract initial date range from FullCalendar selection\n const initialDates = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"SlotActionModal.useMemo[initialDates]\": ()=>{\n if (!modalPayload) return [];\n const { start, end } = modalPayload;\n if (!start || !end) return [];\n const startDate = (0,date_fns_startOfDay__WEBPACK_IMPORTED_MODULE_13__.startOfDay)(new Date(start));\n const endDate = (0,date_fns_startOfDay__WEBPACK_IMPORTED_MODULE_13__.startOfDay)(new Date(end));\n // end is exclusive in FullCalendar; subtract 1 day for multi-day selections\n const adjustedEnd = new Date(endDate.getTime() - 86400000);\n if (adjustedEnd.getTime() <= startDate.getTime()) {\n return [\n startDate\n ];\n }\n const dates = [];\n let current = startDate;\n while(current <= adjustedEnd){\n dates.push(new Date(current));\n current = new Date(current.getTime() + 86400000);\n }\n return dates;\n }\n }[\"SlotActionModal.useMemo[initialDates]\"], [\n modalPayload\n ]);\n const initialStartTime = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"SlotActionModal.useMemo[initialStartTime]\": ()=>{\n if (!modalPayload) return \"08:00\";\n const { start } = modalPayload;\n if (!start) return \"08:00\";\n const time = (0,date_fns_format__WEBPACK_IMPORTED_MODULE_14__.format)(new Date(start), \"HH:mm\");\n return time === \"00:00\" ? \"08:00\" : time;\n }\n }[\"SlotActionModal.useMemo[initialStartTime]\"], [\n modalPayload\n ]);\n const initialEndTime = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"SlotActionModal.useMemo[initialEndTime]\": ()=>{\n if (!modalPayload) return \"09:00\";\n const { end, start } = modalPayload;\n if (!end) return \"09:00\";\n const endTime = (0,date_fns_format__WEBPACK_IMPORTED_MODULE_14__.format)(new Date(end), \"HH:mm\");\n if (endTime === \"00:00\") {\n const st = start ? (0,date_fns_format__WEBPACK_IMPORTED_MODULE_14__.format)(new Date(start), \"HH:mm\") : \"08:00\";\n if (st === \"00:00\") return \"09:00\";\n const [h, m] = st.split(\":\").map(Number);\n const totalMinutes = h * 60 + m + 60;\n const newH = Math.floor(totalMinutes / 60) % 24;\n const newM = totalMinutes % 60;\n return \"\".concat(String(newH).padStart(2, \"0\"), \":\").concat(String(newM).padStart(2, \"0\"));\n }\n return endTime;\n }\n }[\"SlotActionModal.useMemo[initialEndTime]\"], [\n modalPayload\n ]);\n // Block form\n const blockForm = (0,react_hook_form__WEBPACK_IMPORTED_MODULE_15__.useForm)({\n resolver: (0,_hookform_resolvers_zod__WEBPACK_IMPORTED_MODULE_2__.zodResolver)(blockSchema),\n defaultValues: {\n dates: initialDates,\n startTime: initialStartTime,\n endTime: initialEndTime,\n blockType: \"admin\",\n notes: \"\"\n }\n });\n const selectedDates = blockForm.watch(\"dates\");\n const selectedStartTime = blockForm.watch(\"startTime\");\n const selectedEndTime = blockForm.watch(\"endTime\");\n // Load procedures on mount + reset form on open\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"SlotActionModal.useEffect\": ()=>{\n if (isOpen) {\n const load = {\n \"SlotActionModal.useEffect.load\": async ()=>{\n const { data } = await supabase.from(\"procedures\").select(\"id, name, duration_min\").eq(\"is_active\", true).order(\"name\");\n setProcedures(data !== null && data !== void 0 ? data : []);\n }\n }[\"SlotActionModal.useEffect.load\"];\n void load();\n // Reset form state\n apptForm.reset({\n patientSearch: \"\",\n patientId: \"\",\n procedureId: \"\",\n startTime: initialStartTime,\n endTime: initialEndTime,\n channel: \"web\"\n });\n blockForm.reset({\n dates: initialDates,\n startTime: initialStartTime,\n endTime: initialEndTime,\n blockType: \"admin\",\n notes: \"\"\n });\n setSearchValue(\"\");\n setPatients([]);\n setShowCalendar(false);\n if (initialDates.length > 0) {\n setCalendarMonth(initialDates[0]);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }\n }[\"SlotActionModal.useEffect\"], [\n isOpen\n ]);\n const searchTimeoutRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n // Search patients with debounce\n const searchPatients = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"SlotActionModal.useCallback[searchPatients]\": async (query)=>{\n const trimmed = query.trim();\n if (!trimmed) {\n setPatients([]);\n return;\n }\n setIsSearching(true);\n const escaped = trimmed.replace(/[%_]/g, \"\\\\$&\");\n const { data } = await supabase.from(\"patients\").select(\"id, name, phone\").or(\"name.ilike.%\".concat(escaped, \"%,phone.ilike.%\").concat(escaped, \"%\")).limit(5);\n setPatients(data !== null && data !== void 0 ? data : []);\n setIsSearching(false);\n }\n }[\"SlotActionModal.useCallback[searchPatients]\"], [\n supabase\n ]);\n const removeDate = (dateToRemove)=>{\n const current = blockForm.getValues(\"dates\");\n blockForm.setValue(\"dates\", current.filter((d)=>d.toDateString() !== dateToRemove.toDateString()), {\n shouldValidate: true,\n shouldDirty: true\n });\n };\n const onBlock = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"SlotActionModal.useCallback[onBlock]\": async (values)=>{\n const [startH, startM] = values.startTime.split(\":\").map(Number);\n const [endH, endM] = values.endTime.split(\":\").map(Number);\n const slots = values.dates.map({\n \"SlotActionModal.useCallback[onBlock].slots\": (date)=>{\n const startAt = (0,date_fns_setMinutes__WEBPACK_IMPORTED_MODULE_16__.setMinutes)((0,date_fns_setHours__WEBPACK_IMPORTED_MODULE_17__.setHours)((0,date_fns_startOfDay__WEBPACK_IMPORTED_MODULE_13__.startOfDay)(date), startH), startM);\n const endAt = (0,date_fns_setMinutes__WEBPACK_IMPORTED_MODULE_16__.setMinutes)((0,date_fns_setHours__WEBPACK_IMPORTED_MODULE_17__.setHours)((0,date_fns_startOfDay__WEBPACK_IMPORTED_MODULE_13__.startOfDay)(date), endH), endM);\n return {\n start_at: startAt.toISOString(),\n end_at: endAt.toISOString(),\n block_type: values.blockType,\n status: \"blocked\"\n };\n }\n }[\"SlotActionModal.useCallback[onBlock].slots\"]);\n const { error } = await supabase.from(\"slots\").insert(slots);\n if (error) {\n sonner__WEBPACK_IMPORTED_MODULE_3__.toast.error(\"Error al bloquear los espacios.\");\n return;\n }\n sonner__WEBPACK_IMPORTED_MODULE_3__.toast.success(\"\".concat(slots.length, \" espacio(s) bloqueado(s): \").concat(values.blockType));\n closeModal();\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();\n }\n }[\"SlotActionModal.useCallback[onBlock]\"], [\n closeModal,\n onSuccess,\n supabase\n ]);\n // Appointment form\n const apptForm = (0,react_hook_form__WEBPACK_IMPORTED_MODULE_15__.useForm)({\n resolver: (0,_hookform_resolvers_zod__WEBPACK_IMPORTED_MODULE_2__.zodResolver)(appointmentSchema),\n defaultValues: {\n patientSearch: \"\",\n patientId: \"\",\n procedureId: \"\",\n startTime: initialStartTime,\n endTime: initialEndTime,\n channel: \"web\"\n },\n mode: \"onChange\"\n });\n const onAppointment = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"SlotActionModal.useCallback[onAppointment]\": async (values)=>{\n const { start } = modalPayload;\n const dateStr = (0,date_fns_format__WEBPACK_IMPORTED_MODULE_14__.format)(new Date(start), \"yyyy-MM-dd\");\n const [startH, startM] = values.startTime.split(\":\").map(Number);\n const [endH, endM] = values.endTime.split(\":\").map(Number);\n const startAt = new Date(\"\".concat(dateStr, \"T\").concat(String(startH).padStart(2, \"0\"), \":\").concat(String(startM).padStart(2, \"0\"), \":00\"));\n const endAt = new Date(\"\".concat(dateStr, \"T\").concat(String(endH).padStart(2, \"0\"), \":\").concat(String(endM).padStart(2, \"0\"), \":00\"));\n const { error } = await supabase.from(\"slots\").insert({\n start_at: startAt.toISOString(),\n end_at: endAt.toISOString(),\n block_type: \"appointment\",\n patient_id: values.patientId,\n procedure_id: values.procedureId,\n status: \"confirmed\",\n channel: values.channel\n });\n if (error) {\n sonner__WEBPACK_IMPORTED_MODULE_3__.toast.error(\"Error al crear la cita.\");\n return;\n }\n sonner__WEBPACK_IMPORTED_MODULE_3__.toast.success(\"Cita agendada correctamente.\");\n closeModal();\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();\n }\n }[\"SlotActionModal.useCallback[onAppointment]\"], [\n closeModal,\n modalPayload,\n onSuccess,\n supabase\n ]);\n var _apptForm_watch, _apptForm_watch1;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_6__.Dialog, {\n open: isOpen,\n onOpenChange: (open)=>!open && closeModal(),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_6__.DialogContent, {\n className: \"max-w-lg rounded-[18px]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_6__.DialogHeader, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_6__.DialogTitle, {\n className: \"font-heading text-lg font-semibold\",\n children: \"Acci\\xf3n sobre el espacio\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 302,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 301,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_11__.Tabs, {\n defaultValue: \"appointment\",\n className: \"mt-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_11__.TabsList, {\n className: \"bg-muted/50 rounded-[12px] w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_11__.TabsTrigger, {\n value: \"appointment\",\n className: \"flex-1 text-xs\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n className: \"size-3 mr-1.5\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 310,\n columnNumber: 15\n }, this),\n \"Agendar cita\"\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 309,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_11__.TabsTrigger, {\n value: \"block\",\n className: \"flex-1 text-xs\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n className: \"size-3 mr-1.5\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 314,\n columnNumber: 15\n }, this),\n \"Bloquear espacio\"\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 313,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 308,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_11__.TabsContent, {\n value: \"appointment\",\n className: \"mt-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: apptForm.handleSubmit(onAppointment),\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-sm font-medium\",\n children: \"Paciente\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 327,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_8__.Input, {\n placeholder: \"Buscar por nombre o tel\\xe9fono…\",\n value: searchValue,\n onChange: (e)=>{\n const value = e.target.value;\n setSearchValue(value);\n apptForm.setValue(\"patientSearch\", value);\n if (searchTimeoutRef.current) clearTimeout(searchTimeoutRef.current);\n searchTimeoutRef.current = setTimeout(()=>{\n void searchPatients(value);\n }, 300);\n }\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 328,\n columnNumber: 17\n }, this),\n isSearching && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted-foreground\",\n children: \"Buscando…\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 342,\n columnNumber: 19\n }, this),\n patients.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-border rounded-[12px] overflow-hidden\",\n children: patients.map((p)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: \"w-full text-left px-3 py-2 text-sm hover:bg-muted/50 transition-colors border-b last:border-0 border-border/50\",\n onClick: ()=>{\n apptForm.setValue(\"patientId\", p.id, {\n shouldValidate: true,\n shouldDirty: true\n });\n apptForm.setValue(\"patientSearch\", p.name, {\n shouldValidate: true\n });\n setSearchValue(p.name);\n setPatients([]);\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"font-medium\",\n children: p.name\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 358,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted-foreground\",\n children: p.phone\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 359,\n columnNumber: 25\n }, this)\n ]\n }, p.id, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 347,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 345,\n columnNumber: 19\n }, this),\n apptForm.formState.errors.patientId && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-destructive\",\n children: apptForm.formState.errors.patientId.message\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 365,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 326,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_hook_form__WEBPACK_IMPORTED_MODULE_15__.Controller, {\n control: apptForm.control,\n name: \"patientId\",\n render: (param)=>{\n let { field } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"hidden\",\n ...field\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 375,\n columnNumber: 40\n }, void 0);\n }\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 372,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-sm font-medium\",\n children: \"Procedimiento\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 380,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_hook_form__WEBPACK_IMPORTED_MODULE_15__.Controller, {\n control: apptForm.control,\n name: \"procedureId\",\n render: (param)=>{\n let { field } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.Select, {\n value: field.value,\n onValueChange: (v)=>field.onChange(v !== null && v !== void 0 ? v : \"\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectTrigger, {\n className: \"rounded-[12px]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectValue, {\n placeholder: \"Seleccionar procedimiento\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 390,\n columnNumber: 25\n }, void 0)\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 389,\n columnNumber: 23\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectContent, {\n children: procedures.map((p)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectItem, {\n value: p.id,\n children: [\n p.name,\n \" (\",\n p.duration_min,\n \" min)\"\n ]\n }, p.id, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 394,\n columnNumber: 27\n }, void 0))\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 392,\n columnNumber: 23\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 385,\n columnNumber: 21\n }, void 0);\n }\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 381,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 379,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-sm font-medium flex items-center gap-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n className: \"size-3.5 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 407,\n columnNumber: 19\n }, this),\n \"Horario de la cita\"\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 406,\n columnNumber: 17\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 /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-xs text-muted-foreground\",\n children: \"Hora inicio\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 412,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_8__.Input, {\n type: \"time\",\n value: (_apptForm_watch = apptForm.watch(\"startTime\")) !== null && _apptForm_watch !== void 0 ? _apptForm_watch : initialStartTime,\n onChange: (e)=>apptForm.setValue(\"startTime\", e.target.value, {\n shouldValidate: true,\n shouldDirty: true\n }),\n className: \"rounded-[12px] h-9 text-sm\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 413,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 411,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-xs text-muted-foreground\",\n children: \"Hora fin\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 426,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_8__.Input, {\n type: \"time\",\n value: (_apptForm_watch1 = apptForm.watch(\"endTime\")) !== null && _apptForm_watch1 !== void 0 ? _apptForm_watch1 : initialEndTime,\n onChange: (e)=>apptForm.setValue(\"endTime\", e.target.value, {\n shouldValidate: true,\n shouldDirty: true\n }),\n className: \"rounded-[12px] h-9 text-sm\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 427,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 425,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 410,\n columnNumber: 17\n }, this),\n apptForm.formState.errors.startTime && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-destructive\",\n children: apptForm.formState.errors.startTime.message\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 441,\n columnNumber: 19\n }, this),\n apptForm.formState.errors.endTime && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-destructive\",\n children: apptForm.formState.errors.endTime.message\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 446,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 405,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-sm font-medium\",\n children: \"Canal de origen\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 454,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_hook_form__WEBPACK_IMPORTED_MODULE_15__.Controller, {\n control: apptForm.control,\n name: \"channel\",\n render: (param)=>{\n let { field } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.Select, {\n value: field.value,\n onValueChange: (v)=>field.onChange(v !== null && v !== void 0 ? v : \"web\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectTrigger, {\n className: \"rounded-[12px]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectValue, {}, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 466,\n columnNumber: 25\n }, void 0)\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 465,\n columnNumber: 23\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectContent, {\n children: [\n \"whatsapp\",\n \"messenger\",\n \"instagram\",\n \"web\",\n \"tiktok\",\n \"manual\"\n ].map((ch)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectItem, {\n value: ch,\n className: \"capitalize\",\n children: ch\n }, ch, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 470,\n columnNumber: 27\n }, void 0))\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 468,\n columnNumber: 23\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 459,\n columnNumber: 21\n }, void 0);\n }\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 455,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 453,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 pt-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n type: \"button\",\n variant: \"outline\",\n className: \"flex-1 rounded-[12px]\",\n onClick: closeModal,\n children: \"Cancelar\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 481,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n type: \"submit\",\n className: \"flex-1 bg-primary text-[#0D141D] font-semibold rounded-[12px] hover:bg-primary/90\",\n disabled: apptForm.formState.isSubmitting,\n children: apptForm.formState.isSubmitting ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n className: \"size-4 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 495,\n columnNumber: 21\n }, this) : \"Confirmar cita\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 489,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 480,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 321,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 320,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_11__.TabsContent, {\n value: \"block\",\n className: \"mt-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: blockForm.handleSubmit(onBlock),\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-sm font-medium flex items-center gap-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n className: \"size-3.5 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 513,\n columnNumber: 19\n }, this),\n \"D\\xedas a bloquear\"\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 512,\n columnNumber: 17\n }, this),\n selectedDates && selectedDates.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-1.5 mb-2\",\n children: [\n ...selectedDates\n ].sort((a, b)=>a.getTime() - b.getTime()).map((date, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-flex items-center gap-1 px-2 py-0.5 rounded-[8px] bg-muted text-xs font-medium\",\n children: [\n (0,date_fns_format__WEBPACK_IMPORTED_MODULE_14__.format)(date, \"d MMM\", {\n locale: date_fns_locale_es__WEBPACK_IMPORTED_MODULE_23__.es\n }),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>removeDate(date),\n className: \"text-muted-foreground hover:text-destructive transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n className: \"size-3\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 533,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 528,\n columnNumber: 27\n }, this)\n ]\n }, i, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 523,\n columnNumber: 25\n }, this))\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 519,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n type: \"button\",\n variant: \"outline\",\n size: \"sm\",\n className: \"w-full rounded-[12px] text-xs h-8\",\n onClick: ()=>setShowCalendar(!showCalendar),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n className: \"size-3.5 mr-1.5\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 547,\n columnNumber: 19\n }, this),\n showCalendar ? \"Ocultar calendario\" : \"Seleccionar días\"\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 540,\n columnNumber: 17\n }, this),\n showCalendar && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center border border-border rounded-[12px] bg-background mt-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_day_picker__WEBPACK_IMPORTED_MODULE_25__.DayPicker, {\n mode: \"multiple\",\n selected: selectedDates !== null && selectedDates !== void 0 ? selectedDates : [],\n onSelect: (dates)=>{\n blockForm.setValue(\"dates\", dates !== null && dates !== void 0 ? dates : [], {\n shouldValidate: true,\n shouldDirty: true\n });\n },\n month: calendarMonth,\n onMonthChange: setCalendarMonth,\n locale: date_fns_locale_es__WEBPACK_IMPORTED_MODULE_23__.es,\n showOutsideDays: false,\n disabled: {\n before: new Date()\n },\n classNames: {\n root: \"p-3\",\n months: \"flex flex-col gap-3\",\n month: \"flex flex-col gap-3\",\n nav: \"absolute inset-x-0 top-0 flex items-center justify-between gap-1 p-2\",\n month_caption: \"flex justify-center h-8 items-center font-medium text-sm\",\n weekdays: \"flex\",\n weekday: \"flex-1 text-[0.7rem] font-normal text-muted-foreground text-center\",\n week: \"flex w-full mt-1\",\n day: \"flex-1 aspect-square text-center p-0 [&:first-child>button]:rounded-l-[8px] [&:last-child>button]:rounded-r-[8px]\",\n day_button: \"size-full rounded-[8px] text-xs hover:bg-muted transition-colors border-0 bg-transparent\",\n selected: \"bg-primary text-primary-foreground rounded-[8px] hover:bg-primary/90\",\n today: \"font-bold bg-muted/50\",\n outside: \"text-muted-foreground/40\",\n disabled: \"text-muted-foreground/30\",\n chevron: \"size-4\"\n }\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 553,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 552,\n columnNumber: 19\n }, this),\n blockForm.formState.errors.dates && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-destructive\",\n children: blockForm.formState.errors.dates.message\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 589,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 511,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-sm font-medium flex items-center gap-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n className: \"size-3.5 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 598,\n columnNumber: 19\n }, this),\n \"Horario del bloqueo\"\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 597,\n columnNumber: 17\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 /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-xs text-muted-foreground\",\n children: \"Hora inicio\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 603,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_8__.Input, {\n type: \"time\",\n value: selectedStartTime !== null && selectedStartTime !== void 0 ? selectedStartTime : \"09:00\",\n onChange: (e)=>blockForm.setValue(\"startTime\", e.target.value, {\n shouldValidate: true,\n shouldDirty: true\n }),\n className: \"rounded-[12px] h-9 text-sm\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 604,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 602,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-xs text-muted-foreground\",\n children: \"Hora fin\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 617,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_8__.Input, {\n type: \"time\",\n value: selectedEndTime !== null && selectedEndTime !== void 0 ? selectedEndTime : \"09:30\",\n onChange: (e)=>blockForm.setValue(\"endTime\", e.target.value, {\n shouldValidate: true,\n shouldDirty: true\n }),\n className: \"rounded-[12px] h-9 text-sm\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 618,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 616,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 601,\n columnNumber: 17\n }, this),\n blockForm.formState.errors.startTime && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-destructive\",\n children: blockForm.formState.errors.startTime.message\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 632,\n columnNumber: 19\n }, this),\n blockForm.formState.errors.endTime && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-destructive\",\n children: blockForm.formState.errors.endTime.message\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 637,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 596,\n columnNumber: 15\n }, this),\n selectedDates && selectedDates.length > 0 && selectedStartTime && selectedEndTime && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-[12px] bg-muted/50 p-3 text-xs text-muted-foreground space-y-0.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-medium text-foreground\",\n children: selectedDates.length\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 647,\n columnNumber: 21\n }, this),\n \" d\\xeda(s) seleccionados\"\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 646,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"Bloque de \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-medium text-foreground\",\n children: selectedStartTime\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 651,\n columnNumber: 31\n }, this),\n \" a\",\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-medium text-foreground\",\n children: selectedEndTime\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 652,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 650,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 645,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"text-sm font-medium\",\n children: \"Tipo de bloqueo\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 659,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_hook_form__WEBPACK_IMPORTED_MODULE_15__.Controller, {\n control: blockForm.control,\n name: \"blockType\",\n render: (param)=>{\n let { field } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.Select, {\n value: field.value,\n onValueChange: (v)=>field.onChange(v !== null && v !== void 0 ? v : \"admin\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectTrigger, {\n className: \"rounded-[12px]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectValue, {}, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 671,\n columnNumber: 25\n }, void 0)\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 670,\n columnNumber: 23\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectItem, {\n value: \"surgery\",\n children: \"\\uD83D\\uDD2A Cirug\\xeda\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 674,\n columnNumber: 25\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectItem, {\n value: \"admin\",\n children: \"\\uD83D\\uDCCB Administrativo\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 675,\n columnNumber: 25\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectItem, {\n value: \"vacation\",\n children: \"\\uD83C\\uDFD6️ Vacaciones\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 676,\n columnNumber: 25\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_10__.SelectItem, {\n value: \"event\",\n children: \"\\uD83C\\uDFAF Evento\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 677,\n columnNumber: 25\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 673,\n columnNumber: 23\n }, void 0)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 664,\n columnNumber: 21\n }, void 0);\n }\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 660,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 658,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 pt-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n type: \"button\",\n variant: \"outline\",\n className: \"flex-1 rounded-[12px]\",\n onClick: closeModal,\n children: \"Cancelar\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 685,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n type: \"submit\",\n className: \"flex-1 bg-primary text-[#0D141D] font-semibold rounded-[12px] hover:bg-primary/90\",\n disabled: blockForm.formState.isSubmitting,\n children: blockForm.formState.isSubmitting ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CalendarDays_CalendarPlus_Clock_Loader2_Lock_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n className: \"size-4 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 699,\n columnNumber: 21\n }, this) : \"Bloquear espacio\"\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 693,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 684,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 506,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 505,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 307,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 300,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/silvio/Develop/CIRUX-APP/src/components/calendar/SlotActionModal.tsx\",\n lineNumber: 299,\n columnNumber: 5\n }, this);\n}\n_s(SlotActionModal, \"6xgrGFlQUCRe/swlkeTRYrsMTCY=\", false, function() {\n return [\n _lib_stores_uiStore__WEBPACK_IMPORTED_MODULE_5__.useUIStore,\n _lib_stores_uiStore__WEBPACK_IMPORTED_MODULE_5__.useUIStore,\n _lib_stores_uiStore__WEBPACK_IMPORTED_MODULE_5__.useUIStore,\n react_hook_form__WEBPACK_IMPORTED_MODULE_15__.useForm,\n react_hook_form__WEBPACK_IMPORTED_MODULE_15__.useForm\n ];\n});\n_c = SlotActionModal;\nvar _c;\n$RefreshReg$(_c, \"SlotActionModal\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9jb21wb25lbnRzL2NhbGVuZGFyL1Nsb3RBY3Rpb25Nb2RhbC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTBFO0FBQ3BCO0FBQ0E7QUFDOUI7QUFDTztBQVFUO0FBQ21CO0FBQ1E7QUFDSjtBQUNJO0FBQ1Q7QUFDSztBQUNVO0FBRUw7QUFNbEI7QUFDZ0I7QUFDRjtBQUNBO0FBT2Q7QUFDZ0Q7QUFHaEYsK0VBQStFO0FBRS9FLE1BQU13QyxjQUFjaEMsd0NBQVEsQ0FBQztJQUMzQmtDLE9BQU9sQyx1Q0FBTyxDQUFDQSxzQ0FBTSxJQUFJcUMsR0FBRyxDQUFDLEdBQUc7SUFDaENDLFdBQVd0Qyx3Q0FBUSxHQUFHcUMsR0FBRyxDQUFDLEdBQUc7SUFDN0JHLFNBQVN4Qyx3Q0FBUSxHQUFHcUMsR0FBRyxDQUFDLEdBQUc7SUFDM0JJLFdBQVd6Qyx5Q0FBTSxDQUFDO1FBQUM7UUFBVztRQUFTO1FBQVk7S0FBUTtJQUMzRDJDLE9BQU8zQyx3Q0FBUSxHQUFHNEMsUUFBUTtBQUM1QixHQUFHQyxNQUFNLENBQUMsQ0FBQ0M7SUFDVCxJQUFJLENBQUNBLEVBQUVSLFNBQVMsSUFBSSxDQUFDUSxFQUFFTixPQUFPLEVBQUUsT0FBTztJQUN2QyxPQUFPTSxFQUFFUixTQUFTLEdBQUdRLEVBQUVOLE9BQU87QUFDaEMsR0FBRztJQUNETyxTQUFTO0lBQ1RDLE1BQU07UUFBQztLQUFVO0FBQ25CO0FBRUEsTUFBTUMsb0JBQW9CakQsd0NBQVEsQ0FBQztJQUNqQ2tELGVBQWVsRCx3Q0FBUTtJQUN2Qm1ELFdBQVduRCx3Q0FBUSxHQUFHcUMsR0FBRyxDQUFDLEdBQUc7SUFDN0JlLGFBQWFwRCx3Q0FBUSxHQUFHcUMsR0FBRyxDQUFDLEdBQUc7SUFDL0JDLFdBQVd0Qyx3Q0FBUSxHQUFHcUMsR0FBRyxDQUFDLEdBQUc7SUFDN0JHLFNBQVN4Qyx3Q0FBUSxHQUFHcUMsR0FBRyxDQUFDLEdB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QU1BO2dEQUNMd0osTUFBSztnREFDTGYsV0FBVTtnREFDVitCLFVBQVV2RixVQUFVNEUsU0FBUyxDQUFDWSxZQUFZOzBEQUV6Q3hGLFVBQVU0RSxTQUFTLENBQUNZLFlBQVksaUJBQy9CLDhEQUFDM0wsZ0lBQU9BO29EQUFDMkosV0FBVTs7Ozs7MkRBRW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVXBCO0dBNW1CZ0J0Rzs7UUFFTXhDLDJEQUFVQTtRQUNUQSwyREFBVUE7UUFDWkEsMkRBQVVBO1FBNERYbEIscURBQU9BO1FBNEdSQSxxREFBT0E7OztLQTVLVjBEIiwic291cmNlcyI6WyIvaG9tZS9zaWx2aW8vRGV2ZWxvcC9DSVJVWC1BUFAvc3JjL2NvbXBvbmVudHMvY2FsZW5kYXIvU2xvdEFjdGlvbk1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlQ2FsbGJhY2ssIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlRm9ybSwgQ29udHJvbGxlciB9IGZyb20gXCJyZWFjdC1ob29rLWZvcm1cIjtcbmltcG9ydCB7IHpvZFJlc29sdmVyIH0gZnJvbSBcIkBob29rZm9ybS9yZXNvbHZlcnMvem9kXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tIFwic29ubmVyXCI7XG5pbXBvcnQge1xuICBMb2FkZXIyLFxuICBMb2NrLFxuICBDYWxlbmRhclBsdXMsXG4gIENsb2NrLFxuICBDYWxlbmRhckRheXMsXG4gIFRyYXNoMixcbn0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSBcImRhdGUtZm5zL2Zvcm1hdFwiO1xuaW1wb3J0IHsgc3RhcnRPZkRheSB9IGZyb20gXCJkYXRlLWZucy9zdGFydE9mRGF5XCI7XG5pbXBvcnQgeyBzZXRIb3VycyB9IGZyb20gXCJkYXRlLWZucy9zZXRIb3Vyc1wiO1xuaW1wb3J0IHsgc2V0TWludXRlcyB9IGZyb20gXCJkYXRlLWZucy9zZXRNaW51dGVzXCI7XG5pbXBvcnQgeyBlcyB9IGZyb20gXCJkYXRlLWZucy9sb2NhbGUvZXNcIjtcbmltcG9ydCB7IERheVBpY2tlciB9IGZyb20gXCJyZWFjdC1kYXktcGlja2VyXCI7XG5pbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tIFwiQC91dGlscy9zdXBhYmFzZS9jbGllbnRcIjtcbmltcG9ydCB7IHRvQ29sb21iaWFJU09TdHJpbmcgfSBmcm9tIFwiQC9saWIvdXRpbHNcIjtcbmltcG9ydCB7IHVzZVVJU3RvcmUgfSBmcm9tIFwiQC9saWIvc3RvcmVzL3VpU3RvcmVcIjtcbmltcG9ydCB7XG4gIERpYWxvZyxcbiAgRGlhbG9nQ29udGVudCxcbiAgRGlhbG9nSGVhZGVyLFxuICBEaWFsb2dUaXRsZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9kaWFsb2dcIjtcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvYnV0dG9uXCI7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvaW5wdXRcIjtcbmltcG9ydCB7IExhYmVsIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9sYWJlbFwiO1xuaW1wb3J0IHtcbiAgU2VsZWN0LFxuICBTZWxlY3RDb250ZW50LFxuICBTZWxlY3RJdGVtLFxuICBTZWxlY3RUcmlnZ2VyLFxuICBTZWxlY3RWYWx1ZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9zZWxlY3RcIjtcbmltcG9ydCB7IFRhYnMsIFRhYnNDb250ZW50LCBUYWJzTGlzdCwgVGFic1RyaWdnZXIgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL3RhYnNcIjtcbmltcG9ydCB0eXBlIHsgUGF0aWVudCwgUHJvY2VkdXJlIH0gZnJvbSBcIkAvbGliL3R5cGVzXCI7XG5cbi8vIOKUgOKUgOKUgCBTY2hlbWFzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5jb25zdCBibG9ja1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgZGF0ZXM6IHouYXJyYXkoei5kYXRlKCkpLm1pbigxLCBcIlNlbGVjY2lvbmEgYWwgbWVub3MgdW4gZMOtYVwiKSxcbiAgc3RhcnRUaW1lOiB6LnN0cmluZygpLm1pbigxLCBcIkhvcmEgZGUgaW5pY2lvIHJlcXVlcmlkYVwiKSxcbiAgZW5kVGltZTogei5zdHJpbmcoKS5taW4oMSwgXCJIb3JhIGRlIGZpbiByZXF1ZXJpZGFcIiksXG4gIGJsb2NrVHlwZTogei5lbnVtKFtcInN1cmdlcnlcIiwgXCJhZG1pblwiLCBcInZhY2F0aW9uXCIsIFwiZXZlbnRcIl0pLFxuICBub3Rlczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSkucmVmaW5lKChkKSA9PiB7XG4gIGlmICghZC5zdGFydFRpbWUgfHwgIWQuZW5kVGltZSkgcmV0dXJuIHRydWU7XG4gIHJldHVybiBkLnN0YXJ0VGltZSA8IGQuZW5kVGltZTtcbn0sIHtcbiAgbWVzc2FnZTogXCJMYSBob3JhIGRlIGZpbiBkZWJlIHNlciBwb3N0ZXJpb3IgYSBsYSBkZSBpbmljaW9cIixcbiAgcGF0aDogW1wiZW5kVGltZVwiXSxcbn0pO1xuXG5jb25zdCBhcHBvaW50bWVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcGF0aWVudFNlYXJjaDogei5zdHJpbmcoKSxcbiAgcGF0aWVudElkOiB6LnN0cmluZygpLm1pbigxLCBcIlNlbGVjY2lvbmEgdW4gcGFjaWVudGVcIiksXG4gIHByb2NlZHVyZUlkOiB6LnN0cmluZygpLm1pbigxLCBcIlNlbGVjY2lvbmEgdW4gcHJvY2VkaW1pZW50b1wiKSxcbiAgc3RhcnRUaW1lOiB6LnN0cmluZygpLm1pbigxLCBcIkhvcmEgZGUgaW5pY2lvIHJlcXVlcmlkYVwiKSxcbiAgZW5kVGltZTogei5zdHJpbmcoKS5taW4oMSwgXCJIb3JhIGRlIGZpbiByZXF1ZXJpZGFcIiksXG4gIGNoYW5uZWw6IHouZW51bShbXCJ3aGF0c2FwcFwiLCBcIm1lc3NlbmdlclwiLCBcImluc3RhZ3JhbVwiLCBcInRpa3Rva1wiLCBcIndlYlwiLCBcIm1hbnVhbFwiXSksXG59KS5yZWZpbmUoKGQpID0+IGQucGF0aWVudElkLmxlbmd0aCA+IDAgJiYgZC5wYXRpZW50SWQgIT09IFwiXCIsIHtcbiAgbWVzc2FnZTogXCJTZWxlY2Npb25hIHVuIHBhY2llbnRlIHbDoWxpZG9cIixcbiAgcGF0aDogW1wicGF0aWVudElkXCJdLFxufSkucmVmaW5lKChkKSA9PiB7XG4gIGlmICghZC5zdGFydFRpbWUgfHwgIWQuZW5kVGltZSkgcmV0dXJuIHRydWU7XG4gIHJldHVybiBkLnN0YXJ0VGltZSA8IGQuZW5kVGltZTtcbn0sIHtcbiAgbWVzc2FnZTogXCJMYSBob3JhIGRlIGZpbiBkZWJlIHNlciBwb3N0ZXJpb3IgYSBsYSBkZSBpbmljaW9cIixcbiAgcGF0aDogW1wiZW5kVGltZVwiXSxcbn0pO1xuXG50eXBlIEJsb2NrVmFsdWVzID0gei5pbmZlcjx0eXBlb2YgYmxvY2tTY2hlbWE+O1xudHlwZSBBcHBvaW50bWVudFZhbHVlcyA9IHouaW5mZXI8dHlwZW9mIGFwcG9pbnRtZW50U2NoZW1hPjtcblxuLy8g4pSA4pSA4pSAIFByb3BzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5pbnRlcmZhY2UgU2xvdEFjdGlvbk1vZGFsUHJvcHMge1xuICBvblN1Y2Nlc3M/OiAoKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIE1vZGFsIGRlIGFjY2nDs24gc29icmUgdW4gc2xvdCBkZWwgY2FsZW5kYXJpby5cbiAqIFBlcm1pdGU6IGJsb3F1ZWFyIGVzcGFjaW8gbyBhZ2VuZGFyIGNpdGEgbWFudWFsIChSRi0wOS4xLjIgLyBSRi0wOS4xLjUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gU2xvdEFjdGlvbk1vZGFsKHsgb25TdWNjZXNzIH06IFNsb3RBY3Rpb25Nb2RhbFByb3BzKSB7XG4gIGNvbnN0IHN1cGFiYXNlID0gdXNlTWVtbygoKSA9PiBjcmVhdGVDbGllbnQoKSwgW10pO1xuICBjb25zdCBhY3RpdmVNb2RhbCA9IHVzZVVJU3RvcmUoKHMpID0+IHMuYWN0aXZlTW9kYWwpO1xuICBjb25zdCBtb2RhbFBheWxvYWQgPSB1c2VVSVN0b3JlKChzKSA9PiBzLm1vZGFsUGF5bG9hZCk7XG4gIGNvbnN0IGNsb3NlTW9kYWwgPSB1c2VVSVN0b3JlKChzKSA9PiBzLmNsb3NlTW9kYWwpO1xuICBjb25zdCBpc09wZW4gPSBhY3RpdmVNb2RhbCA9PT0gXCJzbG90QWN0aW9uXCI7XG5cbiAgY29uc3QgW3BhdGllbnRzLCBzZXRQYXRpZW50c10gPSB1c2VTdGF0ZTxQYXRpZW50W10+KFtdKTtcbiAgY29uc3QgW3Byb2NlZHVyZXMsIHNldFByb2NlZHVyZXNdID0gdXNlU3RhdGU8UHJvY2VkdXJlW10+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZShcIlwiKTtcbiAgY29uc3QgW2lzU2VhcmNoaW5nLCBzZXRJc1NlYXJjaGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtjYWxlbmRhck1vbnRoLCBzZXRDYWxlbmRhck1vbnRoXSA9IHVzZVN0YXRlPERhdGU+KG5ldyBEYXRlKCkpO1xuICBjb25zdCBbc2hvd0NhbGVuZGFyLCBzZXRTaG93Q2FsZW5kYXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIEV4dHJhY3QgaW5pdGlhbCBkYXRlIHJhbmdlIGZyb20gRnVsbENhbGVuZGFyIHNlbGVjdGlvblxuICBjb25zdCBpbml0aWFsRGF0ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIW1vZGFsUGF5bG9hZCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gbW9kYWxQYXlsb2FkIGFzIHsgc3RhcnQ6IHN0cmluZzsgZW5kOiBzdHJpbmcgfTtcbiAgICBpZiAoIXN0YXJ0IHx8ICFlbmQpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0T2ZEYXkobmV3IERhdGUoc3RhcnQpKTtcbiAgICBjb25zdCBlbmREYXRlID0gc3RhcnRPZkRheShuZXcgRGF0ZShlbmQpKTtcbiAgICAvLyBlbmQgaXMgZXhjbHVzaXZlIGluIEZ1bGxDYWxlbmRhcjsgc3VidHJhY3QgMSBkYXkgZm9yIG11bHRpLWRheSBzZWxlY3Rpb25zXG4gICAgY29uc3QgYWRqdXN0ZWRFbmQgPSBuZXcgRGF0ZShlbmREYXRlLmdldFRpbWUoKSAtIDg2NDAwMDAwKTtcblxuICAgIGlmIChhZGp1c3RlZEVuZC5nZXRUaW1lKCkgPD0gc3RhcnREYXRlLmdldFRpbWUoKSkge1xuICAgICAgcmV0dXJuIFtzdGFydERhdGVdO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGVzOiBEYXRlW10gPSBbXTtcbiAgICBsZXQgY3VycmVudCA9IHN0YXJ0RGF0ZTtcbiAgICB3aGlsZSAoY3VycmVudCA8PSBhZGp1c3RlZEVuZCkge1xuICAgICAgZGF0ZXMucHVzaChuZXcgRGF0ZShjdXJyZW50KSk7XG4gICAgICBjdXJyZW50ID0gbmV3IERhdGUoY3VycmVudC5nZXRUaW1lKCkgKyA4NjQwMDAwMCk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlcztcbiAgfSwgW21vZGFsUGF5bG9hZF0pO1xuXG4gIGNvbnN0IGluaXRpYWxTdGFydFRpbWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIW1vZGFsUGF5bG9hZCkgcmV0dXJuIFwiMDg6MDBcIjtcbiAgICBjb25zdCB7IHN0YXJ0IH0gPSBtb2RhbFBheWxvYWQgYXMgeyBzdGFydDogc3RyaW5nOyBlbmQ6IHN0cmluZyB9O1xuICAgIGlmICghc3RhcnQpIHJldHVybiBcIjA4OjAwXCI7XG4gICAgY29uc3QgdGltZSA9IGZvcm1hdChuZXcgRGF0ZShzdGFydCksIFwiSEg6bW1cIik7XG4gICAgcmV0dXJuIHRpbWUgPT09IFwiMDA6MDBcIiA/IFwiMDg6MDBcIiA6IHRpbWU7XG4gIH0sIFttb2RhbFBheWxvYWRdKTtcblxuICBjb25zdCBpbml0aWFsRW5kVGltZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghbW9kYWxQYXlsb2FkKSByZXR1cm4gXCIwOTowMFwiO1xuICAgIGNvbnN0IHsgZW5kLCBzdGFydCB9ID0gbW9kYWxQYXlsb2FkIGFzIHsgc3RhcnQ6IHN0cmluZzsgZW5kOiBzdHJpbmcgfTtcbiAgICBpZiAoIWVuZCkgcmV0dXJuIFwiMDk6MDBcIjtcbiAgICBjb25zdCBlbmRUaW1lID0gZm9ybWF0KG5ldyBEYXRlKGVuZCksIFwiSEg6bW1cIik7XG4gICAgaWYgKGVuZFRpbWUgPT09IFwiMDA6MDBcIikge1xuICAgICAgY29uc3Qgc3QgPSBzdGFydCA/IGZvcm1hdChuZXcgRGF0ZShzdGFydCksIFwiSEg6bW1cIikgOiBcIjA4OjAwXCI7XG4gICAgICBpZiAoc3QgPT09IFwiMDA6MDBcIikgcmV0dXJuIFwiMDk6MDBcIjtcbiAgICAgIGNvbnN0IFtoLCBtXSA9IHN0LnNwbGl0KFwiOlwiKS5tYXAoTnVtYmVyKTtcbiAgICAgIGNvbnN0IHRvdGFsTWludXRlcyA9IGggKiA2MCArIG0gKyA2MDtcbiAgICAgIGNvbnN0IG5ld0ggPSBNYXRoLmZsb29yKHRvdGFsTWludXRlcyAvIDYwKSAlIDI0O1xuICAgICAgY29uc3QgbmV3TSA9IHRvdGFsTWludXRlcyAlIDYwO1xuICAgICAgcmV0dXJuIGAke1N0cmluZyhuZXdIKS5wYWRTdGFydCgyLCBcIjBcIil9OiR7U3RyaW5nKG5ld00pLnBhZFN0YXJ0KDIsIFwiMFwiKX1gO1xuICAgIH1cbiAgICByZXR1cm4gZW5kVGltZTtcbiAgfSwgW21vZGFsUGF5bG9hZF0pO1xuXG4gIC8vIEJsb2NrIGZvcm1cbiAgY29uc3QgYmxvY2tGb3JtID0gdXNlRm9ybTxCbG9ja1ZhbHVlcz4oe1xuICAgIHJlc29sdmVyOiB6b2RSZXNvbHZlcihibG9ja1NjaGVtYSksXG4gICAgZGVmYXVsdFZhbHVlczoge1xuICAgICAgZGF0ZXM6IGluaXRpYWxEYXRlcyxcbiAgICAgIHN0YXJ0VGltZTogaW5pdGlhbFN0YXJ0VGltZSxcbiAgICAgIGVuZFRpbWU6IGluaXRpYWxFbmRUaW1lLFxuICAgICAgYmxvY2tUeXBlOiBcImFkbWluXCIsXG4gICAgICBub3RlczogXCJcIixcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBzZWxlY3RlZERhdGVzID0gYmxvY2tGb3JtLndhdGNoKFwiZGF0ZXNcIik7XG4gIGNvbnN0IHNlbGVjdGVkU3RhcnRUaW1lID0gYmxvY2tGb3JtLndhdGNoKFwic3RhcnRUaW1lXCIpO1xuICBjb25zdCBzZWxlY3RlZEVuZFRpbWUgPSBibG9ja0Zvcm0ud2F0Y2goXCJlbmRUaW1lXCIpO1xuXG4gIC8vIExvYWQgcHJvY2VkdXJlcyBvbiBtb3VudCArIHJlc2V0IGZvcm0gb24gb3BlblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc09wZW4pIHtcbiAgICAgIGNvbnN0IGxvYWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgc3VwYWJhc2VcbiAgICAgICAgICAuZnJvbShcInByb2NlZHVyZXNcIilcbiAgICAgICAgICAuc2VsZWN0KFwiaWQsIG5hbWUsIGR1cmF0aW9uX21pblwiKVxuICAgICAgICAgIC5lcShcImlzX2FjdGl2ZVwiLCB0cnVlKVxuICAgICAgICAgIC5vcmRlcihcIm5hbWVcIik7XG4gICAgICAgIHNldFByb2NlZHVyZXMoKGRhdGEgPz8gW10pIGFzIFByb2NlZHVyZVtdKTtcbiAgICAgIH07XG4gICAgICB2b2lkIGxvYWQoKTtcbiAgICAgIC8vIFJlc2V0IGZvcm0gc3RhdGVcbiAgICAgIGFwcHRGb3JtLnJlc2V0KHsgcGF0aWVudFNlYXJjaDogXCJcIiwgcGF0aWVudElkOiBcIlwiLCBwcm9jZWR1cmVJZDogXCJcIiwgc3RhcnRUaW1lOiBpbml0aWFsU3RhcnRUaW1lLCBlbmRUaW1lOiBpbml0aWFsRW5kVGltZSwgY2hhbm5lbDogXCJ3ZWJcIiB9KTtcbiAgICAgIGJsb2NrRm9ybS5yZXNldCh7XG4gICAgICAgIGRhdGVzOiBpbml0aWFsRGF0ZXMsXG4gICAgICAgIHN0YXJ0VGltZTogaW5pdGlhbFN0YXJ0VGltZSxcbiAgICAgICAgZW5kVGltZTogaW5pdGlhbEVuZFRpbWUsXG4gICAgICAgIGJsb2NrVHlwZTogXCJhZG1pblwiLFxuICAgICAgICBub3RlczogXCJcIixcbiAgICAgIH0pO1xuICAgICAgc2V0U2VhcmNoVmFsdWUoXCJcIik7XG4gICAgICBzZXRQYXRpZW50cyhbXSk7XG4gICAgICBzZXRTaG93Q2FsZW5kYXIoZmFsc2UpO1xuICAgICAgaWYgKGluaXRpYWxEYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHNldENhbGVuZGFyTW9udGgoaW5pdGlhbERhdGVzWzBdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbaXNPcGVuXSk7XG5cbiAgY29uc3Qgc2VhcmNoVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpO1xuXG4gIC8vIFNlYXJjaCBwYXRpZW50cyB3aXRoIGRlYm91bmNlXG4gIGNvbnN0IHNlYXJjaFBhdGllbnRzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRyaW1tZWQgPSBxdWVyeS50cmltKCk7XG4gICAgICBpZiAoIXRyaW1tZWQpIHtcbiAgICAgICAgc2V0UGF0aWVudHMoW10pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzZXRJc1NlYXJjaGluZyh0cnVlKTtcbiAgICAgIGNvbnN0IGVzY2FwZWQgPSB0cmltbWVkLnJlcGxhY2UoL1slX10vZywgXCJcXFxcJCZcIik7XG4gICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHN1cGFiYXNlXG4gICAgICAgIC5mcm9tKFwicGF0aWVudHNcIilcbiAgICAgICAgLnNlbGVjdChcImlkLCBuYW1lLCBwaG9uZVwiKVxuICAgICAgICAub3IoYG5hbWUuaWxpa2UuJSR7ZXNjYXBlZH0lLHBob25lLmlsaWtlLiUke2VzY2FwZWR9JWApXG4gICAgICAgIC5saW1pdCg1KTtcbiAgICAgIHNldFBhdGllbnRzKChkYXRhID8/IFtdKSBhcyBQYXRpZW50W10pO1xuICAgICAgc2V0SXNTZWFyY2hpbmcoZmFsc2UpO1xuICAgIH0sXG4gICAgW3N1cGFiYXNlXVxuICApO1xuXG4gIGNvbnN0IHJlbW92ZURhdGUgPSAoZGF0ZVRvUmVtb3ZlOiBEYXRlKSA9PiB7XG4gICAgY29uc3QgY3VycmVudCA9IGJsb2NrRm9ybS5nZXRWYWx1ZXMoXCJkYXRlc1wiKTtcbiAgICBibG9ja0Zvcm0uc2V0VmFsdWUoXG4gICAgICBcImRhdGVzXCIsXG4gICAgICBjdXJyZW50LmZpbHRlcigoZCkgPT4gZC50b0RhdGVTdHJpbmcoKSAhPT0gZGF0ZVRvUmVtb3ZlLnRvRGF0ZVN0cmluZygpKSxcbiAgICAgIHsgc2hvdWxkVmFsaWRhdGU6IHRydWUsIHNob3VsZERpcnR5OiB0cnVlIH1cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IG9uQmxvY2sgPSB1c2VDYWxsYmFjayhhc3luYyAodmFsdWVzOiBCbG9ja1ZhbHVlcykgPT4ge1xuICAgIGNvbnN0IFtzdGFydEgsIHN0YXJ0TV0gPSB2YWx1ZXMuc3RhcnRUaW1lLnNwbGl0KFwiOlwiKS5tYXAoTnVtYmVyKTtcbiAgICBjb25zdCBbZW5kSCwgZW5kTV0gPSB2YWx1ZXMuZW5kVGltZS5zcGxpdChcIjpcIikubWFwKE51bWJlcik7XG5cbiAgICBjb25zdCBzbG90cyA9IHZhbHVlcy5kYXRlcy5tYXAoKGRhdGUpID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0QXQgPSBzZXRNaW51dGVzKHNldEhvdXJzKHN0YXJ0T2ZEYXkoZGF0ZSksIHN0YXJ0SCksIHN0YXJ0TSk7XG4gICAgICBjb25zdCBlbmRBdCA9IHNldE1pbnV0ZXMoc2V0SG91cnMoc3RhcnRPZkRheShkYXRlKSwgZW5kSCksIGVuZE0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnRfYXQ6IHN0YXJ0QXQudG9JU09TdHJpbmcoKSxcbiAgICAgICAgZW5kX2F0OiBlbmRBdC50b0lTT1N0cmluZygpLFxuICAgICAgICBibG9ja190eXBlOiB2YWx1ZXMuYmxvY2tUeXBlLFxuICAgICAgICBzdGF0dXM6IFwiYmxvY2tlZFwiLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IHN1cGFiYXNlLmZyb20oXCJzbG90c1wiKS5pbnNlcnQoc2xvdHMpO1xuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0b2FzdC5lcnJvcihcIkVycm9yIGFsIGJsb3F1ZWFyIGxvcyBlc3BhY2lvcy5cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdG9hc3Quc3VjY2VzcyhcbiAgICAgIGAke3Nsb3RzLmxlbmd0aH0gZXNwYWNpbyhzKSBibG9xdWVhZG8ocyk6ICR7dmFsdWVzLmJsb2NrVHlwZX1gXG4gICAgKTtcbiAgICBjbG9zZU1vZGFsKCk7XG4gICAgb25TdWNjZXNzPy4oKTtcbiAgfSwgW2Nsb3NlTW9kYWwsIG9uU3VjY2Vzcywgc3VwYWJhc2VdKTtcblxuICAvLyBBcHBvaW50bWVudCBmb3JtXG4gIGNvbnN0IGFwcHRGb3JtID0gdXNlRm9ybTxBcHBvaW50bWVudFZhbHVlcz4oe1xuICAgIHJlc29sdmVyOiB6b2RSZXNvbHZlcihhcHBvaW50bWVudFNjaGVtYSksXG4gICAgZGVmYXVsdFZhbHVlczogeyBwYXRpZW50U2VhcmNoOiBcIlwiLCBwYXRpZW50SWQ6IFwiXCIsIHByb2NlZHVyZUlkOiBcIlwiLCBzdGFydFRpbWU6IGluaXRpYWxTdGFydFRpbWUsIGVuZFRpbWU6IGluaXRpYWxFbmRUaW1lLCBjaGFubmVsOiBcIndlYlwiIH0sXG4gICAgbW9kZTogXCJvbkNoYW5nZVwiLFxuICB9KTtcblxuICBjb25zdCBvbkFwcG9pbnRtZW50ID0gdXNlQ2FsbGJhY2soYXN5bmMgKHZhbHVlczogQXBwb2ludG1lbnRWYWx1ZXMpID0+IHtcbiAgICBjb25zdCB7IHN0YXJ0IH0gPSBtb2RhbFBheWxvYWQgYXMgeyBzdGFydDogc3RyaW5nOyBlbmQ6IHN0cmluZyB9O1xuICAgIGNvbnN0IGRhdGVTdHIgPSBmb3JtYXQobmV3IERhdGUoc3RhcnQpLCBcInl5eXktTU0tZGRcIik7XG5cbiAgICBjb25zdCBbc3RhcnRILCBzdGFydE1dID0gdmFsdWVzLnN0YXJ0VGltZS5zcGxpdChcIjpcIikubWFwKE51bWJlcik7XG4gICAgY29uc3QgW2VuZEgsIGVuZE1dID0gdmFsdWVzLmVuZFRpbWUuc3BsaXQoXCI6XCIpLm1hcChOdW1iZXIpO1xuICAgIGNvbnN0IHN0YXJ0QXQgPSBuZXcgRGF0ZShgJHtkYXRlU3RyfVQke1N0cmluZyhzdGFydEgpLnBhZFN0YXJ0KDIsIFwiMFwiKX06JHtTdHJpbmcoc3RhcnRNKS5wYWRTdGFydCgyLCBcIjBcIil9OjAwYCk7XG4gICAgY29uc3QgZW5kQXQgPSBuZXcgRGF0ZShgJHtkYXRlU3RyfVQke1N0cmluZyhlbmRIKS5wYWRTdGFydCgyLCBcIjBcIil9OiR7U3RyaW5nKGVuZE0pLnBhZFN0YXJ0KDIsIFwiMFwiKX06MDBgKTtcblxuICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IHN1cGFiYXNlLmZyb20oXCJzbG90c1wiKS5pbnNlcnQoe1xuICAgICAgc3RhcnRfYXQ6IHN0YXJ0QXQudG9JU09TdHJpbmcoKSxcbiAgICAgIGVuZF9hdDogZW5kQXQudG9JU09TdHJpbmcoKSxcbiAgICAgIGJsb2NrX3R5cGU6IFwiYXBwb2ludG1lbnRcIixcbiAgICAgIHBhdGllbnRfaWQ6IHZhbHVlcy5wYXRpZW50SWQsXG4gICAgICBwcm9jZWR1cmVfaWQ6IHZhbHVlcy5wcm9jZWR1cmVJZCxcbiAgICAgIHN0YXR1czogXCJjb25maXJtZWRcIixcbiAgICAgIGNoYW5uZWw6IHZhbHVlcy5jaGFubmVsLFxuICAgIH0pO1xuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0b2FzdC5lcnJvcihcIkVycm9yIGFsIGNyZWFyIGxhIGNpdGEuXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRvYXN0LnN1Y2Nlc3MoXCJDaXRhIGFnZW5kYWRhIGNvcnJlY3RhbWVudGUuXCIpO1xuICAgIGNsb3NlTW9kYWwoKTtcbiAgICBvblN1Y2Nlc3M/LigpO1xuICB9LCBbY2xvc2VNb2RhbCwgbW9kYWxQYXlsb2FkLCBvblN1Y2Nlc3MsIHN1cGFiYXNlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RGlhbG9nIG9wZW49e2lzT3Blbn0gb25PcGVuQ2hhbmdlPXsob3BlbikgPT4gIW9wZW4gJiYgY2xvc2VNb2RhbCgpfT5cbiAgICAgIDxEaWFsb2dDb250ZW50IGNsYXNzTmFtZT1cIm1heC13LWxnIHJvdW5kZWQtWzE4cHhdXCI+XG4gICAgICAgIDxEaWFsb2dIZWFkZXI+XG4gICAgICAgICAgPERpYWxvZ1RpdGxlIGNsYXNzTmFtZT1cImZvbnQtaGVhZGluZyB0ZXh0LWxnIGZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgICAgIEFjY2nDs24gc29icmUgZWwgZXNwYWNpb1xuICAgICAgICAgIDwvRGlhbG9nVGl0bGU+XG4gICAgICAgIDwvRGlhbG9nSGVhZGVyPlxuXG4gICAgICAgIDxUYWJzIGRlZmF1bHRWYWx1ZT1cImFwcG9pbnRtZW50XCIgY2xhc3NOYW1lPVwibXQtMlwiPlxuICAgICAgICAgIDxUYWJzTGlzdCBjbGFzc05hbWU9XCJiZy1tdXRlZC81MCByb3VuZGVkLVsxMnB4XSB3LWZ1bGxcIj5cbiAgICAgICAgICAgIDxUYWJzVHJpZ2dlciB2YWx1ZT1cImFwcG9pbnRtZW50XCIgY2xhc3NOYW1lPVwiZmxleC0xIHRleHQteHNcIj5cbiAgICAgICAgICAgICAgPENhbGVuZGFyUGx1cyBjbGFzc05hbWU9XCJzaXplLTMgbXItMS41XCIgLz5cbiAgICAgICAgICAgICAgQWdlbmRhciBjaXRhXG4gICAgICAgICAgICA8L1RhYnNUcmlnZ2VyPlxuICAgICAgICAgICAgPFRhYnNUcmlnZ2VyIHZhbHVlPVwiYmxvY2tcIiBjbGFzc05hbWU9XCJmbGV4LTEgdGV4dC14c1wiPlxuICAgICAgICAgICAgICA8TG9jayBjbGFzc05hbWU9XCJzaXplLTMgbXItMS41XCIgLz5cbiAgICAgICAgICAgICAgQmxvcXVlYXIgZXNwYWNpb1xuICAgICAgICAgICAgPC9UYWJzVHJpZ2dlcj5cbiAgICAgICAgICA8L1RhYnNMaXN0PlxuXG4gICAgICAgICAgey8qIEFnZW5kYXIgY2l0YSAqL31cbiAgICAgICAgICA8VGFic0NvbnRlbnQgdmFsdWU9XCJhcHBvaW50bWVudFwiIGNsYXNzTmFtZT1cIm10LTRcIj5cbiAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgIG9uU3VibWl0PXthcHB0Rm9ybS5oYW5kbGVTdWJtaXQob25BcHBvaW50bWVudCl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNwYWNlLXktNFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsvKiBCdXNjYXIgcGFjaWVudGUgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0xLjVcIj5cbiAgICAgICAgICAgICAgICA8TGFiZWwgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bVwiPlBhY2llbnRlPC9MYWJlbD5cbiAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQnVzY2FyIHBvciBub21icmUgbyB0ZWzDqWZvbm/igKZcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFZhbHVlfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgYXBwdEZvcm0uc2V0VmFsdWUoXCJwYXRpZW50U2VhcmNoXCIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaFRpbWVvdXRSZWYuY3VycmVudCkgY2xlYXJUaW1lb3V0KHNlYXJjaFRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHZvaWQgc2VhcmNoUGF0aWVudHModmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHtpc1NlYXJjaGluZyAmJiAoXG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPkJ1c2NhbmRv4oCmPC9wPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3BhdGllbnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJib3JkZXIgYm9yZGVyLWJvcmRlciByb3VuZGVkLVsxMnB4XSBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAge3BhdGllbnRzLm1hcCgocCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17cC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHRleHQtbGVmdCBweC0zIHB5LTIgdGV4dC1zbSBob3ZlcjpiZy1tdXRlZC81MCB0cmFuc2l0aW9uLWNvbG9ycyBib3JkZXItYiBsYXN0OmJvcmRlci0wIGJvcmRlci1ib3JkZXIvNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBhcHB0Rm9ybS5zZXRWYWx1ZShcInBhdGllbnRJZFwiLCBwLmlkLCB7IHNob3VsZFZhbGlkYXRlOiB0cnVlLCBzaG91bGREaXJ0eTogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwdEZvcm0uc2V0VmFsdWUoXCJwYXRpZW50U2VhcmNoXCIsIHAubmFtZSwgeyBzaG91bGRWYWxpZGF0ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoVmFsdWUocC5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGF0aWVudHMoW10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmb250LW1lZGl1bVwiPntwLm5hbWV9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57cC5waG9uZX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7YXBwdEZvcm0uZm9ybVN0YXRlLmVycm9ycy5wYXRpZW50SWQgJiYgKFxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWRlc3RydWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgIHthcHB0Rm9ybS5mb3JtU3RhdGUuZXJyb3JzLnBhdGllbnRJZC5tZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBwYXRpZW50SWQgaGlkZGVuIC0gcmVnaXN0ZXJlZCBmb3IgcmVhY3QtaG9vay1mb3JtIHRyYWNraW5nICovfVxuICAgICAgICAgICAgICA8Q29udHJvbGxlclxuICAgICAgICAgICAgICAgIGNvbnRyb2w9e2FwcHRGb3JtLmNvbnRyb2x9XG4gICAgICAgICAgICAgICAgbmFtZT1cInBhdGllbnRJZFwiXG4gICAgICAgICAgICAgICAgcmVuZGVyPXsoeyBmaWVsZCB9KSA9PiA8aW5wdXQgdHlwZT1cImhpZGRlblwiIHsuLi5maWVsZH0gLz59XG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgey8qIFByb2NlZGltaWVudG8gKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0xLjVcIj5cbiAgICAgICAgICAgICAgICA8TGFiZWwgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bVwiPlByb2NlZGltaWVudG88L0xhYmVsPlxuICAgICAgICAgICAgICAgIDxDb250cm9sbGVyXG4gICAgICAgICAgICAgICAgICBjb250cm9sPXthcHB0Rm9ybS5jb250cm9sfVxuICAgICAgICAgICAgICAgICAgbmFtZT1cInByb2NlZHVyZUlkXCJcbiAgICAgICAgICAgICAgICAgIHJlbmRlcj17KHsgZmllbGQgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2ZpZWxkLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2U9eyh2OiBzdHJpbmcgfCBudWxsKSA9PiBmaWVsZC5vbkNoYW5nZSh2ID8/IFwiXCIpfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFRyaWdnZXIgY2xhc3NOYW1lPVwicm91bmRlZC1bMTJweF1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RWYWx1ZSBwbGFjZWhvbGRlcj1cIlNlbGVjY2lvbmFyIHByb2NlZGltaWVudG9cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9jZWR1cmVzLm1hcCgocCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0SXRlbSBrZXk9e3AuaWR9IHZhbHVlPXtwLmlkfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cC5uYW1lfSAoe3AuZHVyYXRpb25fbWlufSBtaW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBIb3JhcmlvICovfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMS41XCI+XG4gICAgICAgICAgICAgICAgPExhYmVsIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNVwiPlxuICAgICAgICAgICAgICAgICAgPENsb2NrIGNsYXNzTmFtZT1cInNpemUtMy41IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICBIb3JhcmlvIGRlIGxhIGNpdGFcbiAgICAgICAgICAgICAgICA8L0xhYmVsPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMiBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPExhYmVsIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+SG9yYSBpbmljaW88L0xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGltZVwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2FwcHRGb3JtLndhdGNoKFwic3RhcnRUaW1lXCIpID8/IGluaXRpYWxTdGFydFRpbWV9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwdEZvcm0uc2V0VmFsdWUoXCJzdGFydFRpbWVcIiwgZS50YXJnZXQudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkVmFsaWRhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZERpcnR5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicm91bmRlZC1bMTJweF0gaC05IHRleHQtc21cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMVwiPlxuICAgICAgICAgICAgICAgICAgICA8TGFiZWwgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5Ib3JhIGZpbjwvTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17YXBwdEZvcm0ud2F0Y2goXCJlbmRUaW1lXCIpID8/IGluaXRpYWxFbmRUaW1lfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcHRGb3JtLnNldFZhbHVlKFwiZW5kVGltZVwiLCBlLnRhcmdldC52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRWYWxpZGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkRGlydHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyb3VuZGVkLVsxMnB4XSBoLTkgdGV4dC1zbVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7YXBwdEZvcm0uZm9ybVN0YXRlLmVycm9ycy5zdGFydFRpbWUgJiYgKFxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWRlc3RydWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgIHthcHB0Rm9ybS5mb3JtU3RhdGUuZXJyb3JzLnN0YXJ0VGltZS5tZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge2FwcHRGb3JtLmZvcm1TdGF0ZS5lcnJvcnMuZW5kVGltZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZGVzdHJ1Y3RpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAge2FwcHRGb3JtLmZvcm1TdGF0ZS5lcnJvcnMuZW5kVGltZS5tZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBDYW5hbCAqL31cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTEuNVwiPlxuICAgICAgICAgICAgICAgIDxMYWJlbCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+Q2FuYWwgZGUgb3JpZ2VuPC9MYWJlbD5cbiAgICAgICAgICAgICAgICA8Q29udHJvbGxlclxuICAgICAgICAgICAgICAgICAgY29udHJvbD17YXBwdEZvcm0uY29udHJvbH1cbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJjaGFubmVsXCJcbiAgICAgICAgICAgICAgICAgIHJlbmRlcj17KHsgZmllbGQgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2ZpZWxkLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2U9eyh2OiBzdHJpbmcgfCBudWxsKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQub25DaGFuZ2UoKHYgPz8gXCJ3ZWJcIikgYXMgQXBwb2ludG1lbnRWYWx1ZXNbXCJjaGFubmVsXCJdKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RUcmlnZ2VyIGNsYXNzTmFtZT1cInJvdW5kZWQtWzEycHhdXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0VmFsdWUgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdFRyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB7KFtcIndoYXRzYXBwXCIsIFwibWVzc2VuZ2VyXCIsIFwiaW5zdGFncmFtXCIsIFwid2ViXCIsIFwidGlrdG9rXCIsIFwibWFudWFsXCJdIGFzIGNvbnN0KS5tYXAoKGNoKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIGtleT17Y2h9IHZhbHVlPXtjaH0gY2xhc3NOYW1lPVwiY2FwaXRhbGl6ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjaH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0yIHB0LTJcIj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSByb3VuZGVkLVsxMnB4XVwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbG9zZU1vZGFsfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIENhbmNlbGFyXG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgYmctcHJpbWFyeSB0ZXh0LVsjMEQxNDFEXSBmb250LXNlbWlib2xkIHJvdW5kZWQtWzEycHhdIGhvdmVyOmJnLXByaW1hcnkvOTBcIlxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2FwcHRGb3JtLmZvcm1TdGF0ZS5pc1N1Ym1pdHRpbmd9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2FwcHRGb3JtLmZvcm1TdGF0ZS5pc1N1Ym1pdHRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxMb2FkZXIyIGNsYXNzTmFtZT1cInNpemUtNCBhbmltYXRlLXNwaW5cIiAvPlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgXCJDb25maXJtYXIgY2l0YVwiXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8L1RhYnNDb250ZW50PlxuXG4gICAgICAgICAgey8qIEJsb3F1ZWFyIGVzcGFjaW8gKi99XG4gICAgICAgICAgPFRhYnNDb250ZW50IHZhbHVlPVwiYmxvY2tcIiBjbGFzc05hbWU9XCJtdC00XCI+XG4gICAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgICBvblN1Ym1pdD17YmxvY2tGb3JtLmhhbmRsZVN1Ym1pdChvbkJsb2NrKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic3BhY2UteS00XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgey8qIFNlbGVjY2nDs24gZGUgZMOtYXMgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0xLjVcIj5cbiAgICAgICAgICAgICAgICA8TGFiZWwgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgICAgICAgICA8Q2FsZW5kYXJEYXlzIGNsYXNzTmFtZT1cInNpemUtMy41IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICBEw61hcyBhIGJsb3F1ZWFyXG4gICAgICAgICAgICAgICAgPC9MYWJlbD5cblxuICAgICAgICAgICAgICAgIHsvKiBEw61hcyB5YSBzZWxlY2Npb25hZG9zIChjaGlwcykgKi99XG4gICAgICAgICAgICAgICAge3NlbGVjdGVkRGF0ZXMgJiYgc2VsZWN0ZWREYXRlcy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTEuNSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIHtbLi4uc2VsZWN0ZWREYXRlc11cbiAgICAgICAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5nZXRUaW1lKCkgLSBiLmdldFRpbWUoKSlcbiAgICAgICAgICAgICAgICAgICAgICAubWFwKChkYXRlLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBweC0yIHB5LTAuNSByb3VuZGVkLVs4cHhdIGJnLW11dGVkIHRleHQteHMgZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Zm9ybWF0KGRhdGUsIFwiZCBNTU1cIiwgeyBsb2NhbGU6IGVzIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcmVtb3ZlRGF0ZShkYXRlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1kZXN0cnVjdGl2ZSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHJhc2gyIGNsYXNzTmFtZT1cInNpemUtM1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCByb3VuZGVkLVsxMnB4XSB0ZXh0LXhzIGgtOFwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Q2FsZW5kYXIoIXNob3dDYWxlbmRhcil9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPENhbGVuZGFyRGF5cyBjbGFzc05hbWU9XCJzaXplLTMuNSBtci0xLjVcIiAvPlxuICAgICAgICAgICAgICAgICAge3Nob3dDYWxlbmRhciA/IFwiT2N1bHRhciBjYWxlbmRhcmlvXCIgOiBcIlNlbGVjY2lvbmFyIGTDrWFzXCJ9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG5cbiAgICAgICAgICAgICAgICB7c2hvd0NhbGVuZGFyICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBib3JkZXIgYm9yZGVyLWJvcmRlciByb3VuZGVkLVsxMnB4XSBiZy1iYWNrZ3JvdW5kIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPERheVBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgIG1vZGU9XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3NlbGVjdGVkRGF0ZXMgPz8gW119XG4gICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9eyhkYXRlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tGb3JtLnNldFZhbHVlKFwiZGF0ZXNcIiwgZGF0ZXMgPz8gW10sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkVmFsaWRhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZERpcnR5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBtb250aD17Y2FsZW5kYXJNb250aH1cbiAgICAgICAgICAgICAgICAgICAgICBvbk1vbnRoQ2hhbmdlPXtzZXRDYWxlbmRhck1vbnRofVxuICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZT17ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgc2hvd091dHNpZGVEYXlzPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17eyBiZWZvcmU6IG5ldyBEYXRlKCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWVzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICByb290OiBcInAtM1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9udGhzOiBcImZsZXggZmxleC1jb2wgZ2FwLTNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoOiBcImZsZXggZmxleC1jb2wgZ2FwLTNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdjogXCJhYnNvbHV0ZSBpbnNldC14LTAgdG9wLTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0xIHAtMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9udGhfY2FwdGlvbjogXCJmbGV4IGp1c3RpZnktY2VudGVyIGgtOCBpdGVtcy1jZW50ZXIgZm9udC1tZWRpdW0gdGV4dC1zbVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2Vla2RheXM6IFwiZmxleFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2Vla2RheTogXCJmbGV4LTEgdGV4dC1bMC43cmVtXSBmb250LW5vcm1hbCB0ZXh0LW11dGVkLWZvcmVncm91bmQgdGV4dC1jZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHdlZWs6IFwiZmxleCB3LWZ1bGwgbXQtMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF5OiBcImZsZXgtMSBhc3BlY3Qtc3F1YXJlIHRleHQtY2VudGVyIHAtMCBbJjpmaXJzdC1jaGlsZD5idXR0b25dOnJvdW5kZWQtbC1bOHB4XSBbJjpsYXN0LWNoaWxkPmJ1dHRvbl06cm91bmRlZC1yLVs4cHhdXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXlfYnV0dG9uOiBcInNpemUtZnVsbCByb3VuZGVkLVs4cHhdIHRleHQteHMgaG92ZXI6YmctbXV0ZWQgdHJhbnNpdGlvbi1jb2xvcnMgYm9yZGVyLTAgYmctdHJhbnNwYXJlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBcImJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgcm91bmRlZC1bOHB4XSBob3ZlcjpiZy1wcmltYXJ5LzkwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b2RheTogXCJmb250LWJvbGQgYmctbXV0ZWQvNTBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dHNpZGU6IFwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzQwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogXCJ0ZXh0LW11dGVkLWZvcmVncm91bmQvMzBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZXZyb246IFwic2l6ZS00XCIsXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICB7YmxvY2tGb3JtLmZvcm1TdGF0ZS5lcnJvcnMuZGF0ZXMgJiYgKFxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWRlc3RydWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgIHtibG9ja0Zvcm0uZm9ybVN0YXRlLmVycm9ycy5kYXRlcy5tZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBIb3JhcmlvICovfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMS41XCI+XG4gICAgICAgICAgICAgICAgPExhYmVsIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNVwiPlxuICAgICAgICAgICAgICAgICAgPENsb2NrIGNsYXNzTmFtZT1cInNpemUtMy41IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICBIb3JhcmlvIGRlbCBibG9xdWVvXG4gICAgICAgICAgICAgICAgPC9MYWJlbD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxMYWJlbCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPkhvcmEgaW5pY2lvPC9MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRpbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZFN0YXJ0VGltZSA/PyBcIjA5OjAwXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tGb3JtLnNldFZhbHVlKFwic3RhcnRUaW1lXCIsIGUudGFyZ2V0LnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFZhbGlkYXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGREaXJ0eTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtWzEycHhdIGgtOSB0ZXh0LXNtXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPExhYmVsIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+SG9yYSBmaW48L0xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGltZVwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkRW5kVGltZSA/PyBcIjA5OjMwXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tGb3JtLnNldFZhbHVlKFwiZW5kVGltZVwiLCBlLnRhcmdldC52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRWYWxpZGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkRGlydHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyb3VuZGVkLVsxMnB4XSBoLTkgdGV4dC1zbVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB7YmxvY2tGb3JtLmZvcm1TdGF0ZS5lcnJvcnMuc3RhcnRUaW1lICYmIChcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1kZXN0cnVjdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7YmxvY2tGb3JtLmZvcm1TdGF0ZS5lcnJvcnMuc3RhcnRUaW1lLm1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7YmxvY2tGb3JtLmZvcm1TdGF0ZS5lcnJvcnMuZW5kVGltZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZGVzdHJ1Y3RpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAge2Jsb2NrRm9ybS5mb3JtU3RhdGUuZXJyb3JzLmVuZFRpbWUubWVzc2FnZX1cbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICB7LyogUmVzdW1lbiAqL31cbiAgICAgICAgICAgICAge3NlbGVjdGVkRGF0ZXMgJiYgc2VsZWN0ZWREYXRlcy5sZW5ndGggPiAwICYmIHNlbGVjdGVkU3RhcnRUaW1lICYmIHNlbGVjdGVkRW5kVGltZSAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLVsxMnB4XSBiZy1tdXRlZC81MCBwLTMgdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgc3BhY2UteS0wLjVcIj5cbiAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmRcIj57c2VsZWN0ZWREYXRlcy5sZW5ndGh9PC9zcGFuPiBkw61hKHMpXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjY2lvbmFkb3NcbiAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICBCbG9xdWUgZGUgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kXCI+e3NlbGVjdGVkU3RhcnRUaW1lfTwvc3Bhbj4gYXtcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kXCI+e3NlbGVjdGVkRW5kVGltZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgey8qIFRpcG8gZGUgYmxvcXVlbyAqL31cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTEuNVwiPlxuICAgICAgICAgICAgICAgIDxMYWJlbCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+VGlwbyBkZSBibG9xdWVvPC9MYWJlbD5cbiAgICAgICAgICAgICAgICA8Q29udHJvbGxlclxuICAgICAgICAgICAgICAgICAgY29udHJvbD17YmxvY2tGb3JtLmNvbnRyb2x9XG4gICAgICAgICAgICAgICAgICBuYW1lPVwiYmxvY2tUeXBlXCJcbiAgICAgICAgICAgICAgICAgIHJlbmRlcj17KHsgZmllbGQgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2ZpZWxkLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2U9eyh2OiBzdHJpbmcgfCBudWxsKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQub25DaGFuZ2UoKHYgPz8gXCJhZG1pblwiKSBhcyBCbG9ja1ZhbHVlc1tcImJsb2NrVHlwZVwiXSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0VHJpZ2dlciBjbGFzc05hbWU9XCJyb3VuZGVkLVsxMnB4XVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFZhbHVlIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9XCJzdXJnZXJ5XCI+8J+UqiBDaXJ1Z8OtYTwvU2VsZWN0SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIHZhbHVlPVwiYWRtaW5cIj7wn5OLIEFkbWluaXN0cmF0aXZvPC9TZWxlY3RJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9XCJ2YWNhdGlvblwiPvCfj5bvuI8gVmFjYWNpb25lczwvU2VsZWN0SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIHZhbHVlPVwiZXZlbnRcIj7wn46vIEV2ZW50bzwvU2VsZWN0SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTIgcHQtMlwiPlxuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIHJvdW5kZWQtWzEycHhdXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2Nsb3NlTW9kYWx9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQ2FuY2VsYXJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBiZy1wcmltYXJ5IHRleHQtWyMwRDE0MURdIGZvbnQtc2VtaWJvbGQgcm91bmRlZC1bMTJweF0gaG92ZXI6YmctcHJpbWFyeS85MFwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmxvY2tGb3JtLmZvcm1TdGF0ZS5pc1N1Ym1pdHRpbmd9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2Jsb2NrRm9ybS5mb3JtU3RhdGUuaXNTdWJtaXR0aW5nID8gKFxuICAgICAgICAgICAgICAgICAgICA8TG9hZGVyMiBjbGFzc05hbWU9XCJzaXplLTQgYW5pbWF0ZS1zcGluXCIgLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIFwiQmxvcXVlYXIgZXNwYWNpb1wiXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8L1RhYnNDb250ZW50PlxuICAgICAgICA8L1RhYnM+XG4gICAgICA8L0RpYWxvZ0NvbnRlbnQ+XG4gICAgPC9EaWFsb2c+XG4gICk7XG59XG4iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VNZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VGb3JtIiwiQ29udHJvbGxlciIsInpvZFJlc29sdmVyIiwieiIsInRvYXN0IiwiTG9hZGVyMiIsIkxvY2siLCJDYWxlbmRhclBsdXMiLCJDbG9jayIsIkNhbGVuZGFyRGF5cyIsIlRyYXNoMiIsImZvcm1hdCIsInN0YXJ0T2ZEYXkiLCJzZXRIb3VycyIsInNldE1pbnV0ZXMiLCJlcyIsIkRheVBpY2tlciIsImNyZWF0ZUNsaWVudCIsInVzZVVJU3RvcmUiLCJEaWFsb2ciLCJEaWFsb2dDb250ZW50IiwiRGlhbG9nSGVhZGVyIiwiRGlhbG9nVGl0bGUiLCJCdXR0b24iLCJJbnB1dCIsIkxhYmVsIiwiU2VsZWN0IiwiU2VsZWN0Q29udGVudCIsIlNlbGVjdEl0ZW0iLCJTZWxlY3RUcmlnZ2VyIiwiU2VsZWN0VmFsdWUiLCJUYWJzIiwiVGFic0NvbnRlbnQiLCJUYWJzTGlzdCIsIlRhYnNUcmlnZ2VyIiwiYmxvY2tTY2hlbWEiLCJvYmplY3QiLCJkYXRlcyIsImFycmF5IiwiZGF0ZSIsIm1pbiIsInN0YXJ0VGltZSIsInN0cmluZyIsImVuZFRpbWUiLCJibG9ja1R5cGUiLCJlbnVtIiwibm90ZXMiLCJvcHRpb25hbCIsInJlZmluZSIsImQiLCJtZXNzYWdlIiwicGF0aCIsImFwcG9pbnRtZW50U2NoZW1hIiwicGF0aWVudFNlYXJjaCIsInBhdGllbnRJZCIsInByb2NlZHVyZUlkIiwiY2hhbm5lbCIsImxlbmd0aCIsIlNsb3RBY3Rpb25Nb2RhbCIsIm9uU3VjY2VzcyIsInN1cGFiYXNlIiwiYWN0aXZlTW9kYWwiLCJzIiwibW9kYWxQYXlsb2FkIiwiY2xvc2VNb2RhbCIsImlzT3BlbiIsInBhdGllbnRzIiwic2V0UGF0aWVudHMiLCJwcm9jZWR1cmVzIiwic2V0UHJvY2VkdXJlcyIsInNlYXJjaFZhbHVlIiwic2V0U2VhcmNoVmFsdWUiLCJpc1NlYXJjaGluZyIsInNldElzU2VhcmNoaW5nIiwiY2FsZW5kYXJNb250aCIsInNldENhbGVuZGFyTW9udGgiLCJEYXRlIiwic2hvd0NhbGVuZGFyIiwic2V0U2hvd0NhbGVuZGFyIiwiaW5pdGlhbERhdGVzIiwic3RhcnQiLCJlbmQiLCJzdGFydERhdGUiLCJlbmREYXRlIiwiYWRqdXN0ZWRFbmQiLCJnZXRUaW1lIiwiY3VycmVudCIsInB1c2giLCJpbml0aWFsU3RhcnRUaW1lIiwidGltZSIsImluaXRpYWxFbmRUaW1lIiwic3QiLCJoIiwibSIsInNwbGl0IiwibWFwIiwiTnVtYmVyIiwidG90YWxNaW51dGVzIiwibmV3SCIsIk1hdGgiLCJmbG9vciIsIm5ld00iLCJTdHJpbmciLCJwYWRTdGFydCIsImJsb2NrRm9ybSIsInJlc29sdmVyIiwiZGVmYXVsdFZhbHVlcyIsInNlbGVjdGVkRGF0ZXMiLCJ3YXRjaCIsInNlbGVjdGVkU3RhcnRUaW1lIiwic2VsZWN0ZWRFbmRUaW1lIiwibG9hZCIsImRhdGEiLCJmcm9tIiwic2VsZWN0IiwiZXEiLCJvcmRlciIsImFwcHRGb3JtIiwicmVzZXQiLCJzZWFyY2hUaW1lb3V0UmVmIiwic2VhcmNoUGF0aWVudHMiLCJxdWVyeSIsInRyaW1tZWQiLCJ0cmltIiwiZXNjYXBlZCIsInJlcGxhY2UiLCJvciIsImxpbWl0IiwicmVtb3ZlRGF0ZSIsImRhdGVUb1JlbW92ZSIsImdldFZhbHVlcyIsInNldFZhbHVlIiwiZmlsdGVyIiwidG9EYXRlU3RyaW5nIiwic2hvdWxkVmFsaWRhdGUiLCJzaG91bGREaXJ0eSIsIm9uQmxvY2siLCJ2YWx1ZXMiLCJzdGFydEgiLCJzdGFydE0iLCJlbmRIIiwiZW5kTSIsInNsb3RzIiwic3RhcnRBdCIsImVuZEF0Iiwic3RhcnRfYXQiLCJ0b0lTT1N0cmluZyIsImVuZF9hdCIsImJsb2NrX3R5cGUiLCJzdGF0dXMiLCJlcnJvciIsImluc2VydCIsInN1Y2Nlc3MiLCJtb2RlIiwib25BcHBvaW50bWVudCIsImRhdGVTdHIiLCJwYXRpZW50X2lkIiwicHJvY2VkdXJlX2lkIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsImNsYXNzTmFtZSIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwiZm9ybSIsIm9uU3VibWl0IiwiaGFuZGxlU3VibWl0IiwiZGl2IiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsImUiLCJ0YXJnZXQiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwicCIsImJ1dHRvbiIsInR5cGUiLCJvbkNsaWNrIiwiaWQiLCJuYW1lIiwicGhvbmUiLCJmb3JtU3RhdGUiLCJlcnJvcnMiLCJjb250cm9sIiwicmVuZGVyIiwiZmllbGQiLCJpbnB1dCIsIm9uVmFsdWVDaGFuZ2UiLCJ2IiwiZHVyYXRpb25fbWluIiwiY2giLCJ2YXJpYW50IiwiZGlzYWJsZWQiLCJpc1N1Ym1pdHRpbmciLCJzb3J0IiwiYSIsImIiLCJpIiwic3BhbiIsImxvY2FsZSIsInNpemUiLCJzZWxlY3RlZCIsIm9uU2VsZWN0IiwibW9udGgiLCJvbk1vbnRoQ2hhbmdlIiwic2hvd091dHNpZGVEYXlzIiwiYmVmb3JlIiwiY2xhc3NOYW1lcyIsInJvb3QiLCJtb250aHMiLCJuYXYiLCJtb250aF9jYXB0aW9uIiwid2Vla2RheXMiLCJ3ZWVrZGF5Iiwid2VlayIsImRheSIsImRheV9idXR0b24iLCJ0b2RheSIsIm91dHNpZGUiLCJjaGV2cm9uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/components/calendar/SlotActionModal.tsx\n"));
|
||
|
||
/***/ })
|
||
|
||
}); |