@bigz-app/booking-widget 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../node_modules/.pnpm/@stripe+stripe-js@4.10.0/node_modules/@stripe/stripe-js/dist/index.mjs","../src/styles/StyleProvider.tsx","../src/utils.ts","../../../node_modules/.pnpm/react-hook-form@7.59.0_react@19.1.0/node_modules/react-hook-form/dist/index.esm.mjs","../../../node_modules/.pnpm/@hookform+resolvers@3.10.0_react-hook-form@7.59.0_react@19.1.0_/node_modules/@hookform/resolvers/dist/resolvers.mjs","../../../node_modules/.pnpm/@hookform+resolvers@3.10.0_react-hook-form@7.59.0_react@19.1.0_/node_modules/@hookform/resolvers/zod/dist/zod.mjs","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/helpers/util.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/ZodError.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/locales/en.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/errors.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/helpers/parseUtil.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/helpers/errorUtil.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/types.js","../src/components/ImageCarousel.tsx","../src/components/EventTypeSelection.tsx","../../../node_modules/.pnpm/@stripe+react-stripe-js@3.7.0_@stripe+stripe-js@4.10.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","../src/components/PaymentForm.tsx","../src/components/Sidebar.tsx","../src/components/BookingForm.tsx","../src/components/EventInstanceSelection.tsx","../src/components/NextEventsPreview.tsx","../src/components/UniversalBookingWidget.tsx","../src/index.npm.ts"],"sourcesContent":["var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"4.6.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar onErrorListener = null;\nvar onLoadListener = null;\n\nvar onError = function onError(reject) {\n return function () {\n reject(new Error('Failed to load Stripe.js'));\n };\n};\n\nvar onLoad = function onLoad(resolve, reject) {\n return function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n };\n};\n\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n } else if (script && onLoadListener !== null && onErrorListener !== null) {\n var _script$parentNode;\n\n // remove event listeners\n script.removeEventListener('load', onLoadListener);\n script.removeEventListener('error', onErrorListener); // if script exists, but we are reloading due to an error,\n // reload script to trigger 'load' event\n\n (_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);\n script = injectScript(params);\n }\n\n onLoadListener = onLoad(resolve, reject);\n onErrorListener = onError(reject);\n script.addEventListener('load', onLoadListener);\n script.addEventListener('error', onErrorListener);\n } catch (error) {\n reject(error);\n return;\n }\n }); // Resets stripePromise on error\n\n return stripePromise[\"catch\"](function (error) {\n stripePromise = null;\n return Promise.reject(error);\n });\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar stripePromise$1;\nvar loadCalled = false;\n\nvar getStripePromise = function getStripePromise() {\n if (stripePromise$1) {\n return stripePromise$1;\n }\n\n stripePromise$1 = loadScript(null)[\"catch\"](function (error) {\n // clear cache on error\n stripePromise$1 = null;\n return Promise.reject(error);\n });\n return stripePromise$1;\n}; // Execute our own script injection after a tick to give users time to do their\n// own script injection.\n\n\nPromise.resolve().then(function () {\n return getStripePromise();\n})[\"catch\"](function (error) {\n if (!loadCalled) {\n console.warn(error);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now(); // if previous attempts are unsuccessful, will re-load script\n\n return getStripePromise().then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","import React, { createContext, useContext, useMemo, useEffect, useState } from \"react\";\nimport { UniversalBookingConfig } from \"../components/UniversalBookingWidget\";\n\n// Create a context for the styles\nconst StyleContext = createContext<React.CSSProperties>({});\n\n// Custom hook to use the style context\nexport const useStyles = () => useContext(StyleContext);\n\n// Semantic color mapping for common design systems\nconst SEMANTIC_COLOR_MAP: Record<string, string[]> = {\n\t// Core semantic colors (combining Tailwind and shadcn/ui)\n\tprimary: [\"--primary\", \"--color-primary\", \"--tw-color-primary\"],\n\tsecondary: [\"--secondary\", \"--color-secondary\", \"--tw-color-secondary\"],\n\taccent: [\"--accent\", \"--color-accent\", \"--tw-color-accent\"],\n\tbackground: [\"--background\", \"--color-background\", \"--tw-color-background\"],\n\tforeground: [\"--foreground\", \"--color-foreground\", \"--tw-color-foreground\"],\n\tcard: [\"--card\", \"--color-card\", \"--tw-color-card\"],\n\t\"card-foreground\": [\"--card-foreground\", \"--color-card-foreground\", \"--tw-color-card-foreground\"],\n\tborder: [\"--border\", \"--color-border\", \"--tw-color-border\"],\n\tinput: [\"--input\", \"--color-input\", \"--tw-color-input\"],\n\tring: [\"--ring\", \"--color-ring\", \"--tw-color-ring\"],\n\t// shadcn/ui specific\n\t\"primary-foreground\": [\"--primary-foreground\", \"--color-primary-foreground\"],\n\t\"secondary-foreground\": [\"--secondary-foreground\", \"--color-secondary-foreground\"],\n\t\"accent-foreground\": [\"--accent-foreground\", \"--color-accent-foreground\"],\n\t\"destructive\": [\"--destructive\", \"--color-destructive\"],\n\t\"destructive-foreground\": [\"--destructive-foreground\", \"--color-destructive-foreground\"],\n\t\"muted\": [\"--muted\", \"--color-muted\"],\n\t\"muted-foreground\": [\"--muted-foreground\", \"--color-muted-foreground\"],\n\t\"popover\": [\"--popover\", \"--color-popover\"],\n\t\"popover-foreground\": [\"--popover-foreground\", \"--color-popover-foreground\"],\n\t// Semantic aliases for common use cases\n\tsuccess: [\"--success\", \"--color-success\", \"--green\"],\n\twarning: [\"--warning\", \"--color-warning\", \"--yellow\"],\n\terror: [\"--error\", \"--color-error\", \"--red\", \"--destructive\"],\n};\n\n// Helper function to resolve semantic color names to actual CSS values\nconst resolveSemanticColor = (colorValue: string, fallbackValue?: string): string => {\n\t// If it's already a valid CSS color (hex, rgb, hsl, etc.), return as-is\n\tif (\n\t\tcolorValue.includes(\"#\") ||\n\t\tcolorValue.includes(\"rgb\") ||\n\t\tcolorValue.includes(\"hsl\") ||\n\t\tcolorValue.includes(\"oklch\") ||\n\t\tcolorValue.includes(\"px\") ||\n\t\tcolorValue.includes(\"%\")\n\t) {\n\t\treturn colorValue;\n\t}\n\n\t// Try to resolve semantic color names\n\tconst possibleVars = SEMANTIC_COLOR_MAP[colorValue];\n\tif (possibleVars) {\n\t\t// Check if we're in a browser environment\n\t\tif (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n\t\t\tconst rootStyles = getComputedStyle(document.documentElement);\n\n\t\t\t// Try each possible CSS variable\n\t\t\tfor (const cssVar of possibleVars) {\n\t\t\t\tconst value = rootStyles.getPropertyValue(cssVar).trim();\n\t\t\t\tif (value) {\n\t\t\t\t\t// If the value is an HSL/RGB without function wrapper, add it\n\t\t\t\t\tif (value.match(/^\\d+(\\.\\d+)?\\s+\\d+(\\.\\d+)?%?\\s+\\d+(\\.\\d+)?%?$/)) {\n\t\t\t\t\t\treturn `hsl(${value})`;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// If semantic resolution fails, use fallback or return the original value\n\treturn fallbackValue || colorValue;\n};\n\n// Predefined themes (modern, accessibility-tested)\nconst themes: Record<string, any> = {\n\t// --- Light Themes ---\n\t\"light-fresh\": {\n\t\thighlight: \"oklch(0.65 0.2 190)\", // accent-strong\n\t\tbackground: \"oklch(0.99 0.005 220)\", // neutral-strong (background)\n\t\tsurface: \"oklch(1 0 0)\", // card (pure white)\n\t\ttext: \"#0e7490\", // Turquoise 800\n\t\tborder: \"#bae6fd\", // Blue 200\n\t\tsuccess: \"#38bdf8\", // Blue 400\n\t\twarning: \"#fbbf24\", // Amber 400\n\t\terror: \"#f43f5e\", // Rose 500\n\t\tborderRadius: \"18px\", // Very rounded corners\n\t\tfontFamily: \"'Inter', system-ui, sans-serif\",\n\t},\n\t\"light-elegant\": {\n\t\thighlight: \"#8b5cf6\", // Violet 500\n\t\tbackground: \"#f5f3ff\", // Violet 50\n\t\tsurface: \"#ffffff\", // White\n\t\ttext: \"#4c1d95\", // Violet 900\n\t\tborder: \"#ede9fe\", // Violet 100\n\t\tsuccess: \"#16a34a\", // Green 600\n\t\twarning: \"#ca8a04\", // Yellow 600\n\t\terror: \"#dc2626\", // Red 600\n\t\tborderRadius: \"12px\",\n\t\tfontFamily: \"'Playfair Display', serif\",\n\t},\n\t\"light-vibrant\": {\n\t\thighlight: \"#ed702d\", // blue-500 - bright blue accent\n\t\tbackground: \"#1f2630\", // slate-900 - dark background\n\t\tsurface: \"#1f2630\", // slate-800 - dark cards\n\t\ttext: \"#f1f5f9\", // slate-100 - light text\n\t\tborder: \"#ed702d\", // slate-700 - subtle borders\n\t\tsuccess: \"#22c55e\", // green-500\n\t\twarning: \"#eab308\", // yellow-500\n\t\terror: \"#ef4444\", // red-500\n\t\tborderRadius: \"0px\",\n\t\tfontFamily: \"Inter, system-ui, sans-serif\",\n\t},\n\t\"light-professional\": {\n\t\thighlight: \"#2563eb\", // Blue 600\n\t\tbackground: \"#f8fafc\", // Slate 50\n\t\tsurface: \"#ffffff\", // White\n\t\ttext: \"#1e293b\", // Slate 800\n\t\tborder: \"#e2e8f0\", // Slate 200\n\t\tsuccess: \"#059669\", // Emerald 600\n\t\twarning: \"#d97706\", // Amber 600\n\t\terror: \"#b91c1c\", // Red 700\n\t\tborderRadius: \"4px\",\n\t\tfontFamily: \"system-ui, -apple-system, sans-serif\",\n\t},\n\t\"dark-night\": {\n\t\thighlight: \"#3b82f6\", // blue-500 - bright blue accent\n\t\tbackground: \"#0f172a\", // slate-900 - dark background\n\t\tsurface: \"#1e293b\", // slate-800 - dark cards\n\t\ttext: \"#f1f5f9\", // slate-100 - light text\n\t\tborder: \"#334155\", // slate-700 - subtle borders\n\t\tsuccess: \"#22c55e\", // green-500\n\t\twarning: \"#eab308\", // yellow-500\n\t\terror: \"#ef4444\", // red-500\n\t\tborderRadius: \"8px\",\n\t\tfontFamily: \"Inter, system-ui, sans-serif\",\n\t},\n\t\"dark-modern\": {\n\t\thighlight: \"#3b82f6\", // blue-500 - bright blue accent\n\t\tbackground: \"#0f172a\", // slate-900 - dark background\n\t\tsurface: \"#1e293b\", // slate-800 - dark cards\n\t\ttext: \"#f1f5f9\", // slate-100 - light text\n\t\tborder: \"#334155\", // slate-700 - subtle borders\n\t\tsuccess: \"#22c55e\", // green-500\n\t\twarning: \"#eab308\", // yellow-500\n\t\terror: \"#ef4444\", // red-500\n\t\tborderRadius: \"8px\",\n\t\tfontFamily: \"Inter, system-ui, sans-serif\",\n\t},\n\t\"dark-forest\": {\n\t\thighlight: \"#34d399\", // Emerald 400\n\t\tbackground: \"#05140d\",\n\t\tsurface: \"#062215\",\n\t\ttext: \"#d1fae5\", // Emerald 100\n\t\tborder: \"#043322\",\n\t\tsuccess: \"#4ade80\", // Green 400\n\t\twarning: \"#facc15\", // Yellow 400\n\t\terror: \"#f87171\", // Red 400\n\t\tborderRadius: \"12px\",\n\t\tfontFamily: \"system-ui, -apple-system, sans-serif\",\n\t},\n\t\"dark-matrix\": {\n\t\thighlight: \"#33ff33\",\n\t\tbackground: \"#000000\",\n\t\tsurface: \"#0a0a0a\",\n\t\ttext: \"#00ff00\",\n\t\tborder: \"#1a1a1a\",\n\t\tsuccess: \"#33ff33\",\n\t\twarning: \"#ffff00\",\n\t\terror: \"#ff3333\",\n\t\tborderRadius: \"0px\",\n\t\tfontFamily: \"'Courier New', monospace\",\n\t},\n\t\"dark-luxury\": {\n\t\thighlight: \"#fde047\", // Yellow 300\n\t\tbackground: \"#1c1917\", // Stone 900\n\t\tsurface: \"#292524\", // Stone 800\n\t\ttext: \"#fafaf9\", // Stone 50\n\t\tborder: \"#44403c\", // Stone 700\n\t\tsuccess: \"#a3e635\", // Lime 400\n\t\twarning: \"#f59e0b\", // Amber 500\n\t\terror: \"#fca5a5\", // Red 300\n\t\tborderRadius: \"24px\",\n\t\tfontFamily: \"'Cinzel', serif\",\n\t},\n\t\"dark-energetic\": {\n\t\thighlight: \"#d946ef\", // Fuchsia 500\n\t\tbackground: \"#2e1046\",\n\t\tsurface: \"#401561\",\n\t\ttext: \"#f3e8ff\", // Purple 50\n\t\tborder: \"#581c87\", // Purple 900\n\t\tsuccess: \"#4ade80\", // Green 400\n\t\twarning: \"#facc15\", // Yellow 400\n\t\terror: \"#f87171\", // Red 400\n\t\tborderRadius: \"14px\",\n\t\tfontFamily: \"'Geologica', sans-serif\",\n\t},\n};\n\nexport const StyleProvider = ({\n\tconfig,\n\tchildren,\n}: {\n\tconfig: UniversalBookingConfig;\n\tchildren: React.ReactNode;\n}) => {\n\t// Track hydration state to prevent mismatches\n\tconst [isHydrated, setIsHydrated] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetIsHydrated(true);\n\t}, []);\n\n\t// PERFORMANCE OPTIMIZATION: Memoize style calculations\n\tconst themedStyles = useMemo(() => {\n\t\tconst themeName = config.theme || \"light-fresh\";\n\t\tconst themeDefaults = themes[themeName] || themes[\"light-fresh\"];\n\n\t\tconst getCSSValue = (value: string | undefined, fallback: string): string => {\n\t\t\tif (!value) return fallback;\n\n\t\t\t// During SSR or before hydration, use fallback for semantic colors to ensure consistency\n\t\t\tif (!isHydrated && SEMANTIC_COLOR_MAP[value]) {\n\t\t\t\treturn fallback;\n\t\t\t}\n\n\t\t\t// Resolve semantic colors or return direct values\n\t\t\treturn resolveSemanticColor(value, fallback);\n\t\t};\n\n\t\tconst getBorderRadius = (value: string | undefined, fallback: string): string => {\n\t\t\tif (!value) return fallback;\n\t\t\tconst radiusMap: Record<string, string> = {\n\t\t\t\tnone: \"0px\",\n\t\t\t\tsm: \"4px\",\n\t\t\t\tmd: \"8px\",\n\t\t\t\tlg: \"12px\",\n\t\t\t\txl: \"16px\",\n\t\t\t\tfull: \"9999px\",\n\t\t\t};\n\t\t\treturn radiusMap[value] || value;\n\t\t};\n\n\t\tconst addOpacity = (color: string, opacity: number): string => {\n\t\t\tif (color.startsWith(\"#\")) {\n\t\t\t\tconst r = parseInt(color.slice(1, 3), 16);\n\t\t\t\tconst g = parseInt(color.slice(3, 5), 16);\n\t\t\t\tconst b = parseInt(color.slice(5, 7), 16);\n\t\t\t\treturn `rgba(${r}, ${g}, ${b}, ${opacity})`;\n\t\t\t}\n\t\t\tif (color.startsWith(\"rgb\")) {\n\t\t\t\treturn color.replace(\")\", `, ${opacity})`).replace(\"rgb\", \"rgba\");\n\t\t\t}\n\t\t\tif (color.startsWith(\"hsl\")) {\n\t\t\t\treturn color.replace(\")\", `, ${opacity})`).replace(\"hsl\", \"hsla\");\n\t\t\t}\n\t\t\treturn color;\n\t\t};\n\n\t\tconst hexToRgb = (hex: string): string => {\n\t\t\t// Handle non-hex colors\n\t\t\tif (!hex.startsWith(\"#\")) {\n\t\t\t\treturn \"255,255,255\"; // Fallback\n\t\t\t}\n\t\t\tlet c: any = hex.substring(1).split(\"\");\n\t\t\tif (c.length === 3) {\n\t\t\t\tc = [c[0], c[0], c[1], c[1], c[2], c[2]];\n\t\t\t}\n\t\t\tc = `0x${c.join(\"\")}`;\n\t\t\treturn [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(\",\");\n\t\t};\n\n\t\tconst colors = config.colors || {};\n\t\tconst finalColors = {\n\t\t\thighlight: getCSSValue(colors.highlight, themeDefaults.highlight),\n\t\t\tbackground: getCSSValue(colors.background, themeDefaults.background),\n\t\t\tsurface: getCSSValue(colors.surface, themeDefaults.surface),\n\t\t\ttext: getCSSValue(colors.text, themeDefaults.text),\n\t\t\tborder: getCSSValue(colors.border, themeDefaults.border),\n\t\t\tsuccess: getCSSValue(colors.success, themeDefaults.success),\n\t\t\twarning: getCSSValue(colors.warning, themeDefaults.warning),\n\t\t\terror: getCSSValue(colors.error, themeDefaults.error),\n\t\t};\n\t\tconst borderRadius = getBorderRadius(config.borderRadius, themeDefaults.borderRadius);\n\n\t\treturn {\n\t\t\t\"--bw-highlight-color\": finalColors.highlight,\n\t\t\t\"--bw-highlight-color-rgb\": hexToRgb(finalColors.highlight),\n\t\t\t\"--bw-background-color\": finalColors.background,\n\t\t\t\"--bw-surface-color\": finalColors.surface,\n\t\t\t\"--bw-text-color\": finalColors.text,\n\t\t\t\"--bw-text-muted\": addOpacity(finalColors.text, 0.7),\n\t\t\t\"--bw-border-color\": finalColors.border,\n\t\t\t\"--bw-success-color\": finalColors.success,\n\t\t\t\"--bw-warning-color\": finalColors.warning,\n\t\t\t\"--bw-error-color\": finalColors.error,\n\t\t\t\"--bw-border-radius\": borderRadius,\n\t\t\t\"--bw-border-radius-small\": `calc(${borderRadius} * 0.8)`,\n\t\t\t\"--bw-spacing\": \"16px\",\n\t\t\t\"--bw-spacing-large\": \"24px\",\n\t\t\t\"--bw-font-family\": config.fontFamily || themeDefaults.fontFamily,\n\t\t\t\"--bw-font-size\": \"14px\",\n\t\t\t\"--bw-font-size-large\": \"18px\",\n\t\t\t\"--bw-shadow-lg\": \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n\t\t\t\"--bw-shadow-md\": \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n\t\t\t// Additional optimized variables\n\t\t\t\"--bw-highlight-muted\": addOpacity(finalColors.highlight, 0.1),\n\t\t\t\"--bw-highlight-subtle\": addOpacity(finalColors.highlight, 0.05),\n\t\t\t\"--bw-text-subtle\": addOpacity(finalColors.text, 0.4),\n\t\t\tcolorScheme: themeName.startsWith(\"dark-\") || themeName === \"dark-night\" ? \"dark\" : \"light\",\n\t\t} as React.CSSProperties;\n\t}, [\n\t\tconfig.theme,\n\t\tconfig.colors?.highlight,\n\t\tconfig.colors?.background,\n\t\tconfig.colors?.surface,\n\t\tconfig.colors?.text,\n\t\tconfig.colors?.border,\n\t\tconfig.colors?.success,\n\t\tconfig.colors?.warning,\n\t\tconfig.colors?.error,\n\t\tconfig.borderRadius,\n\t\tconfig.fontFamily,\n\t\tisHydrated, // Include hydration state in dependencies\n\t]);\n\n\treturn (\n\t\t<StyleContext.Provider value={themedStyles}>\n\t\t\t<div style={themedStyles} className=\"booking-widget-container\">\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</StyleContext.Provider>\n\t);\n};\n","import type { UniversalBookingConfig } from \"./components/UniversalBookingWidget\";\n\nexport type SupportedLocale = \"de\" | \"en\";\nexport type CurrencyCode = \"EUR\" | \"USD\" | \"GBP\" | \"CHF\" | \"SEK\" | \"NOK\" | \"DKK\" | \"PLN\" | \"CZK\";\n\n// Supported currencies with their minor unit information\nconst CURRENCIES = {\n\tEUR: { symbol: \"€\", locale: \"de-DE\", decimals: 2, name: \"Euro\" },\n\tUSD: { symbol: \"$\", locale: \"en-US\", decimals: 2, name: \"US Dollar\" },\n\tGBP: { symbol: \"£\", locale: \"en-GB\", decimals: 2, name: \"British Pound\" },\n\tCHF: { symbol: \"CHF\", locale: \"de-CH\", decimals: 2, name: \"Swiss Franc\" },\n\tSEK: { symbol: \"kr\", locale: \"sv-SE\", decimals: 2, name: \"Swedish Krona\" },\n\tNOK: { symbol: \"kr\", locale: \"nb-NO\", decimals: 2, name: \"Norwegian Krone\" },\n\tDKK: { symbol: \"kr\", locale: \"da-DK\", decimals: 2, name: \"Danish Krone\" },\n\tPLN: { symbol: \"zł\", locale: \"pl-PL\", decimals: 2, name: \"Polish Zloty\" },\n\tCZK: { symbol: \"Kč\", locale: \"cs-CZ\", decimals: 2, name: \"Czech Koruna\" },\n} as const;\n\n/**\n * Parse date string and handle timezone properly\n * If the date string doesn't include timezone info, assume it's in the specified timezone\n */\nfunction parseDate(dateString: string, timezone: string = \"Europe/Berlin\"): Date {\n\t// If the date string already includes timezone info (Z or +/-HH:MM), use it as-is\n\tif (dateString.includes(\"Z\") || dateString.match(/[+-]\\d{2}:\\d{2}$/)) {\n\t\treturn new Date(dateString);\n\t}\n\n\t// If no timezone info, we need to treat it as being in the specified timezone\n\t// Create a date assuming it's in the specified timezone\n\tconst date = new Date(dateString);\n\n\t// Get the timezone offset for the specified timezone\n\tconst tempDate = new Date();\n\tconst localOffset = tempDate.getTimezoneOffset();\n\tconst timezoneOffset = getTimezoneOffset(timezone) / 60000;\n\n\t// Adjust the date to account for timezone difference\n\tconst adjustedDate = new Date(date.getTime() - localOffset * 60000 + timezoneOffset);\n\n\treturn adjustedDate;\n}\n\n/**\n * Get timezone offset in milliseconds for a given timezone\n * This is a simplified implementation - in production you'd want a more robust solution\n */\nfunction getTimezoneOffset(timezone: string): number {\n\tconst now = new Date();\n\tconst utc = new Date(now.getTime() + now.getTimezoneOffset() * 60000);\n\n\t// Create a date in the target timezone\n\tconst targetTime = new Date(utc.toLocaleString(\"en-US\", { timeZone: timezone }));\n\tconst localTime = new Date(utc.toLocaleString(\"en-US\"));\n\n\treturn targetTime.getTime() - localTime.getTime();\n}\n\n/**\n * Format minor units (cents) for display\n */\nexport const formatCurrency = (\n\tminorUnits: number | null | undefined,\n\tcurrency: CurrencyCode = \"EUR\",\n\toptions: {\n\t\tshowSymbol?: boolean;\n\t\tshowCode?: boolean;\n\t} = {},\n): string => {\n\tif (minorUnits === null || minorUnits === undefined) {\n\t\treturn \"---\";\n\t}\n\n\tconst { symbol, locale, decimals } = CURRENCIES[currency];\n\tconst { showSymbol = true, showCode = false } = options;\n\n\t// Convert to major units for display\n\tconst majorUnits = minorUnits / 10 ** decimals;\n\n\tconst formatted = new Intl.NumberFormat(locale, {\n\t\tminimumFractionDigits: decimals,\n\t\tmaximumFractionDigits: decimals,\n\t}).format(majorUnits);\n\n\tif (showCode) {\n\t\treturn `${formatted} ${currency}`;\n\t}\n\n\tif (showSymbol) {\n\t\treturn `${formatted} ${symbol}`;\n\t}\n\n\treturn formatted;\n};\n\n/**\n * Format date with timezone and locale support\n */\nexport const formatDate = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateObj = typeof date === \"string\" ? parseDate(date, timezone) : date;\n\n\tif (locale === \"en\") {\n\t\treturn dateObj.toLocaleDateString(\"en-US\", {\n\t\t\ttimeZone: timezone,\n\t\t\tmonth: \"2-digit\",\n\t\t\tday: \"2-digit\",\n\t\t\tyear: \"numeric\",\n\t\t});\n\t}\n\n\treturn dateObj.toLocaleDateString(\"de-DE\", {\n\t\ttimeZone: timezone,\n\t\tday: \"2-digit\",\n\t\tmonth: \"2-digit\",\n\t\tyear: \"numeric\",\n\t});\n};\n\n/**\n * Format time with timezone and locale support\n */\nexport const formatTime = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateObj = typeof date === \"string\" ? parseDate(date, timezone) : date;\n\n\tif (locale === \"en\") {\n\t\treturn dateObj.toLocaleTimeString(\"en-US\", {\n\t\t\ttimeZone: timezone,\n\t\t\thour: \"2-digit\",\n\t\t\tminute: \"2-digit\",\n\t\t\thour12: true,\n\t\t});\n\t}\n\n\treturn dateObj.toLocaleTimeString(\"de-DE\", {\n\t\ttimeZone: timezone,\n\t\thour: \"2-digit\",\n\t\tminute: \"2-digit\",\n\t\thour12: false,\n\t});\n};\n\n/**\n * Format date and time with timezone and locale support\n */\nexport const formatDateTime = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateStr = formatDate(date, timezone, locale);\n\tconst timeStr = formatTime(date, timezone, locale);\n\treturn `${dateStr} ${timeStr}`;\n};\n\n/**\n * Format weekday with timezone and locale support\n */\nexport const formatWeekday = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateObj = typeof date === \"string\" ? parseDate(date, timezone) : date;\n\n\tif (locale === \"en\") {\n\t\treturn dateObj.toLocaleDateString(\"en-US\", {\n\t\t\ttimeZone: timezone,\n\t\t\tweekday: \"short\",\n\t\t});\n\t}\n\n\treturn dateObj.toLocaleDateString(\"de-DE\", {\n\t\ttimeZone: timezone,\n\t\tweekday: \"short\",\n\t});\n};\n\n/**\n * Format date for event display (day + month)\n */\nexport const formatEventDate = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateObj = typeof date === \"string\" ? parseDate(date, timezone) : date;\n\n\tif (locale === \"en\") {\n\t\treturn dateObj.toLocaleDateString(\"en-US\", {\n\t\t\ttimeZone: timezone,\n\t\t\tweekday: \"long\",\n\t\t\tday: \"numeric\",\n\t\t\tmonth: \"long\",\n\t\t\tyear: \"2-digit\",\n\t\t});\n\t}\n\n\treturn dateObj.toLocaleDateString(\"de-DE\", {\n\t\ttimeZone: timezone,\n\t\tweekday: \"long\",\n\t\tday: \"numeric\",\n\t\tmonth: \"long\",\n\t\tyear: \"2-digit\",\n\t});\n};\n\nexport const getApiUrl = (baseUrl: string, endpoint: string): string => {\n\tif (!baseUrl) return endpoint; // Should not happen with validation, but for safety\n\t// Remove trailing slash from baseUrl if it exists\n\tconst normalizedBaseUrl = baseUrl.endsWith(\"/\") ? baseUrl.slice(0, -1) : baseUrl;\n\treturn `${normalizedBaseUrl}/api${endpoint}`;\n};\n\n// URL parameter inference helper\nexport const inferConfigFromUrl = (baseConfig: UniversalBookingConfig): UniversalBookingConfig => {\n\t// Only run in browser environment\n\tif (typeof window === \"undefined\") {\n\t\treturn baseConfig;\n\t}\n\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst config = { ...baseConfig };\n\n\t// Check for URL parameters and override config if they exist\n\tconst eventInstanceId = urlParams.get(\"eventInstanceId\") || urlParams.get(\"instance\");\n\tconst categoryId = urlParams.get(\"categoryId\") || urlParams.get(\"category\");\n\tconst eventTypeId = urlParams.get(\"eventTypeId\") || urlParams.get(\"type\");\n\tconst eventTypeIds = urlParams.get(\"eventTypeIds\") || urlParams.get(\"types\");\n\n\tif (eventInstanceId && !Number.isNaN(Number(eventInstanceId))) {\n\t\t// Return config with only eventInstanceId set\n\t\tconst { categoryId: _, eventTypeId: __, eventTypeIds: ___, ...rest } = baseConfig;\n\t\treturn {\n\t\t\t...rest,\n\t\t\teventInstanceId: Number(eventInstanceId),\n\t\t};\n\t}\n\n\tif (categoryId && !Number.isNaN(Number(categoryId))) {\n\t\t// Return config with only categoryId set\n\t\tconst { eventInstanceId: _, eventTypeId: __, eventTypeIds: ___, ...rest } = baseConfig;\n\t\treturn {\n\t\t\t...rest,\n\t\t\tcategoryId: Number(categoryId),\n\t\t};\n\t}\n\n\tif (eventTypeId && !Number.isNaN(Number(eventTypeId))) {\n\t\t// Return config with only eventTypeId set\n\t\tconst { eventInstanceId: _, categoryId: __, eventTypeIds: ___, ...rest } = baseConfig;\n\t\treturn {\n\t\t\t...rest,\n\t\t\teventTypeId: Number(eventTypeId),\n\t\t};\n\t}\n\n\tif (eventTypeIds) {\n\t\t// Parse comma-separated list of event type IDs\n\t\tconst typeIds = eventTypeIds\n\t\t\t.split(\",\")\n\t\t\t.map((id) => Number(id.trim()))\n\t\t\t.filter((id) => !Number.isNaN(id));\n\t\tif (typeIds.length > 0) {\n\t\t\t// Return config with only eventTypeIds set\n\t\t\tconst { eventInstanceId: _, categoryId: __, eventTypeId: ___, ...rest } = baseConfig;\n\t\t\treturn {\n\t\t\t\t...rest,\n\t\t\t\teventTypeIds: typeIds,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn baseConfig;\n};\n\n// API helper functions\nexport const createApiHeaders = (config: UniversalBookingConfig) => {\n\treturn {\n\t\t\"Content-Type\": \"application/json\",\n\t};\n};\n\nexport const createRequestBody = (config: UniversalBookingConfig, additionalData: any) => {\n\treturn {\n\t\t...additionalData,\n\t\torganizationId: config.organizationId,\n\t};\n};\n","import * as React from 'react';\nimport React__default from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar isUndefined = (val) => val === undefined;\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n object[key] = newValue;\n object = object[key];\n }\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React__default.createContext(null);\nHookFormContext.displayName = 'HookFormContext';\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React__default.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React__default.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React__default.useState(control._formState);\n const _localProxyFormState = React__default.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n useIsomorphicLayoutEffect(() => control._subscribe({\n name,\n formState: _localProxyFormState.current,\n exact,\n callback: (formState) => {\n !disabled &&\n updateFormState({\n ...control._formState,\n ...formState,\n });\n },\n }), [name, disabled, exact]);\n React__default.useEffect(() => {\n _localProxyFormState.current.isValid && control._setValid(true);\n }, [control]);\n return React__default.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _defaultValue = React__default.useRef(defaultValue);\n const [value, updateValue] = React__default.useState(control._getWatch(name, _defaultValue.current));\n useIsomorphicLayoutEffect(() => control._subscribe({\n name,\n formState: {\n values: true,\n },\n exact,\n callback: (formState) => !disabled &&\n updateValue(generateWatchOutput(name, control._names, formState.values || control._formValues, false, _defaultValue.current)),\n }), [name, control, disabled, exact]);\n React__default.useEffect(() => control._removeUnmounted());\n return value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n exact: true,\n });\n const _props = React__default.useRef(props);\n const _registerProps = React__default.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n const fieldState = React__default.useMemo(() => Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }), [formState, name]);\n const onChange = React__default.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]);\n const onBlur = React__default.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control._formValues]);\n const ref = React__default.useCallback((elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus && elm.focus(),\n select: () => elm.select && elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n }, [control._fields, name]);\n const field = React__default.useMemo(() => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange,\n onBlur,\n ref,\n }), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);\n React__default.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n control.register(name, {\n ..._props.current.rules,\n ...(isBoolean(_props.current.disabled)\n ? { disabled: _props.current.disabled }\n : {}),\n });\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n !isArrayField && control.register(name);\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React__default.useEffect(() => {\n control._setDisabledField({\n disabled,\n name,\n });\n }, [disabled, name, control]);\n return React__default.useMemo(() => ({\n field,\n formState,\n fieldState,\n }), [field, formState, fieldState]);\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst flatten = (obj) => {\n const output = {};\n for (const key of Object.keys(obj)) {\n if (isObjectType(obj[key]) && obj[key] !== null) {\n const nested = flatten(obj[key]);\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n }\n else {\n output[key] = obj[key];\n }\n }\n return output;\n};\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React__default.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n const flattenFormValues = flatten(control._formValues);\n for (const key in flattenFormValues) {\n formData.append(key, flattenFormValues[key]);\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(String(action), {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React__default.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React__default.createElement(React__default.Fragment, null, render({\n submit,\n }))) : (React__default.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2, _internal_visited = new WeakSet()) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n if (_internal_visited.has(object1) || _internal_visited.has(object2)) {\n return true;\n }\n _internal_visited.add(object1);\n _internal_visited.add(object2);\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2, _internal_visited)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\nvar hasPromiseValidation = (fieldReference) => !!fieldReference &&\n !!fieldReference.validate &&\n !!((isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find((validateFunction) => validateFunction.constructor.name === ASYNC_FUNCTION)));\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n }\n else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n }\n return;\n};\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n if (foundError && foundError.root && foundError.root.type) {\n return {\n name: `${fieldName}.root`,\n error: foundError.root,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isMessage = (value) => isString(value);\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, disabledFieldNames, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isReady: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n const _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n let _proxySubscribeFormState = {\n ..._proxyFormState,\n };\n const _subjects = {\n array: createSubject(),\n state: createSubject(),\n };\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _setValid = async (shouldUpdateValid) => {\n if (!_options.disabled &&\n (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid ||\n shouldUpdateValid)) {\n const isValid = _options.resolver\n ? isEmptyObject((await _runSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (!_options.disabled &&\n (_proxyFormState.isValidating ||\n _proxyFormState.validatingFields ||\n _proxySubscribeFormState.isValidating ||\n _proxySubscribeFormState.validatingFields)) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _setFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields || _proxySubscribeFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _setValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!_options.disabled) {\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty || _proxySubscribeFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.dirtyFields ||\n _proxySubscribeFormState.dirtyFields) &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = (_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _runSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n _updateIsValidating(name);\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _runSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction = field._f && hasPromiseValidation(field._f);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name], true);\n }\n const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name]);\n }\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.forEach((checkboxRef) => {\n if (!checkboxRef.defaultChecked || !checkboxRef.disabled) {\n if (Array.isArray(fieldValue)) {\n checkboxRef.checked = !!fieldValue.find((data) => data === checkboxRef.value);\n }\n else {\n checkboxRef.checked =\n fieldValue === checkboxRef.value || !!fieldValue;\n }\n }\n });\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.state.next({\n name,\n values: cloneObject(_formValues),\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n if (!value.hasOwnProperty(fieldKey)) {\n return;\n }\n const fieldValue = value[fieldKey];\n const fieldName = name + '.' + fieldKey;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: cloneObject(_formValues),\n });\n if ((_proxyFormState.isDirty ||\n _proxyFormState.dirtyFields ||\n _proxySubscribeFormState.isDirty ||\n _proxySubscribeFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.state.next({\n name: _state.mount ? name : undefined,\n values: cloneObject(_formValues),\n });\n };\n const onChange = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n if (field) {\n let error;\n let isValid;\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.state.next({\n name,\n type: event.type,\n values: cloneObject(_formValues),\n });\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid || _proxySubscribeFormState.isValid) {\n if (_options.mode === 'onBlur') {\n if (isBlurEvent) {\n _setValid();\n }\n }\n else if (!isBlurEvent) {\n _setValid();\n }\n }\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _runSchema([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _setValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n ((_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.state.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const _subscribe = (props) => _subjects.state.subscribe({\n next: (formState) => {\n if (shouldSubscribeByName(props.name, formState.name, props.exact) &&\n shouldRenderFormState(formState, props.formState || _proxyFormState, _setFormState, props.reRenderRoot)) {\n props.callback({\n values: { ..._formValues },\n ..._formState,\n ...formState,\n });\n }\n },\n }).unsubscribe;\n const subscribe = (props) => {\n _state.mount = true;\n _proxySubscribeFormState = {\n ..._proxySubscribeFormState,\n ...props.formState,\n };\n return _subscribe({\n ...props,\n formState: _proxySubscribeFormState,\n });\n };\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.state.next({\n values: cloneObject(_formValues),\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _setValid();\n };\n const _setDisabledField = ({ disabled, name, }) => {\n if ((isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)) {\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled) || isBoolean(_options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _setDisabledField({\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n const currentField = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist &&\n e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _runSchema();\n _formState.errors = errors;\n fieldValues = cloneObject(values);\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n unset(fieldValues, name);\n }\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _setValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n for (const fieldName of _names.mount) {\n const value = get(values, fieldName, get(_defaultValues, fieldName));\n if (!isUndefined(value)) {\n set(values, fieldName, value);\n setValue(fieldName, get(values, fieldName));\n }\n }\n }\n _formValues = cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.state.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n _state.watch = !!_options.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n }\n }\n };\n const _setFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n const methods = {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _subscribe,\n _runSchema,\n _focusError,\n _getWatch,\n _getDirty,\n _setValid,\n _setFieldArray,\n _setDisabledField,\n _setErrors,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _removeUnmounted,\n _disableForm,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n subscribe,\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n return {\n ...methods,\n formControl: methods,\n };\n}\n\nvar generateId = () => {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, rules, } = props;\n const [fields, setFields] = React__default.useState(control._getFieldArray(name));\n const ids = React__default.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React__default.useRef(fields);\n const _name = React__default.useRef(name);\n const _actioned = React__default.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n rules &&\n control.register(name, rules);\n useIsomorphicLayoutEffect(() => control._subjects.array.subscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n }).unsubscribe, [control]);\n const updateValues = React__default.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._setFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._setFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React__default.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted) &&\n !getValidationModes(control._options.reValidateMode).isOnSubmit) {\n if (control._options.resolver) {\n control._runSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._names.disabled, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.state.next({\n name,\n values: cloneObject(control._formValues),\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._setValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React__default.useEffect(() => {\n !get(control._formValues, name) && control._setFieldArray(name);\n return () => {\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n control._options.shouldUnregister || shouldUnregister\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React__default.useCallback(swap, [updateValues, name, control]),\n move: React__default.useCallback(move, [updateValues, name, control]),\n prepend: React__default.useCallback(prepend, [updateValues, name, control]),\n append: React__default.useCallback(append, [updateValues, name, control]),\n remove: React__default.useCallback(remove, [updateValues, name, control]),\n insert: React__default.useCallback(insert$1, [updateValues, name, control]),\n update: React__default.useCallback(update, [updateValues, name, control]),\n replace: React__default.useCallback(replace, [updateValues, name, control]),\n fields: React__default.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React__default.useRef(undefined);\n const _values = React__default.useRef(undefined);\n const [formState, updateFormState] = React__default.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n isReady: false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n if (props.formControl) {\n _formControl.current = {\n ...props.formControl,\n formState,\n };\n if (props.defaultValues && !isFunction(props.defaultValues)) {\n props.formControl.reset(props.defaultValues, props.resetOptions);\n }\n }\n else {\n const { formControl, ...rest } = createFormControl(props);\n _formControl.current = {\n ...rest,\n formState,\n };\n }\n }\n const control = _formControl.current.control;\n control._options = props;\n useIsomorphicLayoutEffect(() => {\n const sub = control._subscribe({\n formState: control._proxyFormState,\n callback: () => updateFormState({ ...control._formState }),\n reRenderRoot: true,\n });\n updateFormState((data) => ({\n ...data,\n isReady: true,\n }));\n control._formState.isReady = true;\n return sub;\n }, [control]);\n React__default.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React__default.useEffect(() => {\n if (props.mode) {\n control._options.mode = props.mode;\n }\n if (props.reValidateMode) {\n control._options.reValidateMode = props.reValidateMode;\n }\n }, [control, props.mode, props.reValidateMode]);\n React__default.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n control._focusError();\n }\n }, [control, props.errors]);\n React__default.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.state.next({\n values: control._getWatch(),\n });\n }, [control, props.shouldUnregister]);\n React__default.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n React__default.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [control, props.values]);\n React__default.useEffect(() => {\n if (!control._state.mount) {\n control._setValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, createFormControl, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","import{get as t,set as e}from\"react-hook-form\";const s=(e,s,o)=>{if(e&&\"reportValidity\"in e){const r=t(o,s);e.setCustomValidity(r&&r.message||\"\"),e.reportValidity()}},o=(t,e)=>{for(const o in e.fields){const r=e.fields[o];r&&r.ref&&\"reportValidity\"in r.ref?s(r.ref,o,t):r.refs&&r.refs.forEach(e=>s(e,o,t))}},r=(s,r)=>{r.shouldUseNativeValidation&&o(s,r);const f={};for(const o in s){const n=t(r.fields,o),a=Object.assign(s[o]||{},{ref:n&&n.ref});if(i(r.names||Object.keys(s),o)){const s=Object.assign({},t(f,o));e(s,\"root\",a),e(f,o,s)}else e(f,o,a)}return f},i=(t,e)=>t.some(t=>t.startsWith(e+\".\"));export{r as toNestErrors,o as validateFieldsNatively};\n//# sourceMappingURL=resolvers.mjs.map\n","import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import{appendErrors as o}from\"react-hook-form\";var n=function(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n},t=function(o,t,s){return void 0===s&&(s={}),function(i,a,u){try{return Promise.resolve(function(e,n){try{var a=Promise.resolve(o[\"sync\"===s.mode?\"parse\":\"parseAsync\"](i,t)).then(function(e){return u.shouldUseNativeValidation&&r({},u),{errors:{},values:s.raw?i:e}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){if(function(r){return Array.isArray(null==r?void 0:r.errors)}(r))return{values:{},errors:e(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)};throw r}))}catch(r){return Promise.reject(r)}}};export{t as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import { useState } from \"react\";\n\n// Carousel navigation icons\nconst IconChevronLeft = ({ size = 20, color = \"white\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<polyline points=\"15 18 9 12 15 6\" />\n\t</svg>\n);\n\nconst IconChevronRight = ({ size = 20, color = \"white\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<polyline points=\"9 18 15 12 9 6\" />\n\t</svg>\n);\n\n// A placeholder SVG for events without an image.\nconst EventImagePlaceholder = () => (\n\t<div\n\t\tstyle={{\n\t\t\twidth: \"100%\",\n\t\t\theight: \"100%\",\n\t\t\tbackground: \"linear-gradient(135deg, var(--bw-highlight-muted), var(--bw-highlight-color))\",\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t\toverflow: \"hidden\",\n\t\t\tposition: \"relative\",\n\t\t}}\n\t>\n\t\t<svg\n\t\t\twidth=\"60%\"\n\t\t\theight=\"60%\"\n\t\t\tviewBox=\"0 0 120 40\"\n\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"absolute\",\n\t\t\t\topacity: 0.18,\n\t\t\t\tfilter: \"blur(0.5px)\",\n\t\t\t}}\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M0 30 Q 15 10, 30 30 T 60 30 T 90 30 T 120 30\"\n\t\t\t\tstroke=\"white\"\n\t\t\t\tstrokeWidth=\"4\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t/>\n\t\t\t<circle cx=\"20\" cy=\"25\" r=\"3\" fill=\"white\" opacity=\"0.7\" />\n\t\t\t<circle cx=\"100\" cy=\"28\" r=\"2\" fill=\"white\" opacity=\"0.5\" />\n\t\t</svg>\n\t</div>\n);\n\ninterface ImageCarouselProps {\n\timages: string[];\n\teventName: string;\n}\n\n// Image Carousel Component with smooth slide animations\nexport const ImageCarousel = ({ images, eventName }: ImageCarouselProps) => {\n\tconst [currentIndex, setCurrentIndex] = useState(0);\n\tconst [isTransitioning, setIsTransitioning] = useState(false);\n\n\tconst nextImage = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (isTransitioning) return;\n\t\tsetIsTransitioning(true);\n\t\tsetCurrentIndex((prev) => (prev + 1) % images.length);\n\t\tsetTimeout(() => setIsTransitioning(false), 400);\n\t};\n\n\tconst prevImage = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (isTransitioning) return;\n\t\tsetIsTransitioning(true);\n\t\tsetCurrentIndex((prev) => (prev - 1 + images.length) % images.length);\n\t\tsetTimeout(() => setIsTransitioning(false), 400);\n\t};\n\n\tconst goToImage = (index: number, e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (isTransitioning || index === currentIndex) return;\n\t\tsetIsTransitioning(true);\n\t\tsetCurrentIndex(index);\n\t\tsetTimeout(() => setIsTransitioning(false), 400);\n\t};\n\n\tif (images.length === 0) {\n\t\treturn <EventImagePlaceholder />;\n\t}\n\n\tif (images.length === 1) {\n\t\treturn (\n\t\t\t<img\n\t\t\t\tsrc={images[0]}\n\t\t\t\talt={eventName}\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tobjectFit: \"cover\",\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div style={{ position: \"relative\", width: \"100%\", height: \"100%\", overflow: \"hidden\" }}>\n\t\t\t{/* Image Container with sliding animation */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\twidth: `${images.length * 100}%`,\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\ttransform: `translateX(-${(currentIndex * 100) / images.length}%)`,\n\t\t\t\t\ttransition: \"transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{images.map((image, index) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: `${100 / images.length}%`,\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={image}\n\t\t\t\t\t\t\talt={`${eventName} - Bild ${index + 1}`}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\tobjectFit: \"cover\",\n\t\t\t\t\t\t\t\tdisplay: \"block\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* Navigation Buttons */}\n\t\t\t{images.length > 1 && (\n\t\t\t\t<>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={prevImage}\n\t\t\t\t\t\tdisabled={isTransitioning}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\tleft: \"12px\",\n\t\t\t\t\t\t\ttop: \"50%\",\n\t\t\t\t\t\t\ttransform: \"translateY(-50%)\",\n\t\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.5)\",\n\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tcursor: isTransitioning ? \"not-allowed\" : \"pointer\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\t\topacity: isTransitioning ? 0.5 : 1,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\tif (!isTransitioning) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(0, 0, 0, 0.7)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-50%) scale(1.1)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\tif (!isTransitioning) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(0, 0, 0, 0.5)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-50%) scale(1)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconChevronLeft size={20} color=\"white\" />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={nextImage}\n\t\t\t\t\t\tdisabled={isTransitioning}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\tright: \"12px\",\n\t\t\t\t\t\t\ttop: \"50%\",\n\t\t\t\t\t\t\ttransform: \"translateY(-50%)\",\n\t\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.5)\",\n\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tcursor: isTransitioning ? \"not-allowed\" : \"pointer\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\t\topacity: isTransitioning ? 0.5 : 1,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\tif (!isTransitioning) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(0, 0, 0, 0.7)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-50%) scale(1.1)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\tif (!isTransitioning) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(0, 0, 0, 0.5)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-50%) scale(1)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconChevronRight size={20} color=\"white\" />\n\t\t\t\t\t</button>\n\t\t\t\t</>\n\t\t\t)}\n\n\t\t\t{/* Indicators */}\n\t\t\t{images.length > 1 && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\tbottom: \"12px\",\n\t\t\t\t\t\tleft: \"50%\",\n\t\t\t\t\t\ttransform: \"translateX(-50%)\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{images.map((_, index) => (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tonClick={(e) => goToImage(index, e)}\n\t\t\t\t\t\t\tdisabled={isTransitioning}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: index === currentIndex ? \"16px\" : \"8px\",\n\t\t\t\t\t\t\t\theight: \"8px\",\n\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\tbackgroundColor: index === currentIndex ? \"white\" : \"rgba(255, 255, 255, 0.5)\",\n\t\t\t\t\t\t\t\tcursor: isTransitioning ? \"not-allowed\" : \"pointer\",\n\t\t\t\t\t\t\t\ttransition: \"all 0.3s ease\",\n\t\t\t\t\t\t\t\topacity: isTransitioning ? 0.7 : 1,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\tif (index !== currentIndex && !isTransitioning) {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(255, 255, 255, 0.8)\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1.2)\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\tif (index !== currentIndex && !isTransitioning) {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(255, 255, 255, 0.5)\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1)\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Image Counter with animation */}\n\t\t\t{images.length > 1 && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\ttop: \"12px\",\n\t\t\t\t\t\tright: \"12px\",\n\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.6)\",\n\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\tpadding: \"4px 8px\",\n\t\t\t\t\t\tborderRadius: \"12px\",\n\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\ttransform: isTransitioning ? \"scale(1.1)\" : \"scale(1)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{currentIndex + 1} / {images.length}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Loading overlay during transition */}\n\t\t\t{isTransitioning && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\tinset: 0,\n\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.1)\",\n\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t\tpointerEvents: \"none\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};","import { useEffect, useRef, useState } from \"react\";\nimport { formatCurrency, formatDate } from \"../utils\";\nimport { ImageCarousel } from \"./ImageCarousel\";\n\ninterface EventType {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\timages: string[];\n\tcategory: {\n\t\tid: number;\n\t\tname: string;\n\t\tcolor: string;\n\t};\n\tnextAvailableDate: string | null;\n\tbasePrice: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tmaxParticipants: number;\n\tavailableInstancesCount: number;\n\thasAvailableInstances: boolean;\n}\n\ninterface EventTypeSelectionProps {\n\teventTypes: EventType[];\n\tonEventTypeSelect: (eventType: EventType) => void;\n\tisLoading?: boolean;\n\tskeletonCount?: number;\n}\n\n// Custom minimal SVG icons (Lucide-style)\nexport const IconClock = ({ size = 16, color = \"#10b981\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t<polyline points=\"12 6 12 12 16 14\" />\n\t</svg>\n);\nexport const IconCalendar = ({ size = 16, color = \"#3b82f6\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n\t\t<line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\" />\n\t\t<line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\" />\n\t\t<line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\" />\n\t</svg>\n);\nconst IconTarget = ({ size = 48 }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t<circle cx=\"12\" cy=\"12\" r=\"6\" />\n\t\t<circle cx=\"12\" cy=\"12\" r=\"2\" />\n\t</svg>\n);\nconst IconSurfer = ({ size = 20 }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke=\"currentColor\"\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<path d=\"M7 20c2-2 8-2 10 0\" />\n\t\t<circle cx=\"16\" cy=\"5\" r=\"2\" />\n\t\t<path d=\"M5 17l5-5 2 2 5-5\" />\n\t\t<path d=\"M12 12l1.5-1.5c.5-.5 1.5-.5 2 0l2 2\" />\n\t</svg>\n);\n\n// A placeholder SVG for events without an image.\nconst EventImagePlaceholder = () => (\n\t<div\n\t\tstyle={{\n\t\t\twidth: \"100%\",\n\t\t\theight: \"100%\",\n\t\t\tbackground: \"linear-gradient(135deg, var(--bw-highlight-muted), var(--bw-highlight-color))\",\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t\toverflow: \"hidden\",\n\t\t\tposition: \"relative\",\n\t\t}}\n\t>\n\t\t<svg\n\t\t\twidth=\"60%\"\n\t\t\theight=\"60%\"\n\t\t\tviewBox=\"0 0 120 40\"\n\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"absolute\",\n\t\t\t\topacity: 0.18,\n\t\t\t\tfilter: \"blur(0.5px)\",\n\t\t\t}}\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M0 30 Q 15 10, 30 30 T 60 30 T 90 30 T 120 30\"\n\t\t\t\tstroke=\"white\"\n\t\t\t\tstrokeWidth=\"4\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t/>\n\t\t\t<circle cx=\"20\" cy=\"25\" r=\"3\" fill=\"white\" opacity=\"0.7\" />\n\t\t\t<circle cx=\"100\" cy=\"28\" r=\"2\" fill=\"white\" opacity=\"0.5\" />\n\t\t</svg>\n\t</div>\n);\n\n// Wave icon for booking action\nexport const IconWave = ({ size = 20, color = \"#0ea5e9\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<path d=\"M2 18c2-2 6-2 8 0s6 2 8 0 6-2 8 0\" />\n\t\t<path d=\"M2 12c2-2 6-2 8 0s6 2 8 0 6-2 8 0\" />\n\t\t<path d=\"M2 6c2-2 6-2 8 0s6 2 8 0 6-2 8 0\" />\n\t</svg>\n);\n\n// Helper to truncate text to a max length with ellipsis\nfunction truncateText(text: string, maxLength: number) {\n\tif (!text) return \"\";\n\treturn text.length > maxLength ? `${text.slice(0, maxLength - 1)}…` : text;\n}\n\n// Loading skeleton component that matches the actual design\nconst EventTypeSelectionSkeleton = ({ count = 4 }: { count?: number }) => (\n\t<>\n\t\t<style>{`\n\t\t\t@keyframes shimmer {\n\t\t\t\t0% { transform: translateX(-100%); }\n\t\t\t\t100% { transform: translateX(100%); }\n\t\t\t}\n\t\t\t\n\t\t\t.bw-skeleton-shimmer {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t\n\t\t\t.bw-skeleton-shimmer::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);\n\t\t\t\tanimation: shimmer 2s infinite;\n\t\t\t}\n\t\t\t\n\t\t\t@media (max-width: 600px) {\n\t\t\t\t.bw-skeleton-list {\n\t\t\t\t\tpadding: 8px !important;\n\t\t\t\t\tgap: 12px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-card {\n\t\t\t\t\tmax-width: 100% !important;\n\t\t\t\t\tflex: 1 1 100% !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-img {\n\t\t\t\t\theight: 160px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-content {\n\t\t\t\t\tpadding: 12px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-title {\n\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t\theight: 20px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-desc {\n\t\t\t\t\tmin-height: 100px !important;\n\t\t\t\t\tmax-height: 100px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-price {\n\t\t\t\t\tfont-size: 1.3rem !important;\n\t\t\t\t\theight: 28px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t`}</style>\n\t\t<div className=\"bw-skeleton-list bw-event-type-list\" style={{ padding: \"24px\" }}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexWrap: \"wrap\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\tgap: \"32px\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{Array.from({ length: count }).map((_, idx) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\tclassName=\"bw-skeleton-card bw-skeleton-shimmer bw-event-type-card\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\tboxShadow: \"var(--bw-shadow-md)\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\t\t\t\tflex: \"1 1 350px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Skeleton badge - same position as real badge */}\n\t\t\t\t\t\t<div style={{ position: \"absolute\", top: \"16px\", left: \"16px\", zIndex: 10 }}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"rgba(255, 255, 255, 0.2)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Skeleton Image - matches bw-event-type-img */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"bw-skeleton-img bw-event-type-img\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\theight: \"300px\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Skeleton Content - matches bw-event-type-content */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"bw-skeleton-content bw-event-type-content\"\n\t\t\t\t\t\t\tstyle={{ padding: \"24px\", flex: 1 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* Skeleton Category */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"60%\",\n\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t{/* Skeleton Title - matches bw-event-type-title */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"bw-skeleton-title bw-event-type-title\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"85%\",\n\t\t\t\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"12px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t{/* Skeleton Event Details - matches the icon + text layout */}\n\t\t\t\t\t\t\t<div style={{ marginBottom: \"10px\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\tgap: \"6px\",\n\t\t\t\t\t\t\t\t\t\tmarginBottom: \"6px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\tgap: \"6px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"120px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Skeleton Description - matches bw-event-type-desc with proper height */}\n\t\t\t\t\t\t\t<div className=\"bw-skeleton-desc bw-event-type-desc\" style={{ marginBottom: \"20px\" }}>\n\t\t\t\t\t\t\t\t{Array.from({ length: 5 }).map((_, lineIdx) => (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={lineIdx}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: lineIdx === 4 ? \"70%\" : \"100%\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Skeleton Price and Button - matches exact layout */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tmarginTop: \"20px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"bw-skeleton-price bw-event-type-price\"\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"120px\",\n\t\t\t\t\t\t\t\t\t\theight: \"48px\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\topacity: 0.3,\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t</>\n);\n\nexport function EventTypeSelection({\n\teventTypes,\n\tonEventTypeSelect,\n\tisLoading = false,\n\tskeletonCount = 4,\n}: EventTypeSelectionProps) {\n\t// State to track which event descriptions are expanded\n\tconst [expandedDescriptions, setExpandedDescriptions] = useState<Set<number>>(new Set());\n\t// State to track which descriptions are actually truncated\n\tconst [truncatedDescriptions, setTruncatedDescriptions] = useState<Set<number>>(new Set());\n\t// Refs to store description elements for measurement\n\tconst descriptionRefs = useRef<Map<number, HTMLParagraphElement>>(new Map());\n\n\tconst toggleDescription = (eventTypeId: number) => {\n\t\tsetExpandedDescriptions((prev) => {\n\t\t\tconst newSet = new Set(prev);\n\t\t\tif (newSet.has(eventTypeId)) {\n\t\t\t\tnewSet.delete(eventTypeId);\n\t\t\t} else {\n\t\t\t\tnewSet.add(eventTypeId);\n\t\t\t}\n\t\t\treturn newSet;\n\t\t});\n\t};\n\n\t// Check if text is truncated by comparing scroll height with client height\n\tconst checkTruncation = () => {\n\t\tconst newTruncated = new Set<number>();\n\t\tdescriptionRefs.current.forEach((element, eventTypeId) => {\n\t\t\tif (element && !expandedDescriptions.has(eventTypeId)) {\n\t\t\t\t// Add a small tolerance for rounding differences\n\t\t\t\tif (element.scrollHeight > element.clientHeight + 2) {\n\t\t\t\t\tnewTruncated.add(eventTypeId);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tsetTruncatedDescriptions(newTruncated);\n\t};\n\n\t// Check truncation on mount and when window resizes\n\tuseEffect(() => {\n\t\tconst timeoutId = setTimeout(checkTruncation, 100); // Small delay to ensure DOM is ready\n\n\t\tconst handleResize = () => {\n\t\t\tsetTimeout(checkTruncation, 100);\n\t\t};\n\n\t\twindow.addEventListener(\"resize\", handleResize);\n\n\t\treturn () => {\n\t\t\tclearTimeout(timeoutId);\n\t\t\twindow.removeEventListener(\"resize\", handleResize);\n\t\t};\n\t}, [eventTypes, expandedDescriptions]);\n\n\t// Set ref for description element\n\tconst setDescriptionRef = (eventTypeId: number) => (element: HTMLParagraphElement | null) => {\n\t\tif (element) {\n\t\t\tdescriptionRefs.current.set(eventTypeId, element);\n\t\t\t// Check truncation when ref is set\n\t\t\tsetTimeout(checkTruncation, 50);\n\t\t} else {\n\t\t\tdescriptionRefs.current.delete(eventTypeId);\n\t\t}\n\t};\n\n\t// Show loading skeleton\n\tif (isLoading) {\n\t\treturn <EventTypeSelectionSkeleton count={skeletonCount} />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<style>{`\n\t\t\t\t@media (max-width: 600px) {\n\t\t\t\t\t.bw-event-type-list {\n\t\t\t\t\t\tpadding: 8px !important;\n\t\t\t\t\t\tgap: 12px !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-card {\n\t\t\t\t\t\tmax-width: 100% !important;\n\t\t\t\t\t\tflex: 1 1 100% !important;\n\t\t\t\t\t\tpadding: 0 !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-img {\n\t\t\t\t\t\theight: 160px !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-title {\n\t\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-desc {\n\t\t\t\t\t\tfont-size: 0.8rem !important;\n\t\t\t\t\t\tmin-height: 100px !important;\n\t\t\t\t\t\tmax-height: 100px !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-price {\n\t\t\t\t\t\tfont-size: 1.3rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-content {\n\t\t\t\t\t\tpadding: 12px !important;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t\t{eventTypes.length === 0 ? (\n\t\t\t\t<div style={{ maxWidth: \"600px\", margin: \"0 auto\", padding: \"24px\" }}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tpadding: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tminHeight: \"400px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Empty State Icon */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"64px\",\n\t\t\t\t\t\t\t\theight: \"64px\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\tmargin: \"0 auto var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\topacity: 0.8,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t📅\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Empty State Title */}\n\t\t\t\t\t\t<h3\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-xl)\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-small) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tKeine Veranstaltungen verfügbar\n\t\t\t\t\t\t</h3>\n\n\t\t\t\t\t\t{/* Empty State Message */}\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-large) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\tmaxWidth: \"400px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDerzeit sind keine Veranstaltungen in dieser Kategorie verfügbar. Bitte schaue später\n\t\t\t\t\t\t\tnoch einmal vorbei oder kontaktiere uns direkt.\n\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t{/* Action Button */}\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tonClick={() => window.location.reload()}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-highlight-color)`,\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.color = \"white\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-1px)\";\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span style={{ fontSize: \"16px\" }}>🔄</span>\n\t\t\t\t\t\t\tSeite neu laden\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div className=\"bw-event-type-list\" style={{ padding: \"24px\" }}>\n\t\t\t\t\t{/* Event Types List */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexWrap: \"wrap\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tgap: \"32px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{eventTypes.map((eventType) => {\n\t\t\t\t\t\t\tconst isAvailable = eventType.hasAvailableInstances;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={eventType.id}\n\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-card\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.3s ease\",\n\t\t\t\t\t\t\t\t\t\tcursor: isAvailable ? \"pointer\" : \"not-allowed\",\n\t\t\t\t\t\t\t\t\t\topacity: isAvailable ? 1 : 0.6,\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"var(--bw-shadow-md)\",\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\t\t\t\t\t\t\tflex: \"1 1 350px\",\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonClick={() => isAvailable && onEventTypeSelect(eventType)}\n\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\tif (isAvailable) {\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-2px)\";\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.boxShadow = \"var(--bw-shadow-lg)\";\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\tif (isAvailable) {\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.boxShadow = \"var(--bw-shadow-md)\";\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{/* Availability Badge */}\n\t\t\t\t\t\t\t\t\t<div style={{ position: \"absolute\", top: \"16px\", left: \"16px\", zIndex: 10 }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"4px 8px\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: isAvailable\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"var(--bw-success-color)\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{isAvailable ? \"freie Plätze\" : \"Ausgebucht\"}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Main Image Carousel */}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-img\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ position: \"relative\", width: \"100%\", height: \"300px\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<ImageCarousel images={eventType.images} eventName={eventType.name} />\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Content Section */}\n\t\t\t\t\t\t\t\t\t<div className=\"bw-event-type-content\" style={{ padding: \"24px\" }}>\n\t\t\t\t\t\t\t\t\t\t{/* Category */}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{eventType.category.name}\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{/* Title */}\n\t\t\t\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-title\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"clamp(1.1rem, 2.5vw, 24px)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.3\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"0 0 12px 0\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{eventType.name}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\n\t\t\t\t\t\t\t\t\t\t{/* Event Details */}\n\t\t\t\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", gap: \"6px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<IconClock size={16} color=\"var(--bw-text-color)\" />\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{eventType.durationDays} Tag{eventType.durationDays > 1 ? \"e\" : \"\"}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", gap: \"6px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<IconCalendar size={16} color=\"var(--bw-text-color)\" />\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{eventType.nextAvailableDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t? `Freie Plätze ab ${formatDate(eventType.nextAvailableDate)}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"Keine Termine frei\"}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{/* Description */}\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\tref={setDescriptionRef(eventType.id)}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-desc\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"clamp(0.95rem, 2vw, 16px)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0 10px 0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t...(expandedDescriptions.has(eventType.id)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"-webkit-box\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitLineClamp: 5,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitBoxOrient: \"vertical\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminHeight: \"128px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxHeight: \"128px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{eventType.description || \" \"}\n\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t{eventType.description &&\n\t\t\t\t\t\t\t\t\t\t\t\t(truncatedDescriptions.has(eventType.id) ||\n\t\t\t\t\t\t\t\t\t\t\t\t\texpandedDescriptions.has(eventType.id)) && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleDescription(eventType.id);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextDecoration: \"underline\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"0.8\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"1\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{expandedDescriptions.has(eventType.id)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Weniger anzeigen\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"Mehr lesen\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{/* Price and Action */}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"20px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-price\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"clamp(1.3rem, 4vw, 32px)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(eventType.basePrice)}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t{isAvailable && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconWave size={20} color=\"var(--bw-text-color)\" /> Jetzt buchen\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{/* More Details Button */}\n\t\t\t\t\t\t\t\t\t\t{/* <div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\tpaddingTop: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderTop: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tMehr Details\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div> */}\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Unavailable Overlay */}\n\t\t\t\t\t\t\t\t\t{!isAvailable && (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\t\t\t\tinset: 0,\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.3)\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackdropFilter: \"blur(2px)\",\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"rgba(255, 255, 255, 0.9)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"var(--bw-shadow-md)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tAusgebucht\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactStripe = {}, global.React));\n})(this, (function (exports, React) { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaultExportFromCjs (x) {\n \treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n }\n\n var propTypes = {exports: {}};\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var ReactPropTypesSecret_1;\n var hasRequiredReactPropTypesSecret;\n\n function requireReactPropTypesSecret() {\n if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n hasRequiredReactPropTypesSecret = 1;\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var factoryWithThrowingShims;\n var hasRequiredFactoryWithThrowingShims;\n\n function requireFactoryWithThrowingShims() {\n if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n hasRequiredFactoryWithThrowingShims = 1;\n\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n return factoryWithThrowingShims;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes.exports = requireFactoryWithThrowingShims()();\n }\n\n var propTypesExports = propTypes.exports;\n var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);\n\n var useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n };\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n };\n\n var INVALID_STRIPE_ERROR$2 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(errorMsg);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(function (result) {\n return validateStripe(result, errorMsg);\n })\n };\n }\n\n var stripe = validateStripe(raw, errorMsg);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var registerWithStripeJs = function registerWithStripeJs(stripe) {\n if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"3.7.0\"\n });\n\n stripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"3.7.0\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n Elements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n };\n\n var _excluded$1 = [\"on\", \"session\"];\n var CheckoutSdkContext = /*#__PURE__*/React.createContext(null);\n CheckoutSdkContext.displayName = 'CheckoutSdkContext';\n var parseCheckoutSdkContext = function parseCheckoutSdkContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find CheckoutProvider context; You need to wrap the part of your app that \".concat(useCase, \" in an <CheckoutProvider> provider.\"));\n }\n\n return ctx;\n };\n var CheckoutContext = /*#__PURE__*/React.createContext(null);\n CheckoutContext.displayName = 'CheckoutContext';\n var extractCheckoutContextValue = function extractCheckoutContextValue(checkoutSdk, sessionState) {\n if (!checkoutSdk) {\n return null;\n }\n\n checkoutSdk.on;\n checkoutSdk.session;\n var actions = _objectWithoutProperties(checkoutSdk, _excluded$1);\n\n if (!sessionState) {\n return Object.assign(checkoutSdk.session(), actions);\n }\n\n return Object.assign(sessionState, actions);\n };\n var INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `CheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var CheckoutProvider = function CheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR$1);\n }, [rawStripeProp]); // State used to trigger a re-render when sdk.session is updated\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n session = _React$useState2[0],\n setSession = _React$useState2[1];\n\n var _React$useState3 = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n checkoutSdk: null\n };\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n ctx = _React$useState4[0],\n setContext = _React$useState4[1];\n\n var safeSetContext = function safeSetContext(stripe, checkoutSdk) {\n setContext(function (ctx) {\n if (ctx.stripe && ctx.checkoutSdk) {\n return ctx;\n }\n\n return {\n stripe: stripe,\n checkoutSdk: checkoutSdk\n };\n });\n }; // Ref used to avoid calling initCheckout multiple times when options changes\n\n\n var initCheckoutCalledRef = React.useRef(false);\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted && !initCheckoutCalledRef.current) {\n // Only update context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n initCheckoutCalledRef.current = true;\n stripe.initCheckout(options).then(function (checkoutSdk) {\n if (checkoutSdk) {\n safeSetContext(stripe, checkoutSdk);\n checkoutSdk.on('change', setSession);\n }\n });\n }\n });\n } else if (parsed.tag === 'sync' && parsed.stripe && !initCheckoutCalledRef.current) {\n initCheckoutCalledRef.current = true;\n parsed.stripe.initCheckout(options).then(function (checkoutSdk) {\n if (checkoutSdk) {\n safeSetContext(parsed.stripe, checkoutSdk);\n checkoutSdk.on('change', setSession);\n }\n });\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options, setSession]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on CheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n var prevCheckoutSdk = usePrevious(ctx.checkoutSdk);\n React.useEffect(function () {\n var _prevOptions$elements, _options$elementsOpti;\n\n // Ignore changes while checkout sdk is not initialized.\n if (!ctx.checkoutSdk) {\n return;\n }\n\n var previousAppearance = prevOptions === null || prevOptions === void 0 ? void 0 : (_prevOptions$elements = prevOptions.elementsOptions) === null || _prevOptions$elements === void 0 ? void 0 : _prevOptions$elements.appearance;\n var currentAppearance = options === null || options === void 0 ? void 0 : (_options$elementsOpti = options.elementsOptions) === null || _options$elementsOpti === void 0 ? void 0 : _options$elementsOpti.appearance;\n var hasAppearanceChanged = !isEqual(currentAppearance, previousAppearance);\n var hasSdkLoaded = !prevCheckoutSdk && ctx.checkoutSdk;\n\n if (currentAppearance && (hasAppearanceChanged || hasSdkLoaded)) {\n ctx.checkoutSdk.changeAppearance(currentAppearance);\n }\n }, [options, prevOptions, ctx.checkoutSdk, prevCheckoutSdk]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n var checkoutContextValue = React.useMemo(function () {\n return extractCheckoutContextValue(ctx.checkoutSdk, session);\n }, [ctx.checkoutSdk, session]);\n\n if (!ctx.checkoutSdk) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(CheckoutSdkContext.Provider, {\n value: ctx\n }, /*#__PURE__*/React.createElement(CheckoutContext.Provider, {\n value: checkoutContextValue\n }, children));\n };\n CheckoutProvider.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.shape({\n fetchClientSecret: PropTypes.func.isRequired,\n elementsOptions: PropTypes.object\n }).isRequired\n };\n var useCheckoutSdkContextWithUseCase = function useCheckoutSdkContextWithUseCase(useCaseString) {\n var ctx = React.useContext(CheckoutSdkContext);\n return parseCheckoutSdkContext(ctx, useCaseString);\n };\n var useElementsOrCheckoutSdkContextWithUseCase = function useElementsOrCheckoutSdkContextWithUseCase(useCaseString) {\n var checkoutSdkContext = React.useContext(CheckoutSdkContext);\n var elementsContext = React.useContext(ElementsContext);\n\n if (checkoutSdkContext && elementsContext) {\n throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both <CheckoutProvider> and <Elements> providers.\"));\n }\n\n if (checkoutSdkContext) {\n return parseCheckoutSdkContext(checkoutSdkContext, useCaseString);\n }\n\n return parseElementsContext(elementsContext, useCaseString);\n };\n var useCheckout = function useCheckout() {\n // ensure it's in CheckoutProvider\n useCheckoutSdkContextWithUseCase('calls useCheckout()');\n var ctx = React.useContext(CheckoutContext);\n\n if (!ctx) {\n throw new Error('Could not find Checkout Context; You need to wrap the part of your app that calls useCheckout() in an <CheckoutProvider> provider.');\n }\n\n return ctx;\n };\n\n var _excluded = [\"mode\"];\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange;\n var ctx = useElementsOrCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var elements = 'elements' in ctx ? ctx.elements : null;\n var checkoutSdk = 'checkoutSdk' in ctx ? ctx.checkoutSdk : null;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n useAttachEvent(element, 'change', onChange);\n var readyCallback;\n\n if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && domNode.current !== null && (elements || checkoutSdk)) {\n var newElement = null;\n\n if (checkoutSdk) {\n switch (type) {\n case 'payment':\n newElement = checkoutSdk.createPaymentElement(options);\n break;\n\n case 'address':\n if ('mode' in options) {\n var mode = options.mode,\n restOptions = _objectWithoutProperties(options, _excluded);\n\n if (mode === 'shipping') {\n newElement = checkoutSdk.createShippingAddressElement(restOptions);\n } else if (mode === 'billing') {\n newElement = checkoutSdk.createBillingAddressElement(restOptions);\n } else {\n throw new Error(\"Invalid options.mode. mode must be 'billing' or 'shipping'.\");\n }\n } else {\n throw new Error(\"You must supply options.mode. mode must be 'billing' or 'shipping'.\");\n }\n\n break;\n\n case 'expressCheckout':\n newElement = checkoutSdk.createExpressCheckoutElement(options);\n break;\n\n case 'currencySelector':\n newElement = checkoutSdk.createCurrencySelectorElement();\n break;\n\n default:\n throw new Error(\"Invalid Element type \".concat(displayName, \". You must use either the <PaymentElement />, <AddressElement options={{mode: 'shipping'}} />, <AddressElement options={{mode: 'billing'}} />, or <ExpressCheckoutElement />.\"));\n }\n } else if (elements) {\n newElement = elements.create(type, options);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n\n if (newElement) {\n newElement.mount(domNode.current);\n }\n }\n }, [elements, checkoutSdk, options]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates && 'update' in elementRef.current) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n useElementsOrCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n\n var EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\n EmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\n var useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n var ctx = React.useContext(EmbeddedCheckoutContext);\n\n if (!ctx) {\n throw new Error('<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>');\n }\n\n return ctx;\n };\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n }, [rawStripeProp]);\n var embeddedCheckoutPromise = React.useRef(null);\n var loadedStripe = React.useRef(null);\n\n var _React$useState = React.useState({\n embeddedCheckout: null\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n // Don't support any ctx updates once embeddedCheckout or stripe is set.\n if (loadedStripe.current || embeddedCheckoutPromise.current) {\n return;\n }\n\n var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n loadedStripe.current = stripe;\n embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n setContext({\n embeddedCheckout: embeddedCheckout\n });\n });\n }; // For an async stripePromise, store it once resolved\n\n\n if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe) {\n setStripeAndInitEmbeddedCheckout(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n // Or, handle a sync stripe instance going from null -> populated\n setStripeAndInitEmbeddedCheckout(parsed.stripe);\n }\n }, [parsed, options, ctx, loadedStripe]);\n React.useEffect(function () {\n // cleanup on unmount\n return function () {\n // If embedded checkout is fully initialized, destroy it.\n if (ctx.embeddedCheckout) {\n embeddedCheckoutPromise.current = null;\n ctx.embeddedCheckout.destroy();\n } else if (embeddedCheckoutPromise.current) {\n // If embedded checkout is still initializing, destroy it once\n // it's done. This could be caused by unmounting very quickly\n // after mounting.\n embeddedCheckoutPromise.current.then(function () {\n embeddedCheckoutPromise.current = null;\n\n if (ctx.embeddedCheckout) {\n ctx.embeddedCheckout.destroy();\n }\n });\n }\n };\n }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(loadedStripe);\n }, [loadedStripe]); // Warn on changes to stripe prop.\n // The stripe prop value can only go from null to non-null once and\n // can't be changed after that.\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (prevOptions == null) {\n return;\n }\n\n if (options == null) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n return;\n }\n\n if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n }\n\n if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n }\n\n if (prevOptions.onShippingDetailsChange != null && options.onShippingDetailsChange !== prevOptions.onShippingDetailsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it.');\n }\n\n if (prevOptions.onLineItemsChange != null && options.onLineItemsChange !== prevOptions.onLineItemsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.');\n }\n }, [prevOptions, options]);\n return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n value: ctx\n }, children);\n };\n\n var EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className;\n\n var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n var isMounted = React.useRef(false);\n var domNode = React.useRef(null);\n React.useLayoutEffect(function () {\n if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n embeddedCheckout.mount(domNode.current);\n isMounted.current = true;\n } // Clean up on unmount\n\n\n return function () {\n if (isMounted.current && embeddedCheckout) {\n try {\n embeddedCheckout.unmount();\n isMounted.current = false;\n } catch (e) {// Do nothing.\n // Parent effects are destroyed before child effects, so\n // in cases where both the EmbeddedCheckoutProvider and\n // the EmbeddedCheckout component are removed at the same\n // time, the embeddedCheckout instance will be destroyed,\n // which causes an error when calling unmount.\n }\n }\n };\n }, [embeddedCheckout]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domNode,\n id: id,\n className: className\n });\n }; // Only render the wrapper in a server environment.\n\n\n var EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n var id = _ref2.id,\n className = _ref2.className;\n // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n useEmbeddedCheckoutContext();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsOrCheckou = useElementsOrCheckoutSdkContextWithUseCase('calls useStripe()'),\n stripe = _useElementsOrCheckou.stripe;\n\n return stripe;\n };\n\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n var PaymentElement = createElementComponent('payment', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n */\n\n var CurrencySelectorElement = createElementComponent('currencySelector', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AddressElement = createElementComponent('address', isServer);\n /**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AddressElement = AddressElement;\n exports.AffirmMessageElement = AffirmMessageElement;\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.CheckoutProvider = CheckoutProvider;\n exports.CurrencySelectorElement = CurrencySelectorElement;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EmbeddedCheckout = EmbeddedCheckout;\n exports.EmbeddedCheckoutProvider = EmbeddedCheckoutProvider;\n exports.EpsBankElement = EpsBankElement;\n exports.ExpressCheckoutElement = ExpressCheckoutElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.LinkAuthenticationElement = LinkAuthenticationElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentElement = PaymentElement;\n exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.ShippingAddressElement = ShippingAddressElement;\n exports.useCheckout = useCheckout;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n}));\n","import { Elements, PaymentElement, useElements, useStripe } from \"@stripe/react-stripe-js\";\nimport React, { useState, useEffect } from \"react\";\nimport { createApiHeaders, createRequestBody, getApiUrl } from \"../utils\";\n\ninterface PaymentFormProps {\n\tconfig: any;\n\teventDetails: any;\n\tformData: any;\n\ttotalAmount: number;\n\tdiscountCode: any;\n\tonSuccess: (result: any) => void;\n\tonError: (error: string) => void;\n\tsystemConfig?: {\n\t\tsystemMode: string;\n\t\tstripePublishableKey: string;\n\t\tconnectedAccountId?: string;\n\t} | null;\n\tstripePromise: any;\n\tstripeAppearance?: any;\n}\n\n// Inner component that uses the Stripe hooks\nfunction PaymentFormInner({\n\tconfig,\n\teventDetails,\n\tformData,\n\ttotalAmount,\n\tdiscountCode,\n\tonSuccess,\n\tonError,\n\tsystemConfig,\n\tclientSecret,\n}: Omit<PaymentFormProps, \"stripePromise\" | \"stripeAppearance\"> & { clientSecret: string }) {\n\tconst stripe = useStripe();\n\tconst elements = useElements();\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [paymentError, setPaymentError] = useState<string | null>(null);\n\n\t// Payment intent is created by the parent wrapper component\n\n\tconst handleSubmit = async (e: React.FormEvent) => {\n\t\te.preventDefault();\n\n\t\tif (!stripe || !elements) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsLoading(true);\n\t\tsetPaymentError(null);\n\n\t\ttry {\n\t\t\t// Validate participant count before proceeding with payment\n\t\t\tconst participantCount = formData.participants.filter((p: any) => p.name.trim()).length;\n\t\t\tconst availableSpots = eventDetails.availableSpots || 0;\n\n\t\t\tif (participantCount > availableSpots) {\n\t\t\t\tsetPaymentError(\n\t\t\t\t\t`Du hast ${participantCount} Teilnehmer angegeben, aber es sind nur noch ${availableSpots} Plätze verfügbar. Bitte reduziere die Anzahl der Teilnehmer.`,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (participantCount === 0) {\n\t\t\t\tsetPaymentError(\"Mindestens ein Teilnehmer ist erforderlich.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// First, confirm the payment with Stripe\n\t\t\tconst { error, paymentIntent } = await stripe.confirmPayment({\n\t\t\t\telements,\n\t\t\t\tconfirmParams: {\n\t\t\t\t\treturn_url: window.location.href,\n\t\t\t\t},\n\t\t\t\tredirect: \"if_required\",\n\t\t\t});\n\n\t\t\tif (error) {\n\t\t\t\tif (error.type === \"card_error\" || error.type === \"validation_error\") {\n\t\t\t\t\tsetPaymentError(error.message || \"Zahlungsfehler\");\n\t\t\t\t} else {\n\t\t\t\t\tsetPaymentError(\"Ein unerwarteter Fehler ist aufgetreten.\");\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Payment succeeded, now create the booking\n\t\t\tif (paymentIntent && paymentIntent.status === \"succeeded\") {\n\t\t\t\t// Check if we have system configuration\n\t\t\t\tif (!systemConfig) {\n\t\t\t\t\tthrow new Error(\"System-Konfiguration nicht verfügbar. Bitte lade die Seite neu.\");\n\t\t\t\t}\n\n\t\t\t\t// Determine which endpoint to use based on system mode\n\t\t\t\tconst isConnectMode = systemConfig.systemMode === \"connect\";\n\t\t\t\tconst endpoint = isConnectMode\n\t\t\t\t\t? \"/booking/create-from-payment\"\n\t\t\t\t\t: \"/booking-proxy/create-booking\";\n\n\t\t\t\t// Calculate if this is a deposit payment\n\t\t\t\tconst fullAmount =\n\t\t\t\t\teventDetails.price * formData.participants.filter((p: any) => p.name.trim()).length;\n\t\t\t\tconst isDepositPayment = eventDetails.deposit > 0;\n\n\t\t\t\t// Build request body based on mode\n\t\t\t\tconst requestData = {\n\t\t\t\t\t// Payment info\n\t\t\t\t\tpaymentIntentId: paymentIntent.id,\n\t\t\t\t\tpaymentMethod: \"card\",\n\t\t\t\t\tpaymentStatus: isDepositPayment ? \"deposit_paid\" : \"paid\",\n\t\t\t\t\ttotalAmount,\n\t\t\t\t\tdepositAmount: isDepositPayment ? totalAmount : undefined,\n\t\t\t\t\tfullAmount: fullAmount,\n\n\t\t\t\t\t// Customer info\n\t\t\t\t\tcustomerEmail: formData.customerEmail,\n\t\t\t\t\tcustomerName: formData.customerName,\n\t\t\t\t\tcustomerPhone: formData.customerPhone,\n\n\t\t\t\t\t// Booking info\n\t\t\t\t\tparticipants: formData.participants.filter((p: any) => p.name.trim()),\n\t\t\t\t\teventInstanceId: config.eventInstanceId || eventDetails.id,\n\t\t\t\t\tdiscountCode: discountCode?.code,\n\t\t\t\t\tnotes: \"\",\n\t\t\t\t};\n\n\t\t\t\t// Add mode-specific fields\n\t\t\t\tif (isConnectMode) {\n\t\t\t\t\tObject.assign(requestData, {\n\t\t\t\t\t\tsource: \"connect\",\n\t\t\t\t\t\tstripeAccountType: \"connect\",\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// BYOK mode\n\t\t\t\t\tObject.assign(requestData, {\n\t\t\t\t\t\tbookingSystemApiUrl: config.apiBaseUrl,\n\t\t\t\t\t\t// apiKey would be added here if required\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst bookingResponse = await fetch(getApiUrl(config.apiBaseUrl, endpoint), {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: createApiHeaders(config),\n\t\t\t\t\tbody: JSON.stringify(createRequestBody(config, requestData)),\n\t\t\t\t});\n\n\t\t\t\tconst bookingData = await bookingResponse.json();\n\n\t\t\t\tif (!bookingResponse.ok) {\n\t\t\t\t\tthrow new Error(bookingData.error || \"Fehler beim Erstellen der Buchung\");\n\t\t\t\t}\n\n\t\t\t\t// Booking created successfully\n\t\t\t\tonSuccess({\n\t\t\t\t\tbooking: bookingData.booking,\n\t\t\t\t\tpayment: \"succeeded\",\n\t\t\t\t\tpaymentIntent: paymentIntent,\n\t\t\t\t\tformData: formData,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Zahlung wurde nicht bestätigt\");\n\t\t\t}\n\t\t} catch (err: any) {\n\t\t\tsetPaymentError(err.message || \"Fehler beim Verarbeiten der Zahlung\");\n\t\t\tonError(err.message || \"Fehler beim Verarbeiten der Zahlung\");\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\tconst buttonStyle = {\n\t\twidth: \"100%\",\n\t\tpadding: \"12px 24px\",\n\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\tcolor: \"var(--bw-text-color)\",\n\t\tborder: \"none\",\n\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\tfontSize: \"var(--bw-font-size)\",\n\t\tfontWeight: \"600\",\n\t\tcursor: isLoading ? \"not-allowed\" : \"pointer\",\n\t\topacity: isLoading ? 0.6 : 1,\n\t\ttransition: \"all 0.2s ease\",\n\t\tfontFamily: \"var(--bw-font-family)\",\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tgap: \"8px\",\n\t};\n\n\treturn (\n\t\t<form\n\t\t\tonSubmit={handleSubmit}\n\t\t\tstyle={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing)\" }}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"var(--bw-surface-muted-bg, rgba(51, 65, 85, 0.3))\",\n\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{/* @ts-ignore */}\n\t\t\t\t<PaymentElement\n\t\t\t\t\toptions={{\n\t\t\t\t\t\tlayout: \"accordion\",\n\t\t\t\t\t\tdefaultValues: {\n\t\t\t\t\t\t\tbillingDetails: {\n\t\t\t\t\t\t\t\tname: formData.customerName,\n\t\t\t\t\t\t\t\temail: formData.customerEmail,\n\t\t\t\t\t\t\t\tphone: formData.customerPhone,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{paymentError && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-error-bg-muted, rgba(239, 68, 68, 0.1))\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-error-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t⚠️ {paymentError}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<button\n\t\t\t\ttype=\"submit\"\n\t\t\t\tdisabled={!stripe || isLoading}\n\t\t\t\tstyle={buttonStyle}\n\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\tif (!isLoading) {\n\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\tif (!isLoading) {\n\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{isLoading ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t⠢\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\tVerarbeite Zahlung...\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t{totalAmount <\n\t\t\t\t\t\teventDetails.price * formData.participants.filter((p: any) => p.name.trim()).length\n\t\t\t\t\t\t\t? \"Anzahlen & buchen\"\n\t\t\t\t\t\t\t: \"Jetzt buchen\"}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</button>\n\n\t\t\t{/* Styles for animations */}\n\t\t\t<style>{`\n\t\t\t\t@keyframes spin {\n\t\t\t\t\tfrom { transform: rotate(0deg); }\n\t\t\t\t\tto { transform: rotate(360deg); }\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t</form>\n\t);\n}\n\n// Main PaymentForm component that handles payment intent creation and Elements wrapper\nexport function PaymentForm({\n\tconfig,\n\teventDetails,\n\tformData,\n\ttotalAmount,\n\tdiscountCode,\n\tonSuccess,\n\tonError,\n\tsystemConfig,\n\tstripePromise,\n\tstripeAppearance,\n}: PaymentFormProps) {\n\tconst [clientSecret, setClientSecret] = useState<string | null>(null);\n\tconst [isCreatingPaymentIntent, setIsCreatingPaymentIntent] = useState(false);\n\tconst [paymentError, setPaymentError] = useState<string | null>(null);\n\n\t// Create payment intent when component mounts or when relevant data changes\n\tuseEffect(() => {\n\t\tconst createPaymentIntent = async () => {\n\t\t\tif (!systemConfig || !eventDetails || !formData.participants?.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Validate required fields before creating payment intent\n\t\t\tconst participantCount =\n\t\t\t\tformData.participants?.filter((p: any) => p.name?.trim()).length || 0;\n\t\t\tif (participantCount === 0) {\n\t\t\t\treturn; // No valid participants\n\t\t\t}\n\n\t\t\t// Check if customer email is provided and valid (basic email validation)\n\t\t\tif (formData.customerEmail?.trim()) {\n\t\t\t\tconst emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\t\t\t\tif (!emailRegex.test(formData.customerEmail.trim())) {\n\t\t\t\t\treturn; // Invalid email format, don't create payment intent yet\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check if customer name is provided\n\t\t\tif (!formData.customerName?.trim()) {\n\t\t\t\treturn; // Customer name is required\n\t\t\t}\n\n\t\t\tsetIsCreatingPaymentIntent(true);\n\t\t\tsetPaymentError(null);\n\n\t\t\ttry {\n\t\t\t\t// Determine endpoint based on system mode\n\t\t\t\tconst isConnectMode = systemConfig.systemMode === \"connect\";\n\t\t\t\tconst endpoint = isConnectMode\n\t\t\t\t\t? \"/booking/create-payment-intent\"\n\t\t\t\t\t: \"/booking-proxy/create-payment-intent\";\n\n\t\t\t\t// Build request data\n\t\t\t\tconst requestData = {\n\t\t\t\t\teventInstanceId: config.eventInstanceId || eventDetails.id,\n\t\t\t\t\tamount: totalAmount,\n\t\t\t\t\tcurrency: \"eur\",\n\t\t\t\t\tparticipants: formData.participants.filter((p: any) => p.name.trim()),\n\t\t\t\t\tdiscountCode: discountCode?.code,\n\t\t\t\t\tcustomerEmail: formData.customerEmail,\n\t\t\t\t};\n\n\t\t\t\t// Add mode-specific fields\n\t\t\t\tif (!isConnectMode) {\n\t\t\t\t\t// BYOK mode needs additional fields\n\t\t\t\t\tObject.assign(requestData, {\n\t\t\t\t\t\tbookingSystemApiUrl: config.apiBaseUrl,\n\t\t\t\t\t\t// apiKey would be added here if required\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, endpoint), {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: createApiHeaders(config),\n\t\t\t\t\tbody: JSON.stringify(createRequestBody(config, requestData)),\n\t\t\t\t});\n\n\t\t\t\tconst data = await response.json();\n\n\t\t\t\tif (response.ok) {\n\t\t\t\t\tsetClientSecret(data.clientSecret);\n\t\t\t\t} else {\n\t\t\t\t\tsetPaymentError(data.error || \"Fehler beim Erstellen der Zahlungsabsicht\");\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tsetPaymentError(\"Fehler beim Erstellen der Zahlungsabsicht\");\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPaymentIntent(false);\n\t\t\t}\n\t\t};\n\n\t\t// Debounce the payment intent creation\n\t\tconst timer = setTimeout(createPaymentIntent, 500);\n\t\treturn () => clearTimeout(timer);\n\t}, [\n\t\tsystemConfig,\n\t\teventDetails,\n\t\tformData.participants,\n\t\tformData.customerEmail,\n\t\tformData.customerName,\n\t\ttotalAmount,\n\t\tdiscountCode,\n\t\tconfig,\n\t]);\n\n\t// Show loading state while creating payment intent\n\tif (isCreatingPaymentIntent || !clientSecret) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\tgap: \"8px\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t⠢\n\t\t\t\t</div>\n\t\t\t\t<span\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tZahlungsmöglichkeiten werden geladen...\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Show error if payment intent creation failed\n\tif (paymentError) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"var(--bw-error-bg-muted, rgba(239, 68, 68, 0.1))\",\n\t\t\t\t\tborder: `1px solid var(--bw-error-color)`,\n\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t⚠️ {paymentError}\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Render the payment form with Elements wrapper\n\treturn (\n\t\t// @ts-ignore\n\t\t<Elements\n\t\t\tstripe={stripePromise}\n\t\t\toptions={{\n\t\t\t\tclientSecret,\n\t\t\t\tappearance: stripeAppearance || { theme: \"stripe\" },\n\t\t\t\tlocale: (config.locale as any) || \"de\",\n\t\t\t}}\n\t\t>\n\t\t\t<PaymentFormInner\n\t\t\t\tconfig={config}\n\t\t\t\teventDetails={eventDetails}\n\t\t\t\tformData={formData}\n\t\t\t\ttotalAmount={totalAmount}\n\t\t\t\tdiscountCode={discountCode}\n\t\t\t\tonSuccess={onSuccess}\n\t\t\t\tonError={onError}\n\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\tclientSecret={clientSecret}\n\t\t\t/>\n\t\t</Elements>\n\t);\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { useStyles } from \"../styles/StyleProvider\";\n\ninterface SidebarProps {\n\tisOpen: boolean;\n\tonClose: () => void;\n\ttitle: string;\n\tchildren: React.ReactNode;\n\twidth?: string;\n}\n\nexport function Sidebar({ isOpen, onClose, title, children, width = \"400px\" }: SidebarProps) {\n\tconst [isVisible, setIsVisible] = useState(false);\n\tconst [isAnimating, setIsAnimating] = useState(false);\n\tconst themedStyles = useStyles();\n\tconst portalRootRef = useRef<HTMLElement | null>(null);\n\n\t// PERFORMANCE OPTIMIZATION: Reuse portal root and reduce DOM operations\n\tuseEffect(() => {\n\t\tif (!portalRootRef.current) {\n\t\t\tlet portalRoot = document.getElementById(\"booking-widget-portal-root\");\n\t\t\tif (!portalRoot) {\n\t\t\t\tportalRoot = document.createElement(\"div\");\n\t\t\t\tportalRoot.id = \"booking-widget-portal-root\";\n\t\t\t\tdocument.body.appendChild(portalRoot);\n\t\t\t}\n\t\t\tportalRootRef.current = portalRoot;\n\t\t}\n\t}, []);\n\n\t// PERFORMANCE OPTIMIZATION: Optimize animation timing\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\tsetIsVisible(true);\n\t\t\t// Use requestAnimationFrame for smoother animations\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tsetIsAnimating(true);\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tsetIsAnimating(false);\n\t\t\t// Shorter timeout for better perceived performance\n\t\t\tconst timeout = setTimeout(() => setIsVisible(false), 250);\n\t\t\treturn () => clearTimeout(timeout);\n\t\t}\n\t}, [isOpen]);\n\n\t// PERFORMANCE OPTIMIZATION: Optimize body scroll management\n\tuseEffect(() => {\n\t\tconst SidebarWithCount = Sidebar as any;\n\t\tif (isOpen) {\n\t\t\tSidebarWithCount.openCount = (SidebarWithCount.openCount || 0) + 1;\n\t\t\tif (SidebarWithCount.openCount === 1) {\n\t\t\t\tdocument.body.style.overflow = \"hidden\";\n\t\t\t}\n\t\t} else if (SidebarWithCount.openCount) {\n\t\t\tSidebarWithCount.openCount = SidebarWithCount.openCount - 1;\n\t\t\tif (SidebarWithCount.openCount === 0) {\n\t\t\t\tdocument.body.style.overflow = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (isOpen && SidebarWithCount.openCount) {\n\t\t\t\tSidebarWithCount.openCount = SidebarWithCount.openCount - 1;\n\t\t\t\tif (SidebarWithCount.openCount === 0) {\n\t\t\t\t\tdocument.body.style.overflow = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}, [isOpen]);\n\n\t// PERFORMANCE OPTIMIZATION: Optimize escape key handling\n\tuseEffect(() => {\n\t\tif (!isOpen) return;\n\n\t\tconst handleEscape = (e: KeyboardEvent) => {\n\t\t\tif (e.key === \"Escape\") {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener(\"keydown\", handleEscape);\n\t\treturn () => document.removeEventListener(\"keydown\", handleEscape);\n\t}, [isOpen, onClose]);\n\n\tif (!isVisible) return null;\n\n\tconst sidebarContent = (\n\t\t<div\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0,\n\t\t\t\t\tbottom: 0,\n\t\t\t\t\tzIndex: 1000,\n\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t...themedStyles,\n\t\t\t\t} as React.CSSProperties\n\t\t\t}\n\t\t>\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Simplified backdrop */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\tinset: 0,\n\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.5)\",\n\t\t\t\t\topacity: isAnimating ? 1 : 0,\n\t\t\t\t\ttransition: \"opacity 0.25s ease-out\",\n\t\t\t\t}}\n\t\t\t\tonClick={onClose}\n\t\t\t/>\n\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Optimized sidebar with hardware acceleration */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tright: 0,\n\t\t\t\t\tbottom: 0,\n\t\t\t\t\twidth,\n\t\t\t\t\tmaxWidth: \"90vw\",\n\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\tborderLeft: `1px solid var(--bw-border-color)`,\n\t\t\t\t\tboxShadow: \"var(--bw-shadow-lg)\",\n\t\t\t\t\ttransform: isAnimating ? \"translateX(0)\" : \"translateX(100%)\",\n\t\t\t\t\ttransition: \"transform 0.25s cubic-bezier(0.4, 0, 0.2, 1)\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\twillChange: \"transform\", // Enable hardware acceleration\n\t\t\t\t}}\n\t\t\t\tclassName=\"bw-sidebar-mobile\"\n\t\t\t>\n\t\t\t\t{/* Header */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tborderBottom: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h2\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</h2>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tpadding: \"8px 16px\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-text-color)\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"transparent\";\n\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-text-muted)\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t← Zurück\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Content */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\toverflow: \"auto\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Mobile responsive styles via CSS */}\n\t\t\t<style>{`\n\t\t\t\t@media (max-width: 600px) {\n\t\t\t\t\t.bw-sidebar-mobile {\n\t\t\t\t\t\twidth: 100vw !important;\n\t\t\t\t\t\tmax-width: 100vw !important;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t</div>\n\t);\n\n\treturn portalRootRef.current\n\t\t? ReactDOM.createPortal(sidebarContent, portalRootRef.current)\n\t\t: null;\n}\n\ninterface AccordionProps {\n\ttitle: string;\n\tpriceInfo?: string | React.ReactElement;\n\tchildren: React.ReactNode;\n\tisOpen: boolean;\n\tonToggle: () => void;\n}\n\nexport function Accordion({ title, priceInfo, children, isOpen, onToggle }: AccordionProps) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\toverflow: \"hidden\",\n\t\t\t}}\n\t\t>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\ttextAlign: \"left\",\n\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\tborder: \"none\",\n\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\ttransition: \"background-color 0.2s ease\",\n\t\t\t\t}}\n\t\t\t\tonClick={onToggle}\n\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\te.currentTarget.style.backgroundColor =\n\t\t\t\t\t\t\"var(--bw-surface-muted, rgba(59, 130, 246, 0.1))\";\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\te.currentTarget.style.backgroundColor = \"transparent\";\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<span style={{ fontSize: \"1.25rem\", fontWeight: 700, color: \"var(--bw-text-color)\" }}>\n\t\t\t\t\t{title}\n\t\t\t\t</span>\n\t\t\t\t{priceInfo && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"1rem\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\tmarginLeft: \"auto\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{priceInfo}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<span\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\ttransform: isOpen ? \"rotate(180deg)\" : \"rotate(0deg)\",\n\t\t\t\t\t\ttransition: \"transform 0.2s ease\",\n\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\tmarginLeft: \"16px\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t▼\n\t\t\t\t</span>\n\t\t\t</button>\n\t\t\t{isOpen && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tpadding: \"0 var(--bw-spacing) var(--bw-spacing)\",\n\t\t\t\t\t\tborderTop: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { zodResolver } from \"@hookform/resolvers/zod\";\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport React, { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { z } from \"zod\";\nimport {\n\tcreateApiHeaders,\n\tcreateRequestBody,\n\tformatCurrency,\n\tformatEventDate,\n\tgetApiUrl,\n} from \"../utils\";\nimport { IconCalendar, IconClock, IconWave } from \"./EventTypeSelection\";\nimport { PaymentForm } from \"./PaymentForm\";\nimport { Sidebar } from \"./Sidebar\";\n\n// Accordion component for the booking form\nconst Accordion = ({\n\ttitle,\n\tchildren,\n\tisOpen,\n\tonToggle,\n}: {\n\ttitle: string;\n\tchildren: React.ReactNode;\n\tisOpen: boolean;\n\tonToggle: () => void;\n}) => (\n\t<div\n\t\tstyle={{\n\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t}}\n\t>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\ttextAlign: \"left\",\n\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\tfontWeight: \"600\",\n\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\tborder: \"none\",\n\t\t\t\tcursor: \"pointer\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t}}\n\t\t\tonClick={onToggle}\n\t\t>\n\t\t\t<span>{title}</span>\n\t\t\t<span\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: isOpen ? \"rotate(180deg)\" : \"rotate(0deg)\",\n\t\t\t\t\ttransition: \"transform 0.2s ease\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t▼\n\t\t\t</span>\n\t\t</button>\n\t\t{isOpen && <div style={{ padding: \"var(--bw-spacing)\", paddingTop: 0 }}>{children}</div>}\n\t</div>\n);\n\n// Form schemas\nconst participantSchema = z.object({\n\tname: z.string().min(1, \"Name ist erforderlich\"),\n\tage: z.number().min(0).max(120).optional(),\n});\n\nconst bookingFormSchema = z.object({\n\tcustomerName: z.string().min(1, \"Name ist erforderlich\"),\n\tcustomerEmail: z.string().email(\"Gültige E-Mail-Adresse erforderlich\"),\n\tcustomerPhone: z.string().optional(),\n\tparticipants: z.array(participantSchema).min(1, \"Mindestens ein Teilnehmer erforderlich\"),\n\tdiscountCode: z.string().optional(),\n\tacceptTerms: z\n\t\t.boolean()\n\t\t.refine((val) => val === true, \"Bitte akzeptiere die Allgemeinen Geschäftsbedingungen\"),\n});\n\ntype BookingFormData = z.infer<typeof bookingFormSchema>;\n\ninterface EventDetails {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\tstartTime: string;\n\tendTime: string;\n\tprice: number;\n\tmaxParticipants: number;\n\tparticipantCount: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\timages: string[];\n\tcategory: {\n\t\tid: number;\n\t\tname: string;\n\t\tcolor: string;\n\t};\n\torganization: {\n\t\tid: string;\n\t\tname: string;\n\t\tslug?: string;\n\t};\n\tbookingOpen: boolean;\n\tagbUrl?: string;\n}\n\ninterface DiscountCode {\n\tid: number;\n\tcode: string;\n\tdescription?: string;\n\ttype: string;\n\tvalue: number;\n\tdiscountAmount: number;\n\tnewTotal: number;\n}\n\ninterface BookingFormProps {\n\tconfig: any; // Will be properly typed when main component is created\n\teventDetails: EventDetails;\n\tstripePromise: any;\n\tonSuccess: (result: any) => void;\n\tonError: (error: string) => void;\n\tonBackToEventInstances?: () => void;\n\tonBackToEventTypes?: () => void;\n\tselectedEventType?: any;\n\tselectedEventInstance?: any;\n\tisOpen: boolean;\n\tonClose: () => void;\n\tsystemConfig?: {\n\t\tsystemMode: string;\n\t\tstripePublishableKey: string;\n\t\tconnectedAccountId?: string;\n\t} | null;\n}\n\n// Inline SVG icons for warning, money, and spinner\nconst IconWarning = ({ size = 48, color = \"var(--bw-error-color)\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t<line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\" />\n\t\t<circle cx=\"12\" cy=\"16\" r=\"1\" />\n\t</svg>\n);\nconst IconMoney = ({ size = 20, color = \"var(--bw-text-muted)\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<rect x=\"2\" y=\"6\" width=\"20\" height=\"12\" rx=\"2\" />\n\t\t<circle cx=\"12\" cy=\"12\" r=\"4\" />\n\t\t<line x1=\"2\" y1=\"10\" x2=\"2\" y2=\"14\" />\n\t\t<line x1=\"22\" y1=\"10\" x2=\"22\" y2=\"14\" />\n\t</svg>\n);\nconst IconSpinner = ({ size = 16, color = \"currentColor\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\tstyle={{ display: \"block\" }}\n\t>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" strokeOpacity=\"0.2\" />\n\t\t<path d=\"M12 2a10 10 0 0 1 10 10\" />\n\t</svg>\n);\n\nexport function BookingForm({\n\tconfig,\n\teventDetails,\n\tstripePromise,\n\tonSuccess,\n\tonError,\n\tonBackToEventInstances,\n\tonBackToEventTypes,\n\tselectedEventType,\n\tselectedEventInstance,\n\tisOpen,\n\tonClose,\n\tsystemConfig,\n}: BookingFormProps) {\n\tconst [discountCode, setDiscountCode] = useState<DiscountCode | null>(null);\n\tconst [discountLoading, setDiscountLoading] = useState(false);\n\tconst [discountError, setDiscountError] = useState<string | null>(null);\n\n\tconst form = useForm<BookingFormData>({\n\t\tresolver: zodResolver(bookingFormSchema),\n\t\tdefaultValues: {\n\t\t\tparticipants: [{ name: \"\", age: undefined }],\n\t\t\tdiscountCode: \"\",\n\t\t\tacceptTerms: false,\n\t\t},\n\t});\n\n\tconst watchedParticipants = form.watch(\"participants\");\n\tconst watchedDiscountCode = form.watch(\"discountCode\");\n\tconst watchedCustomerName = form.watch(\"customerName\");\n\tconst watchedCustomerEmail = form.watch(\"customerEmail\");\n\tconst customerNameError = form.formState.errors.customerName;\n\tconst customerEmailError = form.formState.errors.customerEmail;\n\tconst watchedAcceptTerms = form.watch(\"acceptTerms\");\n\n\t// Calculate total amount and deposit amount\n\tconst calculateTotal = () => {\n\t\tif (!eventDetails) return 0;\n\t\tconst baseTotal = eventDetails.price * watchedParticipants.filter((p) => p.name.trim()).length;\n\t\treturn discountCode ? discountCode.newTotal : baseTotal;\n\t};\n\n\tconst calculateDeposit = () => {\n\t\tif (!eventDetails || !eventDetails.deposit) return 0;\n\t\tconst participantCount = watchedParticipants.filter((p) => p.name.trim()).length;\n\t\treturn eventDetails.deposit * participantCount;\n\t};\n\n\tconst totalAmount = calculateTotal();\n\tconst depositAmount = calculateDeposit();\n\tconst paymentAmount = depositAmount > 0 ? depositAmount : totalAmount;\n\n\t// Form validation helper\n\tconst isFormValid = () => {\n\t\tconst participantCount = watchedParticipants.filter((p) => p.name.trim()).length;\n\t\tconst validParticipants = participantCount > 0;\n\t\tconst participantsWithinLimit = participantCount <= (eventDetails?.availableSpots || 0);\n\t\tconst hasName =\n\t\t\twatchedCustomerName && watchedCustomerName.trim().length > 0 && !customerNameError;\n\t\tconst hasEmail =\n\t\t\twatchedCustomerEmail && watchedCustomerEmail.trim().length > 0 && !customerEmailError;\n\t\tconst hasAcceptedTerms = watchedAcceptTerms === true;\n\n\t\treturn validParticipants && participantsWithinLimit && hasName && hasEmail && hasAcceptedTerms;\n\t};\n\n\t// Validate discount codes\n\tuseEffect(() => {\n\t\tconst validateDiscountCode = async (code: string) => {\n\t\t\tif (!code.trim() || !eventDetails) {\n\t\t\t\tsetDiscountCode(null);\n\t\t\t\tsetDiscountError(null);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetDiscountLoading(true);\n\t\t\tsetDiscountError(null);\n\n\t\t\ttry {\n\t\t\t\tconst baseTotal =\n\t\t\t\t\teventDetails.price * watchedParticipants.filter((p) => p.name.trim()).length;\n\t\t\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/validate-discount\"), {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: createApiHeaders(config),\n\t\t\t\t\tbody: JSON.stringify(\n\t\t\t\t\t\tcreateRequestBody(config, {\n\t\t\t\t\t\t\tcode: code.trim(),\n\t\t\t\t\t\t\torderValue: baseTotal,\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t});\n\n\t\t\t\tconst data = await response.json();\n\n\t\t\t\tif (data.valid) {\n\t\t\t\t\tsetDiscountCode(data.discountCode);\n\t\t\t\t} else {\n\t\t\t\t\tsetDiscountCode(null);\n\t\t\t\t\tsetDiscountError(data.error);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tsetDiscountError(\"Fehler beim Validieren des Rabattcodes\");\n\t\t\t\tsetDiscountCode(null);\n\t\t\t} finally {\n\t\t\t\tsetDiscountLoading(false);\n\t\t\t}\n\t\t};\n\n\t\tconst timer = setTimeout(() => {\n\t\t\tvalidateDiscountCode(watchedDiscountCode || \"\");\n\t\t}, 500);\n\n\t\treturn () => clearTimeout(timer);\n\t}, [watchedDiscountCode, watchedParticipants, eventDetails, config]);\n\n\t// Helper functions\n\tconst addParticipant = () => {\n\t\tconst currentParticipants = form.getValues(\"participants\");\n\t\tconst availableSpots = eventDetails?.availableSpots || 0;\n\t\tif (currentParticipants.length < availableSpots) {\n\t\t\tform.setValue(\"participants\", [...currentParticipants, { name: \"\", age: undefined }]);\n\t\t} else {\n\t\t\talert(\n\t\t\t\t`Maximale Anzahl an Teilnehmern erreicht. Es sind nur noch ${availableSpots} Plätze verfügbar.`,\n\t\t\t);\n\t\t}\n\t};\n\n\tconst removeParticipant = (index: number) => {\n\t\tconst currentParticipants = form.getValues(\"participants\");\n\t\tif (currentParticipants.length > 1) {\n\t\t\tform.setValue(\n\t\t\t\t\"participants\",\n\t\t\t\tcurrentParticipants.filter((_, i) => i !== index),\n\t\t\t);\n\t\t}\n\t};\n\n\t// Stripe appearance based on theme CSS variables\n\tconst [stripeAppearance, setStripeAppearance] = useState<any>(null);\n\n\tuseEffect(() => {\n\t\tconst container = document.querySelector<HTMLElement>(\".booking-widget-container\");\n\t\tif (!container) return;\n\t\tconst styles = getComputedStyle(container);\n\t\tconst colorPrimary = styles.getPropertyValue(\"--bw-highlight-color\").trim();\n\t\tconst colorBackground = styles.getPropertyValue(\"--bw-surface-color\").trim();\n\t\tconst colorText = styles.getPropertyValue(\"--bw-text-color\").trim();\n\t\tconst colorDanger = styles.getPropertyValue(\"--bw-error-color\").trim();\n\t\tconst borderRadius = styles.getPropertyValue(\"--bw-border-radius\").trim();\n\t\tconst fontFamily = styles.getPropertyValue(\"--bw-font-family\").trim();\n\n\t\tsetStripeAppearance({\n\t\t\ttheme: config.theme.includes(\"dark\") ? \"night\" : \"stripe\",\n\t\t\tvariables: {\n\t\t\t\tcolorPrimary,\n\t\t\t\tcolorBackground,\n\t\t\t\tcolorText,\n\t\t\t\tcolorDanger,\n\t\t\t\tborderRadius,\n\t\t\t\tfontFamily,\n\t\t\t\tspacingUnit: \"4px\",\n\t\t\t},\n\t\t});\n\t}, [config.theme]);\n\n\tconst handleClose = () => {\n\t\tonClose();\n\t\tif (selectedEventInstance && selectedEventType) {\n\t\t\tonBackToEventInstances?.();\n\t\t} else if (selectedEventType) {\n\t\t\tonBackToEventTypes?.();\n\t\t}\n\t};\n\n\tif (!eventDetails.bookingOpen) {\n\t\treturn (\n\t\t\t<Sidebar isOpen={isOpen} onClose={handleClose} title=\"Buchung nicht möglich\">\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\tminHeight: \"400px\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tmargin: \"0 auto 16px\",\n\t\t\t\t\t\t\t\tfontSize: \"48px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<IconWarning size={48} color=\"var(--bw-error-color)\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h3\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tBuchung nicht möglich\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFür diese Veranstaltung sind derzeit keine Buchungen möglich.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Sidebar>\n\t\t);\n\t}\n\n\tconst inputStyle = {\n\t\twidth: \"100%\",\n\t\tpadding: \"12px\",\n\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\tborder: `1px solid var(--bw-border-color)`,\n\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\tcolor: \"var(--bw-text-color)\",\n\t\tfontSize: \"var(--bw-font-size)\",\n\t\tfontFamily: \"var(--bw-font-family)\",\n\t\toutline: \"none\",\n\t\ttransition: \"all 0.2s ease\",\n\t};\n\n\tconst labelStyle = {\n\t\tdisplay: \"block\",\n\t\tfontSize: \"var(--bw-font-size)\",\n\t\tfontWeight: \"500\",\n\t\tcolor: \"var(--bw-text-muted)\",\n\t\tmarginBottom: \"8px\",\n\t\tfontFamily: \"var(--bw-font-family)\",\n\t};\n\n\tconst buttonStyle = {\n\t\tcolor: \"var(--bw-highlight-color)\",\n\t\tfontSize: \"var(--bw-font-size)\",\n\t\tfontWeight: \"500\",\n\t\tpadding: \"8px 12px\",\n\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\tborder: `1px solid var(--bw-border-color)`,\n\t\tcursor: \"pointer\",\n\t\ttransition: \"all 0.2s ease\",\n\t\tfontFamily: \"var(--bw-font-family)\",\n\t};\n\n\treturn (\n\t\t<Sidebar\n\t\t\tisOpen={isOpen}\n\t\t\tonClose={handleClose}\n\t\t\ttitle={`Buchung - ${eventDetails.name}`}\n\t\t\twidth=\"420px\"\n\t\t>\n\t\t\t<div className=\"booking-widget-container\" style={{ padding: \"var(--bw-spacing)\" }}>\n\t\t\t\t{/* Event Details Card */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h2\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tmarginBottom: \"12px\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tEvent Details\n\t\t\t\t\t</h2>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\t\t\tgridTemplateColumns: \"repeat(auto-fit, minmax(200px, 1fr))\",\n\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<IconCalendar size={20} color=\"var(--bw-highlight-color)\" /> Datum:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatEventDate(eventDetails.startTime)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<IconMoney size={20} color=\"var(--bw-highlight-color)\" /> Preis:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatCurrency(eventDetails.price)} pro Person\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<IconClock size={20} color=\"var(--bw-highlight-color)\" /> Dauer:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{eventDetails.durationDays} Tag{eventDetails.durationDays > 1 ? \"e\" : \"\"}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Booking Form */}\n\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-large)\" }}>\n\t\t\t\t\t<form\n\t\t\t\t\t\tstyle={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-large)\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Customer Information */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"12px\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tKontaktdaten\n\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing)\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns: \"repeat(auto-fit, minmax(200px, 1fr))\",\n\t\t\t\t\t\t\t\t\t\tgap: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"customerName\" style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\tName *\n\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\tid=\"customerName\"\n\t\t\t\t\t\t\t\t\t\t\t{...form.register(\"customerName\")}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Dein vollständiger Name\"\n\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{customerNameError && (\n\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{customerNameError.message}\n\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"customerEmail\" style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\tE-Mail *\n\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\tid=\"customerEmail\"\n\t\t\t\t\t\t\t\t\t\t\t{...form.register(\"customerEmail\")}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"deine@email.de\"\n\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{customerEmailError && (\n\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{customerEmailError.message}\n\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"customerPhone\" style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\tTelefon (optional)\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\tid=\"customerPhone\"\n\t\t\t\t\t\t\t\t\t\t{...form.register(\"customerPhone\")}\n\t\t\t\t\t\t\t\t\t\ttype=\"tel\"\n\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"+49 123 456789\"\n\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Participants */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tTeilnehmer\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t{watchedParticipants.map((participant, index) => (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div style={{ flex: 1 }}>\n\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={`participant-name-${index}`} style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\t\tName *\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\tid={`participant-name-${index}`}\n\t\t\t\t\t\t\t\t\t\t\t\t{...form.register(`participants.${index}.name`)}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Teilnehmername\"\n\t\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{form.formState.errors.participants?.[index]?.name && (\n\t\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{form.formState.errors.participants[index]?.name?.message}\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div style={{ width: \"80px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={`participant-age-${index}`} style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\t\tAlter\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\tid={`participant-age-${index}`}\n\t\t\t\t\t\t\t\t\t\t\t\t{...form.register(`participants.${index}.age`, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetValueAs: (value) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (value === \"\" || value === null || value === undefined) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst num = Number(value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn Number.isNaN(num) ? undefined : num;\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\t\t\t\t\t\tmax=\"120\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"25\"\n\t\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{watchedParticipants.length > 1 && (\n\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={`participant-name-${index}`} style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => removeParticipant(index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"36px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"36px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"1.5rem\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t×\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{/* Add Participant Button Underneath */}\n\t\t\t\t\t\t\t\t{watchedParticipants.length < eventDetails.availableSpots ? (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"12px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={addParticipant}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"1rem\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"7px 15px\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"linear-gradient(90deg, var(--bw-highlight-color) 0%, var(--bw-highlight-color) 100%)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-highlight-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"0 2px 8px 0 var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = \"#fff\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"linear-gradient(90deg, var(--bw-highlight-color) 0%, var(--bw-highlight-color) 100%)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = \"#fff\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t+ Teilnehmer hinzufügen\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tMaximal {eventDetails.availableSpots} Plätze verfügbar.\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Discount Code */}\n\t\t\t\t\t\t{/* <Accordion\n\t\t\t\t\t\t\ttitle=\"Rabattcode (optional)\"\n\t\t\t\t\t\t\tisOpen={openSection === \"discount\"}\n\t\t\t\t\t\t\tonToggle={() => setOpenSection(openSection === \"discount\" ? \"discount\" : \"discount\")}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t{...form.register(\"discountCode\")}\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Rabattcode eingeben\"\n\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{discountLoading && (\n\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<IconSpinner size={16} color=\"var(--bw-highlight-color)\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\tValidiere Rabattcode...\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{discountError && (\n\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{discountError}\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{discountCode && (\n\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-success-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t✓ Rabatt angewendet: {discountCode.description} (-\n\t\t\t\t\t\t\t\t\t\t{formatCurrency(discountCode.discountAmount)})\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Accordion> */}\n\n\t\t\t\t\t\t{/* Terms */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\tid=\"acceptTerms\"\n\t\t\t\t\t\t\t\t\t{...form.register(\"acceptTerms\")}\n\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tmarginTop: \"4px\",\n\t\t\t\t\t\t\t\t\t\twidth: \"20px\",\n\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\taccentColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\tborderColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\thtmlFor=\"acceptTerms\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tIch akzeptiere die{\" \"}\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\thref={eventDetails.agbUrl || \"/terms\"}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\ttextDecoration: \"none\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tAllgemeinen Geschäftsbedingungen\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t*\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{form.formState.errors.acceptTerms && (\n\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{form.formState.errors.acceptTerms.message}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</form>\n\n\t\t\t\t\t{/* Summary & Payment */}\n\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-large)\" }}>\n\t\t\t\t\t\t{/* Total */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tBuchungszusammenfassung\n\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tAnzahl Teilnehmer:\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{watchedParticipants.filter((p) => p.name.trim()).length}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tPreis pro Person:\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{formatCurrency(eventDetails.price)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{depositAmount > 0 && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tAnzahlung pro Person:\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(eventDetails.deposit || 0)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{discountCode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tZwischensumme:\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextDecoration: \"line-through\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(\n\t\t\t\t\t\t\t\t\t\t\t\t\teventDetails.price *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchedParticipants.filter((p) => p.name.trim()).length,\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-success-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tRabatt:\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-success-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t-{formatCurrency(discountCode.discountAmount)}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tborderTop: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\tpaddingTop: \"12px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{depositAmount > 0 && (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tGesamtbetrag:\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(totalAmount)}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ color: \"var(--bw-text-color)\", fontFamily: \"var(--bw-font-family)\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{depositAmount > 0 ? \"Heute zu zahlen (Anzahlung):\" : \"Gesamtbetrag:\"}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(paymentAmount)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Payment */}\n\t\t\t\t\t\t{stripePromise &&\n\t\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\t\tif (!isFormValid()) {\n\t\t\t\t\t\t\t\t\tconst participantCount = watchedParticipants.filter((p) => p.name.trim()).length;\n\t\t\t\t\t\t\t\t\tconst missing = [];\n\t\t\t\t\t\t\t\t\tif (participantCount === 0) {\n\t\t\t\t\t\t\t\t\t\tmissing.push(\"einen Teilnehmer\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t!watchedCustomerName ||\n\t\t\t\t\t\t\t\t\t\twatchedCustomerName.trim().length === 0 ||\n\t\t\t\t\t\t\t\t\t\tcustomerNameError\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tmissing.push(\"einen Namen\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t!watchedCustomerEmail ||\n\t\t\t\t\t\t\t\t\t\twatchedCustomerEmail.trim().length === 0 ||\n\t\t\t\t\t\t\t\t\t\tcustomerEmailError\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tmissing.push(\"eine gültige E-Mail-Adresse\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (watchedAcceptTerms !== true) {\n\t\t\t\t\t\t\t\t\t\tmissing.push(\"die Akzeptanz der Allgemeinen Geschäftsbedingungen\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst message = `Bitte gib mindestens ${missing.join(\", \")} an, um fortzufahren.`;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{message}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tZahlung\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t<PaymentForm\n\t\t\t\t\t\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\t\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\t\t\t\t\t\t\tformData={form.getValues()}\n\t\t\t\t\t\t\t\t\t\t\ttotalAmount={paymentAmount}\n\t\t\t\t\t\t\t\t\t\t\tdiscountCode={discountCode}\n\t\t\t\t\t\t\t\t\t\t\tonSuccess={onSuccess}\n\t\t\t\t\t\t\t\t\t\t\tonError={onError}\n\t\t\t\t\t\t\t\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\t\t\t\t\t\t\t\tstripePromise={stripePromise}\n\t\t\t\t\t\t\t\t\t\t\tstripeAppearance={stripeAppearance}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Styles for animations */}\n\t\t\t\t<style>{`\n .booking-widget-container *,\n .booking-widget-container *::before,\n .booking-widget-container *::after {\n box-sizing: border-box;\n }\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}</style>\n\t\t\t</div>\n\t\t</Sidebar>\n\t);\n}\n","import { useState } from \"react\";\nimport { formatCurrency, formatTime, formatWeekday } from \"../utils\";\nimport { Accordion, Sidebar } from \"./Sidebar\";\n\ninterface EventType {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n}\n\ninterface EventInstance {\n\tid: number;\n\tname: string;\n\tstartTime: string;\n\tendTime: string;\n\tprice: number;\n\tmaxParticipants: number;\n\tparticipantCount: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\tnotes?: string;\n\tbookingOpen: boolean;\n}\n\ninterface EventInstanceSelectionProps {\n\teventInstances: EventInstance[];\n\tselectedEventType: EventType | null;\n\tonEventInstanceSelect: (eventInstance: EventInstance) => void;\n\tonBackToEventTypes: () => void;\n\tisOpen: boolean;\n\tonClose: () => void;\n\tisLoadingEventInstances?: boolean;\n\tisLoadingEventDetails?: boolean;\n}\n\nconst months = [\n\t\"Januar\",\n\t\"Februar\",\n\t\"März\",\n\t\"April\",\n\t\"Mai\",\n\t\"Juni\",\n\t\"Juli\",\n\t\"August\",\n\t\"September\",\n\t\"Oktober\",\n\t\"November\",\n\t\"Dezember\",\n];\n\n// Helper function to get allocation badge info based on availability\nconst getAllocationBadgeInfo = (\n\tavailableSpots: number,\n\tmaxParticipants: number,\n): { text: string; backgroundColor: string; textColor: string } | null => {\n\tconst availabilityRatio = availableSpots / maxParticipants;\n\n\t// Only show badge for low availability (less than 60%)\n\tif (availabilityRatio >= 0.6) return null;\n\n\t// Very low availability (30% or less) - \"fast ausgebucht\"\n\tif (availabilityRatio <= 0.3) {\n\t\treturn {\n\t\t\ttext: \"fast ausgebucht\",\n\t\t\tbackgroundColor: \"#7f1d1d\", // Dark red\n\t\t\ttextColor: \"#fca5a5\", // Bright red\n\t\t};\n\t}\n\n\t// Low availability (30-60%) - \"wenige Plätze\"\n\treturn {\n\t\ttext: \"beliebter Termin\",\n\t\tbackgroundColor: \"#b45309\", // Dark orange/yellow\n\t\ttextColor: \"#fbbf24\", // Bright yellow\n\t};\n};\n\n// Helper function to get price badge info for special prices\nconst getPriceBadgeInfo = (\n\tprice: number,\n\tyearPrices: number[],\n): { text: string; backgroundColor: string; textColor: string } | null => {\n\tif (yearPrices.length <= 1) return null;\n\n\tconst sortedPrices = [...new Set(yearPrices)].sort((a, b) => a - b); // Remove duplicates and sort\n\n\t// Need at least 2 different prices to show badges\n\tif (sortedPrices.length < 2) return null;\n\n\tconst lowestPrice = sortedPrices[0];\n\tconst secondLowestPrice = sortedPrices[1];\n\n\t// Show \"am günstigsten\" for the lowest price\n\tif (price === lowestPrice) {\n\t\treturn {\n\t\t\ttext: \"bester Preis !!!\",\n\t\t\tbackgroundColor: \"#14532d\", // Dark green\n\t\t\ttextColor: \"#4ade80\", // Bright green\n\t\t};\n\t}\n\n\t// Show \"günstig\" for second lowest price, but only if it's not the same as most other prices\n\tif (price === secondLowestPrice && sortedPrices.length > 2) {\n\t\treturn {\n\t\t\ttext: \"günstiger Preis\",\n\t\t\tbackgroundColor: \"#0e7490\", // Turquoise\n\t\t\ttextColor: \"#67e8f9\", // Light Turquoise\n\t\t};\n\t}\n\n\treturn null;\n};\n\n// Helper function to get price styling (for price display only, not badges)\nconst getPriceDisplayInfo = (\n\tprice: number,\n\tyearPrices: number[],\n): { backgroundColor: string; textColor: string } | null => {\n\tif (yearPrices.length <= 1) return null;\n\n\tconst sortedPrices = [...new Set(yearPrices)].sort((a, b) => a - b); // Remove duplicates and sort\n\n\t// If all prices are the same, use green styling\n\tif (sortedPrices.length === 1) {\n\t\treturn {\n\t\t\tbackgroundColor: \"#14532d\", // Dark green\n\t\t\ttextColor: \"#4ade80\", // Bright green\n\t\t};\n\t}\n\n\t// For different prices, use the badge info if available\n\tconst badgeInfo = getPriceBadgeInfo(price, yearPrices);\n\tif (badgeInfo) {\n\t\treturn {\n\t\t\tbackgroundColor: badgeInfo.backgroundColor,\n\t\t\ttextColor: badgeInfo.textColor,\n\t\t};\n\t}\n\n\treturn {\n\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\ttextColor: \"var(--bw-text-color)\",\n\t};\n};\n\n// Allocation Badge Component\nconst AllocationBadge = ({\n\tavailableSpots,\n\tmaxParticipants,\n}: { availableSpots: number; maxParticipants: number }) => {\n\tconst badgeInfo = getAllocationBadgeInfo(availableSpots, maxParticipants);\n\n\tif (!badgeInfo) return null;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tbottom: \"4px\",\n\t\t\t\tright: \"20px\",\n\t\t\t\tbackgroundColor: badgeInfo.backgroundColor,\n\t\t\t\tcolor: badgeInfo.textColor,\n\t\t\t\tfontSize: \"11px\",\n\t\t\t\tfontWeight: \"bold\",\n\t\t\t\tpadding: \"3px 8px\",\n\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\tboxShadow: \"0 2px 4px rgba(0, 0, 0, 0.2)\",\n\t\t\t\tzIndex: 50,\n\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t}}\n\t\t>\n\t\t\t{badgeInfo.text}\n\t\t</div>\n\t);\n};\n\n// Price Badge Component (for special prices)\nconst SpecialPriceBadge = ({ price, yearPrices }: { price: number; yearPrices: number[] }) => {\n\tconst badgeInfo = getPriceBadgeInfo(price, yearPrices);\n\n\tif (!badgeInfo) return null;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tbottom: \"28px\",\n\t\t\t\tright: \"20px\",\n\t\t\t\tbackgroundColor: badgeInfo.backgroundColor,\n\t\t\t\tcolor: badgeInfo.textColor,\n\t\t\t\tfontSize: \"11px\",\n\t\t\t\tfontWeight: \"bold\",\n\t\t\t\tpadding: \"3px 8px\",\n\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\tboxShadow: \"0 2px 4px rgba(0, 0, 0, 0.2)\",\n\t\t\t\tzIndex: 50,\n\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t}}\n\t\t>\n\t\t\t{badgeInfo.text}\n\t\t</div>\n\t);\n};\n\n// Price Display Component (with special price styling)\nconst PriceDisplay = ({ price, yearPrices }: { price: number; yearPrices: number[] }) => {\n\tconst displayInfo = getPriceDisplayInfo(price, yearPrices);\n\n\treturn (\n\t\t<span\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"inline-flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tbackgroundColor: displayInfo ? displayInfo.backgroundColor : \"var(--bw-background-color)\",\n\t\t\t\tcolor: displayInfo ? displayInfo.textColor : \"var(--bw-text-color)\",\n\t\t\t\tfontSize: \"var(--bw-font-size-medium)\",\n\t\t\t\tfontWeight: \"600\",\n\t\t\t\tpadding: \"3px 8px\",\n\t\t\t\tmarginTop: \"-3px\",\n\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\tborder: displayInfo ? \"none\" : \"1px solid var(--bw-border-color)\",\n\t\t\t\tboxShadow: displayInfo ? \"0 2px 4px rgba(0, 0, 0, 0.2)\" : \"none\",\n\t\t\t}}\n\t\t>\n\t\t\t{formatCurrency(price)}\n\t\t</span>\n\t);\n};\n\nexport function EventInstanceSelection({\n\teventInstances,\n\tselectedEventType,\n\tonEventInstanceSelect,\n\tonBackToEventTypes,\n\tisOpen,\n\tonClose,\n\tisLoadingEventInstances = false,\n\tisLoadingEventDetails = false,\n}: EventInstanceSelectionProps) {\n\tconst [selectedEventInstanceId, setSelectedEventInstanceId] = useState<number | null>(null);\n\tconst [openMonths, setOpenMonths] = useState<Set<number>>(new Set());\n\n\tconst getEventsForMonth = (monthIndex: number) => {\n\t\treturn eventInstances.filter(\n\t\t\t(instance) => new Date(instance.startTime).getMonth() === monthIndex,\n\t\t);\n\t};\n\n\tconst getMinPriceForMonth = (monthIndex: number): number => {\n\t\tconst monthEvents = getEventsForMonth(monthIndex);\n\t\tif (monthEvents.length === 0) return 0;\n\t\treturn Math.min(...monthEvents.map((event) => event.price));\n\t};\n\n\tconst getMonthPriceDisplayInfo = (\n\t\tminPrice: number,\n\t): { backgroundColor: string; textColor: string } | null => {\n\t\treturn getPriceDisplayInfo(minPrice, yearPrices);\n\t};\n\n\t// Get all prices for the current year to calculate percentiles\n\tconst currentYear = new Date().getFullYear();\n\tconst yearPrices = eventInstances\n\t\t.filter((instance) => new Date(instance.startTime).getFullYear() === currentYear)\n\t\t.map((instance) => instance.price);\n\n\tconst today = new Date();\n\n\t// Get months that have events\n\tconst monthsWithEvents = months\n\t\t.map((month, index) => ({\n\t\t\tmonth,\n\t\t\tindex,\n\t\t\tevents: getEventsForMonth(index).sort(\n\t\t\t\t(a, b) => new Date(a.startTime).getTime() - new Date(b.startTime).getTime(),\n\t\t\t),\n\t\t\tminPrice: getMinPriceForMonth(index),\n\t\t}))\n\t\t.filter((monthData) => monthData.events.length > 0);\n\n\tconst handleEventInstanceSelect = (eventInstance: EventInstance) => {\n\t\tsetSelectedEventInstanceId(eventInstance.id);\n\t\tonEventInstanceSelect(eventInstance);\n\t};\n\n\tconst toggleMonth = (monthIndex: number) => {\n\t\tif (openMonths.has(monthIndex)) {\n\t\t\t// Close if already open\n\t\t\tsetOpenMonths(new Set());\n\t\t} else {\n\t\t\t// Open only this one, close others\n\t\t\tsetOpenMonths(new Set([monthIndex]));\n\t\t}\n\t};\n\n\tconst handleClose = () => {\n\t\tonClose();\n\t\tonBackToEventTypes();\n\t};\n\n\t// Show loading state first if we're loading event instances\n\tif (isLoadingEventInstances) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<style>{`\n\t\t\t@keyframes shimmer {\n\t\t\t\t0% { transform: translateX(-100%); }\n\t\t\t\t100% { transform: translateX(100%); }\n\t\t\t}\n\t\t\t\n\t\t\t.bw-skeleton-shimmer {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t\n\t\t\t.bw-skeleton-shimmer::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);\n\t\t\t\tanimation: shimmer 2s infinite;\n\t\t\t}\n\n\t\t\t/* Shimmer effect for accordion triggers and instance cards */\n\t\t\t.bw-accordion-trigger,\n\t\t\t.bw-event-instance-card {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n\t\t\t.bw-accordion-trigger::before,\n\t\t\t.bw-event-instance-card::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: -100%;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);\n\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\tpointer-events: none;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t.bw-accordion-trigger:hover::before,\n\t\t\t.bw-event-instance-card:hover::before {\n\t\t\t\tleft: 100%;\n\t\t\t\ttransition: left 1.2s ease;\n\t\t\t}\n\n\t\t\t.bw-accordion-trigger:not(:hover)::before,\n\t\t\t.bw-event-instance-card:not(:hover)::before {\n\t\t\t\ttransition: none;\n\t\t\t}\n\n\t\t\t/* Ensure content stays above shimmer */\n\t\t\t.bw-accordion-trigger > *,\n\t\t\t.bw-event-instance-card > * {\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t@media (max-width: 600px) {\n\t\t\t\t.bw-event-instance-list {\n\t\t\t\t\tpadding: 16px !important;\n\t\t\t\t\tgap: 12px !important;\n\t\t\t\t}\n\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\tpadding: 12px 16px !important;\n\t\t\t\t\tfont-size: 0.95rem !important;\n\t\t\t\t}\n\t\t\t\t.bw-event-instance-datebox {\n\t\t\t\t\twidth: 32px !important;\n\t\t\t\t\theight: 32px !important;\n\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t}\n\t\t\t\t.bw-event-instance-title {\n\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t}\n\t\t\t\t.bw-event-instance-price {\n\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t}\n\t\t\t}\n\t\t`}</style>\n\t\t\t\t<Sidebar\n\t\t\t\t\tisOpen={isOpen}\n\t\t\t\t\tonClose={handleClose}\n\t\t\t\t\ttitle={`${selectedEventType?.name} Terminauswahl`}\n\t\t\t\t\twidth=\"500px\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"bw-event-instance-list\" style={{ padding: \"24px\" }}>\n\t\t\t\t\t\t{/* Skeleton Months with Events */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\tgap: \"20px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{Array.from({ length: 3 }).map((_, idx) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\t\t\t\tclassName=\"bw-skeleton-shimmer\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{/* Accordion Header Skeleton - matches exact structure */}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"16px 20px\",\n\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\tborderBottom: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{/* Month name skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{/* Chevron skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"2px\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{/* Price info skeleton */}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"70px\",\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\topacity: 0.3,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Accordion Content Skeleton */}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\tpaddingTop: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"12px 20px 20px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{Array.from({ length: 2 }).map((_, eventIdx) => (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tkey={eventIdx}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-card\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"16px 20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Event date and time skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"start\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Date box skeleton - matches bw-event-instance-datebox */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-datebox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTop: `4px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Date info skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Price skeleton - matches bw-event-instance-price */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-price\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"end\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"70px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\topacity: 0.3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t{/* Event name and duration skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"120px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"50px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t{/* Notes skeleton (optional) */}\n\t\t\t\t\t\t\t\t\t\t\t\t{eventIdx === 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"90%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Sidebar>\n\t\t\t</>\n\t\t);\n\t}\n\n\t// Show empty state only if not loading and no event instances\n\tif (eventInstances.length === 0) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<style>{`\n\t\t\t\t\t/* Shimmer effect for accordion triggers and instance cards */\n\t\t\t\t\t.bw-accordion-trigger,\n\t\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\t\tposition: relative;\n\t\t\t\t\t\toverflow: hidden;\n\t\t\t\t\t}\n\n\t\t\t\t\t.bw-accordion-trigger::before,\n\t\t\t\t\t.bw-event-instance-card::before {\n\t\t\t\t\t\tcontent: '';\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\ttop: 0;\n\t\t\t\t\t\tleft: -100%;\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\theight: 100%;\n\t\t\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);\n\t\t\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\t\t\tpointer-events: none;\n\t\t\t\t\t\tz-index: 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t.bw-accordion-trigger:hover::before,\n\t\t\t\t\t.bw-event-instance-card:hover::before {\n\t\t\t\t\t\tleft: 100%;\n\t\t\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\t\t}\n\n\t\t\t\t\t.bw-accordion-trigger:not(:hover)::before,\n\t\t\t\t\t.bw-event-instance-card:not(:hover)::before {\n\t\t\t\t\t\ttransition: none;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* Ensure content stays above shimmer */\n\t\t\t\t\t.bw-accordion-trigger > *,\n\t\t\t\t\t.bw-event-instance-card > * {\n\t\t\t\t\t\tposition: relative;\n\t\t\t\t\t\tz-index: 2;\n\t\t\t\t\t}\n\n\t\t\t\t\t@media (max-width: 600px) {\n\t\t\t\t\t\t.bw-event-instance-list {\n\t\t\t\t\t\t\tpadding: 16px !important;\n\t\t\t\t\t\t\tgap: 12px !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\t\t\tpadding: 12px 16px !important;\n\t\t\t\t\t\t\tfont-size: 0.95rem !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.bw-event-instance-datebox {\n\t\t\t\t\t\t\twidth: 32px !important;\n\t\t\t\t\t\t\theight: 32px !important;\n\t\t\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.bw-event-instance-title {\n\t\t\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.bw-event-instance-price {\n\t\t\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t`}</style>\n\t\t\t\t<Sidebar isOpen={isOpen} onClose={handleClose} title=\"Keine verfügbaren Termine\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"bw-event-instance-list\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tminHeight: \"400px\",\n\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmargin: \"0 auto 16px\",\n\t\t\t\t\t\t\t\t\tfontSize: \"48px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t📅\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<h3\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tKeine verfügbaren Termine\n\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tFür diesen Event-Typ sind derzeit keine Termine verfügbar.\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Sidebar>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<style>{`\n\t\t\t\t/* Shimmer effect for accordion triggers and instance cards */\n\t\t\t\t.bw-accordion-trigger,\n\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\n\t\t\t\t.bw-accordion-trigger::before,\n\t\t\t\t.bw-event-instance-card::before {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: -100%;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);\n\t\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\t\tpointer-events: none;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t}\n\n\t\t\t\t.bw-accordion-trigger:hover::before,\n\t\t\t\t.bw-event-instance-card:hover::before {\n\t\t\t\t\tleft: 100%;\n\t\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\t}\n\n\t\t\t\t.bw-accordion-trigger:not(:hover)::before,\n\t\t\t\t.bw-event-instance-card:not(:hover)::before {\n\t\t\t\t\ttransition: none;\n\t\t\t\t}\n\n\t\t\t\t/* Ensure content stays above shimmer */\n\t\t\t\t.bw-accordion-trigger > *,\n\t\t\t\t.bw-event-instance-card > * {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t}\n\n\t\t\t\t@media (max-width: 600px) {\n\t\t\t\t\t.bw-event-instance-list {\n\t\t\t\t\t\tpadding: 16px !important;\n\t\t\t\t\t\tgap: 12px !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\t\tpadding: 12px 16px !important;\n\t\t\t\t\t\tfont-size: 0.95rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-instance-datebox {\n\t\t\t\t\t\twidth: 32px !important;\n\t\t\t\t\t\theight: 32px !important;\n\t\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-instance-title {\n\t\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-instance-price {\n\t\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t\t<Sidebar\n\t\t\t\tisOpen={isOpen}\n\t\t\t\tonClose={handleClose}\n\t\t\t\ttitle={`Terminauswahl - ${selectedEventType?.name || \"Event\"}`}\n\t\t\t\twidth=\"500px\"\n\t\t\t>\n\t\t\t\t<div className=\"bw-event-instance-list\" style={{ padding: \"24px\" }}>\n\t\t\t\t\t{/* Months with Events */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\tgap: \"20px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{monthsWithEvents.map(({ month, index, events, minPrice }) => {\n\t\t\t\t\t\t\tconst monthPriceDisplayInfo = getMonthPriceDisplayInfo(minPrice);\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Accordion\n\t\t\t\t\t\t\t\t\tkey={month}\n\t\t\t\t\t\t\t\t\ttitle={month}\n\t\t\t\t\t\t\t\t\tpriceInfo={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"1rem\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: monthPriceDisplayInfo\n\t\t\t\t\t\t\t\t\t\t\t\t\t? monthPriceDisplayInfo.backgroundColor\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"#14532d\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: monthPriceDisplayInfo ? monthPriceDisplayInfo.textColor : \"#4ade80\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\t\t\t\t\t\tmarginLeft: \"auto\",\n\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"4px 8px\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborder: monthPriceDisplayInfo ? \"none\" : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: monthPriceDisplayInfo\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"0 2px 4px rgba(0, 0, 0, 0.2)\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{`ab ${formatCurrency(minPrice)}`}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisOpen={openMonths.has(index)}\n\t\t\t\t\t\t\t\t\tonToggle={() => toggleMonth(index)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\tpaddingTop: \"12px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{events.map((event) => {\n\t\t\t\t\t\t\t\t\t\t\tconst availableSpots = event.maxParticipants - event.participantCount;\n\t\t\t\t\t\t\t\t\t\t\tconst isFullyBooked = availableSpots === 0;\n\t\t\t\t\t\t\t\t\t\t\tconst startDate = new Date(event.startTime);\n\t\t\t\t\t\t\t\t\t\t\tconst isPastEvent = today.toISOString() >= startDate.toISOString();\n\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={event.id}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-card\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!isFullyBooked && !isPastEvent && event.bookingOpen\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"not-allowed\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"16px 20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topacity: isFullyBooked || isPastEvent ? 0.3 : 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter: isFullyBooked || isPastEvent ? \"grayscale(100%)\" : \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleEventInstanceSelect(event);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1.02)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"var(--bw-surface-muted, rgba(59, 130, 246, 0.1))\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{selectedEventInstanceId === event.id && isLoadingEventDetails && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-overlay-color, rgba(15, 23, 42, 0.8))\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color-muted, rgba(59, 130, 246, 0.8))\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t⟳\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Special Price Badge */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SpecialPriceBadge price={event.price} yearPrices={yearPrices} />\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Allocation Badge */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<AllocationBadge\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tavailableSpots={availableSpots}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxParticipants={event.maxParticipants}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Event date and time */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"start\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-datebox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTop: `4px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{startDate.getDate()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.2\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ fontWeight: \"600\", marginBottom: \"2px\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatWeekday(event.startTime)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontSize: \"14px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatTime(event.startTime)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Price */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-price\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"end\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<PriceDisplay price={event.price} yearPrices={yearPrices} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Event name and durationDays inline */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h4\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.25\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"0 0 2px 0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{event.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 400,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginLeft: \"6px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: \"var(--bw-background-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"2px 8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{event.durationDays} Tag{event.durationDays > 1 ? \"e\" : \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</h4>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Notes */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{event.notes && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"-webkit-box\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitBoxOrient: \"vertical\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitLineClamp: 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.3\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{event.notes}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Accordion>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Sidebar>\n\t\t</>\n\t);\n}\n","import React, { useState } from \"react\";\nimport { formatCurrency, formatTime, formatWeekday } from \"../utils\";\nimport type { UpcomingEvent } from \"./UniversalBookingWidget\";\n\ninterface NextEventsPreviewProps {\n\tevents: UpcomingEvent[];\n\tonEventSelect: (eventInstanceId: number) => void;\n\tonShowAll: () => void;\n\tshowAllButtonText: string;\n\tshowAllButton: boolean;\n\tisLoadingEventDetails?: boolean;\n\tisLoadingShowAll?: boolean;\n\tisLoading?: boolean;\n}\n\n// Loading skeleton component for NextEventsPreview\nconst NextEventsPreviewSkeleton = ({ count = 3 }: { count?: number }) => (\n\t<>\n\t\t<style>{`\n\t\t\t@keyframes shimmer {\n\t\t\t\t0% { transform: translateX(-100%); }\n\t\t\t\t100% { transform: translateX(100%); }\n\t\t\t}\n\t\t\t\n\t\t\t.bw-next-events-skeleton {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t\n\t\t\t.bw-next-events-skeleton::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);\n\t\t\t\tanimation: shimmer 2s infinite;\n\t\t\t}\n\t\t`}</style>\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\tmargin: \"0 auto\",\n\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t}}\n\t\t>\n\t\t\t{/* Skeleton Header */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tmarginBottom: \"var(--bw-spacing-lg)\",\n\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"280px\",\n\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\tmargin: \"0 auto 8px\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"320px\",\n\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\tmargin: \"0 auto\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{/* Skeleton Events */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\tmarginBottom: \"var(--bw-spacing-lg)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{Array.from({ length: count }).map((_, idx) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\tclassName=\"bw-next-events-skeleton\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tpadding: \"8px 10px\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* Date and time skeleton */}\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"start\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Price skeleton */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\talignItems: \"end\",\n\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"70px\",\n\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\topacity: 0.3,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"50px\",\n\t\t\t\t\t\t\t\t\t\theight: \"12px\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Event name skeleton */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"140px\",\n\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"50px\",\n\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"8px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* Skeleton Show All Button */}\n\t\t\t<div style={{ textAlign: \"center\" }}>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"160px\",\n\t\t\t\t\t\theight: \"48px\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tmargin: \"0 auto\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t</>\n);\n\nexport function NextEventsPreview({\n\tevents,\n\tonEventSelect,\n\tonShowAll,\n\tshowAllButtonText,\n\tshowAllButton,\n\tisLoadingEventDetails = false,\n\tisLoadingShowAll = false,\n\tisLoading = false,\n}: NextEventsPreviewProps) {\n\tconst [selectedEventInstanceId, setSelectedEventInstanceId] = useState<number | null>(null);\n\n\tconst handleEventSelect = (eventInstanceId: number) => {\n\t\tsetSelectedEventInstanceId(eventInstanceId);\n\t\tonEventSelect(eventInstanceId);\n\t};\n\n\t// Show loading skeleton\n\tif (isLoading) {\n\t\treturn <NextEventsPreviewSkeleton count={3} />;\n\t}\n\n\tif (events.length === 0) {\n\t\treturn (\n\t\t\t<div style={{ maxWidth: \"500px\", margin: \"0 auto\", padding: \"var(--bw-spacing)\" }}>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\tminHeight: \"300px\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{/* Empty State Icon */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: \"64px\",\n\t\t\t\t\t\t\theight: \"64px\",\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\tmargin: \"0 auto var(--bw-spacing)\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\topacity: 0.8,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t📅\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Empty State Title */}\n\t\t\t\t\t<h3\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-xl)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-small) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tKeine bevorstehenden Termine\n\t\t\t\t\t</h3>\n\n\t\t\t\t\t{/* Empty State Message */}\n\t\t\t\t\t<p\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-large) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tmaxWidth: \"400px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tAktuell sind keine Termine verfügbar. Bitte schaue später noch einmal vorbei oder\n\t\t\t\t\t\tkontaktiere uns direkt.\n\t\t\t\t\t</p>\n\n\t\t\t\t\t{/* Action Button */}\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() => window.location.reload()}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-highlight-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\te.currentTarget.style.color = \"white\";\n\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-1px)\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span style={{ fontSize: \"16px\" }}>🔄</span>\n\t\t\t\t\t\tSeite neu laden\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\tmargin: \"0 auto\",\n\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tmarginBottom: \"var(--bw-spacing-lg)\",\n\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<h2\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmargin: \"0 0 8px 0\",\n\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tNächste verfügbare Termine\n\t\t\t\t</h2>\n\t\t\t\t<p\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmargin: \"0\",\n\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tWähle einen Termin aus oder zeige alle verfügbaren Termine an\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\tmarginBottom: \"var(--bw-spacing-lg)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{events.map((event) => {\n\t\t\t\t\tconst availableSpots = event.maxParticipants - event.participantCount;\n\t\t\t\t\tconst isFullyBooked = availableSpots === 0;\n\t\t\t\t\tconst startDate = new Date(event.startTime);\n\t\t\t\t\tconst today = new Date();\n\t\t\t\t\tconst isPastEvent = today.toISOString() >= startDate.toISOString();\n\t\t\t\t\tconst isFullAvailability = availableSpots / event.maxParticipants >= 0.8;\n\t\t\t\t\tconst isHighAvailability = availableSpots / event.maxParticipants >= 0.5;\n\t\t\t\t\tconst isMediumAvailability = availableSpots / event.maxParticipants >= 0.3;\n\t\t\t\t\tconst isLowAvailability = availableSpots / event.maxParticipants >= 0.15;\n\n\t\t\t\t\tconst getAvailabilityColor = () => {\n\t\t\t\t\t\tif (isFullAvailability) return \"var(--bw-success-color)\";\n\t\t\t\t\t\tif (isHighAvailability) return \"var(--bw-warning-color)\";\n\t\t\t\t\t\tif (isMediumAvailability) return \"var(--bw-availability-medium-color, #f97316)\"; // orange fallback\n\t\t\t\t\t\tif (isLowAvailability) return \"var(--bw-availability-low-color, #8b5cf6)\"; // purple fallback\n\t\t\t\t\t\treturn \"var(--bw-highlight-color)\";\n\t\t\t\t\t};\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={event.id}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\tcursor:\n\t\t\t\t\t\t\t\t\t!isFullyBooked && !isPastEvent && event.bookingOpen ? \"pointer\" : \"not-allowed\",\n\t\t\t\t\t\t\t\tborder: \"1px solid\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"8px 10px\",\n\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\topacity: isFullyBooked || isPastEvent ? 0.3 : 1,\n\t\t\t\t\t\t\t\tfilter: isFullyBooked || isPastEvent ? \"grayscale(100%)\" : \"none\",\n\t\t\t\t\t\t\t\tborderColor: getAvailabilityColor(),\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\thandleEventSelect(event.id);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1.02)\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor =\n\t\t\t\t\t\t\t\t\t\t\"var(--bw-surface-hover, rgba(0, 0, 0, 0.05))\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1)\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{selectedEventInstanceId === event.id && isLoadingEventDetails && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-overlay-color, rgba(15, 23, 42, 0.8))\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color-muted, rgba(59, 130, 246, 0.8))\",\n\t\t\t\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t⟳\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* Event date and time */}\n\t\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"start\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\tborderTop: `4px solid ${getAvailabilityColor()}`,\n\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid\",\n\t\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderColor: getAvailabilityColor(),\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{startDate.getDate()}\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"start\",\n\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.2\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"2px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{formatWeekday(event.startTime)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{formatTime(event.startTime)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{/* Price */}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"end\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.price !== null ? formatCurrency(event.price) : \"Preis auf Anfrage\"}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t{event.deposit && event.deposit > 0 && (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tab {formatCurrency(event.deposit)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Event name and durationDays inline */}\n\t\t\t\t\t\t\t<h4\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tlineHeight: \"1.25\",\n\t\t\t\t\t\t\t\t\tmargin: \"0 0 2px 0\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{event.name}\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\tfontWeight: 400,\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\tmarginLeft: \"6px\",\n\t\t\t\t\t\t\t\t\t\tbackground: \"var(--bw-surface-muted)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"8px\",\n\t\t\t\t\t\t\t\t\t\tpadding: \"2px 8px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{event.durationDays} Tag{event.durationDays > 1 ? \"e\" : \"\"}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</h4>\n\n\t\t\t\t\t\t\t{/* Notes */}\n\t\t\t\t\t\t\t{event.notes && (\n\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\tdisplay: \"-webkit-box\",\n\t\t\t\t\t\t\t\t\t\tWebkitBoxOrient: \"vertical\",\n\t\t\t\t\t\t\t\t\t\tWebkitLineClamp: 2,\n\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t\tmargin: \"0\",\n\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.3\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{event.notes}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{showAllButton && (\n\t\t\t\t<div style={{ textAlign: \"center\" }}>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdisabled={isLoadingShowAll}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tborder: \"1px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tcursor: isLoadingShowAll ? \"not-allowed\" : \"pointer\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\topacity: isLoadingShowAll ? 0.7 : 1,\n\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClick={onShowAll}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\tif (!isLoadingShowAll) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.color = \"white\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\tif (!isLoadingShowAll) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isLoadingShowAll ? (\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t⟳\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\tLädt...\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tshowAllButtonText\n\t\t\t\t\t\t)}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Styles for animations */}\n\t\t\t<style>{`\n\t\t\t\t@keyframes spin {\n\t\t\t\t\tfrom { transform: rotate(0deg); }\n\t\t\t\t\tto { transform: rotate(360deg); }\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\nimport { loadStripe } from \"@stripe/stripe-js\";\nimport React, { useState, useEffect } from \"react\";\nimport { StyleProvider } from \"../styles/StyleProvider\";\nimport {\n\tcreateApiHeaders,\n\tcreateRequestBody,\n\tformatCurrency,\n\tformatDate,\n\tgetApiUrl,\n\tinferConfigFromUrl,\n} from \"../utils\";\nimport { BookingForm } from \"./BookingForm\";\nimport { EventInstanceSelection } from \"./EventInstanceSelection\";\nimport { EventTypeSelection } from \"./EventTypeSelection\";\nimport { NextEventsPreview } from \"./NextEventsPreview\";\n\n// Types\nexport interface EventType {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\timages: string[];\n\tcategory: {\n\t\tid: number;\n\t\tname: string;\n\t\tcolor: string;\n\t};\n\tnextAvailableDate: string | null;\n\tbasePrice: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tmaxParticipants: number;\n\tavailableInstancesCount: number;\n\thasAvailableInstances: boolean;\n}\n\nexport interface EventInstance {\n\tid: number;\n\tname: string;\n\tstartTime: string;\n\tendTime: string;\n\tprice: number;\n\tmaxParticipants: number;\n\tparticipantCount: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\tnotes?: string;\n\tbookingOpen: boolean;\n}\n\nexport interface EventDetails {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\tstartTime: string;\n\tendTime: string;\n\tprice: number;\n\tmaxParticipants: number;\n\tparticipantCount: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\timages: string[];\n\tcategory: {\n\t\tid: number;\n\t\tname: string;\n\t\tcolor: string;\n\t};\n\torganization: {\n\t\tid: string;\n\t\tname: string;\n\t\tslug?: string;\n\t};\n\tbookingOpen: boolean;\n}\n\nexport interface UpcomingEvent {\n\tid: number;\n\tname: string;\n\tstartTime: string;\n\tendTime: string;\n\tparticipantCount: number;\n\tmaxParticipants: number;\n\tprice: number | null;\n\teventTypeName: string;\n\tcategoryName: string;\n\tcategoryColor: string;\n\tcurrentBookings: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\tnotes?: string;\n\tbookingOpen: boolean;\n}\n\n// Updated configuration interface\nexport interface UniversalBookingConfig {\n\t// Required\n\tapiBaseUrl: string; // Your booking system API base URL\n\torganizationId: string; // Organization ID\n\n\t// Event selection - ONE of these must be provided\n\teventInstanceId?: number; // Direct instance selection (old behavior)\n\tcategoryId?: number; // Show all event types in this category\n\teventTypeIds?: number[]; // Show specific event types\n\teventTypeId?: number; // Show instances for a single event type\n\n\t// View mode configuration\n\tviewMode?: \"next-events\" | \"button\" | \"cards\"; // How to display the selected events\n\tnextEventsSettings?: {\n\t\tcount?: number; // How many next events to show (default: 3)\n\t\tshowAllButton?: boolean; // Show \"show all events\" button (default: true)\n\t\tshowAllButtonText?: string; // Custom text for the button\n\t};\n\n\t// Optional customization\n\tappearance?: {\n\t\ttheme?: \"stripe\" | \"night\" | \"flat\";\n\t\tvariables?: Record<string, string>;\n\t};\n\n\t// Simplified styling configuration\n\ttheme?:\n\t\t| \"light-fresh\"\n\t\t| \"light-elegant\"\n\t\t| \"light-vibrant\"\n\t\t| \"light-professional\"\n\t\t| \"dark-night\"\n\t\t| \"dark-modern\"\n\t\t| \"dark-forest\"\n\t\t| \"dark-matrix\"\n\t\t| \"dark-luxury\"\n\t\t| \"dark-energetic\";\n\tcolors?: {\n\t\t// Main colors (theme colors can be overridden)\n\t\thighlight?: string; // Main action/accent color - e.g., \"blue-600\", \"primary\", \"#3b82f6\"\n\t\tbackground?: string; // Page background - e.g., \"background\", \"slate-900\", \"#0f172a\"\n\t\tsurface?: string; // Card/surface background - e.g., \"card\", \"slate-800\", \"#1e293b\"\n\t\ttext?: string; // Main text color - e.g., \"foreground\", \"white\", \"#ffffff\"\n\t\tborder?: string; // Border color - e.g., \"border\", \"slate-700\", \"#334155\"\n\t\tsuccess?: string; // Success color - e.g., \"success\", \"green\", \"#10b981\"\n\t\twarning?: string; // Warning color - e.g., \"warning\", \"yellow\", \"#f59e0b\"\n\t\terror?: string; // Error color - e.g., \"error\", \"destructive\", \"#ef4444\"\n\t};\n\tborderRadius?: string; // Overall border radius - e.g., \"lg\", \"8px\"\n\tfontFamily?: string; // Font family - e.g., \"Inter\", \"system-ui\"\n\n\t// Single event type mode customization\n\tbuttonText?: string; // Custom text for the entry button in single event type mode\n\n\tlocale?: string;\n\n\t// Optional callbacks\n\tonSuccess?: (result: any) => void;\n\tonError?: (error: string) => void;\n}\n\n// Predefined themes & Style Provider have been moved to ../styles/StyleProvider.tsx\n\n// Success Modal Component\nconst BookingSuccessModal = ({\n\tisOpen,\n\tonClose,\n\tbookingData,\n\teventDetails,\n\tformData,\n\tconfig,\n}: {\n\tisOpen: boolean;\n\tonClose: () => void;\n\tbookingData: any;\n\teventDetails: any;\n\tformData: any;\n\tconfig: any;\n}) => {\n\tif (!isOpen || !bookingData) return null;\n\n\tconst booking = bookingData.booking;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\tbottom: 0,\n\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.5)\",\n\t\t\t\tzIndex: 10000,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\tpadding: \"var(--bw-spacing-large)\",\n\t\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tmaxHeight: \"90vh\",\n\t\t\t\t\toverflow: \"auto\",\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\tboxShadow: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{/* Close button */}\n\t\t\t\t<button\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\ttop: \"var(--bw-spacing)\",\n\t\t\t\t\t\tright: \"var(--bw-spacing)\",\n\t\t\t\t\t\tbackground: \"none\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tfontSize: \"24px\",\n\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\twidth: \"32px\",\n\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t×\n\t\t\t\t</button>\n\n\t\t\t\t{/* Success header */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: \"64px\",\n\t\t\t\t\t\t\theight: \"64px\",\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-success-color, #10B981)\",\n\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\tmargin: \"0 auto var(--bw-spacing)\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t✓\n\t\t\t\t\t</div>\n\t\t\t\t\t<h2\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-xl)\",\n\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-small) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tBuchung erfolgreich!\n\t\t\t\t\t</h2>\n\t\t\t\t\t<p\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tDeine Buchung wurde erfolgreich abgeschlossen.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Booking Details */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h3\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tBuchungsdetails\n\t\t\t\t\t</h3>\n\n\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing)\" }}>\n\t\t\t\t\t\t{/* Booking ID */}\n\t\t\t\t\t\t{booking.bookingHash && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tBuchungs-ID:\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"monospace\",\n\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\tpadding: \"4px 8px\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{booking.bookingHash}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* Event Name */}\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tEvent:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\n\t\t\t\t\t\t\t\t\tmaxWidth: \"60%\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{eventDetails.name}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Event Date */}\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tDatum:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\n\t\t\t\t\t\t\t\t\tmaxWidth: \"60%\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatDate(eventDetails.startTime)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Participants */}\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tTeilnehmer:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{booking.participantCount}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Total Amount */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tborderTop: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tpaddingTop: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tmarginTop: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tGesamtbetrag:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatCurrency(booking.total)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Participant List */}\n\t\t\t\t{formData.participants && formData.participants.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<h3\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tTeilnehmer\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-small)\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{formData.participants\n\t\t\t\t\t\t\t\t.filter((p: any) => p.name.trim())\n\t\t\t\t\t\t\t\t.map((participant: any, index: number) => (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing-small)\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{participant.name}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t{participant.age && (\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{participant.age} Jahre\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Contact Information */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h3\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tKontaktdaten\n\t\t\t\t\t</h3>\n\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-small)\" }}>\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tName:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-color)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\t{formData.customerName}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tE-Mail:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-color)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\t{formData.customerEmail}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{formData.customerPhone && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tTelefon:\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{ color: \"var(--bw-text-color)\", fontFamily: \"var(--bw-font-family)\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{formData.customerPhone}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Email notification */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-muted-bg, rgba(59, 130, 246, 0.05))\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tfontSize: \"24px\",\n\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-small)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t📧\n\t\t\t\t\t</div>\n\t\t\t\t\t<p\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tEine Bestätigungs-E-Mail wird in Kürze an {formData.customerEmail} gesendet.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Close button */}\n\t\t\t\t<div style={{ textAlign: \"center\" }}>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\tpadding: \"12px 32px\",\n\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.opacity = \"0.9\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.opacity = \"1\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tSchließen\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n// Main widget component\nexport function UniversalBookingWidget({ config: baseConfig }: { config: UniversalBookingConfig }) {\n\t// Apply URL parameter inference\n\tconst config = inferConfigFromUrl(baseConfig);\n\n\t// Determine view mode and settings\n\tconst viewMode = config.viewMode || (config.eventInstanceId ? \"button\" : \"cards\");\n\tconst nextEventsSettings = {\n\t\tcount: 3,\n\t\tshowAllButton: true,\n\t\tshowAllButtonText: \"Alle Events anzeigen\",\n\t\t...config.nextEventsSettings,\n\t};\n\n\t// Detect single event type mode and direct instance mode\n\tconst isSingleEventTypeMode = !!config.eventTypeId && !config.categoryId && !config.eventTypeIds;\n\tconst isDirectInstanceMode = !!config.eventInstanceId;\n\n\t// Selection flow state\n\tconst [currentStep, setCurrentStep] = useState<\"eventTypes\" | \"eventInstances\" | \"booking\">(\n\t\t\"eventTypes\",\n\t);\n\tconst [eventTypes, setEventTypes] = useState<EventType[]>([]);\n\tconst [selectedEventType, setSelectedEventType] = useState<EventType | null>(null);\n\tconst [eventInstances, setEventInstances] = useState<EventInstance[]>([]);\n\tconst [selectedEventInstance, setSelectedEventInstance] = useState<EventInstance | null>(null);\n\n\t// State for upcoming events (next-events view mode)\n\tconst [upcomingEvents, setUpcomingEvents] = useState<UpcomingEvent[]>([]);\n\tconst [showingPreview, setShowingPreview] = useState(true);\n\n\t// New: sidebar open state for single event type mode\n\tconst [sidebarOpen, setSidebarOpen] = useState(false);\n\n\t// Booking flow state\n\tconst [eventDetails, setEventDetails] = useState<EventDetails | null>(null);\n\tconst [stripePromise, setStripePromise] = useState<any>(null);\n\tconst [clientSecret, setClientSecret] = useState<string | null>(null);\n\n\t// SEPARATED LOADING STATES\n\tconst [isLoading, setIsLoading] = useState(true); // Only for initial widget load\n\tconst [isLoadingEventInstances, setIsLoadingEventInstances] = useState(false); // For loading event instances in sidebar\n\tconst [isLoadingEventDetails, setIsLoadingEventDetails] = useState(false); // For loading event details in booking form\n\tconst [isLoadingShowAll, setIsLoadingShowAll] = useState(false); // For \"show all events\" operation\n\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [isSuccess, setIsSuccess] = useState(false);\n\tconst [successData, setSuccessData] = useState<any>(null);\n\tconst [systemConfig, setSystemConfig] = useState<{\n\t\tsystemMode: string;\n\t\tstripePublishableKey: string;\n\t\tconnectedAccountId?: string;\n\t} | null>(null);\n\n\t// PERFORMANCE OPTIMIZATION: Lazy component loading\n\tconst [shouldRenderInstanceSelection, setShouldRenderInstanceSelection] = useState(false);\n\tconst [shouldRenderBookingForm, setShouldRenderBookingForm] = useState(false);\n\n\t// Determine initial step and load data\n\tuseEffect(() => {\n\t\tconst initializeWidget = async () => {\n\t\t\ttry {\n\t\t\t\tsetIsLoading(true);\n\n\t\t\t\t// Direct instance selection (old behavior)\n\t\t\t\tif (isDirectInstanceMode) {\n\t\t\t\t\tsetCurrentStep(\"booking\");\n\t\t\t\t\tsetShouldRenderBookingForm(true);\n\t\t\t\t\tawait loadEventDetails(config.eventInstanceId!);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Next events view mode: load upcoming events\n\t\t\t\tif (viewMode === \"next-events\") {\n\t\t\t\t\tawait loadUpcomingEvents();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Single event type mode: load event type and instances, but don't open sidebar yet\n\t\t\t\tif (isSingleEventTypeMode) {\n\t\t\t\t\tawait loadEventTypes();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Event type selection flow (cards mode)\n\t\t\t\tif (config.categoryId || config.eventTypeIds) {\n\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\tawait loadEventTypes();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// No valid configuration\n\t\t\t\tsetError(\"Ungültige Konfiguration: Keine Veranstaltungsauswahl angegeben\");\n\t\t\t} catch (err) {\n\t\t\t\tsetError(\"Fehler beim Initialisieren des Buchungswidgets\");\n\t\t\t\tconfig.onError?.(\"Failed to initialize booking widget\");\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t};\n\n\t\tinitializeWidget();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [config]);\n\n\t// PERFORMANCE OPTIMIZATION: Lazy load components when needed\n\tuseEffect(() => {\n\t\tif (currentStep === \"eventInstances\" && !shouldRenderInstanceSelection) {\n\t\t\tsetShouldRenderInstanceSelection(true);\n\t\t}\n\t\tif (currentStep === \"booking\" && !shouldRenderBookingForm) {\n\t\t\tsetShouldRenderBookingForm(true);\n\t\t}\n\t}, [currentStep, shouldRenderInstanceSelection, shouldRenderBookingForm]);\n\n\tconst loadEventTypes = async () => {\n\t\tconst requestBody: any = {\n\t\t\torganizationId: config.organizationId,\n\t\t};\n\n\t\tif (config.categoryId) {\n\t\t\trequestBody.categoryId = config.categoryId;\n\t\t} else if (config.eventTypeIds) {\n\t\t\trequestBody.eventTypeIds = config.eventTypeIds;\n\t\t} else if (config.eventTypeId) {\n\t\t\trequestBody.eventTypeId = config.eventTypeId;\n\t\t}\n\n\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/event-types\"), {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: createApiHeaders(config),\n\t\t\tbody: JSON.stringify(requestBody),\n\t\t});\n\n\t\tconst data = await response.json();\n\n\t\tif (response.ok) {\n\t\t\tsetEventTypes(data.eventTypes);\n\n\t\t\t// Single event type mode: preselect the type and load instances, but don't open sidebar yet\n\t\t\tif (isSingleEventTypeMode && data.eventTypes.length === 1) {\n\t\t\t\tsetSelectedEventType(data.eventTypes[0]);\n\t\t\t\tawait loadEventInstances(data.eventTypes[0].id);\n\t\t\t}\n\n\t\t\t// If only one event type (multi mode), skip to instances\n\t\t\tif (!isSingleEventTypeMode && data.eventTypes.length === 1) {\n\t\t\t\tsetSelectedEventType(data.eventTypes[0]);\n\t\t\t\tsetCurrentStep(\"eventInstances\");\n\t\t\t\tawait loadEventInstances(data.eventTypes[0].id);\n\t\t\t}\n\t\t} else {\n\t\t\tsetError(data.error || \"Fehler beim Laden der Veranstaltungstypen\");\n\t\t}\n\t};\n\n\tconst loadUpcomingEvents = async () => {\n\t\tconst requestBody: any = {\n\t\t\torganizationId: config.organizationId,\n\t\t\tlimit: nextEventsSettings.count,\n\t\t};\n\n\t\t// Add event selection filters\n\t\tif (config.categoryId) {\n\t\t\trequestBody.categoryId = config.categoryId;\n\t\t} else if (config.eventTypeIds) {\n\t\t\trequestBody.eventTypeIds = config.eventTypeIds;\n\t\t} else if (config.eventTypeId) {\n\t\t\trequestBody.eventTypeId = config.eventTypeId;\n\t\t}\n\n\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/upcoming-events\"), {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: createApiHeaders(config),\n\t\t\tbody: JSON.stringify(requestBody),\n\t\t});\n\n\t\tconst data = await response.json();\n\n\t\tif (response.ok) {\n\t\t\tsetUpcomingEvents(data.upcomingEvents || []);\n\t\t} else {\n\t\t\tsetError(data.error || \"Fehler beim Laden der bevorstehenden Termine\");\n\t\t}\n\t};\n\n\tconst loadEventInstances = async (eventTypeId: number) => {\n\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/event-instances\"), {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: createApiHeaders(config),\n\t\t\tbody: JSON.stringify(\n\t\t\t\tcreateRequestBody(config, {\n\t\t\t\t\teventTypeId,\n\t\t\t\t\tincludeSystemConfig: true, // Include Stripe config for potential booking\n\t\t\t\t}),\n\t\t\t),\n\t\t});\n\n\t\tconst data = await response.json();\n\n\t\tif (response.ok) {\n\t\t\tsetEventInstances(data.eventInstances);\n\n\t\t\t// Initialize Stripe if system config is included\n\t\t\tif (data.stripePublishableKey) {\n\t\t\t\tconst stripeOptions: any = {\n\t\t\t\t\tlocale: (config.locale as any) || \"de\",\n\t\t\t\t};\n\n\t\t\t\tif (data.connectedAccountId) {\n\t\t\t\t\tstripeOptions.stripeAccount = data.connectedAccountId;\n\t\t\t\t}\n\n\t\t\t\tsetStripePromise(loadStripe(data.stripePublishableKey, stripeOptions));\n\t\t\t}\n\n\t\t\t// If only one instance, skip to booking\n\t\t\tif (data.eventInstances.length === 1) {\n\t\t\t\tsetSelectedEventInstance(data.eventInstances[0]);\n\t\t\t\tsetCurrentStep(\"booking\");\n\t\t\t\tawait loadEventDetails(data.eventInstances[0].id);\n\t\t\t}\n\t\t} else {\n\t\t\tsetError(data.error || \"Fehler beim Laden der Veranstaltungstermine\");\n\t\t}\n\t};\n\n\tconst loadEventDetails = async (eventInstanceId: number) => {\n\t\ttry {\n\t\t\tconst requestBody = createRequestBody(config, {\n\t\t\t\teventInstanceId: Number(eventInstanceId), // Ensure it's a number\n\t\t\t});\n\n\t\t\tconsole.log(\"Loading event details with request:\", requestBody); // Debug log\n\n\t\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/event-details\"), {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: createApiHeaders(config),\n\t\t\t\tbody: JSON.stringify(requestBody),\n\t\t\t});\n\n\t\t\tconst data = await response.json();\n\n\t\t\tconsole.log(\"Event details response:\", { status: response.status, data }); // Debug log\n\n\t\t\tif (response.ok) {\n\t\t\t\tsetEventDetails(data.eventDetails);\n\n\t\t\t\t// Store system configuration for PaymentForm\n\t\t\t\tsetSystemConfig({\n\t\t\t\t\tsystemMode: data.systemMode,\n\t\t\t\t\tstripePublishableKey: data.stripePublishableKey,\n\t\t\t\t\tconnectedAccountId: data.connectedAccountId,\n\t\t\t\t});\n\n\t\t\t\t// Initialize Stripe if not already done\n\t\t\t\tif (!stripePromise && data.stripePublishableKey) {\n\t\t\t\t\tconst stripeOptions: any = {\n\t\t\t\t\t\tlocale: (config.locale as any) || \"de\",\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.connectedAccountId) {\n\t\t\t\t\t\tstripeOptions.stripeAccount = data.connectedAccountId;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetStripePromise(loadStripe(data.stripePublishableKey, stripeOptions));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst errorMessage = data.error || \"Fehler beim Laden der Veranstaltungsdetails\";\n\t\t\t\tconsole.error(\"Event details API error:\", {\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\terror: errorMessage,\n\t\t\t\t\tdetails: data.details,\n\t\t\t\t});\n\t\t\t\tsetError(errorMessage);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(\"Event details fetch error:\", err);\n\t\t\tsetError(\"Fehler beim Laden der Veranstaltungsdetails\");\n\t\t}\n\t};\n\n\t// Payment intent creation is now handled in PaymentForm when we have complete form data\n\n\t// Validate configuration\n\tif (!config.organizationId) {\n\t\treturn (\n\t\t\t<div className=\"max-w-2xl mx-auto p-6\">\n\t\t\t\t<div className=\"bg-red-50 border border-red-200 rounded-lg p-4\">\n\t\t\t\t\t<h2 className=\"text-red-800 font-semibold\">Konfigurationsfehler</h2>\n\t\t\t\t\t<p className=\"text-red-600\">organizationId muss in der Konfiguration angegeben werden.</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (\n\t\t!config.eventInstanceId &&\n\t\t!config.categoryId &&\n\t\t!config.eventTypeIds &&\n\t\t!config.eventTypeId\n\t) {\n\t\treturn (\n\t\t\t<div className=\"max-w-2xl mx-auto p-6\">\n\t\t\t\t<div className=\"bg-red-50 border border-red-200 rounded-lg p-4\">\n\t\t\t\t\t<h2 className=\"text-red-800 font-semibold\">Konfigurationsfehler</h2>\n\t\t\t\t\t<p className=\"text-red-600\">\n\t\t\t\t\t\tEs muss eine der folgenden Optionen angegeben werden: eventInstanceId, categoryId,\n\t\t\t\t\t\teventTypeIds oder eventTypeId.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Event type selection handlers\n\tconst handleEventTypeSelect = async (eventType: EventType) => {\n\t\tsetSelectedEventType(eventType);\n\t\tsetCurrentStep(\"eventInstances\");\n\t\tsetShouldRenderInstanceSelection(true);\n\t\tsetIsLoadingEventInstances(true);\n\t\ttry {\n\t\t\tawait loadEventInstances(eventType.id);\n\t\t} finally {\n\t\t\tsetIsLoadingEventInstances(false);\n\t\t}\n\t};\n\n\t// Event instance selection handlers\n\tconst handleEventInstanceSelect = async (eventInstance: EventInstance) => {\n\t\tsetSelectedEventInstance(eventInstance);\n\t\tsetCurrentStep(\"booking\");\n\t\tsetShouldRenderBookingForm(true);\n\t\tsetIsLoadingEventDetails(true);\n\t\ttry {\n\t\t\tawait loadEventDetails(eventInstance.id);\n\t\t} finally {\n\t\t\tsetIsLoadingEventDetails(false);\n\t\t}\n\t};\n\n\t// Back navigation handlers\n\tconst handleBackToEventTypes = () => {\n\t\tsetCurrentStep(\"eventTypes\");\n\t\tsetSelectedEventType(null);\n\t\tsetEventInstances([]);\n\t\t// Don't unmount components immediately to avoid jarring transitions\n\t};\n\n\tconst handleBackToEventInstances = () => {\n\t\tsetCurrentStep(\"eventInstances\");\n\t\tsetSelectedEventInstance(null);\n\t\tsetEventDetails(null);\n\t};\n\n\tconst handleBookingSuccess = (result: any) => {\n\t\tsetIsSuccess(true);\n\t\tsetSuccessData(result);\n\t\tconfig.onSuccess?.(result);\n\t};\n\n\tconst handleBookingError = (errorMessage: string) => {\n\t\tsetError(errorMessage);\n\t\tconfig.onError?.(errorMessage);\n\t};\n\n\tconst handleUpcomingEventSelect = async (eventInstanceId: number) => {\n\t\t// Find the corresponding upcoming event to create a basic EventInstance\n\t\tconst upcomingEvent = upcomingEvents.find((event) => event.id === eventInstanceId);\n\t\tif (upcomingEvent) {\n\t\t\t// Create a basic EventInstance object for consistency\n\t\t\tconst eventInstance: EventInstance = {\n\t\t\t\tid: upcomingEvent.id,\n\t\t\t\tname: upcomingEvent.name,\n\t\t\t\tstartTime: upcomingEvent.startTime,\n\t\t\t\tendTime: upcomingEvent.endTime,\n\t\t\t\tprice: upcomingEvent.price || 0,\n\t\t\t\tmaxParticipants: upcomingEvent.maxParticipants,\n\t\t\t\tparticipantCount: upcomingEvent.participantCount,\n\t\t\t\tavailableSpots: upcomingEvent.availableSpots,\n\t\t\t\tdurationDays: upcomingEvent.durationDays,\n\t\t\t\tdurationPerDay: upcomingEvent.durationPerDay,\n\t\t\t\tdeposit: upcomingEvent.deposit,\n\t\t\t\tnotes: upcomingEvent.notes,\n\t\t\t\tbookingOpen: upcomingEvent.bookingOpen,\n\t\t\t};\n\t\t\tsetSelectedEventInstance(eventInstance);\n\t\t}\n\n\t\tsetCurrentStep(\"booking\");\n\t\tsetShouldRenderBookingForm(true);\n\t\tsetIsLoadingEventDetails(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tawait loadEventDetails(eventInstanceId);\n\t\t} catch (err) {\n\t\t\tsetError(\"Fehler beim Laden der Veranstaltungsdetails\");\n\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\tsetShowingPreview(true);\n\t\t} finally {\n\t\t\tsetIsLoadingEventDetails(false);\n\t\t}\n\t};\n\n\tconst handleShowAllEvents = async () => {\n\t\tsetIsLoadingShowAll(true);\n\t\ttry {\n\t\t\t// In next-events mode, we should show the event instance selection for the single event type\n\t\t\tif (isSingleEventTypeMode && selectedEventType) {\n\t\t\t\tsetShouldRenderInstanceSelection(true);\n\t\t\t\tsetIsLoadingEventInstances(true);\n\t\t\t\tawait loadEventInstances(selectedEventType.id);\n\t\t\t\tsetCurrentStep(\"eventInstances\");\n\t\t\t\tsetShowingPreview(false);\n\t\t\t\tsetIsLoadingEventInstances(false);\n\t\t\t} else {\n\t\t\t\t// Fallback to event types view\n\t\t\t\tawait loadEventTypes();\n\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\tsetShowingPreview(false);\n\t\t\t}\n\t\t} finally {\n\t\t\tsetIsLoadingShowAll(false);\n\t\t}\n\t};\n\n\t// Helper: determine skeleton count based on config for EventTypeSelection\n\tconst getSkeletonCount = () => {\n\t\tif (config.eventTypeIds && Array.isArray(config.eventTypeIds)) {\n\t\t\treturn config.eventTypeIds.length;\n\t\t}\n\t\tif (config.eventTypeId) {\n\t\t\treturn 1;\n\t\t}\n\t\t// For categoryId or unknown, fallback to 4\n\t\treturn 4;\n\t};\n\n\t// Error state\n\tif (error) {\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t<div style={{ maxWidth: \"600px\", margin: \"0 auto\", padding: \"24px\" }}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-error-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tpadding: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Error Icon */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"64px\",\n\t\t\t\t\t\t\t\theight: \"64px\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\tmargin: \"0 auto var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t⚠️\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Error Title */}\n\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-xl)\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-small) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tBuchungen vorübergehend nicht verfügbar\n\t\t\t\t\t\t</h2>\n\n\t\t\t\t\t\t{/* Error Message */}\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-large) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tEs gab ein Problem beim Laden der verfügbaren Termine. Bitte versuche es in einem\n\t\t\t\t\t\t\tMoment erneut.\n\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t{/* Technical Error Details (collapsed by default) */}\n\t\t\t\t\t\t<details\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\t\ttextAlign: \"left\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\tpadding: \"5px\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<summary\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-small)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tTechnische Details anzeigen\n\t\t\t\t\t\t\t</summary>\n\t\t\t\t\t\t\t<code\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"block\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"monospace\",\n\t\t\t\t\t\t\t\t\twordBreak: \"break-word\",\n\t\t\t\t\t\t\t\t\twhiteSpace: \"pre-wrap\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{error}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</details>\n\n\t\t\t\t\t\t{/* Action Buttons */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tgap: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={() => window.location.reload()}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"0.9\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-1px)\";\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"1\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span style={{ fontSize: \"16px\" }}>🔄</span>\n\t\t\t\t\t\t\t\tSeite neu laden\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Help Text */}\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\tmargin: \"var(--bw-spacing-large) 0 0 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFalls das Problem weiterhin besteht, kontaktiere bitte den Support.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\t// Success state\n\tif (isSuccess) {\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t<BookingSuccessModal\n\t\t\t\t\tisOpen={isSuccess}\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetIsSuccess(false);\n\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t// Reset lazy loading flags\n\t\t\t\t\t\tsetShouldRenderInstanceSelection(false);\n\t\t\t\t\t\tsetShouldRenderBookingForm(false);\n\t\t\t\t\t}}\n\t\t\t\t\tbookingData={successData}\n\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\tformData={successData.formData}\n\t\t\t\t\tconfig={config}\n\t\t\t\t/>\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\t// Main view based on view mode\n\tif (viewMode === \"next-events\" && showingPreview) {\n\t\t// Next events preview mode\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t<NextEventsPreview\n\t\t\t\t\tevents={upcomingEvents}\n\t\t\t\t\tonEventSelect={handleUpcomingEventSelect}\n\t\t\t\t\tonShowAll={handleShowAllEvents}\n\t\t\t\t\tshowAllButtonText={nextEventsSettings.showAllButtonText}\n\t\t\t\t\tshowAllButton={nextEventsSettings.showAllButton}\n\t\t\t\t\tisLoadingEventDetails={isLoadingEventDetails}\n\t\t\t\t\tisLoadingShowAll={isLoadingShowAll}\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t/>\n\t\t\t\t{/* PERFORMANCE OPTIMIZATION: Only render when needed */}\n\t\t\t\t{shouldRenderBookingForm && eventDetails && (\n\t\t\t\t\t<BookingForm\n\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\t\tstripePromise={stripePromise}\n\t\t\t\t\t\tonSuccess={handleBookingSuccess}\n\t\t\t\t\t\tonError={handleBookingError}\n\t\t\t\t\t\tonBackToEventInstances={() => {\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonBackToEventTypes={() => {\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\t\tselectedEventInstance={selectedEventInstance}\n\t\t\t\t\t\tisOpen={currentStep === \"booking\" && !!eventDetails}\n\t\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\tif (viewMode === \"next-events\" && !showingPreview && currentStep === \"eventInstances\") {\n\t\t// Show all events for the single event type\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t{shouldRenderInstanceSelection && (\n\t\t\t\t\t<EventInstanceSelection\n\t\t\t\t\t\teventInstances={eventInstances}\n\t\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\t\tonEventInstanceSelect={handleEventInstanceSelect}\n\t\t\t\t\t\tonBackToEventTypes={() => {\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tisOpen={currentStep === \"eventInstances\"}\n\t\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tisLoadingEventInstances={isLoadingEventInstances}\n\t\t\t\t\t\tisLoadingEventDetails={isLoadingEventDetails}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\tif (viewMode === \"button\" && (isSingleEventTypeMode || isDirectInstanceMode)) {\n\t\t// Button mode - show button that opens sidebar/booking directly\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tminHeight: \"120px\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\tpadding: \"16px 32px\",\n\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tfontSize: \"18px\",\n\t\t\t\t\t\t\tfontWeight: 600,\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tboxShadow: \"var(--bw-shadow-md)\",\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (isDirectInstanceMode) {\n\t\t\t\t\t\t\t\tsetCurrentStep(\"booking\");\n\t\t\t\t\t\t\t\tsetShouldRenderBookingForm(true);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetSidebarOpen(true);\n\t\t\t\t\t\t\t\tsetShouldRenderInstanceSelection(true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{config.buttonText ||\n\t\t\t\t\t\t\t(isDirectInstanceMode ? \"Jetzt buchen\" : \"Jetzt Termin auswählen\")}\n\t\t\t\t\t</button>\n\t\t\t\t\t{/* PERFORMANCE OPTIMIZATION: Only render when needed */}\n\t\t\t\t\t{shouldRenderInstanceSelection && (\n\t\t\t\t\t\t<EventInstanceSelection\n\t\t\t\t\t\t\teventInstances={eventInstances}\n\t\t\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\t\t\tonEventInstanceSelect={handleEventInstanceSelect}\n\t\t\t\t\t\t\tonBackToEventTypes={() => setSidebarOpen(false)}\n\t\t\t\t\t\t\tisOpen={sidebarOpen}\n\t\t\t\t\t\t\tonClose={() => setSidebarOpen(false)}\n\t\t\t\t\t\t\tisLoadingEventInstances={isLoadingEventInstances}\n\t\t\t\t\t\t\tisLoadingEventDetails={isLoadingEventDetails}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{shouldRenderBookingForm && eventDetails && (\n\t\t\t\t\t\t<BookingForm\n\t\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\t\t\tstripePromise={stripePromise}\n\t\t\t\t\t\t\tonSuccess={handleBookingSuccess}\n\t\t\t\t\t\t\tonError={handleBookingError}\n\t\t\t\t\t\t\tonBackToEventInstances={() =>\n\t\t\t\t\t\t\t\tsetCurrentStep(isDirectInstanceMode ? \"eventTypes\" : \"eventInstances\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonBackToEventTypes={() => setSidebarOpen(false)}\n\t\t\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\t\t\tselectedEventInstance={selectedEventInstance}\n\t\t\t\t\t\t\tisOpen={currentStep === \"booking\" && !!eventDetails}\n\t\t\t\t\t\t\tonClose={() => setCurrentStep(isDirectInstanceMode ? \"eventTypes\" : \"eventInstances\")}\n\t\t\t\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\t// Cards mode (default) - show event type selection\n\tconst cardsView = (\n\t\t<EventTypeSelection\n\t\t\teventTypes={eventTypes}\n\t\t\tonEventTypeSelect={handleEventTypeSelect}\n\t\t\tisLoading={isLoading}\n\t\t\tskeletonCount={getSkeletonCount()}\n\t\t/>\n\t);\n\n\t// Determine the correct back handlers based on view mode\n\tconst getBackHandlers = () => {\n\t\tif (viewMode === \"next-events\") {\n\t\t\treturn {\n\t\t\t\tonBackToEventInstances: () => {\n\t\t\t\t\tsetCurrentStep(\"eventInstances\");\n\t\t\t\t\tsetShowingPreview(false);\n\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t},\n\t\t\t\tonBackToEventTypes: () => {\n\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t},\n\t\t\t\tonClose: () => {\n\t\t\t\t\tsetCurrentStep(\"eventInstances\");\n\t\t\t\t\tsetShowingPreview(false);\n\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\t// Default handlers for cards and button modes\n\t\treturn {\n\t\t\tonBackToEventInstances: handleBackToEventInstances,\n\t\t\tonBackToEventTypes: handleBackToEventTypes,\n\t\t\tonClose: handleBackToEventInstances,\n\t\t};\n\t};\n\n\tconst backHandlers = getBackHandlers();\n\n\treturn (\n\t\t<StyleProvider config={config}>\n\t\t\t{cardsView}\n\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Only render when needed */}\n\t\t\t{shouldRenderInstanceSelection && (\n\t\t\t\t<EventInstanceSelection\n\t\t\t\t\teventInstances={eventInstances}\n\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\tonEventInstanceSelect={handleEventInstanceSelect}\n\t\t\t\t\tonBackToEventTypes={handleBackToEventTypes}\n\t\t\t\t\tisOpen={currentStep === \"eventInstances\"}\n\t\t\t\t\tonClose={handleBackToEventTypes}\n\t\t\t\t\tisLoadingEventInstances={isLoadingEventInstances}\n\t\t\t\t\tisLoadingEventDetails={isLoadingEventDetails}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Only render when needed */}\n\t\t\t{shouldRenderBookingForm && eventDetails && (\n\t\t\t\t<BookingForm\n\t\t\t\t\tconfig={config}\n\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\tstripePromise={stripePromise}\n\t\t\t\t\tonSuccess={handleBookingSuccess}\n\t\t\t\t\tonError={handleBookingError}\n\t\t\t\t\tonBackToEventInstances={backHandlers.onBackToEventInstances}\n\t\t\t\t\tonBackToEventTypes={backHandlers.onBackToEventTypes}\n\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\tselectedEventInstance={selectedEventInstance}\n\t\t\t\t\tisOpen={currentStep === \"booking\" && !!eventDetails}\n\t\t\t\t\tonClose={backHandlers.onClose}\n\t\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</StyleProvider>\n\t);\n}\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport {\n\tUniversalBookingConfig,\n\tUniversalBookingWidget,\n} from \"./components/UniversalBookingWidget\";\n\n// Export React component for npm usage\nexport { UniversalBookingWidget } from \"./components/UniversalBookingWidget\";\nexport type {\n\tUniversalBookingConfig,\n\tEventType,\n\tEventInstance,\n\tEventDetails,\n} from \"./components/UniversalBookingWidget\";\n\n// Export init function for vanilla JS usage\nexport function init({\n\ttarget,\n\tconfig,\n}: { target: string | HTMLElement; config: UniversalBookingConfig }) {\n\tconst container = typeof target === \"string\" ? document.querySelector(target) : target;\n\n\tif (!container) {\n\t\tthrow new Error(`Target element not found: ${target}`);\n\t}\n\n\t// Clear any existing content\n\tcontainer.innerHTML = \"\";\n\n\t// Check if we're in a browser environment\n\tif (typeof window === \"undefined\") {\n\t\tthrow new Error(\"Widget can only be initialized in a browser environment\");\n\t}\n\n\t// For UMD builds, React and ReactDOM are globals\n\tconst ReactLib =\n\t\ttypeof window !== \"undefined\" && (window as any).React ? (window as any).React : React;\n\tconst ReactDOMLib =\n\t\ttypeof window !== \"undefined\" && (window as any).ReactDOM\n\t\t\t? (window as any).ReactDOM\n\t\t\t: { createRoot };\n\n\t// Use createRoot if available, otherwise fall back to render\n\tif (ReactDOMLib.createRoot) {\n\t\tconst root = ReactDOMLib.createRoot(container);\n\t\troot.render(ReactLib.createElement(UniversalBookingWidget, { config }));\n\n\t\treturn {\n\t\t\tunmount: () => root.unmount(),\n\t\t};\n\t}\n\n\tif (ReactDOMLib.render) {\n\t\t// Fallback for older React versions\n\t\tReactDOMLib.render(ReactLib.createElement(UniversalBookingWidget, { config }), container);\n\n\t\treturn {\n\t\t\tunmount: () => ReactDOMLib.unmountComponentAtNode(container),\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t\"ReactDOM.createRoot or ReactDOM.render not found. Please check your React version.\",\n\t);\n}\n"],"names":["_jsx","React__default","React","t","e","o","r","defaultErrorMap","_jsxs","_Fragment","require$$0","this","useStripe","useElements","PaymentElement","Elements","z.object","z.string","z.number","z.array","z\n .boolean","zodResolver"],"mappings":"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","x_google_ignoreList":[0,3,4,5,6,7,8,9,10,11,12,15]}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../node_modules/.pnpm/@stripe+stripe-js@4.10.0/node_modules/@stripe/stripe-js/dist/index.mjs","../src/styles/StyleProvider.tsx","../src/utils.ts","../../../node_modules/.pnpm/react-hook-form@7.59.0_react@19.1.0/node_modules/react-hook-form/dist/index.esm.mjs","../../../node_modules/.pnpm/@hookform+resolvers@3.10.0_react-hook-form@7.59.0_react@19.1.0_/node_modules/@hookform/resolvers/dist/resolvers.mjs","../../../node_modules/.pnpm/@hookform+resolvers@3.10.0_react-hook-form@7.59.0_react@19.1.0_/node_modules/@hookform/resolvers/zod/dist/zod.mjs","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/helpers/util.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/ZodError.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/locales/en.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/errors.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/helpers/parseUtil.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/helpers/errorUtil.js","../../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/esm/v3/types.js","../src/components/EventTypeDetailsDialog.tsx","../src/components/ImageCarousel.tsx","../src/components/EventTypeSelection.tsx","../../../node_modules/.pnpm/@stripe+react-stripe-js@3.7.0_@stripe+stripe-js@4.10.0_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","../src/components/PaymentForm.tsx","../src/components/Sidebar.tsx","../src/components/BookingForm.tsx","../src/components/EventInstanceSelection.tsx","../src/components/NextEventsPreview.tsx","../src/components/UniversalBookingWidget.tsx","../src/index.npm.ts"],"sourcesContent":["var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"4.6.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar onErrorListener = null;\nvar onLoadListener = null;\n\nvar onError = function onError(reject) {\n return function () {\n reject(new Error('Failed to load Stripe.js'));\n };\n};\n\nvar onLoad = function onLoad(resolve, reject) {\n return function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n };\n};\n\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n } else if (script && onLoadListener !== null && onErrorListener !== null) {\n var _script$parentNode;\n\n // remove event listeners\n script.removeEventListener('load', onLoadListener);\n script.removeEventListener('error', onErrorListener); // if script exists, but we are reloading due to an error,\n // reload script to trigger 'load' event\n\n (_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);\n script = injectScript(params);\n }\n\n onLoadListener = onLoad(resolve, reject);\n onErrorListener = onError(reject);\n script.addEventListener('load', onLoadListener);\n script.addEventListener('error', onErrorListener);\n } catch (error) {\n reject(error);\n return;\n }\n }); // Resets stripePromise on error\n\n return stripePromise[\"catch\"](function (error) {\n stripePromise = null;\n return Promise.reject(error);\n });\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar stripePromise$1;\nvar loadCalled = false;\n\nvar getStripePromise = function getStripePromise() {\n if (stripePromise$1) {\n return stripePromise$1;\n }\n\n stripePromise$1 = loadScript(null)[\"catch\"](function (error) {\n // clear cache on error\n stripePromise$1 = null;\n return Promise.reject(error);\n });\n return stripePromise$1;\n}; // Execute our own script injection after a tick to give users time to do their\n// own script injection.\n\n\nPromise.resolve().then(function () {\n return getStripePromise();\n})[\"catch\"](function (error) {\n if (!loadCalled) {\n console.warn(error);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now(); // if previous attempts are unsuccessful, will re-load script\n\n return getStripePromise().then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","import React, { createContext, useContext, useMemo, useEffect, useState } from \"react\";\nimport { UniversalBookingConfig } from \"../components/UniversalBookingWidget\";\n\n// Create a context for the styles\nconst StyleContext = createContext<React.CSSProperties>({});\n\n// Custom hook to use the style context\nexport const useStyles = () => useContext(StyleContext);\n\n// Semantic color mapping for common design systems\nconst SEMANTIC_COLOR_MAP: Record<string, string[]> = {\n\t// Core semantic colors (combining Tailwind and shadcn/ui)\n\tprimary: [\"--primary\", \"--color-primary\", \"--tw-color-primary\"],\n\tsecondary: [\"--secondary\", \"--color-secondary\", \"--tw-color-secondary\"],\n\taccent: [\"--accent\", \"--color-accent\", \"--tw-color-accent\"],\n\tbackground: [\"--background\", \"--color-background\", \"--tw-color-background\"],\n\tforeground: [\"--foreground\", \"--color-foreground\", \"--tw-color-foreground\"],\n\tcard: [\"--card\", \"--color-card\", \"--tw-color-card\"],\n\t\"card-foreground\": [\"--card-foreground\", \"--color-card-foreground\", \"--tw-color-card-foreground\"],\n\tborder: [\"--border\", \"--color-border\", \"--tw-color-border\"],\n\tinput: [\"--input\", \"--color-input\", \"--tw-color-input\"],\n\tring: [\"--ring\", \"--color-ring\", \"--tw-color-ring\"],\n\t// shadcn/ui specific\n\t\"primary-foreground\": [\"--primary-foreground\", \"--color-primary-foreground\"],\n\t\"secondary-foreground\": [\"--secondary-foreground\", \"--color-secondary-foreground\"],\n\t\"accent-foreground\": [\"--accent-foreground\", \"--color-accent-foreground\"],\n\t\"destructive\": [\"--destructive\", \"--color-destructive\"],\n\t\"destructive-foreground\": [\"--destructive-foreground\", \"--color-destructive-foreground\"],\n\t\"muted\": [\"--muted\", \"--color-muted\"],\n\t\"muted-foreground\": [\"--muted-foreground\", \"--color-muted-foreground\"],\n\t\"popover\": [\"--popover\", \"--color-popover\"],\n\t\"popover-foreground\": [\"--popover-foreground\", \"--color-popover-foreground\"],\n\t// Semantic aliases for common use cases\n\tsuccess: [\"--success\", \"--color-success\", \"--green\"],\n\twarning: [\"--warning\", \"--color-warning\", \"--yellow\"],\n\terror: [\"--error\", \"--color-error\", \"--red\", \"--destructive\"],\n};\n\n// Helper function to resolve semantic color names to actual CSS values\nconst resolveSemanticColor = (colorValue: string, fallbackValue?: string): string => {\n\t// If it's already a valid CSS color (hex, rgb, hsl, etc.), return as-is\n\tif (\n\t\tcolorValue.includes(\"#\") ||\n\t\tcolorValue.includes(\"rgb\") ||\n\t\tcolorValue.includes(\"hsl\") ||\n\t\tcolorValue.includes(\"oklch\") ||\n\t\tcolorValue.includes(\"px\") ||\n\t\tcolorValue.includes(\"%\")\n\t) {\n\t\treturn colorValue;\n\t}\n\n\t// Try to resolve semantic color names\n\tconst possibleVars = SEMANTIC_COLOR_MAP[colorValue];\n\tif (possibleVars) {\n\t\t// Check if we're in a browser environment\n\t\tif (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n\t\t\tconst rootStyles = getComputedStyle(document.documentElement);\n\n\t\t\t// Try each possible CSS variable\n\t\t\tfor (const cssVar of possibleVars) {\n\t\t\t\tconst value = rootStyles.getPropertyValue(cssVar).trim();\n\t\t\t\tif (value) {\n\t\t\t\t\t// If the value is an HSL/RGB without function wrapper, add it\n\t\t\t\t\tif (value.match(/^\\d+(\\.\\d+)?\\s+\\d+(\\.\\d+)?%?\\s+\\d+(\\.\\d+)?%?$/)) {\n\t\t\t\t\t\treturn `hsl(${value})`;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// If semantic resolution fails, use fallback or return the original value\n\treturn fallbackValue || colorValue;\n};\n\n// Predefined themes (modern, accessibility-tested)\nconst themes: Record<string, any> = {\n\t// --- Light Themes ---\n\t\"light-fresh\": {\n\t\thighlight: \"oklch(0.65 0.2 190)\", // accent-strong\n\t\tbackground: \"oklch(0.99 0.005 220)\", // neutral-strong (background)\n\t\tsurface: \"oklch(1 0 0)\", // card (pure white)\n\t\ttext: \"#0e7490\", // Turquoise 800\n\t\tborder: \"#bae6fd\", // Blue 200\n\t\tsuccess: \"#38bdf8\", // Blue 400\n\t\twarning: \"#fbbf24\", // Amber 400\n\t\terror: \"#f43f5e\", // Rose 500\n\t\tborderRadius: \"18px\", // Very rounded corners\n\t\tfontFamily: \"'Inter', system-ui, sans-serif\",\n\t},\n\t\"light-elegant\": {\n\t\thighlight: \"#8b5cf6\", // Violet 500\n\t\tbackground: \"#f5f3ff\", // Violet 50\n\t\tsurface: \"#ffffff\", // White\n\t\ttext: \"#4c1d95\", // Violet 900\n\t\tborder: \"#ede9fe\", // Violet 100\n\t\tsuccess: \"#16a34a\", // Green 600\n\t\twarning: \"#ca8a04\", // Yellow 600\n\t\terror: \"#dc2626\", // Red 600\n\t\tborderRadius: \"12px\",\n\t\tfontFamily: \"'Playfair Display', serif\",\n\t},\n\t\"light-vibrant\": {\n\t\thighlight: \"#ed702d\", // blue-500 - bright blue accent\n\t\tbackground: \"#1f2630\", // slate-900 - dark background\n\t\tsurface: \"#1f2630\", // slate-800 - dark cards\n\t\ttext: \"#f1f5f9\", // slate-100 - light text\n\t\tborder: \"#ed702d\", // slate-700 - subtle borders\n\t\tsuccess: \"#22c55e\", // green-500\n\t\twarning: \"#eab308\", // yellow-500\n\t\terror: \"#ef4444\", // red-500\n\t\tborderRadius: \"0px\",\n\t\tfontFamily: \"Inter, system-ui, sans-serif\",\n\t},\n\t\"light-professional\": {\n\t\thighlight: \"#2563eb\", // Blue 600\n\t\tbackground: \"#f8fafc\", // Slate 50\n\t\tsurface: \"#ffffff\", // White\n\t\ttext: \"#1e293b\", // Slate 800\n\t\tborder: \"#e2e8f0\", // Slate 200\n\t\tsuccess: \"#059669\", // Emerald 600\n\t\twarning: \"#d97706\", // Amber 600\n\t\terror: \"#b91c1c\", // Red 700\n\t\tborderRadius: \"4px\",\n\t\tfontFamily: \"system-ui, -apple-system, sans-serif\",\n\t},\n\t\"dark-night\": {\n\t\thighlight: \"#3b82f6\", // blue-500 - bright blue accent\n\t\tbackground: \"#0f172a\", // slate-900 - dark background\n\t\tsurface: \"#1e293b\", // slate-800 - dark cards\n\t\ttext: \"#f1f5f9\", // slate-100 - light text\n\t\tborder: \"#334155\", // slate-700 - subtle borders\n\t\tsuccess: \"#22c55e\", // green-500\n\t\twarning: \"#eab308\", // yellow-500\n\t\terror: \"#ef4444\", // red-500\n\t\tborderRadius: \"8px\",\n\t\tfontFamily: \"Inter, system-ui, sans-serif\",\n\t},\n\t\"dark-modern\": {\n\t\thighlight: \"#3b82f6\", // blue-500 - bright blue accent\n\t\tbackground: \"#0f172a\", // slate-900 - dark background\n\t\tsurface: \"#1e293b\", // slate-800 - dark cards\n\t\ttext: \"#f1f5f9\", // slate-100 - light text\n\t\tborder: \"#334155\", // slate-700 - subtle borders\n\t\tsuccess: \"#22c55e\", // green-500\n\t\twarning: \"#eab308\", // yellow-500\n\t\terror: \"#ef4444\", // red-500\n\t\tborderRadius: \"8px\",\n\t\tfontFamily: \"Inter, system-ui, sans-serif\",\n\t},\n\t\"dark-forest\": {\n\t\thighlight: \"#34d399\", // Emerald 400\n\t\tbackground: \"#05140d\",\n\t\tsurface: \"#062215\",\n\t\ttext: \"#d1fae5\", // Emerald 100\n\t\tborder: \"#043322\",\n\t\tsuccess: \"#4ade80\", // Green 400\n\t\twarning: \"#facc15\", // Yellow 400\n\t\terror: \"#f87171\", // Red 400\n\t\tborderRadius: \"12px\",\n\t\tfontFamily: \"system-ui, -apple-system, sans-serif\",\n\t},\n\t\"dark-matrix\": {\n\t\thighlight: \"#33ff33\",\n\t\tbackground: \"#000000\",\n\t\tsurface: \"#0a0a0a\",\n\t\ttext: \"#00ff00\",\n\t\tborder: \"#1a1a1a\",\n\t\tsuccess: \"#33ff33\",\n\t\twarning: \"#ffff00\",\n\t\terror: \"#ff3333\",\n\t\tborderRadius: \"0px\",\n\t\tfontFamily: \"'Courier New', monospace\",\n\t},\n\t\"dark-luxury\": {\n\t\thighlight: \"#fde047\", // Yellow 300\n\t\tbackground: \"#1c1917\", // Stone 900\n\t\tsurface: \"#292524\", // Stone 800\n\t\ttext: \"#fafaf9\", // Stone 50\n\t\tborder: \"#44403c\", // Stone 700\n\t\tsuccess: \"#a3e635\", // Lime 400\n\t\twarning: \"#f59e0b\", // Amber 500\n\t\terror: \"#fca5a5\", // Red 300\n\t\tborderRadius: \"24px\",\n\t\tfontFamily: \"'Cinzel', serif\",\n\t},\n\t\"dark-energetic\": {\n\t\thighlight: \"#d946ef\", // Fuchsia 500\n\t\tbackground: \"#2e1046\",\n\t\tsurface: \"#401561\",\n\t\ttext: \"#f3e8ff\", // Purple 50\n\t\tborder: \"#581c87\", // Purple 900\n\t\tsuccess: \"#4ade80\", // Green 400\n\t\twarning: \"#facc15\", // Yellow 400\n\t\terror: \"#f87171\", // Red 400\n\t\tborderRadius: \"14px\",\n\t\tfontFamily: \"'Geologica', sans-serif\",\n\t},\n};\n\nexport const StyleProvider = ({\n\tconfig,\n\tchildren,\n}: {\n\tconfig: UniversalBookingConfig;\n\tchildren: React.ReactNode;\n}) => {\n\t// Track hydration state to prevent mismatches\n\tconst [isHydrated, setIsHydrated] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetIsHydrated(true);\n\t}, []);\n\n\t// PERFORMANCE OPTIMIZATION: Memoize style calculations\n\tconst themedStyles = useMemo(() => {\n\t\tconst themeName = config.theme || \"light-fresh\";\n\t\tconst themeDefaults = themes[themeName] || themes[\"light-fresh\"];\n\n\t\tconst getCSSValue = (value: string | undefined, fallback: string): string => {\n\t\t\tif (!value) return fallback;\n\n\t\t\t// During SSR or before hydration, use fallback for semantic colors to ensure consistency\n\t\t\tif (!isHydrated && SEMANTIC_COLOR_MAP[value]) {\n\t\t\t\treturn fallback;\n\t\t\t}\n\n\t\t\t// Resolve semantic colors or return direct values\n\t\t\treturn resolveSemanticColor(value, fallback);\n\t\t};\n\n\t\tconst getBorderRadius = (value: string | undefined, fallback: string): string => {\n\t\t\tif (!value) return fallback;\n\t\t\tconst radiusMap: Record<string, string> = {\n\t\t\t\tnone: \"0px\",\n\t\t\t\tsm: \"4px\",\n\t\t\t\tmd: \"8px\",\n\t\t\t\tlg: \"12px\",\n\t\t\t\txl: \"16px\",\n\t\t\t\tfull: \"9999px\",\n\t\t\t};\n\t\t\treturn radiusMap[value] || value;\n\t\t};\n\n\t\tconst addOpacity = (color: string, opacity: number): string => {\n\t\t\tif (color.startsWith(\"#\")) {\n\t\t\t\tconst r = parseInt(color.slice(1, 3), 16);\n\t\t\t\tconst g = parseInt(color.slice(3, 5), 16);\n\t\t\t\tconst b = parseInt(color.slice(5, 7), 16);\n\t\t\t\treturn `rgba(${r}, ${g}, ${b}, ${opacity})`;\n\t\t\t}\n\t\t\tif (color.startsWith(\"rgb\")) {\n\t\t\t\treturn color.replace(\")\", `, ${opacity})`).replace(\"rgb\", \"rgba\");\n\t\t\t}\n\t\t\tif (color.startsWith(\"hsl\")) {\n\t\t\t\treturn color.replace(\")\", `, ${opacity})`).replace(\"hsl\", \"hsla\");\n\t\t\t}\n\t\t\treturn color;\n\t\t};\n\n\t\tconst hexToRgb = (hex: string): string => {\n\t\t\t// Handle non-hex colors\n\t\t\tif (!hex.startsWith(\"#\")) {\n\t\t\t\treturn \"255,255,255\"; // Fallback\n\t\t\t}\n\t\t\tlet c: any = hex.substring(1).split(\"\");\n\t\t\tif (c.length === 3) {\n\t\t\t\tc = [c[0], c[0], c[1], c[1], c[2], c[2]];\n\t\t\t}\n\t\t\tc = `0x${c.join(\"\")}`;\n\t\t\treturn [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(\",\");\n\t\t};\n\n\t\tconst colors = config.colors || {};\n\t\tconst finalColors = {\n\t\t\thighlight: getCSSValue(colors.highlight, themeDefaults.highlight),\n\t\t\tbackground: getCSSValue(colors.background, themeDefaults.background),\n\t\t\tsurface: getCSSValue(colors.surface, themeDefaults.surface),\n\t\t\ttext: getCSSValue(colors.text, themeDefaults.text),\n\t\t\tborder: getCSSValue(colors.border, themeDefaults.border),\n\t\t\tsuccess: getCSSValue(colors.success, themeDefaults.success),\n\t\t\twarning: getCSSValue(colors.warning, themeDefaults.warning),\n\t\t\terror: getCSSValue(colors.error, themeDefaults.error),\n\t\t};\n\t\tconst borderRadius = getBorderRadius(config.borderRadius, themeDefaults.borderRadius);\n\n\t\treturn {\n\t\t\t\"--bw-highlight-color\": finalColors.highlight,\n\t\t\t\"--bw-highlight-color-rgb\": hexToRgb(finalColors.highlight),\n\t\t\t\"--bw-background-color\": finalColors.background,\n\t\t\t\"--bw-surface-color\": finalColors.surface,\n\t\t\t\"--bw-text-color\": finalColors.text,\n\t\t\t\"--bw-text-muted\": addOpacity(finalColors.text, 0.7),\n\t\t\t\"--bw-border-color\": finalColors.border,\n\t\t\t\"--bw-success-color\": finalColors.success,\n\t\t\t\"--bw-warning-color\": finalColors.warning,\n\t\t\t\"--bw-error-color\": finalColors.error,\n\t\t\t\"--bw-border-radius\": borderRadius,\n\t\t\t\"--bw-border-radius-small\": `calc(${borderRadius} * 0.8)`,\n\t\t\t\"--bw-spacing\": \"16px\",\n\t\t\t\"--bw-spacing-large\": \"24px\",\n\t\t\t\"--bw-font-family\": config.fontFamily || themeDefaults.fontFamily,\n\t\t\t\"--bw-font-size\": \"14px\",\n\t\t\t\"--bw-font-size-large\": \"18px\",\n\t\t\t\"--bw-shadow-lg\": \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n\t\t\t\"--bw-shadow-md\": \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n\t\t\t// Additional optimized variables\n\t\t\t\"--bw-highlight-muted\": addOpacity(finalColors.highlight, 0.1),\n\t\t\t\"--bw-highlight-subtle\": addOpacity(finalColors.highlight, 0.05),\n\t\t\t\"--bw-text-subtle\": addOpacity(finalColors.text, 0.4),\n\t\t\tcolorScheme: themeName.startsWith(\"dark-\") || themeName === \"dark-night\" ? \"dark\" : \"light\",\n\t\t} as React.CSSProperties;\n\t}, [\n\t\tconfig.theme,\n\t\tconfig.colors?.highlight,\n\t\tconfig.colors?.background,\n\t\tconfig.colors?.surface,\n\t\tconfig.colors?.text,\n\t\tconfig.colors?.border,\n\t\tconfig.colors?.success,\n\t\tconfig.colors?.warning,\n\t\tconfig.colors?.error,\n\t\tconfig.borderRadius,\n\t\tconfig.fontFamily,\n\t\tisHydrated, // Include hydration state in dependencies\n\t]);\n\n\treturn (\n\t\t<StyleContext.Provider value={themedStyles}>\n\t\t\t<div style={themedStyles} className=\"booking-widget-container\">\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</StyleContext.Provider>\n\t);\n};\n","import type { UniversalBookingConfig } from \"./components/UniversalBookingWidget\";\n\nexport type SupportedLocale = \"de\" | \"en\";\nexport type CurrencyCode = \"EUR\" | \"USD\" | \"GBP\" | \"CHF\" | \"SEK\" | \"NOK\" | \"DKK\" | \"PLN\" | \"CZK\";\n\n// Supported currencies with their minor unit information\nconst CURRENCIES = {\n\tEUR: { symbol: \"€\", locale: \"de-DE\", decimals: 2, name: \"Euro\" },\n\tUSD: { symbol: \"$\", locale: \"en-US\", decimals: 2, name: \"US Dollar\" },\n\tGBP: { symbol: \"£\", locale: \"en-GB\", decimals: 2, name: \"British Pound\" },\n\tCHF: { symbol: \"CHF\", locale: \"de-CH\", decimals: 2, name: \"Swiss Franc\" },\n\tSEK: { symbol: \"kr\", locale: \"sv-SE\", decimals: 2, name: \"Swedish Krona\" },\n\tNOK: { symbol: \"kr\", locale: \"nb-NO\", decimals: 2, name: \"Norwegian Krone\" },\n\tDKK: { symbol: \"kr\", locale: \"da-DK\", decimals: 2, name: \"Danish Krone\" },\n\tPLN: { symbol: \"zł\", locale: \"pl-PL\", decimals: 2, name: \"Polish Zloty\" },\n\tCZK: { symbol: \"Kč\", locale: \"cs-CZ\", decimals: 2, name: \"Czech Koruna\" },\n} as const;\n\n/**\n * Parse date string and handle timezone properly\n * If the date string doesn't include timezone info, assume it's in the specified timezone\n */\nfunction parseDate(dateString: string, timezone: string = \"Europe/Berlin\"): Date {\n\t// If the date string already includes timezone info (Z or +/-HH:MM), use it as-is\n\tif (dateString.includes(\"Z\") || dateString.match(/[+-]\\d{2}:\\d{2}$/)) {\n\t\treturn new Date(dateString);\n\t}\n\n\t// If no timezone info, we need to treat it as being in the specified timezone\n\t// Create a date assuming it's in the specified timezone\n\tconst date = new Date(dateString);\n\n\t// Get the timezone offset for the specified timezone\n\tconst tempDate = new Date();\n\tconst localOffset = tempDate.getTimezoneOffset();\n\tconst timezoneOffset = getTimezoneOffset(timezone) / 60000;\n\n\t// Adjust the date to account for timezone difference\n\tconst adjustedDate = new Date(date.getTime() - localOffset * 60000 + timezoneOffset);\n\n\treturn adjustedDate;\n}\n\n/**\n * Get timezone offset in milliseconds for a given timezone\n * This is a simplified implementation - in production you'd want a more robust solution\n */\nfunction getTimezoneOffset(timezone: string): number {\n\tconst now = new Date();\n\tconst utc = new Date(now.getTime() + now.getTimezoneOffset() * 60000);\n\n\t// Create a date in the target timezone\n\tconst targetTime = new Date(utc.toLocaleString(\"en-US\", { timeZone: timezone }));\n\tconst localTime = new Date(utc.toLocaleString(\"en-US\"));\n\n\treturn targetTime.getTime() - localTime.getTime();\n}\n\n/**\n * Format minor units (cents) for display\n */\nexport const formatCurrency = (\n\tminorUnits: number | null | undefined,\n\tcurrency: CurrencyCode = \"EUR\",\n\toptions: {\n\t\tshowSymbol?: boolean;\n\t\tshowCode?: boolean;\n\t} = {},\n): string => {\n\tif (minorUnits === null || minorUnits === undefined) {\n\t\treturn \"---\";\n\t}\n\n\tconst { symbol, locale, decimals } = CURRENCIES[currency];\n\tconst { showSymbol = true, showCode = false } = options;\n\n\t// Convert to major units for display\n\tconst majorUnits = minorUnits / 10 ** decimals;\n\n\tconst formatted = new Intl.NumberFormat(locale, {\n\t\tminimumFractionDigits: decimals,\n\t\tmaximumFractionDigits: decimals,\n\t}).format(majorUnits);\n\n\tif (showCode) {\n\t\treturn `${formatted} ${currency}`;\n\t}\n\n\tif (showSymbol) {\n\t\treturn `${formatted} ${symbol}`;\n\t}\n\n\treturn formatted;\n};\n\n/**\n * Format date with timezone and locale support\n */\nexport const formatDate = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateObj = typeof date === \"string\" ? parseDate(date, timezone) : date;\n\n\tif (locale === \"en\") {\n\t\treturn dateObj.toLocaleDateString(\"en-US\", {\n\t\t\ttimeZone: timezone,\n\t\t\tmonth: \"2-digit\",\n\t\t\tday: \"2-digit\",\n\t\t\tyear: \"numeric\",\n\t\t});\n\t}\n\n\treturn dateObj.toLocaleDateString(\"de-DE\", {\n\t\ttimeZone: timezone,\n\t\tday: \"2-digit\",\n\t\tmonth: \"2-digit\",\n\t\tyear: \"numeric\",\n\t});\n};\n\n/**\n * Format time with timezone and locale support\n */\nexport const formatTime = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateObj = typeof date === \"string\" ? parseDate(date, timezone) : date;\n\n\tif (locale === \"en\") {\n\t\treturn dateObj.toLocaleTimeString(\"en-US\", {\n\t\t\ttimeZone: timezone,\n\t\t\thour: \"2-digit\",\n\t\t\tminute: \"2-digit\",\n\t\t\thour12: true,\n\t\t});\n\t}\n\n\treturn dateObj.toLocaleTimeString(\"de-DE\", {\n\t\ttimeZone: timezone,\n\t\thour: \"2-digit\",\n\t\tminute: \"2-digit\",\n\t\thour12: false,\n\t});\n};\n\n/**\n * Format date and time with timezone and locale support\n */\nexport const formatDateTime = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateStr = formatDate(date, timezone, locale);\n\tconst timeStr = formatTime(date, timezone, locale);\n\treturn `${dateStr} ${timeStr}`;\n};\n\n/**\n * Format weekday with timezone and locale support\n */\nexport const formatWeekday = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateObj = typeof date === \"string\" ? parseDate(date, timezone) : date;\n\n\tif (locale === \"en\") {\n\t\treturn dateObj.toLocaleDateString(\"en-US\", {\n\t\t\ttimeZone: timezone,\n\t\t\tweekday: \"short\",\n\t\t});\n\t}\n\n\treturn dateObj.toLocaleDateString(\"de-DE\", {\n\t\ttimeZone: timezone,\n\t\tweekday: \"short\",\n\t});\n};\n\n/**\n * Format date for event display (day + month)\n */\nexport const formatEventDate = (\n\tdate: Date | string,\n\ttimezone: string = \"Europe/Berlin\",\n\tlocale: SupportedLocale = \"de\",\n): string => {\n\tconst dateObj = typeof date === \"string\" ? parseDate(date, timezone) : date;\n\n\tif (locale === \"en\") {\n\t\treturn dateObj.toLocaleDateString(\"en-US\", {\n\t\t\ttimeZone: timezone,\n\t\t\tweekday: \"long\",\n\t\t\tday: \"numeric\",\n\t\t\tmonth: \"long\",\n\t\t\tyear: \"2-digit\",\n\t\t});\n\t}\n\n\treturn dateObj.toLocaleDateString(\"de-DE\", {\n\t\ttimeZone: timezone,\n\t\tweekday: \"long\",\n\t\tday: \"numeric\",\n\t\tmonth: \"long\",\n\t\tyear: \"2-digit\",\n\t});\n};\n\nexport const getApiUrl = (baseUrl: string, endpoint: string): string => {\n\tif (!baseUrl) return endpoint; // Should not happen with validation, but for safety\n\t// Remove trailing slash from baseUrl if it exists\n\tconst normalizedBaseUrl = baseUrl.endsWith(\"/\") ? baseUrl.slice(0, -1) : baseUrl;\n\treturn `${normalizedBaseUrl}/api${endpoint}`;\n};\n\n// URL parameter inference helper\nexport const inferConfigFromUrl = (baseConfig: UniversalBookingConfig): UniversalBookingConfig => {\n\t// Only run in browser environment\n\tif (typeof window === \"undefined\") {\n\t\treturn baseConfig;\n\t}\n\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst config = { ...baseConfig };\n\n\t// Check for URL parameters and override config if they exist\n\tconst eventInstanceId = urlParams.get(\"eventInstanceId\") || urlParams.get(\"instance\");\n\tconst categoryId = urlParams.get(\"categoryId\") || urlParams.get(\"category\");\n\tconst eventTypeId = urlParams.get(\"eventTypeId\") || urlParams.get(\"type\");\n\tconst eventTypeIds = urlParams.get(\"eventTypeIds\") || urlParams.get(\"types\");\n\n\tif (eventInstanceId && !Number.isNaN(Number(eventInstanceId))) {\n\t\t// Return config with only eventInstanceId set\n\t\tconst { categoryId: _, eventTypeId: __, eventTypeIds: ___, ...rest } = baseConfig;\n\t\treturn {\n\t\t\t...rest,\n\t\t\teventInstanceId: Number(eventInstanceId),\n\t\t};\n\t}\n\n\tif (categoryId && !Number.isNaN(Number(categoryId))) {\n\t\t// Return config with only categoryId set\n\t\tconst { eventInstanceId: _, eventTypeId: __, eventTypeIds: ___, ...rest } = baseConfig;\n\t\treturn {\n\t\t\t...rest,\n\t\t\tcategoryId: Number(categoryId),\n\t\t};\n\t}\n\n\tif (eventTypeId && !Number.isNaN(Number(eventTypeId))) {\n\t\t// Return config with only eventTypeId set\n\t\tconst { eventInstanceId: _, categoryId: __, eventTypeIds: ___, ...rest } = baseConfig;\n\t\treturn {\n\t\t\t...rest,\n\t\t\teventTypeId: Number(eventTypeId),\n\t\t};\n\t}\n\n\tif (eventTypeIds) {\n\t\t// Parse comma-separated list of event type IDs\n\t\tconst typeIds = eventTypeIds\n\t\t\t.split(\",\")\n\t\t\t.map((id) => Number(id.trim()))\n\t\t\t.filter((id) => !Number.isNaN(id));\n\t\tif (typeIds.length > 0) {\n\t\t\t// Return config with only eventTypeIds set\n\t\t\tconst { eventInstanceId: _, categoryId: __, eventTypeId: ___, ...rest } = baseConfig;\n\t\t\treturn {\n\t\t\t\t...rest,\n\t\t\t\teventTypeIds: typeIds,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn baseConfig;\n};\n\n// API helper functions\nexport const createApiHeaders = (config: UniversalBookingConfig) => {\n\treturn {\n\t\t\"Content-Type\": \"application/json\",\n\t};\n};\n\nexport const createRequestBody = (config: UniversalBookingConfig, additionalData: any) => {\n\treturn {\n\t\t...additionalData,\n\t\torganizationId: config.organizationId,\n\t};\n};\n","import * as React from 'react';\nimport React__default from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar isUndefined = (val) => val === undefined;\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n object[key] = newValue;\n object = object[key];\n }\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React__default.createContext(null);\nHookFormContext.displayName = 'HookFormContext';\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React__default.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React__default.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React__default.useState(control._formState);\n const _localProxyFormState = React__default.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n useIsomorphicLayoutEffect(() => control._subscribe({\n name,\n formState: _localProxyFormState.current,\n exact,\n callback: (formState) => {\n !disabled &&\n updateFormState({\n ...control._formState,\n ...formState,\n });\n },\n }), [name, disabled, exact]);\n React__default.useEffect(() => {\n _localProxyFormState.current.isValid && control._setValid(true);\n }, [control]);\n return React__default.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _defaultValue = React__default.useRef(defaultValue);\n const [value, updateValue] = React__default.useState(control._getWatch(name, _defaultValue.current));\n useIsomorphicLayoutEffect(() => control._subscribe({\n name,\n formState: {\n values: true,\n },\n exact,\n callback: (formState) => !disabled &&\n updateValue(generateWatchOutput(name, control._names, formState.values || control._formValues, false, _defaultValue.current)),\n }), [name, control, disabled, exact]);\n React__default.useEffect(() => control._removeUnmounted());\n return value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n exact: true,\n });\n const _props = React__default.useRef(props);\n const _registerProps = React__default.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n const fieldState = React__default.useMemo(() => Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }), [formState, name]);\n const onChange = React__default.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]);\n const onBlur = React__default.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control._formValues]);\n const ref = React__default.useCallback((elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus && elm.focus(),\n select: () => elm.select && elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n }, [control._fields, name]);\n const field = React__default.useMemo(() => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange,\n onBlur,\n ref,\n }), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);\n React__default.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n control.register(name, {\n ..._props.current.rules,\n ...(isBoolean(_props.current.disabled)\n ? { disabled: _props.current.disabled }\n : {}),\n });\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n !isArrayField && control.register(name);\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React__default.useEffect(() => {\n control._setDisabledField({\n disabled,\n name,\n });\n }, [disabled, name, control]);\n return React__default.useMemo(() => ({\n field,\n formState,\n fieldState,\n }), [field, formState, fieldState]);\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst flatten = (obj) => {\n const output = {};\n for (const key of Object.keys(obj)) {\n if (isObjectType(obj[key]) && obj[key] !== null) {\n const nested = flatten(obj[key]);\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n }\n else {\n output[key] = obj[key];\n }\n }\n return output;\n};\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React__default.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n const flattenFormValues = flatten(control._formValues);\n for (const key in flattenFormValues) {\n formData.append(key, flattenFormValues[key]);\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(String(action), {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React__default.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React__default.createElement(React__default.Fragment, null, render({\n submit,\n }))) : (React__default.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2, _internal_visited = new WeakSet()) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n if (_internal_visited.has(object1) || _internal_visited.has(object2)) {\n return true;\n }\n _internal_visited.add(object1);\n _internal_visited.add(object2);\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2, _internal_visited)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\nvar hasPromiseValidation = (fieldReference) => !!fieldReference &&\n !!fieldReference.validate &&\n !!((isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find((validateFunction) => validateFunction.constructor.name === ASYNC_FUNCTION)));\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n }\n else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n }\n return;\n};\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n if (foundError && foundError.root && foundError.root.type) {\n return {\n name: `${fieldName}.root`,\n error: foundError.root,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isMessage = (value) => isString(value);\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, disabledFieldNames, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isReady: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n const _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n let _proxySubscribeFormState = {\n ..._proxyFormState,\n };\n const _subjects = {\n array: createSubject(),\n state: createSubject(),\n };\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _setValid = async (shouldUpdateValid) => {\n if (!_options.disabled &&\n (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid ||\n shouldUpdateValid)) {\n const isValid = _options.resolver\n ? isEmptyObject((await _runSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (!_options.disabled &&\n (_proxyFormState.isValidating ||\n _proxyFormState.validatingFields ||\n _proxySubscribeFormState.isValidating ||\n _proxySubscribeFormState.validatingFields)) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _setFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields || _proxySubscribeFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _setValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!_options.disabled) {\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty || _proxySubscribeFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.dirtyFields ||\n _proxySubscribeFormState.dirtyFields) &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = (_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _runSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n _updateIsValidating(name);\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _runSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction = field._f && hasPromiseValidation(field._f);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name], true);\n }\n const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name]);\n }\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.forEach((checkboxRef) => {\n if (!checkboxRef.defaultChecked || !checkboxRef.disabled) {\n if (Array.isArray(fieldValue)) {\n checkboxRef.checked = !!fieldValue.find((data) => data === checkboxRef.value);\n }\n else {\n checkboxRef.checked =\n fieldValue === checkboxRef.value || !!fieldValue;\n }\n }\n });\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.state.next({\n name,\n values: cloneObject(_formValues),\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n if (!value.hasOwnProperty(fieldKey)) {\n return;\n }\n const fieldValue = value[fieldKey];\n const fieldName = name + '.' + fieldKey;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: cloneObject(_formValues),\n });\n if ((_proxyFormState.isDirty ||\n _proxyFormState.dirtyFields ||\n _proxySubscribeFormState.isDirty ||\n _proxySubscribeFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.state.next({\n name: _state.mount ? name : undefined,\n values: cloneObject(_formValues),\n });\n };\n const onChange = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n if (field) {\n let error;\n let isValid;\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.state.next({\n name,\n type: event.type,\n values: cloneObject(_formValues),\n });\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid || _proxySubscribeFormState.isValid) {\n if (_options.mode === 'onBlur') {\n if (isBlurEvent) {\n _setValid();\n }\n }\n else if (!isBlurEvent) {\n _setValid();\n }\n }\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _runSchema([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _setValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n ((_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.state.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const _subscribe = (props) => _subjects.state.subscribe({\n next: (formState) => {\n if (shouldSubscribeByName(props.name, formState.name, props.exact) &&\n shouldRenderFormState(formState, props.formState || _proxyFormState, _setFormState, props.reRenderRoot)) {\n props.callback({\n values: { ..._formValues },\n ..._formState,\n ...formState,\n });\n }\n },\n }).unsubscribe;\n const subscribe = (props) => {\n _state.mount = true;\n _proxySubscribeFormState = {\n ..._proxySubscribeFormState,\n ...props.formState,\n };\n return _subscribe({\n ...props,\n formState: _proxySubscribeFormState,\n });\n };\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.state.next({\n values: cloneObject(_formValues),\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _setValid();\n };\n const _setDisabledField = ({ disabled, name, }) => {\n if ((isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)) {\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled) || isBoolean(_options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _setDisabledField({\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n const currentField = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist &&\n e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _runSchema();\n _formState.errors = errors;\n fieldValues = cloneObject(values);\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n unset(fieldValues, name);\n }\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _setValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n for (const fieldName of _names.mount) {\n const value = get(values, fieldName, get(_defaultValues, fieldName));\n if (!isUndefined(value)) {\n set(values, fieldName, value);\n setValue(fieldName, get(values, fieldName));\n }\n }\n }\n _formValues = cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.state.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n _state.watch = !!_options.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n }\n }\n };\n const _setFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n const methods = {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _subscribe,\n _runSchema,\n _focusError,\n _getWatch,\n _getDirty,\n _setValid,\n _setFieldArray,\n _setDisabledField,\n _setErrors,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _removeUnmounted,\n _disableForm,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n subscribe,\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n return {\n ...methods,\n formControl: methods,\n };\n}\n\nvar generateId = () => {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, rules, } = props;\n const [fields, setFields] = React__default.useState(control._getFieldArray(name));\n const ids = React__default.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React__default.useRef(fields);\n const _name = React__default.useRef(name);\n const _actioned = React__default.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n rules &&\n control.register(name, rules);\n useIsomorphicLayoutEffect(() => control._subjects.array.subscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n }).unsubscribe, [control]);\n const updateValues = React__default.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._setFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._setFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React__default.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted) &&\n !getValidationModes(control._options.reValidateMode).isOnSubmit) {\n if (control._options.resolver) {\n control._runSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._names.disabled, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.state.next({\n name,\n values: cloneObject(control._formValues),\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._setValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React__default.useEffect(() => {\n !get(control._formValues, name) && control._setFieldArray(name);\n return () => {\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n control._options.shouldUnregister || shouldUnregister\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React__default.useCallback(swap, [updateValues, name, control]),\n move: React__default.useCallback(move, [updateValues, name, control]),\n prepend: React__default.useCallback(prepend, [updateValues, name, control]),\n append: React__default.useCallback(append, [updateValues, name, control]),\n remove: React__default.useCallback(remove, [updateValues, name, control]),\n insert: React__default.useCallback(insert$1, [updateValues, name, control]),\n update: React__default.useCallback(update, [updateValues, name, control]),\n replace: React__default.useCallback(replace, [updateValues, name, control]),\n fields: React__default.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React__default.useRef(undefined);\n const _values = React__default.useRef(undefined);\n const [formState, updateFormState] = React__default.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n isReady: false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n if (props.formControl) {\n _formControl.current = {\n ...props.formControl,\n formState,\n };\n if (props.defaultValues && !isFunction(props.defaultValues)) {\n props.formControl.reset(props.defaultValues, props.resetOptions);\n }\n }\n else {\n const { formControl, ...rest } = createFormControl(props);\n _formControl.current = {\n ...rest,\n formState,\n };\n }\n }\n const control = _formControl.current.control;\n control._options = props;\n useIsomorphicLayoutEffect(() => {\n const sub = control._subscribe({\n formState: control._proxyFormState,\n callback: () => updateFormState({ ...control._formState }),\n reRenderRoot: true,\n });\n updateFormState((data) => ({\n ...data,\n isReady: true,\n }));\n control._formState.isReady = true;\n return sub;\n }, [control]);\n React__default.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React__default.useEffect(() => {\n if (props.mode) {\n control._options.mode = props.mode;\n }\n if (props.reValidateMode) {\n control._options.reValidateMode = props.reValidateMode;\n }\n }, [control, props.mode, props.reValidateMode]);\n React__default.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n control._focusError();\n }\n }, [control, props.errors]);\n React__default.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.state.next({\n values: control._getWatch(),\n });\n }, [control, props.shouldUnregister]);\n React__default.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n React__default.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [control, props.values]);\n React__default.useEffect(() => {\n if (!control._state.mount) {\n control._setValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, createFormControl, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","import{get as t,set as e}from\"react-hook-form\";const s=(e,s,o)=>{if(e&&\"reportValidity\"in e){const r=t(o,s);e.setCustomValidity(r&&r.message||\"\"),e.reportValidity()}},o=(t,e)=>{for(const o in e.fields){const r=e.fields[o];r&&r.ref&&\"reportValidity\"in r.ref?s(r.ref,o,t):r.refs&&r.refs.forEach(e=>s(e,o,t))}},r=(s,r)=>{r.shouldUseNativeValidation&&o(s,r);const f={};for(const o in s){const n=t(r.fields,o),a=Object.assign(s[o]||{},{ref:n&&n.ref});if(i(r.names||Object.keys(s),o)){const s=Object.assign({},t(f,o));e(s,\"root\",a),e(f,o,s)}else e(f,o,a)}return f},i=(t,e)=>t.some(t=>t.startsWith(e+\".\"));export{r as toNestErrors,o as validateFieldsNatively};\n//# sourceMappingURL=resolvers.mjs.map\n","import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import{appendErrors as o}from\"react-hook-form\";var n=function(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n},t=function(o,t,s){return void 0===s&&(s={}),function(i,a,u){try{return Promise.resolve(function(e,n){try{var a=Promise.resolve(o[\"sync\"===s.mode?\"parse\":\"parseAsync\"](i,t)).then(function(e){return u.shouldUseNativeValidation&&r({},u),{errors:{},values:s.raw?i:e}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){if(function(r){return Array.isArray(null==r?void 0:r.errors)}(r))return{values:{},errors:e(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)};throw r}))}catch(r){return Promise.reject(r)}}};export{t as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import React from \"react\";\nimport { formatCurrency, formatDate } from \"../utils\";\nimport { ImageCarousel } from \"./ImageCarousel\";\n\n// Simple markdown to HTML converter with better list handling\nfunction convertMarkdownToHtml(markdown: string): string {\n\tif (!markdown) return \"\";\n\n\tlet html = markdown;\n\n\t// Process line by line to handle lists properly\n\tconst lines = html.split(\"\\n\");\n\tconst processedLines: string[] = [];\n\tlet inUlList = false;\n\tlet inOlList = false;\n\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tconst line = lines[i];\n\t\tconst trimmedLine = line.trim();\n\n\t\t// Handle unordered lists\n\t\tif (trimmedLine.startsWith(\"* \")) {\n\t\t\tif (!inUlList) {\n\t\t\t\tprocessedLines.push(\"<ul>\");\n\t\t\t\tinUlList = true;\n\t\t\t}\n\t\t\tprocessedLines.push(`<li>${trimmedLine.substring(2)}</li>`);\n\t\t}\n\t\t// Handle ordered lists\n\t\telse if (/^\\d+\\.\\s/.test(trimmedLine)) {\n\t\t\tif (!inOlList) {\n\t\t\t\tprocessedLines.push(\"<ol>\");\n\t\t\t\tinOlList = true;\n\t\t\t}\n\t\t\tprocessedLines.push(`<li>${trimmedLine.replace(/^\\d+\\.\\s/, \"\")}</li>`);\n\t\t}\n\t\t// Not a list item\n\t\telse {\n\t\t\t// Close any open lists\n\t\t\tif (inUlList) {\n\t\t\t\tprocessedLines.push(\"</ul>\");\n\t\t\t\tinUlList = false;\n\t\t\t}\n\t\t\tif (inOlList) {\n\t\t\t\tprocessedLines.push(\"</ol>\");\n\t\t\t\tinOlList = false;\n\t\t\t}\n\n\t\t\t// Process other markdown\n\t\t\tif (trimmedLine) {\n\t\t\t\tprocessedLines.push(line);\n\t\t\t} else {\n\t\t\t\tprocessedLines.push(\"\");\n\t\t\t}\n\t\t}\n\t}\n\n\t// Close any remaining open lists\n\tif (inUlList) processedLines.push(\"</ul>\");\n\tif (inOlList) processedLines.push(\"</ol>\");\n\n\thtml = processedLines.join(\"\\n\");\n\n\t// Apply other markdown formatting\n\treturn (\n\t\thtml\n\t\t\t// Headers\n\t\t\t.replace(/^### (.*$)/gm, \"<h3>$1</h3>\")\n\t\t\t.replace(/^## (.*$)/gm, \"<h2>$1</h2>\")\n\t\t\t.replace(/^# (.*$)/gm, \"<h1>$1</h1>\")\n\t\t\t// Bold\n\t\t\t.replace(/\\*\\*(.*?)\\*\\*/g, \"<strong>$1</strong>\")\n\t\t\t// Italic\n\t\t\t.replace(/\\*(.*?)\\*/g, \"<em>$1</em>\")\n\t\t\t// Underline\n\t\t\t.replace(/__(.*?)__/g, \"<u>$1</u>\")\n\t\t\t// Links\n\t\t\t.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '<a href=\"$2\">$1</a>')\n\t\t\t// Blockquotes\n\t\t\t.replace(/^> (.*$)/gm, \"<blockquote>$1</blockquote>\")\n\t\t\t// Paragraphs (but not for lines that are already HTML tags)\n\t\t\t.replace(/^(?!<[^>]+>)(.+)$/gm, \"<p>$1</p>\")\n\t\t\t// Clean up empty paragraphs\n\t\t\t.replace(/<p>\\s*<\\/p>/g, \"\")\n\t\t\t// Line breaks within paragraphs\n\t\t\t.replace(/\\n(?!<)/g, \"<br>\")\n\t);\n}\n\ninterface EventType {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\thighlights?: string[];\n\timages: string[];\n\tcategory: {\n\t\tid: number;\n\t\tname: string;\n\t\tcolor: string;\n\t};\n\tnextAvailableDate: string | null;\n\tbasePrice: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tmaxParticipants: number;\n\tavailableInstancesCount: number;\n\thasAvailableInstances: boolean;\n}\n\ninterface EventTypeDetailsDialogProps {\n\tisOpen: boolean;\n\tonClose: () => void;\n\teventType: EventType | null;\n\tonEventTypeSelect: (eventType: EventType) => void;\n}\n\n// Icon components\nconst IconClock = ({ size = 16, color = \"#10b981\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t<polyline points=\"12 6 12 12 16 14\" />\n\t</svg>\n);\n\nconst IconCalendar = ({ size = 16, color = \"#3b82f6\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n\t\t<line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\" />\n\t\t<line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\" />\n\t\t<line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\" />\n\t</svg>\n);\n\nconst IconCheck = ({ size = 16, color = \"#10b981\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<polyline points=\"20 6 9 17 4 12\" />\n\t</svg>\n);\n\nconst IconWave = ({ size = 20, color = \"#0ea5e9\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<path d=\"M2 18c2-2 6-2 8 0s6 2 8 0 6-2 8 0\" />\n\t\t<path d=\"M2 12c2-2 6-2 8 0s6 2 8 0 6-2 8 0\" />\n\t\t<path d=\"M2 6c2-2 6-2 8 0s6 2 8 0 6-2 8 0\" />\n\t</svg>\n);\n\nconst IconUsers = ({ size = 16, color = \"#6b7280\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\" />\n\t\t<circle cx=\"9\" cy=\"7\" r=\"4\" />\n\t\t<path d=\"M23 21v-2a4 4 0 0 0-3-3.87\" />\n\t\t<path d=\"M16 3.13a4 4 0 0 1 0 7.75\" />\n\t</svg>\n);\n\nexport function EventTypeDetailsDialog({\n\tisOpen,\n\tonClose,\n\teventType,\n\tonEventTypeSelect,\n}: EventTypeDetailsDialogProps) {\n\tif (!isOpen || !eventType) return null;\n\n\tconst isAvailable = eventType.hasAvailableInstances;\n\n\t// Memoize the complete HTML including styles to prevent DOM updates\n\tconst descriptionHtml = React.useMemo(() => {\n\t\tif (!eventType.description) return \"\";\n\n\t\tconst convertedMarkdown = convertMarkdownToHtml(eventType.description);\n\n\t\t// Return complete HTML with styles to prevent recreation on each render\n\t\treturn `<style>\n\t\t\t.event-description p { margin: 0 0 12px 0; }\n\t\t\t.event-description p:last-child { margin-bottom: 0; }\n\t\t\t.event-description strong { font-weight: 600; color: var(--bw-text-color); }\n\t\t\t.event-description em { font-style: italic; }\n\t\t\t.event-description u { text-decoration: underline; }\n\t\t\t.event-description ul, .event-description ol {\n\t\t\t\tmargin: 12px 0; \n\t\t\t\tpadding-left: 20px; \n\t\t\t\tlist-style-type: disc;\n\t\t\t}\n\t\t\t.event-description ol { list-style-type: decimal; }\n\t\t\t.event-description li { margin-bottom: 4px; display: list-item; }\n\t\t\t.event-description blockquote { \n\t\t\t\tmargin: 12px 0; \n\t\t\t\tpadding-left: 16px; \n\t\t\t\tborder-left: 3px solid var(--bw-border-color); \n\t\t\t\tfont-style: italic; \n\t\t\t}\n\t\t\t.event-description a { \n\t\t\t\tcolor: var(--bw-highlight-color); \n\t\t\t\ttext-decoration: underline; \n\t\t\t}\n\t\t\t.event-description h1, .event-description h2, .event-description h3 { \n\t\t\t\tcolor: var(--bw-text-color); \n\t\t\t\tfont-weight: 600; \n\t\t\t\tmargin: 16px 0 8px 0; \n\t\t\t}\n\t\t\t.event-description h1 { font-size: 20px; }\n\t\t\t.event-description h2 { font-size: 18px; }\n\t\t\t.event-description h3 { font-size: 16px; }\n\t\t</style><div class=\"event-description\">${convertedMarkdown}</div>`;\n\t}, [eventType.description]);\n\n\tconst handleBookingClick = () => {\n\t\tonEventTypeSelect(eventType);\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\tbottom: 0,\n\t\t\t\tzIndex: 10000,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t}}\n\t\t\tonClick={onClose}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\tmaxWidth: \"700px\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tmaxHeight: \"90vh\",\n\t\t\t\t\toverflow: \"auto\",\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\tboxShadow: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t}}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{/* Close button */}\n\t\t\t\t<button\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\ttop: \"var(--bw-spacing)\",\n\t\t\t\t\t\tright: \"var(--bw-spacing)\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\tfontSize: \"24px\",\n\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\twidth: \"32px\",\n\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tzIndex: 10,\n\t\t\t\t\t}}\n\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-border-color)\";\n\t\t\t\t\t}}\n\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t×\n\t\t\t\t</button>\n\n\t\t\t\t{/* Content */}\n\t\t\t\t<div style={{ padding: \"var(--bw-spacing-large)\" }}>\n\t\t\t\t\t{/* Event Details Grid */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tmarginBottom: \"24px\",\n\t\t\t\t\t\t\tpadding: \"16px\",\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{/* Category */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{eventType.category.name}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{/* Title */}\n\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"28px\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"16px\",\n\t\t\t\t\t\t\t\t\tlineHeight: \"1.3\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tmargin: \"0 0 16px 0\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{eventType.name}\n\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{eventType.highlights && eventType.highlights.length > 0 && (\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n\t\t\t\t\t\t\t\t{/* Highlights Section */}\n\t\t\t\t\t\t\t\t<div style={{ marginBottom: \"24px\" }}>\n\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tlistStyle: \"none\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"0\",\n\t\t\t\t\t\t\t\t\t\t\tmargin: \"0\",\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"3px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{eventType.highlights\n\t\t\t\t\t\t\t\t\t\t\t.filter((highlight) => highlight.trim())\n\t\t\t\t\t\t\t\t\t\t\t.map((highlight, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"flex-start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"10px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ marginTop: \"4px\", flexShrink: 0 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconCheck size={16} color=\"var(--bw-success-color)\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>{highlight.trim()}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Description Section */}\n\t\t\t\t\t{eventType.description && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tmarginBottom: \"24px\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\tpadding: \"0px 20px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={{ __html: descriptionHtml }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Price and Action */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tmarginTop: \"32px\",\n\t\t\t\t\t\t\tpadding: \"20px\",\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tPreis ab\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatCurrency(eventType.basePrice)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{isAvailable && (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={handleBookingClick}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\tpadding: \"14px 28px\",\n\t\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"0.9\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-1px)\";\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"1\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<IconWave size={20} color=\"white\" />\n\t\t\t\t\t\t\t\tJetzt buchen\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Unavailable Overlay */}\n\t\t\t\t{!isAvailable && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\tinset: 0,\n\t\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.3)\",\n\t\t\t\t\t\t\tbackdropFilter: \"blur(2px)\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"rgba(255, 255, 255, 0.9)\",\n\t\t\t\t\t\t\t\tpadding: \"16px 32px\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tfontSize: \"18px\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\tboxShadow: \"var(--bw-shadow-md)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tAusgebucht\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import { useState } from \"react\";\n\n// Carousel navigation icons\nconst IconChevronLeft = ({ size = 20, color = \"white\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<polyline points=\"15 18 9 12 15 6\" />\n\t</svg>\n);\n\nconst IconChevronRight = ({ size = 20, color = \"white\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<polyline points=\"9 18 15 12 9 6\" />\n\t</svg>\n);\n\n// A placeholder SVG for events without an image.\nconst EventImagePlaceholder = () => (\n\t<div\n\t\tstyle={{\n\t\t\twidth: \"100%\",\n\t\t\theight: \"100%\",\n\t\t\tbackground: \"linear-gradient(135deg, var(--bw-highlight-muted), var(--bw-highlight-color))\",\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t\toverflow: \"hidden\",\n\t\t\tposition: \"relative\",\n\t\t}}\n\t>\n\t\t<svg\n\t\t\twidth=\"60%\"\n\t\t\theight=\"60%\"\n\t\t\tviewBox=\"0 0 120 40\"\n\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"absolute\",\n\t\t\t\topacity: 0.18,\n\t\t\t\tfilter: \"blur(0.5px)\",\n\t\t\t}}\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M0 30 Q 15 10, 30 30 T 60 30 T 90 30 T 120 30\"\n\t\t\t\tstroke=\"white\"\n\t\t\t\tstrokeWidth=\"4\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t/>\n\t\t\t<circle cx=\"20\" cy=\"25\" r=\"3\" fill=\"white\" opacity=\"0.7\" />\n\t\t\t<circle cx=\"100\" cy=\"28\" r=\"2\" fill=\"white\" opacity=\"0.5\" />\n\t\t</svg>\n\t</div>\n);\n\ninterface ImageCarouselProps {\n\timages: string[];\n\teventName: string;\n}\n\n// Image Carousel Component with smooth slide animations\nexport const ImageCarousel = ({ images, eventName }: ImageCarouselProps) => {\n\tconst [currentIndex, setCurrentIndex] = useState(0);\n\tconst [isTransitioning, setIsTransitioning] = useState(false);\n\n\tconst nextImage = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (isTransitioning) return;\n\t\tsetIsTransitioning(true);\n\t\tsetCurrentIndex((prev) => (prev + 1) % images.length);\n\t\tsetTimeout(() => setIsTransitioning(false), 400);\n\t};\n\n\tconst prevImage = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (isTransitioning) return;\n\t\tsetIsTransitioning(true);\n\t\tsetCurrentIndex((prev) => (prev - 1 + images.length) % images.length);\n\t\tsetTimeout(() => setIsTransitioning(false), 400);\n\t};\n\n\tconst goToImage = (index: number, e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (isTransitioning || index === currentIndex) return;\n\t\tsetIsTransitioning(true);\n\t\tsetCurrentIndex(index);\n\t\tsetTimeout(() => setIsTransitioning(false), 400);\n\t};\n\n\tif (images.length === 0) {\n\t\treturn <EventImagePlaceholder />;\n\t}\n\n\tif (images.length === 1) {\n\t\treturn (\n\t\t\t<img\n\t\t\t\tsrc={images[0]}\n\t\t\t\talt={eventName}\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tobjectFit: \"cover\",\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div style={{ position: \"relative\", width: \"100%\", height: \"100%\", overflow: \"hidden\" }}>\n\t\t\t{/* Image Container with sliding animation */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\twidth: `${images.length * 100}%`,\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\ttransform: `translateX(-${(currentIndex * 100) / images.length}%)`,\n\t\t\t\t\ttransition: \"transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{images.map((image, index) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: `${100 / images.length}%`,\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={image}\n\t\t\t\t\t\t\talt={`${eventName} - Bild ${index + 1}`}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\tobjectFit: \"cover\",\n\t\t\t\t\t\t\t\tdisplay: \"block\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* Navigation Buttons */}\n\t\t\t{images.length > 1 && (\n\t\t\t\t<>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={prevImage}\n\t\t\t\t\t\tdisabled={isTransitioning}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\tleft: \"12px\",\n\t\t\t\t\t\t\ttop: \"50%\",\n\t\t\t\t\t\t\ttransform: \"translateY(-50%)\",\n\t\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.5)\",\n\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tcursor: isTransitioning ? \"not-allowed\" : \"pointer\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\t\topacity: isTransitioning ? 0.5 : 1,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\tif (!isTransitioning) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(0, 0, 0, 0.7)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-50%) scale(1.1)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\tif (!isTransitioning) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(0, 0, 0, 0.5)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-50%) scale(1)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconChevronLeft size={20} color=\"white\" />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={nextImage}\n\t\t\t\t\t\tdisabled={isTransitioning}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\tright: \"12px\",\n\t\t\t\t\t\t\ttop: \"50%\",\n\t\t\t\t\t\t\ttransform: \"translateY(-50%)\",\n\t\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.5)\",\n\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tcursor: isTransitioning ? \"not-allowed\" : \"pointer\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\t\topacity: isTransitioning ? 0.5 : 1,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\tif (!isTransitioning) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(0, 0, 0, 0.7)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-50%) scale(1.1)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\tif (!isTransitioning) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(0, 0, 0, 0.5)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-50%) scale(1)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconChevronRight size={20} color=\"white\" />\n\t\t\t\t\t</button>\n\t\t\t\t</>\n\t\t\t)}\n\n\t\t\t{/* Indicators */}\n\t\t\t{images.length > 1 && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\tbottom: \"12px\",\n\t\t\t\t\t\tleft: \"50%\",\n\t\t\t\t\t\ttransform: \"translateX(-50%)\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{images.map((_, index) => (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tonClick={(e) => goToImage(index, e)}\n\t\t\t\t\t\t\tdisabled={isTransitioning}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: index === currentIndex ? \"16px\" : \"8px\",\n\t\t\t\t\t\t\t\theight: \"8px\",\n\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\tbackgroundColor: index === currentIndex ? \"white\" : \"rgba(255, 255, 255, 0.5)\",\n\t\t\t\t\t\t\t\tcursor: isTransitioning ? \"not-allowed\" : \"pointer\",\n\t\t\t\t\t\t\t\ttransition: \"all 0.3s ease\",\n\t\t\t\t\t\t\t\topacity: isTransitioning ? 0.7 : 1,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\tif (index !== currentIndex && !isTransitioning) {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(255, 255, 255, 0.8)\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1.2)\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\tif (index !== currentIndex && !isTransitioning) {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"rgba(255, 255, 255, 0.5)\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1)\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Image Counter with animation */}\n\t\t\t{images.length > 1 && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\ttop: \"12px\",\n\t\t\t\t\t\tright: \"12px\",\n\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.6)\",\n\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\tpadding: \"4px 8px\",\n\t\t\t\t\t\tborderRadius: \"12px\",\n\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\tzIndex: 2,\n\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\ttransform: isTransitioning ? \"scale(1.1)\" : \"scale(1)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{currentIndex + 1} / {images.length}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Loading overlay during transition */}\n\t\t\t{isTransitioning && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\tinset: 0,\n\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.1)\",\n\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t\tpointerEvents: \"none\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};","import { useEffect, useRef, useState } from \"react\";\nimport { formatCurrency, formatDate } from \"../utils\";\nimport { EventTypeDetailsDialog } from \"./EventTypeDetailsDialog\";\nimport { ImageCarousel } from \"./ImageCarousel\";\n\ninterface EventType {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\thighlights?: string[];\n\timages: string[];\n\tcategory: {\n\t\tid: number;\n\t\tname: string;\n\t\tcolor: string;\n\t};\n\tnextAvailableDate: string | null;\n\tbasePrice: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tmaxParticipants: number;\n\tavailableInstancesCount: number;\n\thasAvailableInstances: boolean;\n}\n\ninterface EventTypeSelectionProps {\n\teventTypes: EventType[];\n\tonEventTypeSelect: (eventType: EventType) => void;\n\tisLoading?: boolean;\n\tskeletonCount?: number;\n}\n\n// Custom minimal SVG icons (Lucide-style)\nexport const IconClock = ({ size = 16, color = \"#10b981\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t<polyline points=\"12 6 12 12 16 14\" />\n\t</svg>\n);\nexport const IconCalendar = ({ size = 16, color = \"#3b82f6\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n\t\t<line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\" />\n\t\t<line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\" />\n\t\t<line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\" />\n\t</svg>\n);\n\nconst IconCheck = ({ size = 16, color = \"#10b981\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<polyline points=\"20 6 9 17 4 12\" />\n\t</svg>\n);\n\n// A placeholder SVG for events without an image.\nconst EventImagePlaceholder = () => (\n\t<div\n\t\tstyle={{\n\t\t\twidth: \"100%\",\n\t\t\theight: \"100%\",\n\t\t\tbackground: \"linear-gradient(135deg, var(--bw-highlight-muted), var(--bw-highlight-color))\",\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t\toverflow: \"hidden\",\n\t\t\tposition: \"relative\",\n\t\t}}\n\t>\n\t\t<svg\n\t\t\twidth=\"60%\"\n\t\t\theight=\"60%\"\n\t\t\tviewBox=\"0 0 120 40\"\n\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\tstyle={{\n\t\t\t\tposition: \"absolute\",\n\t\t\t\topacity: 0.18,\n\t\t\t\tfilter: \"blur(0.5px)\",\n\t\t\t}}\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M0 30 Q 15 10, 30 30 T 60 30 T 90 30 T 120 30\"\n\t\t\t\tstroke=\"white\"\n\t\t\t\tstrokeWidth=\"4\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t/>\n\t\t\t<circle cx=\"20\" cy=\"25\" r=\"3\" fill=\"white\" opacity=\"0.7\" />\n\t\t\t<circle cx=\"100\" cy=\"28\" r=\"2\" fill=\"white\" opacity=\"0.5\" />\n\t\t</svg>\n\t</div>\n);\n\n// Wave icon for booking action\nexport const IconWave = ({ size = 20, color = \"#0ea5e9\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<path d=\"M2 18c2-2 6-2 8 0s6 2 8 0 6-2 8 0\" />\n\t\t<path d=\"M2 12c2-2 6-2 8 0s6 2 8 0 6-2 8 0\" />\n\t\t<path d=\"M2 6c2-2 6-2 8 0s6 2 8 0 6-2 8 0\" />\n\t</svg>\n);\n\n// Helper to truncate text to a max length with ellipsis\nfunction truncateText(text: string, maxLength: number) {\n\tif (!text) return \"\";\n\treturn text.length > maxLength ? `${text.slice(0, maxLength - 1)}…` : text;\n}\n\n// Loading skeleton component that matches the actual design\nconst EventTypeSelectionSkeleton = ({ count = 4 }: { count?: number }) => (\n\t<>\n\t\t<style>{`\n\t\t\t@keyframes shimmer {\n\t\t\t\t0% { transform: translateX(-100%); }\n\t\t\t\t100% { transform: translateX(100%); }\n\t\t\t}\n\t\t\t\n\t\t\t.bw-skeleton-shimmer {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t\n\t\t\t.bw-skeleton-shimmer::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);\n\t\t\t\tanimation: shimmer 2s infinite;\n\t\t\t}\n\t\t\t\n\t\t\t@media (max-width: 600px) {\n\t\t\t\t.bw-skeleton-list {\n\t\t\t\t\tpadding: 8px !important;\n\t\t\t\t\tgap: 12px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-card {\n\t\t\t\t\tmax-width: 100% !important;\n\t\t\t\t\tflex: 1 1 100% !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-img {\n\t\t\t\t\theight: 160px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-content {\n\t\t\t\t\tpadding: 12px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-title {\n\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t\theight: 20px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-desc {\n\t\t\t\t\tmin-height: 100px !important;\n\t\t\t\t\tmax-height: 100px !important;\n\t\t\t\t}\n\t\t\t\t.bw-skeleton-price {\n\t\t\t\t\tfont-size: 1.3rem !important;\n\t\t\t\t\theight: 28px !important;\n\t\t\t\t}\n\t\t\t}\n\t\t`}</style>\n\t\t<div className=\"bw-skeleton-list bw-event-type-list\" style={{ padding: \"24px\" }}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexWrap: \"wrap\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\tgap: \"32px\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{Array.from({ length: count }).map((_, idx) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\tclassName=\"bw-skeleton-card bw-skeleton-shimmer bw-event-type-card\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\tboxShadow: \"var(--bw-shadow-md)\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\t\t\t\tflex: \"1 1 350px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Skeleton badge - same position as real badge */}\n\t\t\t\t\t\t<div style={{ position: \"absolute\", top: \"16px\", left: \"16px\", zIndex: 10 }}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"rgba(255, 255, 255, 0.2)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Skeleton Image - matches bw-event-type-img */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"bw-skeleton-img bw-event-type-img\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\theight: \"300px\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Skeleton Content - matches bw-event-type-content */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"bw-skeleton-content bw-event-type-content\"\n\t\t\t\t\t\t\tstyle={{ padding: \"24px\", flex: 1 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* Skeleton Category */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"60%\",\n\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t{/* Skeleton Title - matches bw-event-type-title */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"bw-skeleton-title bw-event-type-title\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"85%\",\n\t\t\t\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"12px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t{/* Skeleton Event Details - matches the icon + text layout */}\n\t\t\t\t\t\t\t<div style={{ marginBottom: \"10px\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\tgap: \"6px\",\n\t\t\t\t\t\t\t\t\t\tmarginBottom: \"6px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\tgap: \"6px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"120px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Skeleton Highlights - matches bw-event-type-highlights with proper height */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"bw-skeleton-desc bw-event-type-highlights\"\n\t\t\t\t\t\t\t\tstyle={{ marginBottom: \"20px\", minHeight: \"128px\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{Array.from({ length: 4 }).map((_, lineIdx) => (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={lineIdx}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: lineIdx === 3 ? \"60%\" : \"85%\",\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Skeleton Price and Button - matches exact layout */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tmarginTop: \"20px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"bw-skeleton-price bw-event-type-price\"\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"120px\",\n\t\t\t\t\t\t\t\t\t\theight: \"48px\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\topacity: 0.3,\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t</>\n);\n\nexport function EventTypeSelection({\n\teventTypes,\n\tonEventTypeSelect,\n\tisLoading = false,\n\tskeletonCount = 4,\n}: EventTypeSelectionProps) {\n\t// State for details dialog\n\tconst [detailsDialogOpen, setDetailsDialogOpen] = useState(false);\n\tconst [selectedEventTypeForDetails, setSelectedEventTypeForDetails] = useState<EventType | null>(\n\t\tnull,\n\t);\n\n\t// Handle opening details dialog\n\tconst handleShowDetails = (eventType: EventType) => {\n\t\tsetSelectedEventTypeForDetails(eventType);\n\t\tsetDetailsDialogOpen(true);\n\t};\n\n\t// Handle closing details dialog\n\tconst handleCloseDetails = () => {\n\t\tsetDetailsDialogOpen(false);\n\t\tsetSelectedEventTypeForDetails(null);\n\t};\n\n\t// Show loading skeleton\n\tif (isLoading) {\n\t\treturn <EventTypeSelectionSkeleton count={skeletonCount} />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<style>{`\n\t\t\t\t@media (max-width: 600px) {\n\t\t\t\t\t.bw-event-type-list {\n\t\t\t\t\t\tpadding: 8px !important;\n\t\t\t\t\t\tgap: 12px !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-card {\n\t\t\t\t\t\tmax-width: 100% !important;\n\t\t\t\t\t\tflex: 1 1 100% !important;\n\t\t\t\t\t\tpadding: 0 !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-img {\n\t\t\t\t\t\theight: 160px !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-title {\n\t\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-desc {\n\t\t\t\t\t\tfont-size: 0.8rem !important;\n\t\t\t\t\t\tmin-height: 100px !important;\n\t\t\t\t\t\tmax-height: 100px !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-price {\n\t\t\t\t\t\tfont-size: 1.3rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-type-content {\n\t\t\t\t\t\tpadding: 12px !important;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t\t{eventTypes.length === 0 ? (\n\t\t\t\t<div style={{ maxWidth: \"600px\", margin: \"0 auto\", padding: \"24px\" }}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tpadding: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tminHeight: \"400px\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Empty State Icon */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"64px\",\n\t\t\t\t\t\t\t\theight: \"64px\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\tmargin: \"0 auto var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\topacity: 0.8,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t📅\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Empty State Title */}\n\t\t\t\t\t\t<h3\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-xl)\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-small) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tKeine Veranstaltungen verfügbar\n\t\t\t\t\t\t</h3>\n\n\t\t\t\t\t\t{/* Empty State Message */}\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-large) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\tmaxWidth: \"400px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDerzeit sind keine Veranstaltungen in dieser Kategorie verfügbar. Bitte schaue später\n\t\t\t\t\t\t\tnoch einmal vorbei oder kontaktiere uns direkt.\n\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t{/* Action Button */}\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tonClick={() => window.location.reload()}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-highlight-color)`,\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.color = \"white\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-1px)\";\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span style={{ fontSize: \"16px\" }}>🔄</span>\n\t\t\t\t\t\t\tSeite neu laden\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div className=\"bw-event-type-list\" style={{ padding: \"24px\" }}>\n\t\t\t\t\t{/* Event Types List */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexWrap: \"wrap\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tgap: \"32px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{eventTypes.map((eventType) => {\n\t\t\t\t\t\t\tconst isAvailable = eventType.hasAvailableInstances;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={eventType.id}\n\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-card\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.3s ease\",\n\t\t\t\t\t\t\t\t\t\tcursor: isAvailable ? \"pointer\" : \"not-allowed\",\n\t\t\t\t\t\t\t\t\t\topacity: isAvailable ? 1 : 0.6,\n\t\t\t\t\t\t\t\t\t\tboxShadow: \"var(--bw-shadow-md)\",\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\t\t\t\t\t\t\tflex: \"1 1 350px\",\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonClick={() => isAvailable && onEventTypeSelect(eventType)}\n\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\tif (isAvailable) {\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-2px)\";\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.boxShadow = \"var(--bw-shadow-lg)\";\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\tif (isAvailable) {\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.boxShadow = \"var(--bw-shadow-md)\";\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{/* Availability Badge */}\n\t\t\t\t\t\t\t\t\t<div style={{ position: \"absolute\", top: \"16px\", left: \"16px\", zIndex: 10 }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"4px 8px\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: isAvailable\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"var(--bw-success-color)\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{isAvailable ? \"freie Plätze\" : \"Ausgebucht\"}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Main Image Carousel */}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-img\"\n\t\t\t\t\t\t\t\t\t\tstyle={{ position: \"relative\", width: \"100%\", height: \"300px\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<ImageCarousel images={eventType.images} eventName={eventType.name} />\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Content Section */}\n\t\t\t\t\t\t\t\t\t<div className=\"bw-event-type-content\" style={{ padding: \"24px\" }}>\n\t\t\t\t\t\t\t\t\t\t{/* Category */}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{eventType.category.name}\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{/* Title */}\n\t\t\t\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-title\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"clamp(1.1rem, 2.5vw, 24px)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.3\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"0 0 12px 0\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{eventType.name}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\n\t\t\t\t\t\t\t\t\t\t{/* Event Details */}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tgap: \"6px\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginLeft: \"10px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<IconCalendar size={17} color=\"var(--bw-text-color)\" />\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{eventType.nextAvailableDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t? `Freie Plätze ab ${formatDate(eventType.nextAvailableDate)}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"Keine Termine frei\"}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{/* Highlights or Description */}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ marginLeft: \"10px\", cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\thandleShowDetails(eventType);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{eventType.highlights && eventType.highlights.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\t\t\t// Show highlights as list\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-highlights\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0px 10px 0px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tminHeight: \"128px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"-webkit-box\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitLineClamp: 5,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitBoxOrient: \"vertical\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlistStyle: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"3px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{eventType.highlights\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.filter((highlight) => highlight.trim())\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((highlight, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"flex-start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"clamp(0.95rem, 2vw, 16px)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ marginTop: \"4px\", flexShrink: 0 }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconCheck size={16} color=\"var(--bw-success-color)\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>{highlight.trim()}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t// Fallback to description\n\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-desc\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"clamp(0.95rem, 2vw, 16px)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"10px 0 10px 0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"-webkit-box\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitLineClamp: 5,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitBoxOrient: \"vertical\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextOverflow: \"ellipsis\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminHeight: \"128px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxHeight: \"128px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{eventType.description || \" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{(eventType.description || eventType.highlights?.length) && (\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleShowDetails(eventType);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \" -30px -15px 10px 0px var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tmarginLeft: \"auto\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tright: \"24px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tbottom: \"79px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\topacity: \"0.8\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"1\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-1px)\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"0.8\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tMehr anzeigen\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{/* Price and Action */}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"20px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-type-price\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"clamp(1.3rem, 4vw, 32px)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(eventType.basePrice)}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t{isAvailable && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"0.9\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-1px)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"1\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<IconWave size={20} color=\"var(--bw-text-color)\" /> Jetzt buchen\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t{/* More Details Button */}\n\t\t\t\t\t\t\t\t\t\t{/* <div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\tpaddingTop: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderTop: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tMehr Details\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div> */}\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Unavailable Overlay */}\n\t\t\t\t\t\t\t\t\t{!isAvailable && (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\t\t\t\tinset: 0,\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.3)\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackdropFilter: \"blur(2px)\",\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"rgba(255, 255, 255, 0.9)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"var(--bw-shadow-md)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tAusgebucht\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Event Type Details Dialog */}\n\t\t\t<EventTypeDetailsDialog\n\t\t\t\tisOpen={detailsDialogOpen}\n\t\t\t\tonClose={handleCloseDetails}\n\t\t\t\teventType={selectedEventTypeForDetails}\n\t\t\t\tonEventTypeSelect={onEventTypeSelect}\n\t\t\t/>\n\t\t</>\n\t);\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactStripe = {}, global.React));\n})(this, (function (exports, React) { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaultExportFromCjs (x) {\n \treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n }\n\n var propTypes = {exports: {}};\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var ReactPropTypesSecret_1;\n var hasRequiredReactPropTypesSecret;\n\n function requireReactPropTypesSecret() {\n if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n hasRequiredReactPropTypesSecret = 1;\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var factoryWithThrowingShims;\n var hasRequiredFactoryWithThrowingShims;\n\n function requireFactoryWithThrowingShims() {\n if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n hasRequiredFactoryWithThrowingShims = 1;\n\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n return factoryWithThrowingShims;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes.exports = requireFactoryWithThrowingShims()();\n }\n\n var propTypesExports = propTypes.exports;\n var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);\n\n var useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n };\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n };\n\n var INVALID_STRIPE_ERROR$2 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(errorMsg);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(function (result) {\n return validateStripe(result, errorMsg);\n })\n };\n }\n\n var stripe = validateStripe(raw, errorMsg);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var registerWithStripeJs = function registerWithStripeJs(stripe) {\n if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"3.7.0\"\n });\n\n stripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"3.7.0\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n Elements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n };\n\n var _excluded$1 = [\"on\", \"session\"];\n var CheckoutSdkContext = /*#__PURE__*/React.createContext(null);\n CheckoutSdkContext.displayName = 'CheckoutSdkContext';\n var parseCheckoutSdkContext = function parseCheckoutSdkContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find CheckoutProvider context; You need to wrap the part of your app that \".concat(useCase, \" in an <CheckoutProvider> provider.\"));\n }\n\n return ctx;\n };\n var CheckoutContext = /*#__PURE__*/React.createContext(null);\n CheckoutContext.displayName = 'CheckoutContext';\n var extractCheckoutContextValue = function extractCheckoutContextValue(checkoutSdk, sessionState) {\n if (!checkoutSdk) {\n return null;\n }\n\n checkoutSdk.on;\n checkoutSdk.session;\n var actions = _objectWithoutProperties(checkoutSdk, _excluded$1);\n\n if (!sessionState) {\n return Object.assign(checkoutSdk.session(), actions);\n }\n\n return Object.assign(sessionState, actions);\n };\n var INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `CheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var CheckoutProvider = function CheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR$1);\n }, [rawStripeProp]); // State used to trigger a re-render when sdk.session is updated\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n session = _React$useState2[0],\n setSession = _React$useState2[1];\n\n var _React$useState3 = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n checkoutSdk: null\n };\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n ctx = _React$useState4[0],\n setContext = _React$useState4[1];\n\n var safeSetContext = function safeSetContext(stripe, checkoutSdk) {\n setContext(function (ctx) {\n if (ctx.stripe && ctx.checkoutSdk) {\n return ctx;\n }\n\n return {\n stripe: stripe,\n checkoutSdk: checkoutSdk\n };\n });\n }; // Ref used to avoid calling initCheckout multiple times when options changes\n\n\n var initCheckoutCalledRef = React.useRef(false);\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted && !initCheckoutCalledRef.current) {\n // Only update context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n initCheckoutCalledRef.current = true;\n stripe.initCheckout(options).then(function (checkoutSdk) {\n if (checkoutSdk) {\n safeSetContext(stripe, checkoutSdk);\n checkoutSdk.on('change', setSession);\n }\n });\n }\n });\n } else if (parsed.tag === 'sync' && parsed.stripe && !initCheckoutCalledRef.current) {\n initCheckoutCalledRef.current = true;\n parsed.stripe.initCheckout(options).then(function (checkoutSdk) {\n if (checkoutSdk) {\n safeSetContext(parsed.stripe, checkoutSdk);\n checkoutSdk.on('change', setSession);\n }\n });\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options, setSession]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on CheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n var prevCheckoutSdk = usePrevious(ctx.checkoutSdk);\n React.useEffect(function () {\n var _prevOptions$elements, _options$elementsOpti;\n\n // Ignore changes while checkout sdk is not initialized.\n if (!ctx.checkoutSdk) {\n return;\n }\n\n var previousAppearance = prevOptions === null || prevOptions === void 0 ? void 0 : (_prevOptions$elements = prevOptions.elementsOptions) === null || _prevOptions$elements === void 0 ? void 0 : _prevOptions$elements.appearance;\n var currentAppearance = options === null || options === void 0 ? void 0 : (_options$elementsOpti = options.elementsOptions) === null || _options$elementsOpti === void 0 ? void 0 : _options$elementsOpti.appearance;\n var hasAppearanceChanged = !isEqual(currentAppearance, previousAppearance);\n var hasSdkLoaded = !prevCheckoutSdk && ctx.checkoutSdk;\n\n if (currentAppearance && (hasAppearanceChanged || hasSdkLoaded)) {\n ctx.checkoutSdk.changeAppearance(currentAppearance);\n }\n }, [options, prevOptions, ctx.checkoutSdk, prevCheckoutSdk]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n var checkoutContextValue = React.useMemo(function () {\n return extractCheckoutContextValue(ctx.checkoutSdk, session);\n }, [ctx.checkoutSdk, session]);\n\n if (!ctx.checkoutSdk) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(CheckoutSdkContext.Provider, {\n value: ctx\n }, /*#__PURE__*/React.createElement(CheckoutContext.Provider, {\n value: checkoutContextValue\n }, children));\n };\n CheckoutProvider.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.shape({\n fetchClientSecret: PropTypes.func.isRequired,\n elementsOptions: PropTypes.object\n }).isRequired\n };\n var useCheckoutSdkContextWithUseCase = function useCheckoutSdkContextWithUseCase(useCaseString) {\n var ctx = React.useContext(CheckoutSdkContext);\n return parseCheckoutSdkContext(ctx, useCaseString);\n };\n var useElementsOrCheckoutSdkContextWithUseCase = function useElementsOrCheckoutSdkContextWithUseCase(useCaseString) {\n var checkoutSdkContext = React.useContext(CheckoutSdkContext);\n var elementsContext = React.useContext(ElementsContext);\n\n if (checkoutSdkContext && elementsContext) {\n throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both <CheckoutProvider> and <Elements> providers.\"));\n }\n\n if (checkoutSdkContext) {\n return parseCheckoutSdkContext(checkoutSdkContext, useCaseString);\n }\n\n return parseElementsContext(elementsContext, useCaseString);\n };\n var useCheckout = function useCheckout() {\n // ensure it's in CheckoutProvider\n useCheckoutSdkContextWithUseCase('calls useCheckout()');\n var ctx = React.useContext(CheckoutContext);\n\n if (!ctx) {\n throw new Error('Could not find Checkout Context; You need to wrap the part of your app that calls useCheckout() in an <CheckoutProvider> provider.');\n }\n\n return ctx;\n };\n\n var _excluded = [\"mode\"];\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange;\n var ctx = useElementsOrCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var elements = 'elements' in ctx ? ctx.elements : null;\n var checkoutSdk = 'checkoutSdk' in ctx ? ctx.checkoutSdk : null;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n useAttachEvent(element, 'change', onChange);\n var readyCallback;\n\n if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && domNode.current !== null && (elements || checkoutSdk)) {\n var newElement = null;\n\n if (checkoutSdk) {\n switch (type) {\n case 'payment':\n newElement = checkoutSdk.createPaymentElement(options);\n break;\n\n case 'address':\n if ('mode' in options) {\n var mode = options.mode,\n restOptions = _objectWithoutProperties(options, _excluded);\n\n if (mode === 'shipping') {\n newElement = checkoutSdk.createShippingAddressElement(restOptions);\n } else if (mode === 'billing') {\n newElement = checkoutSdk.createBillingAddressElement(restOptions);\n } else {\n throw new Error(\"Invalid options.mode. mode must be 'billing' or 'shipping'.\");\n }\n } else {\n throw new Error(\"You must supply options.mode. mode must be 'billing' or 'shipping'.\");\n }\n\n break;\n\n case 'expressCheckout':\n newElement = checkoutSdk.createExpressCheckoutElement(options);\n break;\n\n case 'currencySelector':\n newElement = checkoutSdk.createCurrencySelectorElement();\n break;\n\n default:\n throw new Error(\"Invalid Element type \".concat(displayName, \". You must use either the <PaymentElement />, <AddressElement options={{mode: 'shipping'}} />, <AddressElement options={{mode: 'billing'}} />, or <ExpressCheckoutElement />.\"));\n }\n } else if (elements) {\n newElement = elements.create(type, options);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n\n if (newElement) {\n newElement.mount(domNode.current);\n }\n }\n }, [elements, checkoutSdk, options]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates && 'update' in elementRef.current) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n useElementsOrCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n\n var EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\n EmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\n var useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n var ctx = React.useContext(EmbeddedCheckoutContext);\n\n if (!ctx) {\n throw new Error('<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>');\n }\n\n return ctx;\n };\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n }, [rawStripeProp]);\n var embeddedCheckoutPromise = React.useRef(null);\n var loadedStripe = React.useRef(null);\n\n var _React$useState = React.useState({\n embeddedCheckout: null\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n // Don't support any ctx updates once embeddedCheckout or stripe is set.\n if (loadedStripe.current || embeddedCheckoutPromise.current) {\n return;\n }\n\n var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n loadedStripe.current = stripe;\n embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n setContext({\n embeddedCheckout: embeddedCheckout\n });\n });\n }; // For an async stripePromise, store it once resolved\n\n\n if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe) {\n setStripeAndInitEmbeddedCheckout(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n // Or, handle a sync stripe instance going from null -> populated\n setStripeAndInitEmbeddedCheckout(parsed.stripe);\n }\n }, [parsed, options, ctx, loadedStripe]);\n React.useEffect(function () {\n // cleanup on unmount\n return function () {\n // If embedded checkout is fully initialized, destroy it.\n if (ctx.embeddedCheckout) {\n embeddedCheckoutPromise.current = null;\n ctx.embeddedCheckout.destroy();\n } else if (embeddedCheckoutPromise.current) {\n // If embedded checkout is still initializing, destroy it once\n // it's done. This could be caused by unmounting very quickly\n // after mounting.\n embeddedCheckoutPromise.current.then(function () {\n embeddedCheckoutPromise.current = null;\n\n if (ctx.embeddedCheckout) {\n ctx.embeddedCheckout.destroy();\n }\n });\n }\n };\n }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(loadedStripe);\n }, [loadedStripe]); // Warn on changes to stripe prop.\n // The stripe prop value can only go from null to non-null once and\n // can't be changed after that.\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (prevOptions == null) {\n return;\n }\n\n if (options == null) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n return;\n }\n\n if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n }\n\n if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n }\n\n if (prevOptions.onShippingDetailsChange != null && options.onShippingDetailsChange !== prevOptions.onShippingDetailsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it.');\n }\n\n if (prevOptions.onLineItemsChange != null && options.onLineItemsChange !== prevOptions.onLineItemsChange) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.');\n }\n }, [prevOptions, options]);\n return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n value: ctx\n }, children);\n };\n\n var EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className;\n\n var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n var isMounted = React.useRef(false);\n var domNode = React.useRef(null);\n React.useLayoutEffect(function () {\n if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n embeddedCheckout.mount(domNode.current);\n isMounted.current = true;\n } // Clean up on unmount\n\n\n return function () {\n if (isMounted.current && embeddedCheckout) {\n try {\n embeddedCheckout.unmount();\n isMounted.current = false;\n } catch (e) {// Do nothing.\n // Parent effects are destroyed before child effects, so\n // in cases where both the EmbeddedCheckoutProvider and\n // the EmbeddedCheckout component are removed at the same\n // time, the embeddedCheckout instance will be destroyed,\n // which causes an error when calling unmount.\n }\n }\n };\n }, [embeddedCheckout]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domNode,\n id: id,\n className: className\n });\n }; // Only render the wrapper in a server environment.\n\n\n var EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n var id = _ref2.id,\n className = _ref2.className;\n // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n useEmbeddedCheckoutContext();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsOrCheckou = useElementsOrCheckoutSdkContextWithUseCase('calls useStripe()'),\n stripe = _useElementsOrCheckou.stripe;\n\n return stripe;\n };\n\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n var PaymentElement = createElementComponent('payment', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n */\n\n var CurrencySelectorElement = createElementComponent('currencySelector', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AddressElement = createElementComponent('address', isServer);\n /**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AddressElement = AddressElement;\n exports.AffirmMessageElement = AffirmMessageElement;\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.CheckoutProvider = CheckoutProvider;\n exports.CurrencySelectorElement = CurrencySelectorElement;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EmbeddedCheckout = EmbeddedCheckout;\n exports.EmbeddedCheckoutProvider = EmbeddedCheckoutProvider;\n exports.EpsBankElement = EpsBankElement;\n exports.ExpressCheckoutElement = ExpressCheckoutElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.LinkAuthenticationElement = LinkAuthenticationElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentElement = PaymentElement;\n exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.ShippingAddressElement = ShippingAddressElement;\n exports.useCheckout = useCheckout;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n}));\n","import { Elements, PaymentElement, useElements, useStripe } from \"@stripe/react-stripe-js\";\nimport React, { useState, useEffect } from \"react\";\nimport { createApiHeaders, createRequestBody, getApiUrl } from \"../utils\";\n\ninterface PaymentFormProps {\n\tconfig: any;\n\teventDetails: any;\n\tformData: any;\n\ttotalAmount: number;\n\tdiscountCode: any;\n\tonSuccess: (result: any) => void;\n\tonError: (error: string) => void;\n\tsystemConfig?: {\n\t\tsystemMode: string;\n\t\tstripePublishableKey: string;\n\t\tconnectedAccountId?: string;\n\t} | null;\n\tstripePromise: any;\n\tstripeAppearance?: any;\n}\n\n// Inner component that uses the Stripe hooks\nfunction PaymentFormInner({\n\tconfig,\n\teventDetails,\n\tformData,\n\ttotalAmount,\n\tdiscountCode,\n\tonSuccess,\n\tonError,\n\tsystemConfig,\n\tclientSecret,\n}: Omit<PaymentFormProps, \"stripePromise\" | \"stripeAppearance\"> & { clientSecret: string }) {\n\tconst stripe = useStripe();\n\tconst elements = useElements();\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [paymentError, setPaymentError] = useState<string | null>(null);\n\n\t// Payment intent is created by the parent wrapper component\n\n\tconst handleSubmit = async (e: React.FormEvent) => {\n\t\te.preventDefault();\n\n\t\tif (!stripe || !elements) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsLoading(true);\n\t\tsetPaymentError(null);\n\n\t\ttry {\n\t\t\t// Validate participant count before proceeding with payment\n\t\t\tconst participantCount = formData.participants.filter((p: any) => p.name.trim()).length;\n\t\t\tconst availableSpots = eventDetails.availableSpots || 0;\n\n\t\t\tif (participantCount > availableSpots) {\n\t\t\t\tsetPaymentError(\n\t\t\t\t\t`Du hast ${participantCount} Teilnehmer angegeben, aber es sind nur noch ${availableSpots} Plätze verfügbar. Bitte reduziere die Anzahl der Teilnehmer.`,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (participantCount === 0) {\n\t\t\t\tsetPaymentError(\"Mindestens ein Teilnehmer ist erforderlich.\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// First, confirm the payment with Stripe\n\t\t\tconst { error, paymentIntent } = await stripe.confirmPayment({\n\t\t\t\telements,\n\t\t\t\tconfirmParams: {\n\t\t\t\t\treturn_url: window.location.href,\n\t\t\t\t},\n\t\t\t\tredirect: \"if_required\",\n\t\t\t});\n\n\t\t\tif (error) {\n\t\t\t\tif (error.type === \"card_error\" || error.type === \"validation_error\") {\n\t\t\t\t\tsetPaymentError(error.message || \"Zahlungsfehler\");\n\t\t\t\t} else {\n\t\t\t\t\tsetPaymentError(\"Ein unerwarteter Fehler ist aufgetreten.\");\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Payment succeeded, now create the booking\n\t\t\tif (paymentIntent && paymentIntent.status === \"succeeded\") {\n\t\t\t\t// Check if we have system configuration\n\t\t\t\tif (!systemConfig) {\n\t\t\t\t\tthrow new Error(\"System-Konfiguration nicht verfügbar. Bitte lade die Seite neu.\");\n\t\t\t\t}\n\n\t\t\t\t// Determine which endpoint to use based on system mode\n\t\t\t\tconst isConnectMode = systemConfig.systemMode === \"connect\";\n\t\t\t\tconst endpoint = isConnectMode\n\t\t\t\t\t? \"/booking/create-from-payment\"\n\t\t\t\t\t: \"/booking-proxy/create-booking\";\n\n\t\t\t\t// Calculate if this is a deposit payment\n\t\t\t\tconst fullAmount =\n\t\t\t\t\teventDetails.price * formData.participants.filter((p: any) => p.name.trim()).length;\n\t\t\t\tconst isDepositPayment = eventDetails.deposit > 0;\n\n\t\t\t\t// Build request body based on mode\n\t\t\t\tconst requestData = {\n\t\t\t\t\t// Payment info\n\t\t\t\t\tpaymentIntentId: paymentIntent.id,\n\t\t\t\t\tpaymentMethod: \"card\",\n\t\t\t\t\tpaymentStatus: isDepositPayment ? \"deposit_paid\" : \"paid\",\n\t\t\t\t\ttotalAmount,\n\t\t\t\t\tdepositAmount: isDepositPayment ? totalAmount : undefined,\n\t\t\t\t\tfullAmount: fullAmount,\n\n\t\t\t\t\t// Customer info\n\t\t\t\t\tcustomerEmail: formData.customerEmail,\n\t\t\t\t\tcustomerName: formData.customerName,\n\t\t\t\t\tcustomerPhone: formData.customerPhone,\n\n\t\t\t\t\t// Booking info\n\t\t\t\t\tparticipants: formData.participants.filter((p: any) => p.name.trim()),\n\t\t\t\t\teventInstanceId: config.eventInstanceId || eventDetails.id,\n\t\t\t\t\tdiscountCode: discountCode?.code,\n\t\t\t\t\tnotes: \"\",\n\t\t\t\t};\n\n\t\t\t\t// Add mode-specific fields\n\t\t\t\tif (isConnectMode) {\n\t\t\t\t\tObject.assign(requestData, {\n\t\t\t\t\t\tsource: \"connect\",\n\t\t\t\t\t\tstripeAccountType: \"connect\",\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// BYOK mode\n\t\t\t\t\tObject.assign(requestData, {\n\t\t\t\t\t\tbookingSystemApiUrl: config.apiBaseUrl,\n\t\t\t\t\t\t// apiKey would be added here if required\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst bookingResponse = await fetch(getApiUrl(config.apiBaseUrl, endpoint), {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: createApiHeaders(config),\n\t\t\t\t\tbody: JSON.stringify(createRequestBody(config, requestData)),\n\t\t\t\t});\n\n\t\t\t\tconst bookingData = await bookingResponse.json();\n\n\t\t\t\tif (!bookingResponse.ok) {\n\t\t\t\t\tthrow new Error(bookingData.error || \"Fehler beim Erstellen der Buchung\");\n\t\t\t\t}\n\n\t\t\t\t// Booking created successfully\n\t\t\t\tonSuccess({\n\t\t\t\t\tbooking: bookingData.booking,\n\t\t\t\t\tpayment: \"succeeded\",\n\t\t\t\t\tpaymentIntent: paymentIntent,\n\t\t\t\t\tformData: formData,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Zahlung wurde nicht bestätigt\");\n\t\t\t}\n\t\t} catch (err: any) {\n\t\t\tsetPaymentError(err.message || \"Fehler beim Verarbeiten der Zahlung\");\n\t\t\tonError(err.message || \"Fehler beim Verarbeiten der Zahlung\");\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\tconst buttonStyle = {\n\t\twidth: \"100%\",\n\t\tpadding: \"12px 24px\",\n\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\tcolor: \"var(--bw-text-color)\",\n\t\tborder: \"none\",\n\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\tfontSize: \"var(--bw-font-size)\",\n\t\tfontWeight: \"600\",\n\t\tcursor: isLoading ? \"not-allowed\" : \"pointer\",\n\t\topacity: isLoading ? 0.6 : 1,\n\t\ttransition: \"all 0.2s ease\",\n\t\tfontFamily: \"var(--bw-font-family)\",\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tgap: \"8px\",\n\t};\n\n\treturn (\n\t\t<form\n\t\t\tonSubmit={handleSubmit}\n\t\t\tstyle={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing)\" }}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"var(--bw-surface-muted-bg, rgba(51, 65, 85, 0.3))\",\n\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{/* @ts-ignore */}\n\t\t\t\t<PaymentElement\n\t\t\t\t\toptions={{\n\t\t\t\t\t\tlayout: \"accordion\",\n\t\t\t\t\t\tdefaultValues: {\n\t\t\t\t\t\t\tbillingDetails: {\n\t\t\t\t\t\t\t\tname: formData.customerName,\n\t\t\t\t\t\t\t\temail: formData.customerEmail,\n\t\t\t\t\t\t\t\tphone: formData.customerPhone,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{paymentError && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-error-bg-muted, rgba(239, 68, 68, 0.1))\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-error-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t⚠️ {paymentError}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<button\n\t\t\t\ttype=\"submit\"\n\t\t\t\tdisabled={!stripe || isLoading}\n\t\t\t\tstyle={buttonStyle}\n\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\tif (!isLoading) {\n\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\tif (!isLoading) {\n\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{isLoading ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t⠢\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\tVerarbeite Zahlung...\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t{totalAmount <\n\t\t\t\t\t\teventDetails.price * formData.participants.filter((p: any) => p.name.trim()).length\n\t\t\t\t\t\t\t? \"Anzahlen & buchen\"\n\t\t\t\t\t\t\t: \"Jetzt buchen\"}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</button>\n\n\t\t\t{/* Styles for animations */}\n\t\t\t<style>{`\n\t\t\t\t@keyframes spin {\n\t\t\t\t\tfrom { transform: rotate(0deg); }\n\t\t\t\t\tto { transform: rotate(360deg); }\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t</form>\n\t);\n}\n\n// Main PaymentForm component that handles payment intent creation and Elements wrapper\nexport function PaymentForm({\n\tconfig,\n\teventDetails,\n\tformData,\n\ttotalAmount,\n\tdiscountCode,\n\tonSuccess,\n\tonError,\n\tsystemConfig,\n\tstripePromise,\n\tstripeAppearance,\n}: PaymentFormProps) {\n\tconst [clientSecret, setClientSecret] = useState<string | null>(null);\n\tconst [isCreatingPaymentIntent, setIsCreatingPaymentIntent] = useState(false);\n\tconst [paymentError, setPaymentError] = useState<string | null>(null);\n\n\t// Create payment intent when component mounts or when relevant data changes\n\tuseEffect(() => {\n\t\tconst createPaymentIntent = async () => {\n\t\t\tif (!systemConfig || !eventDetails || !formData.participants?.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Validate required fields before creating payment intent\n\t\t\tconst participantCount =\n\t\t\t\tformData.participants?.filter((p: any) => p.name?.trim()).length || 0;\n\t\t\tif (participantCount === 0) {\n\t\t\t\treturn; // No valid participants\n\t\t\t}\n\n\t\t\t// Check if customer email is provided and valid (basic email validation)\n\t\t\tif (formData.customerEmail?.trim()) {\n\t\t\t\tconst emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\t\t\t\tif (!emailRegex.test(formData.customerEmail.trim())) {\n\t\t\t\t\treturn; // Invalid email format, don't create payment intent yet\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check if customer name is provided\n\t\t\tif (!formData.customerName?.trim()) {\n\t\t\t\treturn; // Customer name is required\n\t\t\t}\n\n\t\t\tsetIsCreatingPaymentIntent(true);\n\t\t\tsetPaymentError(null);\n\n\t\t\ttry {\n\t\t\t\t// Determine endpoint based on system mode\n\t\t\t\tconst isConnectMode = systemConfig.systemMode === \"connect\";\n\t\t\t\tconst endpoint = isConnectMode\n\t\t\t\t\t? \"/booking/create-payment-intent\"\n\t\t\t\t\t: \"/booking-proxy/create-payment-intent\";\n\n\t\t\t\t// Build request data\n\t\t\t\tconst requestData = {\n\t\t\t\t\teventInstanceId: config.eventInstanceId || eventDetails.id,\n\t\t\t\t\tamount: totalAmount,\n\t\t\t\t\tcurrency: \"eur\",\n\t\t\t\t\tparticipants: formData.participants.filter((p: any) => p.name.trim()),\n\t\t\t\t\tdiscountCode: discountCode?.code,\n\t\t\t\t\tcustomerEmail: formData.customerEmail,\n\t\t\t\t};\n\n\t\t\t\t// Add mode-specific fields\n\t\t\t\tif (!isConnectMode) {\n\t\t\t\t\t// BYOK mode needs additional fields\n\t\t\t\t\tObject.assign(requestData, {\n\t\t\t\t\t\tbookingSystemApiUrl: config.apiBaseUrl,\n\t\t\t\t\t\t// apiKey would be added here if required\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, endpoint), {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: createApiHeaders(config),\n\t\t\t\t\tbody: JSON.stringify(createRequestBody(config, requestData)),\n\t\t\t\t});\n\n\t\t\t\tconst data = await response.json();\n\n\t\t\t\tif (response.ok) {\n\t\t\t\t\tsetClientSecret(data.clientSecret);\n\t\t\t\t} else {\n\t\t\t\t\tsetPaymentError(data.error || \"Fehler beim Erstellen der Zahlungsabsicht\");\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tsetPaymentError(\"Fehler beim Erstellen der Zahlungsabsicht\");\n\t\t\t} finally {\n\t\t\t\tsetIsCreatingPaymentIntent(false);\n\t\t\t}\n\t\t};\n\n\t\t// Debounce the payment intent creation\n\t\tconst timer = setTimeout(createPaymentIntent, 500);\n\t\treturn () => clearTimeout(timer);\n\t}, [\n\t\tsystemConfig,\n\t\teventDetails,\n\t\tformData.participants,\n\t\tformData.customerEmail,\n\t\tformData.customerName,\n\t\ttotalAmount,\n\t\tdiscountCode,\n\t\tconfig,\n\t]);\n\n\t// Show loading state while creating payment intent\n\tif (isCreatingPaymentIntent || !clientSecret) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\tgap: \"8px\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t⠢\n\t\t\t\t</div>\n\t\t\t\t<span\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tZahlungsmöglichkeiten werden geladen...\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Show error if payment intent creation failed\n\tif (paymentError) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"var(--bw-error-bg-muted, rgba(239, 68, 68, 0.1))\",\n\t\t\t\t\tborder: `1px solid var(--bw-error-color)`,\n\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t⚠️ {paymentError}\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Render the payment form with Elements wrapper\n\treturn (\n\t\t// @ts-ignore\n\t\t<Elements\n\t\t\tstripe={stripePromise}\n\t\t\toptions={{\n\t\t\t\tclientSecret,\n\t\t\t\tappearance: stripeAppearance || { theme: \"stripe\" },\n\t\t\t\tlocale: (config.locale as any) || \"de\",\n\t\t\t}}\n\t\t>\n\t\t\t<PaymentFormInner\n\t\t\t\tconfig={config}\n\t\t\t\teventDetails={eventDetails}\n\t\t\t\tformData={formData}\n\t\t\t\ttotalAmount={totalAmount}\n\t\t\t\tdiscountCode={discountCode}\n\t\t\t\tonSuccess={onSuccess}\n\t\t\t\tonError={onError}\n\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\tclientSecret={clientSecret}\n\t\t\t/>\n\t\t</Elements>\n\t);\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { useStyles } from \"../styles/StyleProvider\";\n\ninterface SidebarProps {\n\tisOpen: boolean;\n\tonClose: () => void;\n\ttitle: string;\n\tchildren: React.ReactNode;\n\twidth?: string;\n}\n\nexport function Sidebar({ isOpen, onClose, title, children, width = \"400px\" }: SidebarProps) {\n\tconst [isVisible, setIsVisible] = useState(false);\n\tconst [isAnimating, setIsAnimating] = useState(false);\n\tconst themedStyles = useStyles();\n\tconst portalRootRef = useRef<HTMLElement | null>(null);\n\n\t// PERFORMANCE OPTIMIZATION: Reuse portal root and reduce DOM operations\n\tuseEffect(() => {\n\t\tif (!portalRootRef.current) {\n\t\t\tlet portalRoot = document.getElementById(\"booking-widget-portal-root\");\n\t\t\tif (!portalRoot) {\n\t\t\t\tportalRoot = document.createElement(\"div\");\n\t\t\t\tportalRoot.id = \"booking-widget-portal-root\";\n\t\t\t\tdocument.body.appendChild(portalRoot);\n\t\t\t}\n\t\t\tportalRootRef.current = portalRoot;\n\t\t}\n\t}, []);\n\n\t// PERFORMANCE OPTIMIZATION: Optimize animation timing\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\tsetIsVisible(true);\n\t\t\t// Use requestAnimationFrame for smoother animations\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tsetIsAnimating(true);\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tsetIsAnimating(false);\n\t\t\t// Shorter timeout for better perceived performance\n\t\t\tconst timeout = setTimeout(() => setIsVisible(false), 250);\n\t\t\treturn () => clearTimeout(timeout);\n\t\t}\n\t}, [isOpen]);\n\n\t// PERFORMANCE OPTIMIZATION: Optimize body scroll management\n\tuseEffect(() => {\n\t\tconst SidebarWithCount = Sidebar as any;\n\t\tif (isOpen) {\n\t\t\tSidebarWithCount.openCount = (SidebarWithCount.openCount || 0) + 1;\n\t\t\tif (SidebarWithCount.openCount === 1) {\n\t\t\t\tdocument.body.style.overflow = \"hidden\";\n\t\t\t}\n\t\t} else if (SidebarWithCount.openCount) {\n\t\t\tSidebarWithCount.openCount = SidebarWithCount.openCount - 1;\n\t\t\tif (SidebarWithCount.openCount === 0) {\n\t\t\t\tdocument.body.style.overflow = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (isOpen && SidebarWithCount.openCount) {\n\t\t\t\tSidebarWithCount.openCount = SidebarWithCount.openCount - 1;\n\t\t\t\tif (SidebarWithCount.openCount === 0) {\n\t\t\t\t\tdocument.body.style.overflow = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}, [isOpen]);\n\n\t// PERFORMANCE OPTIMIZATION: Optimize escape key handling\n\tuseEffect(() => {\n\t\tif (!isOpen) return;\n\n\t\tconst handleEscape = (e: KeyboardEvent) => {\n\t\t\tif (e.key === \"Escape\") {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener(\"keydown\", handleEscape);\n\t\treturn () => document.removeEventListener(\"keydown\", handleEscape);\n\t}, [isOpen, onClose]);\n\n\tif (!isVisible) return null;\n\n\tconst sidebarContent = (\n\t\t<div\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0,\n\t\t\t\t\tbottom: 0,\n\t\t\t\t\tzIndex: 1000,\n\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t...themedStyles,\n\t\t\t\t} as React.CSSProperties\n\t\t\t}\n\t\t>\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Simplified backdrop */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\tinset: 0,\n\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.5)\",\n\t\t\t\t\topacity: isAnimating ? 1 : 0,\n\t\t\t\t\ttransition: \"opacity 0.25s ease-out\",\n\t\t\t\t}}\n\t\t\t\tonClick={onClose}\n\t\t\t/>\n\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Optimized sidebar with hardware acceleration */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tright: 0,\n\t\t\t\t\tbottom: 0,\n\t\t\t\t\twidth,\n\t\t\t\t\tmaxWidth: \"90vw\",\n\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\tborderLeft: `1px solid var(--bw-border-color)`,\n\t\t\t\t\tboxShadow: \"var(--bw-shadow-lg)\",\n\t\t\t\t\ttransform: isAnimating ? \"translateX(0)\" : \"translateX(100%)\",\n\t\t\t\t\ttransition: \"transform 0.25s cubic-bezier(0.4, 0, 0.2, 1)\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\twillChange: \"transform\", // Enable hardware acceleration\n\t\t\t\t}}\n\t\t\t\tclassName=\"bw-sidebar-mobile\"\n\t\t\t>\n\t\t\t\t{/* Header */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tborderBottom: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h2\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</h2>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tpadding: \"8px 16px\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-text-color)\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"transparent\";\n\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-text-muted)\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t← Zurück\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Content */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\toverflow: \"auto\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Mobile responsive styles via CSS */}\n\t\t\t<style>{`\n\t\t\t\t@media (max-width: 600px) {\n\t\t\t\t\t.bw-sidebar-mobile {\n\t\t\t\t\t\twidth: 100vw !important;\n\t\t\t\t\t\tmax-width: 100vw !important;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t</div>\n\t);\n\n\treturn portalRootRef.current\n\t\t? ReactDOM.createPortal(sidebarContent, portalRootRef.current)\n\t\t: null;\n}\n\ninterface AccordionProps {\n\ttitle: string;\n\tpriceInfo?: string | React.ReactElement;\n\tchildren: React.ReactNode;\n\tisOpen: boolean;\n\tonToggle: () => void;\n}\n\nexport function Accordion({ title, priceInfo, children, isOpen, onToggle }: AccordionProps) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\toverflow: \"hidden\",\n\t\t\t}}\n\t\t>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\ttextAlign: \"left\",\n\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\tborder: \"none\",\n\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\ttransition: \"background-color 0.2s ease\",\n\t\t\t\t}}\n\t\t\t\tonClick={onToggle}\n\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\te.currentTarget.style.backgroundColor =\n\t\t\t\t\t\t\"var(--bw-surface-muted, rgba(59, 130, 246, 0.1))\";\n\t\t\t\t}}\n\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\te.currentTarget.style.backgroundColor = \"transparent\";\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<span style={{ fontSize: \"1.25rem\", fontWeight: 700, color: \"var(--bw-text-color)\" }}>\n\t\t\t\t\t{title}\n\t\t\t\t</span>\n\t\t\t\t{priceInfo && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"1rem\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\tmarginLeft: \"auto\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{priceInfo}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<span\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\ttransform: isOpen ? \"rotate(180deg)\" : \"rotate(0deg)\",\n\t\t\t\t\t\ttransition: \"transform 0.2s ease\",\n\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\tmarginLeft: \"16px\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t▼\n\t\t\t\t</span>\n\t\t\t</button>\n\t\t\t{isOpen && (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tpadding: \"0 var(--bw-spacing) var(--bw-spacing)\",\n\t\t\t\t\t\tborderTop: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { zodResolver } from \"@hookform/resolvers/zod\";\nimport { Elements } from \"@stripe/react-stripe-js\";\nimport React, { useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { z } from \"zod\";\nimport {\n\tcreateApiHeaders,\n\tcreateRequestBody,\n\tformatCurrency,\n\tformatEventDate,\n\tgetApiUrl,\n} from \"../utils\";\nimport { IconCalendar, IconClock, IconWave } from \"./EventTypeSelection\";\nimport { PaymentForm } from \"./PaymentForm\";\nimport { Sidebar } from \"./Sidebar\";\n\n// Accordion component for the booking form\nconst Accordion = ({\n\ttitle,\n\tchildren,\n\tisOpen,\n\tonToggle,\n}: {\n\ttitle: string;\n\tchildren: React.ReactNode;\n\tisOpen: boolean;\n\tonToggle: () => void;\n}) => (\n\t<div\n\t\tstyle={{\n\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t}}\n\t>\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\ttextAlign: \"left\",\n\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\tfontWeight: \"600\",\n\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\tborder: \"none\",\n\t\t\t\tcursor: \"pointer\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t}}\n\t\t\tonClick={onToggle}\n\t\t>\n\t\t\t<span>{title}</span>\n\t\t\t<span\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: isOpen ? \"rotate(180deg)\" : \"rotate(0deg)\",\n\t\t\t\t\ttransition: \"transform 0.2s ease\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t▼\n\t\t\t</span>\n\t\t</button>\n\t\t{isOpen && <div style={{ padding: \"var(--bw-spacing)\", paddingTop: 0 }}>{children}</div>}\n\t</div>\n);\n\n// Form schemas\nconst participantSchema = z.object({\n\tname: z.string().min(1, \"Name ist erforderlich\"),\n\tage: z.number().min(0).max(120).optional(),\n});\n\nconst bookingFormSchema = z.object({\n\tcustomerName: z.string().min(1, \"Name ist erforderlich\"),\n\tcustomerEmail: z.string().email(\"Gültige E-Mail-Adresse erforderlich\"),\n\tcustomerPhone: z.string().optional(),\n\tparticipants: z.array(participantSchema).min(1, \"Mindestens ein Teilnehmer erforderlich\"),\n\tdiscountCode: z.string().optional(),\n\tacceptTerms: z\n\t\t.boolean()\n\t\t.refine((val) => val === true, \"Bitte akzeptiere die Allgemeinen Geschäftsbedingungen\"),\n});\n\ntype BookingFormData = z.infer<typeof bookingFormSchema>;\n\ninterface EventDetails {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\tstartTime: string;\n\tendTime: string;\n\tprice: number;\n\tmaxParticipants: number;\n\tparticipantCount: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\timages: string[];\n\tcategory: {\n\t\tid: number;\n\t\tname: string;\n\t\tcolor: string;\n\t};\n\torganization: {\n\t\tid: string;\n\t\tname: string;\n\t\tslug?: string;\n\t};\n\tbookingOpen: boolean;\n\tagbUrl?: string;\n}\n\ninterface DiscountCode {\n\tid: number;\n\tcode: string;\n\tdescription?: string;\n\ttype: string;\n\tvalue: number;\n\tdiscountAmount: number;\n\tnewTotal: number;\n}\n\ninterface BookingFormProps {\n\tconfig: any; // Will be properly typed when main component is created\n\teventDetails: EventDetails;\n\tstripePromise: any;\n\tonSuccess: (result: any) => void;\n\tonError: (error: string) => void;\n\tonBackToEventInstances?: () => void;\n\tonBackToEventTypes?: () => void;\n\tselectedEventType?: any;\n\tselectedEventInstance?: any;\n\tisOpen: boolean;\n\tonClose: () => void;\n\tsystemConfig?: {\n\t\tsystemMode: string;\n\t\tstripePublishableKey: string;\n\t\tconnectedAccountId?: string;\n\t} | null;\n}\n\n// Inline SVG icons for warning, money, and spinner\nconst IconWarning = ({ size = 48, color = \"var(--bw-error-color)\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t<line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\" />\n\t\t<circle cx=\"12\" cy=\"16\" r=\"1\" />\n\t</svg>\n);\nconst IconMoney = ({ size = 20, color = \"var(--bw-text-muted)\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t>\n\t\t<rect x=\"2\" y=\"6\" width=\"20\" height=\"12\" rx=\"2\" />\n\t\t<circle cx=\"12\" cy=\"12\" r=\"4\" />\n\t\t<line x1=\"2\" y1=\"10\" x2=\"2\" y2=\"14\" />\n\t\t<line x1=\"22\" y1=\"10\" x2=\"22\" y2=\"14\" />\n\t</svg>\n);\nconst IconSpinner = ({ size = 16, color = \"currentColor\" }) => (\n\t<svg\n\t\twidth={size}\n\t\theight={size}\n\t\tviewBox=\"0 0 24 24\"\n\t\tfill=\"none\"\n\t\tstroke={color}\n\t\tstrokeWidth=\"2\"\n\t\tstrokeLinecap=\"round\"\n\t\tstrokeLinejoin=\"round\"\n\t\tstyle={{ display: \"block\" }}\n\t>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" strokeOpacity=\"0.2\" />\n\t\t<path d=\"M12 2a10 10 0 0 1 10 10\" />\n\t</svg>\n);\n\nexport function BookingForm({\n\tconfig,\n\teventDetails,\n\tstripePromise,\n\tonSuccess,\n\tonError,\n\tonBackToEventInstances,\n\tonBackToEventTypes,\n\tselectedEventType,\n\tselectedEventInstance,\n\tisOpen,\n\tonClose,\n\tsystemConfig,\n}: BookingFormProps) {\n\tconst [discountCode, setDiscountCode] = useState<DiscountCode | null>(null);\n\tconst [discountLoading, setDiscountLoading] = useState(false);\n\tconst [discountError, setDiscountError] = useState<string | null>(null);\n\n\tconst form = useForm<BookingFormData>({\n\t\tresolver: zodResolver(bookingFormSchema),\n\t\tdefaultValues: {\n\t\t\tparticipants: [{ name: \"\", age: undefined }],\n\t\t\tdiscountCode: \"\",\n\t\t\tacceptTerms: false,\n\t\t},\n\t});\n\n\tconst watchedParticipants = form.watch(\"participants\");\n\tconst watchedDiscountCode = form.watch(\"discountCode\");\n\tconst watchedCustomerName = form.watch(\"customerName\");\n\tconst watchedCustomerEmail = form.watch(\"customerEmail\");\n\tconst customerNameError = form.formState.errors.customerName;\n\tconst customerEmailError = form.formState.errors.customerEmail;\n\tconst watchedAcceptTerms = form.watch(\"acceptTerms\");\n\n\t// Calculate total amount and deposit amount\n\tconst calculateTotal = () => {\n\t\tif (!eventDetails) return 0;\n\t\tconst baseTotal = eventDetails.price * watchedParticipants.filter((p) => p.name.trim()).length;\n\t\treturn discountCode ? discountCode.newTotal : baseTotal;\n\t};\n\n\tconst calculateDeposit = () => {\n\t\tif (!eventDetails || !eventDetails.deposit) return 0;\n\t\tconst participantCount = watchedParticipants.filter((p) => p.name.trim()).length;\n\t\treturn eventDetails.deposit * participantCount;\n\t};\n\n\tconst totalAmount = calculateTotal();\n\tconst depositAmount = calculateDeposit();\n\tconst paymentAmount = depositAmount > 0 ? depositAmount : totalAmount;\n\n\t// Form validation helper\n\tconst isFormValid = () => {\n\t\tconst participantCount = watchedParticipants.filter((p) => p.name.trim()).length;\n\t\tconst validParticipants = participantCount > 0;\n\t\tconst participantsWithinLimit = participantCount <= (eventDetails?.availableSpots || 0);\n\t\tconst hasName =\n\t\t\twatchedCustomerName && watchedCustomerName.trim().length > 0 && !customerNameError;\n\t\tconst hasEmail =\n\t\t\twatchedCustomerEmail && watchedCustomerEmail.trim().length > 0 && !customerEmailError;\n\t\tconst hasAcceptedTerms = watchedAcceptTerms === true;\n\n\t\treturn validParticipants && participantsWithinLimit && hasName && hasEmail && hasAcceptedTerms;\n\t};\n\n\t// Validate discount codes\n\tuseEffect(() => {\n\t\tconst validateDiscountCode = async (code: string) => {\n\t\t\tif (!code.trim() || !eventDetails) {\n\t\t\t\tsetDiscountCode(null);\n\t\t\t\tsetDiscountError(null);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetDiscountLoading(true);\n\t\t\tsetDiscountError(null);\n\n\t\t\ttry {\n\t\t\t\tconst baseTotal =\n\t\t\t\t\teventDetails.price * watchedParticipants.filter((p) => p.name.trim()).length;\n\t\t\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/validate-discount\"), {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: createApiHeaders(config),\n\t\t\t\t\tbody: JSON.stringify(\n\t\t\t\t\t\tcreateRequestBody(config, {\n\t\t\t\t\t\t\tcode: code.trim(),\n\t\t\t\t\t\t\torderValue: baseTotal,\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t});\n\n\t\t\t\tconst data = await response.json();\n\n\t\t\t\tif (data.valid) {\n\t\t\t\t\tsetDiscountCode(data.discountCode);\n\t\t\t\t} else {\n\t\t\t\t\tsetDiscountCode(null);\n\t\t\t\t\tsetDiscountError(data.error);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tsetDiscountError(\"Fehler beim Validieren des Rabattcodes\");\n\t\t\t\tsetDiscountCode(null);\n\t\t\t} finally {\n\t\t\t\tsetDiscountLoading(false);\n\t\t\t}\n\t\t};\n\n\t\tconst timer = setTimeout(() => {\n\t\t\tvalidateDiscountCode(watchedDiscountCode || \"\");\n\t\t}, 500);\n\n\t\treturn () => clearTimeout(timer);\n\t}, [watchedDiscountCode, watchedParticipants, eventDetails, config]);\n\n\t// Helper functions\n\tconst addParticipant = () => {\n\t\tconst currentParticipants = form.getValues(\"participants\");\n\t\tconst availableSpots = eventDetails?.availableSpots || 0;\n\t\tif (currentParticipants.length < availableSpots) {\n\t\t\tform.setValue(\"participants\", [...currentParticipants, { name: \"\", age: undefined }]);\n\t\t} else {\n\t\t\talert(\n\t\t\t\t`Maximale Anzahl an Teilnehmern erreicht. Es sind nur noch ${availableSpots} Plätze verfügbar.`,\n\t\t\t);\n\t\t}\n\t};\n\n\tconst removeParticipant = (index: number) => {\n\t\tconst currentParticipants = form.getValues(\"participants\");\n\t\tif (currentParticipants.length > 1) {\n\t\t\tform.setValue(\n\t\t\t\t\"participants\",\n\t\t\t\tcurrentParticipants.filter((_, i) => i !== index),\n\t\t\t);\n\t\t}\n\t};\n\n\t// Stripe appearance based on theme CSS variables\n\tconst [stripeAppearance, setStripeAppearance] = useState<any>(null);\n\n\tuseEffect(() => {\n\t\tconst container = document.querySelector<HTMLElement>(\".booking-widget-container\");\n\t\tif (!container) return;\n\t\tconst styles = getComputedStyle(container);\n\t\tconst colorPrimary = styles.getPropertyValue(\"--bw-highlight-color\").trim();\n\t\tconst colorBackground = styles.getPropertyValue(\"--bw-surface-color\").trim();\n\t\tconst colorText = styles.getPropertyValue(\"--bw-text-color\").trim();\n\t\tconst colorDanger = styles.getPropertyValue(\"--bw-error-color\").trim();\n\t\tconst borderRadius = styles.getPropertyValue(\"--bw-border-radius\").trim();\n\t\tconst fontFamily = styles.getPropertyValue(\"--bw-font-family\").trim();\n\n\t\tsetStripeAppearance({\n\t\t\ttheme: config.theme.includes(\"dark\") ? \"night\" : \"stripe\",\n\t\t\tvariables: {\n\t\t\t\tcolorPrimary,\n\t\t\t\tcolorBackground,\n\t\t\t\tcolorText,\n\t\t\t\tcolorDanger,\n\t\t\t\tborderRadius,\n\t\t\t\tfontFamily,\n\t\t\t\tspacingUnit: \"4px\",\n\t\t\t},\n\t\t});\n\t}, [config.theme]);\n\n\tconst handleClose = () => {\n\t\tonClose();\n\t\tif (selectedEventInstance && selectedEventType) {\n\t\t\tonBackToEventInstances?.();\n\t\t} else if (selectedEventType) {\n\t\t\tonBackToEventTypes?.();\n\t\t}\n\t};\n\n\tif (!eventDetails.bookingOpen) {\n\t\treturn (\n\t\t\t<Sidebar isOpen={isOpen} onClose={handleClose} title=\"Buchung nicht möglich\">\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\tminHeight: \"400px\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tmargin: \"0 auto 16px\",\n\t\t\t\t\t\t\t\tfontSize: \"48px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<IconWarning size={48} color=\"var(--bw-error-color)\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<h3\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tBuchung nicht möglich\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFür diese Veranstaltung sind derzeit keine Buchungen möglich.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Sidebar>\n\t\t);\n\t}\n\n\tconst inputStyle = {\n\t\twidth: \"100%\",\n\t\tpadding: \"12px\",\n\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\tborder: `1px solid var(--bw-border-color)`,\n\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\tcolor: \"var(--bw-text-color)\",\n\t\tfontSize: \"var(--bw-font-size)\",\n\t\tfontFamily: \"var(--bw-font-family)\",\n\t\toutline: \"none\",\n\t\ttransition: \"all 0.2s ease\",\n\t};\n\n\tconst labelStyle = {\n\t\tdisplay: \"block\",\n\t\tfontSize: \"var(--bw-font-size)\",\n\t\tfontWeight: \"500\",\n\t\tcolor: \"var(--bw-text-muted)\",\n\t\tmarginBottom: \"8px\",\n\t\tfontFamily: \"var(--bw-font-family)\",\n\t};\n\n\tconst buttonStyle = {\n\t\tcolor: \"var(--bw-highlight-color)\",\n\t\tfontSize: \"var(--bw-font-size)\",\n\t\tfontWeight: \"500\",\n\t\tpadding: \"8px 12px\",\n\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\tborder: `1px solid var(--bw-border-color)`,\n\t\tcursor: \"pointer\",\n\t\ttransition: \"all 0.2s ease\",\n\t\tfontFamily: \"var(--bw-font-family)\",\n\t};\n\n\treturn (\n\t\t<Sidebar\n\t\t\tisOpen={isOpen}\n\t\t\tonClose={handleClose}\n\t\t\ttitle={`Buchung - ${eventDetails.name}`}\n\t\t\twidth=\"420px\"\n\t\t>\n\t\t\t<div className=\"booking-widget-container\" style={{ padding: \"var(--bw-spacing)\" }}>\n\t\t\t\t{/* Event Details Card */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h2\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tmarginBottom: \"12px\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tEvent Details\n\t\t\t\t\t</h2>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\t\t\tgridTemplateColumns: \"repeat(auto-fit, minmax(200px, 1fr))\",\n\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<IconCalendar size={20} color=\"var(--bw-highlight-color)\" /> Datum:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatEventDate(eventDetails.startTime)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<IconMoney size={20} color=\"var(--bw-highlight-color)\" /> Preis:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatCurrency(eventDetails.price)} pro Person\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" }}>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<IconClock size={20} color=\"var(--bw-highlight-color)\" /> Dauer:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{eventDetails.durationDays} Tag{eventDetails.durationDays > 1 ? \"e\" : \"\"}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Booking Form */}\n\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-large)\" }}>\n\t\t\t\t\t<form\n\t\t\t\t\t\tstyle={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-large)\" }}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Customer Information */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"12px\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tKontaktdaten\n\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing)\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\t\t\t\t\t\tgridTemplateColumns: \"repeat(auto-fit, minmax(200px, 1fr))\",\n\t\t\t\t\t\t\t\t\t\tgap: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"customerName\" style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\tName *\n\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\tid=\"customerName\"\n\t\t\t\t\t\t\t\t\t\t\t{...form.register(\"customerName\")}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Dein vollständiger Name\"\n\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{customerNameError && (\n\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{customerNameError.message}\n\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"customerEmail\" style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\tE-Mail *\n\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\tid=\"customerEmail\"\n\t\t\t\t\t\t\t\t\t\t\t{...form.register(\"customerEmail\")}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"deine@email.de\"\n\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{customerEmailError && (\n\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{customerEmailError.message}\n\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"customerPhone\" style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\tTelefon (optional)\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\tid=\"customerPhone\"\n\t\t\t\t\t\t\t\t\t\t{...form.register(\"customerPhone\")}\n\t\t\t\t\t\t\t\t\t\ttype=\"tel\"\n\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"+49 123 456789\"\n\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Participants */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tTeilnehmer\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t{watchedParticipants.map((participant, index) => (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div style={{ flex: 1 }}>\n\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={`participant-name-${index}`} style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\t\tName *\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\tid={`participant-name-${index}`}\n\t\t\t\t\t\t\t\t\t\t\t\t{...form.register(`participants.${index}.name`)}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Teilnehmername\"\n\t\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{form.formState.errors.participants?.[index]?.name && (\n\t\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{form.formState.errors.participants[index]?.name?.message}\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div style={{ width: \"80px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={`participant-age-${index}`} style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\t\tAlter\n\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\tid={`participant-age-${index}`}\n\t\t\t\t\t\t\t\t\t\t\t\t{...form.register(`participants.${index}.age`, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetValueAs: (value) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (value === \"\" || value === null || value === undefined) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst num = Number(value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn Number.isNaN(num) ? undefined : num;\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\t\t\t\t\t\t\tmax=\"120\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"25\"\n\t\t\t\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{watchedParticipants.length > 1 && (\n\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t\t<label htmlFor={`participant-name-${index}`} style={labelStyle}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => removeParticipant(index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"36px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"36px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"1.5rem\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t×\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{/* Add Participant Button Underneath */}\n\t\t\t\t\t\t\t\t{watchedParticipants.length < eventDetails.availableSpots ? (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"12px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={addParticipant}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"#fff\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"1rem\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"7px 15px\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"linear-gradient(90deg, var(--bw-highlight-color) 0%, var(--bw-highlight-color) 100%)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-highlight-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: \"0 2px 8px 0 var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = \"#fff\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.background =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"linear-gradient(90deg, var(--bw-highlight-color) 0%, var(--bw-highlight-color) 100%)\";\n\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.color = \"#fff\";\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t+ Teilnehmer hinzufügen\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tMaximal {eventDetails.availableSpots} Plätze verfügbar.\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Discount Code */}\n\t\t\t\t\t\t{/* <Accordion\n\t\t\t\t\t\t\ttitle=\"Rabattcode (optional)\"\n\t\t\t\t\t\t\tisOpen={openSection === \"discount\"}\n\t\t\t\t\t\t\tonToggle={() => setOpenSection(openSection === \"discount\" ? \"discount\" : \"discount\")}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t{...form.register(\"discountCode\")}\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tstyle={inputStyle}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Rabattcode eingeben\"\n\t\t\t\t\t\t\t\t\tonFocus={(e) => {\n\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"0 0 0 2px var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonBlur={(e) => {\n\t\t\t\t\t\t\t\t\t\te.target.style.borderColor = \"var(--bw-border-color)\";\n\t\t\t\t\t\t\t\t\t\te.target.style.boxShadow = \"none\";\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{discountLoading && (\n\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<IconSpinner size={16} color=\"var(--bw-highlight-color)\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\tValidiere Rabattcode...\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{discountError && (\n\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{discountError}\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{discountCode && (\n\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-success-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t✓ Rabatt angewendet: {discountCode.description} (-\n\t\t\t\t\t\t\t\t\t\t{formatCurrency(discountCode.discountAmount)})\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Accordion> */}\n\n\t\t\t\t\t\t{/* Terms */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\tid=\"acceptTerms\"\n\t\t\t\t\t\t\t\t\t{...form.register(\"acceptTerms\")}\n\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tmarginTop: \"4px\",\n\t\t\t\t\t\t\t\t\t\twidth: \"20px\",\n\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\taccentColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\tborderColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\thtmlFor=\"acceptTerms\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tIch akzeptiere die{\" \"}\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\thref={eventDetails.agbUrl || \"/terms\"}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\ttextDecoration: \"none\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tAllgemeinen Geschäftsbedingungen\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t*\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{form.formState.errors.acceptTerms && (\n\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{form.formState.errors.acceptTerms.message}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</form>\n\n\t\t\t\t\t{/* Summary & Payment */}\n\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-large)\" }}>\n\t\t\t\t\t\t{/* Total */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tBuchungszusammenfassung\n\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tAnzahl Teilnehmer:\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{watchedParticipants.filter((p) => p.name.trim()).length}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tPreis pro Person:\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{formatCurrency(eventDetails.price)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{depositAmount > 0 && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tAnzahlung pro Person:\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(eventDetails.deposit || 0)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{discountCode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tZwischensumme:\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\ttextDecoration: \"line-through\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(\n\t\t\t\t\t\t\t\t\t\t\t\t\teventDetails.price *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchedParticipants.filter((p) => p.name.trim()).length,\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-success-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tRabatt:\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-success-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t-{formatCurrency(discountCode.discountAmount)}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tborderTop: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\tpaddingTop: \"12px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{depositAmount > 0 && (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\tGesamtbetrag:\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(totalAmount)}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ color: \"var(--bw-text-color)\", fontFamily: \"var(--bw-font-family)\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{depositAmount > 0 ? \"Heute zu zahlen (Anzahlung):\" : \"Gesamtbetrag:\"}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 700,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{formatCurrency(paymentAmount)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Payment */}\n\t\t\t\t\t\t{stripePromise &&\n\t\t\t\t\t\t\t(() => {\n\t\t\t\t\t\t\t\tif (!isFormValid()) {\n\t\t\t\t\t\t\t\t\tconst participantCount = watchedParticipants.filter((p) => p.name.trim()).length;\n\t\t\t\t\t\t\t\t\tconst missing = [];\n\t\t\t\t\t\t\t\t\tif (participantCount === 0) {\n\t\t\t\t\t\t\t\t\t\tmissing.push(\"einen Teilnehmer\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t!watchedCustomerName ||\n\t\t\t\t\t\t\t\t\t\twatchedCustomerName.trim().length === 0 ||\n\t\t\t\t\t\t\t\t\t\tcustomerNameError\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tmissing.push(\"einen Namen\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t!watchedCustomerEmail ||\n\t\t\t\t\t\t\t\t\t\twatchedCustomerEmail.trim().length === 0 ||\n\t\t\t\t\t\t\t\t\t\tcustomerEmailError\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tmissing.push(\"eine gültige E-Mail-Adresse\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (watchedAcceptTerms !== true) {\n\t\t\t\t\t\t\t\t\t\tmissing.push(\"die Akzeptanz der Allgemeinen Geschäftsbedingungen\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst message = `Bitte gib mindestens ${missing.join(\", \")} an, um fortzufahren.`;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{message}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\tbackdropFilter: \"blur(4px)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderBottom: \"2px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tpaddingBottom: 4,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tZahlung\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t<PaymentForm\n\t\t\t\t\t\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\t\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\t\t\t\t\t\t\tformData={form.getValues()}\n\t\t\t\t\t\t\t\t\t\t\ttotalAmount={paymentAmount}\n\t\t\t\t\t\t\t\t\t\t\tdiscountCode={discountCode}\n\t\t\t\t\t\t\t\t\t\t\tonSuccess={onSuccess}\n\t\t\t\t\t\t\t\t\t\t\tonError={onError}\n\t\t\t\t\t\t\t\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\t\t\t\t\t\t\t\tstripePromise={stripePromise}\n\t\t\t\t\t\t\t\t\t\t\tstripeAppearance={stripeAppearance}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Styles for animations */}\n\t\t\t\t<style>{`\n .booking-widget-container *,\n .booking-widget-container *::before,\n .booking-widget-container *::after {\n box-sizing: border-box;\n }\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}</style>\n\t\t\t</div>\n\t\t</Sidebar>\n\t);\n}\n","import { useState } from \"react\";\nimport { formatCurrency, formatTime, formatWeekday } from \"../utils\";\nimport { Accordion, Sidebar } from \"./Sidebar\";\n\ninterface EventType {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n}\n\ninterface EventInstance {\n\tid: number;\n\tname: string;\n\tstartTime: string;\n\tendTime: string;\n\tprice: number;\n\tmaxParticipants: number;\n\tparticipantCount: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\tnotes?: string;\n\tbookingOpen: boolean;\n}\n\ninterface EventInstanceSelectionProps {\n\teventInstances: EventInstance[];\n\tselectedEventType: EventType | null;\n\tonEventInstanceSelect: (eventInstance: EventInstance) => void;\n\tonBackToEventTypes: () => void;\n\tisOpen: boolean;\n\tonClose: () => void;\n\tisLoadingEventInstances?: boolean;\n\tisLoadingEventDetails?: boolean;\n}\n\nconst months = [\n\t\"Januar\",\n\t\"Februar\",\n\t\"März\",\n\t\"April\",\n\t\"Mai\",\n\t\"Juni\",\n\t\"Juli\",\n\t\"August\",\n\t\"September\",\n\t\"Oktober\",\n\t\"November\",\n\t\"Dezember\",\n];\n\n// Helper function to get allocation badge info based on availability\nconst getAllocationBadgeInfo = (\n\tavailableSpots: number,\n\tmaxParticipants: number,\n): { text: string; backgroundColor: string; textColor: string } | null => {\n\tconst availabilityRatio = availableSpots / maxParticipants;\n\n\t// Only show badge for low availability (less than 60%)\n\tif (availabilityRatio >= 0.6) return null;\n\n\t// Very low availability (30% or less) - \"fast ausgebucht\"\n\tif (availabilityRatio <= 0.3) {\n\t\treturn {\n\t\t\ttext: \"fast ausgebucht\",\n\t\t\tbackgroundColor: \"#7f1d1d\", // Dark red\n\t\t\ttextColor: \"#fca5a5\", // Bright red\n\t\t};\n\t}\n\n\t// Low availability (30-60%) - \"wenige Plätze\"\n\treturn {\n\t\ttext: \"beliebter Termin\",\n\t\tbackgroundColor: \"#b45309\", // Dark orange/yellow\n\t\ttextColor: \"#fbbf24\", // Bright yellow\n\t};\n};\n\n// Helper function to get price badge info for special prices\nconst getPriceBadgeInfo = (\n\tprice: number,\n\tyearPrices: number[],\n): { text: string; backgroundColor: string; textColor: string } | null => {\n\tif (yearPrices.length <= 1) return null;\n\n\tconst sortedPrices = [...new Set(yearPrices)].sort((a, b) => a - b); // Remove duplicates and sort\n\n\t// Need at least 2 different prices to show badges\n\tif (sortedPrices.length < 2) return null;\n\n\tconst lowestPrice = sortedPrices[0];\n\tconst secondLowestPrice = sortedPrices[1];\n\n\t// Show \"am günstigsten\" for the lowest price\n\tif (price === lowestPrice) {\n\t\treturn {\n\t\t\ttext: \"bester Preis !!!\",\n\t\t\tbackgroundColor: \"#14532d\", // Dark green\n\t\t\ttextColor: \"#4ade80\", // Bright green\n\t\t};\n\t}\n\n\t// Show \"günstig\" for second lowest price, but only if it's not the same as most other prices\n\tif (price === secondLowestPrice && sortedPrices.length > 2) {\n\t\treturn {\n\t\t\ttext: \"günstiger Preis\",\n\t\t\tbackgroundColor: \"#0e7490\", // Turquoise\n\t\t\ttextColor: \"#67e8f9\", // Light Turquoise\n\t\t};\n\t}\n\n\treturn null;\n};\n\n// Helper function to get price styling (for price display only, not badges)\nconst getPriceDisplayInfo = (\n\tprice: number,\n\tyearPrices: number[],\n): { backgroundColor: string; textColor: string } | null => {\n\tif (yearPrices.length <= 1) return null;\n\n\tconst sortedPrices = [...new Set(yearPrices)].sort((a, b) => a - b); // Remove duplicates and sort\n\n\t// If all prices are the same, use green styling\n\tif (sortedPrices.length === 1) {\n\t\treturn {\n\t\t\tbackgroundColor: \"#14532d\", // Dark green\n\t\t\ttextColor: \"#4ade80\", // Bright green\n\t\t};\n\t}\n\n\t// For different prices, use the badge info if available\n\tconst badgeInfo = getPriceBadgeInfo(price, yearPrices);\n\tif (badgeInfo) {\n\t\treturn {\n\t\t\tbackgroundColor: badgeInfo.backgroundColor,\n\t\t\ttextColor: badgeInfo.textColor,\n\t\t};\n\t}\n\n\treturn {\n\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\ttextColor: \"var(--bw-text-color)\",\n\t};\n};\n\n// Allocation Badge Component\nconst AllocationBadge = ({\n\tavailableSpots,\n\tmaxParticipants,\n}: { availableSpots: number; maxParticipants: number }) => {\n\tconst badgeInfo = getAllocationBadgeInfo(availableSpots, maxParticipants);\n\n\tif (!badgeInfo) return null;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tbottom: \"4px\",\n\t\t\t\tright: \"20px\",\n\t\t\t\tbackgroundColor: badgeInfo.backgroundColor,\n\t\t\t\tcolor: badgeInfo.textColor,\n\t\t\t\tfontSize: \"11px\",\n\t\t\t\tfontWeight: \"bold\",\n\t\t\t\tpadding: \"3px 8px\",\n\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\tboxShadow: \"0 2px 4px rgba(0, 0, 0, 0.2)\",\n\t\t\t\tzIndex: 50,\n\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t}}\n\t\t>\n\t\t\t{badgeInfo.text}\n\t\t</div>\n\t);\n};\n\n// Price Badge Component (for special prices)\nconst SpecialPriceBadge = ({ price, yearPrices }: { price: number; yearPrices: number[] }) => {\n\tconst badgeInfo = getPriceBadgeInfo(price, yearPrices);\n\n\tif (!badgeInfo) return null;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tbottom: \"28px\",\n\t\t\t\tright: \"20px\",\n\t\t\t\tbackgroundColor: badgeInfo.backgroundColor,\n\t\t\t\tcolor: badgeInfo.textColor,\n\t\t\t\tfontSize: \"11px\",\n\t\t\t\tfontWeight: \"bold\",\n\t\t\t\tpadding: \"3px 8px\",\n\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\tboxShadow: \"0 2px 4px rgba(0, 0, 0, 0.2)\",\n\t\t\t\tzIndex: 50,\n\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t}}\n\t\t>\n\t\t\t{badgeInfo.text}\n\t\t</div>\n\t);\n};\n\n// Price Display Component (with special price styling)\nconst PriceDisplay = ({ price, yearPrices }: { price: number; yearPrices: number[] }) => {\n\tconst displayInfo = getPriceDisplayInfo(price, yearPrices);\n\n\treturn (\n\t\t<span\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"inline-flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tbackgroundColor: displayInfo ? displayInfo.backgroundColor : \"var(--bw-background-color)\",\n\t\t\t\tcolor: displayInfo ? displayInfo.textColor : \"var(--bw-text-color)\",\n\t\t\t\tfontSize: \"var(--bw-font-size-medium)\",\n\t\t\t\tfontWeight: \"600\",\n\t\t\t\tpadding: \"3px 8px\",\n\t\t\t\tmarginTop: \"-3px\",\n\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\tborder: displayInfo ? \"none\" : \"1px solid var(--bw-border-color)\",\n\t\t\t\tboxShadow: displayInfo ? \"0 2px 4px rgba(0, 0, 0, 0.2)\" : \"none\",\n\t\t\t}}\n\t\t>\n\t\t\t{formatCurrency(price)}\n\t\t</span>\n\t);\n};\n\nexport function EventInstanceSelection({\n\teventInstances,\n\tselectedEventType,\n\tonEventInstanceSelect,\n\tonBackToEventTypes,\n\tisOpen,\n\tonClose,\n\tisLoadingEventInstances = false,\n\tisLoadingEventDetails = false,\n}: EventInstanceSelectionProps) {\n\tconst [selectedEventInstanceId, setSelectedEventInstanceId] = useState<number | null>(null);\n\tconst [openMonths, setOpenMonths] = useState<Set<number>>(new Set());\n\n\tconst getEventsForMonth = (monthIndex: number) => {\n\t\treturn eventInstances.filter(\n\t\t\t(instance) => new Date(instance.startTime).getMonth() === monthIndex,\n\t\t);\n\t};\n\n\tconst getMinPriceForMonth = (monthIndex: number): number => {\n\t\tconst monthEvents = getEventsForMonth(monthIndex);\n\t\tif (monthEvents.length === 0) return 0;\n\t\treturn Math.min(...monthEvents.map((event) => event.price));\n\t};\n\n\tconst getMonthPriceDisplayInfo = (\n\t\tminPrice: number,\n\t): { backgroundColor: string; textColor: string } | null => {\n\t\treturn getPriceDisplayInfo(minPrice, yearPrices);\n\t};\n\n\t// Get all prices for the current year to calculate percentiles\n\tconst currentYear = new Date().getFullYear();\n\tconst yearPrices = eventInstances\n\t\t.filter((instance) => new Date(instance.startTime).getFullYear() === currentYear)\n\t\t.map((instance) => instance.price);\n\n\tconst today = new Date();\n\n\t// Get months that have events\n\tconst monthsWithEvents = months\n\t\t.map((month, index) => ({\n\t\t\tmonth,\n\t\t\tindex,\n\t\t\tevents: getEventsForMonth(index).sort(\n\t\t\t\t(a, b) => new Date(a.startTime).getTime() - new Date(b.startTime).getTime(),\n\t\t\t),\n\t\t\tminPrice: getMinPriceForMonth(index),\n\t\t}))\n\t\t.filter((monthData) => monthData.events.length > 0);\n\n\tconst handleEventInstanceSelect = (eventInstance: EventInstance) => {\n\t\tsetSelectedEventInstanceId(eventInstance.id);\n\t\tonEventInstanceSelect(eventInstance);\n\t};\n\n\tconst toggleMonth = (monthIndex: number) => {\n\t\tif (openMonths.has(monthIndex)) {\n\t\t\t// Close if already open\n\t\t\tsetOpenMonths(new Set());\n\t\t} else {\n\t\t\t// Open only this one, close others\n\t\t\tsetOpenMonths(new Set([monthIndex]));\n\t\t}\n\t};\n\n\tconst handleClose = () => {\n\t\tonClose();\n\t\tonBackToEventTypes();\n\t};\n\n\t// Show loading state first if we're loading event instances\n\tif (isLoadingEventInstances) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<style>{`\n\t\t\t@keyframes shimmer {\n\t\t\t\t0% { transform: translateX(-100%); }\n\t\t\t\t100% { transform: translateX(100%); }\n\t\t\t}\n\t\t\t\n\t\t\t.bw-skeleton-shimmer {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t\n\t\t\t.bw-skeleton-shimmer::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);\n\t\t\t\tanimation: shimmer 2s infinite;\n\t\t\t}\n\n\t\t\t/* Shimmer effect for accordion triggers and instance cards */\n\t\t\t.bw-accordion-trigger,\n\t\t\t.bw-event-instance-card {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n\t\t\t.bw-accordion-trigger::before,\n\t\t\t.bw-event-instance-card::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: -100%;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);\n\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\tpointer-events: none;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t.bw-accordion-trigger:hover::before,\n\t\t\t.bw-event-instance-card:hover::before {\n\t\t\t\tleft: 100%;\n\t\t\t\ttransition: left 1.2s ease;\n\t\t\t}\n\n\t\t\t.bw-accordion-trigger:not(:hover)::before,\n\t\t\t.bw-event-instance-card:not(:hover)::before {\n\t\t\t\ttransition: none;\n\t\t\t}\n\n\t\t\t/* Ensure content stays above shimmer */\n\t\t\t.bw-accordion-trigger > *,\n\t\t\t.bw-event-instance-card > * {\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t@media (max-width: 600px) {\n\t\t\t\t.bw-event-instance-list {\n\t\t\t\t\tpadding: 16px !important;\n\t\t\t\t\tgap: 12px !important;\n\t\t\t\t}\n\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\tpadding: 12px 16px !important;\n\t\t\t\t\tfont-size: 0.95rem !important;\n\t\t\t\t}\n\t\t\t\t.bw-event-instance-datebox {\n\t\t\t\t\twidth: 32px !important;\n\t\t\t\t\theight: 32px !important;\n\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t}\n\t\t\t\t.bw-event-instance-title {\n\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t}\n\t\t\t\t.bw-event-instance-price {\n\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t}\n\t\t\t}\n\t\t`}</style>\n\t\t\t\t<Sidebar\n\t\t\t\t\tisOpen={isOpen}\n\t\t\t\t\tonClose={handleClose}\n\t\t\t\t\ttitle={`${selectedEventType?.name} Terminauswahl`}\n\t\t\t\t\twidth=\"500px\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"bw-event-instance-list\" style={{ padding: \"24px\" }}>\n\t\t\t\t\t\t{/* Skeleton Months with Events */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\tgap: \"20px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{Array.from({ length: 3 }).map((_, idx) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\t\t\t\tclassName=\"bw-skeleton-shimmer\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{/* Accordion Header Skeleton - matches exact structure */}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"16px 20px\",\n\t\t\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\t\t\tborderBottom: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{/* Month name skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{/* Chevron skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"2px\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{/* Price info skeleton */}\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"70px\",\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\topacity: 0.3,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t{/* Accordion Content Skeleton */}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\tpaddingTop: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"12px 20px 20px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{Array.from({ length: 2 }).map((_, eventIdx) => (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tkey={eventIdx}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-card\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"16px 20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Event date and time skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"start\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Date box skeleton - matches bw-event-instance-datebox */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-datebox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTop: `4px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Date info skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Price skeleton - matches bw-event-instance-price */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-price\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"end\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"70px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\topacity: 0.3,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t{/* Event name and duration skeleton */}\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"120px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"50px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t{/* Notes skeleton (optional) */}\n\t\t\t\t\t\t\t\t\t\t\t\t{eventIdx === 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"90%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Sidebar>\n\t\t\t</>\n\t\t);\n\t}\n\n\t// Show empty state only if not loading and no event instances\n\tif (eventInstances.length === 0) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<style>{`\n\t\t\t\t\t/* Shimmer effect for accordion triggers and instance cards */\n\t\t\t\t\t.bw-accordion-trigger,\n\t\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\t\tposition: relative;\n\t\t\t\t\t\toverflow: hidden;\n\t\t\t\t\t}\n\n\t\t\t\t\t.bw-accordion-trigger::before,\n\t\t\t\t\t.bw-event-instance-card::before {\n\t\t\t\t\t\tcontent: '';\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\ttop: 0;\n\t\t\t\t\t\tleft: -100%;\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\theight: 100%;\n\t\t\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);\n\t\t\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\t\t\tpointer-events: none;\n\t\t\t\t\t\tz-index: 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t.bw-accordion-trigger:hover::before,\n\t\t\t\t\t.bw-event-instance-card:hover::before {\n\t\t\t\t\t\tleft: 100%;\n\t\t\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\t\t}\n\n\t\t\t\t\t.bw-accordion-trigger:not(:hover)::before,\n\t\t\t\t\t.bw-event-instance-card:not(:hover)::before {\n\t\t\t\t\t\ttransition: none;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* Ensure content stays above shimmer */\n\t\t\t\t\t.bw-accordion-trigger > *,\n\t\t\t\t\t.bw-event-instance-card > * {\n\t\t\t\t\t\tposition: relative;\n\t\t\t\t\t\tz-index: 2;\n\t\t\t\t\t}\n\n\t\t\t\t\t@media (max-width: 600px) {\n\t\t\t\t\t\t.bw-event-instance-list {\n\t\t\t\t\t\t\tpadding: 16px !important;\n\t\t\t\t\t\t\tgap: 12px !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\t\t\tpadding: 12px 16px !important;\n\t\t\t\t\t\t\tfont-size: 0.95rem !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.bw-event-instance-datebox {\n\t\t\t\t\t\t\twidth: 32px !important;\n\t\t\t\t\t\t\theight: 32px !important;\n\t\t\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.bw-event-instance-title {\n\t\t\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.bw-event-instance-price {\n\t\t\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t`}</style>\n\t\t\t\t<Sidebar isOpen={isOpen} onClose={handleClose} title=\"Keine verfügbaren Termine\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"bw-event-instance-list\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tminHeight: \"400px\",\n\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmargin: \"0 auto 16px\",\n\t\t\t\t\t\t\t\t\tfontSize: \"48px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t📅\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<h3\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmarginBottom: \"8px\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tKeine verfügbaren Termine\n\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tFür diesen Event-Typ sind derzeit keine Termine verfügbar.\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Sidebar>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<style>{`\n\t\t\t\t/* Shimmer effect for accordion triggers and instance cards */\n\t\t\t\t.bw-accordion-trigger,\n\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\n\t\t\t\t.bw-accordion-trigger::before,\n\t\t\t\t.bw-event-instance-card::before {\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: -100%;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);\n\t\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\t\tpointer-events: none;\n\t\t\t\t\tz-index: 1;\n\t\t\t\t}\n\n\t\t\t\t.bw-accordion-trigger:hover::before,\n\t\t\t\t.bw-event-instance-card:hover::before {\n\t\t\t\t\tleft: 100%;\n\t\t\t\t\ttransition: left 1.2s ease;\n\t\t\t\t}\n\n\t\t\t\t.bw-accordion-trigger:not(:hover)::before,\n\t\t\t\t.bw-event-instance-card:not(:hover)::before {\n\t\t\t\t\ttransition: none;\n\t\t\t\t}\n\n\t\t\t\t/* Ensure content stays above shimmer */\n\t\t\t\t.bw-accordion-trigger > *,\n\t\t\t\t.bw-event-instance-card > * {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tz-index: 2;\n\t\t\t\t}\n\n\t\t\t\t@media (max-width: 600px) {\n\t\t\t\t\t.bw-event-instance-list {\n\t\t\t\t\t\tpadding: 16px !important;\n\t\t\t\t\t\tgap: 12px !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-instance-card {\n\t\t\t\t\t\tpadding: 12px 16px !important;\n\t\t\t\t\t\tfont-size: 0.95rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-instance-datebox {\n\t\t\t\t\t\twidth: 32px !important;\n\t\t\t\t\t\theight: 32px !important;\n\t\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-instance-title {\n\t\t\t\t\t\tfont-size: 1rem !important;\n\t\t\t\t\t}\n\t\t\t\t\t.bw-event-instance-price {\n\t\t\t\t\t\tfont-size: 1.1rem !important;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t\t<Sidebar\n\t\t\t\tisOpen={isOpen}\n\t\t\t\tonClose={handleClose}\n\t\t\t\ttitle={`Terminauswahl - ${selectedEventType?.name || \"Event\"}`}\n\t\t\t\twidth=\"500px\"\n\t\t\t>\n\t\t\t\t<div className=\"bw-event-instance-list\" style={{ padding: \"24px\" }}>\n\t\t\t\t\t{/* Months with Events */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\tgap: \"20px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{monthsWithEvents.map(({ month, index, events, minPrice }) => {\n\t\t\t\t\t\t\tconst monthPriceDisplayInfo = getMonthPriceDisplayInfo(minPrice);\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Accordion\n\t\t\t\t\t\t\t\t\tkey={month}\n\t\t\t\t\t\t\t\t\ttitle={month}\n\t\t\t\t\t\t\t\t\tpriceInfo={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"1rem\",\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: monthPriceDisplayInfo\n\t\t\t\t\t\t\t\t\t\t\t\t\t? monthPriceDisplayInfo.backgroundColor\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"#14532d\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: monthPriceDisplayInfo ? monthPriceDisplayInfo.textColor : \"#4ade80\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 500,\n\t\t\t\t\t\t\t\t\t\t\t\tmarginLeft: \"auto\",\n\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"4px 8px\",\n\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\tborder: monthPriceDisplayInfo ? \"none\" : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\tboxShadow: monthPriceDisplayInfo\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"0 2px 4px rgba(0, 0, 0, 0.2)\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{`ab ${formatCurrency(minPrice)}`}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisOpen={openMonths.has(index)}\n\t\t\t\t\t\t\t\t\tonToggle={() => toggleMonth(index)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\tpaddingTop: \"12px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{events.map((event) => {\n\t\t\t\t\t\t\t\t\t\t\tconst availableSpots = event.maxParticipants - event.participantCount;\n\t\t\t\t\t\t\t\t\t\t\tconst isFullyBooked = availableSpots === 0;\n\t\t\t\t\t\t\t\t\t\t\tconst startDate = new Date(event.startTime);\n\t\t\t\t\t\t\t\t\t\t\tconst isPastEvent = today.toISOString() >= startDate.toISOString();\n\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={event.id}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-card\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcursor:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!isFullyBooked && !isPastEvent && event.bookingOpen\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"not-allowed\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"16px 20px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topacity: isFullyBooked || isPastEvent ? 0.3 : 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilter: isFullyBooked || isPastEvent ? \"grayscale(100%)\" : \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleEventInstanceSelect(event);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1.02)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"var(--bw-surface-muted, rgba(59, 130, 246, 0.1))\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{selectedEventInstanceId === event.id && isLoadingEventDetails && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-overlay-color, rgba(15, 23, 42, 0.8))\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color-muted, rgba(59, 130, 246, 0.8))\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t⟳\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Special Price Badge */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<SpecialPriceBadge price={event.price} yearPrices={yearPrices} />\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Allocation Badge */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<AllocationBadge\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tavailableSpots={availableSpots}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxParticipants={event.maxParticipants}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Event date and time */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"start\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-datebox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderTop: `4px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{startDate.getDate()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"start\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.2\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ fontWeight: \"600\", marginBottom: \"2px\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatWeekday(event.startTime)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontSize: \"14px\" }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatTime(event.startTime)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Price */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-price\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"end\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<PriceDisplay price={event.price} yearPrices={yearPrices} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Event name and durationDays inline */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h4\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"bw-event-instance-title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.25\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"0 0 2px 0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{event.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: 400,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginLeft: \"6px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: \"var(--bw-background-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: \"2px 8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twhiteSpace: \"nowrap\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{event.durationDays} Tag{event.durationDays > 1 ? \"e\" : \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</h4>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* Notes */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{event.notes && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay: \"-webkit-box\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitBoxOrient: \"vertical\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWebkitLineClamp: 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmargin: \"0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.3\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{event.notes}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Accordion>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Sidebar>\n\t\t</>\n\t);\n}\n","import React, { useState } from \"react\";\nimport { formatCurrency, formatTime, formatWeekday } from \"../utils\";\nimport type { UpcomingEvent } from \"./UniversalBookingWidget\";\n\ninterface NextEventsPreviewProps {\n\tevents: UpcomingEvent[];\n\tonEventSelect: (eventInstanceId: number) => void;\n\tonShowAll: () => void;\n\tshowAllButtonText: string;\n\tshowAllButton: boolean;\n\tisLoadingEventDetails?: boolean;\n\tisLoadingShowAll?: boolean;\n\tisLoading?: boolean;\n}\n\n// Loading skeleton component for NextEventsPreview\nconst NextEventsPreviewSkeleton = ({ count = 3 }: { count?: number }) => (\n\t<>\n\t\t<style>{`\n\t\t\t@keyframes shimmer {\n\t\t\t\t0% { transform: translateX(-100%); }\n\t\t\t\t100% { transform: translateX(100%); }\n\t\t\t}\n\t\t\t\n\t\t\t.bw-next-events-skeleton {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\t\t\t\n\t\t\t.bw-next-events-skeleton::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);\n\t\t\t\tanimation: shimmer 2s infinite;\n\t\t\t}\n\t\t`}</style>\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\tmargin: \"0 auto\",\n\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t}}\n\t\t>\n\t\t\t{/* Skeleton Header */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tmarginBottom: \"var(--bw-spacing-lg)\",\n\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"280px\",\n\t\t\t\t\t\theight: \"24px\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\tmargin: \"0 auto 8px\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"320px\",\n\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\tmargin: \"0 auto\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{/* Skeleton Events */}\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\tmarginBottom: \"var(--bw-spacing-lg)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{Array.from({ length: count }).map((_, idx) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\tclassName=\"bw-next-events-skeleton\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tpadding: \"8px 10px\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* Date and time skeleton */}\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"start\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"80px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"60px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Price skeleton */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\talignItems: \"end\",\n\t\t\t\t\t\t\t\t\tgap: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"70px\",\n\t\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t\topacity: 0.3,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"50px\",\n\t\t\t\t\t\t\t\t\t\theight: \"12px\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Event name skeleton */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"140px\",\n\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\twidth: \"50px\",\n\t\t\t\t\t\t\t\t\theight: \"20px\",\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-border-color)\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"8px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* Skeleton Show All Button */}\n\t\t\t<div style={{ textAlign: \"center\" }}>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"160px\",\n\t\t\t\t\t\theight: \"48px\",\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: \"1px solid var(--bw-border-color)\",\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tmargin: \"0 auto\",\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t</>\n);\n\nexport function NextEventsPreview({\n\tevents,\n\tonEventSelect,\n\tonShowAll,\n\tshowAllButtonText,\n\tshowAllButton,\n\tisLoadingEventDetails = false,\n\tisLoadingShowAll = false,\n\tisLoading = false,\n}: NextEventsPreviewProps) {\n\tconst [selectedEventInstanceId, setSelectedEventInstanceId] = useState<number | null>(null);\n\n\tconst handleEventSelect = (eventInstanceId: number) => {\n\t\tsetSelectedEventInstanceId(eventInstanceId);\n\t\tonEventSelect(eventInstanceId);\n\t};\n\n\t// Show loading skeleton\n\tif (isLoading) {\n\t\treturn <NextEventsPreviewSkeleton count={3} />;\n\t}\n\n\tif (events.length === 0) {\n\t\treturn (\n\t\t\t<div style={{ maxWidth: \"500px\", margin: \"0 auto\", padding: \"var(--bw-spacing)\" }}>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\tminHeight: \"300px\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{/* Empty State Icon */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: \"64px\",\n\t\t\t\t\t\t\theight: \"64px\",\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\tmargin: \"0 auto var(--bw-spacing)\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\topacity: 0.8,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t📅\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Empty State Title */}\n\t\t\t\t\t<h3\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-xl)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-small) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tKeine bevorstehenden Termine\n\t\t\t\t\t</h3>\n\n\t\t\t\t\t{/* Empty State Message */}\n\t\t\t\t\t<p\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-large) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tmaxWidth: \"400px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tAktuell sind keine Termine verfügbar. Bitte schaue später noch einmal vorbei oder\n\t\t\t\t\t\tkontaktiere uns direkt.\n\t\t\t\t\t</p>\n\n\t\t\t\t\t{/* Action Button */}\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() => window.location.reload()}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-highlight-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\te.currentTarget.style.color = \"white\";\n\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-1px)\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span style={{ fontSize: \"16px\" }}>🔄</span>\n\t\t\t\t\t\tSeite neu laden\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\tmargin: \"0 auto\",\n\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tmarginBottom: \"var(--bw-spacing-lg)\",\n\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<h2\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmargin: \"0 0 8px 0\",\n\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tNächste verfügbare Termine\n\t\t\t\t</h2>\n\t\t\t\t<p\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmargin: \"0\",\n\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tWähle einen Termin aus oder zeige alle verfügbaren Termine an\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\tmarginBottom: \"var(--bw-spacing-lg)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{events.map((event) => {\n\t\t\t\t\tconst availableSpots = event.maxParticipants - event.participantCount;\n\t\t\t\t\tconst isFullyBooked = availableSpots === 0;\n\t\t\t\t\tconst startDate = new Date(event.startTime);\n\t\t\t\t\tconst today = new Date();\n\t\t\t\t\tconst isPastEvent = today.toISOString() >= startDate.toISOString();\n\t\t\t\t\tconst isFullAvailability = availableSpots / event.maxParticipants >= 0.8;\n\t\t\t\t\tconst isHighAvailability = availableSpots / event.maxParticipants >= 0.5;\n\t\t\t\t\tconst isMediumAvailability = availableSpots / event.maxParticipants >= 0.3;\n\t\t\t\t\tconst isLowAvailability = availableSpots / event.maxParticipants >= 0.15;\n\n\t\t\t\t\tconst getAvailabilityColor = () => {\n\t\t\t\t\t\tif (isFullAvailability) return \"var(--bw-success-color)\";\n\t\t\t\t\t\tif (isHighAvailability) return \"var(--bw-warning-color)\";\n\t\t\t\t\t\tif (isMediumAvailability) return \"var(--bw-availability-medium-color, #f97316)\"; // orange fallback\n\t\t\t\t\t\tif (isLowAvailability) return \"var(--bw-availability-low-color, #8b5cf6)\"; // purple fallback\n\t\t\t\t\t\treturn \"var(--bw-highlight-color)\";\n\t\t\t\t\t};\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={event.id}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\t\tcursor:\n\t\t\t\t\t\t\t\t\t!isFullyBooked && !isPastEvent && event.bookingOpen ? \"pointer\" : \"not-allowed\",\n\t\t\t\t\t\t\t\tborder: \"1px solid\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\tpadding: \"8px 10px\",\n\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\topacity: isFullyBooked || isPastEvent ? 0.3 : 1,\n\t\t\t\t\t\t\t\tfilter: isFullyBooked || isPastEvent ? \"grayscale(100%)\" : \"none\",\n\t\t\t\t\t\t\t\tborderColor: getAvailabilityColor(),\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\thandleEventSelect(event.id);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1.02)\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor =\n\t\t\t\t\t\t\t\t\t\t\"var(--bw-surface-hover, rgba(0, 0, 0, 0.05))\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\tif (!isFullyBooked && !isPastEvent && event.bookingOpen) {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"scale(1)\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{selectedEventInstanceId === event.id && isLoadingEventDetails && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-overlay-color, rgba(15, 23, 42, 0.8))\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\twidth: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color-muted, rgba(59, 130, 246, 0.8))\",\n\t\t\t\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t⟳\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\tgap: \"12px\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"4px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* Event date and time */}\n\t\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"start\", gap: \"12px\" }}>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t\tborderTop: `4px solid ${getAvailabilityColor()}`,\n\t\t\t\t\t\t\t\t\t\t\tborder: \"1px solid\",\n\t\t\t\t\t\t\t\t\t\t\twidth: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\theight: \"40px\",\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderColor: getAvailabilityColor(),\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{startDate.getDate()}\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"start\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"start\",\n\t\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.2\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginBottom: \"2px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{formatWeekday(event.startTime)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{formatTime(event.startTime)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{/* Price */}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\n\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\t\talignItems: \"end\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: \"bold\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{event.price !== null ? formatCurrency(event.price) : \"Preis auf Anfrage\"}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t{event.deposit && event.deposit > 0 && (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tab {formatCurrency(event.deposit)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Event name and durationDays inline */}\n\t\t\t\t\t\t\t<h4\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tlineHeight: \"1.25\",\n\t\t\t\t\t\t\t\t\tmargin: \"0 0 2px 0\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{event.name}\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\tfontWeight: 400,\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\tmarginLeft: \"6px\",\n\t\t\t\t\t\t\t\t\t\tbackground: \"var(--bw-surface-muted)\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"8px\",\n\t\t\t\t\t\t\t\t\t\tpadding: \"2px 8px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{event.durationDays} Tag{event.durationDays > 1 ? \"e\" : \"\"}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</h4>\n\n\t\t\t\t\t\t\t{/* Notes */}\n\t\t\t\t\t\t\t{event.notes && (\n\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\tmarginTop: \"8px\",\n\t\t\t\t\t\t\t\t\t\tdisplay: \"-webkit-box\",\n\t\t\t\t\t\t\t\t\t\tWebkitBoxOrient: \"vertical\",\n\t\t\t\t\t\t\t\t\t\tWebkitLineClamp: 2,\n\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\t\t\t\t\tmargin: \"0\",\n\t\t\t\t\t\t\t\t\t\tlineHeight: \"1.3\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{event.notes}\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\n\t\t\t{showAllButton && (\n\t\t\t\t<div style={{ textAlign: \"center\" }}>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdisabled={isLoadingShowAll}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tborder: \"1px solid var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tcursor: isLoadingShowAll ? \"not-allowed\" : \"pointer\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\topacity: isLoadingShowAll ? 0.7 : 1,\n\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClick={onShowAll}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\tif (!isLoadingShowAll) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.color = \"white\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\tif (!isLoadingShowAll) {\n\t\t\t\t\t\t\t\te.currentTarget.style.backgroundColor = \"var(--bw-surface-color)\";\n\t\t\t\t\t\t\t\te.currentTarget.style.color = \"var(--bw-highlight-color)\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isLoadingShowAll ? (\n\t\t\t\t\t\t\t<div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\twidth: \"16px\",\n\t\t\t\t\t\t\t\t\t\theight: \"16px\",\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\t\tanimation: \"spin 1s linear infinite\",\n\t\t\t\t\t\t\t\t\t\tfontSize: \"16px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t⟳\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\tLädt...\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tshowAllButtonText\n\t\t\t\t\t\t)}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Styles for animations */}\n\t\t\t<style>{`\n\t\t\t\t@keyframes spin {\n\t\t\t\t\tfrom { transform: rotate(0deg); }\n\t\t\t\t\tto { transform: rotate(360deg); }\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t</div>\n\t);\n}\n","\"use client\";\n\nimport { loadStripe } from \"@stripe/stripe-js\";\nimport React, { useState, useEffect } from \"react\";\nimport { StyleProvider } from \"../styles/StyleProvider\";\nimport {\n\tcreateApiHeaders,\n\tcreateRequestBody,\n\tformatCurrency,\n\tformatDate,\n\tgetApiUrl,\n\tinferConfigFromUrl,\n} from \"../utils\";\nimport { BookingForm } from \"./BookingForm\";\nimport { EventInstanceSelection } from \"./EventInstanceSelection\";\nimport { EventTypeSelection } from \"./EventTypeSelection\";\nimport { NextEventsPreview } from \"./NextEventsPreview\";\n\n// Types\nexport interface EventType {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\thighlights?: string[];\n\timages: string[];\n\tcategory: {\n\t\tid: number;\n\t\tname: string;\n\t\tcolor: string;\n\t};\n\tnextAvailableDate: string | null;\n\tbasePrice: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tmaxParticipants: number;\n\tavailableInstancesCount: number;\n\thasAvailableInstances: boolean;\n}\n\nexport interface EventInstance {\n\tid: number;\n\tname: string;\n\tstartTime: string;\n\tendTime: string;\n\tprice: number;\n\tmaxParticipants: number;\n\tparticipantCount: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\tnotes?: string;\n\tbookingOpen: boolean;\n}\n\nexport interface EventDetails {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\tstartTime: string;\n\tendTime: string;\n\tprice: number;\n\tmaxParticipants: number;\n\tparticipantCount: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\timages: string[];\n\tcategory: {\n\t\tid: number;\n\t\tname: string;\n\t\tcolor: string;\n\t};\n\torganization: {\n\t\tid: string;\n\t\tname: string;\n\t\tslug?: string;\n\t};\n\tbookingOpen: boolean;\n}\n\nexport interface UpcomingEvent {\n\tid: number;\n\tname: string;\n\tstartTime: string;\n\tendTime: string;\n\tparticipantCount: number;\n\tmaxParticipants: number;\n\tprice: number | null;\n\teventTypeName: string;\n\tcategoryName: string;\n\tcategoryColor: string;\n\tcurrentBookings: number;\n\tavailableSpots: number;\n\tdurationDays: number;\n\tdurationPerDay: number;\n\tdeposit?: number;\n\tnotes?: string;\n\tbookingOpen: boolean;\n}\n\n// Updated configuration interface\nexport interface UniversalBookingConfig {\n\t// Required\n\tapiBaseUrl: string; // Your booking system API base URL\n\torganizationId: string; // Organization ID\n\n\t// Event selection - ONE of these must be provided\n\teventInstanceId?: number; // Direct instance selection (old behavior)\n\tcategoryId?: number; // Show all event types in this category\n\teventTypeIds?: number[]; // Show specific event types\n\teventTypeId?: number; // Show instances for a single event type\n\n\t// View mode configuration\n\tviewMode?: \"next-events\" | \"button\" | \"cards\"; // How to display the selected events\n\tnextEventsSettings?: {\n\t\tcount?: number; // How many next events to show (default: 3)\n\t\tshowAllButton?: boolean; // Show \"show all events\" button (default: true)\n\t\tshowAllButtonText?: string; // Custom text for the button\n\t};\n\n\t// Optional customization\n\tappearance?: {\n\t\ttheme?: \"stripe\" | \"night\" | \"flat\";\n\t\tvariables?: Record<string, string>;\n\t};\n\n\t// Simplified styling configuration\n\ttheme?:\n\t\t| \"light-fresh\"\n\t\t| \"light-elegant\"\n\t\t| \"light-vibrant\"\n\t\t| \"light-professional\"\n\t\t| \"dark-night\"\n\t\t| \"dark-modern\"\n\t\t| \"dark-forest\"\n\t\t| \"dark-matrix\"\n\t\t| \"dark-luxury\"\n\t\t| \"dark-energetic\";\n\tcolors?: {\n\t\t// Main colors (theme colors can be overridden)\n\t\thighlight?: string; // Main action/accent color - e.g., \"blue-600\", \"primary\", \"#3b82f6\"\n\t\tbackground?: string; // Page background - e.g., \"background\", \"slate-900\", \"#0f172a\"\n\t\tsurface?: string; // Card/surface background - e.g., \"card\", \"slate-800\", \"#1e293b\"\n\t\ttext?: string; // Main text color - e.g., \"foreground\", \"white\", \"#ffffff\"\n\t\tborder?: string; // Border color - e.g., \"border\", \"slate-700\", \"#334155\"\n\t\tsuccess?: string; // Success color - e.g., \"success\", \"green\", \"#10b981\"\n\t\twarning?: string; // Warning color - e.g., \"warning\", \"yellow\", \"#f59e0b\"\n\t\terror?: string; // Error color - e.g., \"error\", \"destructive\", \"#ef4444\"\n\t};\n\tborderRadius?: string; // Overall border radius - e.g., \"lg\", \"8px\"\n\tfontFamily?: string; // Font family - e.g., \"Inter\", \"system-ui\"\n\n\t// Single event type mode customization\n\tbuttonText?: string; // Custom text for the entry button in single event type mode\n\n\tlocale?: string;\n\n\t// Optional callbacks\n\tonSuccess?: (result: any) => void;\n\tonError?: (error: string) => void;\n}\n\n// Predefined themes & Style Provider have been moved to ../styles/StyleProvider.tsx\n\n// Success Modal Component\nconst BookingSuccessModal = ({\n\tisOpen,\n\tonClose,\n\tbookingData,\n\teventDetails,\n\tformData,\n\tconfig,\n}: {\n\tisOpen: boolean;\n\tonClose: () => void;\n\tbookingData: any;\n\teventDetails: any;\n\tformData: any;\n\tconfig: any;\n}) => {\n\tif (!isOpen || !bookingData) return null;\n\n\tconst booking = bookingData.booking;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tposition: \"fixed\",\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\tbottom: 0,\n\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0.5)\",\n\t\t\t\tzIndex: 10000,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\tpadding: \"var(--bw-spacing-large)\",\n\t\t\t\t\tmaxWidth: \"500px\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tmaxHeight: \"90vh\",\n\t\t\t\t\toverflow: \"auto\",\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\tboxShadow: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{/* Close button */}\n\t\t\t\t<button\n\t\t\t\t\tonClick={onClose}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\ttop: \"var(--bw-spacing)\",\n\t\t\t\t\t\tright: \"var(--bw-spacing)\",\n\t\t\t\t\t\tbackground: \"none\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tfontSize: \"24px\",\n\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\twidth: \"32px\",\n\t\t\t\t\t\theight: \"32px\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t×\n\t\t\t\t</button>\n\n\t\t\t\t{/* Success header */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\twidth: \"64px\",\n\t\t\t\t\t\t\theight: \"64px\",\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-success-color, #10B981)\",\n\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\tmargin: \"0 auto var(--bw-spacing)\",\n\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t✓\n\t\t\t\t\t</div>\n\t\t\t\t\t<h2\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-xl)\",\n\t\t\t\t\t\t\tfontWeight: \"700\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-small) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tBuchung erfolgreich!\n\t\t\t\t\t</h2>\n\t\t\t\t\t<p\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tDeine Buchung wurde erfolgreich abgeschlossen.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Booking Details */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h3\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tBuchungsdetails\n\t\t\t\t\t</h3>\n\n\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing)\" }}>\n\t\t\t\t\t\t{/* Booking ID */}\n\t\t\t\t\t\t{booking.bookingHash && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tBuchungs-ID:\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"monospace\",\n\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\tpadding: \"4px 8px\",\n\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{booking.bookingHash}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* Event Name */}\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tEvent:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\n\t\t\t\t\t\t\t\t\tmaxWidth: \"60%\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{eventDetails.name}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Event Date */}\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tDatum:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\ttextAlign: \"right\",\n\t\t\t\t\t\t\t\t\tmaxWidth: \"60%\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatDate(eventDetails.startTime)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Participants */}\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tTeilnehmer:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{booking.participantCount}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Total Amount */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tborderTop: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t\tpaddingTop: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tmarginTop: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tGesamtbetrag:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatCurrency(booking.total)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Participant List */}\n\t\t\t\t{formData.participants && formData.participants.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<h3\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tTeilnehmer\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-small)\" }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{formData.participants\n\t\t\t\t\t\t\t\t.filter((p: any) => p.name.trim())\n\t\t\t\t\t\t\t\t.map((participant: any, index: number) => (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"var(--bw-spacing-small)\",\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{participant.name}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t{participant.age && (\n\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{participant.age} Jahre\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Contact Information */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h3\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-large)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing) 0\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tKontaktdaten\n\t\t\t\t\t</h3>\n\t\t\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--bw-spacing-small)\" }}>\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tName:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-color)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\t{formData.customerName}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\tE-Mail:\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span style={{ color: \"var(--bw-text-color)\", fontFamily: \"var(--bw-font-family)\" }}>\n\t\t\t\t\t\t\t\t{formData.customerEmail}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{formData.customerPhone && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{ color: \"var(--bw-text-muted)\", fontFamily: \"var(--bw-font-family)\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tTelefon:\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{ color: \"var(--bw-text-color)\", fontFamily: \"var(--bw-font-family)\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{formData.customerPhone}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Email notification */}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-muted-bg, rgba(59, 130, 246, 0.05))\",\n\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\tpadding: \"var(--bw-spacing)\",\n\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tfontSize: \"24px\",\n\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-small)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t📧\n\t\t\t\t\t</div>\n\t\t\t\t\t<p\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tEine Bestätigungs-E-Mail wird in Kürze an {formData.customerEmail} gesendet.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Close button */}\n\t\t\t\t<div style={{ textAlign: \"center\" }}>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\tpadding: \"12px 32px\",\n\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.opacity = \"0.9\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\te.currentTarget.style.opacity = \"1\";\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tSchließen\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n// Main widget component\nexport function UniversalBookingWidget({ config: baseConfig }: { config: UniversalBookingConfig }) {\n\t// Apply URL parameter inference\n\tconst config = inferConfigFromUrl(baseConfig);\n\n\t// Determine view mode and settings\n\tconst viewMode = config.viewMode || (config.eventInstanceId ? \"button\" : \"cards\");\n\tconst nextEventsSettings = {\n\t\tcount: 3,\n\t\tshowAllButton: true,\n\t\tshowAllButtonText: \"Alle Events anzeigen\",\n\t\t...config.nextEventsSettings,\n\t};\n\n\t// Detect single event type mode and direct instance mode\n\tconst isSingleEventTypeMode = !!config.eventTypeId && !config.categoryId && !config.eventTypeIds;\n\tconst isDirectInstanceMode = !!config.eventInstanceId;\n\n\t// Selection flow state\n\tconst [currentStep, setCurrentStep] = useState<\"eventTypes\" | \"eventInstances\" | \"booking\">(\n\t\t\"eventTypes\",\n\t);\n\tconst [eventTypes, setEventTypes] = useState<EventType[]>([]);\n\tconst [selectedEventType, setSelectedEventType] = useState<EventType | null>(null);\n\tconst [eventInstances, setEventInstances] = useState<EventInstance[]>([]);\n\tconst [selectedEventInstance, setSelectedEventInstance] = useState<EventInstance | null>(null);\n\n\t// State for upcoming events (next-events view mode)\n\tconst [upcomingEvents, setUpcomingEvents] = useState<UpcomingEvent[]>([]);\n\tconst [showingPreview, setShowingPreview] = useState(true);\n\n\t// New: sidebar open state for single event type mode\n\tconst [sidebarOpen, setSidebarOpen] = useState(false);\n\n\t// Booking flow state\n\tconst [eventDetails, setEventDetails] = useState<EventDetails | null>(null);\n\tconst [stripePromise, setStripePromise] = useState<any>(null);\n\tconst [clientSecret, setClientSecret] = useState<string | null>(null);\n\n\t// SEPARATED LOADING STATES\n\tconst [isLoading, setIsLoading] = useState(true); // Only for initial widget load\n\tconst [isLoadingEventInstances, setIsLoadingEventInstances] = useState(false); // For loading event instances in sidebar\n\tconst [isLoadingEventDetails, setIsLoadingEventDetails] = useState(false); // For loading event details in booking form\n\tconst [isLoadingShowAll, setIsLoadingShowAll] = useState(false); // For \"show all events\" operation\n\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [isSuccess, setIsSuccess] = useState(false);\n\tconst [successData, setSuccessData] = useState<any>(null);\n\tconst [systemConfig, setSystemConfig] = useState<{\n\t\tsystemMode: string;\n\t\tstripePublishableKey: string;\n\t\tconnectedAccountId?: string;\n\t} | null>(null);\n\n\t// PERFORMANCE OPTIMIZATION: Lazy component loading\n\tconst [shouldRenderInstanceSelection, setShouldRenderInstanceSelection] = useState(false);\n\tconst [shouldRenderBookingForm, setShouldRenderBookingForm] = useState(false);\n\n\t// Determine initial step and load data\n\tuseEffect(() => {\n\t\tconst initializeWidget = async () => {\n\t\t\ttry {\n\t\t\t\tsetIsLoading(true);\n\n\t\t\t\t// Direct instance selection (old behavior)\n\t\t\t\tif (isDirectInstanceMode) {\n\t\t\t\t\tsetCurrentStep(\"booking\");\n\t\t\t\t\tsetShouldRenderBookingForm(true);\n\t\t\t\t\tawait loadEventDetails(config.eventInstanceId!);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Next events view mode: load upcoming events\n\t\t\t\tif (viewMode === \"next-events\") {\n\t\t\t\t\tawait loadUpcomingEvents();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Single event type mode: load event type and instances, but don't open sidebar yet\n\t\t\t\tif (isSingleEventTypeMode) {\n\t\t\t\t\tawait loadEventTypes();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Event type selection flow (cards mode)\n\t\t\t\tif (config.categoryId || config.eventTypeIds) {\n\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\tawait loadEventTypes();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// No valid configuration\n\t\t\t\tsetError(\"Ungültige Konfiguration: Keine Veranstaltungsauswahl angegeben\");\n\t\t\t} catch (err) {\n\t\t\t\tsetError(\"Fehler beim Initialisieren des Buchungswidgets\");\n\t\t\t\tconfig.onError?.(\"Failed to initialize booking widget\");\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t};\n\n\t\tinitializeWidget();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [config]);\n\n\t// PERFORMANCE OPTIMIZATION: Lazy load components when needed\n\tuseEffect(() => {\n\t\tif (currentStep === \"eventInstances\" && !shouldRenderInstanceSelection) {\n\t\t\tsetShouldRenderInstanceSelection(true);\n\t\t}\n\t\tif (currentStep === \"booking\" && !shouldRenderBookingForm) {\n\t\t\tsetShouldRenderBookingForm(true);\n\t\t}\n\t}, [currentStep, shouldRenderInstanceSelection, shouldRenderBookingForm]);\n\n\tconst loadEventTypes = async () => {\n\t\tconst requestBody: any = {\n\t\t\torganizationId: config.organizationId,\n\t\t};\n\n\t\tif (config.categoryId) {\n\t\t\trequestBody.categoryId = config.categoryId;\n\t\t} else if (config.eventTypeIds) {\n\t\t\trequestBody.eventTypeIds = config.eventTypeIds;\n\t\t} else if (config.eventTypeId) {\n\t\t\trequestBody.eventTypeId = config.eventTypeId;\n\t\t}\n\n\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/event-types\"), {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: createApiHeaders(config),\n\t\t\tbody: JSON.stringify(requestBody),\n\t\t});\n\n\t\tconst data = await response.json();\n\n\t\tif (response.ok) {\n\t\t\tsetEventTypes(data.eventTypes);\n\n\t\t\t// Single event type mode: preselect the type and load instances, but don't open sidebar yet\n\t\t\tif (isSingleEventTypeMode && data.eventTypes.length === 1) {\n\t\t\t\tsetSelectedEventType(data.eventTypes[0]);\n\t\t\t\tawait loadEventInstances(data.eventTypes[0].id);\n\t\t\t}\n\n\t\t\t// If only one event type (multi mode), skip to instances\n\t\t\tif (!isSingleEventTypeMode && data.eventTypes.length === 1) {\n\t\t\t\tsetSelectedEventType(data.eventTypes[0]);\n\t\t\t\tsetCurrentStep(\"eventInstances\");\n\t\t\t\tawait loadEventInstances(data.eventTypes[0].id);\n\t\t\t}\n\t\t} else {\n\t\t\tsetError(data.error || \"Fehler beim Laden der Veranstaltungstypen\");\n\t\t}\n\t};\n\n\tconst loadUpcomingEvents = async () => {\n\t\tconst requestBody: any = {\n\t\t\torganizationId: config.organizationId,\n\t\t\tlimit: nextEventsSettings.count,\n\t\t};\n\n\t\t// Add event selection filters\n\t\tif (config.categoryId) {\n\t\t\trequestBody.categoryId = config.categoryId;\n\t\t} else if (config.eventTypeIds) {\n\t\t\trequestBody.eventTypeIds = config.eventTypeIds;\n\t\t} else if (config.eventTypeId) {\n\t\t\trequestBody.eventTypeId = config.eventTypeId;\n\t\t}\n\n\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/upcoming-events\"), {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: createApiHeaders(config),\n\t\t\tbody: JSON.stringify(requestBody),\n\t\t});\n\n\t\tconst data = await response.json();\n\n\t\tif (response.ok) {\n\t\t\tsetUpcomingEvents(data.upcomingEvents || []);\n\t\t} else {\n\t\t\tsetError(data.error || \"Fehler beim Laden der bevorstehenden Termine\");\n\t\t}\n\t};\n\n\tconst loadEventInstances = async (eventTypeId: number) => {\n\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/event-instances\"), {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: createApiHeaders(config),\n\t\t\tbody: JSON.stringify(\n\t\t\t\tcreateRequestBody(config, {\n\t\t\t\t\teventTypeId,\n\t\t\t\t\tincludeSystemConfig: true, // Include Stripe config for potential booking\n\t\t\t\t}),\n\t\t\t),\n\t\t});\n\n\t\tconst data = await response.json();\n\n\t\tif (response.ok) {\n\t\t\tsetEventInstances(data.eventInstances);\n\n\t\t\t// Initialize Stripe if system config is included\n\t\t\tif (data.stripePublishableKey) {\n\t\t\t\tconst stripeOptions: any = {\n\t\t\t\t\tlocale: (config.locale as any) || \"de\",\n\t\t\t\t};\n\n\t\t\t\tif (data.connectedAccountId) {\n\t\t\t\t\tstripeOptions.stripeAccount = data.connectedAccountId;\n\t\t\t\t}\n\n\t\t\t\tsetStripePromise(loadStripe(data.stripePublishableKey, stripeOptions));\n\t\t\t}\n\n\t\t\t// If only one instance, skip to booking\n\t\t\tif (data.eventInstances.length === 1) {\n\t\t\t\tsetSelectedEventInstance(data.eventInstances[0]);\n\t\t\t\tsetCurrentStep(\"booking\");\n\t\t\t\tawait loadEventDetails(data.eventInstances[0].id);\n\t\t\t}\n\t\t} else {\n\t\t\tsetError(data.error || \"Fehler beim Laden der Veranstaltungstermine\");\n\t\t}\n\t};\n\n\tconst loadEventDetails = async (eventInstanceId: number) => {\n\t\ttry {\n\t\t\tconst requestBody = createRequestBody(config, {\n\t\t\t\teventInstanceId: Number(eventInstanceId), // Ensure it's a number\n\t\t\t});\n\n\t\t\tconsole.log(\"Loading event details with request:\", requestBody); // Debug log\n\n\t\t\tconst response = await fetch(getApiUrl(config.apiBaseUrl, \"/booking/event-details\"), {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: createApiHeaders(config),\n\t\t\t\tbody: JSON.stringify(requestBody),\n\t\t\t});\n\n\t\t\tconst data = await response.json();\n\n\t\t\tconsole.log(\"Event details response:\", { status: response.status, data }); // Debug log\n\n\t\t\tif (response.ok) {\n\t\t\t\tsetEventDetails(data.eventDetails);\n\n\t\t\t\t// Store system configuration for PaymentForm\n\t\t\t\tsetSystemConfig({\n\t\t\t\t\tsystemMode: data.systemMode,\n\t\t\t\t\tstripePublishableKey: data.stripePublishableKey,\n\t\t\t\t\tconnectedAccountId: data.connectedAccountId,\n\t\t\t\t});\n\n\t\t\t\t// Initialize Stripe if not already done\n\t\t\t\tif (!stripePromise && data.stripePublishableKey) {\n\t\t\t\t\tconst stripeOptions: any = {\n\t\t\t\t\t\tlocale: (config.locale as any) || \"de\",\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.connectedAccountId) {\n\t\t\t\t\t\tstripeOptions.stripeAccount = data.connectedAccountId;\n\t\t\t\t\t}\n\n\t\t\t\t\tsetStripePromise(loadStripe(data.stripePublishableKey, stripeOptions));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst errorMessage = data.error || \"Fehler beim Laden der Veranstaltungsdetails\";\n\t\t\t\tconsole.error(\"Event details API error:\", {\n\t\t\t\t\tstatus: response.status,\n\t\t\t\t\terror: errorMessage,\n\t\t\t\t\tdetails: data.details,\n\t\t\t\t});\n\t\t\t\tsetError(errorMessage);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(\"Event details fetch error:\", err);\n\t\t\tsetError(\"Fehler beim Laden der Veranstaltungsdetails\");\n\t\t}\n\t};\n\n\t// Payment intent creation is now handled in PaymentForm when we have complete form data\n\n\t// Validate configuration\n\tif (!config.organizationId) {\n\t\treturn (\n\t\t\t<div className=\"max-w-2xl mx-auto p-6\">\n\t\t\t\t<div className=\"bg-red-50 border border-red-200 rounded-lg p-4\">\n\t\t\t\t\t<h2 className=\"text-red-800 font-semibold\">Konfigurationsfehler</h2>\n\t\t\t\t\t<p className=\"text-red-600\">organizationId muss in der Konfiguration angegeben werden.</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (\n\t\t!config.eventInstanceId &&\n\t\t!config.categoryId &&\n\t\t!config.eventTypeIds &&\n\t\t!config.eventTypeId\n\t) {\n\t\treturn (\n\t\t\t<div className=\"max-w-2xl mx-auto p-6\">\n\t\t\t\t<div className=\"bg-red-50 border border-red-200 rounded-lg p-4\">\n\t\t\t\t\t<h2 className=\"text-red-800 font-semibold\">Konfigurationsfehler</h2>\n\t\t\t\t\t<p className=\"text-red-600\">\n\t\t\t\t\t\tEs muss eine der folgenden Optionen angegeben werden: eventInstanceId, categoryId,\n\t\t\t\t\t\teventTypeIds oder eventTypeId.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Event type selection handlers\n\tconst handleEventTypeSelect = async (eventType: EventType) => {\n\t\tsetSelectedEventType(eventType);\n\t\tsetCurrentStep(\"eventInstances\");\n\t\tsetShouldRenderInstanceSelection(true);\n\t\tsetIsLoadingEventInstances(true);\n\t\ttry {\n\t\t\tawait loadEventInstances(eventType.id);\n\t\t} finally {\n\t\t\tsetIsLoadingEventInstances(false);\n\t\t}\n\t};\n\n\t// Event instance selection handlers\n\tconst handleEventInstanceSelect = async (eventInstance: EventInstance) => {\n\t\tsetSelectedEventInstance(eventInstance);\n\t\tsetCurrentStep(\"booking\");\n\t\tsetShouldRenderBookingForm(true);\n\t\tsetIsLoadingEventDetails(true);\n\t\ttry {\n\t\t\tawait loadEventDetails(eventInstance.id);\n\t\t} finally {\n\t\t\tsetIsLoadingEventDetails(false);\n\t\t}\n\t};\n\n\t// Back navigation handlers\n\tconst handleBackToEventTypes = () => {\n\t\tsetCurrentStep(\"eventTypes\");\n\t\tsetSelectedEventType(null);\n\t\tsetEventInstances([]);\n\t\t// Don't unmount components immediately to avoid jarring transitions\n\t};\n\n\tconst handleBackToEventInstances = () => {\n\t\tsetCurrentStep(\"eventInstances\");\n\t\tsetSelectedEventInstance(null);\n\t\tsetEventDetails(null);\n\t};\n\n\tconst handleBookingSuccess = (result: any) => {\n\t\tsetIsSuccess(true);\n\t\tsetSuccessData(result);\n\t\tconfig.onSuccess?.(result);\n\t};\n\n\tconst handleBookingError = (errorMessage: string) => {\n\t\tsetError(errorMessage);\n\t\tconfig.onError?.(errorMessage);\n\t};\n\n\tconst handleUpcomingEventSelect = async (eventInstanceId: number) => {\n\t\t// Find the corresponding upcoming event to create a basic EventInstance\n\t\tconst upcomingEvent = upcomingEvents.find((event) => event.id === eventInstanceId);\n\t\tif (upcomingEvent) {\n\t\t\t// Create a basic EventInstance object for consistency\n\t\t\tconst eventInstance: EventInstance = {\n\t\t\t\tid: upcomingEvent.id,\n\t\t\t\tname: upcomingEvent.name,\n\t\t\t\tstartTime: upcomingEvent.startTime,\n\t\t\t\tendTime: upcomingEvent.endTime,\n\t\t\t\tprice: upcomingEvent.price || 0,\n\t\t\t\tmaxParticipants: upcomingEvent.maxParticipants,\n\t\t\t\tparticipantCount: upcomingEvent.participantCount,\n\t\t\t\tavailableSpots: upcomingEvent.availableSpots,\n\t\t\t\tdurationDays: upcomingEvent.durationDays,\n\t\t\t\tdurationPerDay: upcomingEvent.durationPerDay,\n\t\t\t\tdeposit: upcomingEvent.deposit,\n\t\t\t\tnotes: upcomingEvent.notes,\n\t\t\t\tbookingOpen: upcomingEvent.bookingOpen,\n\t\t\t};\n\t\t\tsetSelectedEventInstance(eventInstance);\n\t\t}\n\n\t\tsetCurrentStep(\"booking\");\n\t\tsetShouldRenderBookingForm(true);\n\t\tsetIsLoadingEventDetails(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tawait loadEventDetails(eventInstanceId);\n\t\t} catch (err) {\n\t\t\tsetError(\"Fehler beim Laden der Veranstaltungsdetails\");\n\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\tsetShowingPreview(true);\n\t\t} finally {\n\t\t\tsetIsLoadingEventDetails(false);\n\t\t}\n\t};\n\n\tconst handleShowAllEvents = async () => {\n\t\tsetIsLoadingShowAll(true);\n\t\ttry {\n\t\t\t// In next-events mode, we should show the event instance selection for the single event type\n\t\t\tif (isSingleEventTypeMode && selectedEventType) {\n\t\t\t\tsetShouldRenderInstanceSelection(true);\n\t\t\t\tsetIsLoadingEventInstances(true);\n\t\t\t\tawait loadEventInstances(selectedEventType.id);\n\t\t\t\tsetCurrentStep(\"eventInstances\");\n\t\t\t\tsetShowingPreview(false);\n\t\t\t\tsetIsLoadingEventInstances(false);\n\t\t\t} else {\n\t\t\t\t// Fallback to event types view\n\t\t\t\tawait loadEventTypes();\n\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\tsetShowingPreview(false);\n\t\t\t}\n\t\t} finally {\n\t\t\tsetIsLoadingShowAll(false);\n\t\t}\n\t};\n\n\t// Helper: determine skeleton count based on config for EventTypeSelection\n\tconst getSkeletonCount = () => {\n\t\tif (config.eventTypeIds && Array.isArray(config.eventTypeIds)) {\n\t\t\treturn config.eventTypeIds.length;\n\t\t}\n\t\tif (config.eventTypeId) {\n\t\t\treturn 1;\n\t\t}\n\t\t// For categoryId or unknown, fallback to 4\n\t\treturn 4;\n\t};\n\n\t// Error state\n\tif (error) {\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t<div style={{ maxWidth: \"600px\", margin: \"0 auto\", padding: \"24px\" }}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-surface-color)\",\n\t\t\t\t\t\t\tborder: `1px solid var(--bw-error-color)`,\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tpadding: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Error Icon */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: \"64px\",\n\t\t\t\t\t\t\t\theight: \"64px\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-error-color)\",\n\t\t\t\t\t\t\t\tborderRadius: \"50%\",\n\t\t\t\t\t\t\t\tmargin: \"0 auto var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\tfontSize: \"32px\",\n\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t⚠️\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Error Title */}\n\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-xl)\",\n\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-color)\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-small) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tBuchungen vorübergehend nicht verfügbar\n\t\t\t\t\t\t</h2>\n\n\t\t\t\t\t\t{/* Error Message */}\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\tlineHeight: \"1.6\",\n\t\t\t\t\t\t\t\tmargin: \"0 0 var(--bw-spacing-large) 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tEs gab ein Problem beim Laden der verfügbaren Termine. Bitte versuche es in einem\n\t\t\t\t\t\t\tMoment erneut.\n\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t{/* Technical Error Details (collapsed by default) */}\n\t\t\t\t\t\t<details\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-large)\",\n\t\t\t\t\t\t\t\ttextAlign: \"left\",\n\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-background-color)\",\n\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius-small)\",\n\t\t\t\t\t\t\t\tpadding: \"5px\",\n\t\t\t\t\t\t\t\tborder: `1px solid var(--bw-border-color)`,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<summary\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"500\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\tmarginBottom: \"var(--bw-spacing-small)\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tTechnische Details anzeigen\n\t\t\t\t\t\t\t</summary>\n\t\t\t\t\t\t\t<code\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"block\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"monospace\",\n\t\t\t\t\t\t\t\t\twordBreak: \"break-word\",\n\t\t\t\t\t\t\t\t\twhiteSpace: \"pre-wrap\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{error}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</details>\n\n\t\t\t\t\t\t{/* Action Buttons */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tgap: \"var(--bw-spacing)\",\n\t\t\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\t\t\tflexWrap: \"wrap\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={() => window.location.reload()}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\t\tpadding: \"12px 24px\",\n\t\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size)\",\n\t\t\t\t\t\t\t\t\tfontWeight: \"600\",\n\t\t\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t\t\ttransition: \"all 0.2s ease\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\tgap: \"8px\",\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"0.9\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(-1px)\";\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\te.currentTarget.style.opacity = \"1\";\n\t\t\t\t\t\t\t\t\te.currentTarget.style.transform = \"translateY(0)\";\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span style={{ fontSize: \"16px\" }}>🔄</span>\n\t\t\t\t\t\t\t\tSeite neu laden\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Help Text */}\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tcolor: \"var(--bw-text-muted)\",\n\t\t\t\t\t\t\t\tfontSize: \"var(--bw-font-size-small)\",\n\t\t\t\t\t\t\t\tmargin: \"var(--bw-spacing-large) 0 0 0\",\n\t\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFalls das Problem weiterhin besteht, kontaktiere bitte den Support.\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\t// Success state\n\tif (isSuccess) {\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t<BookingSuccessModal\n\t\t\t\t\tisOpen={isSuccess}\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetIsSuccess(false);\n\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t// Reset lazy loading flags\n\t\t\t\t\t\tsetShouldRenderInstanceSelection(false);\n\t\t\t\t\t\tsetShouldRenderBookingForm(false);\n\t\t\t\t\t}}\n\t\t\t\t\tbookingData={successData}\n\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\tformData={successData.formData}\n\t\t\t\t\tconfig={config}\n\t\t\t\t/>\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\t// Main view based on view mode\n\tif (viewMode === \"next-events\" && showingPreview) {\n\t\t// Next events preview mode\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t<NextEventsPreview\n\t\t\t\t\tevents={upcomingEvents}\n\t\t\t\t\tonEventSelect={handleUpcomingEventSelect}\n\t\t\t\t\tonShowAll={handleShowAllEvents}\n\t\t\t\t\tshowAllButtonText={nextEventsSettings.showAllButtonText}\n\t\t\t\t\tshowAllButton={nextEventsSettings.showAllButton}\n\t\t\t\t\tisLoadingEventDetails={isLoadingEventDetails}\n\t\t\t\t\tisLoadingShowAll={isLoadingShowAll}\n\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t/>\n\t\t\t\t{/* PERFORMANCE OPTIMIZATION: Only render when needed */}\n\t\t\t\t{shouldRenderBookingForm && eventDetails && (\n\t\t\t\t\t<BookingForm\n\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\t\tstripePromise={stripePromise}\n\t\t\t\t\t\tonSuccess={handleBookingSuccess}\n\t\t\t\t\t\tonError={handleBookingError}\n\t\t\t\t\t\tonBackToEventInstances={() => {\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonBackToEventTypes={() => {\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\t\tselectedEventInstance={selectedEventInstance}\n\t\t\t\t\t\tisOpen={currentStep === \"booking\" && !!eventDetails}\n\t\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\tif (viewMode === \"next-events\" && !showingPreview && currentStep === \"eventInstances\") {\n\t\t// Show all events for the single event type\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t{shouldRenderInstanceSelection && (\n\t\t\t\t\t<EventInstanceSelection\n\t\t\t\t\t\teventInstances={eventInstances}\n\t\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\t\tonEventInstanceSelect={handleEventInstanceSelect}\n\t\t\t\t\t\tonBackToEventTypes={() => {\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tisOpen={currentStep === \"eventInstances\"}\n\t\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tisLoadingEventInstances={isLoadingEventInstances}\n\t\t\t\t\t\tisLoadingEventDetails={isLoadingEventDetails}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\tif (viewMode === \"button\" && (isSingleEventTypeMode || isDirectInstanceMode)) {\n\t\t// Button mode - show button that opens sidebar/booking directly\n\t\treturn (\n\t\t\t<StyleProvider config={config}>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tminHeight: \"120px\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tbackgroundColor: \"var(--bw-highlight-color)\",\n\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\tpadding: \"16px 32px\",\n\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\tborderRadius: \"var(--bw-border-radius)\",\n\t\t\t\t\t\t\tfontSize: \"18px\",\n\t\t\t\t\t\t\tfontWeight: 600,\n\t\t\t\t\t\t\tfontFamily: \"var(--bw-font-family)\",\n\t\t\t\t\t\t\tboxShadow: \"var(--bw-shadow-md)\",\n\t\t\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (isDirectInstanceMode) {\n\t\t\t\t\t\t\t\tsetCurrentStep(\"booking\");\n\t\t\t\t\t\t\t\tsetShouldRenderBookingForm(true);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetSidebarOpen(true);\n\t\t\t\t\t\t\t\tsetShouldRenderInstanceSelection(true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{config.buttonText ||\n\t\t\t\t\t\t\t(isDirectInstanceMode ? \"Jetzt buchen\" : \"Jetzt Termin auswählen\")}\n\t\t\t\t\t</button>\n\t\t\t\t\t{/* PERFORMANCE OPTIMIZATION: Only render when needed */}\n\t\t\t\t\t{shouldRenderInstanceSelection && (\n\t\t\t\t\t\t<EventInstanceSelection\n\t\t\t\t\t\t\teventInstances={eventInstances}\n\t\t\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\t\t\tonEventInstanceSelect={handleEventInstanceSelect}\n\t\t\t\t\t\t\tonBackToEventTypes={() => setSidebarOpen(false)}\n\t\t\t\t\t\t\tisOpen={sidebarOpen}\n\t\t\t\t\t\t\tonClose={() => setSidebarOpen(false)}\n\t\t\t\t\t\t\tisLoadingEventInstances={isLoadingEventInstances}\n\t\t\t\t\t\t\tisLoadingEventDetails={isLoadingEventDetails}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{shouldRenderBookingForm && eventDetails && (\n\t\t\t\t\t\t<BookingForm\n\t\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\t\t\tstripePromise={stripePromise}\n\t\t\t\t\t\t\tonSuccess={handleBookingSuccess}\n\t\t\t\t\t\t\tonError={handleBookingError}\n\t\t\t\t\t\t\tonBackToEventInstances={() =>\n\t\t\t\t\t\t\t\tsetCurrentStep(isDirectInstanceMode ? \"eventTypes\" : \"eventInstances\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonBackToEventTypes={() => setSidebarOpen(false)}\n\t\t\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\t\t\tselectedEventInstance={selectedEventInstance}\n\t\t\t\t\t\t\tisOpen={currentStep === \"booking\" && !!eventDetails}\n\t\t\t\t\t\t\tonClose={() => setCurrentStep(isDirectInstanceMode ? \"eventTypes\" : \"eventInstances\")}\n\t\t\t\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t);\n\t}\n\n\t// Cards mode (default) - show event type selection\n\tconst cardsView = (\n\t\t<EventTypeSelection\n\t\t\teventTypes={eventTypes}\n\t\t\tonEventTypeSelect={handleEventTypeSelect}\n\t\t\tisLoading={isLoading}\n\t\t\tskeletonCount={getSkeletonCount()}\n\t\t/>\n\t);\n\n\t// Determine the correct back handlers based on view mode\n\tconst getBackHandlers = () => {\n\t\tif (viewMode === \"next-events\") {\n\t\t\treturn {\n\t\t\t\tonBackToEventInstances: () => {\n\t\t\t\t\tsetCurrentStep(\"eventInstances\");\n\t\t\t\t\tsetShowingPreview(false);\n\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t},\n\t\t\t\tonBackToEventTypes: () => {\n\t\t\t\t\tsetShowingPreview(true);\n\t\t\t\t\tsetCurrentStep(\"eventTypes\");\n\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t},\n\t\t\t\tonClose: () => {\n\t\t\t\t\tsetCurrentStep(\"eventInstances\");\n\t\t\t\t\tsetShowingPreview(false);\n\t\t\t\t\tsetEventDetails(null);\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\t// Default handlers for cards and button modes\n\t\treturn {\n\t\t\tonBackToEventInstances: handleBackToEventInstances,\n\t\t\tonBackToEventTypes: handleBackToEventTypes,\n\t\t\tonClose: handleBackToEventInstances,\n\t\t};\n\t};\n\n\tconst backHandlers = getBackHandlers();\n\n\treturn (\n\t\t<StyleProvider config={config}>\n\t\t\t{cardsView}\n\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Only render when needed */}\n\t\t\t{shouldRenderInstanceSelection && (\n\t\t\t\t<EventInstanceSelection\n\t\t\t\t\teventInstances={eventInstances}\n\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\tonEventInstanceSelect={handleEventInstanceSelect}\n\t\t\t\t\tonBackToEventTypes={handleBackToEventTypes}\n\t\t\t\t\tisOpen={currentStep === \"eventInstances\"}\n\t\t\t\t\tonClose={handleBackToEventTypes}\n\t\t\t\t\tisLoadingEventInstances={isLoadingEventInstances}\n\t\t\t\t\tisLoadingEventDetails={isLoadingEventDetails}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{/* PERFORMANCE OPTIMIZATION: Only render when needed */}\n\t\t\t{shouldRenderBookingForm && eventDetails && (\n\t\t\t\t<BookingForm\n\t\t\t\t\tconfig={config}\n\t\t\t\t\teventDetails={eventDetails}\n\t\t\t\t\tstripePromise={stripePromise}\n\t\t\t\t\tonSuccess={handleBookingSuccess}\n\t\t\t\t\tonError={handleBookingError}\n\t\t\t\t\tonBackToEventInstances={backHandlers.onBackToEventInstances}\n\t\t\t\t\tonBackToEventTypes={backHandlers.onBackToEventTypes}\n\t\t\t\t\tselectedEventType={selectedEventType}\n\t\t\t\t\tselectedEventInstance={selectedEventInstance}\n\t\t\t\t\tisOpen={currentStep === \"booking\" && !!eventDetails}\n\t\t\t\t\tonClose={backHandlers.onClose}\n\t\t\t\t\tsystemConfig={systemConfig}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</StyleProvider>\n\t);\n}\n","import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport {\n\tUniversalBookingConfig,\n\tUniversalBookingWidget,\n} from \"./components/UniversalBookingWidget\";\n\n// Export React component for npm usage\nexport { UniversalBookingWidget } from \"./components/UniversalBookingWidget\";\nexport type {\n\tUniversalBookingConfig,\n\tEventType,\n\tEventInstance,\n\tEventDetails,\n} from \"./components/UniversalBookingWidget\";\n\n// Export init function for vanilla JS usage\nexport function init({\n\ttarget,\n\tconfig,\n}: { target: string | HTMLElement; config: UniversalBookingConfig }) {\n\tconst container = typeof target === \"string\" ? document.querySelector(target) : target;\n\n\tif (!container) {\n\t\tthrow new Error(`Target element not found: ${target}`);\n\t}\n\n\t// Clear any existing content\n\tcontainer.innerHTML = \"\";\n\n\t// Check if we're in a browser environment\n\tif (typeof window === \"undefined\") {\n\t\tthrow new Error(\"Widget can only be initialized in a browser environment\");\n\t}\n\n\t// For UMD builds, React and ReactDOM are globals\n\tconst ReactLib =\n\t\ttypeof window !== \"undefined\" && (window as any).React ? (window as any).React : React;\n\tconst ReactDOMLib =\n\t\ttypeof window !== \"undefined\" && (window as any).ReactDOM\n\t\t\t? (window as any).ReactDOM\n\t\t\t: { createRoot };\n\n\t// Use createRoot if available, otherwise fall back to render\n\tif (ReactDOMLib.createRoot) {\n\t\tconst root = ReactDOMLib.createRoot(container);\n\t\troot.render(ReactLib.createElement(UniversalBookingWidget, { config }));\n\n\t\treturn {\n\t\t\tunmount: () => root.unmount(),\n\t\t};\n\t}\n\n\tif (ReactDOMLib.render) {\n\t\t// Fallback for older React versions\n\t\tReactDOMLib.render(ReactLib.createElement(UniversalBookingWidget, { config }), container);\n\n\t\treturn {\n\t\t\tunmount: () => ReactDOMLib.unmountComponentAtNode(container),\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t\"ReactDOM.createRoot or ReactDOM.render not found. Please check your React version.\",\n\t);\n}\n"],"names":["_jsx","React__default","React","t","e","o","r","defaultErrorMap","IconCheck","IconWave","_jsxs","_Fragment","require$$0","this","useStripe","useElements","PaymentElement","Elements","z.object","z.string","z.number","z.array","z\n .boolean","zodResolver"],"mappings":";;;;;;AAAA,IAAI,MAAM,GAAG,0BAA0B;AACvC,IAAI,YAAY,GAAG,2CAA2C;AAC9D,IAAI,uBAAuB,GAAG,kJAAkJ;AAChL,IAAI,UAAU,GAAG,SAAS,UAAU,GAAG;AACvC,EAAE,IAAI,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;;AAEjF,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;;AAE3B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AACxC,MAAM;AACN;;AAEA,IAAI,OAAO,MAAM;AACjB;;AAEA,EAAE,OAAO,IAAI;AACb,CAAC;;AAED,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;AACjD,EAAE,IAAI,WAAW,GAA4E,EAAE;AAC/F,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,EAAE,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AACpD,EAAE,IAAI,UAAU,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI;;AAEjD,EAAE,IAAI,CAAC,UAAU,EAAE;AACnB,IAAI,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC;AAClG;;AAEA,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;AAChC,EAAE,OAAO,MAAM;AACf,CAAC;;AAED,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE;AAClE,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;AAC3C,IAAI;AACJ;;AAEA,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1B,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,SAAS,EAAE;AACf,GAAG,CAAC;AACJ,CAAC;;AAED,IAAI,aAAa,GAAG,IAAI;AACxB,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,cAAc,GAAG,IAAI;;AAEzB,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,MAAM,EAAE;AACvC,EAAE,OAAO,YAAY;AACrB,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AACjD,GAAG;AACH,CAAC;;AAED,IAAI,MAAM,GAAG,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;AAC9C,EAAE,OAAO,YAAY;AACrB,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE;AACvB,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAClD;AACA,GAAG;AACH,CAAC;;AAED,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,MAAM,EAAE;AAC7C;AACA,EAAE,IAAI,aAAa,KAAK,IAAI,EAAE;AAC9B,IAAI,OAAO,aAAa;AACxB;;AAEA,EAAE,aAAa,GAAG,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;AACzD,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AAC1E;AACA;AACA,MAAM,OAAO,CAAC,IAAI,CAAC;AACnB,MAAM;AACN;;AAMA,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE;AACvB,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5B,MAAM;AACN;;AAEA,IAAI,IAAI;AACR,MAAM,IAAI,MAAM,GAAG,UAAU,EAAE;;AAE/B,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB,MAAM,IAAI,CAAC,MAAM,EAAE;AAC1B,QAAQ,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACrC,OAAO,MAAM,IAAI,MAAM,IAAI,cAAc,KAAK,IAAI,IAAI,eAAe,KAAK,IAAI,EAAE;AAChF,QAAQ,IAAI,kBAAkB;;AAE9B;AACA,QAAQ,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC;AAC1D,QAAQ,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC7D;;AAEA,QAAQ,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,MAAM,IAAI,IAAI,kBAAkB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC;AAC5I,QAAQ,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACrC;;AAEA,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;AAC9C,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;AACvC,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC;AACrD,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC;AACvD,KAAK,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,MAAM,CAAC,KAAK,CAAC;AACnB,MAAM;AACN;AACA,GAAG,CAAC,CAAC;;AAEL,EAAE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,EAAE;AACjD,IAAI,aAAa,GAAG,IAAI;AACxB,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC,GAAG,CAAC;AACJ,CAAC;AACD,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;AACnE,EAAE,IAAI,WAAW,KAAK,IAAI,EAAE;AAC5B,IAAI,OAAO,IAAI;AACf;;AAEA,EAAE,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;AACjD,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;AACpC,EAAE,OAAO,MAAM;AACf,CAAC,CAAC;;AAEF,IAAI,eAAe;AACnB,IAAI,UAAU,GAAG,KAAK;;AAEtB,IAAI,gBAAgB,GAAG,SAAS,gBAAgB,GAAG;AACnD,EAAE,IAAI,eAAe,EAAE;AACvB,IAAI,OAAO,eAAe;AAC1B;;AAEA,EAAE,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,EAAE;AAC/D;AACA,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC,GAAG,CAAC;AACJ,EAAE,OAAO,eAAe;AACxB,CAAC,CAAC;AACF;;;AAGA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY;AACnC,EAAE,OAAO,gBAAgB,EAAE;AAC3B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,EAAE;AAC7B,EAAE,IAAI,CAAC,UAAU,EAAE;AACnB,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB;AACA,CAAC,CAAC;AACF,IAAI,UAAU,GAAG,SAAS,UAAU,GAAG;AACvC,EAAE,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;AAC3F,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;AAChC;;AAEA,EAAE,UAAU,GAAG,IAAI;AACnB,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;;AAE7B,EAAE,OAAO,gBAAgB,EAAE,CAAC,IAAI,CAAC,UAAU,WAAW,EAAE;AACxD,IAAI,OAAO,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;AACnD,GAAG,CAAC;AACJ,CAAC;;ACrKD;AACA,MAAM,YAAY,GAAG,aAAa,CAAsB,EAAE,CAAC;AAE3D;AACO,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC;AAEvD;AACA,MAAM,kBAAkB,GAA6B;;AAEpD,IAAA,OAAO,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,CAAC;AAC/D,IAAA,SAAS,EAAE,CAAC,aAAa,EAAE,mBAAmB,EAAE,sBAAsB,CAAC;AACvE,IAAA,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;AAC3D,IAAA,UAAU,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,uBAAuB,CAAC;AAC3E,IAAA,UAAU,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,uBAAuB,CAAC;AAC3E,IAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC;AACnD,IAAA,iBAAiB,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,4BAA4B,CAAC;AACjG,IAAA,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;AAC3D,IAAA,KAAK,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,kBAAkB,CAAC;AACvD,IAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC;;AAEnD,IAAA,oBAAoB,EAAE,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;AAC5E,IAAA,sBAAsB,EAAE,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;AAClF,IAAA,mBAAmB,EAAE,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;AACzE,IAAA,aAAa,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC;AACvD,IAAA,wBAAwB,EAAE,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;AACxF,IAAA,OAAO,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;AACrC,IAAA,kBAAkB,EAAE,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;AACtE,IAAA,SAAS,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;AAC3C,IAAA,oBAAoB,EAAE,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;;AAE5E,IAAA,OAAO,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC;AACpD,IAAA,OAAO,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,UAAU,CAAC;IACrD,KAAK,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,CAAC;CAC7D;AAED;AACA,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAE,aAAsB,KAAY;;AAEnF,IAAA,IACC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxB,QAAA,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC1B,QAAA,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC1B,QAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5B,QAAA,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzB,QAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EACvB;AACD,QAAA,OAAO,UAAU;;;AAIlB,IAAA,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,CAAC;IACnD,IAAI,YAAY,EAAE;;QAEjB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACrE,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;;AAG7D,YAAA,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE;gBAClC,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;gBACxD,IAAI,KAAK,EAAE;;AAEV,oBAAA,IAAI,KAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,EAAE;wBACjE,OAAO,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,CAAG;;AAEvB,oBAAA,OAAO,KAAK;;;;;;IAOhB,OAAO,aAAa,IAAI,UAAU;AACnC,CAAC;AAED;AACA,MAAM,MAAM,GAAwB;;AAEnC,IAAA,aAAa,EAAE;QACd,SAAS,EAAE,qBAAqB;QAChC,UAAU,EAAE,uBAAuB;QACnC,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,MAAM;AACpB,QAAA,UAAU,EAAE,gCAAgC;AAC5C,KAAA;AACD,IAAA,eAAe,EAAE;QAChB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,UAAU,EAAE,2BAA2B;AACvC,KAAA;AACD,IAAA,eAAe,EAAE;QAChB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,8BAA8B;AAC1C,KAAA;AACD,IAAA,oBAAoB,EAAE;QACrB,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,sCAAsC;AAClD,KAAA;AACD,IAAA,YAAY,EAAE;QACb,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,8BAA8B;AAC1C,KAAA;AACD,IAAA,aAAa,EAAE;QACd,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,8BAA8B;AAC1C,KAAA;AACD,IAAA,aAAa,EAAE;QACd,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,UAAU,EAAE,sCAAsC;AAClD,KAAA;AACD,IAAA,aAAa,EAAE;AACd,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,0BAA0B;AACtC,KAAA;AACD,IAAA,aAAa,EAAE;QACd,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,SAAS;QACrB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,UAAU,EAAE,iBAAiB;AAC7B,KAAA;AACD,IAAA,gBAAgB,EAAE;QACjB,SAAS,EAAE,SAAS;AACpB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;AAChB,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,UAAU,EAAE,yBAAyB;AACrC,KAAA;CACD;AAEM,MAAM,aAAa,GAAG,CAAC,EAC7B,MAAM,EACN,QAAQ,GAIR,KAAI;;IAEJ,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEnD,SAAS,CAAC,MAAK;QACd,aAAa,CAAC,IAAI,CAAC;KACnB,EAAE,EAAE,CAAC;;AAGN,IAAA,MAAM,YAAY,GAAG,OAAO,CAAC,MAAK;AACjC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,IAAI,aAAa;QAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC;AAEhE,QAAA,MAAM,WAAW,GAAG,CAAC,KAAyB,EAAE,QAAgB,KAAY;AAC3E,YAAA,IAAI,CAAC,KAAK;AAAE,gBAAA,OAAO,QAAQ;;YAG3B,IAAI,CAAC,UAAU,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;AAC7C,gBAAA,OAAO,QAAQ;;;AAIhB,YAAA,OAAO,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC7C,SAAC;AAED,QAAA,MAAM,eAAe,GAAG,CAAC,KAAyB,EAAE,QAAgB,KAAY;AAC/E,YAAA,IAAI,CAAC,KAAK;AAAE,gBAAA,OAAO,QAAQ;AAC3B,YAAA,MAAM,SAAS,GAA2B;AACzC,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,EAAE,EAAE,KAAK;AACT,gBAAA,EAAE,EAAE,KAAK;AACT,gBAAA,EAAE,EAAE,MAAM;AACV,gBAAA,EAAE,EAAE,MAAM;AACV,gBAAA,IAAI,EAAE,QAAQ;aACd;AACD,YAAA,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK;AACjC,SAAC;AAED,QAAA,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,OAAe,KAAY;AAC7D,YAAA,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC1B,gBAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACzC,gBAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACzC,gBAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;gBACzC,OAAO,CAAA,KAAA,EAAQ,CAAC,CAAA,EAAA,EAAK,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA,CAAG;;AAE5C,YAAA,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC5B,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;AAElE,YAAA,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC5B,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA,CAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;AAElE,YAAA,OAAO,KAAK;AACb,SAAC;AAED,QAAA,MAAM,QAAQ,GAAG,CAAC,GAAW,KAAY;;YAExC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACzB,OAAO,aAAa,CAAC;;AAEtB,YAAA,IAAI,CAAC,GAAQ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,gBAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;YAEzC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,CAAE;YACrB,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5D,SAAC;AAED,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE;AAClC,QAAA,MAAM,WAAW,GAAG;YACnB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC;YACjE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;YACpE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;YAC3D,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;YAClD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;YACxD,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;YAC3D,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;YAC3D,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;SACrD;AACD,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC;QAErF,OAAO;YACN,sBAAsB,EAAE,WAAW,CAAC,SAAS;AAC7C,YAAA,0BAA0B,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC;YAC3D,uBAAuB,EAAE,WAAW,CAAC,UAAU;YAC/C,oBAAoB,EAAE,WAAW,CAAC,OAAO;YACzC,iBAAiB,EAAE,WAAW,CAAC,IAAI;YACnC,iBAAiB,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;YACpD,mBAAmB,EAAE,WAAW,CAAC,MAAM;YACvC,oBAAoB,EAAE,WAAW,CAAC,OAAO;YACzC,oBAAoB,EAAE,WAAW,CAAC,OAAO;YACzC,kBAAkB,EAAE,WAAW,CAAC,KAAK;AACrC,YAAA,oBAAoB,EAAE,YAAY;YAClC,0BAA0B,EAAE,CAAA,KAAA,EAAQ,YAAY,CAAA,OAAA,CAAS;AACzD,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,oBAAoB,EAAE,MAAM;AAC5B,YAAA,kBAAkB,EAAE,MAAM,CAAC,UAAU,IAAI,aAAa,CAAC,UAAU;AACjE,YAAA,gBAAgB,EAAE,MAAM;AACxB,YAAA,sBAAsB,EAAE,MAAM;AAC9B,YAAA,gBAAgB,EAAE,yEAAyE;AAC3F,YAAA,gBAAgB,EAAE,uEAAuE;;YAEzF,sBAAsB,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC;YAC9D,uBAAuB,EAAE,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;YAChE,kBAAkB,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;AACrD,YAAA,WAAW,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,SAAS,KAAK,YAAY,GAAG,MAAM,GAAG,OAAO;SACpE;AACzB,KAAC,EAAE;AACF,QAAA,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,MAAM,EAAE,SAAS;QACxB,MAAM,CAAC,MAAM,EAAE,UAAU;QACzB,MAAM,CAAC,MAAM,EAAE,OAAO;QACtB,MAAM,CAAC,MAAM,EAAE,IAAI;QACnB,MAAM,CAAC,MAAM,EAAE,MAAM;QACrB,MAAM,CAAC,MAAM,EAAE,OAAO;QACtB,MAAM,CAAC,MAAM,EAAE,OAAO;QACtB,MAAM,CAAC,MAAM,EAAE,KAAK;AACpB,QAAA,MAAM,CAAC,YAAY;AACnB,QAAA,MAAM,CAAC,UAAU;AACjB,QAAA,UAAU;AACV,KAAA,CAAC;IAEF,QACCA,IAAC,YAAY,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,YAAY,EAAA,QAAA,EACzCA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,YAAY,EAAE,SAAS,EAAC,0BAA0B,YAC5D,QAAQ,EAAA,CACJ,EAAA,CACiB;AAE1B,CAAC;;AC3UD;AACA,MAAM,UAAU,GAAG;AAClB,IAAA,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAChE,IAAA,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AACrE,IAAA,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE;AACzE,IAAA,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;AACzE,IAAA,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE;AAC1E,IAAA,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE;AAC5E,IAAA,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;AACzE,IAAA,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;AACzE,IAAA,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;CAChE;AAEV;;;AAGG;AACH,SAAS,SAAS,CAAC,UAAkB,EAAE,WAAmB,eAAe,EAAA;;AAExE,IAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;AACrE,QAAA,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC;;;;AAK5B,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;;AAGjC,IAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE;AAC3B,IAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,EAAE;IAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,GAAG,KAAK;;AAG1D,IAAA,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,cAAc,CAAC;AAEpF,IAAA,OAAO,YAAY;AACpB;AAEA;;;AAGG;AACH,SAAS,iBAAiB,CAAC,QAAgB,EAAA;AAC1C,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC;;AAGrE,IAAA,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAChF,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAEvD,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE;AAClD;AAEA;;AAEG;AACI,MAAM,cAAc,GAAG,CAC7B,UAAqC,EACrC,QAAA,GAAyB,KAAK,EAC9B,OAAA,GAGI,EAAE,KACK;IACX,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE;AACpD,QAAA,OAAO,KAAK;;AAGb,IAAA,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;IACzD,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,OAAO;;AAGvD,IAAA,MAAM,UAAU,GAAG,UAAU,GAAG,EAAE,IAAI,QAAQ;IAE9C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC/C,QAAA,qBAAqB,EAAE,QAAQ;AAC/B,QAAA,qBAAqB,EAAE,QAAQ;AAC/B,KAAA,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;IAErB,IAAI,QAAQ,EAAE;AACb,QAAA,OAAO,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,QAAQ,EAAE;;IAGlC,IAAI,UAAU,EAAE;AACf,QAAA,OAAO,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,MAAM,EAAE;;AAGhC,IAAA,OAAO,SAAS;AACjB,CAAC;AAED;;AAEG;AACI,MAAM,UAAU,GAAG,CACzB,IAAmB,EACnB,QAAA,GAAmB,eAAe,EAClC,MAAA,GAA0B,IAAI,KACnB;AACX,IAAA,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,IAAI;AAE3E,IAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACpB,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC1C,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,IAAI,EAAE,SAAS;AACf,SAAA,CAAC;;AAGH,IAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC1C,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,SAAS;AACf,KAAA,CAAC;AACH,CAAC;AAED;;AAEG;AACI,MAAM,UAAU,GAAG,CACzB,IAAmB,EACnB,QAAA,GAAmB,eAAe,EAClC,MAAA,GAA0B,IAAI,KACnB;AACX,IAAA,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,IAAI;AAE3E,IAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACpB,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC1C,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,MAAM,EAAE,IAAI;AACZ,SAAA,CAAC;;AAGH,IAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC1C,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,KAAK;AACb,KAAA,CAAC;AACH,CAAC;AAeD;;AAEG;AACI,MAAM,aAAa,GAAG,CAC5B,IAAmB,EACnB,QAAA,GAAmB,eAAe,EAClC,MAAA,GAA0B,IAAI,KACnB;AACX,IAAA,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,IAAI;AAE3E,IAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACpB,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC1C,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,OAAO,EAAE,OAAO;AAChB,SAAA,CAAC;;AAGH,IAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC1C,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,OAAO,EAAE,OAAO;AAChB,KAAA,CAAC;AACH,CAAC;AAED;;AAEG;AACI,MAAM,eAAe,GAAG,CAC9B,IAAmB,EACnB,QAAA,GAAmB,eAAe,EAClC,MAAA,GAA0B,IAAI,KACnB;AACX,IAAA,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,IAAI;AAE3E,IAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACpB,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC1C,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,IAAI,EAAE,SAAS;AACf,SAAA,CAAC;;AAGH,IAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE;AAC1C,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,SAAS;AACf,KAAA,CAAC;AACH,CAAC;AAEM,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,QAAgB,KAAY;AACtE,IAAA,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;;IAE9B,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO;AAChF,IAAA,OAAO,CAAA,EAAG,iBAAiB,CAAA,IAAA,EAAO,QAAQ,EAAE;AAC7C,CAAC;AAED;AACO,MAAM,kBAAkB,GAAG,CAAC,UAAkC,KAA4B;;AAEhG,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAClC,QAAA,OAAO,UAAU;;IAGlB,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC7D,KAAe,EAAE,GAAG,UAAU;;AAG9B,IAAA,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;AACrF,IAAA,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;AAC3E,IAAA,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AACzE,IAAA,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AAE5E,IAAA,IAAI,eAAe,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE;;AAE9D,QAAA,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU;QACjF,OAAO;AACN,YAAA,GAAG,IAAI;AACP,YAAA,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC;SACxC;;AAGF,IAAA,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE;;AAEpD,QAAA,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU;QACtF,OAAO;AACN,YAAA,GAAG,IAAI;AACP,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;SAC9B;;AAGF,IAAA,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE;;AAEtD,QAAA,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU;QACrF,OAAO;AACN,YAAA,GAAG,IAAI;AACP,YAAA,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;SAChC;;IAGF,IAAI,YAAY,EAAE;;QAEjB,MAAM,OAAO,GAAG;aACd,KAAK,CAAC,GAAG;AACT,aAAA,GAAG,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AAC7B,aAAA,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACnC,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEvB,YAAA,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU;YACpF,OAAO;AACN,gBAAA,GAAG,IAAI;AACP,gBAAA,YAAY,EAAE,OAAO;aACrB;;;AAIH,IAAA,OAAO,UAAU;AAClB,CAAC;AAED;AACO,MAAM,gBAAgB,GAAG,CAAC,MAA8B,KAAI;IAClE,OAAO;AACN,QAAA,cAAc,EAAE,kBAAkB;KAClC;AACF,CAAC;AAEM,MAAM,iBAAiB,GAAG,CAAC,MAA8B,EAAE,cAAmB,KAAI;IACxF,OAAO;AACN,QAAA,GAAG,cAAc;QACjB,cAAc,EAAE,MAAM,CAAC,cAAc;KACrC;AACF,CAAC;;ACpSD,IAAI,eAAe,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,UAAU;;AAE9D,IAAI,YAAY,GAAG,CAAC,KAAK,KAAK,KAAK,YAAY,IAAI;;AAEnD,IAAI,iBAAiB,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI;;AAEhD,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ;AACzD,IAAI,QAAQ,GAAG,CAAC,KAAK,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACzB,IAAI,YAAY,CAAC,KAAK,CAAC;AACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;;AAExB,IAAI,aAAa,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACxD,MAAM,eAAe,CAAC,KAAK,CAAC,MAAM;AAClC,UAAU,KAAK,CAAC,MAAM,CAAC;AACvB,UAAU,KAAK,CAAC,MAAM,CAAC;AACvB,MAAM,KAAK;;AAEX,IAAI,iBAAiB,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI;;AAEvF,IAAI,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;AAE5E,IAAI,aAAa,GAAG,CAAC,UAAU,KAAK;AACpC,IAAI,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,SAAS;AACpF,IAAI,QAAQ,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC;AACpF,CAAC;;AAED,IAAI,KAAK,GAAG,OAAO,MAAM,KAAK,WAAW;AACzC,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,WAAW;AAC7C,IAAI,OAAO,QAAQ,KAAK,WAAW;;AAEnC,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,IAAI,IAAI,IAAI;AACZ,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACvC,IAAI,MAAM,kBAAkB,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAG,IAAI,YAAY,QAAQ,GAAG,KAAK;AACjG,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE;AAC9B,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;AAC7B;AACA,SAAS,IAAI,IAAI,YAAY,GAAG,EAAE;AAClC,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AAC5B;AACA,SAAS,IAAI,EAAE,KAAK,KAAK,IAAI,YAAY,IAAI,IAAI,kBAAkB,CAAC,CAAC;AACrE,SAAS,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;AACrC,QAAQ,IAAI,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE;AAChC,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAC9C,YAAY,IAAI,GAAG,IAAI;AACvB;AACA,aAAa;AACb,YAAY,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpC,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC9C,oBAAoB,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,IAAI;AACf;;AAEA,IAAI,KAAK,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE1C,IAAI,WAAW,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,SAAS;;AAE5C,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;;AAE1E,IAAI,YAAY,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;AAEpF,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK;AAC1C,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpC,QAAQ,OAAO,YAAY;AAC3B;AACA,IAAI,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,iBAAiB,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;AAChJ,IAAI,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK;AAC7C,UAAU,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AAClC,cAAc;AACd,cAAc,MAAM,CAAC,IAAI;AACzB,UAAU,MAAM;AAChB,CAAC;;AAED,IAAI,SAAS,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,SAAS;;AAErD,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK;AACnC,IAAI,IAAI,KAAK,GAAG,EAAE;AAClB,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC;AAC9D,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;AAClC,IAAI,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC;AAChC,IAAI,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;AAC7B,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;AACnC,QAAQ,IAAI,QAAQ,GAAG,KAAK;AAC5B,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC;AACxC,YAAY,QAAQ;AACpB,gBAAgB,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ;AAC5D,sBAAsB;AACtB,sBAAsB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;AACjD,0BAA0B;AAC1B,0BAA0B,EAAE;AAC5B;AACA,QAAQ,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW,EAAE;AACjF,YAAY;AACZ;AACA,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC9B,QAAQ,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AAC5B;AACA,CAAC;;AAED,MAAM,MAAM,GAAG;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,SAAS,EAAE,UAEf,CAAC;AACD,MAAM,eAAe,GAAG;AACxB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,GAAG,EAAE,KAAK;AACd,CAAC;AACD,MAAM,sBAAsB,GAAG;AAC/B,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,QAAQ,EAAE,UAAU;AACxB,CAAC;;AAED,MAAM,eAAe,GAAGC,uBAAc,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1D,eAAe,CAAC,WAAW,GAAG,iBAAiB;;AAmE/C,IAAI,iBAAiB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI,KAAK;AACpF,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,aAAa,EAAE,OAAO,CAAC,cAAc;AAC7C,KAAK;AACL,IAAI,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACjC,QAAQ,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AAC3C,YAAY,GAAG,EAAE,MAAM;AACvB,gBAAgB,MAAM,IAAI,GAAG,GAAG;AAChC,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,GAAG,EAAE;AAC3E,oBAAoB,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG;AAClF;AAEA,gBAAgB,OAAO,SAAS,CAAC,IAAI,CAAC;AACtC,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,OAAO,MAAM;AACjB,CAAC;;AAED,MAAM,yBAAyB,GAAG,OAAO,MAAM,KAAK,WAAW,GAAGC,cAAK,CAAC,eAAe,GAAGA,cAAK,CAAC,SAAS;;AAgEzG,IAAI,QAAQ,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ;;AAEnD,IAAI,mBAAmB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,KAAK;AACjF,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACzB,QAAQ,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3C,QAAQ,OAAO,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC;AACnD;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9G;AACA,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxC,IAAI,OAAO,UAAU;AACrB,CAAC;;AAqVD,IAAI,YAAY,GAAG,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK;AAC9E,MAAM;AACN,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;AACvB,QAAQ,KAAK,EAAE;AACf,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AAC7E,YAAY,CAAC,IAAI,GAAG,OAAO,IAAI,IAAI;AACnC,SAAS;AACT;AACA,MAAM,EAAE;;AAER,IAAI,qBAAqB,GAAG,CAAC,KAAK,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;;AAE/E,IAAI,aAAa,GAAG,MAAM;AAC1B,IAAI,IAAI,UAAU,GAAG,EAAE;AACvB,IAAI,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK;AAC5B,QAAQ,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;AAC3C,YAAY,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACjD;AACA,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,CAAC,QAAQ,KAAK;AACpC,QAAQ,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,QAAQ,OAAO;AACf,YAAY,WAAW,EAAE,MAAM;AAC/B,gBAAgB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;AACrE,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,MAAM;AAC9B,QAAQ,UAAU,GAAG,EAAE;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,IAAI,SAAS,GAAG;AACxB,YAAY,OAAO,UAAU;AAC7B,SAAS;AACT,QAAQ,IAAI;AACZ,QAAQ,SAAS;AACjB,QAAQ,WAAW;AACnB,KAAK;AACL,CAAC;;AAED,IAAI,WAAW,GAAG,CAAC,KAAK,KAAK,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;;AAE7E,SAAS,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,OAAO,EAAE,EAAE;AACxE,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;AACtD,QAAQ,OAAO,OAAO,KAAK,OAAO;AAClC;AACA,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;AACxD,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE;AACtD;AACA,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AACvC,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC1E,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;AAClC,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;AAClC,IAAI,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AAC7B,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;AACjC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAClC,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,IAAI,GAAG,KAAK,KAAK,EAAE;AAC3B,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;AACrC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC;AACzD,iBAAiB,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClD,iBAAiB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3D,kBAAkB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB;AAC1D,kBAAkB,IAAI,KAAK,IAAI,EAAE;AACjC,gBAAgB,OAAO,KAAK;AAC5B;AACA;AACA;AACA,IAAI,OAAO,IAAI;AACf;;AAEA,IAAI,aAAa,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;;AAE5E,IAAI,WAAW,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,MAAM;;AAEtD,IAAI,UAAU,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,UAAU;;AAEvD,IAAI,aAAa,GAAG,CAAC,KAAK,KAAK;AAC/B,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,aAAa,GAAG,CAAC;AACjD,IAAI,QAAQ,KAAK;AACjB,SAAS,KAAK,IAAI,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;AAClF,CAAC;;AAED,IAAI,gBAAgB,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC;;AAEtE,IAAI,YAAY,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO;;AAExD,IAAI,iBAAiB,GAAG,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC;;AAE1E,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW;;AAEzD,SAAS,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE;AACrC,IAAI,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM;AACjD,IAAI,IAAI,KAAK,GAAG,CAAC;AACjB,IAAI,OAAO,KAAK,GAAG,MAAM,EAAE;AAC3B,QAAQ,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5E;AACA,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AAC3B,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/D,YAAY,OAAO,KAAK;AACxB;AACA;AACA,IAAI,OAAO,IAAI;AACf;AACA,SAAS,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE;AAC7B,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI;AACpC,UAAU;AACV,UAAU,KAAK,CAAC,IAAI;AACpB,cAAc,CAAC,IAAI;AACnB,cAAc,YAAY,CAAC,IAAI,CAAC;AAChC,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AAC5E,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AAClC,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;AAC5B,IAAI,IAAI,WAAW,EAAE;AACrB,QAAQ,OAAO,WAAW,CAAC,GAAG,CAAC;AAC/B;AACA,IAAI,IAAI,KAAK,KAAK,CAAC;AACnB,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC;AAC7D,aAAa,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;AACxE,QAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzC;AACA,IAAI,OAAO,MAAM;AACjB;;AAEA,IAAI,iBAAiB,GAAG,CAAC,IAAI,KAAK;AAClC,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAC5B,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACnC,YAAY,OAAO,IAAI;AACvB;AACA;AACA,IAAI,OAAO,KAAK;AAChB,CAAC;;AAED,SAAS,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE;AAC5C,IAAI,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACjD,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE;AAC7C,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAChC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,iBAAiB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACxE,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE;AAChE,gBAAgB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACvD;AACA,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AACpD,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI;AAClC;AACA;AACA;AACA,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,+BAA+B,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE;AAClF,IAAI,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACjD,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,iBAAiB,EAAE;AAC7C,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAChC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,iBAAiB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AACxE,gBAAgB,IAAI,WAAW,CAAC,UAAU,CAAC;AAC3C,oBAAoB,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7D,oBAAoB,qBAAqB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACxE,0BAA0B,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACvD,0BAA0B,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3D;AACA,qBAAqB;AACrB,oBAAoB,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAChJ;AACA;AACA,iBAAiB;AACjB,gBAAgB,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AACnF;AACA;AACA;AACA,IAAI,OAAO,qBAAqB;AAChC;AACA,IAAI,cAAc,GAAG,CAAC,aAAa,EAAE,UAAU,KAAK,+BAA+B,CAAC,aAAa,EAAE,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;;AAE3I,MAAM,aAAa,GAAG;AACtB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,OAAO,EAAE,KAAK;AAClB,CAAC;AACD,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AAClD,IAAI,gBAAgB,GAAG,CAAC,OAAO,KAAK;AACpC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChC,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAY,MAAM,MAAM,GAAG;AAC3B,iBAAiB,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ;AAChF,iBAAiB,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC;AAC9C,YAAY,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9D;AACA,QAAQ,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjD;AACA,gBAAgB,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;AACjF,sBAAsB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK;AAC5E,0BAA0B;AAC1B,0BAA0B,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI;AAClE,sBAAsB;AACtB,cAAc,aAAa;AAC3B;AACA,IAAI,OAAO,aAAa;AACxB,CAAC;;AAED,IAAI,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,WAAW,CAAC,KAAK;AAC9F,MAAM;AACN,MAAM;AACN,UAAU,KAAK,KAAK;AACpB,cAAc;AACd,cAAc;AACd,kBAAkB,CAAC;AACnB,kBAAkB;AAClB,UAAU,WAAW,IAAI,QAAQ,CAAC,KAAK;AACvC,cAAc,IAAI,IAAI,CAAC,KAAK;AAC5B,cAAc;AACd,kBAAkB,UAAU,CAAC,KAAK;AAClC,kBAAkB,KAAK;;AAEvB,MAAM,aAAa,GAAG;AACtB,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,KAAK,EAAE,IAAI;AACf,CAAC;AACD,IAAI,aAAa,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO;AACtD,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC;AAC/E,UAAU;AACV,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,KAAK,EAAE,MAAM,CAAC,KAAK;AAC/B;AACA,UAAU,QAAQ,EAAE,aAAa;AACjC,MAAM,aAAa;;AAEnB,SAAS,aAAa,CAAC,EAAE,EAAE;AAC3B,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG;AACtB,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;AAC1B,QAAQ,OAAO,GAAG,CAAC,KAAK;AACxB;AACA,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;AAC3B,QAAQ,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK;AAC3C;AACA,IAAI,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAQ,OAAO,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC;AACjE;AACA,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;AAC9B,QAAQ,OAAO,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK;AAC9C;AACA,IAAI,OAAO,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;AACjF;;AAEA,IAAI,kBAAkB,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,yBAAyB,KAAK;AAC5F,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;AACpC,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACxC,QAAQ,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;AAC5C;AACA,IAAI,OAAO;AACX,QAAQ,YAAY;AACpB,QAAQ,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC;AAC/B,QAAQ,MAAM;AACd,QAAQ,yBAAyB;AACjC,KAAK;AACL,CAAC;;AAED,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,KAAK,YAAY,MAAM;;AAEhD,IAAI,YAAY,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;AAC7C,MAAM;AACN,MAAM,OAAO,CAAC,IAAI;AAClB,UAAU,IAAI,CAAC;AACf,UAAU,QAAQ,CAAC,IAAI;AACvB,cAAc,OAAO,CAAC,IAAI,CAAC,KAAK;AAChC,kBAAkB,IAAI,CAAC,KAAK,CAAC;AAC7B,kBAAkB,IAAI,CAAC;AACvB,cAAc,IAAI;;AAElB,IAAI,kBAAkB,GAAG,CAAC,IAAI,MAAM;AACpC,IAAI,UAAU,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,eAAe,CAAC,QAAQ;AAC1D,IAAI,QAAQ,EAAE,IAAI,KAAK,eAAe,CAAC,MAAM;AAC7C,IAAI,UAAU,EAAE,IAAI,KAAK,eAAe,CAAC,QAAQ;AACjD,IAAI,OAAO,EAAE,IAAI,KAAK,eAAe,CAAC,GAAG;AACzC,IAAI,SAAS,EAAE,IAAI,KAAK,eAAe,CAAC,SAAS;AACjD,CAAC,CAAC;;AAEF,MAAM,cAAc,GAAG,eAAe;AACtC,IAAI,oBAAoB,GAAG,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc;AAC/D,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ;AAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC3C,QAAQ,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc;AACnE,SAAS,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC1C,YAAY,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC;;AAErI,IAAI,aAAa,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK;AAC9C,KAAK,OAAO,CAAC,QAAQ;AACrB,QAAQ,OAAO,CAAC,GAAG;AACnB,QAAQ,OAAO,CAAC,GAAG;AACnB,QAAQ,OAAO,CAAC,SAAS;AACzB,QAAQ,OAAO,CAAC,SAAS;AACzB,QAAQ,OAAO,CAAC,OAAO;AACvB,QAAQ,OAAO,CAAC,QAAQ,CAAC;;AAEzB,IAAI,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,KAAK,CAAC,WAAW;AAC3D,KAAK,MAAM,CAAC,QAAQ;AACpB,QAAQ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;AACxE,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;AAEzD,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,KAAK;AAC3E,IAAI,KAAK,MAAM,GAAG,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1D,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;AACtC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK;AACjD,YAAY,IAAI,EAAE,EAAE;AACpB,gBAAgB,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE;AACrF,oBAAoB,OAAO,IAAI;AAC/B;AACA,qBAAqB,IAAI,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC3E,oBAAoB,OAAO,IAAI;AAC/B;AACA,qBAAqB;AACrB,oBAAoB,IAAI,qBAAqB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;AACrE,wBAAwB;AACxB;AACA;AACA;AACA,iBAAiB,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE;AAC7C,gBAAgB,IAAI,qBAAqB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;AACjE,oBAAoB;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ,CAAC;;AAED,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAClD,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AACnC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,OAAO;AACf,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,SAAS;AACT;AACA,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACjC,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE;AACzB,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;AAC7C,QAAQ,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AACjD,QAAQ,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE;AAClE,YAAY,OAAO,EAAE,IAAI,EAAE;AAC3B;AACA,QAAQ,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE;AAC3C,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,KAAK,EAAE,UAAU;AACjC,aAAa;AACb;AACA,QAAQ,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;AACnE,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;AACzC,gBAAgB,KAAK,EAAE,UAAU,CAAC,IAAI;AACtC,aAAa;AACb;AACA,QAAQ,KAAK,CAAC,GAAG,EAAE;AACnB;AACA,IAAI,OAAO;AACX,QAAQ,IAAI;AACZ,KAAK;AACL;;AAEA,IAAI,qBAAqB,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,KAAK;AACzF,IAAI,eAAe,CAAC,aAAa,CAAC;AAClC,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa;AAChD,IAAI,QAAQ,aAAa,CAAC,SAAS,CAAC;AACpC,QAAQ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM;AAC5E,QAAQ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,eAAe,CAAC,GAAG,CAAC;AACjE,aAAa,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;;AAED,IAAI,qBAAqB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,KAAK,CAAC,IAAI;AAC9D,IAAI,CAAC,UAAU;AACf,IAAI,IAAI,KAAK,UAAU;AACvB,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,WAAW;AACjE,SAAS;AACT,cAAc,WAAW,KAAK;AAC9B,cAAc,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC;AAChD,gBAAgB,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;;AAEpD,IAAI,cAAc,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,KAAK;AACpF,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,KAAK;AACpB;AACA,SAAS,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;AAC7C,QAAQ,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC;AAC1C;AACA,SAAS,IAAI,WAAW,GAAG,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACpE,QAAQ,OAAO,CAAC,WAAW;AAC3B;AACA,SAAS,IAAI,WAAW,GAAG,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACxE,QAAQ,OAAO,WAAW;AAC1B;AACA,IAAI,OAAO,IAAI;AACf,CAAC;;AAED,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;;AAExF,IAAI,yBAAyB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK;AACzD,IAAI,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrE,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9C,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC;AACvC,IAAI,OAAO,MAAM;AACjB,CAAC;;AAED,IAAI,SAAS,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;;AAE1C,SAAS,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,UAAU,EAAE;AAC1D,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC;AACzB,SAAS,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1D,SAAS,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACxC,QAAQ,OAAO;AACf,YAAY,IAAI;AAChB,YAAY,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,EAAE;AACpD,YAAY,GAAG;AACf,SAAS;AACT;AACA;;AAEA,IAAI,kBAAkB,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc;AAChG,MAAM;AACN,MAAM;AACN,QAAQ,KAAK,EAAE,cAAc;AAC7B,QAAQ,OAAO,EAAE,EAAE;AACnB,KAAK;;AAEL,IAAI,aAAa,GAAG,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,YAAY,KAAK;AACxI,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,GAAG,GAAG,KAAK,CAAC,EAAE;AAC5H,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAChD,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;AACzC,IAAI,MAAM,iBAAiB,GAAG,CAAC,OAAO,KAAK;AAC3C,QAAQ,IAAI,yBAAyB,IAAI,QAAQ,CAAC,cAAc,EAAE;AAClE,YAAY,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AAC/E,YAAY,QAAQ,CAAC,cAAc,EAAE;AACrC;AACA,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC;AACrC,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC;AAC3C,IAAI,MAAM,iBAAiB,GAAG,OAAO,IAAI,UAAU;AACnD,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,aAAa,IAAI,WAAW,CAAC,GAAG,CAAC;AACvD,QAAQ,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAC9B,QAAQ,WAAW,CAAC,UAAU,CAAC;AAC/B,SAAS,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;AAChD,QAAQ,UAAU,KAAK,EAAE;AACzB,SAAS,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACzD,IAAI,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,CAAC;AAC5F,IAAI,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,GAAG,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,sBAAsB,CAAC,SAAS,KAAK;AACxK,QAAQ,MAAM,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,gBAAgB;AACvE,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG;AACtB,YAAY,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO;AAC/C,YAAY,OAAO;AACnB,YAAY,GAAG;AACf,YAAY,GAAG,iBAAiB,CAAC,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;AACxE,SAAS;AACT,KAAK;AACL,IAAI,IAAI;AACR,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AACpD,UAAU,QAAQ;AAClB,aAAa,CAAC,CAAC,iBAAiB,KAAK,OAAO,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAC9E,iBAAiB,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;AACtD,iBAAiB,UAAU,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC/D,iBAAiB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;AAC5D,QAAQ,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ;AACrD,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ;AACpD,cAAc,kBAAkB,CAAC,QAAQ,CAAC;AAC1C,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG;AAC1B,gBAAgB,IAAI,EAAE,sBAAsB,CAAC,QAAQ;AACrD,gBAAgB,OAAO;AACvB,gBAAgB,GAAG,EAAE,QAAQ;AAC7B,gBAAgB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC9E,aAAa;AACb,YAAY,IAAI,CAAC,wBAAwB,EAAE;AAC3C,gBAAgB,iBAAiB,CAAC,OAAO,CAAC;AAC1C,gBAAgB,OAAO,KAAK;AAC5B;AACA;AACA;AACA,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE;AAC1E,QAAQ,IAAI,SAAS;AACrB,QAAQ,IAAI,SAAS;AACrB,QAAQ,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC;AACjD,QAAQ,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC;AACjD,QAAQ,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AAClE,YAAY,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa;AACjD,iBAAiB,UAAU,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;AACvD,YAAY,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACrD,gBAAgB,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC,KAAK;AACzD;AACA,YAAY,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACrD,gBAAgB,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC,KAAK;AACzD;AACA;AACA,aAAa;AACb,YAAY,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AACrE,YAAY,MAAM,iBAAiB,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;AAChG,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM;AAC7C,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM;AAC7C,YAAY,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AACzD,gBAAgB,SAAS,GAAG;AAC5B,sBAAsB,iBAAiB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK;AACvF,sBAAsB;AACtB,0BAA0B,UAAU,GAAG,SAAS,CAAC;AACjD,0BAA0B,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC/D;AACA,YAAY,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AACzD,gBAAgB,SAAS,GAAG;AAC5B,sBAAsB,iBAAiB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK;AACvF,sBAAsB;AACtB,0BAA0B,UAAU,GAAG,SAAS,CAAC;AACjD,0BAA0B,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC/D;AACA;AACA,QAAQ,IAAI,SAAS,IAAI,SAAS,EAAE;AACpC,YAAY,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAC,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC;AACvI,YAAY,IAAI,CAAC,wBAAwB,EAAE;AAC3C,gBAAgB,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AACtD,gBAAgB,OAAO,KAAK;AAC5B;AACA;AACA;AACA,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS;AAC/B,QAAQ,CAAC,OAAO;AAChB,SAAS,QAAQ,CAAC,UAAU,CAAC,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AAC/E,QAAQ,MAAM,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC;AAC7D,QAAQ,MAAM,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC;AAC7D,QAAQ,MAAM,SAAS,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC;AACnE,YAAY,UAAU,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK;AACtD,QAAQ,MAAM,SAAS,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC;AACnE,YAAY,UAAU,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK;AACtD,QAAQ,IAAI,SAAS,IAAI,SAAS,EAAE;AACpC,YAAY,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;AACzF,YAAY,IAAI,CAAC,wBAAwB,EAAE;AAC3C,gBAAgB,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AACtD,gBAAgB,OAAO,KAAK;AAC5B;AACA;AACA;AACA,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE;AACrD,QAAQ,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAC5E,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AACtE,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG;AAC1B,gBAAgB,IAAI,EAAE,sBAAsB,CAAC,OAAO;AACpD,gBAAgB,OAAO;AACvB,gBAAgB,GAAG;AACnB,gBAAgB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC7E,aAAa;AACb,YAAY,IAAI,CAAC,wBAAwB,EAAE;AAC3C,gBAAgB,iBAAiB,CAAC,OAAO,CAAC;AAC1C,gBAAgB,OAAO,KAAK;AAC5B;AACA;AACA;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;AAClC,YAAY,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;AACjE,YAAY,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpE,YAAY,IAAI,aAAa,EAAE;AAC/B,gBAAgB,KAAK,CAAC,IAAI,CAAC,GAAG;AAC9B,oBAAoB,GAAG,aAAa;AACpC,oBAAoB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC;AAChG,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,wBAAwB,EAAE;AAC/C,oBAAoB,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC;AAC5D,oBAAoB,OAAO,KAAK;AAChC;AACA;AACA;AACA,aAAa,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACrC,YAAY,IAAI,gBAAgB,GAAG,EAAE;AACrC,YAAY,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AACxC,gBAAgB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,wBAAwB,EAAE;AACnF,oBAAoB;AACpB;AACA,gBAAgB,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC;AAClH,gBAAgB,IAAI,aAAa,EAAE;AACnC,oBAAoB,gBAAgB,GAAG;AACvC,wBAAwB,GAAG,aAAa;AACxC,wBAAwB,GAAG,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC;AACxE,qBAAqB;AACrB,oBAAoB,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC;AAC5D,oBAAoB,IAAI,wBAAwB,EAAE;AAClD,wBAAwB,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB;AACtD;AACA;AACA;AACA,YAAY,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE;AAClD,gBAAgB,KAAK,CAAC,IAAI,CAAC,GAAG;AAC9B,oBAAoB,GAAG,EAAE,QAAQ;AACjC,oBAAoB,GAAG,gBAAgB;AACvC,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,wBAAwB,EAAE;AAC/C,oBAAoB,OAAO,KAAK;AAChC;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,IAAI,CAAC;AAC3B,IAAI,OAAO,KAAK;AAChB,CAAC;;AAED,MAAM,cAAc,GAAG;AACvB,IAAI,IAAI,EAAE,eAAe,CAAC,QAAQ;AAClC,IAAI,cAAc,EAAE,eAAe,CAAC,QAAQ;AAC5C,IAAI,gBAAgB,EAAE,IAAI;AAC1B,CAAC;AACD,SAAS,iBAAiB,CAAC,KAAK,GAAG,EAAE,EAAE;AACvC,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,GAAG,cAAc;AACzB,QAAQ,GAAG,KAAK;AAChB,KAAK;AACL,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,WAAW,EAAE,CAAC;AACtB,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;AACrD,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,kBAAkB,EAAE,KAAK;AACjC,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,WAAW,EAAE,EAAE;AACvB,QAAQ,gBAAgB,EAAE,EAAE;AAC5B,QAAQ,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;AACrC,QAAQ,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;AAC5C,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,EAAE;AACtB,IAAI,IAAI,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM;AACrF,UAAU,WAAW,CAAC,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI;AACpE,UAAU,EAAE;AACZ,IAAI,IAAI,WAAW,GAAG,QAAQ,CAAC;AAC/B,UAAU;AACV,UAAU,WAAW,CAAC,cAAc,CAAC;AACrC,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,KAAK,EAAE,KAAK;AACpB,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,KAAK,EAAE,IAAI,GAAG,EAAE;AACxB,QAAQ,QAAQ,EAAE,IAAI,GAAG,EAAE;AAC3B,QAAQ,OAAO,EAAE,IAAI,GAAG,EAAE;AAC1B,QAAQ,KAAK,EAAE,IAAI,GAAG,EAAE;AACxB,QAAQ,KAAK,EAAE,IAAI,GAAG,EAAE;AACxB,KAAK;AACL,IAAI,IAAI,kBAAkB;AAC1B,IAAI,IAAI,KAAK,GAAG,CAAC;AACjB,IAAI,MAAM,eAAe,GAAG;AAC5B,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,gBAAgB,EAAE,KAAK;AAC/B,QAAQ,aAAa,EAAE,KAAK;AAC5B,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,MAAM,EAAE,KAAK;AACrB,KAAK;AACL,IAAI,IAAI,wBAAwB,GAAG;AACnC,QAAQ,GAAG,eAAe;AAC1B,KAAK;AACL,IAAI,MAAM,SAAS,GAAG;AACtB,QAAQ,KAAK,EAAE,aAAa,EAAE;AAC9B,QAAQ,KAAK,EAAE,aAAa,EAAE;AAC9B,KAAK;AACL,IAAI,MAAM,gCAAgC,GAAG,QAAQ,CAAC,YAAY,KAAK,eAAe,CAAC,GAAG;AAC1F,IAAI,MAAM,QAAQ,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK;AAC7C,QAAQ,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAQ,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC1C,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,OAAO,iBAAiB,KAAK;AACnD,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC9B,aAAa,eAAe,CAAC,OAAO;AACpC,gBAAgB,wBAAwB,CAAC,OAAO;AAChD,gBAAgB,iBAAiB,CAAC,EAAE;AACpC,YAAY,MAAM,OAAO,GAAG,QAAQ,CAAC;AACrC,kBAAkB,aAAa,CAAC,CAAC,MAAM,UAAU,EAAE,EAAE,MAAM;AAC3D,kBAAkB,MAAM,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC;AAC/D,YAAY,IAAI,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE;AAChD,gBAAgB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC,oBAAoB,OAAO;AAC3B,iBAAiB,CAAC;AAClB;AACA;AACA,KAAK;AACL,IAAI,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK;AACzD,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC9B,aAAa,eAAe,CAAC,YAAY;AACzC,gBAAgB,eAAe,CAAC,gBAAgB;AAChD,gBAAgB,wBAAwB,CAAC,YAAY;AACrD,gBAAgB,wBAAwB,CAAC,gBAAgB,CAAC,EAAE;AAC5D,YAAY,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK;AAClE,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB;AACpB,0BAA0B,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,EAAE,YAAY;AAC7E,0BAA0B,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC;AAClE;AACA,aAAa,CAAC;AACd,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,gBAAgB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;AAC7D,gBAAgB,YAAY,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC;AACzE,aAAa,CAAC;AACd;AACA,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,0BAA0B,GAAG,IAAI,KAAK;AAC3H,QAAQ,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAClD,YAAY,MAAM,CAAC,MAAM,GAAG,IAAI;AAChC,YAAY,IAAI,0BAA0B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE;AACjF,gBAAgB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AACpF,gBAAgB,eAAe,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC;AAClE;AACA,YAAY,IAAI,0BAA0B;AAC1C,gBAAgB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE;AAC7D,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AACzF,gBAAgB,eAAe,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;AACvE,gBAAgB,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;AACxD;AACA,YAAY,IAAI,CAAC,eAAe,CAAC,aAAa;AAC9C,gBAAgB,wBAAwB,CAAC,aAAa;AACtD,gBAAgB,0BAA0B;AAC1C,gBAAgB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,EAAE;AACpE,gBAAgB,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AACvG,gBAAgB,eAAe,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC;AACrF;AACA,YAAY,IAAI,eAAe,CAAC,WAAW,IAAI,wBAAwB,CAAC,WAAW,EAAE;AACrF,gBAAgB,UAAU,CAAC,WAAW,GAAG,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC;AACpF;AACA,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,gBAAgB,IAAI;AACpB,gBAAgB,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;AAChD,gBAAgB,WAAW,EAAE,UAAU,CAAC,WAAW;AACnD,gBAAgB,MAAM,EAAE,UAAU,CAAC,MAAM;AACzC,gBAAgB,OAAO,EAAE,UAAU,CAAC,OAAO;AAC3C,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1C;AACA,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AAC1C,QAAQ,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AAC3C,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,MAAM,EAAE,UAAU,CAAC,MAAM;AACrC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,CAAC,MAAM,KAAK;AACnC,QAAQ,UAAU,CAAC,MAAM,GAAG,MAAM;AAClC,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,MAAM,EAAE,UAAU,CAAC,MAAM;AACrC,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,KAAK;AAC5E,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACxC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;AAC/G,YAAY,WAAW,CAAC,YAAY,CAAC;AACrC,iBAAiB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC;AAC3C,gBAAgB;AAChB,kBAAkB,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,oBAAoB,GAAG,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;AACtG,kBAAkB,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;AACnD,YAAY,MAAM,CAAC,KAAK,IAAI,SAAS,EAAE;AACvC;AACA,KAAK;AACL,IAAI,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,KAAK;AAC9F,QAAQ,IAAI,iBAAiB,GAAG,KAAK;AACrC,QAAQ,IAAI,eAAe,GAAG,KAAK;AACnC,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,IAAI;AAChB,SAAS;AACT,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChC,YAAY,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE;AAC7C,gBAAgB,IAAI,eAAe,CAAC,OAAO,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACjF,oBAAoB,eAAe,GAAG,UAAU,CAAC,OAAO;AACxD,oBAAoB,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS,EAAE;AACrE,oBAAoB,iBAAiB,GAAG,eAAe,KAAK,MAAM,CAAC,OAAO;AAC1E;AACA,gBAAgB,MAAM,sBAAsB,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC;AAC/F,gBAAgB,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;AACrE,gBAAgB;AAChB,sBAAsB,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI;AACxD,sBAAsB,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7D,gBAAgB,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW;AAC3D,gBAAgB,iBAAiB;AACjC,oBAAoB,iBAAiB;AACrC,yBAAyB,CAAC,eAAe,CAAC,WAAW;AACrD,4BAA4B,wBAAwB,CAAC,WAAW;AAChE,4BAA4B,eAAe,KAAK,CAAC,sBAAsB,CAAC;AACxE;AACA,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,MAAM,sBAAsB,GAAG,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC;AAClF,gBAAgB,IAAI,CAAC,sBAAsB,EAAE;AAC7C,oBAAoB,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC;AACpE,oBAAoB,MAAM,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa;AACnE,oBAAoB,iBAAiB;AACrC,wBAAwB,iBAAiB;AACzC,6BAA6B,CAAC,eAAe,CAAC,aAAa;AAC3D,gCAAgC,wBAAwB,CAAC,aAAa;AACtE,gCAAgC,sBAAsB,KAAK,WAAW,CAAC;AACvE;AACA;AACA,YAAY,iBAAiB,IAAI,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7E;AACA,QAAQ,OAAO,iBAAiB,GAAG,MAAM,GAAG,EAAE;AAC9C,KAAK;AACL,IAAI,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,KAAK;AACtE,QAAQ,MAAM,kBAAkB,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;AAC/D,QAAQ,MAAM,iBAAiB,GAAG,CAAC,eAAe,CAAC,OAAO,IAAI,wBAAwB,CAAC,OAAO;AAC9F,YAAY,SAAS,CAAC,OAAO,CAAC;AAC9B,YAAY,UAAU,CAAC,OAAO,KAAK,OAAO;AAC1C,QAAQ,IAAI,QAAQ,CAAC,UAAU,IAAI,KAAK,EAAE;AAC1C,YAAY,kBAAkB,GAAG,QAAQ,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1E,YAAY,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC;AACnD;AACA,aAAa;AACb,YAAY,YAAY,CAAC,KAAK,CAAC;AAC/B,YAAY,kBAAkB,GAAG,IAAI;AACrC,YAAY;AACZ,kBAAkB,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK;AACpD,kBAAkB,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;AAChD;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,kBAAkB;AAC/E,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC;AACtC,YAAY,iBAAiB,EAAE;AAC/B,YAAY,MAAM,gBAAgB,GAAG;AACrC,gBAAgB,GAAG,UAAU;AAC7B,gBAAgB,IAAI,iBAAiB,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC/E,gBAAgB,MAAM,EAAE,UAAU,CAAC,MAAM;AACzC,gBAAgB,IAAI;AACpB,aAAa;AACb,YAAY,UAAU,GAAG;AACzB,gBAAgB,GAAG,UAAU;AAC7B,gBAAgB,GAAG,gBAAgB;AACnC,aAAa;AACb,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAClD;AACA,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK;AACvC,QAAQ,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC;AACvC,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AAC3L,QAAQ,mBAAmB,CAAC,IAAI,CAAC;AACjC,QAAQ,OAAO,MAAM;AACrB,KAAK;AACL,IAAI,MAAM,2BAA2B,GAAG,OAAO,KAAK,KAAK;AACzD,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC;AAClD,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtC,gBAAgB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AAC/C,gBAAgB;AAChB,sBAAsB,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK;AACxD,sBAAsB,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;AACpD;AACA;AACA,aAAa;AACb,YAAY,UAAU,CAAC,MAAM,GAAG,MAAM;AACtC;AACA,QAAQ,OAAO,MAAM;AACrB,KAAK;AACL,IAAI,MAAM,wBAAwB,GAAG,OAAO,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAG;AACpF,QAAQ,KAAK,EAAE,IAAI;AACnB,KAAK,KAAK;AACV,QAAQ,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;AACnC,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;AACtC,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK;AACnD,gBAAgB,IAAI,EAAE,EAAE;AACxB,oBAAoB,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;AACtE,oBAAoB,MAAM,iBAAiB,GAAG,KAAK,CAAC,EAAE,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;AACxF,oBAAoB,IAAI,iBAAiB,IAAI,eAAe,CAAC,gBAAgB,EAAE;AAC/E,wBAAwB,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACzD;AACA,oBAAoB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE,QAAQ,CAAC,yBAAyB,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;AAChN,oBAAoB,IAAI,iBAAiB,IAAI,eAAe,CAAC,gBAAgB,EAAE;AAC/E,wBAAwB,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD;AACA,oBAAoB,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC7C,wBAAwB,OAAO,CAAC,KAAK,GAAG,KAAK;AAC7C,wBAAwB,IAAI,oBAAoB,EAAE;AAClD,4BAA4B;AAC5B;AACA;AACA,oBAAoB,CAAC,oBAAoB;AACzC,yBAAyB,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI;AAChD,8BAA8B;AAC9B,kCAAkC,yBAAyB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI;AAClG,kCAAkC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;AACrF,8BAA8B,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAChE;AACA,gBAAgB,CAAC,aAAa,CAAC,UAAU,CAAC;AAC1C,qBAAqB,MAAM,wBAAwB,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;AAC/F;AACA;AACA,QAAQ,OAAO,OAAO,CAAC,KAAK;AAC5B,KAAK;AACL,IAAI,MAAM,gBAAgB,GAAG,MAAM;AACnC,QAAQ,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AAC3C,YAAY,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAC5C,YAAY,KAAK;AACjB,iBAAiB,KAAK,CAAC,EAAE,CAAC;AAC1B,sBAAsB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7D,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1C,gBAAgB,UAAU,CAAC,IAAI,CAAC;AAChC;AACA,QAAQ,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE;AAClC,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ;AACxD,SAAS,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;AACrD,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;AACpD,IAAI,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,KAAK,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE;AAC5F,QAAQ,IAAI,MAAM,CAAC;AACnB,cAAc;AACd,cAAc,WAAW,CAAC,YAAY;AACtC,kBAAkB;AAClB,kBAAkB,QAAQ,CAAC,KAAK;AAChC,sBAAsB,EAAE,CAAC,KAAK,GAAG,YAAY;AAC7C,sBAAsB,YAAY,CAAC;AACnC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC;AAC9B,IAAI,MAAM,cAAc,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,GAAG,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpK,IAAI,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK;AACzD,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACxC,QAAQ,IAAI,UAAU,GAAG,KAAK;AAC9B,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,cAAc,GAAG,KAAK,CAAC,EAAE;AAC3C,YAAY,IAAI,cAAc,EAAE;AAChC,gBAAgB,CAAC,cAAc,CAAC,QAAQ;AACxC,oBAAoB,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAClF,gBAAgB,UAAU;AAC1B,oBAAoB,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,KAAK;AAChF,0BAA0B;AAC1B,0BAA0B,KAAK;AAC/B,gBAAgB,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC1D,oBAAoB,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvI;AACA,qBAAqB,IAAI,cAAc,CAAC,IAAI,EAAE;AAC9C,oBAAoB,IAAI,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC7D,wBAAwB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK;AACrE,4BAA4B,IAAI,CAAC,WAAW,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AACtF,gCAAgC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC/D,oCAAoC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC;AACjH;AACA,qCAAqC;AACrC,oCAAoC,WAAW,CAAC,OAAO;AACvD,wCAAwC,UAAU,KAAK,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,UAAU;AACxF;AACA;AACA,yBAAyB,CAAC;AAC1B;AACA,yBAAyB;AACzB,wBAAwB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,MAAM,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;AACrH;AACA;AACA,qBAAqB,IAAI,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC1D,oBAAoB,cAAc,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AACjD;AACA,qBAAqB;AACrB,oBAAoB,cAAc,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU;AACzD,oBAAoB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE;AAClD,wBAAwB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C,4BAA4B,IAAI;AAChC,4BAA4B,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AAC5D,yBAAyB,CAAC;AAC1B;AACA;AACA;AACA;AACA,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW;AACnD,YAAY,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;AACjG,QAAQ,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;AAC/C,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,KAAK;AAChD,QAAQ,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;AACtC,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AACjD,gBAAgB;AAChB;AACA,YAAY,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC9C,YAAY,MAAM,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ;AACnD,YAAY,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;AACjD,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,gBAAgB,QAAQ,CAAC,UAAU,CAAC;AACpC,iBAAiB,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACpC,gBAAgB,CAAC,YAAY,CAAC,UAAU;AACxC,kBAAkB,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO;AAC1D,kBAAkB,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC;AAC/D;AACA,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACxC,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACnD,QAAQ,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC;AAC7C,QAAQ,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC;AAC1C,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,gBAAgB,IAAI;AACpB,gBAAgB,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AAChD,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,eAAe,CAAC,OAAO;AACxC,gBAAgB,eAAe,CAAC,WAAW;AAC3C,gBAAgB,wBAAwB,CAAC,OAAO;AAChD,gBAAgB,wBAAwB,CAAC,WAAW;AACpD,gBAAgB,OAAO,CAAC,WAAW,EAAE;AACrC,gBAAgB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC,oBAAoB,IAAI;AACxB,oBAAoB,WAAW,EAAE,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC;AAC5E,oBAAoB,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;AACxD,iBAAiB,CAAC;AAClB;AACA;AACA,aAAa;AACb,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU;AAC/D,kBAAkB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO;AACrD,kBAAkB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;AAC1D;AACA,QAAQ,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;AAC1E,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,SAAS;AACjD,YAAY,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AAC5C,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK;AACtC,QAAQ,MAAM,CAAC,KAAK,GAAG,IAAI;AAC3B,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AACnC,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI;AAC9B,QAAQ,IAAI,mBAAmB,GAAG,IAAI;AACtC,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACxC,QAAQ,MAAM,0BAA0B,GAAG,CAAC,UAAU,KAAK;AAC3D,YAAY,mBAAmB;AAC/B,gBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;AACxC,qBAAqB,YAAY,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7E,oBAAoB,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5E,QAAQ,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,cAAc,CAAC;AACrF,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,KAAK;AACrB,YAAY,IAAI,OAAO;AACvB,YAAY,MAAM,UAAU,GAAG,MAAM,CAAC;AACtC,kBAAkB,aAAa,CAAC,KAAK,CAAC,EAAE;AACxC,kBAAkB,aAAa,CAAC,KAAK,CAAC;AACtC,YAAY,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS;AAC7F,YAAY,MAAM,oBAAoB,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;AAClE,gBAAgB,CAAC,QAAQ,CAAC,QAAQ;AAClC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;AAC7C,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;AAC9B,gBAAgB,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,WAAW,EAAE,yBAAyB,EAAE,0BAA0B,CAAC;AAC/J,YAAY,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC;AAChE,YAAY,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC;AAC9C,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AACzD,gBAAgB,kBAAkB,IAAI,kBAAkB,CAAC,CAAC,CAAC;AAC3D;AACA,iBAAiB,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE;AACxC,gBAAgB,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxC;AACA,YAAY,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC;AACjF,YAAY,MAAM,YAAY,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,OAAO;AACtE,YAAY,CAAC,WAAW;AACxB,gBAAgB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,EAAE,KAAK,CAAC,IAAI;AACpC,oBAAoB,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AACpD,iBAAiB,CAAC;AAClB,YAAY,IAAI,oBAAoB,EAAE;AACtC,gBAAgB,IAAI,eAAe,CAAC,OAAO,IAAI,wBAAwB,CAAC,OAAO,EAAE;AACjF,oBAAoB,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;AACpD,wBAAwB,IAAI,WAAW,EAAE;AACzC,4BAA4B,SAAS,EAAE;AACvC;AACA;AACA,yBAAyB,IAAI,CAAC,WAAW,EAAE;AAC3C,wBAAwB,SAAS,EAAE;AACnC;AACA;AACA,gBAAgB,QAAQ,YAAY;AACpC,oBAAoB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,GAAG,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;AAClF;AACA,YAAY,CAAC,WAAW,IAAI,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;AAC9E,YAAY,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACnC,gBAAgB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,gBAAgB,0BAA0B,CAAC,UAAU,CAAC;AACtD,gBAAgB,IAAI,mBAAmB,EAAE;AACzC,oBAAoB,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AACzG,oBAAoB,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,yBAAyB,CAAC,IAAI,IAAI,IAAI,CAAC;AACxH,oBAAoB,KAAK,GAAG,iBAAiB,CAAC,KAAK;AACnD,oBAAoB,IAAI,GAAG,iBAAiB,CAAC,IAAI;AACjD,oBAAoB,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AACnD;AACA;AACA,iBAAiB;AACjB,gBAAgB,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACjD,gBAAgB,KAAK,GAAG,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,EAAE,IAAI,CAAC;AAC9J,gBAAgB,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,gBAAgB,0BAA0B,CAAC,UAAU,CAAC;AACtD,gBAAgB,IAAI,mBAAmB,EAAE;AACzC,oBAAoB,IAAI,KAAK,EAAE;AAC/B,wBAAwB,OAAO,GAAG,KAAK;AACvC;AACA,yBAAyB,IAAI,eAAe,CAAC,OAAO;AACpD,wBAAwB,wBAAwB,CAAC,OAAO,EAAE;AAC1D,wBAAwB,OAAO,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC;AAC/E;AACA;AACA;AACA,YAAY,IAAI,mBAAmB,EAAE;AACrC,gBAAgB,KAAK,CAAC,EAAE,CAAC,IAAI;AAC7B,oBAAoB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;AAC1C,gBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;AACrE;AACA;AACA,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK;AACtC,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE;AACtD,YAAY,GAAG,CAAC,KAAK,EAAE;AACvB,YAAY,OAAO,CAAC;AACpB;AACA,QAAQ;AACR,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,OAAO,GAAG,EAAE,KAAK;AAClD,QAAQ,IAAI,OAAO;AACnB,QAAQ,IAAI,gBAAgB;AAC5B,QAAQ,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC;AACtD,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;AAC/B,YAAY,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC;AACnG,YAAY,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AAC3C,YAAY,gBAAgB,GAAG;AAC/B,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AAC9D,kBAAkB,OAAO;AACzB;AACA,aAAa,IAAI,IAAI,EAAE;AACvB,YAAY,gBAAgB,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,SAAS,KAAK;AACtF,gBAAgB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;AACrD,gBAAgB,OAAO,MAAM,wBAAwB,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;AACzG,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;AAC/B,YAAY,EAAE,CAAC,gBAAgB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE;AACtE;AACA,aAAa;AACb,YAAY,gBAAgB,GAAG,OAAO,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC;AAChF;AACA,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC/B,iBAAiB,CAAC,eAAe,CAAC,OAAO,IAAI,wBAAwB,CAAC,OAAO;AAC7E,oBAAoB,OAAO,KAAK,UAAU,CAAC,OAAO;AAClD,kBAAkB;AAClB,kBAAkB,EAAE,IAAI,EAAE,CAAC;AAC3B,YAAY,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC9D,YAAY,MAAM,EAAE,UAAU,CAAC,MAAM;AACrC,SAAS,CAAC;AACV,QAAQ,OAAO,CAAC,WAAW;AAC3B,YAAY,CAAC,gBAAgB;AAC7B,YAAY,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AACzF,QAAQ,OAAO,gBAAgB;AAC/B,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,CAAC,UAAU,KAAK;AACtC,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,IAAI,MAAM,CAAC,KAAK,GAAG,WAAW,GAAG,cAAc,CAAC;AAC5D,SAAS;AACT,QAAQ,OAAO,WAAW,CAAC,UAAU;AACrC,cAAc;AACd,cAAc,QAAQ,CAAC,UAAU;AACjC,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU;AACxC,kBAAkB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM;AAChD,QAAQ,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC;AAC9D,QAAQ,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC;AACnE,QAAQ,KAAK,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC;AAC1D,QAAQ,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC;AAC9D,QAAQ,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC;AACvE,KAAK,CAAC;AACN,IAAI,MAAM,WAAW,GAAG,CAAC,IAAI,KAAK;AAClC,QAAQ,IAAI;AACZ,YAAY,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACnG,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,MAAM,EAAE,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE;AACjD,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,KAAK;AAC/C,QAAQ,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG;AACjE,QAAQ,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE;AAC/D;AACA,QAAQ,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,GAAG,YAAY;AACnF,QAAQ,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;AACrC,YAAY,GAAG,eAAe;AAC9B,YAAY,GAAG,KAAK;AACpB,YAAY,GAAG;AACf,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,IAAI;AAChB,YAAY,MAAM,EAAE,UAAU,CAAC,MAAM;AACrC,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE;AACzE,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,UAAU,CAAC,IAAI;AACzD,UAAU,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;AACpC,YAAY,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC;AAChF,SAAS;AACT,UAAU,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC;AAC7C,IAAI,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;AAC5D,QAAQ,IAAI,EAAE,CAAC,SAAS,KAAK;AAC7B,YAAY,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;AAC9E,gBAAgB,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,eAAe,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE;AACzH,gBAAgB,KAAK,CAAC,QAAQ,CAAC;AAC/B,oBAAoB,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE;AAC9C,oBAAoB,GAAG,UAAU;AACjC,oBAAoB,GAAG,SAAS;AAChC,iBAAiB,CAAC;AAClB;AACA,SAAS;AACT,KAAK,CAAC,CAAC,WAAW;AAClB,IAAI,MAAM,SAAS,GAAG,CAAC,KAAK,KAAK;AACjC,QAAQ,MAAM,CAAC,KAAK,GAAG,IAAI;AAC3B,QAAQ,wBAAwB,GAAG;AACnC,YAAY,GAAG,wBAAwB;AACvC,YAAY,GAAG,KAAK,CAAC,SAAS;AAC9B,SAAS;AACT,QAAQ,OAAO,UAAU,CAAC;AAC1B,YAAY,GAAG,KAAK;AACpB,YAAY,SAAS,EAAE,wBAAwB;AAC/C,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,KAAK;AAC/C,QAAQ,KAAK,MAAM,SAAS,IAAI,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE;AACnF,YAAY,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;AAC1C,YAAY,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;AAC1C,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACpC,gBAAgB,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;AACzC,gBAAgB,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC;AAC7C;AACA,YAAY,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC;AACrE,YAAY,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC;AAC1E,YAAY,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;AAC9E,YAAY,CAAC,OAAO,CAAC,gBAAgB;AACrC,gBAAgB,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,SAAS,CAAC;AAC7D,YAAY,CAAC,QAAQ,CAAC,gBAAgB;AACtC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB;AACzC,gBAAgB,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC;AAChD;AACA,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC;AAC5C,SAAS,CAAC;AACV,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,GAAG,UAAU;AACzB,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;AACnE,SAAS,CAAC;AACV,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE;AAC3C,KAAK;AACL,IAAI,MAAM,iBAAiB,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK;AACvD,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK;AAChD,YAAY,CAAC,CAAC,QAAQ;AACtB,YAAY,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACvC,YAAY,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/E;AACA,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,KAAK;AAC7C,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACtC,QAAQ,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC7F,QAAQ,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;AAC3B,YAAY,IAAI,KAAK,IAAI,EAAE,CAAC;AAC5B,YAAY,EAAE,EAAE;AAChB,gBAAgB,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;AACrE,gBAAgB,IAAI;AACpB,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,GAAG,OAAO;AAC1B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,iBAAiB,CAAC;AAC9B,gBAAgB,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ;AACpD,sBAAsB,OAAO,CAAC;AAC9B,sBAAsB,QAAQ,CAAC,QAAQ;AACvC,gBAAgB,IAAI;AACpB,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC;AAC1D;AACA,QAAQ,OAAO;AACf,YAAY,IAAI;AAChB,kBAAkB,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;AACnE,kBAAkB,EAAE,CAAC;AACrB,YAAY,IAAI,QAAQ,CAAC;AACzB,kBAAkB;AAClB,oBAAoB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;AAChD,oBAAoB,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;AAClD,oBAAoB,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;AAClD,oBAAoB,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;AAC9D,oBAAoB,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;AAC9D,oBAAoB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D;AACA,kBAAkB,EAAE,CAAC;AACrB,YAAY,IAAI;AAChB,YAAY,QAAQ;AACpB,YAAY,MAAM,EAAE,QAAQ;AAC5B,YAAY,GAAG,EAAE,CAAC,GAAG,KAAK;AAC1B,gBAAgB,IAAI,GAAG,EAAE;AACzB,oBAAoB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;AAC3C,oBAAoB,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAC9C,oBAAoB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK;AAC1D,0BAA0B,GAAG,CAAC;AAC9B,8BAA8B,GAAG,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI;AAClF,8BAA8B;AAC9B,0BAA0B,GAAG;AAC7B,oBAAoB,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AACvE,oBAAoB,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;AACpD,oBAAoB,IAAI;AACxB,0BAA0B,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,QAAQ;AACnE,0BAA0B,QAAQ,KAAK,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE;AACrD,wBAAwB;AACxB;AACA,oBAAoB,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;AACvC,wBAAwB,EAAE,EAAE;AAC5B,4BAA4B,GAAG,KAAK,CAAC,EAAE;AACvC,4BAA4B,IAAI;AAChC,kCAAkC;AAClC,oCAAoC,IAAI,EAAE;AAC1C,wCAAwC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5D,wCAAwC,QAAQ;AAChD,wCAAwC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AACjG,qCAAqC;AACrC,oCAAoC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;AACtE;AACA,kCAAkC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACpD,yBAAyB;AACzB,qBAAqB,CAAC;AACtB,oBAAoB,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;AACzE;AACA,qBAAqB;AACrB,oBAAoB,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;AAClD,oBAAoB,IAAI,KAAK,CAAC,EAAE,EAAE;AAClC,wBAAwB,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK;AAC9C;AACA,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB;AAC1E,wBAAwB,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;AAClF,wBAAwB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAChD;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,gBAAgB;AACvD,QAAQ,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC;AACjE,IAAI,MAAM,YAAY,GAAG,CAAC,QAAQ,KAAK;AACvC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE;AACjC,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC9C,YAAY,qBAAqB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;AAC1D,gBAAgB,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACvD,gBAAgB,IAAI,YAAY,EAAE;AAClC,oBAAoB,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,QAAQ,IAAI,QAAQ;AACvE,oBAAoB,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAC7D,wBAAwB,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACnE,4BAA4B,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,QAAQ,IAAI,QAAQ;AACpF,yBAAyB,CAAC;AAC1B;AACA;AACA,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC;AACxB;AACA,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,KAAK;AAC9D,QAAQ,IAAI,YAAY,GAAG,SAAS;AACpC,QAAQ,IAAI,CAAC,EAAE;AACf,YAAY,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,cAAc,EAAE;AAClD,YAAY,CAAC,CAAC,OAAO;AACrB,gBAAgB,CAAC,CAAC,OAAO,EAAE;AAC3B;AACA,QAAQ,IAAI,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;AAClD,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,YAAY,EAAE,IAAI;AAC9B,SAAS,CAAC;AACV,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;AAC/B,YAAY,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,EAAE;AACzD,YAAY,UAAU,CAAC,MAAM,GAAG,MAAM;AACtC,YAAY,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;AAC7C;AACA,aAAa;AACb,YAAY,MAAM,wBAAwB,CAAC,OAAO,CAAC;AACnD;AACA,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;AAClC,YAAY,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;AAChD,gBAAgB,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC;AACxC;AACA;AACA,QAAQ,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;AACxC,QAAQ,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC9C,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,gBAAgB,MAAM,EAAE,EAAE;AAC1B,aAAa,CAAC;AACd,YAAY,IAAI;AAChB,gBAAgB,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7C;AACA,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,YAAY,GAAG,KAAK;AACpC;AACA;AACA,aAAa;AACb,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,MAAM,SAAS,CAAC,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5D;AACA,YAAY,WAAW,EAAE;AACzB,YAAY,UAAU,CAAC,WAAW,CAAC;AACnC;AACA,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,YAAY,EAAE,KAAK;AAC/B,YAAY,kBAAkB,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY;AACjF,YAAY,WAAW,EAAE,UAAU,CAAC,WAAW,GAAG,CAAC;AACnD,YAAY,MAAM,EAAE,UAAU,CAAC,MAAM;AACrC,SAAS,CAAC;AACV,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,MAAM,YAAY;AAC9B;AACA,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,KAAK;AAC/C,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACnD,gBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE;AACA,iBAAiB;AACjB,gBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC;AACpD,gBAAgB,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC5E;AACA,YAAY,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AACtC,gBAAgB,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC;AACrD;AACA,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACpC,gBAAgB,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;AACnD,gBAAgB,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;AAC7C,sBAAsB,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC5E,sBAAsB,SAAS,EAAE;AACjC;AACA,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACpC,gBAAgB,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;AAC9C,gBAAgB,eAAe,CAAC,OAAO,IAAI,SAAS,EAAE;AACtD;AACA,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;AACnD;AACA,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,gBAAgB,GAAG,EAAE,KAAK;AAC1D,QAAQ,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,cAAc;AACnF,QAAQ,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC;AAC7D,QAAQ,MAAM,kBAAkB,GAAG,aAAa,CAAC,UAAU,CAAC;AAC5D,QAAQ,MAAM,MAAM,GAAG,kBAAkB,GAAG,cAAc,GAAG,kBAAkB;AAC/E,QAAQ,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;AACjD,YAAY,cAAc,GAAG,aAAa;AAC1C;AACA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC1C,YAAY,IAAI,gBAAgB,CAAC,eAAe,EAAE;AAClD,gBAAgB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;AAC9C,oBAAoB,GAAG,MAAM,CAAC,KAAK;AACnC,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAC/E,iBAAiB,CAAC;AAClB,gBAAgB,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AACnE,oBAAoB,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS;AACzD,0BAA0B,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;AAC5E,0BAA0B,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACrE;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,KAAK,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE;AACtD,oBAAoB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;AACrD,wBAAwB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACxD,wBAAwB,IAAI,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE;AAC/C,4BAA4B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;AAC9E,kCAAkC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACjD,kCAAkC,KAAK,CAAC,EAAE,CAAC,GAAG;AAC9C,4BAA4B,IAAI,aAAa,CAAC,cAAc,CAAC,EAAE;AAC/D,gCAAgC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;AAC3E,gCAAgC,IAAI,IAAI,EAAE;AAC1C,oCAAoC,IAAI,CAAC,KAAK,EAAE;AAChD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE;AACtD,oBAAoB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AACxF,oBAAoB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAC7C,wBAAwB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;AACrD,wBAAwB,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACnE;AACA;AACA;AACA,YAAY,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;AAC7C,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,gBAAgB,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;AACrC,aAAa,CAAC;AACd,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,gBAAgB,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;AACrC,aAAa,CAAC;AACd;AACA,QAAQ,MAAM,GAAG;AACjB,YAAY,KAAK,EAAE,gBAAgB,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE;AAC9E,YAAY,OAAO,EAAE,IAAI,GAAG,EAAE;AAC9B,YAAY,KAAK,EAAE,IAAI,GAAG,EAAE;AAC5B,YAAY,QAAQ,EAAE,IAAI,GAAG,EAAE;AAC/B,YAAY,KAAK,EAAE,IAAI,GAAG,EAAE;AAC5B,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS;AACT,QAAQ,MAAM,CAAC,KAAK;AACpB,YAAY,CAAC,eAAe,CAAC,OAAO;AACpC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,WAAW;AAC9C,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,eAAe;AAClD,QAAQ,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,gBAAgB;AAClD,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B,YAAY,WAAW,EAAE,gBAAgB,CAAC;AAC1C,kBAAkB,UAAU,CAAC;AAC7B,kBAAkB,CAAC;AACnB,YAAY,OAAO,EAAE;AACrB,kBAAkB;AAClB,kBAAkB,gBAAgB,CAAC;AACnC,sBAAsB,UAAU,CAAC;AACjC,sBAAsB,CAAC,EAAE,gBAAgB,CAAC,iBAAiB;AAC3D,wBAAwB,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAC/D,YAAY,WAAW,EAAE,gBAAgB,CAAC;AAC1C,kBAAkB,UAAU,CAAC;AAC7B,kBAAkB,KAAK;AACvB,YAAY,WAAW,EAAE;AACzB,kBAAkB;AAClB,kBAAkB,gBAAgB,CAAC;AACnC,sBAAsB,gBAAgB,CAAC,iBAAiB,IAAI;AAC5D,0BAA0B,cAAc,CAAC,cAAc,EAAE,WAAW;AACpE,0BAA0B,UAAU,CAAC;AACrC,sBAAsB,gBAAgB,CAAC,iBAAiB,IAAI;AAC5D,0BAA0B,cAAc,CAAC,cAAc,EAAE,UAAU;AACnE,0BAA0B,gBAAgB,CAAC;AAC3C,8BAA8B,UAAU,CAAC;AACzC,8BAA8B,EAAE;AAChC,YAAY,aAAa,EAAE,gBAAgB,CAAC;AAC5C,kBAAkB,UAAU,CAAC;AAC7B,kBAAkB,EAAE;AACpB,YAAY,MAAM,EAAE,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE;AACxE,YAAY,kBAAkB,EAAE,gBAAgB,CAAC;AACjD,kBAAkB,UAAU,CAAC;AAC7B,kBAAkB,KAAK;AACvB,YAAY,YAAY,EAAE,KAAK;AAC/B,SAAS,CAAC;AACV,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,gBAAgB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU;AAChF,UAAU,UAAU,CAAC,WAAW;AAChC,UAAU,UAAU,EAAE,gBAAgB,CAAC;AACvC,IAAI,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,KAAK;AAC7C,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACxC,QAAQ,MAAM,cAAc,GAAG,KAAK,IAAI,KAAK,CAAC,EAAE;AAChD,QAAQ,IAAI,cAAc,EAAE;AAC5B,YAAY,MAAM,QAAQ,GAAG,cAAc,CAAC;AAC5C,kBAAkB,cAAc,CAAC,IAAI,CAAC,CAAC;AACvC,kBAAkB,cAAc,CAAC,GAAG;AACpC,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE;AAChC,gBAAgB,QAAQ,CAAC,KAAK,EAAE;AAChC,gBAAgB,OAAO,CAAC,YAAY;AACpC,oBAAoB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC/C,oBAAoB,QAAQ,CAAC,MAAM,EAAE;AACrC;AACA;AACA,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,CAAC,gBAAgB,KAAK;AAChD,QAAQ,UAAU,GAAG;AACrB,YAAY,GAAG,UAAU;AACzB,YAAY,GAAG,gBAAgB;AAC/B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;AACxE,QAAQ,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAClD,YAAY,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC;AAChD,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,gBAAgB,SAAS,EAAE,KAAK;AAChC,aAAa,CAAC;AACd,SAAS,CAAC;AACV,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,OAAO,EAAE;AACjB,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,cAAc;AAC1B,YAAY,iBAAiB;AAC7B,YAAY,UAAU;AACtB,YAAY,cAAc;AAC1B,YAAY,MAAM;AAClB,YAAY,mBAAmB;AAC/B,YAAY,gBAAgB;AAC5B,YAAY,YAAY;AACxB,YAAY,SAAS;AACrB,YAAY,eAAe;AAC3B,YAAY,IAAI,OAAO,GAAG;AAC1B,gBAAgB,OAAO,OAAO;AAC9B,aAAa;AACb,YAAY,IAAI,WAAW,GAAG;AAC9B,gBAAgB,OAAO,WAAW;AAClC,aAAa;AACb,YAAY,IAAI,MAAM,GAAG;AACzB,gBAAgB,OAAO,MAAM;AAC7B,aAAa;AACb,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE;AAC9B,gBAAgB,MAAM,GAAG,KAAK;AAC9B,aAAa;AACb,YAAY,IAAI,cAAc,GAAG;AACjC,gBAAgB,OAAO,cAAc;AACrC,aAAa;AACb,YAAY,IAAI,MAAM,GAAG;AACzB,gBAAgB,OAAO,MAAM;AAC7B,aAAa;AACb,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE;AAC9B,gBAAgB,MAAM,GAAG,KAAK;AAC9B,aAAa;AACb,YAAY,IAAI,UAAU,GAAG;AAC7B,gBAAgB,OAAO,UAAU;AACjC,aAAa;AACb,YAAY,IAAI,QAAQ,GAAG;AAC3B,gBAAgB,OAAO,QAAQ;AAC/B,aAAa;AACb,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE;AAChC,gBAAgB,QAAQ,GAAG;AAC3B,oBAAoB,GAAG,QAAQ;AAC/B,oBAAoB,GAAG,KAAK;AAC5B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,YAAY;AACpB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,QAAQ,UAAU;AAClB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,QAAQ;AAChB,QAAQ,aAAa;AACrB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,GAAG,OAAO;AAClB,QAAQ,WAAW,EAAE,OAAO;AAC5B,KAAK;AACL;;AAuTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,KAAK,GAAG,EAAE,EAAE;AAC7B,IAAI,MAAM,YAAY,GAAGD,uBAAc,CAAC,MAAM,CAAC,SAAS,CAAC;AACzD,IAAI,MAAM,OAAO,GAAGA,uBAAc,CAAC,MAAM,CAAC,SAAS,CAAC;AACpD,IAAI,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,GAAGA,uBAAc,CAAC,QAAQ,CAAC;AACjE,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC;AAClD,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,kBAAkB,EAAE,KAAK;AACjC,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,WAAW,EAAE,CAAC;AACtB,QAAQ,WAAW,EAAE,EAAE;AACvB,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,gBAAgB,EAAE,EAAE;AAC5B,QAAQ,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;AAClC,QAAQ,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;AACzC,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa;AACrD,cAAc;AACd,cAAc,KAAK,CAAC,aAAa;AACjC,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC/B,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE;AAC/B,YAAY,YAAY,CAAC,OAAO,GAAG;AACnC,gBAAgB,GAAG,KAAK,CAAC,WAAW;AACpC,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AACzE,gBAAgB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;AAChF;AACA;AACA,aAAa;AACb,YAAY,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC;AACrE,YAAY,YAAY,CAAC,OAAO,GAAG;AACnC,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,SAAS;AACzB,aAAa;AACb;AACA;AACA,IAAI,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO;AAChD,IAAI,OAAO,CAAC,QAAQ,GAAG,KAAK;AAC5B,IAAI,yBAAyB,CAAC,MAAM;AACpC,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;AACvC,YAAY,SAAS,EAAE,OAAO,CAAC,eAAe;AAC9C,YAAY,QAAQ,EAAE,MAAM,eAAe,CAAC,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;AACtE,YAAY,YAAY,EAAE,IAAI;AAC9B,SAAS,CAAC;AACV,QAAQ,eAAe,CAAC,CAAC,IAAI,MAAM;AACnC,YAAY,GAAG,IAAI;AACnB,YAAY,OAAO,EAAE,IAAI;AACzB,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI;AACzC,QAAQ,OAAO,GAAG;AAClB,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;AACjB,IAAIA,uBAAc,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACnG,IAAIA,uBAAc,CAAC,SAAS,CAAC,MAAM;AACnC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;AACxB,YAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AAC9C;AACA,QAAQ,IAAI,KAAK,CAAC,cAAc,EAAE;AAClC,YAAY,OAAO,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;AAClE;AACA,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;AACnD,IAAIA,uBAAc,CAAC,SAAS,CAAC,MAAM;AACnC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1B,YAAY,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;AAC5C,YAAY,OAAO,CAAC,WAAW,EAAE;AACjC;AACA,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/B,IAAIA,uBAAc,CAAC,SAAS,CAAC,MAAM;AACnC,QAAQ,KAAK,CAAC,gBAAgB;AAC9B,YAAY,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACzC,gBAAgB,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE;AAC3C,aAAa,CAAC;AACd,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACzC,IAAIA,uBAAc,CAAC,SAAS,CAAC,MAAM;AACnC,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE;AAC7C,YAAY,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE;AAC/C,YAAY,IAAI,OAAO,KAAK,SAAS,CAAC,OAAO,EAAE;AAC/C,gBAAgB,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C,oBAAoB,OAAO;AAC3B,iBAAiB,CAAC;AAClB;AACA;AACA,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AACpC,IAAIA,uBAAc,CAAC,SAAS,CAAC,MAAM;AACnC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;AACvE,YAAY,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;AACvE,YAAY,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM;AAC1C,YAAY,eAAe,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACtD;AACA,aAAa;AACb,YAAY,OAAO,CAAC,mBAAmB,EAAE;AACzC;AACA,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/B,IAAIA,uBAAc,CAAC,SAAS,CAAC,MAAM;AACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;AACnC,YAAY,OAAO,CAAC,SAAS,EAAE;AAC/B,YAAY,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACvC;AACA,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;AAClC,YAAY,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;AACxC,YAAY,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;AACnE;AACA,QAAQ,OAAO,CAAC,gBAAgB,EAAE;AAClC,KAAK,CAAC;AACN,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC;AAC1E,IAAI,OAAO,YAAY,CAAC,OAAO;AAC/B;;AC5rF+C,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAACE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAACA,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAKA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;ACAxd,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,YAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,KAAK,GAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAASA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAACA,GAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,yBAAyB,EAAEC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASA,GAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAACA,GAAC,CAAC,CAAC,OAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAACF,CAAC,CAAC,CAAC,CAACE,GAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAyB,EAAE,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAMA,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;ACAnlC,IAAI,IAAI;AACf,CAAC,UAAU,IAAI,EAAE;AACjB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,GAAG;AACjC,IAAI,SAAS,QAAQ,CAAC,IAAI,EAAE;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC5B,IAAI,SAAS,WAAW,CAAC,EAAE,EAAE;AAC7B,QAAQ,MAAM,IAAI,KAAK,EAAE;AACzB;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW;AAClC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK;AAClC,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI;AAC5B;AACA,QAAQ,OAAO,GAAG;AAClB,KAAK;AACL,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,KAAK;AACvC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC7F,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;AACnC,YAAY,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAChC;AACA,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK;AACjC,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACrD,YAAY,OAAO,GAAG,CAAC,CAAC,CAAC;AACzB,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;AACvD,UAAU,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,UAAU,CAAC,MAAM,KAAK;AACtB,YAAY,MAAM,IAAI,GAAG,EAAE;AAC3B,YAAY,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtC,gBAAgB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AACvE,oBAAoB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClC;AACA;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK;AAClC,QAAQ,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;AAChC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;AAC7B,gBAAgB,OAAO,IAAI;AAC3B;AACA,QAAQ,OAAO,SAAS;AACxB,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK;AACjD,UAAU,CAAC,GAAG,KAAK,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;AACxC,UAAU,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;AAC7F,IAAI,SAAS,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE;AAClD,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,OAAO,GAAG,KAAK,QAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/F;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU;AAChC,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK;AAC/C,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,OAAO,KAAK,CAAC,QAAQ,EAAE;AACnC;AACA,QAAQ,OAAO,KAAK;AACpB,KAAK;AACL,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;AAChB,IAAI,UAAU;AACrB,CAAC,UAAU,UAAU,EAAE;AACvB,IAAI,UAAU,CAAC,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AAChD,QAAQ,OAAO;AACf,YAAY,GAAG,KAAK;AACpB,YAAY,GAAG,MAAM;AACrB,SAAS;AACT,KAAK;AACL,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC;AAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;AAC9C,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,KAAK;AACT,CAAC,CAAC;AACK,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK;AACvC,IAAI,MAAM,CAAC,GAAG,OAAO,IAAI;AACzB,IAAI,QAAQ,CAAC;AACb,QAAQ,KAAK,WAAW;AACxB,YAAY,OAAO,aAAa,CAAC,SAAS;AAC1C,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,aAAa,CAAC,MAAM;AACvC,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM;AAChF,QAAQ,KAAK,SAAS;AACtB,YAAY,OAAO,aAAa,CAAC,OAAO;AACxC,QAAQ,KAAK,UAAU;AACvB,YAAY,OAAO,aAAa,CAAC,QAAQ;AACzC,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,aAAa,CAAC,MAAM;AACvC,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,aAAa,CAAC,MAAM;AACvC,QAAQ,KAAK,QAAQ;AACrB,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACrC,gBAAgB,OAAO,aAAa,CAAC,KAAK;AAC1C;AACA,YAAY,IAAI,IAAI,KAAK,IAAI,EAAE;AAC/B,gBAAgB,OAAO,aAAa,CAAC,IAAI;AACzC;AACA,YAAY,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AAChH,gBAAgB,OAAO,aAAa,CAAC,OAAO;AAC5C;AACA,YAAY,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,IAAI,YAAY,GAAG,EAAE;AACnE,gBAAgB,OAAO,aAAa,CAAC,GAAG;AACxC;AACA,YAAY,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,IAAI,YAAY,GAAG,EAAE;AACnE,gBAAgB,OAAO,aAAa,CAAC,GAAG;AACxC;AACA,YAAY,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE;AACrE,gBAAgB,OAAO,aAAa,CAAC,IAAI;AACzC;AACA,YAAY,OAAO,aAAa,CAAC,MAAM;AACvC,QAAQ;AACR,YAAY,OAAO,aAAa,CAAC,OAAO;AACxC;AACA,CAAC;;ACnIM,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;AAC7C,IAAI,cAAc;AAClB,IAAI,iBAAiB;AACrB,IAAI,QAAQ;AACZ,IAAI,eAAe;AACnB,IAAI,6BAA6B;AACjC,IAAI,oBAAoB;AACxB,IAAI,mBAAmB;AACvB,IAAI,mBAAmB;AACvB,IAAI,qBAAqB;AACzB,IAAI,cAAc;AAClB,IAAI,gBAAgB;AACpB,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,4BAA4B;AAChC,IAAI,iBAAiB;AACrB,IAAI,YAAY;AAChB,CAAC,CAAC;AAKK,MAAM,QAAQ,SAAS,KAAK,CAAC;AACpC,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK;AACjC,YAAY,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAC/C,SAAS;AACT,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK;AACxC,YAAY,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AACnD,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS;AAChD,QAAQ,IAAI,MAAM,CAAC,cAAc,EAAE;AACnC;AACA,YAAY,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC;AACpD;AACA,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,GAAG,WAAW;AACxC;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,MAAM,MAAM,GAAG,OAAO;AAC9B,YAAY,UAAU,KAAK,EAAE;AAC7B,gBAAgB,OAAO,KAAK,CAAC,OAAO;AACpC,aAAa;AACb,QAAQ,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3C,QAAQ,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK;AACxC,YAAY,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9C,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE;AACpD,oBAAoB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC;AACvD;AACA,qBAAqB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE;AAC/D,oBAAoB,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC;AACvD;AACA,qBAAqB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC7D,oBAAoB,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC;AACtD;AACA,qBAAqB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAClD,oBAAoB,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D;AACA,qBAAqB;AACrB,oBAAoB,IAAI,IAAI,GAAG,WAAW;AAC1C,oBAAoB,IAAI,CAAC,GAAG,CAAC;AAC7B,oBAAoB,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;AAClD,wBAAwB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,wBAAwB,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;AACpE,wBAAwB,IAAI,CAAC,QAAQ,EAAE;AACvC,4BAA4B,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,4BAA4B,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;AAClE,4BAA4B,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE;AACA,wBAAwB,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;AACvC,wBAAwB,CAAC,EAAE;AAC3B;AACA;AACA;AACA,SAAS;AACT,QAAQ,YAAY,CAAC,IAAI,CAAC;AAC1B,QAAQ,OAAO,WAAW;AAC1B;AACA,IAAI,OAAO,MAAM,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,EAAE;AAC1C,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;AACvD;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,OAAO;AAC3B;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACzE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AACvC;AACA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;AAC/C,QAAQ,MAAM,WAAW,GAAG,EAAE;AAC9B,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AACvC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,gBAAgB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzE,gBAAgB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D;AACA,iBAAiB;AACjB,gBAAgB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5C;AACA;AACA,QAAQ,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE;AAC1C;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE;AAC7B;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC9B,IAAI,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC;AACtC,IAAI,OAAO,KAAK;AAChB,CAAC;;ACjID,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK;AAClC,IAAI,IAAI,OAAO;AACf,IAAI,QAAQ,KAAK,CAAC,IAAI;AACtB,QAAQ,KAAK,YAAY,CAAC,YAAY;AACtC,YAAY,IAAI,KAAK,CAAC,QAAQ,KAAK,aAAa,CAAC,SAAS,EAAE;AAC5D,gBAAgB,OAAO,GAAG,UAAU;AACpC;AACA,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClF;AACA,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,eAAe;AACzC,YAAY,OAAO,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACrH,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,iBAAiB;AAC3C,YAAY,OAAO,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3F,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,aAAa;AACvC,YAAY,OAAO,GAAG,CAAC,aAAa,CAAC;AACrC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,2BAA2B;AACrD,YAAY,OAAO,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/F,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,kBAAkB;AAC5C,YAAY,OAAO,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpH,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,iBAAiB;AAC3C,YAAY,OAAO,GAAG,CAAC,0BAA0B,CAAC;AAClD,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,mBAAmB;AAC7C,YAAY,OAAO,GAAG,CAAC,4BAA4B,CAAC;AACpD,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,YAAY;AACtC,YAAY,OAAO,GAAG,CAAC,YAAY,CAAC;AACpC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,cAAc;AACxC,YAAY,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE;AACtD,gBAAgB,IAAI,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE;AACpD,oBAAoB,OAAO,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1F,oBAAoB,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACvE,wBAAwB,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,mDAAmD,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7H;AACA;AACA,qBAAqB,IAAI,YAAY,IAAI,KAAK,CAAC,UAAU,EAAE;AAC3D,oBAAoB,OAAO,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/F;AACA,qBAAqB,IAAI,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE;AACzD,oBAAoB,OAAO,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3F;AACA,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;AACtD;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,EAAE;AACnD,gBAAgB,OAAO,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACvD;AACA,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,SAAS;AACnC;AACA,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,SAAS;AACnC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;AACtC,gBAAgB,OAAO,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AAClJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;AAChJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,yBAAyB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACjK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;AAC1C,gBAAgB,OAAO,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,yBAAyB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjL;AACA,gBAAgB,OAAO,GAAG,eAAe;AACzC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,OAAO;AACjC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;AACtC,gBAAgB,OAAO,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AACjJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;AAChJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAChJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAC5C,gBAAgB,OAAO,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAChJ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;AAC1C,gBAAgB,OAAO,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtK;AACA,gBAAgB,OAAO,GAAG,eAAe;AACzC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,MAAM;AAChC,YAAY,OAAO,GAAG,CAAC,aAAa,CAAC;AACrC,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,0BAA0B;AACpD,YAAY,OAAO,GAAG,CAAC,wCAAwC,CAAC;AAChE,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,eAAe;AACzC,YAAY,OAAO,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACxE,YAAY;AACZ,QAAQ,KAAK,YAAY,CAAC,UAAU;AACpC,YAAY,OAAO,GAAG,uBAAuB;AAC7C,YAAY;AACZ,QAAQ;AACR,YAAY,OAAO,GAAG,IAAI,CAAC,YAAY;AACvC,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACnC;AACA,IAAI,OAAO,EAAE,OAAO,EAAE;AACtB,CAAC;;ACxGD,IAAI,gBAAgB,GAAGC,QAAe;AAK/B,SAAS,WAAW,GAAG;AAC9B,IAAI,OAAO,gBAAgB;AAC3B;;ACNO,MAAM,SAAS,GAAG,CAAC,MAAM,KAAK;AACrC,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM;AACvD,IAAI,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACzD,IAAI,MAAM,SAAS,GAAG;AACtB,QAAQ,GAAG,SAAS;AACpB,QAAQ,IAAI,EAAE,QAAQ;AACtB,KAAK;AACL,IAAI,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE;AACzC,QAAQ,OAAO;AACf,YAAY,GAAG,SAAS;AACxB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,OAAO,EAAE,SAAS,CAAC,OAAO;AACtC,SAAS;AACT;AACA,IAAI,IAAI,YAAY,GAAG,EAAE;AACzB,IAAI,MAAM,IAAI,GAAG;AACjB,SAAS,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1B,SAAS,KAAK;AACd,SAAS,OAAO,EAAE;AAClB,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAC5B,QAAQ,YAAY,GAAG,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO;AACnF;AACA,IAAI,OAAO;AACX,QAAQ,GAAG,SAAS;AACpB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,OAAO,EAAE,YAAY;AAC7B,KAAK;AACL,CAAC;AAEM,SAAS,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE;AAClD,IAAI,MAAM,WAAW,GAAG,WAAW,EAAE;AACrC,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC;AAC5B,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI;AACtB,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI;AACtB,QAAQ,SAAS,EAAE;AACnB,YAAY,GAAG,CAAC,MAAM,CAAC,kBAAkB;AACzC,YAAY,GAAG,CAAC,cAAc;AAC9B,YAAY,WAAW;AACvB,YAAY,WAAW,KAAKA,QAAe,GAAG,SAAS,GAAGA,QAAe;AACzE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,KAAK,CAAC;AACN,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC;AACO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO;AAC5B;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;AAClC,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO;AAChC;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;AACpC,YAAY,IAAI,CAAC,KAAK,GAAG,SAAS;AAClC;AACA,IAAI,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;AACjC,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;AACtC,gBAAgB,OAAO,OAAO;AAC9B,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;AACpC,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACpC;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;AAC1D;AACA,IAAI,aAAa,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE;AACjD,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG;AACtC,YAAY,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK;AAC1C,YAAY,SAAS,CAAC,IAAI,CAAC;AAC3B,gBAAgB,GAAG;AACnB,gBAAgB,KAAK;AACrB,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;AAC7D;AACA,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE;AAC1C,QAAQ,MAAM,WAAW,GAAG,EAAE;AAC9B,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;AACvC,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;AACxC,gBAAgB,OAAO,OAAO;AAC9B,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;AAC1C,gBAAgB,OAAO,OAAO;AAC9B,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;AACtC,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;AACxC,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,IAAI,GAAG,CAAC,KAAK,KAAK,WAAW,KAAK,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;AACrG,gBAAgB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK;AACpD;AACA;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;AAC3D;AACA;AACO,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AACrC,IAAI,MAAM,EAAE,SAAS;AACrB,CAAC,CAAC;AACK,MAAM,KAAK,GAAG,CAAC,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACrD,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAClD,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,SAAS;AAC/C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,OAAO;AAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,OAAO;AAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,YAAY,OAAO;;AC5G7E,IAAI,SAAS;AACpB,CAAC,UAAU,SAAS,EAAE;AACtB,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,IAAI,EAAE;AAC/F;AACA,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO;AAC9F,CAAC,EAAE,SAAS,KAAK,SAAS,GAAG,EAAE,CAAC,CAAC;;ACAjC,MAAM,kBAAkB,CAAC;AACzB,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE;AAC1C,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;AACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG;AACvB;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACtC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC1C,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;AAClE;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;AAC/D;AACA;AACA,QAAQ,OAAO,IAAI,CAAC,WAAW;AAC/B;AACA;AACA,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK;AACtC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,QAAQ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE;AACpD;AACA,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACvC,YAAY,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;AACxE;AACA,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,IAAI,KAAK,GAAG;AACxB,gBAAgB,IAAI,IAAI,CAAC,MAAM;AAC/B,oBAAoB,OAAO,IAAI,CAAC,MAAM;AACtC,gBAAgB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7D,gBAAgB,IAAI,CAAC,MAAM,GAAG,KAAK;AACnC,gBAAgB,OAAO,IAAI,CAAC,MAAM;AAClC,aAAa;AACb,SAAS;AACT;AACA,CAAC;AACD,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,IAAI,IAAI,CAAC,MAAM;AACf,QAAQ,OAAO,EAAE;AACjB,IAAI,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM;AAChF,IAAI,IAAI,QAAQ,KAAK,kBAAkB,IAAI,cAAc,CAAC,EAAE;AAC5D,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,wFAAwF,CAAC,CAAC;AACnH;AACA,IAAI,IAAI,QAAQ;AAChB,QAAQ,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE;AAClD,IAAI,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK;AACpC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAClC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,oBAAoB,EAAE;AAC/C,YAAY,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,GAAG,CAAC,YAAY,EAAE;AAC3D;AACA,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE;AAC7C,YAAY,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,cAAc,IAAI,GAAG,CAAC,YAAY,EAAE;AAC7E;AACA,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc;AACvC,YAAY,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE;AAChD,QAAQ,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,kBAAkB,IAAI,GAAG,CAAC,YAAY,EAAE;AAC7E,KAAK;AACL,IAAI,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE;AAC/C;AACO,MAAM,OAAO,CAAC;AACrB,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW;AACpC;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AACxC;AACA,IAAI,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE;AAChC,QAAQ,QAAQ,GAAG,IAAI;AACvB,YAAY,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;AACvC,YAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,YAAY,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AACjD,YAAY,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC9C,YAAY,IAAI,EAAE,KAAK,CAAC,IAAI;AAC5B,YAAY,MAAM,EAAE,KAAK,CAAC,MAAM;AAChC,SAAS;AACT;AACA,IAAI,mBAAmB,CAAC,KAAK,EAAE;AAC/B,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,IAAI,WAAW,EAAE;AACrC,YAAY,GAAG,EAAE;AACjB,gBAAgB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;AAC3C,gBAAgB,IAAI,EAAE,KAAK,CAAC,IAAI;AAChC,gBAAgB,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AACrD,gBAAgB,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAClD,gBAAgB,IAAI,EAAE,KAAK,CAAC,IAAI;AAChC,gBAAgB,MAAM,EAAE,KAAK,CAAC,MAAM;AACpC,aAAa;AACb,SAAS;AACT;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACrE;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC;AACA,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AACxB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;AACnD,QAAQ,IAAI,MAAM,CAAC,OAAO;AAC1B,YAAY,OAAO,MAAM,CAAC,IAAI;AAC9B,QAAQ,MAAM,MAAM,CAAC,KAAK;AAC1B;AACA,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5B,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,KAAK;AAC7C,gBAAgB,kBAAkB,EAAE,MAAM,EAAE,QAAQ;AACpD,aAAa;AACb,YAAY,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;AACpC,YAAY,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC9C,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,IAAI;AAChB,YAAY,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AAC3C,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC7E,QAAQ,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC;AACxC;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK;AAChD,aAAa;AACb,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC9C,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,IAAI;AAChB,YAAY,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AAC3C,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE;AACtC,YAAY,IAAI;AAChB,gBAAgB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/E,gBAAgB,OAAO,OAAO,CAAC,MAAM;AACrC,sBAAsB;AACtB,wBAAwB,KAAK,EAAE,MAAM,CAAC,KAAK;AAC3C;AACA,sBAAsB;AACtB,wBAAwB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;AACjD,qBAAqB;AACrB;AACA,YAAY,OAAO,GAAG,EAAE;AACxB,gBAAgB,IAAI,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC1E,oBAAoB,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,IAAI;AAClD;AACA,gBAAgB,GAAG,CAAC,MAAM,GAAG;AAC7B,oBAAoB,MAAM,EAAE,EAAE;AAC9B,oBAAoB,KAAK,EAAE,IAAI;AAC/B,iBAAiB;AACjB;AACA;AACA,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;AAChG,cAAc;AACd,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnC;AACA,cAAc;AACd,gBAAgB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;AACzC,aAAa,CAAC;AACd;AACA,IAAI,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;AACnC,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9D,QAAQ,IAAI,MAAM,CAAC,OAAO;AAC1B,YAAY,OAAO,MAAM,CAAC,IAAI;AAC9B,QAAQ,MAAM,MAAM,CAAC,KAAK;AAC1B;AACA,IAAI,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AACvC,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,MAAM,EAAE;AACpB,gBAAgB,MAAM,EAAE,EAAE;AAC1B,gBAAgB,kBAAkB,EAAE,MAAM,EAAE,QAAQ;AACpD,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,YAAY,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;AACpC,YAAY,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC9C,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,IAAI;AAChB,YAAY,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AAC3C,SAAS;AACT,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnF,QAAQ,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC/G,QAAQ,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC;AACxC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;AAC3B,QAAQ,MAAM,kBAAkB,GAAG,CAAC,GAAG,KAAK;AAC5C,YAAY,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AAC/E,gBAAgB,OAAO,EAAE,OAAO,EAAE;AAClC;AACA,iBAAiB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACpD,gBAAgB,OAAO,OAAO,CAAC,GAAG,CAAC;AACnC;AACA,iBAAiB;AACjB,gBAAgB,OAAO,OAAO;AAC9B;AACA,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC9C,YAAY,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;AACrC,YAAY,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC;AAChD,gBAAgB,IAAI,EAAE,YAAY,CAAC,MAAM;AACzC,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC;AAC1C,aAAa,CAAC;AACd,YAAY,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,MAAM,YAAY,OAAO,EAAE;AAC7E,gBAAgB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AAC7C,oBAAoB,IAAI,CAAC,IAAI,EAAE;AAC/B,wBAAwB,QAAQ,EAAE;AAClC,wBAAwB,OAAO,KAAK;AACpC;AACA,yBAAyB;AACzB,wBAAwB,OAAO,IAAI;AACnC;AACA,iBAAiB,CAAC;AAClB;AACA,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB,QAAQ,EAAE;AAC1B,gBAAgB,OAAO,KAAK;AAC5B;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI;AAC3B;AACA,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC9C,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC7B,gBAAgB,GAAG,CAAC,QAAQ,CAAC,OAAO,cAAc,KAAK,UAAU,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,cAAc,CAAC;AAC9G,gBAAgB,OAAO,KAAK;AAC5B;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI;AAC3B;AACA,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,OAAO,IAAI,UAAU,CAAC;AAC9B,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AACtD,YAAY,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE;AACtD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;AAC3C;AACA,IAAI,WAAW,CAAC,GAAG,EAAE;AACrB;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc;AACtC,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5D,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AACtD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG;AAC5B,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,QAAQ,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;AACvD,SAAS;AACT;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AAClD;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AAClD;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACzC;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AACjD;AACA,IAAI,EAAE,CAAC,MAAM,EAAE;AACf,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;AACzD;AACA,IAAI,GAAG,CAAC,QAAQ,EAAE;AAClB,QAAQ,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;AAChE;AACA,IAAI,SAAS,CAAC,SAAS,EAAE;AACzB,QAAQ,OAAO,IAAI,UAAU,CAAC;AAC9B,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AACtD,YAAY,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;AACpD,SAAS,CAAC;AACV;AACA,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,QAAQ,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,UAAU,GAAG,GAAG,GAAG,MAAM,GAAG;AAC5E,QAAQ,OAAO,IAAI,UAAU,CAAC;AAC9B,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,YAAY,EAAE,gBAAgB;AAC1C,YAAY,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AACtD,SAAS,CAAC;AACV;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,UAAU,CAAC;AAC9B,YAAY,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AACtD,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,KAAK,CAAC,GAAG,EAAE;AACf,QAAQ,MAAM,cAAc,GAAG,OAAO,GAAG,KAAK,UAAU,GAAG,GAAG,GAAG,MAAM,GAAG;AAC1E,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,UAAU,EAAE,cAAc;AACtC,YAAY,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AACpD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,WAAW,EAAE;AAC1B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;AACrC,QAAQ,OAAO,IAAI,IAAI,CAAC;AACxB,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW;AACvB,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AAC/C;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO;AAChD;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO;AAC3C;AACA;AACA,MAAM,SAAS,GAAG,gBAAgB;AAClC,MAAM,UAAU,GAAG,aAAa;AAChC,MAAM,SAAS,GAAG,2BAA2B;AAC7C;AACA;AACA,MAAM,SAAS,GAAG,wFAAwF;AAC1G,MAAM,WAAW,GAAG,mBAAmB;AACvC,MAAM,QAAQ,GAAG,kDAAkD;AACnE,MAAM,aAAa,GAAG,0SAA0S;AAChU;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAU,GAAG,oFAAoF;AACvG;AACA;AACA;AACA,MAAM,WAAW,GAAG,CAAC,oDAAoD,CAAC;AAC1E,IAAI,UAAU;AACd;AACA,MAAM,SAAS,GAAG,qHAAqH;AACvI,MAAM,aAAa,GAAG,0IAA0I;AAChK;AACA;AACA,MAAM,SAAS,GAAG,upBAAupB;AACzqB,MAAM,aAAa,GAAG,yrBAAyrB;AAC/sB;AACA,MAAM,WAAW,GAAG,kEAAkE;AACtF;AACA,MAAM,cAAc,GAAG,wEAAwE;AAC/F;AACA;AACA;AACA;AACA;AACA,MAAM,eAAe,GAAG,CAAC,iMAAiM,CAAC;AAC3N,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AACpD,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B,IAAI,IAAI,kBAAkB,GAAG,CAAC,QAAQ,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,QAAQ,kBAAkB,GAAG,CAAC,EAAE,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7E;AACA,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;AACrC,QAAQ,kBAAkB,GAAG,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC;AAC9D;AACA,IAAI,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC;AACzD,IAAI,OAAO,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAClF;AACA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD;AACA;AACO,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,IAAI,MAAM,IAAI,GAAG,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,CAAC,MAAM;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AACzC,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC;AACA,SAAS,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE;AAChC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC9D,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC9D,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,KAAK;AAChB;AACA,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE;AAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3B,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI;AACR,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACvC;AACA,QAAQ,MAAM,MAAM,GAAG;AACvB,aAAa,OAAO,CAAC,IAAI,EAAE,GAAG;AAC9B,aAAa,OAAO,CAAC,IAAI,EAAE,GAAG;AAC9B,aAAa,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;AACzE,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;AAC3D,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE,GAAG,KAAK,KAAK;AACtD,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG;AACxB,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG;AACtC,YAAY,OAAO,KAAK;AACxB,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM;AACV,QAAQ,OAAO,KAAK;AACpB;AACA;AACA,SAAS,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE;AAClC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAClE,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAClE,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,KAAK;AAChB;AACO,MAAM,SAAS,SAAS,OAAO,CAAC;AACvC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE;AACxC,QAAQ,IAAI,GAAG,GAAG,SAAS;AAC3B,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9C,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AACtC,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;AACrD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,SAAS;AACpD,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;AACrD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,OAAO;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK;AAC9D,gBAAgB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK;AAChE,gBAAgB,IAAI,MAAM,IAAI,QAAQ,EAAE;AACxC,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,IAAI,MAAM,EAAE;AAChC,wBAAwB,iBAAiB,CAAC,GAAG,EAAE;AAC/C,4BAA4B,IAAI,EAAE,YAAY,CAAC,OAAO;AACtD,4BAA4B,OAAO,EAAE,KAAK,CAAC,KAAK;AAChD,4BAA4B,IAAI,EAAE,QAAQ;AAC1C,4BAA4B,SAAS,EAAE,IAAI;AAC3C,4BAA4B,KAAK,EAAE,IAAI;AACvC,4BAA4B,OAAO,EAAE,KAAK,CAAC,OAAO;AAClD,yBAAyB,CAAC;AAC1B;AACA,yBAAyB,IAAI,QAAQ,EAAE;AACvC,wBAAwB,iBAAiB,CAAC,GAAG,EAAE;AAC/C,4BAA4B,IAAI,EAAE,YAAY,CAAC,SAAS;AACxD,4BAA4B,OAAO,EAAE,KAAK,CAAC,KAAK;AAChD,4BAA4B,IAAI,EAAE,QAAQ;AAC1C,4BAA4B,SAAS,EAAE,IAAI;AAC3C,4BAA4B,KAAK,EAAE,IAAI;AACvC,4BAA4B,OAAO,EAAE,KAAK,CAAC,OAAO;AAClD,yBAAyB,CAAC;AAC1B;AACA,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7C,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,OAAO;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7C,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,oBAAoB,UAAU,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;AAC7D;AACA,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,OAAO;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACnD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,QAAQ;AAC5C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7C,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,OAAO;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AACvC;AACA,gBAAgB,MAAM;AACtB,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,KAAK;AACzC,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7C,gBAAgB,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC;AACzC,gBAAgB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/D,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,OAAO;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;AAC9C;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AAChD,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AACvE,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;AACvF,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AACnD,gBAAgB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;AACrD;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AACnD,gBAAgB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;AACrD;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAClD,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACzD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE;AAC/D,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AAChD,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACvD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE;AAC7D,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AAChD,gBAAgB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;AAClD,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7C,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,UAAU;AAC9C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,MAAM,KAAK,GAAG,SAAS;AACvC,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7C,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAC9C,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7C,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;AAChD,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACrD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,UAAU;AAC9C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;AAC1C,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3D,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,IAAI;AACxC,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;AACxD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,KAAK;AACzC,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AAC5C,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7D,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,MAAM;AAC1C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACnD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,QAAQ;AAC5C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AACjD,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACtD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,UAAU,EAAE,WAAW;AAC/C,wBAAwB,IAAI,EAAE,YAAY,CAAC,cAAc;AACzD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC;AACA;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AAC1D;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC3D,YAAY,UAAU;AACtB,YAAY,IAAI,EAAE,YAAY,CAAC,cAAc;AAC7C,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAChF;AACA,IAAI,GAAG,CAAC,OAAO,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC9E;AACA,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAChF;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/E;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AACjF;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/E;AACA,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAChF;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/E;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AACjF;AACA,IAAI,SAAS,CAAC,OAAO,EAAE;AACvB;AACA,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,OAAO,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC9E;AACA,IAAI,EAAE,CAAC,OAAO,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7E;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/E;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACzC,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC;AAClC,gBAAgB,IAAI,EAAE,UAAU;AAChC,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,OAAO,EAAE,OAAO;AAChC,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,SAAS,EAAE,OAAO,OAAO,EAAE,SAAS,KAAK,WAAW,GAAG,IAAI,GAAG,OAAO,EAAE,SAAS;AAC5F,YAAY,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;AAC5C,YAAY,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK;AAC1C,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;AACnD,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACxD;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACzC,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC;AAClC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,OAAO,EAAE,OAAO;AAChC,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,SAAS,EAAE,OAAO,OAAO,EAAE,SAAS,KAAK,WAAW,GAAG,IAAI,GAAG,OAAO,EAAE,SAAS;AAC5F,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;AACnD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AACnF;AACA,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,QAAQ,EAAE,OAAO,EAAE,QAAQ;AACvC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;AACnD,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,SAAS;AAC5B,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,SAAS;AAC5B,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK,EAAE,GAAG;AACtB,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC1C,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvD;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3D,SAAS,CAAC;AACV;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAClE,SAAS,CAAC;AACV;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAClE,SAAS,CAAC;AACV;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC;AACtE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC;AACtE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;AACnE;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;AACjE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;AACnE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;AACnE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;AAChE;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAClE;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpE;AACA,IAAI,IAAI,WAAW,GAAG;AACtB;AACA,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC;AACvE;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC/B,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;AACvC,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE;AACvC,IAAI,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM;AACnE,IAAI,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM;AACrE,IAAI,MAAM,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY;AAC5E,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1E,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC5E,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,IAAI,EAAE,IAAI,QAAQ;AAC9C;AACO,MAAM,SAAS,SAAS,OAAO,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;AACnC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,GAAG,SAAS;AAC3B,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE;AACxC,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9C,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AACtC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,YAAY;AACvD,wBAAwB,QAAQ,EAAE,SAAS;AAC3C,wBAAwB,QAAQ,EAAE,OAAO;AACzC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AACvG,gBAAgB,IAAI,QAAQ,EAAE;AAC9B,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,SAAS;AACpD,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,SAAS,EAAE,KAAK,CAAC,SAAS;AAClD,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AACrG,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,OAAO;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,SAAS,EAAE,KAAK,CAAC,SAAS;AAClD,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAClD,gBAAgB,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACvE,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,eAAe;AAC1D,wBAAwB,UAAU,EAAE,KAAK,CAAC,KAAK;AAC/C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC9C,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,UAAU;AACrD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC;AACA;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AAC1D;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9E;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9E;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;AAC9C,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACnC,gBAAgB;AAChB,oBAAoB,IAAI;AACxB,oBAAoB,KAAK;AACzB,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AACxD,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,OAAO,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,KAAK,EAAE,MAAM,CAAC,gBAAgB;AAC1C,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC,CAAC,SAAS,CAAC;AACrB,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,KAAK,EAAE,MAAM,CAAC,gBAAgB;AAC1C,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3H;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,EAAE;AACvF,gBAAgB,OAAO,IAAI;AAC3B;AACA,iBAAiB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACxC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA,iBAAiB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACxC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC3D;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC/B,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;AACvC,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,SAAS,SAAS,OAAO,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC3B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC3B;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,IAAI;AAChB,gBAAgB,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/C;AACA,YAAY,MAAM;AAClB,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACnD;AACA;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC/C;AACA,QAAQ,IAAI,GAAG,GAAG,SAAS;AAC3B,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE;AACxC,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9C,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AACtC,gBAAgB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AACvG,gBAAgB,IAAI,QAAQ,EAAE;AAC9B,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,SAAS;AACpD,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,SAAS,EAAE,KAAK,CAAC,SAAS;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AACrG,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,OAAO;AAClD,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,SAAS,EAAE,KAAK,CAAC,SAAS;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAClD,gBAAgB,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AAC5D,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,eAAe;AAC1D,wBAAwB,UAAU,EAAE,KAAK,CAAC,KAAK;AAC/C,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC;AACA;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AAC1D;AACA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC/C,QAAQ,iBAAiB,CAAC,GAAG,EAAE;AAC/B,YAAY,IAAI,EAAE,YAAY,CAAC,YAAY;AAC3C,YAAY,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC1C,YAAY,QAAQ,EAAE,GAAG,CAAC,UAAU;AACpC,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9E;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7E;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9E;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;AAC9C,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACnC,gBAAgB;AAChB,oBAAoB,IAAI;AACxB,oBAAoB,KAAK;AACzB,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AACxD,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5B,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,KAAK;AACjB,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG;AAClB;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC/B,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;AACvC,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,UAAU,SAAS,OAAO,CAAC;AACxC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AAC5C;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,OAAO,EAAE;AAClD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,OAAO;AAC/C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAChC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;AACvC,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,OAAO,SAAS,OAAO,CAAC;AACrC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE;AAC/C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,IAAI;AAC5C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AAChD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE;AACxC,QAAQ,IAAI,GAAG,GAAG,SAAS;AAC3B,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9C,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AACtC,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE;AACxD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,SAAS;AACpD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,MAAM;AACpC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAC3C,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE;AACxD,oBAAoB,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC;AAC1D,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,OAAO;AAClD,wBAAwB,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9C,wBAAwB,SAAS,EAAE,IAAI;AACvC,wBAAwB,KAAK,EAAE,KAAK;AACpC,wBAAwB,OAAO,EAAE,KAAK,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,MAAM;AACpC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvC;AACA;AACA,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,MAAM,CAAC,KAAK;AAChC,YAAY,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACjD,SAAS;AACT;AACA,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,OAAO,CAAC;AAC3B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;AACpC,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,YAAY,IAAI,EAAE,KAAK;AACvB,YAAY,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;AACpC,YAAY,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AACjD;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,IAAI,GAAG,GAAG,IAAI;AACtB,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC3C,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE;AACnC,gBAAgB,IAAI,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,GAAG;AAClD,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK;AAClC;AACA;AACA,QAAQ,OAAO,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AACjD;AACA;AACA,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC7B,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;AACvC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,SAAS,SAAS,OAAO,CAAC;AACvC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC/B,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,YAAY,SAAS,OAAO,CAAC;AAC1C,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,SAAS,EAAE;AACpD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,SAAS;AACjD,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,YAAY,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAClC,IAAI,OAAO,IAAI,YAAY,CAAC;AAC5B,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,YAAY;AACpD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,OAAO,SAAS,OAAO,CAAC;AACrC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE;AAC/C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,IAAI;AAC5C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC7B,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,MAAM,SAAS,OAAO,CAAC;AACpC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC5B,IAAI,OAAO,IAAI,MAAM,CAAC;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,MAAM;AAC9C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,UAAU,SAAS,OAAO,CAAC;AACxC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAChC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,QAAQ,SAAS,OAAO,CAAC;AACtC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC/C,QAAQ,iBAAiB,CAAC,GAAG,EAAE;AAC/B,YAAY,IAAI,EAAE,YAAY,CAAC,YAAY;AAC3C,YAAY,QAAQ,EAAE,aAAa,CAAC,KAAK;AACzC,YAAY,QAAQ,EAAE,GAAG,CAAC,UAAU;AACpC,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC9B,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,OAAO,SAAS,OAAO,CAAC;AACrC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,SAAS,EAAE;AACpD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,IAAI;AAC5C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC7B,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,QAAQ,SAAS,OAAO,CAAC;AACtC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AAC7B,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,KAAK,EAAE;AACpD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC7C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,EAAE;AACtC,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK;AAClE,YAAY,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK;AACpE,YAAY,IAAI,MAAM,IAAI,QAAQ,EAAE;AACpC,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,SAAS;AAChF,oBAAoB,OAAO,GAAG,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;AAC3E,oBAAoB,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;AACzE,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,IAAI;AAC/B,oBAAoB,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO;AACpD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE;AACpC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE;AACvD,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,SAAS;AAChD,oBAAoB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK;AAChD,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO;AAClD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE;AACpC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE;AACvD,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,OAAO;AAC9C,oBAAoB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK;AAChD,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO;AAClD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AAC9D,gBAAgB,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3F,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACjC,gBAAgB,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7D,aAAa,CAAC;AACd;AACA,QAAQ,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AACtD,YAAY,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACtF,SAAS,CAAC;AACV,QAAQ,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;AACrD;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7B;AACA,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACjF,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACjF,SAAS,CAAC;AACV;AACA,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7E,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;AACnC;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AACtC,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,WAAW,EAAE,IAAI;AACzB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,IAAI,IAAI,MAAM,YAAY,SAAS,EAAE;AACrC,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE;AACxC,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACjD,YAAY,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AAC3E;AACA,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,MAAM,CAAC,IAAI;AAC1B,YAAY,KAAK,EAAE,MAAM,QAAQ;AACjC,SAAS,CAAC;AACV;AACA,SAAS,IAAI,MAAM,YAAY,QAAQ,EAAE;AACzC,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,MAAM,CAAC,IAAI;AAC1B,YAAY,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;AAChD,SAAS,CAAC;AACV;AACA,SAAS,IAAI,MAAM,YAAY,WAAW,EAAE;AAC5C,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAClE;AACA,SAAS,IAAI,MAAM,YAAY,WAAW,EAAE;AAC5C,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAClE;AACA,SAAS,IAAI,MAAM,YAAY,QAAQ,EAAE;AACzC,QAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF;AACA,SAAS;AACT,QAAQ,OAAO,MAAM;AACrB;AACA;AACO,MAAM,SAAS,SAAS,OAAO,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM;AAClC;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;AACjC,YAAY,OAAO,IAAI,CAAC,OAAO;AAC/B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACvC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC3C,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO;AAC3B;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;AAC5D,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,YAAY,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,EAAE;AAC5F,YAAY,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;AACxC,gBAAgB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9C,oBAAoB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC;AACA;AACA;AACA,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACrC,YAAY,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;AAC3C,YAAY,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC,YAAY,KAAK,CAAC,IAAI,CAAC;AACvB,gBAAgB,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AACpD,gBAAgB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7F,gBAAgB,SAAS,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI;AAC1C,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,YAAY,QAAQ,EAAE;AACpD,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW;AACrD,YAAY,IAAI,WAAW,KAAK,aAAa,EAAE;AAC/C,gBAAgB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AAC7C,oBAAoB,KAAK,CAAC,IAAI,CAAC;AAC/B,wBAAwB,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AAC5D,wBAAwB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACxE,qBAAqB,CAAC;AACtB;AACA;AACA,iBAAiB,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC/C,gBAAgB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1C,oBAAoB,iBAAiB,CAAC,GAAG,EAAE;AAC3C,wBAAwB,IAAI,EAAE,YAAY,CAAC,iBAAiB;AAC5D,wBAAwB,IAAI,EAAE,SAAS;AACvC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA;AACA,iBAAiB,IAAI,WAAW,KAAK,OAAO,EAAE;AAE9C,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,oDAAoD,CAAC,CAAC;AACvF;AACA;AACA,aAAa;AACb;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC/C,YAAY,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACzC,gBAAgB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,gBAAgB,KAAK,CAAC,IAAI,CAAC;AAC3B,oBAAoB,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AACxD,oBAAoB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5F,qBAAqB;AACrB,oBAAoB,SAAS,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI;AAC9C,iBAAiB,CAAC;AAClB;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,OAAO;AAClC,iBAAiB,IAAI,CAAC,YAAY;AAClC,gBAAgB,MAAM,SAAS,GAAG,EAAE;AACpC,gBAAgB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC1C,oBAAoB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG;AAC9C,oBAAoB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK;AAClD,oBAAoB,SAAS,CAAC,IAAI,CAAC;AACnC,wBAAwB,GAAG;AAC3B,wBAAwB,KAAK;AAC7B,wBAAwB,SAAS,EAAE,IAAI,CAAC,SAAS;AACjD,qBAAqB,CAAC;AACtB;AACA,gBAAgB,OAAO,SAAS;AAChC,aAAa;AACb,iBAAiB,IAAI,CAAC,CAAC,SAAS,KAAK;AACrC,gBAAgB,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;AACrE,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;AAC7D;AACA;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChC;AACA,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,SAAS,CAAC,QAAQ;AAC1B,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW,EAAE,QAAQ;AACjC,YAAY,IAAI,OAAO,KAAK;AAC5B,kBAAkB;AAClB,oBAAoB,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK;AAC9C,wBAAwB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY;AACzG,wBAAwB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;AAC9D,4BAA4B,OAAO;AACnC,gCAAgC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,YAAY;AAC5F,6BAA6B;AAC7B,wBAAwB,OAAO;AAC/B,4BAA4B,OAAO,EAAE,YAAY;AACjD,yBAAyB;AACzB,qBAAqB;AACrB;AACA,kBAAkB,EAAE,CAAC;AACrB,SAAS,CAAC;AACV;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW,EAAE,OAAO;AAChC,SAAS,CAAC;AACV;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,WAAW,EAAE,aAAa;AACtC,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,YAAY,EAAE;AACzB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,OAAO;AAC1B,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,gBAAgB,GAAG,YAAY;AAC/B,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;AACrC,YAAY,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;AACjD,YAAY,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;AAC3C,YAAY,KAAK,EAAE,OAAO;AAC1B,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACpC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;AACvC,aAAa,CAAC;AACd,YAAY,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACrD,SAAS,CAAC;AACV,QAAQ,OAAO,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,EAAE,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,QAAQ,EAAE,KAAK;AAC3B,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACjD,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC9C,gBAAgB,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C;AACA;AACA,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,MAAM,KAAK;AAC9B,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC5B,gBAAgB,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C;AACA;AACA,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,MAAM,KAAK;AAC9B,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC;AACnC;AACA,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvD,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/C,YAAY,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACpC,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW;AAC3C;AACA,iBAAiB;AACjB,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,EAAE;AACtD;AACA;AACA,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,MAAM,QAAQ;AACjC,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACvD,YAAY,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACpC,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/C;AACA,iBAAiB;AACjB,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACnD,gBAAgB,IAAI,QAAQ,GAAG,WAAW;AAC1C,gBAAgB,OAAO,QAAQ,YAAY,WAAW,EAAE;AACxD,oBAAoB,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS;AACtD;AACA,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ;AACxC;AACA;AACA,QAAQ,OAAO,IAAI,SAAS,CAAC;AAC7B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,KAAK,EAAE,MAAM,QAAQ;AACjC,SAAS,CAAC;AACV;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD;AACA;AACA,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AACtC,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,KAAK,EAAE,MAAM,KAAK;AAC1B,QAAQ,WAAW,EAAE,OAAO;AAC5B,QAAQ,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;AACnC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AAC5C,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,KAAK,EAAE,MAAM,KAAK;AAC1B,QAAQ,WAAW,EAAE,QAAQ;AAC7B,QAAQ,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;AACnC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AAC1C,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,KAAK;AACb,QAAQ,WAAW,EAAE,OAAO;AAC5B,QAAQ,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;AACnC,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,SAAS;AACjD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,QAAQ,SAAS,OAAO,CAAC;AACtC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AACzC,QAAQ,SAAS,aAAa,CAAC,OAAO,EAAE;AACxC;AACA,YAAY,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC1C,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;AACtD,oBAAoB,OAAO,MAAM,CAAC,MAAM;AACxC;AACA;AACA,YAAY,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC1C,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;AACtD;AACA,oBAAoB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AACvE,oBAAoB,OAAO,MAAM,CAAC,MAAM;AACxC;AACA;AACA;AACA,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/F,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,aAAa;AAChD,gBAAgB,WAAW;AAC3B,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,KAAK;AAC7D,gBAAgB,MAAM,QAAQ,GAAG;AACjC,oBAAoB,GAAG,GAAG;AAC1B,oBAAoB,MAAM,EAAE;AAC5B,wBAAwB,GAAG,GAAG,CAAC,MAAM;AACrC,wBAAwB,MAAM,EAAE,EAAE;AAClC,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,IAAI;AAChC,iBAAiB;AACjB,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC;AACrD,wBAAwB,IAAI,EAAE,GAAG,CAAC,IAAI;AACtC,wBAAwB,IAAI,EAAE,GAAG,CAAC,IAAI;AACtC,wBAAwB,MAAM,EAAE,QAAQ;AACxC,qBAAqB,CAAC;AACtB,oBAAoB,GAAG,EAAE,QAAQ;AACjC,iBAAiB;AACjB,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;AACnC;AACA,aAAa;AACb,YAAY,IAAI,KAAK,GAAG,SAAS;AACjC,YAAY,MAAM,MAAM,GAAG,EAAE;AAC7B,YAAY,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC1C,gBAAgB,MAAM,QAAQ,GAAG;AACjC,oBAAoB,GAAG,GAAG;AAC1B,oBAAoB,MAAM,EAAE;AAC5B,wBAAwB,GAAG,GAAG,CAAC,MAAM;AACrC,wBAAwB,MAAM,EAAE,EAAE;AAClC,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,IAAI;AAChC,iBAAiB;AACjB,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AACjD,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,QAAQ;AACpC,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;AAC/C,oBAAoB,OAAO,MAAM;AACjC;AACA,qBAAqB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE;AAC9D,oBAAoB,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE;AACrD;AACA,gBAAgB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACnD,oBAAoB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;AACvD;AACA;AACA,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AAClE,gBAAgB,OAAO,KAAK,CAAC,MAAM;AACnC;AACA,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5E,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,aAAa;AAChD,gBAAgB,WAAW;AAC3B,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;AAChC;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AACrC,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,OAAO,EAAE,KAAK;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AAoID,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3B,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC;AAClC,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACvC;AACA,SAAS,IAAI,KAAK,KAAK,aAAa,CAAC,MAAM,IAAI,KAAK,KAAK,aAAa,CAAC,MAAM,EAAE;AAC/E,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACxC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;AACxF,QAAQ,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE;AACrC,QAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;AACtC,YAAY,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3D,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACpC,gBAAgB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;AACvC;AACA,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI;AAC1C;AACA,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5C;AACA,SAAS,IAAI,KAAK,KAAK,aAAa,CAAC,KAAK,IAAI,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE;AAC7E,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;AACnC,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;AACnC;AACA,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACvD,YAAY,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAClC,YAAY,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAClC,YAAY,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;AACzD,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACpC,gBAAgB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;AACvC;AACA,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC3C;AACA,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9C;AACA,SAAS,IAAI,KAAK,KAAK,aAAa,CAAC,IAAI,IAAI,KAAK,KAAK,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACxF,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACvC;AACA,SAAS;AACT,QAAQ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;AAC/B;AACA;AACO,MAAM,eAAe,SAAS,OAAO,CAAC;AAC7C,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,WAAW,KAAK;AAC1D,YAAY,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;AACjE,gBAAgB,OAAO,OAAO;AAC9B;AACA,YAAY,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;AAC3E,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC/B,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,0BAA0B;AACjE,iBAAiB,CAAC;AAClB,gBAAgB,OAAO,OAAO;AAC9B;AACA,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AAC7D,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;AAC/D,SAAS;AACT,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC;AAC/B,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAC5C,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE;AACA,aAAa;AACb,YAAY,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1D,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,MAAM,EAAE,GAAG;AAC3B,aAAa,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC3C,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,MAAM,EAAE,GAAG;AAC3B,aAAa,CAAC,CAAC;AACf;AACA;AACA;AACA,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK;AAClD,IAAI,OAAO,IAAI,eAAe,CAAC;AAC/B,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,eAAe;AACvD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD;AACO,MAAM,QAAQ,SAAS,OAAO,CAAC;AACtC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,KAAK,EAAE;AACpD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC7C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACtD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,SAAS;AAC5C,gBAAgB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAC/C,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;AACnC,QAAQ,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC/D,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,OAAO;AAC1C,gBAAgB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAC/C,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,IAAI,EAAE,OAAO;AAC7B,aAAa,CAAC;AACd,YAAY,MAAM,CAAC,KAAK,EAAE;AAC1B;AACA,QAAQ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI;AAClC,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK;AACtC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;AACvE,YAAY,IAAI,CAAC,MAAM;AACvB,gBAAgB,OAAO,IAAI;AAC3B,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxF,SAAS;AACT,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK;AACxD,gBAAgB,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AAC9D,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC;AACxD;AACA;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK;AAC9B;AACA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,IAAI;AAChB,SAAS,CAAC;AACV;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK;AACvC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACjC,QAAQ,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;AAChF;AACA,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AAuDM,MAAM,MAAM,SAAS,OAAO,CAAC;AACpC,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;AAChC;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,GAAG,EAAE;AAClD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,GAAG;AAC3C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AACzC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;AAC7C,QAAQ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK;AAC3E,YAAY,OAAO;AACnB,gBAAgB,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/F,gBAAgB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACvG,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE;AACtC,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY;AACtD,gBAAgB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC1C,oBAAoB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG;AAC9C,oBAAoB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK;AAClD,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AAChF,wBAAwB,OAAO,OAAO;AACtC;AACA,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE;AAC5E,wBAAwB,MAAM,CAAC,KAAK,EAAE;AACtC;AACA,oBAAoB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AACxD;AACA,gBAAgB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AAChE,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE;AACtC,YAAY,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtC,gBAAgB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AACpC,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxC,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AAC5E,oBAAoB,OAAO,OAAO;AAClC;AACA,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE;AACxE,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AACpD;AACA,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC5D;AACA;AACA;AACA,MAAM,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK;AAChD,IAAI,OAAO,IAAI,MAAM,CAAC;AACtB,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,MAAM;AAC9C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,MAAM,SAAS,OAAO,CAAC;AACpC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,GAAG,EAAE;AAClD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,GAAG;AAC3C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AAC7B,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE;AAClC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;AACnD,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,SAAS;AAChD,oBAAoB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;AAC9C,oBAAoB,IAAI,EAAE,KAAK;AAC/B,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;AAChD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE;AAClC,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;AACnD,gBAAgB,iBAAiB,CAAC,GAAG,EAAE;AACvC,oBAAoB,IAAI,EAAE,YAAY,CAAC,OAAO;AAC9C,oBAAoB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;AAC9C,oBAAoB,IAAI,EAAE,KAAK;AAC/B,oBAAoB,SAAS,EAAE,IAAI;AACnC,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;AAChD,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B;AACA;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS;AAC7C,QAAQ,SAAS,WAAW,CAAC,QAAQ,EAAE;AACvC,YAAY,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE;AACvC,YAAY,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC5C,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;AAChD,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO;AAC9C,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC,gBAAgB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5C;AACA,YAAY,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE;AAC7D;AACA,QAAQ,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClI,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClF;AACA,aAAa;AACb,YAAY,OAAO,WAAW,CAAC,QAAQ,CAAC;AACxC;AACA;AACA,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,MAAM,CAAC;AAC1B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7E,SAAS,CAAC;AACV;AACA,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,MAAM,CAAC;AAC1B,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7E,SAAS,CAAC;AACV;AACA,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;AACzD;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;AACnC;AACA;AACA,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,MAAM,CAAC;AACtB,QAAQ,SAAS;AACjB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,MAAM;AAC9C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AAmHM,MAAM,OAAO,SAAS,OAAO,CAAC;AACrC,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACjC;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC7C,QAAQ,OAAO,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACjF;AACA;AACA,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AACrC,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,UAAU,SAAS,OAAO,CAAC;AACxC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC5C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,GAAG,CAAC,IAAI;AAClC,gBAAgB,IAAI,EAAE,YAAY,CAAC,eAAe;AAClD,gBAAgB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;AACzC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AACrD;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK;AAC9B;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,SAAS,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,MAAM;AACd,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,OAAO;AAC/C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN;AACO,MAAM,OAAO,SAAS,OAAO,CAAC;AACrC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AACzD,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACnD;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,GAAG,CAAC,IAAI;AAClC,gBAAgB,IAAI,EAAE,YAAY,CAAC,kBAAkB;AACrD,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;AAC/B;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC5C,YAAY,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACjC;AACA,QAAQ,OAAO,UAAU;AACzB;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC5C,YAAY,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACjC;AACA,QAAQ,OAAO,UAAU;AACzB;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC5C,YAAY,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;AACjC;AACA,QAAQ,OAAO,UAAU;AACzB;AACA,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;AACxC,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AACtC,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,GAAG,MAAM;AACrB,SAAS,CAAC;AACV;AACA,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;AACxC,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AACnF,YAAY,GAAG,IAAI,CAAC,IAAI;AACxB,YAAY,GAAG,MAAM;AACrB,SAAS,CAAC;AACV;AACA;AACA,OAAO,CAAC,MAAM,GAAG,aAAa;AACvB,MAAM,aAAa,SAAS,OAAO,CAAC;AAC3C,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1E,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,MAAM,EAAE;AAChG,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;AACtE,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AACzD,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5E;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC1C,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;AACtE,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,QAAQ,EAAE,GAAG,CAAC,IAAI;AAClC,gBAAgB,IAAI,EAAE,YAAY,CAAC,kBAAkB;AACrD,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;AAC/B;AACA;AACA,aAAa,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AAC3C,IAAI,OAAO,IAAI,aAAa,CAAC;AAC7B,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,aAAa;AACrD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,UAAU,SAAS,OAAO,CAAC;AACxC,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7B;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AACpF,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,OAAO;AAC/C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3G,QAAQ,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AAC7C,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACnD,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,kBAAkB;AACvD,aAAa,CAAC;AACd,SAAS,CAAC,CAAC;AACX;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AACxC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,UAAU,SAAS,OAAO,CAAC;AACxC,IAAI,SAAS,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;AAC/B;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,qBAAqB,CAAC;AACxE,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;AACzC,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM;AAC9B;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;AAC/C,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,QAAQ,EAAE,CAAC,GAAG,KAAK;AAC/B,gBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;AAC3C,gBAAgB,IAAI,GAAG,CAAC,KAAK,EAAE;AAC/B,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA,qBAAqB;AACrB,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA,aAAa;AACb,YAAY,IAAI,IAAI,GAAG;AACvB,gBAAgB,OAAO,GAAG,CAAC,IAAI;AAC/B,aAAa;AACb,SAAS;AACT,QAAQ,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5D,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;AAC1C,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;AAClE,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAClC,gBAAgB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,SAAS,KAAK;AAC5E,oBAAoB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAClD,wBAAwB,OAAO,OAAO;AACtC,oBAAoB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACtE,wBAAwB,IAAI,EAAE,SAAS;AACvC,wBAAwB,IAAI,EAAE,GAAG,CAAC,IAAI;AACtC,wBAAwB,MAAM,EAAE,GAAG;AACnC,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;AACnD,wBAAwB,OAAO,OAAO;AACtC,oBAAoB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;AACjD,wBAAwB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,oBAAoB,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO;AAChD,wBAAwB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,oBAAoB,OAAO,MAAM;AACjC,iBAAiB,CAAC;AAClB;AACA,iBAAiB;AACjB,gBAAgB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAC9C,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC3D,oBAAoB,IAAI,EAAE,SAAS;AACnC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;AAC/C,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;AAC7C,oBAAoB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,gBAAgB,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO;AAC5C,oBAAoB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,gBAAgB,OAAO,MAAM;AAC7B;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;AAC1C,YAAY,MAAM,iBAAiB,GAAG,CAAC,GAAG,KAAK;AAC/C,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC/D,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AACtC,oBAAoB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAClD;AACA,gBAAgB,IAAI,MAAM,YAAY,OAAO,EAAE;AAC/C,oBAAoB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC;AAChI;AACA,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC5C,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAC1D,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;AAC9C,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;AAC5C,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC;AACA,gBAAgB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9C,gBAAgB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;AACnE;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;AACrH,oBAAoB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;AAClD,wBAAwB,OAAO,OAAO;AACtC,oBAAoB,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;AAChD,wBAAwB,MAAM,CAAC,KAAK,EAAE;AACtC,oBAAoB,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM;AACrE,wBAAwB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;AAC3E,qBAAqB,CAAC;AACtB,iBAAiB,CAAC;AAClB;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;AACzC,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC5C,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AACzD,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAClC,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;AACrE,gBAAgB,IAAI,MAAM,YAAY,OAAO,EAAE;AAC/C,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,+FAA+F,CAAC,CAAC;AACtI;AACA,gBAAgB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;AAC9D;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACpH,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACtC,wBAAwB,OAAO,OAAO;AACtC,oBAAoB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM;AACrG,wBAAwB,MAAM,EAAE,MAAM,CAAC,KAAK;AAC5C,wBAAwB,KAAK,EAAE,MAAM;AACrC,qBAAqB,CAAC,CAAC;AACvB,iBAAiB,CAAC;AAClB;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAChC;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK;AAChD,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,MAAM;AACd,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,MAAM;AACd,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACD,UAAU,CAAC,oBAAoB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK;AAClE,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,MAAM;AACd,QAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;AAC7D,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AAEM,MAAM,WAAW,SAAS,OAAO,CAAC;AACzC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,SAAS,EAAE;AACpD,YAAY,OAAO,EAAE,CAAC,SAAS,CAAC;AAChC;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AAChD;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,WAAW;AACnD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,WAAW,SAAS,OAAO,CAAC;AACzC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE;AAC/C,YAAY,OAAO,EAAE,CAAC,IAAI,CAAC;AAC3B;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AAChD;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,WAAW;AACnD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,UAAU,SAAS,OAAO,CAAC;AACxC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI;AAC3B,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,SAAS,EAAE;AACxD,YAAY,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC3C;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAC1C,YAAY,IAAI;AAChB,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,MAAM,EAAE,GAAG;AACvB,SAAS,CAAC;AACV;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACtC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,UAAU;AAClD,QAAQ,YAAY,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO;AAClG,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,QAAQ,SAAS,OAAO,CAAC;AACtC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD;AACA,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,GAAG,GAAG;AAClB,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,GAAG,CAAC,MAAM;AAC7B,gBAAgB,MAAM,EAAE,EAAE;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAClD,YAAY,IAAI,EAAE,MAAM,CAAC,IAAI;AAC7B,YAAY,IAAI,EAAE,MAAM,CAAC,IAAI;AAC7B,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,MAAM;AACzB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC3C,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,OAAO;AACnC,oBAAoB,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK;AAC7C,0BAA0B,MAAM,CAAC;AACjC,0BAA0B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/C,4BAA4B,IAAI,KAAK,GAAG;AACxC,gCAAgC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACzE,6BAA6B;AAC7B,4BAA4B,KAAK,EAAE,MAAM,CAAC,IAAI;AAC9C,yBAAyB,CAAC;AAC1B,iBAAiB;AACjB,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,OAAO;AACnB,gBAAgB,MAAM,EAAE,OAAO;AAC/B,gBAAgB,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK;AACzC,sBAAsB,MAAM,CAAC;AAC7B,sBAAsB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,wBAAwB,IAAI,KAAK,GAAG;AACpC,4BAA4B,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACrE,yBAAyB;AACzB,wBAAwB,KAAK,EAAE,MAAM,CAAC,IAAI;AAC1C,qBAAqB,CAAC;AACtB,aAAa;AACb;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACpC,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,QAAQ;AAChD,QAAQ,UAAU,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK;AAC1F,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AACM,MAAM,MAAM,SAAS,OAAO,CAAC;AACpC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/C,QAAQ,IAAI,UAAU,KAAK,aAAa,CAAC,GAAG,EAAE;AAC9C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnD,YAAY,iBAAiB,CAAC,GAAG,EAAE;AACnC,gBAAgB,IAAI,EAAE,YAAY,CAAC,YAAY;AAC/C,gBAAgB,QAAQ,EAAE,aAAa,CAAC,GAAG;AAC3C,gBAAgB,QAAQ,EAAE,GAAG,CAAC,UAAU;AACxC,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;AACrD;AACA;AACA,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK;AAC5B,IAAI,OAAO,IAAI,MAAM,CAAC;AACtB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,MAAM;AAC9C,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AAEM,MAAM,UAAU,SAAS,OAAO,CAAC;AACxC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACvD,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI;AAC7B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,YAAY,IAAI;AAChB,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,MAAM,EAAE,GAAG;AACvB,SAAS,CAAC;AACV;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;AAC7B;AACA;AACO,MAAM,WAAW,SAAS,OAAO,CAAC;AACzC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAC/D,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,MAAM,WAAW,GAAG,YAAY;AAC5C,gBAAgB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;AAChE,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;AACjD,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE;AACjD,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC,oBAAoB,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChD;AACA,qBAAqB;AACrB,oBAAoB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;AACrD,wBAAwB,IAAI,EAAE,QAAQ,CAAC,KAAK;AAC5C,wBAAwB,IAAI,EAAE,GAAG,CAAC,IAAI;AACtC,wBAAwB,MAAM,EAAE,GAAG;AACnC,qBAAqB,CAAC;AACtB;AACA,aAAa;AACb,YAAY,OAAO,WAAW,EAAE;AAChC;AACA,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;AACrD,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,gBAAgB,MAAM,EAAE,GAAG;AAC3B,aAAa,CAAC;AACd,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;AAC7C,gBAAgB,OAAO,OAAO;AAC9B,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE;AAC7C,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,OAAO;AACnC,oBAAoB,KAAK,EAAE,QAAQ,CAAC,KAAK;AACzC,iBAAiB;AACjB;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AAChD,oBAAoB,IAAI,EAAE,QAAQ,CAAC,KAAK;AACxC,oBAAoB,IAAI,EAAE,GAAG,CAAC,IAAI;AAClC,oBAAoB,MAAM,EAAE,GAAG;AAC/B,iBAAiB,CAAC;AAClB;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACxB,QAAQ,OAAO,IAAI,WAAW,CAAC;AAC/B,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,GAAG,EAAE,CAAC;AAClB,YAAY,QAAQ,EAAE,qBAAqB,CAAC,WAAW;AACvD,SAAS,CAAC;AACV;AACA;AACO,MAAM,WAAW,SAAS,OAAO,CAAC;AACzC,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACxD,QAAQ,MAAM,MAAM,GAAG,CAAC,IAAI,KAAK;AACjC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AAC/B,gBAAgB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACtD;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AACrF;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;AAClC;AACA;AACA,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACvC,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,QAAQ,EAAE,qBAAqB,CAAC,WAAW;AACnD,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACtC,KAAK,CAAC;AACN,CAAC;AAkDM,IAAI,qBAAqB;AAChC,CAAC,UAAU,qBAAqB,EAAE;AAClC,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC9C,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,cAAc,CAAC,GAAG,cAAc;AAC1D,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC9C,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,uBAAuB,CAAC,GAAG,uBAAuB;AAC5E,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;AAChE,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW;AACpD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC9C,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC9C,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS;AAChD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,eAAe,CAAC,GAAG,eAAe;AAC5D,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,UAAU,CAAC,GAAG,UAAU;AAClD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,YAAY,CAAC,GAAG,YAAY;AACtD,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,aAAa;AACxD,CAAC,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,EAAE,CAAC,CAAC;AAUzD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM;AACnC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM;AAGnC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM;AAOnB,QAAQ,CAAC;AAE3B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACjC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM;AAEjB,QAAQ,CAAC;AAEF,eAAe,CAAC;AACvB,QAAQ,CAAC;AAOV,OAAO,CAAC;AAEL,UAAU,CAAC;AAEV,WAAW,CAAC;AACZ,WAAW,CAAC;;ACrlHjC;AACA,SAAS,qBAAqB,CAAC,QAAgB,EAAA;AAC9C,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,EAAE;IAExB,IAAI,IAAI,GAAG,QAAQ;;IAGnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9B,MAAM,cAAc,GAAa,EAAE;IACnC,IAAI,QAAQ,GAAG,KAAK;IACpB,IAAI,QAAQ,GAAG,KAAK;AAEpB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACrB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE;;AAG/B,QAAA,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACjC,IAAI,CAAC,QAAQ,EAAE;AACd,gBAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC3B,QAAQ,GAAG,IAAI;;AAEhB,YAAA,cAAc,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,KAAA,CAAO,CAAC;;;AAGvD,aAAA,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACtC,IAAI,CAAC,QAAQ,EAAE;AACd,gBAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC3B,QAAQ,GAAG,IAAI;;AAEhB,YAAA,cAAc,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA,KAAA,CAAO,CAAC;;;aAGlE;;YAEJ,IAAI,QAAQ,EAAE;AACb,gBAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5B,QAAQ,GAAG,KAAK;;YAEjB,IAAI,QAAQ,EAAE;AACb,gBAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5B,QAAQ,GAAG,KAAK;;;YAIjB,IAAI,WAAW,EAAE;AAChB,gBAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;iBACnB;AACN,gBAAA,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;;;;;AAM1B,IAAA,IAAI,QAAQ;AAAE,QAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1C,IAAA,IAAI,QAAQ;AAAE,QAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAE1C,IAAA,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGhC,IAAA,QACC;;AAEE,SAAA,OAAO,CAAC,cAAc,EAAE,aAAa;AACrC,SAAA,OAAO,CAAC,aAAa,EAAE,aAAa;AACpC,SAAA,OAAO,CAAC,YAAY,EAAE,aAAa;;AAEnC,SAAA,OAAO,CAAC,gBAAgB,EAAE,qBAAqB;;AAE/C,SAAA,OAAO,CAAC,YAAY,EAAE,aAAa;;AAEnC,SAAA,OAAO,CAAC,YAAY,EAAE,WAAW;;AAEjC,SAAA,OAAO,CAAC,0BAA0B,EAAE,qBAAqB;;AAEzD,SAAA,OAAO,CAAC,YAAY,EAAE,6BAA6B;;AAEnD,SAAA,OAAO,CAAC,qBAAqB,EAAE,WAAW;;AAE1C,SAAA,OAAO,CAAC,cAAc,EAAE,EAAE;;AAE1B,SAAA,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;AAE/B;AAgEA,MAAMC,WAAS,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,MAClDR,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,QAAA,EAEtBA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAC/B,CACN;AAED,MAAMS,UAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,MACjDC,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,QAAA,EAAA,CAEtBV,cAAM,CAAC,EAAC,mCAAmC,EAAA,CAAG,EAC9CA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,mCAAmC,EAAA,CAAG,EAC9CA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kCAAkC,EAAA,CAAG,CAAA,EAAA,CACxC,CACN;AAoBK,SAAU,sBAAsB,CAAC,EACtC,MAAM,EACN,OAAO,EACP,SAAS,EACT,iBAAiB,GACY,EAAA;AAC7B,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AAEtC,IAAA,MAAM,WAAW,GAAG,SAAS,CAAC,qBAAqB;;AAGnD,IAAA,MAAM,eAAe,GAAGE,uBAAK,CAAC,OAAO,CAAC,MAAK;QAC1C,IAAI,CAAC,SAAS,CAAC,WAAW;AAAE,YAAA,OAAO,EAAE;QAErC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,SAAS,CAAC,WAAW,CAAC;;QAGtE,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BkC,yCAAA,EAAA,iBAAiB,QAAQ;AACnE,KAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAG,MAAK;QAC/B,iBAAiB,CAAC,SAAS,CAAC;AAC5B,QAAA,OAAO,EAAE;AACV,KAAC;IAED,QACCF,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,OAAO,EAAE,mBAAmB;AAC5B,SAAA,EACD,OAAO,EAAE,OAAO,EAAA,QAAA,EAEhBU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gBAAA,eAAe,EAAE,yBAAyB;AAC1C,gBAAA,YAAY,EAAE,yBAAyB;AACvC,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,QAAQ,EAAE,MAAM;AAChB,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,gBAAA,SAAS,EAAE,2EAA2E;AACtF,gBAAA,UAAU,EAAE,uBAAuB;AACnC,aAAA,EACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,aAGnCV,GAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;AACN,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,GAAG,EAAE,mBAAmB;AACxB,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,MAAM,EAAE,kCAAkC;AAC1C,wBAAA,QAAQ,EAAE,MAAM;AAChB,wBAAA,MAAM,EAAE,SAAS;AACjB,wBAAA,KAAK,EAAE,sBAAsB;AAC7B,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,OAAO,EAAE,MAAM;AACf,wBAAA,UAAU,EAAE,QAAQ;AACpB,wBAAA,cAAc,EAAE,QAAQ;AACxB,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,MAAM,EAAE,EAAE;AACV,qBAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;wBACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,wBAAwB;AACjE,qBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;wBACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,yBAAyB;AAClE,qBAAC,EAAA,QAAA,EAAA,QAAA,EAAA,CAGO,EAGTU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,EAAA,QAAA,EAAA,CAEjDA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,YAAY,EAAE,MAAM;AACpB,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,eAAe,EAAE,4BAA4B;AAC7C,gCAAA,YAAY,EAAE,yBAAyB;AACvC,gCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;6BAC1C,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAECV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,MAAM;AAChB,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,KAAK,EAAE,2BAA2B;AAClC,gDAAA,YAAY,EAAE,KAAK;AACnB,gDAAA,UAAU,EAAE,uBAAuB;6CACnC,EAAA,QAAA,EAEA,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAA,CACnB,EAENA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,MAAM;AAChB,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,YAAY,EAAE,MAAM;AACpB,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,MAAM,EAAE,YAAY;6CACpB,EAAA,QAAA,EAEA,SAAS,CAAC,IAAI,EAAA,CACX,IACA,EAEL,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,KACvDA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAEhEA,aAAK,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAA,QAAA,EACnCA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,SAAS,EAAE,MAAM;AACjB,gDAAA,OAAO,EAAE,GAAG;AACZ,gDAAA,MAAM,EAAE,GAAG;AACX,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,aAAa,EAAE,QAAQ;AACvB,gDAAA,GAAG,EAAE,KAAK;6CACV,EAAA,QAAA,EAEA,SAAS,CAAC;iDACT,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,EAAE;iDACtC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,MACrBU,IAAA,CAAA,IAAA,EAAA,EAEC,KAAK,EAAE;AACN,oDAAA,OAAO,EAAE,MAAM;AACf,oDAAA,UAAU,EAAE,YAAY;AACxB,oDAAA,GAAG,EAAE,MAAM;AACX,oDAAA,UAAU,EAAE,uBAAuB;AACnC,oDAAA,QAAQ,EAAE,MAAM;AAChB,oDAAA,UAAU,EAAE,KAAK;AACjB,oDAAA,KAAK,EAAE,sBAAsB;iDAC7B,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,EAAA,QAAA,EAC9CA,GAAA,CAACQ,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,yBAAyB,EAAA,CAAG,EAAA,CAClD,EACNR,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,SAAS,CAAC,IAAI,EAAE,GAAQ,CAAA,EAAA,EAd1B,KAAK,CAeN,CACL,CAAC,EAAA,CACC,GACA,EAAA,CACD,CACN,CAAA,EAAA,CACI,EAGL,SAAS,CAAC,WAAW,KACrBA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,YAAY,EAAE,MAAM;AACpB,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,QAAQ,EAAE,MAAM;AAChB,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,UAAU,EAAE,uBAAuB;AACnC,gCAAA,OAAO,EAAE,UAAU;AACnB,6BAAA,EACD,uBAAuB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAA,CACnD,CACF,EAGDU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,cAAc,EAAE,eAAe;AAC/B,gCAAA,UAAU,EAAE,QAAQ;AACpB,gCAAA,SAAS,EAAE,MAAM;AACjB,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,eAAe,EAAE,4BAA4B;AAC7C,gCAAA,YAAY,EAAE,yBAAyB;AACvC,gCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;6BAC1C,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACCV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,MAAM;AAChB,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,YAAY,EAAE,KAAK;6CACnB,EAAA,QAAA,EAAA,UAAA,EAAA,CAGI,EACNA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,MAAM;AAChB,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,uBAAuB;AACnC,6CAAA,EAAA,QAAA,EAEA,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,GAC/B,CAAA,EAAA,CACD,EACL,WAAW,KACXU,IAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE;AACN,wCAAA,eAAe,EAAE,2BAA2B;AAC5C,wCAAA,KAAK,EAAE,OAAO;AACd,wCAAA,OAAO,EAAE,WAAW;AACpB,wCAAA,MAAM,EAAE,MAAM;AACd,wCAAA,YAAY,EAAE,yBAAyB;AACvC,wCAAA,QAAQ,EAAE,MAAM;AAChB,wCAAA,UAAU,EAAE,KAAK;AACjB,wCAAA,UAAU,EAAE,uBAAuB;AACnC,wCAAA,OAAO,EAAE,MAAM;AACf,wCAAA,UAAU,EAAE,QAAQ;AACpB,wCAAA,GAAG,EAAE,KAAK;AACV,wCAAA,MAAM,EAAE,SAAS;AACjB,wCAAA,UAAU,EAAE,eAAe;AAC3B,qCAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;wCACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK;wCACrC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB;AACrD,qCAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;wCACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;wCACnC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;qCACjD,EAAA,QAAA,EAAA,CAEDV,IAACS,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,OAAO,GAAG,EAAA,cAAA,CAAA,EAAA,CAE5B,CACT,CAAA,EAAA,CACI,CAAA,EAAA,CACD,EAGL,CAAC,WAAW,KACZT,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,KAAK,EAAE,CAAC;AACR,wBAAA,eAAe,EAAE,oBAAoB;AACrC,wBAAA,cAAc,EAAE,WAAW;AAC3B,wBAAA,OAAO,EAAE,MAAM;AACf,wBAAA,UAAU,EAAE,QAAQ;AACpB,wBAAA,cAAc,EAAE,QAAQ;AACxB,wBAAA,YAAY,EAAE,yBAAyB;qBACvC,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,eAAe,EAAE,0BAA0B;AAC3C,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,YAAY,EAAE,yBAAyB;AACvC,4BAAA,KAAK,EAAE,sBAAsB;AAC7B,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,UAAU,EAAE,uBAAuB;AACnC,4BAAA,SAAS,EAAE,qBAAqB;AAChC,yBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,CAGI,EAAA,CACD,CACN,CAAA,EAAA,CACI,EAAA,CACD;AAER;;ACngBA;AACA,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,OAAO,EAAE,MACtDA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,QAAA,EAEtBA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,iBAAiB,EAAA,CAAG,EAAA,CAChC,CACN;AAED,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,OAAO,EAAE,MACvDA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,QAAA,EAEtBA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAC/B,CACN;AAED;AACA,MAAM,qBAAqB,GAAG,OAC7BA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,UAAU,EAAE,+EAA+E;AAC3F,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,UAAU;AACpB,KAAA,EAAA,QAAA,EAEDU,cACC,KAAK,EAAC,KAAK,EACX,MAAM,EAAC,KAAK,EACZ,OAAO,EAAC,YAAY,EACpB,mBAAmB,EAAC,eAAe,EACnC,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,aAAa;AACrB,SAAA,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,CAAC,EAAC,+CAA+C,EACjD,MAAM,EAAC,OAAO,EACd,WAAW,EAAC,GAAG,EACf,IAAI,EAAC,MAAM,EACX,aAAa,EAAC,OAAO,EAAA,CACpB,EACFA,gBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAA,CAAG,EAC3DA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAA,CAAG,CAAA,EAAA,CACvD,EAAA,CACD,CACN;AAOD;AACO,MAAM,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAsB,KAAI;IAC1E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IACnD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAE7D,IAAA,MAAM,SAAS,GAAG,CAAC,CAAmB,KAAI;QACzC,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,IAAI,eAAe;YAAE;QACrB,kBAAkB,CAAC,IAAI,CAAC;AACxB,QAAA,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;QACrD,UAAU,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AACjD,KAAC;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,CAAmB,KAAI;QACzC,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,IAAI,eAAe;YAAE;QACrB,kBAAkB,CAAC,IAAI,CAAC;QACxB,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;QACrE,UAAU,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AACjD,KAAC;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,CAAmB,KAAI;QACxD,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,IAAI,eAAe,IAAI,KAAK,KAAK,YAAY;YAAE;QAC/C,kBAAkB,CAAC,IAAI,CAAC;QACxB,eAAe,CAAC,KAAK,CAAC;QACtB,UAAU,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AACjD,KAAC;AAED,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAOA,GAAA,CAAC,qBAAqB,EAAA,EAAA,CAAG;;AAGjC,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,QAAA,QACCA,GAAA,CAAA,KAAA,EAAA,EACC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EACd,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;AACN,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,SAAS,EAAE,OAAO;AAClB,aAAA,EAAA,CACA;;IAIJ,QACCU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAEtFV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,KAAK,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA,CAAA,CAAG;AAChC,oBAAA,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,CAAA,YAAA,EAAe,CAAC,YAAY,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,CAAA,EAAA,CAAI;AAClE,oBAAA,UAAU,EAAE,6CAA6C;AACzD,iBAAA,EAAA,QAAA,EAEA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MACxBA,GAAA,CAAA,KAAA,EAAA,EAEC,KAAK,EAAE;AACN,wBAAA,KAAK,EAAE,CAAA,EAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAA,CAAA,CAAG;AAChC,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,UAAU,EAAE,CAAC;AACb,qBAAA,EAAA,QAAA,EAEDA,aACC,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,CAAA,EAAG,SAAS,CAAA,QAAA,EAAW,KAAK,GAAG,CAAC,CAAA,CAAE,EACvC,KAAK,EAAE;AACN,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,SAAS,EAAE,OAAO;AAClB,4BAAA,OAAO,EAAE,OAAO;yBAChB,EAAA,CACA,EAAA,EAhBG,KAAK,CAiBL,CACN,CAAC,GACG,EAGL,MAAM,CAAC,MAAM,GAAG,CAAC,KACjBU,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACCX,GAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;AACN,4BAAA,QAAQ,EAAE,UAAU;AACpB,4BAAA,IAAI,EAAE,MAAM;AACZ,4BAAA,GAAG,EAAE,KAAK;AACV,4BAAA,SAAS,EAAE,kBAAkB;AAC7B,4BAAA,eAAe,EAAE,oBAAoB;AACrC,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,YAAY,EAAE,KAAK;AACnB,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,UAAU,EAAE,QAAQ;AACpB,4BAAA,cAAc,EAAE,QAAQ;4BACxB,MAAM,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS;AACnD,4BAAA,UAAU,EAAE,eAAe;AAC3B,4BAAA,MAAM,EAAE,CAAC;4BACT,OAAO,EAAE,eAAe,GAAG,GAAG,GAAG,CAAC;AAClC,yBAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,IAAI,CAAC,eAAe,EAAE;gCACrB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,oBAAoB;gCAC5D,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,6BAA6B;;AAEjE,yBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,IAAI,CAAC,eAAe,EAAE;gCACrB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,oBAAoB;gCAC5D,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,2BAA2B;;yBAE9D,EAAA,QAAA,EAEDA,GAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,OAAO,EAAA,CAAG,GACnC,EAETA,GAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;AACN,4BAAA,QAAQ,EAAE,UAAU;AACpB,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,GAAG,EAAE,KAAK;AACV,4BAAA,SAAS,EAAE,kBAAkB;AAC7B,4BAAA,eAAe,EAAE,oBAAoB;AACrC,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,YAAY,EAAE,KAAK;AACnB,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,UAAU,EAAE,QAAQ;AACpB,4BAAA,cAAc,EAAE,QAAQ;4BACxB,MAAM,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS;AACnD,4BAAA,UAAU,EAAE,eAAe;AAC3B,4BAAA,MAAM,EAAE,CAAC;4BACT,OAAO,EAAE,eAAe,GAAG,GAAG,GAAG,CAAC;AAClC,yBAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,IAAI,CAAC,eAAe,EAAE;gCACrB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,oBAAoB;gCAC5D,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,6BAA6B;;AAEjE,yBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,IAAI,CAAC,eAAe,EAAE;gCACrB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,oBAAoB;gCAC5D,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,2BAA2B;;yBAE9D,EAAA,QAAA,EAEDA,GAAA,CAAC,gBAAgB,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,OAAO,EAAA,CAAG,GACpC,CAAA,EAAA,CACP,CACH,EAGA,MAAM,CAAC,MAAM,GAAG,CAAC,KACjBA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,SAAS,EAAE,kBAAkB;AAC7B,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,MAAM,EAAE,CAAC;AACT,iBAAA,EAAA,QAAA,EAEA,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MACpBA,GAAA,CAAA,QAAA,EAAA,EAEC,OAAO,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EACnC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;wBACN,KAAK,EAAE,KAAK,KAAK,YAAY,GAAG,MAAM,GAAG,KAAK;AAC9C,wBAAA,MAAM,EAAE,KAAK;AACb,wBAAA,YAAY,EAAE,KAAK;AACnB,wBAAA,MAAM,EAAE,MAAM;wBACd,eAAe,EAAE,KAAK,KAAK,YAAY,GAAG,OAAO,GAAG,0BAA0B;wBAC9E,MAAM,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS;AACnD,wBAAA,UAAU,EAAE,eAAe;wBAC3B,OAAO,EAAE,eAAe,GAAG,GAAG,GAAG,CAAC;AAClC,qBAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;AACnB,wBAAA,IAAI,KAAK,KAAK,YAAY,IAAI,CAAC,eAAe,EAAE;4BAC/C,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,0BAA0B;4BAClE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY;;AAEhD,qBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;AACnB,wBAAA,IAAI,KAAK,KAAK,YAAY,IAAI,CAAC,eAAe,EAAE;4BAC/C,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,0BAA0B;4BAClE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU;;AAE9C,qBAAC,IAxBI,KAAK,CAyBT,CACF,CAAC,GACG,CACN,EAGA,MAAM,CAAC,MAAM,GAAG,CAAC,KACjBU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,GAAG,EAAE,MAAM;AACX,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,eAAe,EAAE,oBAAoB;AACrC,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,OAAO,EAAE,SAAS;AAClB,oBAAA,YAAY,EAAE,MAAM;AACpB,oBAAA,QAAQ,EAAE,MAAM;AAChB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,UAAU,EAAE,uBAAuB;AACnC,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,UAAU,EAAE,eAAe;oBAC3B,SAAS,EAAE,eAAe,GAAG,YAAY,GAAG,UAAU;AACtD,iBAAA,EAAA,QAAA,EAAA,CAEA,YAAY,GAAG,CAAC,EAAA,KAAA,EAAK,MAAM,CAAC,MAAM,CAAA,EAAA,CAC9B,CACN,EAGA,eAAe,KACfV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,eAAe,EAAE,oBAAoB;AACrC,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,aAAa,EAAE,MAAM;iBACrB,EAAA,CACA,CACF,CAAA,EAAA,CACI;AAER,CAAC;;AC/RD;AACO,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,MACzDU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,QAAA,EAAA,CAEtBV,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAA,CAAG,EACjCA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,kBAAkB,EAAA,CAAG,CAAA,EAAA,CACjC,CACN;AACM,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,MAC5DU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,QAAA,EAAA,CAEtBV,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAClDA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EACtCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EACpCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,CAAA,EAAA,CAClC,CACN;AAED,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,MAClDA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,QAAA,EAEtBA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAC/B,CACN;AAwCD;AACO,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,MACxDU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,aAEtBV,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,mCAAmC,EAAA,CAAG,EAC9CA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,mCAAmC,EAAA,CAAG,EAC9CA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kCAAkC,EAAA,CAAG,CAAA,EAAA,CACxC,CACN;AAQD;AACA,MAAM,0BAA0B,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAsB,MACpEU,4BACCV,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDP,EAAA,CAAA,EAAA,CAAS,EACVA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qCAAqC,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EAC9EA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,QAAQ,EAAE,MAAM;AAChB,oBAAA,cAAc,EAAE,QAAQ;AACxB,oBAAA,GAAG,EAAE,MAAM;iBACX,EAAA,QAAA,EAEA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MACzCU,IAAA,CAAA,KAAA,EAAA,EAEC,SAAS,EAAC,yDAAyD,EACnE,KAAK,EAAE;AACN,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,UAAU,EAAE,uBAAuB;AACnC,wBAAA,QAAQ,EAAE,OAAO;AACjB,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,OAAO,EAAE,MAAM;AACf,wBAAA,aAAa,EAAE,QAAQ;qBACvB,EAAA,QAAA,EAAA,CAGDV,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAA,QAAA,EAC1EA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oCAAA,KAAK,EAAE,MAAM;AACb,oCAAA,MAAM,EAAE,MAAM;AACd,oCAAA,eAAe,EAAE,0BAA0B;AAC3C,oCAAA,YAAY,EAAE,+BAA+B;iCAC7C,EAAA,CACA,EAAA,CACG,EAGNA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,mCAAmC,EAC7C,KAAK,EAAE;AACN,gCAAA,QAAQ,EAAE,UAAU;AACpB,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,MAAM,EAAE,OAAO;AACf,gCAAA,eAAe,EAAE,wBAAwB;6BACzC,EAAA,CACA,EAGFU,cACC,SAAS,EAAC,2CAA2C,EACrD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAA,QAAA,EAAA,CAGnCV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,KAAK,EAAE,KAAK;AACZ,wCAAA,MAAM,EAAE,MAAM;AACd,wCAAA,eAAe,EAAE,wBAAwB;AACzC,wCAAA,YAAY,EAAE,KAAK;AACnB,wCAAA,YAAY,EAAE,KAAK;AACnB,qCAAA,EAAA,CACA,EAGFA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,uCAAuC,EACjD,KAAK,EAAE;AACN,wCAAA,KAAK,EAAE,KAAK;AACZ,wCAAA,MAAM,EAAE,MAAM;AACd,wCAAA,eAAe,EAAE,wBAAwB;AACzC,wCAAA,YAAY,EAAE,KAAK;AACnB,wCAAA,YAAY,EAAE,MAAM;AACpB,qCAAA,EAAA,CACA,EAGFU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CACnCA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,GAAG,EAAE,KAAK;AACV,gDAAA,YAAY,EAAE,KAAK;6CACnB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,KAAK,EAAE,MAAM;AACb,wDAAA,MAAM,EAAE,MAAM;AACd,wDAAA,eAAe,EAAE,wBAAwB;AACzC,wDAAA,YAAY,EAAE,KAAK;qDACnB,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,KAAK,EAAE,MAAM;AACb,wDAAA,MAAM,EAAE,MAAM;AACd,wDAAA,eAAe,EAAE,wBAAwB;AACzC,wDAAA,YAAY,EAAE,KAAK;AACnB,qDAAA,EAAA,CACA,CAAA,EAAA,CACG,EACNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,GAAG,EAAE,KAAK;6CACV,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,KAAK,EAAE,MAAM;AACb,wDAAA,MAAM,EAAE,MAAM;AACd,wDAAA,eAAe,EAAE,wBAAwB;AACzC,wDAAA,YAAY,EAAE,KAAK;qDACnB,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,KAAK,EAAE,OAAO;AACd,wDAAA,MAAM,EAAE,MAAM;AACd,wDAAA,eAAe,EAAE,wBAAwB;AACzC,wDAAA,YAAY,EAAE,KAAK;AACnB,qDAAA,EAAA,CACA,IACG,CAAA,EAAA,CACD,EAGNA,aACC,SAAS,EAAC,2CAA2C,EACrD,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAA,QAAA,EAElD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,MACzCU,IAAA,CAAA,KAAA,EAAA,EAEC,KAAK,EAAE;AACN,4CAAA,OAAO,EAAE,MAAM;AACf,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,GAAG,EAAE,KAAK;AACV,4CAAA,YAAY,EAAE,KAAK;yCACnB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,KAAK,EAAE,MAAM;AACb,oDAAA,MAAM,EAAE,MAAM;AACd,oDAAA,eAAe,EAAE,wBAAwB;AACzC,oDAAA,YAAY,EAAE,KAAK;AACnB,oDAAA,UAAU,EAAE,CAAC;iDACb,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;oDACN,KAAK,EAAE,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK;AACpC,oDAAA,MAAM,EAAE,MAAM;AACd,oDAAA,eAAe,EAAE,wBAAwB;AACzC,oDAAA,YAAY,EAAE,KAAK;iDACnB,EAAA,CACA,CAAA,EAAA,EAxBG,OAAO,CAyBP,CACN,CAAC,EAAA,CACG,EAGNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,OAAO,EAAE,MAAM;AACf,wCAAA,cAAc,EAAE,eAAe;AAC/B,wCAAA,UAAU,EAAE,QAAQ;AACpB,wCAAA,SAAS,EAAE,MAAM;AACjB,qCAAA,EAAA,QAAA,EAAA,CAEDV,uBACCA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,uCAAuC,EACjD,KAAK,EAAE;AACN,oDAAA,KAAK,EAAE,MAAM;AACb,oDAAA,MAAM,EAAE,MAAM;AACd,oDAAA,eAAe,EAAE,wBAAwB;AACzC,oDAAA,YAAY,EAAE,KAAK;AACnB,iDAAA,EAAA,CACA,EAAA,CACG,EACNA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,OAAO;AACd,gDAAA,MAAM,EAAE,MAAM;AACd,gDAAA,eAAe,EAAE,2BAA2B;AAC5C,gDAAA,YAAY,EAAE,yBAAyB;AACvC,gDAAA,OAAO,EAAE,GAAG;AACZ,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,cAAc,EAAE,QAAQ;6CACxB,EAAA,CACA,CAAA,EAAA,CACG,CAAA,EAAA,CACD,CAAA,EAAA,EA7LD,GAAG,CA8LH,CACN,CAAC,EAAA,CACG,EAAA,CACD,CAAA,EAAA,CACJ,CACH;AAEK,SAAU,kBAAkB,CAAC,EAClC,UAAU,EACV,iBAAiB,EACjB,SAAS,GAAG,KAAK,EACjB,aAAa,GAAG,CAAC,GACQ,EAAA;;IAEzB,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjE,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,GAAG,QAAQ,CAC7E,IAAI,CACJ;;AAGD,IAAA,MAAM,iBAAiB,GAAG,CAAC,SAAoB,KAAI;QAClD,8BAA8B,CAAC,SAAS,CAAC;QACzC,oBAAoB,CAAC,IAAI,CAAC;AAC3B,KAAC;;IAGD,MAAM,kBAAkB,GAAG,MAAK;QAC/B,oBAAoB,CAAC,KAAK,CAAC;QAC3B,8BAA8B,CAAC,IAAI,CAAC;AACrC,KAAC;;IAGD,IAAI,SAAS,EAAE;AACd,QAAA,OAAOA,IAAC,0BAA0B,EAAA,EAAC,KAAK,EAAE,aAAa,GAAI;;IAG5D,QACCU,4BACCV,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BP,GAAA,CAAA,EAAA,CAAS,EACT,UAAU,CAAC,MAAM,KAAK,CAAC,IACvBA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EACnEU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,OAAO,EAAE,yBAAyB;AAClC,wBAAA,SAAS,EAAE,QAAQ;AACnB,wBAAA,UAAU,EAAE,uBAAuB;AACnC,wBAAA,SAAS,EAAE,OAAO;AAClB,wBAAA,OAAO,EAAE,MAAM;AACf,wBAAA,aAAa,EAAE,QAAQ;AACvB,wBAAA,UAAU,EAAE,QAAQ;AACpB,wBAAA,cAAc,EAAE,QAAQ;qBACxB,EAAA,QAAA,EAAA,CAGDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,eAAe,EAAE,2BAA2B;AAC5C,gCAAA,YAAY,EAAE,KAAK;AACnB,gCAAA,MAAM,EAAE,0BAA0B;AAClC,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,UAAU,EAAE,QAAQ;AACpB,gCAAA,cAAc,EAAE,QAAQ;AACxB,gCAAA,QAAQ,EAAE,MAAM;AAChB,gCAAA,KAAK,EAAE,OAAO;AACd,gCAAA,OAAO,EAAE,GAAG;6BACZ,EAAA,QAAA,EAAA,cAAA,EAAA,CAGI,EAGNA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,QAAQ,EAAE,wBAAwB;AAClC,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,MAAM,EAAE,+BAA+B;AACvC,gCAAA,UAAU,EAAE,uBAAuB;6BACnC,EAAA,QAAA,EAAA,sCAAA,EAAA,CAGG,EAGLA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,QAAQ,EAAE,qBAAqB;AAC/B,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,MAAM,EAAE,+BAA+B;AACvC,gCAAA,UAAU,EAAE,uBAAuB;AACnC,gCAAA,QAAQ,EAAE,OAAO;AACjB,6BAAA,EAAA,QAAA,EAAA,iJAAA,EAAA,CAIE,EAGJU,IAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EACvC,KAAK,EAAE;AACN,gCAAA,eAAe,EAAE,yBAAyB;AAC1C,gCAAA,KAAK,EAAE,2BAA2B;AAClC,gCAAA,OAAO,EAAE,WAAW;AACpB,gCAAA,MAAM,EAAE,CAAA,mCAAA,CAAqC;AAC7C,gCAAA,YAAY,EAAE,yBAAyB;AACvC,gCAAA,QAAQ,EAAE,qBAAqB;AAC/B,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,MAAM,EAAE,SAAS;AACjB,gCAAA,UAAU,EAAE,uBAAuB;AACnC,gCAAA,UAAU,EAAE,eAAe;AAC3B,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,UAAU,EAAE,QAAQ;AACpB,gCAAA,GAAG,EAAE,KAAK;AACV,6BAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;gCACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,2BAA2B;gCACnE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO;gCACrC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB;AACrD,6BAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;gCACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,yBAAyB;gCACjE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,2BAA2B;gCACzD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;AAClD,6BAAC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,cAAA,EAAA,CAAW,EAAA,iBAAA,CAAA,EAAA,CAEpC,CAAA,EAAA,CACJ,EAAA,CACD,KAENA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EAE7DA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,OAAO,EAAE,MAAM;AACf,wBAAA,QAAQ,EAAE,MAAM;AAChB,wBAAA,cAAc,EAAE,QAAQ;AACxB,wBAAA,GAAG,EAAE,MAAM;AACX,qBAAA,EAAA,QAAA,EAEA,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAI;AAC7B,wBAAA,MAAM,WAAW,GAAG,SAAS,CAAC,qBAAqB;AAEnD,wBAAA,QACCU,IAAA,CAAA,KAAA,EAAA,EAEC,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE;AACN,gCAAA,QAAQ,EAAE,UAAU;AACpB,gCAAA,eAAe,EAAE,yBAAyB;AAC1C,gCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,gCAAA,YAAY,EAAE,yBAAyB;AACvC,gCAAA,QAAQ,EAAE,QAAQ;AAClB,gCAAA,UAAU,EAAE,eAAe;gCAC3B,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa;gCAC/C,OAAO,EAAE,WAAW,GAAG,CAAC,GAAG,GAAG;AAC9B,gCAAA,SAAS,EAAE,qBAAqB;AAChC,gCAAA,UAAU,EAAE,uBAAuB;AACnC,gCAAA,QAAQ,EAAE,OAAO;AACjB,gCAAA,IAAI,EAAE,WAAW;AACjB,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,aAAa,EAAE,QAAQ;AACvB,6BAAA,EACD,OAAO,EAAE,MAAM,WAAW,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAC1D,YAAY,EAAE,CAAC,CAAC,KAAI;gCACnB,IAAI,WAAW,EAAE;oCAChB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB;oCACpD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,qBAAqB;;AAEzD,6BAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;gCACnB,IAAI,WAAW,EAAE;oCAChB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;oCACjD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,qBAAqB;;6BAExD,EAAA,QAAA,EAAA,CAGDV,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAA,QAAA,EAC1EA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,OAAO,EAAE,SAAS;AAClB,4CAAA,YAAY,EAAE,+BAA+B;AAC7C,4CAAA,QAAQ,EAAE,MAAM;AAChB,4CAAA,UAAU,EAAE,KAAK;AACjB,4CAAA,eAAe,EAAE;AAChB,kDAAE;AACF,kDAAE,uBAAuB;AAC1B,4CAAA,KAAK,EAAE,OAAO;AACd,4CAAA,UAAU,EAAE,uBAAuB;AACnC,yCAAA,EAAA,QAAA,EAEA,WAAW,GAAG,cAAc,GAAG,YAAY,EAAA,CACvC,EAAA,CACD,EAGNA,aACC,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAA,QAAA,EAE/DA,GAAA,CAAC,aAAa,EAAA,EAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAA,CAAI,EAAA,CACjE,EAGNU,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAEhEV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,MAAM;AAChB,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,KAAK,EAAE,2BAA2B;AAClC,gDAAA,YAAY,EAAE,KAAK;AACnB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,6CAAA,EAAA,QAAA,EAEA,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAA,CACnB,EAGNA,GAAA,CAAA,IAAA,EAAA,EACC,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,4BAA4B;AACtC,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,YAAY,EAAE,MAAM;AACpB,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,MAAM,EAAE,YAAY;AACpB,6CAAA,EAAA,QAAA,EAEA,SAAS,CAAC,IAAI,GACX,EAGLU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,GAAG,EAAE,KAAK;AACV,gDAAA,UAAU,EAAE,MAAM;AAClB,6CAAA,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,sBAAsB,EAAA,CAAG,EACvDA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,UAAU,EAAE,uBAAuB;AACnC,wDAAA,QAAQ,EAAE,MAAM;AAChB,wDAAA,KAAK,EAAE,sBAAsB;qDAC7B,EAAA,QAAA,EAEA,SAAS,CAAC;0DACR,mBAAmB,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;0DAC1D,oBAAoB,EAAA,CACjB,CAAA,EAAA,CACF,EAGNA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAChD,OAAO,EAAE,CAAC,CAAC,KAAI;gDACd,CAAC,CAAC,eAAe,EAAE;gDACnB,iBAAiB,CAAC,SAAS,CAAC;AAC7B,6CAAC,EAAA,QAAA,EAEA,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;;AAEvD,4CAAAA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,0BAA0B,EACpC,KAAK,EAAE;AACN,oDAAA,MAAM,EAAE,mBAAmB;AAC3B,oDAAA,SAAS,EAAE,OAAO;AAClB,oDAAA,OAAO,EAAE,aAAa;AACtB,oDAAA,eAAe,EAAE,CAAC;AAClB,oDAAA,eAAe,EAAE,UAAU;AAC3B,oDAAA,QAAQ,EAAE,QAAQ;AAClB,oDAAA,YAAY,EAAE,UAAU;iDACxB,EAAA,QAAA,EAEDA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,SAAS,EAAE,MAAM;AACjB,wDAAA,OAAO,EAAE,GAAG;AACZ,wDAAA,MAAM,EAAE,GAAG;AACX,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,aAAa,EAAE,QAAQ;AACvB,wDAAA,GAAG,EAAE,KAAK;qDACV,EAAA,QAAA,EAEA,SAAS,CAAC;yDACT,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,EAAE;yDACtC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,MACrBU,IAAA,CAAA,IAAA,EAAA,EAEC,KAAK,EAAE;AACN,4DAAA,OAAO,EAAE,MAAM;AACf,4DAAA,UAAU,EAAE,YAAY;AACxB,4DAAA,GAAG,EAAE,KAAK;AACV,4DAAA,UAAU,EAAE,uBAAuB;AACnC,4DAAA,QAAQ,EAAE,2BAA2B;AACrC,4DAAA,UAAU,EAAE,KAAK;AACjB,4DAAA,KAAK,EAAE,sBAAsB;AAC7B,yDAAA,EAAA,QAAA,EAAA,CAEDV,aAAK,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,YAC9CA,GAAA,CAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,yBAAyB,GAAG,EAAA,CAClD,EACNA,wBAAO,SAAS,CAAC,IAAI,EAAE,EAAA,CAAQ,KAd1B,KAAK,CAeN,CACL,CAAC,EAAA,CACC,GACA;;AAGN,4CAAAA,GAAA,CAAAW,QAAA,EAAA,EAAA,QAAA,EACCX,WACC,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE;AACN,wDAAA,KAAK,EAAE,sBAAsB;AAC7B,wDAAA,QAAQ,EAAE,2BAA2B;AACrC,wDAAA,UAAU,EAAE,KAAK;AACjB,wDAAA,UAAU,EAAE,uBAAuB;AACnC,wDAAA,MAAM,EAAE,eAAe;AACvB,wDAAA,OAAO,EAAE,aAAa;AACtB,wDAAA,eAAe,EAAE,CAAC;AAClB,wDAAA,eAAe,EAAE,UAAU;AAC3B,wDAAA,QAAQ,EAAE,QAAQ;AAClB,wDAAA,YAAY,EAAE,UAAU;AACxB,wDAAA,SAAS,EAAE,OAAO;AAClB,wDAAA,SAAS,EAAE,OAAO;AAClB,qDAAA,EAAA,QAAA,EAEA,SAAS,CAAC,WAAW,IAAI,GAAG,EAAA,CAC1B,EAAA,CACF,CACH,EAAA,CACI,EAEL,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM,MACtDA,GAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,CAAC,CAAC,KAAI;gDACd,CAAC,CAAC,eAAe,EAAE;gDACnB,iBAAiB,CAAC,SAAS,CAAC;6CAC5B,EACD,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,2BAA2B;AAClC,gDAAA,UAAU,EAAE,yBAAyB;AACrC,gDAAA,OAAO,EAAE,WAAW;AACpB,gDAAA,YAAY,EAAE,yBAAyB;AACvC,gDAAA,QAAQ,EAAE,MAAM;AAChB,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,GAAG,EAAE,KAAK;AACV,gDAAA,MAAM,EAAE,qCAAqC;AAC7C,gDAAA,MAAM,EAAE,SAAS;AACjB,gDAAA,SAAS,EAAE,+CAA+C;AAC1D,gDAAA,UAAU,EAAE,MAAM;AAClB,gDAAA,QAAQ,EAAE,UAAU;AACpB,gDAAA,KAAK,EAAE,MAAM;AACb,gDAAA,MAAM,EAAE,MAAM;AACd,gDAAA,OAAO,EAAE,KAAK;AACd,gDAAA,UAAU,EAAE,eAAe;AAC3B,6CAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;gDACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;gDACnC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB;AACrD,6CAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;gDACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK;gDACrC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;AAClD,6CAAC,EAAA,QAAA,EAAA,eAAA,EAAA,CAGO,CACT,EAGDU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,cAAc,EAAE,eAAe;AAC/B,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,SAAS,EAAE,MAAM;AACjB,6CAAA,EAAA,QAAA,EAAA,CAEDV,uBACCA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE;AACN,4DAAA,QAAQ,EAAE,0BAA0B;AACpC,4DAAA,UAAU,EAAE,KAAK;AACjB,4DAAA,KAAK,EAAE,sBAAsB;AAC7B,4DAAA,UAAU,EAAE,uBAAuB;AACnC,yDAAA,EAAA,QAAA,EAEA,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAAA,CAC/B,EAAA,CACD,EACL,WAAW,KACXU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,eAAe,EAAE,2BAA2B;AAC5C,wDAAA,KAAK,EAAE,OAAO;AACd,wDAAA,OAAO,EAAE,WAAW;AACpB,wDAAA,YAAY,EAAE,yBAAyB;AACvC,wDAAA,QAAQ,EAAE,MAAM;AAChB,wDAAA,UAAU,EAAE,KAAK;AACjB,wDAAA,UAAU,EAAE,uBAAuB;AACnC,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,UAAU,EAAE,QAAQ;AACpB,wDAAA,GAAG,EAAE,KAAK;AACV,wDAAA,MAAM,EAAE,MAAM;AACd,wDAAA,MAAM,EAAE,SAAS;AACjB,wDAAA,UAAU,EAAE,eAAe;AAC3B,qDAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;wDACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK;wDACrC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB;AACrD,qDAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;wDACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;wDACnC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;qDACjD,EAAA,QAAA,EAAA,CAEDV,IAAC,QAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,sBAAsB,GAAG,EAAA,eAAA,CAAA,EAAA,CAC9C,CACN,CAAA,EAAA,CACI,CAAA,EAAA,CA0BD,EAGL,CAAC,WAAW,KACZA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,QAAQ,EAAE,UAAU;AACpB,wCAAA,KAAK,EAAE,CAAC;AACR,wCAAA,eAAe,EAAE,oBAAoB;AACrC,wCAAA,cAAc,EAAE,WAAW;AAC3B,wCAAA,OAAO,EAAE,MAAM;AACf,wCAAA,UAAU,EAAE,QAAQ;AACpB,wCAAA,cAAc,EAAE,QAAQ;qCACxB,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,eAAe,EAAE,0BAA0B;AAC3C,4CAAA,OAAO,EAAE,WAAW;AACpB,4CAAA,YAAY,EAAE,yBAAyB;AACvC,4CAAA,KAAK,EAAE,sBAAsB;AAC7B,4CAAA,UAAU,EAAE,KAAK;AACjB,4CAAA,QAAQ,EAAE,MAAM;AAChB,4CAAA,UAAU,EAAE,uBAAuB;AACnC,4CAAA,SAAS,EAAE,qBAAqB;yCAChC,EAAA,QAAA,EAAA,YAAA,EAAA,CAGI,EAAA,CACD,CACN,CAAA,EAAA,EArVI,SAAS,CAAC,EAAE,CAsVZ;qBAEP,CAAC,EAAA,CACG,EAAA,CACD,CACN,EAGDA,GAAA,CAAC,sBAAsB,EAAA,EACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,2BAA2B,EACtC,iBAAiB,EAAE,iBAAiB,EAAA,CACnC,CAAA,EAAA,CACA;AAEL;;;;;;;AC16BA,CAAA,CAAC,UAAU,MAAM,EAAE,OAAO,EAAE;AAC5B,GAAiE,OAAO,CAAC,OAAO,EAAEY,uBAAgB,CAAC,CAEyB;EAC3H,EAAEC,cAAI,GAAG,UAAU,OAAO,EAAE,KAAK,EAAE;AAEpC,GAAE,SAAS,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE;KACvC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;AAElC,KAAI,IAAI,MAAM,CAAC,qBAAqB,EAAE;OAChC,IAAI,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC;;OAElD,IAAI,cAAc,EAAE;SAClB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE;WACtC,OAAO,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU;AACxE,UAAS,CAAC;AACV;;OAEM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;AACpC;;AAEA,KAAI,OAAO,IAAI;AACf;;AAEA,GAAE,SAAS,cAAc,CAAC,MAAM,EAAE;AAClC,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,OAAM,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE;;AAE3D,OAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,SAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;WACnD,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACnD,UAAS,CAAC;AACV,QAAO,MAAM,IAAI,MAAM,CAAC,yBAAyB,EAAE;AACnD,SAAQ,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACjF,QAAO,MAAM;AACb,SAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACvD,WAAU,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1F,UAAS,CAAC;AACV;AACA;;AAEA,KAAI,OAAO,MAAM;AACjB;;AAEA,GAAE,SAAS,OAAO,CAAC,GAAG,EAAE;AACxB,KAAI,yBAAyB;;AAE7B,KAAI,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC7E,OAAM,OAAO,GAAG,UAAU,GAAG,EAAE;SACvB,OAAO,OAAO,GAAG;QAClB;AACP,MAAK,MAAM;AACX,OAAM,OAAO,GAAG,UAAU,GAAG,EAAE;SACvB,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG;QAC7H;AACP;;AAEA,KAAI,OAAO,OAAO,CAAC,GAAG,CAAC;AACvB;;GAEE,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AAC5C,KAAI,IAAI,GAAG,IAAI,GAAG,EAAE;AACpB,OAAM,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;SAC9B,KAAK,EAAE,KAAK;SACZ,UAAU,EAAE,IAAI;SAChB,YAAY,EAAE,IAAI;AAC1B,SAAQ,QAAQ,EAAE;AAClB,QAAO,CAAC;AACR,MAAK,MAAM;AACX,OAAM,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACtB;;AAEA,KAAI,OAAO,GAAG;AACd;;AAEA,GAAE,SAAS,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE;AAC3D,KAAI,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE;KAC7B,IAAI,MAAM,GAAG,EAAE;KACf,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;KACpC,IAAI,GAAG,EAAE,CAAC;;AAEd,KAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,OAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC;OACnB,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;OAChC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B;;AAEA,KAAI,OAAO,MAAM;AACjB;;AAEA,GAAE,SAAS,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE;AACtD,KAAI,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE;;KAE7B,IAAI,MAAM,GAAG,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC;;KAE5D,IAAI,GAAG,EAAE,CAAC;;AAEd,KAAI,IAAI,MAAM,CAAC,qBAAqB,EAAE;OAChC,IAAI,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC;;AAEjE,OAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,SAAQ,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC;SACzB,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACxC,SAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;SAC9D,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AACjC;AACA;;AAEA,KAAI,OAAO,MAAM;AACjB;;AAEA,GAAE,SAAS,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE;KAC9B,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,qBAAqB,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,2BAA2B,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,gBAAgB,EAAE;AAC7H;;AAEA,GAAE,SAAS,eAAe,CAAC,GAAG,EAAE;KAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG;AACtC;;AAEA,GAAE,SAAS,qBAAqB,CAAC,GAAG,EAAE,CAAC,EAAE;KACrC,IAAI,EAAE,GAAG,GAAG,KAAK,OAAO,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;;AAEhG,KAAI,IAAI,EAAE,IAAI,IAAI,EAAE;KAChB,IAAI,IAAI,GAAG,EAAE;KACb,IAAI,EAAE,GAAG,IAAI;KACb,IAAI,EAAE,GAAG,KAAK;;KAEd,IAAI,EAAE,EAAE,EAAE;;AAEd,KAAI,IAAI;OACF,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;AACxE,SAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;;SAEnB,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC;MACK,CAAC,OAAO,GAAG,EAAE;OACZ,EAAE,GAAG,IAAI;OACT,EAAE,GAAG,GAAG;AACd,MAAK,SAAS;AACd,OAAM,IAAI;AACV,SAAQ,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;AACvD,QAAO,SAAS;AAChB,SAAQ,IAAI,EAAE,EAAE,MAAM,EAAE;AACxB;AACA;;AAEA,KAAI,OAAO,IAAI;AACf;;AAEA,GAAE,SAAS,2BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE;KAC9C,IAAI,CAAC,CAAC,EAAE;AACZ,KAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,OAAO,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC;KAC9D,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1D,KAAI,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI;AAC/D,KAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,KAAI,IAAI,CAAC,KAAK,WAAW,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC;AACpH;;AAEA,GAAE,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE;AACvC,KAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM;;AAEzD,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;;AAEzE,KAAI,OAAO,IAAI;AACf;;GAEE,SAAS,gBAAgB,GAAG;AAC9B,KAAI,MAAM,IAAI,SAAS,CAAC,2IAA2I,CAAC;AACpK;;AAEA,GAAE,SAAS,uBAAuB,EAAE,CAAC,EAAE;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpG;;AAEA,GAAE,IAAI,SAAS,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,sBAAsB;AAC5B,GAAE,IAAI,+BAA+B;;GAEnC,SAAS,2BAA2B,GAAG;AACzC,KAAI,IAAI,+BAA+B,EAAE,OAAO,sBAAsB;KAClE,+BAA+B,GAAG,CAAC;;KAEnC,IAAI,oBAAoB,GAAG,8CAA8C;KACzE,sBAAsB,GAAG,oBAAoB;AACjD,KAAI,OAAO,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,wBAAwB;AAC9B,GAAE,IAAI,mCAAmC;;GAEvC,SAAS,+BAA+B,GAAG;AAC7C,KAAI,IAAI,mCAAmC,EAAE,OAAO,wBAAwB;KACxE,mCAAmC,GAAG,CAAC;;AAE3C,KAAI,IAAI,oBAAoB,GAAG,2BAA2B,EAAE;;KAExD,SAAS,aAAa,GAAG;;KAEzB,SAAS,sBAAsB,GAAG;;AAEtC,KAAI,sBAAsB,CAAC,iBAAiB,GAAG,aAAa;;KAExD,wBAAwB,GAAG,YAAY;AAC3C,OAAM,SAAS,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;AACpF,SAAQ,IAAI,MAAM,KAAK,oBAAoB,EAAE;AAC7C;WACU;AACV;;SAEQ,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,sFAAsF,GAAG,+CAA+C,GAAG,gDAAgD,CAAC;AACxN,SAAQ,GAAG,CAAC,IAAI,GAAG,qBAAqB;AACxC,SAAQ,MAAM,GAAG;AACjB;AACA,OAAM,IAAI,CAAC,UAAU,GAAG,IAAI;;OAEtB,SAAS,OAAO,GAAG;AACzB,SAAQ,OAAO,IAAI;AACnB;AACA;;OAEM,IAAI,cAAc,GAAG;SACnB,KAAK,EAAE,IAAI;SACX,IAAI,EAAE,IAAI;SACV,IAAI,EAAE,IAAI;SACV,MAAM,EAAE,IAAI;SACZ,MAAM,EAAE,IAAI;SACZ,MAAM,EAAE,IAAI;SACZ,MAAM,EAAE,IAAI;SACZ,GAAG,EAAE,IAAI;SACT,OAAO,EAAE,OAAO;SAChB,OAAO,EAAE,IAAI;SACb,WAAW,EAAE,IAAI;SACjB,UAAU,EAAE,OAAO;SACnB,IAAI,EAAE,IAAI;SACV,QAAQ,EAAE,OAAO;SACjB,KAAK,EAAE,OAAO;SACd,SAAS,EAAE,OAAO;SAClB,KAAK,EAAE,OAAO;SACd,KAAK,EAAE,OAAO;SACd,cAAc,EAAE,sBAAsB;AAC9C,SAAQ,iBAAiB,EAAE;QACpB;AACP,OAAM,cAAc,CAAC,SAAS,GAAG,cAAc;AAC/C,OAAM,OAAO,cAAc;MACtB;;AAEL,KAAI,OAAO,wBAAwB;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;;GAEE;AACF;AACA;AACA,KAAI,SAAS,CAAC,OAAO,GAAG,+BAA+B,EAAE,EAAE;AAC3D;;AAEA,GAAE,IAAI,gBAAgB,GAAG,SAAS,CAAC,OAAO;AAC1C,GAAE,IAAI,SAAS,gBAAgB,uBAAuB,CAAC,gBAAgB,CAAC;;GAEtE,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;AACnE,KAAI,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;KACpB,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACjC;;AAEA,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;AAChC,OAAM,KAAK,CAAC,OAAO,GAAG,EAAE;AACxB,MAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;AAChC,OAAM,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;SAC1B,OAAO,YAAY,EAAE;AAC7B;;AAEA,OAAM,IAAI,WAAW,GAAG,SAAS,WAAW,GAAG;AAC/C,SAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;WACjB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C;QACO;;AAEP,OAAM,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;AACpC,OAAM,OAAO,YAAY;AACzB,SAAQ,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC;QAChC;MACF,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACvC;;AAEH,GAAE,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,KAAK,EAAE;KAC5C,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;AAChC,OAAM,GAAG,CAAC,OAAO,GAAG,KAAK;AACzB,MAAK,EAAE,CAAC,KAAK,CAAC,CAAC;KACX,OAAO,GAAG,CAAC,OAAO;IACnB;;AAEH,GAAE,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,GAAG,EAAE;KAClD,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ;IACjD;AACH,GAAE,IAAI,SAAS,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;KACtC,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU;AACjE,IAAG,CAAC;AACJ;AACA;;AAEA,GAAE,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,GAAG,EAAE;AACxC,KAAI,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,mBAAmB,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,UAAU;IAC5M;;GAED,IAAI,gBAAgB,GAAG,iBAAiB;GACxC,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;AAC9C,KAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;OACrD,OAAO,IAAI,KAAK,KAAK;AAC3B;;KAEI,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;KACnC,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACzC,KAAI,IAAI,SAAS,KAAK,UAAU,EAAE,OAAO,KAAK;AAC9C,KAAI,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,gBAAgB;AACnF,KAAI,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,gBAAgB;AACrF,KAAI,IAAI,eAAe,KAAK,gBAAgB,EAAE,OAAO,KAAK,CAAC;AAC3D;;KAEI,IAAI,CAAC,eAAe,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,KAAK,KAAK;KACzD,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;KAChC,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;KAClC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,OAAO,KAAK;KACtD,IAAI,MAAM,GAAG,EAAE;;AAEnB,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;OAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;AAChC;;AAEA,KAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;OAC/C,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;AAClC;;KAEI,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;KAEjC,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AAC5C,OAAM,OAAO,KAAK;AAClB;;KAEI,IAAI,CAAC,GAAG,IAAI;KACZ,IAAI,CAAC,GAAG,KAAK;;AAEjB,KAAI,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE;AAClC,OAAM,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;MAC/B;;AAEL,KAAI,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3B;;GAED,IAAI,4BAA4B,GAAG,SAAS,4BAA4B,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;AAChH,KAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;AACnC,OAAM,OAAO,IAAI;AACjB;;AAEA,KAAI,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,UAAU,EAAE,GAAG,EAAE;OAC5D,IAAI,SAAS,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;;AAE/F,OAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;SAC/B,IAAI,SAAS,EAAE;AACvB,WAAU,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;AACtG;;AAEA,SAAQ,OAAO,UAAU;AACzB;;OAEM,IAAI,CAAC,SAAS,EAAE;AACtB,SAAQ,OAAO,UAAU;AACzB;;OAEM,OAAO,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;MACxG,EAAE,IAAI,CAAC;IACT;;AAEH,GAAE,IAAI,sBAAsB,GAAG,oMAAoM,CAAC;AACpO;AACA;;AAEA,GAAE,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,WAAW,EAAE;KACxD,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,sBAAsB;;KAEzG,IAAI,WAAW,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;AACvD,OAAM,OAAO,WAAW;AACxB;;AAEA,KAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC;IAC1B;;AAEH,GAAE,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,GAAG,EAAE;KAClD,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,sBAAsB;;AAE7G,KAAI,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;AACxB,OAAM,OAAO;SACL,GAAG,EAAE,OAAO;AACpB,SAAQ,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE;AACnE,WAAU,OAAO,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;UACxC;QACF;AACP;;KAEI,IAAI,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;;AAE9C,KAAI,IAAI,MAAM,KAAK,IAAI,EAAE;AACzB,OAAM,OAAO;AACb,SAAQ,GAAG,EAAE;QACN;AACP;;AAEA,KAAI,OAAO;OACL,GAAG,EAAE,MAAM;AACjB,OAAM,MAAM,EAAE;MACT;IACF;;AAEH,GAAE,IAAI,oBAAoB,GAAG,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACnE,KAAI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;OAClE;AACN;;KAEI,MAAM,CAAC,gBAAgB,CAAC;OACtB,IAAI,EAAE,iBAAiB;AAC7B,OAAM,OAAO,EAAE;AACf,MAAK,CAAC;;KAEF,MAAM,CAAC,eAAe,CAAC;OACrB,IAAI,EAAE,iBAAiB;OACvB,OAAO,EAAE,OAAO;AACtB,OAAM,GAAG,EAAE;AACX,MAAK,CAAC;IACH;;GAED,IAAI,eAAe,gBAAgB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;AAC9D,GAAE,eAAe,CAAC,WAAW,GAAG,iBAAiB;GAC/C,IAAI,oBAAoB,GAAG,SAAS,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE;KACrE,IAAI,CAAC,GAAG,EAAE;AACd,OAAM,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,MAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;AACpJ;;AAEA,KAAI,OAAO,GAAG;IACX;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAE,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,IAAI,EAAE;AACzC,KAAI,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM;AACnC,SAAQ,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,SAAQ,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAChC,KAAI,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY;AAC3C,OAAM,OAAO,eAAe,CAAC,aAAa,CAAC;AAC3C,MAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;;AAExB,KAAI,IAAI,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY;AACrD,OAAM,OAAO;AACb,SAAQ,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;AAC5D,SAAQ,QAAQ,EAAE,MAAM,CAAC,GAAG,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG;QACrE;AACP,MAAK,CAAC;AACN,SAAQ,gBAAgB,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC;AAC7D,SAAQ,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC;AACjC,SAAQ,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC;;AAExC,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;OAC1B,IAAI,SAAS,GAAG,IAAI;;AAE1B,OAAM,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE;AAC3D,SAAQ,UAAU,CAAC,UAAU,GAAG,EAAE;AAClC;AACA,WAAU,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG;AACpC,WAAU,OAAO;aACL,MAAM,EAAE,MAAM;AAC1B,aAAY,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;YAClC;AACX,UAAS,CAAC;AACV,QAAO,CAAC;;;OAGF,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;SACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE;AACpD,WAAU,IAAI,MAAM,IAAI,SAAS,EAAE;AACnC;AACA;AACA;aACY,cAAc,CAAC,MAAM,CAAC;AAClC;AACA,UAAS,CAAC;AACV,QAAO,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AACvD;AACA,SAAQ,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;AACrC;;AAEA,OAAM,OAAO,YAAY;SACjB,SAAS,GAAG,KAAK;QAClB;MACF,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;;AAE/B,KAAI,IAAI,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC;AAC/C,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;OAC1B,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,aAAa,EAAE;AAC/D,SAAQ,OAAO,CAAC,IAAI,CAAC,4FAA4F,CAAC;AAClH;AACA,MAAK,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;;AAEpC,KAAI,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;AAC1C,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;AAChC,OAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;SACjB;AACR;;AAEA,OAAM,IAAI,OAAO,GAAG,4BAA4B,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;;OAE3F,IAAI,OAAO,EAAE;AACnB,SAAQ,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;AACpC;MACK,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;;AAE7C,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;AAChC,OAAM,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC;AACtC,MAAK,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAChB,oBAAoB,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAE;AACtE,OAAM,KAAK,EAAE;MACR,EAAE,QAAQ,CAAC;IACb;GACD,QAAQ,CAAC,SAAS,GAAG;AACvB,KAAI,MAAM,EAAE,SAAS,CAAC,GAAG;KACrB,OAAO,EAAE,SAAS,CAAC;IACpB;AACH,GAAE,IAAI,6BAA6B,GAAG,SAAS,6BAA6B,CAAC,cAAc,EAAE;KACzF,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;AAC/C,KAAI,OAAO,oBAAoB,CAAC,GAAG,EAAE,cAAc,CAAC;IACjD;AACH;AACA;AACA;;AAEA,GAAE,IAAI,WAAW,GAAG,SAAS,WAAW,GAAG;AAC3C,KAAI,IAAI,qBAAqB,GAAG,6BAA6B,CAAC,qBAAqB,CAAC;AACpF,SAAQ,QAAQ,GAAG,qBAAqB,CAAC,QAAQ;;AAEjD,KAAI,OAAO,QAAQ;IAChB;AACH;AACA;AACA;;AAEA,GAAE,IAAI,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,KAAK,EAAE;AAC1D,KAAI,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ;AACjC,KAAI,IAAI,GAAG,GAAG,6BAA6B,CAAC,2BAA2B,CAAC,CAAC;;AAEzE,KAAI,OAAO,QAAQ,CAAC,GAAG,CAAC;IACrB;GACD,gBAAgB,CAAC,SAAS,GAAG;AAC/B,KAAI,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC;IAC1B;;AAEH,GAAE,IAAI,WAAW,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;GACnC,IAAI,kBAAkB,gBAAgB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;AACjE,GAAE,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;GACrD,IAAI,uBAAuB,GAAG,SAAS,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE;KAC3E,IAAI,CAAC,GAAG,EAAE;AACd,OAAM,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,MAAM,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;AACpK;;AAEA,KAAI,OAAO,GAAG;IACX;GACD,IAAI,eAAe,gBAAgB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;AAC9D,GAAE,eAAe,CAAC,WAAW,GAAG,iBAAiB;GAC/C,IAAI,2BAA2B,GAAG,SAAS,2BAA2B,CAAC,WAAW,EAAE,YAAY,EAAE;KAChG,IAAI,CAAC,WAAW,EAAE;AACtB,OAAM,OAAO,IAAI;AACjB;;KAEI,WAAW,CAAC,EAAE;SACV,WAAW,CAAC,OAAO;SACnB,IAAI,OAAO,GAAG,wBAAwB,CAAC,WAAW,EAAE,WAAW,CAAC;;KAEpE,IAAI,CAAC,YAAY,EAAE;OACjB,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC;AAC1D;;KAEI,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC;IAC5C;GACD,IAAI,sBAAsB,GAAG,4MAA4M;AAC3O,GAAE,IAAI,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,IAAI,EAAE;AACzD,KAAI,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM;AACnC,SAAQ,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,SAAQ,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAChC,KAAI,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY;AAC3C,OAAM,OAAO,eAAe,CAAC,aAAa,EAAE,sBAAsB,CAAC;AACnE,MAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;;KAEpB,IAAI,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC9C,SAAQ,gBAAgB,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC;AAC7D,SAAQ,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC;AACrC,SAAQ,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC;;AAExC,KAAI,IAAI,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY;AACtD,OAAM,OAAO;AACb,SAAQ,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;AAC5D,SAAQ,WAAW,EAAE;QACd;AACP,MAAK,CAAC;AACN,SAAQ,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC9D,SAAQ,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC;AACjC,SAAQ,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC;;KAEpC,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;AACtE,OAAM,UAAU,CAAC,UAAU,GAAG,EAAE;SACxB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE;AAC3C,WAAU,OAAO,GAAG;AACpB;;AAEA,SAAQ,OAAO;WACL,MAAM,EAAE,MAAM;AACxB,WAAU,WAAW,EAAE;UACd;AACT,QAAO,CAAC;AACR,MAAK,CAAC;;;KAGF,IAAI,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACnD,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;OAC1B,IAAI,SAAS,GAAG,IAAI;;OAEpB,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;SACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE;WAC1C,IAAI,MAAM,IAAI,SAAS,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;AACrE;AACA;AACA;AACA,aAAY,qBAAqB,CAAC,OAAO,GAAG,IAAI;aACpC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,WAAW,EAAE;eACvD,IAAI,WAAW,EAAE;AAC/B,iBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC;AACnD,iBAAgB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;AACpD;AACA,cAAa,CAAC;AACd;AACA,UAAS,CAAC;AACV,QAAO,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;AAC3F,SAAQ,qBAAqB,CAAC,OAAO,GAAG,IAAI;AAC5C,SAAQ,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,WAAW,EAAE;WAC9D,IAAI,WAAW,EAAE;AAC3B,aAAY,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;AACtD,aAAY,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;AAChD;AACA,UAAS,CAAC;AACV;;AAEA,OAAM,OAAO,YAAY;SACjB,SAAS,GAAG,KAAK;QAClB;MACF,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;;AAE3C,KAAI,IAAI,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC;AAC/C,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;OAC1B,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,aAAa,EAAE;AAC/D,SAAQ,OAAO,CAAC,IAAI,CAAC,oGAAoG,CAAC;AAC1H;AACA,MAAK,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;;AAEpC,KAAI,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;KACtC,IAAI,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;AACtD,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;OAC1B,IAAI,qBAAqB,EAAE,qBAAqB;;AAEtD;AACA,OAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;SACpB;AACR;;AAEA,OAAM,IAAI,kBAAkB,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,MAAM,GAAG,CAAC,qBAAqB,GAAG,WAAW,CAAC,eAAe,MAAM,IAAI,IAAI,qBAAqB,KAAK,MAAM,GAAG,MAAM,GAAG,qBAAqB,CAAC,UAAU;AACvO,OAAM,IAAI,iBAAiB,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,CAAC,qBAAqB,GAAG,OAAO,CAAC,eAAe,MAAM,IAAI,IAAI,qBAAqB,KAAK,MAAM,GAAG,MAAM,GAAG,qBAAqB,CAAC,UAAU;OACpN,IAAI,oBAAoB,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;OAC1E,IAAI,YAAY,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,WAAW;;AAE5D,OAAM,IAAI,iBAAiB,KAAK,oBAAoB,IAAI,YAAY,CAAC,EAAE;AACvE,SAAQ,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;AAC3D;AACA,MAAK,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;;AAEjE,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;AAChC,OAAM,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC;AACtC,MAAK,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpB,KAAI,IAAI,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY;OACnD,OAAO,2BAA2B,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;MAC7D,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;;AAElC,KAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;AAC1B,OAAM,OAAO,IAAI;AACjB;;KAEI,oBAAoB,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AACzE,OAAM,KAAK,EAAE;MACR,eAAe,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAE;AAClE,OAAM,KAAK,EAAE;MACR,EAAE,QAAQ,CAAC,CAAC;IACd;GACD,gBAAgB,CAAC,SAAS,GAAG;AAC/B,KAAI,MAAM,EAAE,SAAS,CAAC,GAAG;AACzB,KAAI,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;AAC7B,OAAM,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;OAC5C,eAAe,EAAE,SAAS,CAAC;AACjC,MAAK,CAAC,CAAC;IACJ;AACH,GAAE,IAAI,gCAAgC,GAAG,SAAS,gCAAgC,CAAC,aAAa,EAAE;KAC9F,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAClD,KAAI,OAAO,uBAAuB,CAAC,GAAG,EAAE,aAAa,CAAC;IACnD;AACH,GAAE,IAAI,0CAA0C,GAAG,SAAS,0CAA0C,CAAC,aAAa,EAAE;KAClH,IAAI,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC;KAC7D,IAAI,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;;AAE3D,KAAI,IAAI,kBAAkB,IAAI,eAAe,EAAE;AAC/C,OAAM,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,MAAM,CAAC,aAAa,EAAE,uDAAuD,CAAC,CAAC;AAClJ;;KAEI,IAAI,kBAAkB,EAAE;AAC5B,OAAM,OAAO,uBAAuB,CAAC,kBAAkB,EAAE,aAAa,CAAC;AACvE;;AAEA,KAAI,OAAO,oBAAoB,CAAC,eAAe,EAAE,aAAa,CAAC;IAC5D;AACH,GAAE,IAAI,WAAW,GAAG,SAAS,WAAW,GAAG;AAC3C;KACI,gCAAgC,CAAC,qBAAqB,CAAC;KACvD,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;;KAE3C,IAAI,CAAC,GAAG,EAAE;AACd,OAAM,MAAM,IAAI,KAAK,CAAC,oIAAoI,CAAC;AAC3J;;AAEA,KAAI,OAAO,GAAG;IACX;;AAEH,GAAE,IAAI,SAAS,GAAG,CAAC,MAAM,CAAC;;AAE1B,GAAE,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,GAAG,EAAE;AAC9C,KAAI,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD;;GAED,IAAI,sBAAsB,GAAG,SAAS,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC/E,KAAI,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;;AAE7D,KAAI,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,IAAI,EAAE;AACrD,OAAM,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE;AACtB,WAAU,SAAS,GAAG,IAAI,CAAC,SAAS;AACpC,WAAU,YAAY,GAAG,IAAI,CAAC,OAAO;WAC3B,OAAO,GAAG,YAAY,KAAK,MAAM,GAAG,EAAE,GAAG,YAAY;AAC/D,WAAU,MAAM,GAAG,IAAI,CAAC,MAAM;AAC9B,WAAU,OAAO,GAAG,IAAI,CAAC,OAAO;AAChC,WAAU,OAAO,GAAG,IAAI,CAAC,OAAO;AAChC,WAAU,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAClC,WAAU,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAClC,WAAU,OAAO,GAAG,IAAI,CAAC,OAAO;AAChC,WAAU,WAAW,GAAG,IAAI,CAAC,WAAW;AACxC,WAAU,aAAa,GAAG,IAAI,CAAC,aAAa;AAC5C,WAAU,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AAClD,WAAU,SAAS,GAAG,IAAI,CAAC,SAAS;AACpC,WAAU,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAClC,WAAU,uBAAuB,GAAG,IAAI,CAAC,uBAAuB;AAChE,WAAU,oBAAoB,GAAG,IAAI,CAAC,oBAAoB;AAC1D,OAAM,IAAI,GAAG,GAAG,0CAA0C,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;OACzF,IAAI,QAAQ,GAAG,UAAU,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI;OACtD,IAAI,WAAW,GAAG,aAAa,IAAI,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,IAAI;;OAE/D,IAAI,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAChD,WAAU,gBAAgB,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC;AAC/D,WAAU,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC;AACvC,WAAU,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC;;OAEpC,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;OACnC,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC;AACA;;AAEA,OAAM,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AAC7C,OAAM,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAC/C,OAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACjD,OAAM,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAC/C,OAAM,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC;AACvD,OAAM,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC;AAC3D,OAAM,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;AACjE,OAAM,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;AACnD,OAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACjD,OAAM,cAAc,CAAC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,CAAC;AAC/E,OAAM,cAAc,CAAC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;AACzE,OAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACjD,OAAM,IAAI,aAAa;;OAEjB,IAAI,OAAO,EAAE;AACnB,SAAQ,IAAI,IAAI,KAAK,iBAAiB,EAAE;AACxC;WACU,aAAa,GAAG,OAAO;AACjC,UAAS,MAAM;AACf;AACA,WAAU,aAAa,GAAG,SAAS,aAAa,GAAG;aACvC,OAAO,CAAC,OAAO,CAAC;YACjB;AACX;AACA;;AAEA,OAAM,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;AACrD,OAAM,KAAK,CAAC,eAAe,CAAC,YAAY;AACxC,SAAQ,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,EAAE;WACxF,IAAI,UAAU,GAAG,IAAI;;WAErB,IAAI,WAAW,EAAE;AAC3B,aAAY,QAAQ,IAAI;AACxB,eAAc,KAAK,SAAS;AAC5B,iBAAgB,UAAU,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC;iBACtD;;AAEhB,eAAc,KAAK,SAAS;AAC5B,iBAAgB,IAAI,MAAM,IAAI,OAAO,EAAE;AACvC,mBAAkB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI;AACzC,uBAAsB,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC;;AAEhF,mBAAkB,IAAI,IAAI,KAAK,UAAU,EAAE;AAC3C,qBAAoB,UAAU,GAAG,WAAW,CAAC,4BAA4B,CAAC,WAAW,CAAC;AACtF,oBAAmB,MAAM,IAAI,IAAI,KAAK,SAAS,EAAE;AACjD,qBAAoB,UAAU,GAAG,WAAW,CAAC,2BAA2B,CAAC,WAAW,CAAC;AACrF,oBAAmB,MAAM;AACzB,qBAAoB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;AAClG;AACA,kBAAiB,MAAM;AACvB,mBAAkB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC;AACxG;;iBAEgB;;AAEhB,eAAc,KAAK,iBAAiB;AACpC,iBAAgB,UAAU,GAAG,WAAW,CAAC,4BAA4B,CAAC,OAAO,CAAC;iBAC9D;;AAEhB,eAAc,KAAK,kBAAkB;AACrC,iBAAgB,UAAU,GAAG,WAAW,CAAC,6BAA6B,EAAE;iBACxD;;eAEF;AACd,iBAAgB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,EAAE,+KAA+K,CAAC,CAAC;AAC7P;YACW,MAAM,IAAI,QAAQ,EAAE;aACnB,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;YAC5C;;;AAGX,WAAU,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC;;WAEhC,UAAU,CAAC,UAAU,CAAC;;WAEtB,IAAI,UAAU,EAAE;AAC1B,aAAY,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7C;AACA;QACO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC1C,OAAM,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;AAC5C,OAAM,KAAK,CAAC,SAAS,CAAC,YAAY;AAClC,SAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;WACvB;AACV;;AAEA,SAAQ,IAAI,OAAO,GAAG,4BAA4B,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,gBAAgB,CAAC,CAAC;;SAEpF,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,CAAC,OAAO,EAAE;AACvD,WAAU,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5C;AACA,QAAO,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAChC,OAAM,KAAK,CAAC,eAAe,CAAC,YAAY;AACxC,SAAQ,OAAO,YAAY;AAC3B,WAAU,IAAI,UAAU,CAAC,OAAO,IAAI,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE;AACtF,aAAY,IAAI;AAChB,eAAc,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE;AAC1C,eAAc,UAAU,CAAC,OAAO,GAAG,IAAI;cAC1B,CAAC,OAAO,KAAK,EAAE;AAC5B;AACA;UACS;QACF,EAAE,EAAE,CAAC;AACZ,OAAM,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;SAC7C,EAAE,EAAE,EAAE;SACN,SAAS,EAAE,SAAS;AAC5B,SAAQ,GAAG,EAAE;AACb,QAAO,CAAC;AACR,MAAK,CAAC;;;AAGN,KAAI,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;OAChD,0CAA0C,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACrF,OAAM,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE;AACvB,WAAU,SAAS,GAAG,KAAK,CAAC,SAAS;AACrC,OAAM,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;SAC7C,EAAE,EAAE,EAAE;AACd,SAAQ,SAAS,EAAE;AACnB,QAAO,CAAC;MACH;;AAEL,KAAI,IAAI,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,aAAa;KACtD,OAAO,CAAC,SAAS,GAAG;AACxB,OAAM,EAAE,EAAE,SAAS,CAAC,MAAM;AAC1B,OAAM,SAAS,EAAE,SAAS,CAAC,MAAM;AACjC,OAAM,QAAQ,EAAE,SAAS,CAAC,IAAI;AAC9B,OAAM,MAAM,EAAE,SAAS,CAAC,IAAI;AAC5B,OAAM,OAAO,EAAE,SAAS,CAAC,IAAI;AAC7B,OAAM,OAAO,EAAE,SAAS,CAAC,IAAI;AAC7B,OAAM,QAAQ,EAAE,SAAS,CAAC,IAAI;AAC9B,OAAM,OAAO,EAAE,SAAS,CAAC,IAAI;AAC7B,OAAM,WAAW,EAAE,SAAS,CAAC,IAAI;AACjC,OAAM,aAAa,EAAE,SAAS,CAAC,IAAI;AACnC,OAAM,gBAAgB,EAAE,SAAS,CAAC,IAAI;AACtC,OAAM,SAAS,EAAE,SAAS,CAAC,IAAI;AAC/B,OAAM,QAAQ,EAAE,SAAS,CAAC,IAAI;AAC9B,OAAM,uBAAuB,EAAE,SAAS,CAAC,IAAI;AAC7C,OAAM,oBAAoB,EAAE,SAAS,CAAC,IAAI;OACpC,OAAO,EAAE,SAAS,CAAC;MACpB;AACL,KAAI,OAAO,CAAC,WAAW,GAAG,WAAW;AACrC,KAAI,OAAO,CAAC,aAAa,GAAG,IAAI;AAChC,KAAI,OAAO,OAAO;IACf;;AAEH,GAAE,IAAI,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW;;GAE5C,IAAI,uBAAuB,gBAAgB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;AACtE,GAAE,uBAAuB,CAAC,WAAW,GAAG,iCAAiC;AACzE,GAAE,IAAI,0BAA0B,GAAG,SAAS,0BAA0B,GAAG;KACrE,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC;;KAEnD,IAAI,CAAC,GAAG,EAAE;AACd,OAAM,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC;AAC1F;;AAEA,KAAI,OAAO,GAAG;IACX;GACD,IAAI,oBAAoB,GAAG,oNAAoN;AACjP,GAAE,IAAI,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,IAAI,EAAE;AACzE,KAAI,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM;AACnC,SAAQ,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,SAAQ,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAChC,KAAI,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY;AAC3C,OAAM,OAAO,eAAe,CAAC,aAAa,EAAE,oBAAoB,CAAC;AACjE,MAAK,EAAE,CAAC,aAAa,CAAC,CAAC;KACnB,IAAI,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;KAChD,IAAI,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;;AAEzC,KAAI,IAAI,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC;AACzC,OAAM,gBAAgB,EAAE;AACxB,MAAK,CAAC;AACN,SAAQ,gBAAgB,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC;AAC7D,SAAQ,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC;AACjC,SAAQ,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC;;AAExC,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;AAChC;OACM,IAAI,YAAY,CAAC,OAAO,IAAI,uBAAuB,CAAC,OAAO,EAAE;SAC3D;AACR;;AAEA,OAAM,IAAI,gCAAgC,GAAG,SAAS,gCAAgC,CAAC,MAAM,EAAE;SACvF,IAAI,YAAY,CAAC,OAAO,IAAI,uBAAuB,CAAC,OAAO,EAAE;AACrE,SAAQ,YAAY,CAAC,OAAO,GAAG,MAAM;AACrC,SAAQ,uBAAuB,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,gBAAgB,EAAE;AAC9H,WAAU,UAAU,CAAC;AACrB,aAAY,gBAAgB,EAAE;AAC9B,YAAW,CAAC;AACZ,UAAS,CAAC;AACV,QAAO,CAAC;;;OAGF,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC,EAAE;SAC1G,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE;WAC1C,IAAI,MAAM,EAAE;aACV,gCAAgC,CAAC,MAAM,CAAC;AACpD;AACA,UAAS,CAAC;QACH,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC,EAAE;AACxH;AACA,SAAQ,gCAAgC,CAAC,MAAM,CAAC,MAAM,CAAC;AACvD;MACK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;AAC5C,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;AAChC;AACA,OAAM,OAAO,YAAY;AACzB;AACA,SAAQ,IAAI,GAAG,CAAC,gBAAgB,EAAE;AAClC,WAAU,uBAAuB,CAAC,OAAO,GAAG,IAAI;AAChD,WAAU,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE;AACxC,UAAS,MAAM,IAAI,uBAAuB,CAAC,OAAO,EAAE;AACpD;AACA;AACA;AACA,WAAU,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY;AAC3D,aAAY,uBAAuB,CAAC,OAAO,GAAG,IAAI;;AAElD,aAAY,IAAI,GAAG,CAAC,gBAAgB,EAAE;AACtC,eAAc,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC5C;AACA,YAAW,CAAC;AACZ;QACO;AACP,MAAK,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;;AAE/B,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;OAC1B,oBAAoB,CAAC,YAAY,CAAC;AACxC,MAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACvB;AACA;;AAEA,KAAI,IAAI,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC;AAC/C,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;OAC1B,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,aAAa,EAAE;AAC/D,SAAQ,OAAO,CAAC,IAAI,CAAC,4GAA4G,CAAC;AAClI;AACA,MAAK,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;;AAEpC,KAAI,IAAI,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;AAC1C,KAAI,KAAK,CAAC,SAAS,CAAC,YAAY;AAChC,OAAM,IAAI,WAAW,IAAI,IAAI,EAAE;SACvB;AACR;;AAEA,OAAM,IAAI,OAAO,IAAI,IAAI,EAAE;AAC3B,SAAQ,OAAO,CAAC,IAAI,CAAC,mGAAmG,CAAC;SACjH;AACR;;AAEA,OAAM,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,EAAE;AACzF,SAAQ,OAAO,CAAC,IAAI,CAAC,yIAAyI,CAAC;AAC/J;;AAEA,OAAM,IAAI,WAAW,CAAC,YAAY,IAAI,IAAI,IAAI,OAAO,CAAC,YAAY,KAAK,WAAW,CAAC,YAAY,EAAE;AACjG,SAAQ,OAAO,CAAC,IAAI,CAAC,mLAAmL,CAAC;AACzM;;AAEA,OAAM,IAAI,WAAW,CAAC,iBAAiB,IAAI,IAAI,IAAI,OAAO,CAAC,iBAAiB,KAAK,WAAW,CAAC,iBAAiB,EAAE;AAChH,SAAQ,OAAO,CAAC,IAAI,CAAC,mLAAmL,CAAC;AACzM;;AAEA,OAAM,IAAI,WAAW,CAAC,UAAU,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,KAAK,WAAW,CAAC,UAAU,EAAE;AAC3F,SAAQ,OAAO,CAAC,IAAI,CAAC,gHAAgH,CAAC;AACtI;;AAEA,OAAM,IAAI,WAAW,CAAC,uBAAuB,IAAI,IAAI,IAAI,OAAO,CAAC,uBAAuB,KAAK,WAAW,CAAC,uBAAuB,EAAE;AAClI,SAAQ,OAAO,CAAC,IAAI,CAAC,6HAA6H,CAAC;AACnJ;;AAEA,OAAM,IAAI,WAAW,CAAC,iBAAiB,IAAI,IAAI,IAAI,OAAO,CAAC,iBAAiB,KAAK,WAAW,CAAC,iBAAiB,EAAE;AAChH,SAAQ,OAAO,CAAC,IAAI,CAAC,uHAAuH,CAAC;AAC7I;AACA,MAAK,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KAC1B,oBAAoB,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,EAAE;AAC9E,OAAM,KAAK,EAAE;MACR,EAAE,QAAQ,CAAC;IACb;;AAEH,GAAE,IAAI,6BAA6B,GAAG,SAAS,6BAA6B,CAAC,IAAI,EAAE;AACnF,KAAI,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE;AACpB,SAAQ,SAAS,GAAG,IAAI,CAAC,SAAS;;AAElC,KAAI,IAAI,qBAAqB,GAAG,0BAA0B,EAAE;AAC5D,SAAQ,gBAAgB,GAAG,qBAAqB,CAAC,gBAAgB;;KAE7D,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KACnC,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC,KAAI,KAAK,CAAC,eAAe,CAAC,YAAY;AACtC,OAAM,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,gBAAgB,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE;AAC9E,SAAQ,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AAC/C,SAAQ,SAAS,CAAC,OAAO,GAAG,IAAI;QACzB;;;AAGP,OAAM,OAAO,YAAY;AACzB,SAAQ,IAAI,SAAS,CAAC,OAAO,IAAI,gBAAgB,EAAE;AACnD,WAAU,IAAI;aACF,gBAAgB,CAAC,OAAO,EAAE;AACtC,aAAY,SAAS,CAAC,OAAO,GAAG,KAAK;YAC1B,CAAC,OAAO,CAAC,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;QACO;AACP,MAAK,EAAE,CAAC,gBAAgB,CAAC,CAAC;AAC1B,KAAI,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;OAC7C,GAAG,EAAE,OAAO;OACZ,EAAE,EAAE,EAAE;AACZ,OAAM,SAAS,EAAE;AACjB,MAAK,CAAC;AACN,IAAG,CAAC;;;AAGJ,GAAE,IAAI,6BAA6B,GAAG,SAAS,6BAA6B,CAAC,KAAK,EAAE;AACpF,KAAI,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE;AACrB,SAAQ,SAAS,GAAG,KAAK,CAAC,SAAS;AACnC;AACA,KAAI,0BAA0B,EAAE;AAChC,KAAI,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;OAC7C,EAAE,EAAE,EAAE;AACZ,OAAM,SAAS,EAAE;AACjB,MAAK,CAAC;IACH;;AAEH,GAAE,IAAI,gBAAgB,GAAG,QAAQ,GAAG,6BAA6B,GAAG,6BAA6B;;AAEjG;AACA;AACA;;AAEA,GAAE,IAAI,SAAS,GAAG,SAAS,SAAS,GAAG;AACvC,KAAI,IAAI,qBAAqB,GAAG,0CAA0C,CAAC,mBAAmB,CAAC;AAC/F,SAAQ,MAAM,GAAG,qBAAqB,CAAC,MAAM;;AAE7C,KAAI,OAAO,MAAM;IACd;;AAEH;AACA;AACA;AACA;AACA;AACA;;GAEE,IAAI,oBAAoB,GAAG,sBAAsB,CAAC,eAAe,EAAE,QAAQ,CAAC;AAC9E;AACA;AACA;;GAEE,IAAI,WAAW,GAAG,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC5D;AACA;AACA;;GAEE,IAAI,iBAAiB,GAAG,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC;AACxE;AACA;AACA;;GAEE,IAAI,iBAAiB,GAAG,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC;AACxE;AACA;AACA;;GAEE,IAAI,cAAc,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAClE;AACA;AACA;;GAEE,IAAI,cAAc,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAClE;AACA;AACA;;GAEE,IAAI,WAAW,GAAG,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC5D;AACA;AACA;;GAEE,IAAI,gBAAgB,GAAG,sBAAsB,CAAC,WAAW,EAAE,QAAQ,CAAC;AACtE;AACA;AACA;;GAEE,IAAI,cAAc,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAClE;AACA;AACA;;GAEE,IAAI,cAAc,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC;GAChE,IAAI,cAAc,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAClE;AACA;AACA;;GAEE,IAAI,sBAAsB,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AAClF;AACA;AACA;AACA;;GAEE,IAAI,uBAAuB,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACpF;AACA;AACA;;GAEE,IAAI,2BAA2B,GAAG,sBAAsB,CAAC,sBAAsB,EAAE,QAAQ,CAAC;AAC5F;AACA;AACA;;GAEE,IAAI,yBAAyB,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC;AACxF;AACA;AACA;;GAEE,IAAI,cAAc,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAClE;AACA;AACA;AACA;AACA;AACA;;GAEE,IAAI,sBAAsB,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AAClF;AACA;AACA;;GAEE,IAAI,6BAA6B,GAAG,sBAAsB,CAAC,wBAAwB,EAAE,QAAQ,CAAC;AAChG;AACA;AACA;;GAEE,IAAI,oBAAoB,GAAG,sBAAsB,CAAC,eAAe,EAAE,QAAQ,CAAC;AAC9E;AACA;AACA;;GAEE,IAAI,8BAA8B,GAAG,sBAAsB,CAAC,yBAAyB,EAAE,QAAQ,CAAC;;AAElG,GAAE,OAAO,CAAC,cAAc,GAAG,cAAc;AACzC,GAAE,OAAO,CAAC,oBAAoB,GAAG,oBAAoB;AACrD,GAAE,OAAO,CAAC,8BAA8B,GAAG,8BAA8B;AACzE,GAAE,OAAO,CAAC,oBAAoB,GAAG,oBAAoB;AACrD,GAAE,OAAO,CAAC,cAAc,GAAG,cAAc;AACzC,GAAE,OAAO,CAAC,WAAW,GAAG,WAAW;AACnC,GAAE,OAAO,CAAC,iBAAiB,GAAG,iBAAiB;AAC/C,GAAE,OAAO,CAAC,iBAAiB,GAAG,iBAAiB;AAC/C,GAAE,OAAO,CAAC,gBAAgB,GAAG,gBAAgB;AAC7C,GAAE,OAAO,CAAC,uBAAuB,GAAG,uBAAuB;AAC3D,GAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAC7B,GAAE,OAAO,CAAC,gBAAgB,GAAG,gBAAgB;AAC7C,GAAE,OAAO,CAAC,gBAAgB,GAAG,gBAAgB;AAC7C,GAAE,OAAO,CAAC,wBAAwB,GAAG,wBAAwB;AAC7D,GAAE,OAAO,CAAC,cAAc,GAAG,cAAc;AACzC,GAAE,OAAO,CAAC,sBAAsB,GAAG,sBAAsB;AACzD,GAAE,OAAO,CAAC,cAAc,GAAG,cAAc;AACzC,GAAE,OAAO,CAAC,WAAW,GAAG,WAAW;AACnC,GAAE,OAAO,CAAC,gBAAgB,GAAG,gBAAgB;AAC7C,GAAE,OAAO,CAAC,yBAAyB,GAAG,yBAAyB;AAC/D,GAAE,OAAO,CAAC,cAAc,GAAG,cAAc;AACzC,GAAE,OAAO,CAAC,cAAc,GAAG,cAAc;AACzC,GAAE,OAAO,CAAC,6BAA6B,GAAG,6BAA6B;AACvE,GAAE,OAAO,CAAC,2BAA2B,GAAG,2BAA2B;AACnE,GAAE,OAAO,CAAC,sBAAsB,GAAG,sBAAsB;AACzD,GAAE,OAAO,CAAC,WAAW,GAAG,WAAW;AACnC,GAAE,OAAO,CAAC,WAAW,GAAG,WAAW;AACnC,GAAE,OAAO,CAAC,SAAS,GAAG,SAAS;;AAE/B,EAAC,EAAE,CAAA;;;;;ACxuCH;AACA,SAAS,gBAAgB,CAAC,EACzB,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,SAAS,EACT,OAAO,EACP,YAAY,EACZ,YAAY,GAC6E,EAAA;AACzF,IAAA,MAAM,MAAM,GAAGC,gCAAS,EAAE;AAC1B,IAAA,MAAM,QAAQ,GAAGC,kCAAW,EAAE;IAC9B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;;AAIrE,IAAA,MAAM,YAAY,GAAG,OAAO,CAAkB,KAAI;QACjD,CAAC,CAAC,cAAc,EAAE;AAElB,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE;YACzB;;QAGD,YAAY,CAAC,IAAI,CAAC;QAClB,eAAe,CAAC,IAAI,CAAC;AAErB,QAAA,IAAI;;YAEH,MAAM,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM;AACvF,YAAA,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,IAAI,CAAC;AAEvD,YAAA,IAAI,gBAAgB,GAAG,cAAc,EAAE;AACtC,gBAAA,eAAe,CACd,CAAA,QAAA,EAAW,gBAAgB,gDAAgD,cAAc,CAAA,6DAAA,CAA+D,CACxJ;gBACD;;AAGD,YAAA,IAAI,gBAAgB,KAAK,CAAC,EAAE;gBAC3B,eAAe,CAAC,6CAA6C,CAAC;gBAC9D;;;YAID,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC;gBAC5D,QAAQ;AACR,gBAAA,aAAa,EAAE;AACd,oBAAA,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;AAChC,iBAAA;AACD,gBAAA,QAAQ,EAAE,aAAa;AACvB,aAAA,CAAC;YAEF,IAAI,KAAK,EAAE;AACV,gBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACrE,oBAAA,eAAe,CAAC,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC;;qBAC5C;oBACN,eAAe,CAAC,0CAA0C,CAAC;;gBAE5D;;;YAID,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,WAAW,EAAE;;gBAE1D,IAAI,CAAC,YAAY,EAAE;AAClB,oBAAA,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC;;;AAInF,gBAAA,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,KAAK,SAAS;gBAC3D,MAAM,QAAQ,GAAG;AAChB,sBAAE;sBACA,+BAA+B;;gBAGlC,MAAM,UAAU,GACf,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM;AACpF,gBAAA,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,GAAG,CAAC;;AAGjD,gBAAA,MAAM,WAAW,GAAG;;oBAEnB,eAAe,EAAE,aAAa,CAAC,EAAE;AACjC,oBAAA,aAAa,EAAE,MAAM;oBACrB,aAAa,EAAE,gBAAgB,GAAG,cAAc,GAAG,MAAM;oBACzD,WAAW;oBACX,aAAa,EAAE,gBAAgB,GAAG,WAAW,GAAG,SAAS;AACzD,oBAAA,UAAU,EAAE,UAAU;;oBAGtB,aAAa,EAAE,QAAQ,CAAC,aAAa;oBACrC,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,aAAa,EAAE,QAAQ,CAAC,aAAa;;AAGrC,oBAAA,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACrE,oBAAA,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,YAAY,CAAC,EAAE;oBAC1D,YAAY,EAAE,YAAY,EAAE,IAAI;AAChC,oBAAA,KAAK,EAAE,EAAE;iBACT;;gBAGD,IAAI,aAAa,EAAE;AAClB,oBAAA,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;AAC1B,wBAAA,MAAM,EAAE,SAAS;AACjB,wBAAA,iBAAiB,EAAE,SAAS;AAC5B,qBAAA,CAAC;;qBACI;;AAEN,oBAAA,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;wBAC1B,mBAAmB,EAAE,MAAM,CAAC,UAAU;;AAEtC,qBAAA,CAAC;;AAGH,gBAAA,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;AAC3E,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;oBACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC5D,iBAAA,CAAC;AAEF,gBAAA,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE;AAEhD,gBAAA,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE;oBACxB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,mCAAmC,CAAC;;;AAI1E,gBAAA,SAAS,CAAC;oBACT,OAAO,EAAE,WAAW,CAAC,OAAO;AAC5B,oBAAA,OAAO,EAAE,WAAW;AACpB,oBAAA,aAAa,EAAE,aAAa;AAC5B,oBAAA,QAAQ,EAAE,QAAQ;AAClB,iBAAA,CAAC;;iBACI;AACN,gBAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;;;QAEhD,OAAO,GAAQ,EAAE;AAClB,YAAA,eAAe,CAAC,GAAG,CAAC,OAAO,IAAI,qCAAqC,CAAC;AACrE,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,qCAAqC,CAAC;;gBACpD;YACT,YAAY,CAAC,KAAK,CAAC;;AAErB,KAAC;AAED,IAAA,MAAM,WAAW,GAAG;AACnB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,eAAe,EAAE,2BAA2B;AAC5C,QAAA,KAAK,EAAE,sBAAsB;AAC7B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,YAAY,EAAE,yBAAyB;AACvC,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS;QAC7C,OAAO,EAAE,SAAS,GAAG,GAAG,GAAG,CAAC;AAC5B,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,GAAG,EAAE,KAAK;KACV;IAED,QACCL,IAAA,CAAA,MAAA,EAAA,EACC,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAA,QAAA,EAAA,CAE7EV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,eAAe,EAAE,mDAAmD;AACpE,oBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,oBAAA,YAAY,EAAE,yBAAyB;AACvC,oBAAA,OAAO,EAAE,mBAAmB;AAC5B,iBAAA,EAAA,QAAA,EAGDA,GAAA,CAACgB,qCAAc,EAAA,EACd,OAAO,EAAE;AACR,wBAAA,MAAM,EAAE,WAAW;AACnB,wBAAA,aAAa,EAAE;AACd,4BAAA,cAAc,EAAE;gCACf,IAAI,EAAE,QAAQ,CAAC,YAAY;gCAC3B,KAAK,EAAE,QAAQ,CAAC,aAAa;gCAC7B,KAAK,EAAE,QAAQ,CAAC,aAAa;AAC7B,6BAAA;AACD,yBAAA;AACD,qBAAA,EAAA,CACA,GACG,EAEL,YAAY,KACZN,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,eAAe,EAAE,kDAAkD;AACnE,oBAAA,MAAM,EAAE,CAAA,+BAAA,CAAiC;AACzC,oBAAA,YAAY,EAAE,yBAAyB;AACvC,oBAAA,OAAO,EAAE,mBAAmB;AAC5B,oBAAA,KAAK,EAAE,uBAAuB;AAC9B,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,uBAAuB;iBACnC,EAAA,QAAA,EAAA,CAAA,eAAA,EAEG,YAAY,CAAA,EAAA,CACX,CACN,EAEDV,GAAA,CAAA,QAAA,EAAA,EACC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,MAAM,IAAI,SAAS,EAC9B,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,CAAC,CAAC,KAAI;oBACnB,IAAI,CAAC,SAAS,EAAE;wBACf,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,2BAA2B;;AAErE,iBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;oBACnB,IAAI,CAAC,SAAS,EAAE;wBACf,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,2BAA2B;;iBAEpE,EAAA,QAAA,EAEA,SAAS,IACTU,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACCX,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,SAAS,EAAE,yBAAyB;6BACpC,EAAA,QAAA,EAAA,QAAA,EAAA,CAGI,EAAA,uBAAA,CAAA,EAAA,CAEJ,KAEHU,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACE,GAAG,EACH,WAAW;4BACZ,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5E,8BAAE;AACF,8BAAE,cAAc,CAAA,EAAA,CACf,CACH,EAAA,CACO,EAGTX,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;IAKP,EAAA,CAAS,CAAA,EAAA,CACJ;AAET;AAEA;AACM,SAAU,WAAW,CAAC,EAC3B,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,SAAS,EACT,OAAO,EACP,YAAY,EACZ,aAAa,EACb,gBAAgB,GACE,EAAA;IAClB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;IACrE,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;;IAGrE,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,mBAAmB,GAAG,YAAW;AACtC,YAAA,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE;gBACrE;;;YAID,MAAM,gBAAgB,GACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC;AACtE,YAAA,IAAI,gBAAgB,KAAK,CAAC,EAAE;AAC3B,gBAAA,OAAO;;;AAIR,YAAA,IAAI,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;gBACnC,MAAM,UAAU,GAAG,4BAA4B;AAC/C,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE;AACpD,oBAAA,OAAO;;;;YAKT,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE;AACnC,gBAAA,OAAO;;YAGR,0BAA0B,CAAC,IAAI,CAAC;YAChC,eAAe,CAAC,IAAI,CAAC;AAErB,YAAA,IAAI;;AAEH,gBAAA,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,KAAK,SAAS;gBAC3D,MAAM,QAAQ,GAAG;AAChB,sBAAE;sBACA,sCAAsC;;AAGzC,gBAAA,MAAM,WAAW,GAAG;AACnB,oBAAA,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,YAAY,CAAC,EAAE;AAC1D,oBAAA,MAAM,EAAE,WAAW;AACnB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACrE,YAAY,EAAE,YAAY,EAAE,IAAI;oBAChC,aAAa,EAAE,QAAQ,CAAC,aAAa;iBACrC;;gBAGD,IAAI,CAAC,aAAa,EAAE;;AAEnB,oBAAA,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;wBAC1B,mBAAmB,EAAE,MAAM,CAAC,UAAU;;AAEtC,qBAAA,CAAC;;AAGH,gBAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;AACpE,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;oBACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC5D,iBAAA,CAAC;AAEF,gBAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,gBAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AAChB,oBAAA,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;;qBAC5B;AACN,oBAAA,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,2CAA2C,CAAC;;;YAE1E,OAAO,GAAG,EAAE;gBACb,eAAe,CAAC,2CAA2C,CAAC;;oBACnD;gBACT,0BAA0B,CAAC,KAAK,CAAC;;AAEnC,SAAC;;QAGD,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,EAAE,GAAG,CAAC;AAClD,QAAA,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC;AACjC,KAAC,EAAE;QACF,YAAY;QACZ,YAAY;AACZ,QAAA,QAAQ,CAAC,YAAY;AACrB,QAAA,QAAQ,CAAC,aAAa;AACtB,QAAA,QAAQ,CAAC,YAAY;QACrB,WAAW;QACX,YAAY;QACZ,MAAM;AACN,KAAA,CAAC;;AAGF,IAAA,IAAI,uBAAuB,IAAI,CAAC,YAAY,EAAE;QAC7C,QACCU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,GAAG,EAAE,KAAK;aACV,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,KAAK,EAAE,2BAA2B;AAClC,wBAAA,SAAS,EAAE,yBAAyB;qBACpC,EAAA,QAAA,EAAA,QAAA,EAAA,CAGI,EACNA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,KAAK,EAAE,sBAAsB;AAC7B,wBAAA,UAAU,EAAE,uBAAuB;AACnC,wBAAA,QAAQ,EAAE,qBAAqB;qBAC/B,EAAA,QAAA,EAAA,8CAAA,EAAA,CAGK,CAAA,EAAA,CACF;;;IAKR,IAAI,YAAY,EAAE;QACjB,QACCU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gBAAA,eAAe,EAAE,kDAAkD;AACnE,gBAAA,MAAM,EAAE,CAAA,+BAAA,CAAiC;AACzC,gBAAA,YAAY,EAAE,yBAAyB;AACvC,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,KAAK,EAAE,uBAAuB;AAC9B,gBAAA,QAAQ,EAAE,qBAAqB;AAC/B,gBAAA,UAAU,EAAE,uBAAuB;aACnC,EAAA,QAAA,EAAA,CAAA,eAAA,EAEG,YAAY,CAAA,EAAA,CACX;;;IAKR;;AAEC,IAAAV,GAAA,CAACiB,+BAAQ,EAAA,EACR,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE;YACR,YAAY;AACZ,YAAA,UAAU,EAAE,gBAAgB,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AACnD,YAAA,MAAM,EAAG,MAAM,CAAC,MAAc,IAAI,IAAI;AACtC,SAAA,EAAA,QAAA,EAEDjB,IAAC,gBAAgB,EAAA,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAA,CACzB,EAAA,CACQ;AAEb;;ACxcM,SAAU,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,EAAgB,EAAA;IAC1F,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACrD,IAAA,MAAM,YAAY,GAAG,SAAS,EAAE;AAChC,IAAA,MAAM,aAAa,GAAG,MAAM,CAAqB,IAAI,CAAC;;IAGtD,SAAS,CAAC,MAAK;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;YAC3B,IAAI,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,4BAA4B,CAAC;YACtE,IAAI,CAAC,UAAU,EAAE;AAChB,gBAAA,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC1C,gBAAA,UAAU,CAAC,EAAE,GAAG,4BAA4B;AAC5C,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;;AAEtC,YAAA,aAAa,CAAC,OAAO,GAAG,UAAU;;KAEnC,EAAE,EAAE,CAAC;;IAGN,SAAS,CAAC,MAAK;QACd,IAAI,MAAM,EAAE;YACX,YAAY,CAAC,IAAI,CAAC;;YAElB,qBAAqB,CAAC,MAAK;gBAC1B,qBAAqB,CAAC,MAAK;oBAC1B,cAAc,CAAC,IAAI,CAAC;AACrB,iBAAC,CAAC;AACH,aAAC,CAAC;;aACI;YACN,cAAc,CAAC,KAAK,CAAC;;AAErB,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AAC1D,YAAA,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC;;AAEpC,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC;;IAGZ,SAAS,CAAC,MAAK;QACd,MAAM,gBAAgB,GAAG,OAAc;QACvC,IAAI,MAAM,EAAE;AACX,YAAA,gBAAgB,CAAC,SAAS,GAAG,CAAC,gBAAgB,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC;AAClE,YAAA,IAAI,gBAAgB,CAAC,SAAS,KAAK,CAAC,EAAE;gBACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;;;AAElC,aAAA,IAAI,gBAAgB,CAAC,SAAS,EAAE;YACtC,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,GAAG,CAAC;AAC3D,YAAA,IAAI,gBAAgB,CAAC,SAAS,KAAK,CAAC,EAAE;gBACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;;;AAInC,QAAA,OAAO,MAAK;AACX,YAAA,IAAI,MAAM,IAAI,gBAAgB,CAAC,SAAS,EAAE;gBACzC,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,GAAG,CAAC;AAC3D,gBAAA,IAAI,gBAAgB,CAAC,SAAS,KAAK,CAAC,EAAE;oBACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;;;AAGpC,SAAC;AACF,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC;;IAGZ,SAAS,CAAC,MAAK;AACd,QAAA,IAAI,CAAC,MAAM;YAAE;AAEb,QAAA,MAAM,YAAY,GAAG,CAAC,CAAgB,KAAI;AACzC,YAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;AACvB,gBAAA,OAAO,EAAE;;AAEX,SAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;QAClD,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC;AACnE,KAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErB,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;AAE3B,IAAA,MAAM,cAAc,IACnBU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EACJ;AACC,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,UAAU,EAAE,uBAAuB;AACnC,YAAA,GAAG,YAAY;SACQ,EAAA,QAAA,EAAA,CAIzBV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,eAAe,EAAE,oBAAoB;oBACrC,OAAO,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC;AAC5B,oBAAA,UAAU,EAAE,wBAAwB;AACpC,iBAAA,EACD,OAAO,EAAE,OAAO,GACf,EAGFU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,MAAM,EAAE,CAAC;oBACT,KAAK;AACL,oBAAA,QAAQ,EAAE,MAAM;AAChB,oBAAA,eAAe,EAAE,yBAAyB;AAC1C,oBAAA,UAAU,EAAE,CAAA,gCAAA,CAAkC;AAC9C,oBAAA,SAAS,EAAE,qBAAqB;oBAChC,SAAS,EAAE,WAAW,GAAG,eAAe,GAAG,kBAAkB;AAC7D,oBAAA,UAAU,EAAE,8CAA8C;AAC1D,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,aAAa,EAAE,QAAQ;AACvB,oBAAA,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,WAAW;AACvB,iBAAA,EACD,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAG7BA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,YAAY,EAAE,CAAA,gCAAA,CAAkC;AAChD,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,UAAU,EAAE,QAAQ;AACpB,4BAAA,cAAc,EAAE,eAAe;AAC/B,4BAAA,eAAe,EAAE,4BAA4B;AAC7C,4BAAA,UAAU,EAAE,CAAC;yBACb,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,oCAAA,QAAQ,EAAE,2BAA2B;AACrC,oCAAA,UAAU,EAAE,KAAK;AACjB,oCAAA,KAAK,EAAE,sBAAsB;AAC7B,oCAAA,MAAM,EAAE,CAAC;AACT,oCAAA,UAAU,EAAE,uBAAuB;iCACnC,EAAA,QAAA,EAEA,KAAK,GACF,EACLA,GAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;AACN,oCAAA,OAAO,EAAE,UAAU;AACnB,oCAAA,YAAY,EAAE,+BAA+B;AAC7C,oCAAA,eAAe,EAAE,aAAa;AAC9B,oCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,oCAAA,KAAK,EAAE,sBAAsB;AAC7B,oCAAA,MAAM,EAAE,SAAS;AACjB,oCAAA,OAAO,EAAE,MAAM;AACf,oCAAA,UAAU,EAAE,QAAQ;AACpB,oCAAA,cAAc,EAAE,QAAQ;AACxB,oCAAA,QAAQ,EAAE,qBAAqB;AAC/B,oCAAA,UAAU,EAAE,eAAe;AAC3B,oCAAA,UAAU,EAAE,uBAAuB;AACnC,oCAAA,UAAU,EAAE,KAAK;AACjB,oCAAA,UAAU,EAAE,QAAQ;AACpB,iCAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;oCACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,wBAAwB;oCAChE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,sBAAsB;AACrD,iCAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;oCACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa;oCACrD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,sBAAsB;AACrD,iCAAC,EAAA,QAAA,EAAA,oBAAA,EAAA,CAGO,CAAA,EAAA,CACJ,EAGNA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,IAAI,EAAE,CAAC;AACP,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,eAAe,EAAE,4BAA4B;AAC7C,yBAAA,EAAA,QAAA,EAEA,QAAQ,EAAA,CACJ,CAAA,EAAA,CACD,EAGNA,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;;;IAOP,EAAA,CAAS,CAAA,EAAA,CACL,CACN;IAED,OAAO,aAAa,CAAC;UAClB,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,aAAa,CAAC,OAAO;UAC3D,IAAI;AACR;AAUM,SAAU,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAkB,EAAA;IACzF,QACCU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,YAAA,eAAe,EAAE,yBAAyB;AAC1C,YAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,YAAA,YAAY,EAAE,yBAAyB;AACvC,YAAA,QAAQ,EAAE,QAAQ;AAClB,SAAA,EAAA,QAAA,EAAA,CAEDA,iBACC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;AACN,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,cAAc,EAAE,eAAe;AAC/B,oBAAA,UAAU,EAAE,QAAQ;AACpB,oBAAA,OAAO,EAAE,mBAAmB;AAC5B,oBAAA,SAAS,EAAE,MAAM;AACjB,oBAAA,eAAe,EAAE,aAAa;AAC9B,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,MAAM,EAAE,SAAS;AACjB,oBAAA,UAAU,EAAE,uBAAuB;AACnC,oBAAA,UAAU,EAAE,4BAA4B;iBACxC,EACD,OAAO,EAAE,QAAQ,EACjB,YAAY,EAAE,CAAC,CAAC,KAAI;AACnB,oBAAA,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe;AACpC,wBAAA,kDAAkD;AACpD,iBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;oBACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa;iBACrD,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAA,QAAA,EAClF,KAAK,EAAA,CACA,EACN,SAAS,KACTA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,KAAK,EAAE,2BAA2B;AAClC,4BAAA,UAAU,EAAE,GAAG;AACf,4BAAA,UAAU,EAAE,MAAM;AAClB,yBAAA,EAAA,QAAA,EAEA,SAAS,EAAA,CACL,CACN,EACDA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;4BACN,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,cAAc;AACrD,4BAAA,UAAU,EAAE,qBAAqB;AACjC,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,UAAU,EAAE,MAAM;AAClB,yBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAGK,IACC,EACR,MAAM,KACNA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,OAAO,EAAE,uCAAuC;AAChD,oBAAA,SAAS,EAAE,CAAA,gCAAA,CAAkC;AAC7C,oBAAA,eAAe,EAAE,4BAA4B;AAC7C,iBAAA,EAAA,QAAA,EAEA,QAAQ,EAAA,CACJ,CACN,CAAA,EAAA,CACI;AAER;;ACzOA;AACA,MAAM,iBAAiB,GAAGkB,UAAQ,CAAC;IAClC,IAAI,EAAEC,UAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;AAChD,IAAA,GAAG,EAAEC,UAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;AAC1C,CAAA,CAAC;AAEF,MAAM,iBAAiB,GAAGF,UAAQ,CAAC;IAClC,YAAY,EAAEC,UAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACxD,aAAa,EAAEA,UAAQ,EAAE,CAAC,KAAK,CAAC,qCAAqC,CAAC;AACtE,IAAA,aAAa,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACpC,IAAA,YAAY,EAAEE,SAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,wCAAwC,CAAC;AACzF,IAAA,YAAY,EAAEF,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACnC,IAAA,WAAW,EAAEG,WACJ;SACP,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,EAAE,uDAAuD,CAAC;AACxF,CAAA,CAAC;AA6DF;AACA,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,uBAAuB,EAAE,MAClEZ,cACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,aAEtBV,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAA,CAAG,EACjCA,cAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAG,EACvCA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,CAAA,EAAA,CAC3B,CACN;AACD,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,sBAAsB,EAAE,MAC/DU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EAAA,QAAA,EAAA,CAEtBV,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAClDA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAChCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,EACtCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,CAAA,EAAA,CACnC,CACN;AAkBK,SAAU,WAAW,CAAC,EAC3B,MAAM,EACN,YAAY,EACZ,aAAa,EACb,SAAS,EACT,OAAO,EACP,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,MAAM,EACN,OAAO,EACP,YAAY,GACM,EAAA;IAClB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC;IAC3E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;IAEvE,MAAM,IAAI,GAAG,OAAO,CAAkB;AACrC,QAAA,QAAQ,EAAEuB,CAAW,CAAC,iBAAiB,CAAC;AACxC,QAAA,aAAa,EAAE;YACd,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC5C,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,WAAW,EAAE,KAAK;AAClB,SAAA;AACD,KAAA,CAAC;IAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;IACtD,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;IACtD,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;IACtD,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;IACxD,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY;IAC5D,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa;IAC9D,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;;IAGpD,MAAM,cAAc,GAAG,MAAK;AAC3B,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,CAAC;QAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM;QAC9F,OAAO,YAAY,GAAG,YAAY,CAAC,QAAQ,GAAG,SAAS;AACxD,KAAC;IAED,MAAM,gBAAgB,GAAG,MAAK;AAC7B,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO;AAAE,YAAA,OAAO,CAAC;QACpD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM;AAChF,QAAA,OAAO,YAAY,CAAC,OAAO,GAAG,gBAAgB;AAC/C,KAAC;AAED,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;AACpC,IAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE;AACxC,IAAA,MAAM,aAAa,GAAG,aAAa,GAAG,CAAC,GAAG,aAAa,GAAG,WAAW;;IAGrE,MAAM,WAAW,GAAG,MAAK;QACxB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM;AAChF,QAAA,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,CAAC;QAC9C,MAAM,uBAAuB,GAAG,gBAAgB,KAAK,YAAY,EAAE,cAAc,IAAI,CAAC,CAAC;AACvF,QAAA,MAAM,OAAO,GACZ,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB;AACnF,QAAA,MAAM,QAAQ,GACb,oBAAoB,IAAI,oBAAoB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB;AACtF,QAAA,MAAM,gBAAgB,GAAG,kBAAkB,KAAK,IAAI;QAEpD,OAAO,iBAAiB,IAAI,uBAAuB,IAAI,OAAO,IAAI,QAAQ,IAAI,gBAAgB;AAC/F,KAAC;;IAGD,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,oBAAoB,GAAG,OAAO,IAAY,KAAI;YACnD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;gBAClC,eAAe,CAAC,IAAI,CAAC;gBACrB,gBAAgB,CAAC,IAAI,CAAC;gBACtB;;YAGD,kBAAkB,CAAC,IAAI,CAAC;YACxB,gBAAgB,CAAC,IAAI,CAAC;AAEtB,YAAA,IAAI;gBACH,MAAM,SAAS,GACd,YAAY,CAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM;AAC7E,gBAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC,EAAE;AACxF,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;oBACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CACnB,iBAAiB,CAAC,MAAM,EAAE;AACzB,wBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,wBAAA,UAAU,EAAE,SAAS;AACrB,qBAAA,CAAC,CACF;AACD,iBAAA,CAAC;AAEF,gBAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACf,oBAAA,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;;qBAC5B;oBACN,eAAe,CAAC,IAAI,CAAC;AACrB,oBAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;;;YAE5B,OAAO,GAAG,EAAE;gBACb,gBAAgB,CAAC,wCAAwC,CAAC;gBAC1D,eAAe,CAAC,IAAI,CAAC;;oBACZ;gBACT,kBAAkB,CAAC,KAAK,CAAC;;AAE3B,SAAC;AAED,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAK;AAC7B,YAAA,oBAAoB,CAAC,mBAAmB,IAAI,EAAE,CAAC;SAC/C,EAAE,GAAG,CAAC;AAEP,QAAA,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC;KAChC,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;;IAGpE,MAAM,cAAc,GAAG,MAAK;QAC3B,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC1D,QAAA,MAAM,cAAc,GAAG,YAAY,EAAE,cAAc,IAAI,CAAC;AACxD,QAAA,IAAI,mBAAmB,CAAC,MAAM,GAAG,cAAc,EAAE;YAChD,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;;aAC/E;AACN,YAAA,KAAK,CACJ,CAAA,0DAAA,EAA6D,cAAc,CAAA,kBAAA,CAAoB,CAC/F;;AAEH,KAAC;AAED,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAa,KAAI;QAC3C,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC1D,QAAA,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAI,CAAC,QAAQ,CACZ,cAAc,EACd,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CACjD;;AAEH,KAAC;;IAGD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAM,IAAI,CAAC;IAEnE,SAAS,CAAC,MAAK;QACd,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAc,2BAA2B,CAAC;AAClF,QAAA,IAAI,CAAC,SAAS;YAAE;AAChB,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC;QAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE;QAC3E,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE;QAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE;QACnE,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE;QACtE,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE;QACzE,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE;AAErE,QAAA,mBAAmB,CAAC;AACnB,YAAA,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,QAAQ;AACzD,YAAA,SAAS,EAAE;gBACV,YAAY;gBACZ,eAAe;gBACf,SAAS;gBACT,WAAW;gBACX,YAAY;gBACZ,UAAU;AACV,gBAAA,WAAW,EAAE,KAAK;AAClB,aAAA;AACD,SAAA,CAAC;AACH,KAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAElB,MAAM,WAAW,GAAG,MAAK;AACxB,QAAA,OAAO,EAAE;AACT,QAAA,IAAI,qBAAqB,IAAI,iBAAiB,EAAE;YAC/C,sBAAsB,IAAI;;aACpB,IAAI,iBAAiB,EAAE;YAC7B,kBAAkB,IAAI;;AAExB,KAAC;AAED,IAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC9B,QAAA,QACCvB,GAAA,CAAC,OAAO,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC,4BAAuB,EAAA,QAAA,EAC3EA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,UAAU,EAAE,QAAQ;AACpB,oBAAA,cAAc,EAAE,QAAQ;AACxB,oBAAA,SAAS,EAAE,OAAO;AAClB,oBAAA,SAAS,EAAE,QAAQ;AACnB,oBAAA,OAAO,EAAE,mBAAmB;iBAC5B,EAAA,QAAA,EAEDU,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACCV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,MAAM,EAAE,aAAa;AACrB,gCAAA,QAAQ,EAAE,MAAM;AAChB,6BAAA,EAAA,QAAA,EAEDA,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,uBAAuB,EAAA,CAAG,EAAA,CAClD,EACNA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,YAAY,EAAE,KAAK;AACnB,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,QAAQ,EAAE,2BAA2B;AACrC,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,UAAU,EAAE,uBAAuB;6BACnC,EAAA,QAAA,EAAA,4BAAA,EAAA,CAGG,EACLA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,UAAU,EAAE,uBAAuB;AACnC,6BAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,CAGE,CAAA,EAAA,CACC,EAAA,CACD,EAAA,CACG;;AAIZ,IAAA,MAAM,UAAU,GAAG;AAClB,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,eAAe,EAAE,4BAA4B;AAC7C,QAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,QAAA,YAAY,EAAE,yBAAyB;AACvC,QAAA,KAAK,EAAE,sBAAsB;AAC7B,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,eAAe;KAC3B;AAED,IAAA,MAAM,UAAU,GAAG;AAClB,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,UAAU,EAAE,KAAK;AACjB,QAAA,KAAK,EAAE,sBAAsB;AAC7B,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,uBAAuB;KACnC;AAeD,IAAA,QACCA,GAAA,CAAC,OAAO,EAAA,EACP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,CAAA,UAAA,EAAa,YAAY,CAAC,IAAI,CAAA,CAAE,EACvC,KAAK,EAAC,OAAO,EAAA,QAAA,EAEbU,cAAK,SAAS,EAAC,0BAA0B,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAA,QAAA,EAAA,CAEhFA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wBAAA,cAAc,EAAE,WAAW;AAC3B,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,OAAO,EAAE,mBAAmB;AAC5B,wBAAA,YAAY,EAAE,yBAAyB;qBACvC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,QAAQ,EAAE,2BAA2B;AACrC,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,KAAK,EAAE,2BAA2B;AAClC,gCAAA,YAAY,EAAE,MAAM;AACpB,gCAAA,UAAU,EAAE,uBAAuB;AACnC,gCAAA,YAAY,EAAE,qCAAqC;AACnD,gCAAA,aAAa,EAAE,CAAC;6BAChB,EAAA,QAAA,EAAA,eAAA,EAAA,CAGG,EACLU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,mBAAmB,EAAE,sCAAsC;AAC3D,gCAAA,GAAG,EAAE,MAAM;AACX,gCAAA,QAAQ,EAAE,qBAAqB;AAC/B,6BAAA,EAAA,QAAA,EAAA,CAEDA,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,EAAA,QAAA,EAAA,CACrFA,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,GAAG,EAAE,KAAK;AACV,6CAAA,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,2BAA2B,EAAA,CAAG,EAAA,SAAA,CAAA,EAAA,CACtD,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,6CAAA,EAAA,QAAA,EAEA,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,EAAA,CAClC,CAAA,EAAA,CACF,EACNU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,EAAA,QAAA,EAAA,CACrFA,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,GAAG,EAAE,KAAK;AACV,6CAAA,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,2BAA2B,EAAA,CAAG,EAAA,SAAA,CAAA,EAAA,CACnD,EACPU,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,6CAAA,EAAA,QAAA,EAAA,CAEA,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,EAAA,aAAA,CAAA,EAAA,CAC7B,CAAA,EAAA,CACF,EAENA,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,EAAA,QAAA,EAAA,CACrFA,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,GAAG,EAAE,KAAK;AACV,6CAAA,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,2BAA2B,EAAA,CAAG,EAAA,SAAA,CAAA,EAAA,CACnD,EACPU,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;6CACnC,EAAA,QAAA,EAAA,CAEA,YAAY,CAAC,YAAY,EAAA,MAAA,EAAM,YAAY,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAA,EAAA,CAClE,CAAA,EAAA,CACF,CAAA,EAAA,CACD,CAAA,EAAA,CACD,EAGNA,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,yBAAyB,EAAE,EAAA,QAAA,EAAA,CACvFA,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,yBAAyB,EAAE,EAAA,QAAA,EAAA,CAGnFA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,eAAe,EAAE,yBAAyB;AAC1C,wCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wCAAA,cAAc,EAAE,WAAW;AAC3B,wCAAA,YAAY,EAAE,yBAAyB;AACvC,wCAAA,OAAO,EAAE,mBAAmB;AAC5B,wCAAA,YAAY,EAAE,yBAAyB;qCACvC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,2BAA2B;AACrC,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,KAAK,EAAE,2BAA2B;AAClC,gDAAA,YAAY,EAAE,MAAM;AACpB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,YAAY,EAAE,qCAAqC;AACnD,gDAAA,aAAa,EAAE,CAAC;6CAChB,EAAA,QAAA,EAAA,cAAA,EAAA,CAGG,EACLU,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAA,QAAA,EAAA,CACjFA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,mBAAmB,EAAE,sCAAsC;AAC3D,wDAAA,GAAG,EAAE,mBAAmB;AACxB,qDAAA,EAAA,QAAA,EAAA,CAEDA,yBACCV,GAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAC,cAAc,EAAC,KAAK,EAAE,UAAU,EAAA,QAAA,EAAA,QAAA,EAAA,CAEvC,EACRA,eACC,EAAE,EAAC,cAAc,EAAA,GACb,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EACjC,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,WAAW,EAAC,8BAAyB,EACrC,OAAO,EAAE,CAAC,CAAC,KAAI;wEACd,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,2BAA2B;wEACxD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,qCAAqC;AACjE,qEAAC,EACD,MAAM,EAAE,CAAC,CAAC,KAAI;wEACb,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,wBAAwB;wEACrD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM;AAClC,qEAAC,GACA,EACD,iBAAiB,KACjBA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,uBAAuB;AAC9B,wEAAA,QAAQ,EAAE,qBAAqB;AAC/B,wEAAA,SAAS,EAAE,KAAK;AAChB,wEAAA,UAAU,EAAE,uBAAuB;qEACnC,EAAA,QAAA,EAEA,iBAAiB,CAAC,OAAO,EAAA,CACvB,CACJ,CAAA,EAAA,CACI,EACNU,yBACCV,GAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAC,eAAe,EAAC,KAAK,EAAE,UAAU,yBAExC,EACRA,GAAA,CAAA,OAAA,EAAA,EACC,EAAE,EAAC,eAAe,EAAA,GACd,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAClC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,WAAW,EAAC,gBAAgB,EAC5B,OAAO,EAAE,CAAC,CAAC,KAAI;wEACd,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,2BAA2B;wEACxD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,qCAAqC;AACjE,qEAAC,EACD,MAAM,EAAE,CAAC,CAAC,KAAI;wEACb,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,wBAAwB;wEACrD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM;AAClC,qEAAC,GACA,EACD,kBAAkB,KAClBA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,uBAAuB;AAC9B,wEAAA,QAAQ,EAAE,qBAAqB;AAC/B,wEAAA,SAAS,EAAE,KAAK;AAChB,wEAAA,UAAU,EAAE,uBAAuB;qEACnC,EAAA,QAAA,EAEA,kBAAkB,CAAC,OAAO,EAAA,CACxB,CACJ,CAAA,EAAA,CACI,CAAA,EAAA,CACD,EACNU,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACCV,GAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAC,eAAe,EAAC,KAAK,EAAE,UAAU,mCAExC,EACRA,GAAA,CAAA,OAAA,EAAA,EACC,EAAE,EAAC,eAAe,EAAA,GACd,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAClC,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,UAAU,EACjB,WAAW,EAAC,gBAAgB,EAC5B,OAAO,EAAE,CAAC,CAAC,KAAI;gEACd,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,2BAA2B;gEACxD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,qCAAqC;AACjE,6DAAC,EACD,MAAM,EAAE,CAAC,CAAC,KAAI;gEACb,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,wBAAwB;gEACrD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM;AAClC,6DAAC,GACA,CAAA,EAAA,CACG,CAAA,EAAA,CACD,IACD,EAGNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,eAAe,EAAE,yBAAyB;AAC1C,wCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wCAAA,cAAc,EAAE,WAAW;AAC3B,wCAAA,YAAY,EAAE,yBAAyB;AACvC,wCAAA,OAAO,EAAE,mBAAmB;AAC5B,wCAAA,YAAY,EAAE,yBAAyB;qCACvC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,OAAO,EAAE,MAAM;AACf,gDAAA,cAAc,EAAE,eAAe;AAC/B,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,YAAY,EAAE,mBAAmB;6CACjC,EAAA,QAAA,EAEDA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,QAAQ,EAAE,2BAA2B;AACrC,oDAAA,UAAU,EAAE,KAAK;AACjB,oDAAA,KAAK,EAAE,2BAA2B;AAClC,oDAAA,MAAM,EAAE,CAAC;AACT,oDAAA,UAAU,EAAE,uBAAuB;AACnC,oDAAA,YAAY,EAAE,qCAAqC;AACnD,oDAAA,aAAa,EAAE,CAAC;AAChB,iDAAA,EAAA,QAAA,EAAA,YAAA,EAAA,CAGG,EAAA,CACA,EACNU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CACnE,mBAAmB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,MAC3CA,IAAA,CAAA,KAAA,EAAA,EAEC,KAAK,EAAE;AACN,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,GAAG,EAAE,MAAM;AACX,wDAAA,UAAU,EAAE,QAAQ;qDACpB,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAA,QAAA,EAAA,CACtBV,GAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,oBAAoB,KAAK,CAAA,CAAE,EAAE,KAAK,EAAE,UAAU,EAAA,QAAA,EAAA,QAAA,EAAA,CAEtD,EACRA,GAAA,CAAA,OAAA,EAAA,EACC,EAAE,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAA,CAAE,KAC3B,IAAI,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,KAAK,OAAO,CAAC,EAC/C,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,WAAW,EAAC,gBAAgB,EAC5B,OAAO,EAAE,CAAC,CAAC,KAAI;wEACd,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,2BAA2B;wEACxD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,qCAAqC;AACjE,qEAAC,EACD,MAAM,EAAE,CAAC,CAAC,KAAI;wEACb,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,wBAAwB;wEACrD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM;AAClC,qEAAC,GACA,EACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,EAAE,IAAI,KACjDA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,uBAAuB;AAC9B,wEAAA,QAAQ,EAAE,qBAAqB;AAC/B,wEAAA,SAAS,EAAE,KAAK;AAChB,wEAAA,UAAU,EAAE,uBAAuB;qEACnC,EAAA,QAAA,EAEA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAA,CACtD,CACJ,CAAA,EAAA,CACI,EACNU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAC5BV,GAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE,EAAE,KAAK,EAAE,UAAU,EAAA,QAAA,EAAA,OAAA,EAAA,CAErD,EACRA,GAAA,CAAA,OAAA,EAAA,EACC,EAAE,EAAE,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAE,EAAA,GAC1B,IAAI,CAAC,QAAQ,CAAC,CAAA,aAAA,EAAgB,KAAK,CAAA,IAAA,CAAM,EAAE;AAC9C,wEAAA,UAAU,EAAE,CAAC,KAAK,KAAI;AACrB,4EAAA,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC1D,gFAAA,OAAO,SAAS;;AAEjB,4EAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;AACzB,4EAAA,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,GAAG;yEAC1C;qEACD,CAAC,EACF,IAAI,EAAC,QAAQ,EACb,GAAG,EAAC,GAAG,EACP,GAAG,EAAC,KAAK,EACT,KAAK,EAAE,UAAU,EACjB,WAAW,EAAC,IAAI,EAChB,OAAO,EAAE,CAAC,CAAC,KAAI;wEACd,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,2BAA2B;wEACxD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,qCAAqC;AACjE,qEAAC,EACD,MAAM,EAAE,CAAC,CAAC,KAAI;wEACb,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,wBAAwB;wEACrD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM;AAClC,qEAAC,GACA,CAAA,EAAA,CACG,EACL,mBAAmB,CAAC,MAAM,GAAG,CAAC,KAC9BU,yBACCV,GAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,CAAA,iBAAA,EAAoB,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,uBAEtD,EACRA,GAAA,CAAA,QAAA,EAAA,EACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,EACvC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,uBAAuB;AAC9B,wEAAA,eAAe,EAAE,yBAAyB;AAC1C,wEAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wEAAA,YAAY,EAAE,KAAK;AACnB,wEAAA,KAAK,EAAE,MAAM;AACb,wEAAA,MAAM,EAAE,MAAM;AACd,wEAAA,OAAO,EAAE,MAAM;AACf,wEAAA,UAAU,EAAE,QAAQ;AACpB,wEAAA,cAAc,EAAE,QAAQ;AACxB,wEAAA,MAAM,EAAE,SAAS;AACjB,wEAAA,UAAU,EAAE,eAAe;AAC3B,wEAAA,QAAQ,EAAE,QAAQ;AAClB,wEAAA,UAAU,EAAE,KAAK;AACjB,wEAAA,UAAU,EAAE,uBAAuB;AACnC,wEAAA,OAAO,EAAE,CAAC;AACV,qEAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;wEACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,wBAAwB;AACjE,qEAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;wEACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,yBAAyB;qEACjE,EAAA,QAAA,EAAA,QAAA,EAAA,CAGO,IACJ,CACN,CAAA,EAAA,EAxGI,KAAK,CAyGL,CACN,CAAC,EAED,mBAAmB,CAAC,MAAM,GAAG,YAAY,CAAC,cAAc,IACxDA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,aAAa,EAAE,QAAQ;AACvB,wDAAA,UAAU,EAAE,QAAQ;AACpB,wDAAA,SAAS,EAAE,MAAM;qDACjB,EAAA,QAAA,EAEDA,GAAA,CAAA,QAAA,EAAA,EACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE;AACN,4DAAA,KAAK,EAAE,MAAM;AACb,4DAAA,QAAQ,EAAE,MAAM;AAChB,4DAAA,UAAU,EAAE,KAAK;AACjB,4DAAA,OAAO,EAAE,UAAU;AACnB,4DAAA,YAAY,EAAE,yBAAyB;AACvC,4DAAA,UAAU,EACT,sFAAsF;AACvF,4DAAA,MAAM,EAAE,CAAA,mCAAA,CAAqC;AAC7C,4DAAA,MAAM,EAAE,SAAS;AACjB,4DAAA,UAAU,EAAE,eAAe;AAC3B,4DAAA,YAAY,EAAE,KAAK;AACnB,4DAAA,UAAU,EAAE,uBAAuB;AACnC,4DAAA,SAAS,EAAE,uCAAuC;AAClD,yDAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4DACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,2BAA2B;4DAC9D,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AACrC,yDAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;AACnB,4DAAA,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU;AAC/B,gEAAA,sFAAsF;4DACvF,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;yDACpC,EAAA,QAAA,EAAA,8BAAA,EAAA,CAGO,GACJ,KAENU,IAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,KAAK,EAAE,uBAAuB;AAC9B,wDAAA,QAAQ,EAAE,qBAAqB;AAC/B,wDAAA,UAAU,EAAE,uBAAuB;qDACnC,EAAA,QAAA,EAAA,CAAA,UAAA,EAEQ,YAAY,CAAC,cAAc,EAAA,8BAAA,CAAA,EAAA,CACjC,CACJ,IACI,CAAA,EAAA,CACD,EA6ENA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,eAAe,EAAE,yBAAyB;AAC1C,wCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wCAAA,cAAc,EAAE,WAAW;AAC3B,wCAAA,YAAY,EAAE,yBAAyB;AACvC,wCAAA,OAAO,EAAE,mBAAmB;AAC5B,qCAAA,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CACjEV,GAAA,CAAA,OAAA,EAAA,EACC,EAAE,EAAC,aAAa,EAAA,GACZ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAChC,IAAI,EAAC,UAAU,EACf,KAAK,EAAE;AACN,wDAAA,SAAS,EAAE,KAAK;AAChB,wDAAA,KAAK,EAAE,MAAM;AACb,wDAAA,MAAM,EAAE,MAAM;AACd,wDAAA,WAAW,EAAE,2BAA2B;AACxC,wDAAA,eAAe,EAAE,yBAAyB;AAC1C,wDAAA,WAAW,EAAE,wBAAwB;AACrC,wDAAA,YAAY,EAAE,+BAA+B;AAC7C,qDAAA,EAAA,CACA,EACFU,IAAA,CAAA,OAAA,EAAA,EACC,OAAO,EAAC,aAAa,EACrB,KAAK,EAAE;AACN,wDAAA,QAAQ,EAAE,qBAAqB;AAC/B,wDAAA,KAAK,EAAE,sBAAsB;AAC7B,wDAAA,UAAU,EAAE,uBAAuB;AACnC,qDAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,EAEkB,GAAG,EACtBV,GAAA,CAAA,GAAA,EAAA,EACC,IAAI,EAAE,YAAY,CAAC,MAAM,IAAI,QAAQ,EACrC,KAAK,EAAE;AACN,gEAAA,KAAK,EAAE,2BAA2B;AAClC,gEAAA,cAAc,EAAE,MAAM;6DACtB,EACD,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EAAA,QAAA,EAAA,uCAAA,EAAA,CAGtB,EAAA,GAAA,CAAA,EAAA,CAEG,CAAA,EAAA,CACH,EACL,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,KACjCA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,uBAAuB;AAC9B,gDAAA,QAAQ,EAAE,qBAAqB;AAC/B,gDAAA,SAAS,EAAE,KAAK;AAChB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,6CAAA,EAAA,QAAA,EAEA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAA,CACvC,CACJ,CAAA,EAAA,CACI,CAAA,EAAA,CACA,EAGPU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,yBAAyB,EAAE,EAAA,QAAA,EAAA,CAEvFA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,eAAe,EAAE,yBAAyB;AAC1C,wCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wCAAA,cAAc,EAAE,WAAW;AAC3B,wCAAA,YAAY,EAAE,yBAAyB;AACvC,wCAAA,OAAO,EAAE,mBAAmB;qCAC5B,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,2BAA2B;AACrC,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,KAAK,EAAE,2BAA2B;AAClC,gDAAA,YAAY,EAAE,mBAAmB;AACjC,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,YAAY,EAAE,qCAAqC;AACnD,gDAAA,aAAa,EAAE,CAAC;AAChB,6CAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,CAGG,EACLU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CACpEA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAEjFV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,KAAK,EAAE,sBAAsB;AAC7B,gEAAA,UAAU,EAAE,uBAAuB;6DACnC,EAAA,QAAA,EAAA,oBAAA,EAAA,CAGK,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,KAAK,EAAE,sBAAsB;AAC7B,gEAAA,UAAU,EAAE,KAAK;AACjB,gEAAA,UAAU,EAAE,uBAAuB;AACnC,6DAAA,EAAA,QAAA,EAEA,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAA,CAClD,CAAA,EAAA,CACF,EACNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAEjFV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,KAAK,EAAE,sBAAsB;AAC7B,gEAAA,UAAU,EAAE,uBAAuB;6DACnC,EAAA,QAAA,EAAA,mBAAA,EAAA,CAGK,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,KAAK,EAAE,sBAAsB;AAC7B,gEAAA,UAAU,EAAE,KAAK;AACjB,gEAAA,UAAU,EAAE,uBAAuB;AACnC,6DAAA,EAAA,QAAA,EAEA,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,EAAA,CAC7B,CAAA,EAAA,CACF,EACL,aAAa,GAAG,CAAC,KACjBU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,cAAc,EAAE,eAAe;AAC/B,wDAAA,UAAU,EAAE,QAAQ;qDACpB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,KAAK,EAAE,sBAAsB;AAC7B,gEAAA,UAAU,EAAE,uBAAuB;6DACnC,EAAA,QAAA,EAAA,uBAAA,EAAA,CAGK,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,KAAK,EAAE,sBAAsB;AAC7B,gEAAA,UAAU,EAAE,KAAK;AACjB,gEAAA,UAAU,EAAE,uBAAuB;AACnC,6DAAA,EAAA,QAAA,EAEA,cAAc,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,EAAA,CACpC,CAAA,EAAA,CACF,CACN,EACA,YAAY,KACZU,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACCD,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,OAAO,EAAE,MAAM;AACf,gEAAA,cAAc,EAAE,eAAe;AAC/B,gEAAA,UAAU,EAAE,QAAQ;6DACpB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,sBAAsB;AAC7B,wEAAA,UAAU,EAAE,uBAAuB;qEACnC,EAAA,QAAA,EAAA,gBAAA,EAAA,CAGK,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,sBAAsB;AAC7B,wEAAA,cAAc,EAAE,cAAc;AAC9B,wEAAA,UAAU,EAAE,uBAAuB;AACnC,qEAAA,EAAA,QAAA,EAEA,cAAc,CACd,YAAY,CAAC,KAAK;wEACjB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CACxD,GACK,CAAA,EAAA,CACF,EACNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,OAAO,EAAE,MAAM;AACf,gEAAA,cAAc,EAAE,eAAe;AAC/B,gEAAA,UAAU,EAAE,QAAQ;6DACpB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,yBAAyB;AAChC,wEAAA,UAAU,EAAE,uBAAuB;qEACnC,EAAA,QAAA,EAAA,SAAA,EAAA,CAGK,EACPU,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,yBAAyB;AAChC,wEAAA,UAAU,EAAE,uBAAuB;AACnC,qEAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAEC,cAAc,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA,EAAA,CACvC,CAAA,EAAA,CACF,CAAA,EAAA,CACJ,CACH,EACDA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,SAAS,EAAE,CAAA,gCAAA,CAAkC;AAC7C,wDAAA,UAAU,EAAE,MAAM;AAClB,qDAAA,EAAA,QAAA,EAAA,CAEA,aAAa,GAAG,CAAC,KACjBA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,OAAO,EAAE,MAAM;AACf,gEAAA,cAAc,EAAE,eAAe;AAC/B,gEAAA,UAAU,EAAE,QAAQ;AACpB,gEAAA,QAAQ,EAAE,qBAAqB;AAC/B,gEAAA,YAAY,EAAE,KAAK;6DACnB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,sBAAsB;AAC7B,wEAAA,UAAU,EAAE,uBAAuB;qEACnC,EAAA,QAAA,EAAA,eAAA,EAAA,CAGK,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,sBAAsB;AAC7B,wEAAA,UAAU,EAAE,uBAAuB;AACnC,wEAAA,UAAU,EAAE,KAAK;qEACjB,EAAA,QAAA,EAEA,cAAc,CAAC,WAAW,CAAC,EAAA,CACtB,IACF,CACN,EACDU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,OAAO,EAAE,MAAM;AACf,gEAAA,cAAc,EAAE,eAAe;AAC/B,gEAAA,UAAU,EAAE,QAAQ;AACpB,gEAAA,QAAQ,EAAE,2BAA2B;AACrC,gEAAA,UAAU,EAAE,KAAK;AACjB,6DAAA,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAA,QAAA,EAE5E,aAAa,GAAG,CAAC,GAAG,8BAA8B,GAAG,eAAe,EAAA,CAC/D,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,2BAA2B;AAClC,wEAAA,UAAU,EAAE,uBAAuB;AACnC,wEAAA,UAAU,EAAE,GAAG;qEACf,EAAA,QAAA,EAEA,cAAc,CAAC,aAAa,CAAC,EAAA,CACxB,IACF,CAAA,EAAA,CACD,CAAA,EAAA,CACD,CAAA,EAAA,CACD,EAGL,aAAa;AACb,oCAAA,CAAC,MAAK;AACL,wCAAA,IAAI,CAAC,WAAW,EAAE,EAAE;4CACnB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM;4CAChF,MAAM,OAAO,GAAG,EAAE;AAClB,4CAAA,IAAI,gBAAgB,KAAK,CAAC,EAAE;AAC3B,gDAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;;AAEjC,4CAAA,IACC,CAAC,mBAAmB;AACpB,gDAAA,mBAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;AACvC,gDAAA,iBAAiB,EAChB;AACD,gDAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;;AAE5B,4CAAA,IACC,CAAC,oBAAoB;AACrB,gDAAA,oBAAoB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;AACxC,gDAAA,kBAAkB,EACjB;AACD,gDAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC;;AAE5C,4CAAA,IAAI,kBAAkB,KAAK,IAAI,EAAE;AAChC,gDAAA,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC;;4CAEnE,MAAM,OAAO,GAAG,CAAA,qBAAA,EAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,qBAAA,CAAuB;4CACjF,QACCA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,eAAe,EAAE,yBAAyB;AAC1C,oDAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,oDAAA,YAAY,EAAE,yBAAyB;AACvC,oDAAA,OAAO,EAAE,mBAAmB;AAC5B,oDAAA,KAAK,EAAE,sBAAsB;AAC7B,oDAAA,UAAU,EAAE,uBAAuB;AACnC,oDAAA,SAAS,EAAE,QAAQ;iDACnB,EAAA,QAAA,EAEA,OAAO,EAAA,CACH;;wCAGR,QACCU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,eAAe,EAAE,yBAAyB;AAC1C,gDAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,gDAAA,cAAc,EAAE,WAAW;AAC3B,gDAAA,YAAY,EAAE,yBAAyB;AACvC,gDAAA,OAAO,EAAE,mBAAmB;6CAC5B,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,QAAQ,EAAE,2BAA2B;AACrC,wDAAA,UAAU,EAAE,KAAK;AACjB,wDAAA,KAAK,EAAE,2BAA2B;AAClC,wDAAA,YAAY,EAAE,mBAAmB;AACjC,wDAAA,UAAU,EAAE,uBAAuB;AACnC,wDAAA,YAAY,EAAE,qCAAqC;AACnD,wDAAA,aAAa,EAAE,CAAC;qDAChB,EAAA,QAAA,EAAA,SAAA,EAAA,CAGG,EACLA,IAAC,WAAW,EAAA,EACX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAC1B,WAAW,EAAE,aAAa,EAC1B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAAA,CACjC,CAAA,EAAA,CACG;AAER,qCAAC,GAAG,CAAA,EAAA,CACA,CAAA,EAAA,CACD,EAGNA,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;;;;;;iBAUK,EAAA,CAAS,CAAA,EAAA,CACjB,EAAA,CACG;AAEZ;;ACnxCA,MAAM,MAAM,GAAG;IACd,QAAQ;IACR,SAAS;IACT,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;CACV;AAED;AACA,MAAM,sBAAsB,GAAG,CAC9B,cAAsB,EACtB,eAAuB,KACiD;AACxE,IAAA,MAAM,iBAAiB,GAAG,cAAc,GAAG,eAAe;;IAG1D,IAAI,iBAAiB,IAAI,GAAG;AAAE,QAAA,OAAO,IAAI;;AAGzC,IAAA,IAAI,iBAAiB,IAAI,GAAG,EAAE;QAC7B,OAAO;AACN,YAAA,IAAI,EAAE,iBAAiB;YACvB,eAAe,EAAE,SAAS;YAC1B,SAAS,EAAE,SAAS;SACpB;;;IAIF,OAAO;AACN,QAAA,IAAI,EAAE,kBAAkB;QACxB,eAAe,EAAE,SAAS;QAC1B,SAAS,EAAE,SAAS;KACpB;AACF,CAAC;AAED;AACA,MAAM,iBAAiB,GAAG,CACzB,KAAa,EACb,UAAoB,KACoD;AACxE,IAAA,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;AAAE,QAAA,OAAO,IAAI;IAEvC,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;AAGpE,IAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;AAAE,QAAA,OAAO,IAAI;AAExC,IAAA,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC;AACnC,IAAA,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC;;AAGzC,IAAA,IAAI,KAAK,KAAK,WAAW,EAAE;QAC1B,OAAO;AACN,YAAA,IAAI,EAAE,kBAAkB;YACxB,eAAe,EAAE,SAAS;YAC1B,SAAS,EAAE,SAAS;SACpB;;;IAIF,IAAI,KAAK,KAAK,iBAAiB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3D,OAAO;AACN,YAAA,IAAI,EAAE,iBAAiB;YACvB,eAAe,EAAE,SAAS;YAC1B,SAAS,EAAE,SAAS;SACpB;;AAGF,IAAA,OAAO,IAAI;AACZ,CAAC;AAED;AACA,MAAM,mBAAmB,GAAG,CAC3B,KAAa,EACb,UAAoB,KACsC;AAC1D,IAAA,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;AAAE,QAAA,OAAO,IAAI;IAEvC,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;AAGpE,IAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO;YACN,eAAe,EAAE,SAAS;YAC1B,SAAS,EAAE,SAAS;SACpB;;;IAIF,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC;IACtD,IAAI,SAAS,EAAE;QACd,OAAO;YACN,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,SAAS,EAAE,SAAS,CAAC,SAAS;SAC9B;;IAGF,OAAO;AACN,QAAA,eAAe,EAAE,4BAA4B;AAC7C,QAAA,SAAS,EAAE,sBAAsB;KACjC;AACF,CAAC;AAED;AACA,MAAM,eAAe,GAAG,CAAC,EACxB,cAAc,EACd,eAAe,GACsC,KAAI;IACzD,MAAM,SAAS,GAAG,sBAAsB,CAAC,cAAc,EAAE,eAAe,CAAC;AAEzE,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;IAE3B,QACCA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,KAAK,EAAE,MAAM;YACb,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,KAAK,EAAE,SAAS,CAAC,SAAS;AAC1B,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,YAAY,EAAE,+BAA+B;AAC7C,YAAA,UAAU,EAAE,uBAAuB;AACnC,YAAA,SAAS,EAAE,8BAA8B;AACzC,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,UAAU,EAAE,QAAQ;AACpB,SAAA,EAAA,QAAA,EAEA,SAAS,CAAC,IAAI,EAAA,CACV;AAER,CAAC;AAED;AACA,MAAM,iBAAiB,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAA2C,KAAI;IAC5F,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC;AAEtD,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAI;IAE3B,QACCA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,KAAK,EAAE,MAAM;YACb,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,KAAK,EAAE,SAAS,CAAC,SAAS;AAC1B,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,YAAY,EAAE,+BAA+B;AAC7C,YAAA,UAAU,EAAE,uBAAuB;AACnC,YAAA,SAAS,EAAE,8BAA8B;AACzC,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,UAAU,EAAE,QAAQ;AACpB,SAAA,EAAA,QAAA,EAEA,SAAS,CAAC,IAAI,EAAA,CACV;AAER,CAAC;AAED;AACA,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAA2C,KAAI;IACvF,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC;IAE1D,QACCA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,UAAU,EAAE,QAAQ;YACpB,eAAe,EAAE,WAAW,GAAG,WAAW,CAAC,eAAe,GAAG,4BAA4B;YACzF,KAAK,EAAE,WAAW,GAAG,WAAW,CAAC,SAAS,GAAG,sBAAsB;AACnE,YAAA,QAAQ,EAAE,4BAA4B;AACtC,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,YAAY,EAAE,+BAA+B;AAC7C,YAAA,UAAU,EAAE,uBAAuB;YACnC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,kCAAkC;YACjE,SAAS,EAAE,WAAW,GAAG,8BAA8B,GAAG,MAAM;AAChE,SAAA,EAAA,QAAA,EAEA,cAAc,CAAC,KAAK,CAAC,EAAA,CAChB;AAET,CAAC;AAEK,SAAU,sBAAsB,CAAC,EACtC,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,MAAM,EACN,OAAO,EACP,uBAAuB,GAAG,KAAK,EAC/B,qBAAqB,GAAG,KAAK,GACA,EAAA;IAC7B,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;AAC3F,IAAA,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAc,IAAI,GAAG,EAAE,CAAC;AAEpE,IAAA,MAAM,iBAAiB,GAAG,CAAC,UAAkB,KAAI;QAChD,OAAO,cAAc,CAAC,MAAM,CAC3B,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,KAAK,UAAU,CACpE;AACF,KAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,UAAkB,KAAY;AAC1D,QAAA,MAAM,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC;AACjD,QAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5D,KAAC;AAED,IAAA,MAAM,wBAAwB,GAAG,CAChC,QAAgB,KAC0C;AAC1D,QAAA,OAAO,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC;AACjD,KAAC;;IAGD,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAC5C,MAAM,UAAU,GAAG;AACjB,SAAA,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW;SAC/E,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC;AAEnC,IAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;;IAGxB,MAAM,gBAAgB,GAAG;SACvB,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MAAM;QACvB,KAAK;QACL,KAAK;AACL,QAAA,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAC3E;AACD,QAAA,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC;AACpC,KAAA,CAAC;AACD,SAAA,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAEpD,IAAA,MAAM,yBAAyB,GAAG,CAAC,aAA4B,KAAI;AAClE,QAAA,0BAA0B,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,qBAAqB,CAAC,aAAa,CAAC;AACrC,KAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,UAAkB,KAAI;AAC1C,QAAA,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;;AAE/B,YAAA,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC;;aAClB;;YAEN,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;;AAEtC,KAAC;IAED,MAAM,WAAW,GAAG,MAAK;AACxB,QAAA,OAAO,EAAE;AACT,QAAA,kBAAkB,EAAE;AACrB,KAAC;;IAGD,IAAI,uBAAuB,EAAE;QAC5B,QACCU,4BACCV,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkFT,EAAA,CAAA,EAAA,CAAS,EACRA,GAAA,CAAC,OAAO,EAAA,EACP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,CAAA,EAAG,iBAAiB,EAAE,IAAI,CAAA,cAAA,CAAgB,EACjD,KAAK,EAAC,OAAO,EAAA,QAAA,EAEbA,aAAK,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EAEjEA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,aAAa,EAAE,QAAQ;AACvB,gCAAA,GAAG,EAAE,MAAM;6BACX,EAAA,QAAA,EAEA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MACrCU,IAAA,CAAA,KAAA,EAAA,EAEC,SAAS,EAAC,qBAAqB,EAC/B,KAAK,EAAE;AACN,oCAAA,eAAe,EAAE,yBAAyB;AAC1C,oCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,oCAAA,YAAY,EAAE,yBAAyB;AACvC,oCAAA,QAAQ,EAAE,QAAQ;iCAClB,EAAA,QAAA,EAAA,CAGDA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,OAAO,EAAE,MAAM;AACf,4CAAA,cAAc,EAAE,eAAe;AAC/B,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,OAAO,EAAE,WAAW;AACpB,4CAAA,MAAM,EAAE,SAAS;AACjB,4CAAA,YAAY,EAAE,CAAA,gCAAA,CAAkC;yCAChD,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,OAAO,EAAE,MAAM;AACf,oDAAA,UAAU,EAAE,QAAQ;AACpB,oDAAA,GAAG,EAAE,MAAM;iDACX,EAAA,QAAA,EAAA,CAGDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4DAAA,KAAK,EAAE,MAAM;AACb,4DAAA,MAAM,EAAE,MAAM;AACd,4DAAA,eAAe,EAAE,wBAAwB;AACzC,4DAAA,YAAY,EAAE,+BAA+B;yDAC7C,EAAA,CACA,EAEFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4DAAA,KAAK,EAAE,MAAM;AACb,4DAAA,MAAM,EAAE,MAAM;AACd,4DAAA,eAAe,EAAE,wBAAwB;AACzC,4DAAA,YAAY,EAAE,KAAK;AACnB,yDAAA,EAAA,CACA,CAAA,EAAA,CACG,EAENA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,KAAK,EAAE,MAAM;AACb,oDAAA,MAAM,EAAE,MAAM;AACd,oDAAA,eAAe,EAAE,2BAA2B;AAC5C,oDAAA,YAAY,EAAE,+BAA+B;AAC7C,oDAAA,OAAO,EAAE,GAAG;AACZ,iDAAA,EAAA,CACA,CAAA,EAAA,CACG,EAGNA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,OAAO,EAAE,MAAM;AACf,4CAAA,aAAa,EAAE,QAAQ;AACvB,4CAAA,GAAG,EAAE,MAAM;AACX,4CAAA,UAAU,EAAE,MAAM;AAClB,4CAAA,OAAO,EAAE,gBAAgB;yCACzB,EAAA,QAAA,EAEA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,MAC1CU,IAAA,CAAA,KAAA,EAAA,EAEC,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,UAAU;AACpB,gDAAA,MAAM,EAAE,kCAAkC;AAC1C,gDAAA,eAAe,EAAE,yBAAyB;AAC1C,gDAAA,YAAY,EAAE,yBAAyB;AACvC,gDAAA,OAAO,EAAE,WAAW;AACpB,gDAAA,UAAU,EAAE,uBAAuB;6CACnC,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,cAAc,EAAE,eAAe;AAC/B,wDAAA,KAAK,EAAE,MAAM;AACb,wDAAA,UAAU,EAAE,OAAO;AACnB,wDAAA,GAAG,EAAE,MAAM;AACX,wDAAA,YAAY,EAAE,KAAK;qDACnB,EAAA,QAAA,EAAA,CAGDA,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAEhEV,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE;AACN,wEAAA,KAAK,EAAE,MAAM;AACb,wEAAA,MAAM,EAAE,MAAM;AACd,wEAAA,eAAe,EAAE,4BAA4B;AAC7C,wEAAA,MAAM,EAAE,kCAAkC;AAC1C,wEAAA,SAAS,EAAE,CAAA,gCAAA,CAAkC;AAC7C,wEAAA,YAAY,EAAE,+BAA+B;qEAC7C,EAAA,CACA,EAEFU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,OAAO,EAAE,MAAM;AACf,wEAAA,aAAa,EAAE,QAAQ;AACvB,wEAAA,GAAG,EAAE,KAAK;AACV,qEAAA,EAAA,QAAA,EAAA,CAEDV,aACC,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE;AACN,gFAAA,KAAK,EAAE,MAAM;AACb,gFAAA,MAAM,EAAE,MAAM;AACd,gFAAA,eAAe,EAAE,wBAAwB;AACzC,gFAAA,YAAY,EAAE,KAAK;6EACnB,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gFAAA,KAAK,EAAE,MAAM;AACb,gFAAA,MAAM,EAAE,MAAM;AACd,gFAAA,eAAe,EAAE,wBAAwB;AACzC,gFAAA,YAAY,EAAE,KAAK;6EACnB,EAAA,CACA,CAAA,EAAA,CACG,IACD,EAGNA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE;AACN,gEAAA,OAAO,EAAE,MAAM;AACf,gEAAA,aAAa,EAAE,QAAQ;AACvB,gEAAA,UAAU,EAAE,KAAK;6DACjB,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oEAAA,KAAK,EAAE,MAAM;AACb,oEAAA,MAAM,EAAE,MAAM;AACd,oEAAA,eAAe,EAAE,2BAA2B;AAC5C,oEAAA,YAAY,EAAE,KAAK;AACnB,oEAAA,OAAO,EAAE,GAAG;iEACZ,EAAA,CACA,EAAA,CACG,IACD,EAGNU,IAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE;AACN,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,UAAU,EAAE,QAAQ;AACpB,wDAAA,GAAG,EAAE,KAAK;AACV,wDAAA,YAAY,EAAE,KAAK;qDACnB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,KAAK,EAAE,OAAO;AACd,gEAAA,MAAM,EAAE,MAAM;AACd,gEAAA,eAAe,EAAE,wBAAwB;AACzC,gEAAA,YAAY,EAAE,KAAK;6DACnB,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,KAAK,EAAE,MAAM;AACb,gEAAA,MAAM,EAAE,MAAM;AACd,gEAAA,eAAe,EAAE,wBAAwB;AACzC,gEAAA,YAAY,EAAE,KAAK;6DACnB,EAAA,CACA,CAAA,EAAA,CACG,EAGL,QAAQ,KAAK,CAAC,KACdA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,KAAK,EAAE,KAAK;AACZ,wDAAA,MAAM,EAAE,MAAM;AACd,wDAAA,eAAe,EAAE,wBAAwB;AACzC,wDAAA,YAAY,EAAE,KAAK;AACnB,wDAAA,SAAS,EAAE,KAAK;AAChB,qDAAA,EAAA,CACA,CACF,CAAA,EAAA,EA3HI,QAAQ,CA4HR,CACN,CAAC,EAAA,CACG,CAAA,EAAA,EApMD,GAAG,CAqMH,CACN,CAAC,EAAA,CACG,GACD,EAAA,CACG,CAAA,EAAA,CACR;;;AAKL,IAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,QACCU,4BACCV,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6DP,EAAA,CAAS,EACVA,IAAC,OAAO,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC,gCAA2B,EAAA,QAAA,EAC/EA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE;AACN,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,UAAU,EAAE,QAAQ;AACpB,4BAAA,cAAc,EAAE,QAAQ;AACxB,4BAAA,SAAS,EAAE,OAAO;AAClB,4BAAA,SAAS,EAAE,QAAQ;AACnB,4BAAA,OAAO,EAAE,mBAAmB;yBAC5B,EAAA,QAAA,EAEDU,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACCV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,MAAM,EAAE,aAAa;AACrB,wCAAA,QAAQ,EAAE,MAAM;qCAChB,EAAA,QAAA,EAAA,cAAA,EAAA,CAGI,EACNA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,YAAY,EAAE,KAAK;AACnB,wCAAA,UAAU,EAAE,KAAK;AACjB,wCAAA,QAAQ,EAAE,2BAA2B;AACrC,wCAAA,KAAK,EAAE,sBAAsB;AAC7B,wCAAA,UAAU,EAAE,uBAAuB;qCACnC,EAAA,QAAA,EAAA,gCAAA,EAAA,CAGG,EACLA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,KAAK,EAAE,sBAAsB;AAC7B,wCAAA,UAAU,EAAE,uBAAuB;AACnC,qCAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,CAGE,CAAA,EAAA,CACC,EAAA,CACD,EAAA,CACG,CAAA,EAAA,CACR;;IAIL,QACCU,4BACCV,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DP,GAAA,CAAA,EAAA,CAAS,EACVA,GAAA,CAAC,OAAO,IACP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,mBAAmB,iBAAiB,EAAE,IAAI,IAAI,OAAO,CAAA,CAAE,EAC9D,KAAK,EAAC,OAAO,YAEbA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EAEjEA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,aAAa,EAAE,QAAQ;AACvB,4BAAA,GAAG,EAAE,MAAM;AACX,yBAAA,EAAA,QAAA,EAEA,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAI;AAC5D,4BAAA,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,QAAQ,CAAC;AAChE,4BAAA,QACCA,GAAA,CAAC,SAAS,EAAA,EAET,KAAK,EAAE,KAAK,EACZ,SAAS,EACRA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,QAAQ,EAAE,MAAM;AAChB,wCAAA,eAAe,EAAE;8CACd,qBAAqB,CAAC;AACxB,8CAAE,SAAS;wCACZ,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAAC,SAAS,GAAG,SAAS;AAC1E,wCAAA,UAAU,EAAE,GAAG;AACf,wCAAA,UAAU,EAAE,MAAM;AAClB,wCAAA,OAAO,EAAE,SAAS;AAClB,wCAAA,YAAY,EAAE,+BAA+B;wCAC7C,MAAM,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS;AAClD,wCAAA,SAAS,EAAE;AACV,8CAAE;AACF,8CAAE,SAAS;AACZ,qCAAA,EAAA,QAAA,EAEA,CAAA,GAAA,EAAM,cAAc,CAAC,QAAQ,CAAC,CAAA,CAAE,EAAA,CAC5B,EAEP,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAC7B,QAAQ,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,EAAA,QAAA,EAElCA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,OAAO,EAAE,MAAM;AACf,wCAAA,aAAa,EAAE,QAAQ;AACvB,wCAAA,GAAG,EAAE,MAAM;AACX,wCAAA,UAAU,EAAE,MAAM;AAClB,qCAAA,EAAA,QAAA,EAEA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;wCACrB,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,gBAAgB;AACrE,wCAAA,MAAM,aAAa,GAAG,cAAc,KAAK,CAAC;wCAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;wCAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE;AAElE,wCAAA,QACCU,IAAA,CAAA,KAAA,EAAA,EAEC,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE;AACN,gDAAA,QAAQ,EAAE,UAAU;gDACpB,MAAM,EACL,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;AACvC,sDAAE;AACF,sDAAE,aAAa;AACjB,gDAAA,MAAM,EAAE,kCAAkC;AAC1C,gDAAA,eAAe,EAAE,yBAAyB;AAC1C,gDAAA,YAAY,EAAE,yBAAyB;AACvC,gDAAA,OAAO,EAAE,WAAW;AACpB,gDAAA,UAAU,EAAE,eAAe;gDAC3B,OAAO,EAAE,aAAa,IAAI,WAAW,GAAG,GAAG,GAAG,CAAC;gDAC/C,MAAM,EAAE,aAAa,IAAI,WAAW,GAAG,iBAAiB,GAAG,MAAM;AACjE,gDAAA,UAAU,EAAE,uBAAuB;6CACnC,EACD,OAAO,EAAE,MAAK;gDACb,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;oDACxD,yBAAyB,CAAC,KAAK,CAAC;;AAElC,6CAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;gDACnB,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;oDACxD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa;AAC/C,oDAAA,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe;AACpC,wDAAA,kDAAkD;;AAErD,6CAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;gDACnB,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;oDACxD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU;oDAC5C,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,yBAAyB;;AAEnE,6CAAC,EAAA,QAAA,EAAA,CAEA,uBAAuB,KAAK,KAAK,CAAC,EAAE,IAAI,qBAAqB,KAC7DV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,QAAQ,EAAE,UAAU;AACpB,wDAAA,GAAG,EAAE,CAAC;AACN,wDAAA,IAAI,EAAE,CAAC;AACP,wDAAA,KAAK,EAAE,MAAM;AACb,wDAAA,MAAM,EAAE,MAAM;AACd,wDAAA,eAAe,EAAE,gDAAgD;AACjE,wDAAA,YAAY,EAAE,yBAAyB;AACvC,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,UAAU,EAAE,QAAQ;AACpB,wDAAA,cAAc,EAAE,QAAQ;qDACxB,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4DAAA,KAAK,EAAE,MAAM;AACb,4DAAA,MAAM,EAAE,MAAM;AACd,4DAAA,KAAK,EAAE,0DAA0D;AACjE,4DAAA,SAAS,EAAE,yBAAyB;AACpC,4DAAA,QAAQ,EAAE,MAAM;AAChB,yDAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAGI,EAAA,CACD,CACN,EAGDA,GAAA,CAAC,iBAAiB,EAAA,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAA,CAAI,EAGjEA,GAAA,CAAC,eAAe,EAAA,EACf,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,KAAK,CAAC,eAAe,EAAA,CACrC,EAEFU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,cAAc,EAAE,eAAe;AAC/B,wDAAA,KAAK,EAAE,MAAM;AACb,wDAAA,UAAU,EAAE,OAAO;AACnB,wDAAA,GAAG,EAAE,MAAM;AACX,wDAAA,YAAY,EAAE,KAAK;qDACnB,EAAA,QAAA,EAAA,CAGDA,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAChEV,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE;AACN,wEAAA,QAAQ,EAAE,qBAAqB;AAC/B,wEAAA,UAAU,EAAE,eAAe;AAC3B,wEAAA,YAAY,EAAE,+BAA+B;AAC7C,wEAAA,SAAS,EAAE,CAAA,gCAAA,CAAkC;AAC7C,wEAAA,MAAM,EAAE,kCAAkC;AAC1C,wEAAA,KAAK,EAAE,MAAM;AACb,wEAAA,MAAM,EAAE,MAAM;AACd,wEAAA,OAAO,EAAE,MAAM;AACf,wEAAA,UAAU,EAAE,QAAQ;AACpB,wEAAA,cAAc,EAAE,QAAQ;AACxB,wEAAA,UAAU,EAAE,MAAM;AAClB,wEAAA,KAAK,EAAE,sBAAsB;AAC7B,wEAAA,eAAe,EAAE,4BAA4B;qEAC7C,EAAA,QAAA,EAEA,SAAS,CAAC,OAAO,EAAE,GACf,EACNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wEAAA,QAAQ,EAAE,qBAAqB;AAC/B,wEAAA,KAAK,EAAE,sBAAsB;AAC7B,wEAAA,OAAO,EAAE,MAAM;AACf,wEAAA,aAAa,EAAE,QAAQ;AACvB,wEAAA,UAAU,EAAE,OAAO;AACnB,wEAAA,cAAc,EAAE,OAAO;AACvB,wEAAA,UAAU,EAAE,KAAK;qEACjB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAAA,QAAA,EAEhD,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,EAAA,CACzB,EACPA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAC9D,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAA,CACtB,CAAA,EAAA,CACF,CAAA,EAAA,CACD,EAGNA,GAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE;AACN,gEAAA,SAAS,EAAE,OAAO;AAClB,gEAAA,OAAO,EAAE,MAAM;AACf,gEAAA,aAAa,EAAE,QAAQ;AACvB,gEAAA,UAAU,EAAE,KAAK;6DACjB,EAAA,QAAA,EAEDA,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAA,CAAI,EAAA,CACvD,IACD,EAGNU,IAAA,CAAA,IAAA,EAAA,EACC,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE;AACN,wDAAA,QAAQ,EAAE,qBAAqB;AAC/B,wDAAA,UAAU,EAAE,KAAK;AACjB,wDAAA,KAAK,EAAE,sBAAsB;AAC7B,wDAAA,UAAU,EAAE,MAAM;AAClB,wDAAA,MAAM,EAAE,WAAW;AACnB,wDAAA,OAAO,EAAE,MAAM;AACf,wDAAA,UAAU,EAAE,QAAQ;AACpB,wDAAA,GAAG,EAAE,KAAK;AACV,qDAAA,EAAA,QAAA,EAAA,CAEA,KAAK,CAAC,IAAI,EACXA,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gEAAA,QAAQ,EAAE,MAAM;AAChB,gEAAA,UAAU,EAAE,GAAG;AACf,gEAAA,KAAK,EAAE,sBAAsB;AAC7B,gEAAA,UAAU,EAAE,KAAK;AACjB,gEAAA,UAAU,EAAE,4BAA4B;AACxC,gEAAA,YAAY,EAAE,KAAK;AACnB,gEAAA,OAAO,EAAE,SAAS;AAClB,gEAAA,UAAU,EAAE,QAAQ;6DACpB,EAAA,QAAA,EAAA,CAEA,KAAK,CAAC,YAAY,EAAA,MAAA,EAAM,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAA,EAAA,CACpD,CAAA,EAAA,CACH,EAGJ,KAAK,CAAC,KAAK,KACXV,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,wDAAA,QAAQ,EAAE,MAAM;AAChB,wDAAA,KAAK,EAAE,sBAAsB;AAC7B,wDAAA,SAAS,EAAE,KAAK;AAChB,wDAAA,OAAO,EAAE,aAAa;AACtB,wDAAA,eAAe,EAAE,UAAU;AAC3B,wDAAA,eAAe,EAAE,CAAC;AAClB,wDAAA,QAAQ,EAAE,QAAQ;AAClB,wDAAA,MAAM,EAAE,GAAG;AACX,wDAAA,UAAU,EAAE,KAAK;qDACjB,EAAA,QAAA,EAEA,KAAK,CAAC,KAAK,EAAA,CACT,CACJ,CAAA,EAAA,EA/LI,KAAK,CAAC,EAAE,CAgMR;AAER,qCAAC,CAAC,EAAA,CACG,EAAA,EA7OD,KAAK,CA8OC;AAEd,yBAAC,CAAC,EAAA,CACG,EAAA,CACD,EAAA,CACG,CAAA,EAAA,CACR;AAEL;;AClhCA;AACA,MAAM,yBAAyB,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAsB,MACnEU,4BACCV,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;;;;;;;;;;;;;;;;;GAqBP,EAAA,CAAS,EACVU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,UAAU,EAAE,uBAAuB;aACnC,EAAA,QAAA,EAAA,CAGDA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,YAAY,EAAE,sBAAsB;AACpC,wBAAA,SAAS,EAAE,QAAQ;qBACnB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,OAAO;AACd,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,eAAe,EAAE,wBAAwB;AACzC,gCAAA,YAAY,EAAE,KAAK;AACnB,gCAAA,MAAM,EAAE,YAAY;6BACpB,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,OAAO;AACd,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,eAAe,EAAE,wBAAwB;AACzC,gCAAA,YAAY,EAAE,KAAK;AACnB,gCAAA,MAAM,EAAE,QAAQ;AAChB,6BAAA,EAAA,CACA,CAAA,EAAA,CACG,EAGNA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,OAAO,EAAE,MAAM;AACf,wBAAA,aAAa,EAAE,QAAQ;AACvB,wBAAA,GAAG,EAAE,MAAM;AACX,wBAAA,YAAY,EAAE,sBAAsB;qBACpC,EAAA,QAAA,EAEA,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MACzCU,IAAA,CAAA,KAAA,EAAA,EAEC,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE;AACN,4BAAA,eAAe,EAAE,yBAAyB;AAC1C,4BAAA,MAAM,EAAE,kCAAkC;AAC1C,4BAAA,YAAY,EAAE,yBAAyB;AACvC,4BAAA,OAAO,EAAE,UAAU;AACnB,4BAAA,UAAU,EAAE,uBAAuB;yBACnC,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oCAAA,OAAO,EAAE,MAAM;AACf,oCAAA,cAAc,EAAE,eAAe;AAC/B,oCAAA,KAAK,EAAE,MAAM;AACb,oCAAA,UAAU,EAAE,OAAO;AACnB,oCAAA,GAAG,EAAE,MAAM;AACX,oCAAA,YAAY,EAAE,KAAK;AACnB,iCAAA,EAAA,QAAA,EAAA,CAGDA,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAChEV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,KAAK,EAAE,MAAM;AACb,oDAAA,MAAM,EAAE,MAAM;AACd,oDAAA,eAAe,EAAE,wBAAwB;AACzC,oDAAA,YAAY,EAAE,+BAA+B;iDAC7C,EAAA,CACA,EACFU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,OAAO,EAAE,MAAM;AACf,oDAAA,aAAa,EAAE,QAAQ;AACvB,oDAAA,GAAG,EAAE,KAAK;iDACV,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4DAAA,KAAK,EAAE,MAAM;AACb,4DAAA,MAAM,EAAE,MAAM;AACd,4DAAA,eAAe,EAAE,wBAAwB;AACzC,4DAAA,YAAY,EAAE,KAAK;yDACnB,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4DAAA,KAAK,EAAE,MAAM;AACb,4DAAA,MAAM,EAAE,MAAM;AACd,4DAAA,eAAe,EAAE,wBAAwB;AACzC,4DAAA,YAAY,EAAE,KAAK;AACnB,yDAAA,EAAA,CACA,CAAA,EAAA,CACG,CAAA,EAAA,CACD,EAGNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,OAAO,EAAE,MAAM;AACf,4CAAA,aAAa,EAAE,QAAQ;AACvB,4CAAA,UAAU,EAAE,KAAK;AACjB,4CAAA,GAAG,EAAE,KAAK;yCACV,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,KAAK,EAAE,MAAM;AACb,oDAAA,MAAM,EAAE,MAAM;AACd,oDAAA,eAAe,EAAE,2BAA2B;AAC5C,oDAAA,YAAY,EAAE,KAAK;AACnB,oDAAA,OAAO,EAAE,GAAG;iDACZ,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,KAAK,EAAE,MAAM;AACb,oDAAA,MAAM,EAAE,MAAM;AACd,oDAAA,eAAe,EAAE,wBAAwB;AACzC,oDAAA,YAAY,EAAE,KAAK;AACnB,iDAAA,EAAA,CACA,CAAA,EAAA,CACG,CAAA,EAAA,CACD,EAGNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oCAAA,OAAO,EAAE,MAAM;AACf,oCAAA,UAAU,EAAE,QAAQ;AACpB,oCAAA,GAAG,EAAE,KAAK;AACV,oCAAA,YAAY,EAAE,KAAK;iCACnB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,KAAK,EAAE,OAAO;AACd,4CAAA,MAAM,EAAE,MAAM;AACd,4CAAA,eAAe,EAAE,wBAAwB;AACzC,4CAAA,YAAY,EAAE,KAAK;yCACnB,EAAA,CACA,EACFA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,KAAK,EAAE,MAAM;AACb,4CAAA,MAAM,EAAE,MAAM;AACd,4CAAA,eAAe,EAAE,wBAAwB;AACzC,4CAAA,YAAY,EAAE,KAAK;AACnB,yCAAA,EAAA,CACA,IACG,CAAA,EAAA,EA9GD,GAAG,CA+GH,CACN,CAAC,GACG,EAGNA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAA,QAAA,EAClCA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,KAAK,EAAE,OAAO;AACd,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,eAAe,EAAE,yBAAyB;AAC1C,4BAAA,MAAM,EAAE,kCAAkC;AAC1C,4BAAA,YAAY,EAAE,yBAAyB;AACvC,4BAAA,MAAM,EAAE,QAAQ;AAChB,yBAAA,EAAA,CACA,EAAA,CACG,CAAA,EAAA,CACD,CAAA,EAAA,CACJ,CACH;AAEK,SAAU,iBAAiB,CAAC,EACjC,MAAM,EACN,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,qBAAqB,GAAG,KAAK,EAC7B,gBAAgB,GAAG,KAAK,EACxB,SAAS,GAAG,KAAK,GACO,EAAA;IACxB,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;AAE3F,IAAA,MAAM,iBAAiB,GAAG,CAAC,eAAuB,KAAI;QACrD,0BAA0B,CAAC,eAAe,CAAC;QAC3C,aAAa,CAAC,eAAe,CAAC;AAC/B,KAAC;;IAGD,IAAI,SAAS,EAAE;AACd,QAAA,OAAOA,IAAC,yBAAyB,EAAA,EAAC,KAAK,EAAE,CAAC,GAAI;;AAG/C,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,QACCA,aAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAA,QAAA,EAChFU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,eAAe,EAAE,yBAAyB;AAC1C,oBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,oBAAA,YAAY,EAAE,yBAAyB;AACvC,oBAAA,OAAO,EAAE,yBAAyB;AAClC,oBAAA,SAAS,EAAE,QAAQ;AACnB,oBAAA,UAAU,EAAE,uBAAuB;AACnC,oBAAA,SAAS,EAAE,OAAO;AAClB,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,aAAa,EAAE,QAAQ;AACvB,oBAAA,UAAU,EAAE,QAAQ;AACpB,oBAAA,cAAc,EAAE,QAAQ;iBACxB,EAAA,QAAA,EAAA,CAGDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,eAAe,EAAE,2BAA2B;AAC5C,4BAAA,YAAY,EAAE,KAAK;AACnB,4BAAA,MAAM,EAAE,0BAA0B;AAClC,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,UAAU,EAAE,QAAQ;AACpB,4BAAA,cAAc,EAAE,QAAQ;AACxB,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,KAAK,EAAE,OAAO;AACd,4BAAA,OAAO,EAAE,GAAG;yBACZ,EAAA,QAAA,EAAA,cAAA,EAAA,CAGI,EAGNA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,QAAQ,EAAE,wBAAwB;AAClC,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,KAAK,EAAE,sBAAsB;AAC7B,4BAAA,MAAM,EAAE,+BAA+B;AACvC,4BAAA,UAAU,EAAE,uBAAuB;yBACnC,EAAA,QAAA,EAAA,8BAAA,EAAA,CAGG,EAGLA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,KAAK,EAAE,sBAAsB;AAC7B,4BAAA,QAAQ,EAAE,qBAAqB;AAC/B,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,MAAM,EAAE,+BAA+B;AACvC,4BAAA,UAAU,EAAE,uBAAuB;AACnC,4BAAA,QAAQ,EAAE,OAAO;AACjB,yBAAA,EAAA,QAAA,EAAA,qHAAA,EAAA,CAIE,EAGJU,IAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EACvC,KAAK,EAAE;AACN,4BAAA,eAAe,EAAE,yBAAyB;AAC1C,4BAAA,KAAK,EAAE,2BAA2B;AAClC,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,MAAM,EAAE,CAAA,mCAAA,CAAqC;AAC7C,4BAAA,YAAY,EAAE,yBAAyB;AACvC,4BAAA,QAAQ,EAAE,qBAAqB;AAC/B,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,MAAM,EAAE,SAAS;AACjB,4BAAA,UAAU,EAAE,uBAAuB;AACnC,4BAAA,UAAU,EAAE,eAAe;AAC3B,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,UAAU,EAAE,QAAQ;AACpB,4BAAA,GAAG,EAAE,KAAK;AACV,yBAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,2BAA2B;4BACnE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO;4BACrC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB;AACrD,yBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,yBAAyB;4BACjE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,2BAA2B;4BACzD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;AAClD,yBAAC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,cAAA,EAAA,CAAW,EAAA,iBAAA,CAAA,EAAA,CAEpC,CAAA,EAAA,CACJ,EAAA,CACD;;IAIR,QACCU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,UAAU,EAAE,uBAAuB;SACnC,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,YAAY,EAAE,sBAAsB;AACpC,oBAAA,SAAS,EAAE,QAAQ;iBACnB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,MAAM,EAAE,WAAW;AACnB,4BAAA,QAAQ,EAAE,2BAA2B;AACrC,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,KAAK,EAAE,sBAAsB;AAC7B,4BAAA,UAAU,EAAE,uBAAuB;yBACnC,EAAA,QAAA,EAAA,sCAAA,EAAA,CAGG,EACLA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,4BAAA,MAAM,EAAE,GAAG;AACX,4BAAA,QAAQ,EAAE,qBAAqB;AAC/B,4BAAA,KAAK,EAAE,sBAAsB;AAC7B,4BAAA,UAAU,EAAE,uBAAuB;AACnC,yBAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,CAGE,CAAA,EAAA,CACC,EAENA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,aAAa,EAAE,QAAQ;AACvB,oBAAA,GAAG,EAAE,MAAM;AACX,oBAAA,YAAY,EAAE,sBAAsB;AACpC,iBAAA,EAAA,QAAA,EAEA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;oBACrB,MAAM,cAAc,GAAG,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,gBAAgB;AACrE,oBAAA,MAAM,aAAa,GAAG,cAAc,KAAK,CAAC;oBAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3C,oBAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;oBACxB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE;oBAClE,MAAM,kBAAkB,GAAG,cAAc,GAAG,KAAK,CAAC,eAAe,IAAI,GAAG;oBACxE,MAAM,kBAAkB,GAAG,cAAc,GAAG,KAAK,CAAC,eAAe,IAAI,GAAG;oBACxE,MAAM,oBAAoB,GAAG,cAAc,GAAG,KAAK,CAAC,eAAe,IAAI,GAAG;oBAC1E,MAAM,iBAAiB,GAAG,cAAc,GAAG,KAAK,CAAC,eAAe,IAAI,IAAI;oBAExE,MAAM,oBAAoB,GAAG,MAAK;AACjC,wBAAA,IAAI,kBAAkB;AAAE,4BAAA,OAAO,yBAAyB;AACxD,wBAAA,IAAI,kBAAkB;AAAE,4BAAA,OAAO,yBAAyB;AACxD,wBAAA,IAAI,oBAAoB;4BAAE,OAAO,8CAA8C,CAAC;AAChF,wBAAA,IAAI,iBAAiB;4BAAE,OAAO,2CAA2C,CAAC;AAC1E,wBAAA,OAAO,2BAA2B;AACnC,qBAAC;oBAED,QACCU,IAAA,CAAA,KAAA,EAAA,EAEC,KAAK,EAAE;AACN,4BAAA,QAAQ,EAAE,UAAU;AACpB,4BAAA,MAAM,EACL,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,GAAG,SAAS,GAAG,aAAa;AAChF,4BAAA,MAAM,EAAE,WAAW;AACnB,4BAAA,eAAe,EAAE,yBAAyB;AAC1C,4BAAA,YAAY,EAAE,yBAAyB;AACvC,4BAAA,OAAO,EAAE,UAAU;AACnB,4BAAA,UAAU,EAAE,eAAe;4BAC3B,OAAO,EAAE,aAAa,IAAI,WAAW,GAAG,GAAG,GAAG,CAAC;4BAC/C,MAAM,EAAE,aAAa,IAAI,WAAW,GAAG,iBAAiB,GAAG,MAAM;4BACjE,WAAW,EAAE,oBAAoB,EAAE;AACnC,4BAAA,UAAU,EAAE,uBAAuB;yBACnC,EACD,OAAO,EAAE,MAAK;4BACb,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;AACxD,gCAAA,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;;AAE7B,yBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;gCACxD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa;AAC/C,gCAAA,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe;AACpC,oCAAA,8CAA8C;;AAEjD,yBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;gCACxD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU;gCAC5C,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,yBAAyB;;AAEnE,yBAAC,EAAA,QAAA,EAAA,CAEA,uBAAuB,KAAK,KAAK,CAAC,EAAE,IAAI,qBAAqB,KAC7DV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oCAAA,QAAQ,EAAE,UAAU;AACpB,oCAAA,GAAG,EAAE,CAAC;AACN,oCAAA,IAAI,EAAE,CAAC;AACP,oCAAA,KAAK,EAAE,MAAM;AACb,oCAAA,MAAM,EAAE,MAAM;AACd,oCAAA,eAAe,EAAE,gDAAgD;AACjE,oCAAA,YAAY,EAAE,yBAAyB;AACvC,oCAAA,OAAO,EAAE,MAAM;AACf,oCAAA,UAAU,EAAE,QAAQ;AACpB,oCAAA,cAAc,EAAE,QAAQ;iCACxB,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,KAAK,EAAE,MAAM;AACb,wCAAA,MAAM,EAAE,MAAM;AACd,wCAAA,KAAK,EAAE,0DAA0D;AACjE,wCAAA,SAAS,EAAE,yBAAyB;AACpC,wCAAA,QAAQ,EAAE,MAAM;AAChB,qCAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAGI,EAAA,CACD,CACN,EAEDU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oCAAA,OAAO,EAAE,MAAM;AACf,oCAAA,cAAc,EAAE,eAAe;AAC/B,oCAAA,KAAK,EAAE,MAAM;AACb,oCAAA,UAAU,EAAE,OAAO;AACnB,oCAAA,GAAG,EAAE,MAAM;AACX,oCAAA,YAAY,EAAE,KAAK;AACnB,iCAAA,EAAA,QAAA,EAAA,CAGDA,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAChEV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,QAAQ,EAAE,qBAAqB;AAC/B,oDAAA,UAAU,EAAE,eAAe;AAC3B,oDAAA,YAAY,EAAE,+BAA+B;AAC7C,oDAAA,SAAS,EAAE,CAAA,UAAA,EAAa,oBAAoB,EAAE,CAAA,CAAE;AAChD,oDAAA,MAAM,EAAE,WAAW;AACnB,oDAAA,KAAK,EAAE,MAAM;AACb,oDAAA,MAAM,EAAE,MAAM;AACd,oDAAA,OAAO,EAAE,MAAM;AACf,oDAAA,UAAU,EAAE,QAAQ;AACpB,oDAAA,cAAc,EAAE,QAAQ;AACxB,oDAAA,UAAU,EAAE,MAAM;AAClB,oDAAA,KAAK,EAAE,sBAAsB;oDAC7B,WAAW,EAAE,oBAAoB,EAAE;AACnC,oDAAA,eAAe,EAAE,4BAA4B;iDAC7C,EAAA,QAAA,EAEA,SAAS,CAAC,OAAO,EAAE,GACf,EAENU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,QAAQ,EAAE,qBAAqB;AAC/B,oDAAA,KAAK,EAAE,sBAAsB;AAC7B,oDAAA,OAAO,EAAE,MAAM;AACf,oDAAA,aAAa,EAAE,QAAQ;AACvB,oDAAA,UAAU,EAAE,OAAO;AACnB,oDAAA,cAAc,EAAE,OAAO;AACvB,oDAAA,UAAU,EAAE,KAAK;iDACjB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,4DAAA,UAAU,EAAE,KAAK;AACjB,4DAAA,YAAY,EAAE,KAAK;yDACnB,EAAA,QAAA,EAEA,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,EAAA,CACzB,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,4DAAA,KAAK,EAAE,sBAAsB;AAC7B,4DAAA,QAAQ,EAAE,MAAM;AAChB,yDAAA,EAAA,QAAA,EAEA,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAA,CACtB,CAAA,EAAA,CACF,CAAA,EAAA,CACD,EAGNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,SAAS,EAAE,OAAO;AAClB,4CAAA,OAAO,EAAE,MAAM;AACf,4CAAA,aAAa,EAAE,QAAQ;AACvB,4CAAA,UAAU,EAAE,KAAK;yCACjB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,KAAK,EAAE,2BAA2B;AAClC,oDAAA,QAAQ,EAAE,2BAA2B;AACrC,oDAAA,UAAU,EAAE,MAAM;AAClB,iDAAA,EAAA,QAAA,EAEA,KAAK,CAAC,KAAK,KAAK,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,mBAAmB,EAAA,CACpE,EACL,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,KAClCU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oDAAA,QAAQ,EAAE,MAAM;AAChB,oDAAA,KAAK,EAAE,sBAAsB;AAC7B,iDAAA,EAAA,QAAA,EAAA,CAAA,KAAA,EAEG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA,EAAA,CAC5B,CACN,CAAA,EAAA,CACI,CAAA,EAAA,CACD,EAGNA,IAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,oCAAA,QAAQ,EAAE,qBAAqB;AAC/B,oCAAA,UAAU,EAAE,KAAK;AACjB,oCAAA,KAAK,EAAE,sBAAsB;AAC7B,oCAAA,UAAU,EAAE,MAAM;AAClB,oCAAA,MAAM,EAAE,WAAW;AACnB,oCAAA,OAAO,EAAE,MAAM;AACf,oCAAA,UAAU,EAAE,QAAQ;AACpB,oCAAA,GAAG,EAAE,KAAK;AACV,iCAAA,EAAA,QAAA,EAAA,CAEA,KAAK,CAAC,IAAI,EACXA,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,QAAQ,EAAE,MAAM;AAChB,4CAAA,UAAU,EAAE,GAAG;AACf,4CAAA,KAAK,EAAE,sBAAsB;AAC7B,4CAAA,UAAU,EAAE,KAAK;AACjB,4CAAA,UAAU,EAAE,yBAAyB;AACrC,4CAAA,YAAY,EAAE,KAAK;AACnB,4CAAA,OAAO,EAAE,SAAS;yCAClB,EAAA,QAAA,EAAA,CAEA,KAAK,CAAC,YAAY,EAAA,MAAA,EAAM,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAA,EAAA,CACpD,CAAA,EAAA,CACH,EAGJ,KAAK,CAAC,KAAK,KACXV,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,oCAAA,QAAQ,EAAE,MAAM;AAChB,oCAAA,KAAK,EAAE,sBAAsB;AAC7B,oCAAA,SAAS,EAAE,KAAK;AAChB,oCAAA,OAAO,EAAE,aAAa;AACtB,oCAAA,eAAe,EAAE,UAAU;AAC3B,oCAAA,eAAe,EAAE,CAAC;AAClB,oCAAA,QAAQ,EAAE,QAAQ;AAClB,oCAAA,MAAM,EAAE,GAAG;AACX,oCAAA,UAAU,EAAE,KAAK;iCACjB,EAAA,QAAA,EAEA,KAAK,CAAC,KAAK,EAAA,CACT,CACJ,CAAA,EAAA,EA3MI,KAAK,CAAC,EAAE,CA4MR;iBAEP,CAAC,EAAA,CACG,EAEL,aAAa,KACbA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAA,QAAA,EAClCA,GAAA,CAAA,QAAA,EAAA,EACC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE;AACN,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,KAAK,EAAE,2BAA2B;AAClC,wBAAA,MAAM,EAAE,qCAAqC;AAC7C,wBAAA,OAAO,EAAE,WAAW;AACpB,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,QAAQ,EAAE,qBAAqB;AAC/B,wBAAA,UAAU,EAAE,KAAK;AACjB,wBAAA,UAAU,EAAE,uBAAuB;wBACnC,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS;AACpD,wBAAA,UAAU,EAAE,eAAe;wBAC3B,OAAO,EAAE,gBAAgB,GAAG,GAAG,GAAG,CAAC;AACnC,wBAAA,QAAQ,EAAE,UAAU;qBACpB,EACD,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,CAAC,CAAC,KAAI;wBACnB,IAAI,CAAC,gBAAgB,EAAE;4BACtB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,2BAA2B;4BACnE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO;;AAEvC,qBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;wBACnB,IAAI,CAAC,gBAAgB,EAAE;4BACtB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,yBAAyB;4BACjE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,2BAA2B;;qBAE1D,EAAA,QAAA,EAEA,gBAAgB,IAChBU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAChEV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oCAAA,KAAK,EAAE,MAAM;AACb,oCAAA,MAAM,EAAE,MAAM;AACd,oCAAA,KAAK,EAAE,2BAA2B;AAClC,oCAAA,SAAS,EAAE,yBAAyB;AACpC,oCAAA,QAAQ,EAAE,MAAM;AAChB,iCAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAGI,EAAA,cAAA,CAAA,EAAA,CAED,KAEN,iBAAiB,CACjB,EAAA,CACO,EAAA,CACJ,CACN,EAGDA,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ;;;;;IAKP,EAAA,CAAS,CAAA,EAAA,CACL;AAER;;ACtgBA;AAEA;AACA,MAAM,mBAAmB,GAAG,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,MAAM,GAQN,KAAI;AACJ,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW;AAAE,QAAA,OAAO,IAAI;AAExC,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO;IAEnC,QACCA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,eAAe,EAAE,oBAAoB;AACrC,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,OAAO,EAAE,mBAAmB;SAC5B,EAAA,QAAA,EAEDU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gBAAA,eAAe,EAAE,4BAA4B;AAC7C,gBAAA,YAAY,EAAE,yBAAyB;AACvC,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,QAAQ,EAAE,MAAM;AAChB,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,gBAAA,SAAS,EAAE,2EAA2E;AACtF,aAAA,EAAA,QAAA,EAAA,CAGDV,gBACC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;AACN,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,GAAG,EAAE,mBAAmB;AACxB,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,UAAU,EAAE,MAAM;AAClB,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,QAAQ,EAAE,MAAM;AAChB,wBAAA,MAAM,EAAE,SAAS;AACjB,wBAAA,KAAK,EAAE,sBAAsB;AAC7B,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,OAAO,EAAE,MAAM;AACf,wBAAA,UAAU,EAAE,QAAQ;AACpB,wBAAA,cAAc,EAAE,QAAQ;AACxB,wBAAA,YAAY,EAAE,+BAA+B;qBAC7C,EAAA,QAAA,EAAA,QAAA,EAAA,CAGO,EAGTU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,SAAS,EAAE,QAAQ;AACnB,wBAAA,YAAY,EAAE,yBAAyB;qBACvC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,eAAe,EAAE,kCAAkC;AACnD,gCAAA,YAAY,EAAE,KAAK;AACnB,gCAAA,MAAM,EAAE,0BAA0B;AAClC,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,UAAU,EAAE,QAAQ;AACpB,gCAAA,cAAc,EAAE,QAAQ;AACxB,gCAAA,QAAQ,EAAE,MAAM;AAChB,gCAAA,KAAK,EAAE,OAAO;6BACd,EAAA,QAAA,EAAA,QAAA,EAAA,CAGI,EACNA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,QAAQ,EAAE,wBAAwB;AAClC,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,MAAM,EAAE,+BAA+B;AACvC,gCAAA,UAAU,EAAE,uBAAuB;6BACnC,EAAA,QAAA,EAAA,sBAAA,EAAA,CAGG,EACLA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,UAAU,EAAE,uBAAuB;AACnC,gCAAA,MAAM,EAAE,CAAC;AACT,6BAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,CAGE,CAAA,EAAA,CACC,EAGNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,OAAO,EAAE,mBAAmB;AAC5B,wBAAA,YAAY,EAAE,yBAAyB;qBACvC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,QAAQ,EAAE,2BAA2B;AACrC,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,MAAM,EAAE,yBAAyB;AACjC,gCAAA,UAAU,EAAE,uBAAuB;6BACnC,EAAA,QAAA,EAAA,iBAAA,EAAA,CAGG,EAELU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAA,QAAA,EAAA,CAEhF,OAAO,CAAC,WAAW,KACnBA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAEjFV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAA,QAAA,EAAA,cAAA,EAAA,CAGvE,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,WAAW;AACvB,gDAAA,QAAQ,EAAE,2BAA2B;AACrC,gDAAA,eAAe,EAAE,4BAA4B;AAC7C,gDAAA,OAAO,EAAE,SAAS;AAClB,gDAAA,YAAY,EAAE,+BAA+B;AAC7C,6CAAA,EAAA,QAAA,EAEA,OAAO,CAAC,WAAW,GACd,CAAA,EAAA,CACF,CACN,EAGDU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACrFV,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,uBAE5E,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,SAAS,EAAE,OAAO;AAClB,gDAAA,QAAQ,EAAE,KAAK;AACf,6CAAA,EAAA,QAAA,EAEA,YAAY,CAAC,IAAI,EAAA,CACZ,CAAA,EAAA,CACF,EAGNU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACrFV,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,uBAE5E,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;AACnC,gDAAA,SAAS,EAAE,OAAO;AAClB,gDAAA,QAAQ,EAAE,KAAK;AACf,6CAAA,EAAA,QAAA,EAEA,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,GAC7B,CAAA,EAAA,CACF,EAGNU,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACrFV,cAAM,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,4BAE5E,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;6CACnC,EAAA,QAAA,EAEA,OAAO,CAAC,gBAAgB,EAAA,CACnB,IACF,EAGNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,OAAO,EAAE,MAAM;AACf,wCAAA,cAAc,EAAE,eAAe;AAC/B,wCAAA,UAAU,EAAE,QAAQ;AACpB,wCAAA,SAAS,EAAE,CAAA,gCAAA,CAAkC;AAC7C,wCAAA,UAAU,EAAE,mBAAmB;AAC/B,wCAAA,SAAS,EAAE,mBAAmB;qCAC9B,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,UAAU,EAAE,uBAAuB;6CACnC,EAAA,QAAA,EAAA,eAAA,EAAA,CAGK,EACPA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,gDAAA,KAAK,EAAE,sBAAsB;AAC7B,gDAAA,UAAU,EAAE,KAAK;AACjB,gDAAA,QAAQ,EAAE,2BAA2B;AACrC,gDAAA,UAAU,EAAE,uBAAuB;6CACnC,EAAA,QAAA,EAEA,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA,CACxB,CAAA,EAAA,CACF,CAAA,EAAA,CACD,CAAA,EAAA,CACD,EAGL,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KACzDU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,OAAO,EAAE,mBAAmB;AAC5B,wBAAA,YAAY,EAAE,yBAAyB;qBACvC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,QAAQ,EAAE,2BAA2B;AACrC,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,MAAM,EAAE,yBAAyB;AACjC,gCAAA,UAAU,EAAE,uBAAuB;6BACnC,EAAA,QAAA,EAAA,YAAA,EAAA,CAGG,EACLA,aACC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,yBAAyB,EAAE,EAAA,QAAA,EAElF,QAAQ,CAAC;AACR,iCAAA,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;iCAChC,GAAG,CAAC,CAAC,WAAgB,EAAE,KAAa,MACpCU,IAAA,CAAA,KAAA,EAAA,EAEC,KAAK,EAAE;AACN,oCAAA,OAAO,EAAE,MAAM;AACf,oCAAA,cAAc,EAAE,eAAe;AAC/B,oCAAA,UAAU,EAAE,QAAQ;AACpB,oCAAA,OAAO,EAAE,yBAAyB;AAClC,oCAAA,eAAe,EAAE,4BAA4B;AAC7C,oCAAA,YAAY,EAAE,+BAA+B;iCAC7C,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,KAAK,EAAE,sBAAsB;AAC7B,4CAAA,UAAU,EAAE,uBAAuB;AACnC,yCAAA,EAAA,QAAA,EAEA,WAAW,CAAC,IAAI,EAAA,CACX,EACN,WAAW,CAAC,GAAG,KACfU,IAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,4CAAA,KAAK,EAAE,sBAAsB;AAC7B,4CAAA,QAAQ,EAAE,2BAA2B;AACrC,4CAAA,UAAU,EAAE,uBAAuB;AACnC,yCAAA,EAAA,QAAA,EAAA,CAEA,WAAW,CAAC,GAAG,EAAA,QAAA,CAAA,EAAA,CACV,CACP,KA5BI,KAAK,CA6BL,CACN,CAAC,GACE,CAAA,EAAA,CACD,CACN,EAGDA,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,OAAO,EAAE,mBAAmB;AAC5B,wBAAA,YAAY,EAAE,yBAAyB;qBACvC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,QAAQ,EAAE,2BAA2B;AACrC,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,MAAM,EAAE,yBAAyB;AACjC,gCAAA,UAAU,EAAE,uBAAuB;AACnC,6BAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAGG,EACLU,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,yBAAyB,EAAE,aACvFA,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,aACrFV,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAA,QAAA,EAAA,OAAA,EAAA,CAE5E,EACPA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAA,QAAA,EACjF,QAAQ,CAAC,YAAY,EAAA,CAChB,CAAA,EAAA,CACF,EACNU,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACrFV,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,wBAE5E,EACPA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAA,QAAA,EACjF,QAAQ,CAAC,aAAa,EAAA,CACjB,IACF,EACL,QAAQ,CAAC,aAAa,KACtBU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,aAEjFV,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAA,QAAA,EAAA,UAAA,EAAA,CAGvE,EACPA,cACC,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,uBAAuB,EAAE,EAAA,QAAA,EAE5E,QAAQ,CAAC,aAAa,EAAA,CACjB,IACF,CACN,CAAA,EAAA,CACI,IACD,EAGNU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,eAAe,EAAE,sDAAsD;AACvE,wBAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;AAC1C,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,OAAO,EAAE,mBAAmB;AAC5B,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,SAAS,EAAE,QAAQ;qBACnB,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,2BAA2B;AAClC,gCAAA,QAAQ,EAAE,MAAM;AAChB,gCAAA,YAAY,EAAE,yBAAyB;6BACvC,EAAA,QAAA,EAAA,cAAA,EAAA,CAGI,EACNU,IAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,UAAU,EAAE,uBAAuB;AACnC,gCAAA,QAAQ,EAAE,2BAA2B;6BACrC,EAAA,QAAA,EAAA,CAAA,sDAAA,EAE0C,QAAQ,CAAC,aAAa,EAAA,YAAA,CAAA,EAAA,CAC9D,IACC,EAGNV,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAA,QAAA,EAClCA,GAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;AACN,4BAAA,eAAe,EAAE,2BAA2B;AAC5C,4BAAA,KAAK,EAAE,OAAO;AACd,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,YAAY,EAAE,yBAAyB;AACvC,4BAAA,QAAQ,EAAE,qBAAqB;AAC/B,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,MAAM,EAAE,SAAS;AACjB,4BAAA,UAAU,EAAE,uBAAuB;AACnC,4BAAA,UAAU,EAAE,eAAe;AAC3B,yBAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK;AACtC,yBAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;4BACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AACpC,yBAAC,EAAA,QAAA,EAAA,gBAAA,EAAA,CAGO,EAAA,CACJ,CAAA,EAAA,CACD,EAAA,CACD;AAER,CAAC;AAED;SACgB,sBAAsB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAsC,EAAA;;AAEhG,IAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC;;AAG7C,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;AACjF,IAAA,MAAM,kBAAkB,GAAG;AAC1B,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,iBAAiB,EAAE,sBAAsB;QACzC,GAAG,MAAM,CAAC,kBAAkB;KAC5B;;AAGD,IAAA,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,YAAY;AAChG,IAAA,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,eAAe;;IAGrD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC7C,YAAY,CACZ;IACD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC;IAC7D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC;IAClF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC;IACzE,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC;;IAG9F,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC;IACzE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;;IAG1D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;;IAGrD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC;IAC3E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAM,IAAI,CAAC;IAC7D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;;AAGrE,IAAA,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjD,IAAA,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9E,IAAA,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1E,IAAA,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;IACvD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAM,IAAI,CAAC;IACzD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAItC,IAAI,CAAC;;IAGf,MAAM,CAAC,6BAA6B,EAAE,gCAAgC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACzF,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;;IAG7E,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,gBAAgB,GAAG,YAAW;AACnC,YAAA,IAAI;gBACH,YAAY,CAAC,IAAI,CAAC;;gBAGlB,IAAI,oBAAoB,EAAE;oBACzB,cAAc,CAAC,SAAS,CAAC;oBACzB,0BAA0B,CAAC,IAAI,CAAC;AAChC,oBAAA,MAAM,gBAAgB,CAAC,MAAM,CAAC,eAAgB,CAAC;oBAC/C;;;AAID,gBAAA,IAAI,QAAQ,KAAK,aAAa,EAAE;oBAC/B,MAAM,kBAAkB,EAAE;oBAC1B;;;gBAID,IAAI,qBAAqB,EAAE;oBAC1B,MAAM,cAAc,EAAE;oBACtB;;;gBAID,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,YAAY,EAAE;oBAC7C,cAAc,CAAC,YAAY,CAAC;oBAC5B,MAAM,cAAc,EAAE;oBACtB;;;gBAID,QAAQ,CAAC,gEAAgE,CAAC;;YACzE,OAAO,GAAG,EAAE;gBACb,QAAQ,CAAC,gDAAgD,CAAC;AAC1D,gBAAA,MAAM,CAAC,OAAO,GAAG,qCAAqC,CAAC;;oBAC9C;gBACT,YAAY,CAAC,KAAK,CAAC;;AAErB,SAAC;AAED,QAAA,gBAAgB,EAAE;;AAEnB,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC;;IAGZ,SAAS,CAAC,MAAK;AACd,QAAA,IAAI,WAAW,KAAK,gBAAgB,IAAI,CAAC,6BAA6B,EAAE;YACvE,gCAAgC,CAAC,IAAI,CAAC;;AAEvC,QAAA,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,uBAAuB,EAAE;YAC1D,0BAA0B,CAAC,IAAI,CAAC;;KAEjC,EAAE,CAAC,WAAW,EAAE,6BAA6B,EAAE,uBAAuB,CAAC,CAAC;AAEzE,IAAA,MAAM,cAAc,GAAG,YAAW;AACjC,QAAA,MAAM,WAAW,GAAQ;YACxB,cAAc,EAAE,MAAM,CAAC,cAAc;SACrC;AAED,QAAA,IAAI,MAAM,CAAC,UAAU,EAAE;AACtB,YAAA,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;;AACpC,aAAA,IAAI,MAAM,CAAC,YAAY,EAAE;AAC/B,YAAA,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;;AACxC,aAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AAC9B,YAAA,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;;AAG7C,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,sBAAsB,CAAC,EAAE;AAClF,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,gBAAgB,CAAO,CAAC;AACjC,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACjC,SAAA,CAAC;AAEF,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,QAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;;YAG9B,IAAI,qBAAqB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1D,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;;;YAIhD,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3D,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,cAAc,CAAC,gBAAgB,CAAC;gBAChC,MAAM,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;;;aAE1C;AACN,YAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,2CAA2C,CAAC;;AAErE,KAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,YAAW;AACrC,QAAA,MAAM,WAAW,GAAQ;YACxB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,KAAK,EAAE,kBAAkB,CAAC,KAAK;SAC/B;;AAGD,QAAA,IAAI,MAAM,CAAC,UAAU,EAAE;AACtB,YAAA,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;;AACpC,aAAA,IAAI,MAAM,CAAC,YAAY,EAAE;AAC/B,YAAA,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;;AACxC,aAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AAC9B,YAAA,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;;AAG7C,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,0BAA0B,CAAC,EAAE;AACtF,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,gBAAgB,CAAO,CAAC;AACjC,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACjC,SAAA,CAAC;AAEF,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,QAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,iBAAiB,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;;aACtC;AACN,YAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,8CAA8C,CAAC;;AAExE,KAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,OAAO,WAAmB,KAAI;AACxD,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,0BAA0B,CAAC,EAAE;AACtF,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,gBAAgB,CAAO,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CACnB,iBAAiB,CAAC,MAAM,EAAE;gBACzB,WAAW;gBACX,mBAAmB,EAAE,IAAI;AACzB,aAAA,CAAC,CACF;AACD,SAAA,CAAC;AAEF,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,QAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC;;AAGtC,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC9B,gBAAA,MAAM,aAAa,GAAQ;AAC1B,oBAAA,MAAM,EAAG,MAAM,CAAC,MAAc,IAAI,IAAI;iBACtC;AAED,gBAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC5B,oBAAA,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB;;gBAGtD,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;;;YAIvE,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrC,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAChD,cAAc,CAAC,SAAS,CAAC;gBACzB,MAAM,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;;;aAE5C;AACN,YAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,6CAA6C,CAAC;;AAEvE,KAAC;AAED,IAAA,MAAM,gBAAgB,GAAG,OAAO,eAAuB,KAAI;AAC1D,QAAA,IAAI;AACH,YAAA,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,EAAE;AAC7C,gBAAA,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC;AACxC,aAAA,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,WAAW,CAAC,CAAC;AAEhE,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,wBAAwB,CAAC,EAAE;AACpF,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC;AACjC,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACjC,aAAA,CAAC;AAEF,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,YAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAE1E,YAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AAChB,gBAAA,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;;AAGlC,gBAAA,eAAe,CAAC;oBACf,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;oBAC/C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AAC3C,iBAAA,CAAC;;AAGF,gBAAA,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAChD,oBAAA,MAAM,aAAa,GAAQ;AAC1B,wBAAA,MAAM,EAAG,MAAM,CAAC,MAAc,IAAI,IAAI;qBACtC;AAED,oBAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC5B,wBAAA,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB;;oBAGtD,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;;;iBAEjE;AACN,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,6CAA6C;AAChF,gBAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE;oBACzC,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,oBAAA,KAAK,EAAE,YAAY;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,iBAAA,CAAC;gBACF,QAAQ,CAAC,YAAY,CAAC;;;QAEtB,OAAO,GAAG,EAAE;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC;YAChD,QAAQ,CAAC,6CAA6C,CAAC;;AAEzD,KAAC;;;AAKD,IAAA,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;QAC3B,QACCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uBAAuB,YACrCU,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gDAAgD,EAAA,QAAA,EAAA,CAC9DV,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,sBAAA,EAAA,CAA0B,EACpEA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,4DAAA,EAAA,CAA+D,CAAA,EAAA,CACrF,EAAA,CACD;;IAIR,IACC,CAAC,MAAM,CAAC,eAAe;QACvB,CAAC,MAAM,CAAC,UAAU;QAClB,CAAC,MAAM,CAAC,YAAY;AACpB,QAAA,CAAC,MAAM,CAAC,WAAW,EAClB;QACD,QACCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uBAAuB,YACrCU,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gDAAgD,EAAA,QAAA,EAAA,CAC9DV,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAA,sBAAA,EAAA,CAA0B,EACpEA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,mHAAA,EAAA,CAGvB,CAAA,EAAA,CACC,EAAA,CACD;;;AAKR,IAAA,MAAM,qBAAqB,GAAG,OAAO,SAAoB,KAAI;QAC5D,oBAAoB,CAAC,SAAS,CAAC;QAC/B,cAAc,CAAC,gBAAgB,CAAC;QAChC,gCAAgC,CAAC,IAAI,CAAC;QACtC,0BAA0B,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI;AACH,YAAA,MAAM,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;;gBAC7B;YACT,0BAA0B,CAAC,KAAK,CAAC;;AAEnC,KAAC;;AAGD,IAAA,MAAM,yBAAyB,GAAG,OAAO,aAA4B,KAAI;QACxE,wBAAwB,CAAC,aAAa,CAAC;QACvC,cAAc,CAAC,SAAS,CAAC;QACzB,0BAA0B,CAAC,IAAI,CAAC;QAChC,wBAAwB,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI;AACH,YAAA,MAAM,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;;gBAC/B;YACT,wBAAwB,CAAC,KAAK,CAAC;;AAEjC,KAAC;;IAGD,MAAM,sBAAsB,GAAG,MAAK;QACnC,cAAc,CAAC,YAAY,CAAC;QAC5B,oBAAoB,CAAC,IAAI,CAAC;QAC1B,iBAAiB,CAAC,EAAE,CAAC;;AAEtB,KAAC;IAED,MAAM,0BAA0B,GAAG,MAAK;QACvC,cAAc,CAAC,gBAAgB,CAAC;QAChC,wBAAwB,CAAC,IAAI,CAAC;QAC9B,eAAe,CAAC,IAAI,CAAC;AACtB,KAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,MAAW,KAAI;QAC5C,YAAY,CAAC,IAAI,CAAC;QAClB,cAAc,CAAC,MAAM,CAAC;AACtB,QAAA,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;AAC3B,KAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,CAAC,YAAoB,KAAI;QACnD,QAAQ,CAAC,YAAY,CAAC;AACtB,QAAA,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;AAC/B,KAAC;AAED,IAAA,MAAM,yBAAyB,GAAG,OAAO,eAAuB,KAAI;;AAEnE,QAAA,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,eAAe,CAAC;QAClF,IAAI,aAAa,EAAE;;AAElB,YAAA,MAAM,aAAa,GAAkB;gBACpC,EAAE,EAAE,aAAa,CAAC,EAAE;gBACpB,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,OAAO,EAAE,aAAa,CAAC,OAAO;AAC9B,gBAAA,KAAK,EAAE,aAAa,CAAC,KAAK,IAAI,CAAC;gBAC/B,eAAe,EAAE,aAAa,CAAC,eAAe;gBAC9C,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;gBAChD,cAAc,EAAE,aAAa,CAAC,cAAc;gBAC5C,YAAY,EAAE,aAAa,CAAC,YAAY;gBACxC,cAAc,EAAE,aAAa,CAAC,cAAc;gBAC5C,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,WAAW,EAAE,aAAa,CAAC,WAAW;aACtC;YACD,wBAAwB,CAAC,aAAa,CAAC;;QAGxC,cAAc,CAAC,SAAS,CAAC;QACzB,0BAA0B,CAAC,IAAI,CAAC;QAChC,wBAAwB,CAAC,IAAI,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC;AACd,QAAA,IAAI;AACH,YAAA,MAAM,gBAAgB,CAAC,eAAe,CAAC;;QACtC,OAAO,GAAG,EAAE;YACb,QAAQ,CAAC,6CAA6C,CAAC;YACvD,cAAc,CAAC,YAAY,CAAC;YAC5B,iBAAiB,CAAC,IAAI,CAAC;;gBACd;YACT,wBAAwB,CAAC,KAAK,CAAC;;AAEjC,KAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,YAAW;QACtC,mBAAmB,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI;;AAEH,YAAA,IAAI,qBAAqB,IAAI,iBAAiB,EAAE;gBAC/C,gCAAgC,CAAC,IAAI,CAAC;gBACtC,0BAA0B,CAAC,IAAI,CAAC;AAChC,gBAAA,MAAM,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC9C,cAAc,CAAC,gBAAgB,CAAC;gBAChC,iBAAiB,CAAC,KAAK,CAAC;gBACxB,0BAA0B,CAAC,KAAK,CAAC;;iBAC3B;;gBAEN,MAAM,cAAc,EAAE;gBACtB,cAAc,CAAC,YAAY,CAAC;gBAC5B,iBAAiB,CAAC,KAAK,CAAC;;;gBAEhB;YACT,mBAAmB,CAAC,KAAK,CAAC;;AAE5B,KAAC;;IAGD,MAAM,gBAAgB,GAAG,MAAK;AAC7B,QAAA,IAAI,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AAC9D,YAAA,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM;;AAElC,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AACvB,YAAA,OAAO,CAAC;;;AAGT,QAAA,OAAO,CAAC;AACT,KAAC;;IAGD,IAAI,KAAK,EAAE;QACV,QACCA,GAAA,CAAC,aAAa,EAAA,EAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAC5BA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EACnEU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,wBAAA,eAAe,EAAE,yBAAyB;AAC1C,wBAAA,MAAM,EAAE,CAAA,+BAAA,CAAiC;AACzC,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,OAAO,EAAE,yBAAyB;AAClC,wBAAA,SAAS,EAAE,QAAQ;AACnB,wBAAA,UAAU,EAAE,uBAAuB;qBACnC,EAAA,QAAA,EAAA,CAGDV,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,eAAe,EAAE,uBAAuB;AACxC,gCAAA,YAAY,EAAE,KAAK;AACnB,gCAAA,MAAM,EAAE,0BAA0B;AAClC,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,UAAU,EAAE,QAAQ;AACpB,gCAAA,cAAc,EAAE,QAAQ;AACxB,gCAAA,QAAQ,EAAE,MAAM;AAChB,gCAAA,KAAK,EAAE,OAAO;6BACd,EAAA,QAAA,EAAA,cAAA,EAAA,CAGI,EAGNA,GAAA,CAAA,IAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,QAAQ,EAAE,wBAAwB;AAClC,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,MAAM,EAAE,+BAA+B;AACvC,gCAAA,UAAU,EAAE,uBAAuB;6BACnC,EAAA,QAAA,EAAA,mDAAA,EAAA,CAGG,EAGLA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,QAAQ,EAAE,qBAAqB;AAC/B,gCAAA,UAAU,EAAE,KAAK;AACjB,gCAAA,MAAM,EAAE,+BAA+B;AACvC,gCAAA,UAAU,EAAE,uBAAuB;6BACnC,EAAA,QAAA,EAAA,uGAAA,EAAA,CAIE,EAGJU,IAAA,CAAA,SAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,YAAY,EAAE,yBAAyB;AACvC,gCAAA,SAAS,EAAE,MAAM;AACjB,gCAAA,eAAe,EAAE,4BAA4B;AAC7C,gCAAA,YAAY,EAAE,+BAA+B;AAC7C,gCAAA,OAAO,EAAE,KAAK;AACd,gCAAA,MAAM,EAAE,CAAA,gCAAA,CAAkC;6BAC1C,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,SAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,MAAM,EAAE,SAAS;AACjB,wCAAA,UAAU,EAAE,KAAK;AACjB,wCAAA,KAAK,EAAE,sBAAsB;AAC7B,wCAAA,QAAQ,EAAE,2BAA2B;AACrC,wCAAA,UAAU,EAAE,uBAAuB;AACnC,wCAAA,YAAY,EAAE,yBAAyB;qCACvC,EAAA,QAAA,EAAA,6BAAA,EAAA,CAGQ,EACVA,GAAA,CAAA,MAAA,EAAA,EACC,KAAK,EAAE;AACN,wCAAA,OAAO,EAAE,OAAO;AAChB,wCAAA,QAAQ,EAAE,2BAA2B;AACrC,wCAAA,KAAK,EAAE,sBAAsB;AAC7B,wCAAA,UAAU,EAAE,WAAW;AACvB,wCAAA,SAAS,EAAE,YAAY;AACvB,wCAAA,UAAU,EAAE,UAAU;AACtB,qCAAA,EAAA,QAAA,EAEA,KAAK,EAAA,CACA,CAAA,EAAA,CACE,EAGVA,GAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,OAAO,EAAE,MAAM;AACf,gCAAA,GAAG,EAAE,mBAAmB;AACxB,gCAAA,cAAc,EAAE,QAAQ;AACxB,gCAAA,QAAQ,EAAE,MAAM;AAChB,6BAAA,EAAA,QAAA,EAEDU,IAAA,CAAA,QAAA,EAAA,EACC,OAAO,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EACvC,KAAK,EAAE;AACN,oCAAA,eAAe,EAAE,2BAA2B;AAC5C,oCAAA,KAAK,EAAE,OAAO;AACd,oCAAA,OAAO,EAAE,WAAW;AACpB,oCAAA,MAAM,EAAE,MAAM;AACd,oCAAA,YAAY,EAAE,yBAAyB;AACvC,oCAAA,QAAQ,EAAE,qBAAqB;AAC/B,oCAAA,UAAU,EAAE,KAAK;AACjB,oCAAA,MAAM,EAAE,SAAS;AACjB,oCAAA,UAAU,EAAE,uBAAuB;AACnC,oCAAA,UAAU,EAAE,eAAe;AAC3B,oCAAA,OAAO,EAAE,MAAM;AACf,oCAAA,UAAU,EAAE,QAAQ;AACpB,oCAAA,GAAG,EAAE,KAAK;AACV,iCAAA,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;oCACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK;oCACrC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB;AACrD,iCAAC,EACD,YAAY,EAAE,CAAC,CAAC,KAAI;oCACnB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;oCACnC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;AAClD,iCAAC,EAAA,QAAA,EAAA,CAEDV,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,6BAAW,EAAA,iBAAA,CAAA,EAAA,CAEpC,EAAA,CACJ,EAGNA,GAAA,CAAA,GAAA,EAAA,EACC,KAAK,EAAE;AACN,gCAAA,KAAK,EAAE,sBAAsB;AAC7B,gCAAA,QAAQ,EAAE,2BAA2B;AACrC,gCAAA,MAAM,EAAE,+BAA+B;AACvC,gCAAA,UAAU,EAAE,uBAAuB;AACnC,6BAAA,EAAA,QAAA,EAAA,qEAAA,EAAA,CAGE,CAAA,EAAA,CACC,EAAA,CACD,EAAA,CACS;;;IAKlB,IAAI,SAAS,EAAE;AACd,QAAA,QACCA,GAAA,CAAC,aAAa,IAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAC5BA,GAAA,CAAC,mBAAmB,EAAA,EACnB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAK;oBACb,YAAY,CAAC,KAAK,CAAC;oBACnB,cAAc,CAAC,YAAY,CAAC;;oBAE5B,gCAAgC,CAAC,KAAK,CAAC;oBACvC,0BAA0B,CAAC,KAAK,CAAC;iBACjC,EACD,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,MAAM,EAAE,MAAM,EAAA,CACb,EAAA,CACa;;;AAKlB,IAAA,IAAI,QAAQ,KAAK,aAAa,IAAI,cAAc,EAAE;;AAEjD,QAAA,QACCU,IAAA,CAAC,aAAa,EAAA,EAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAAA,CAC5BV,GAAA,CAAC,iBAAiB,IACjB,MAAM,EAAE,cAAc,EACtB,aAAa,EAAE,yBAAyB,EACxC,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB,EACvD,aAAa,EAAE,kBAAkB,CAAC,aAAa,EAC/C,qBAAqB,EAAE,qBAAqB,EAC5C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,GACnB,EAED,uBAAuB,IAAI,YAAY,KACvCA,GAAA,CAAC,WAAW,EAAA,EACX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,sBAAsB,EAAE,MAAK;wBAC5B,cAAc,CAAC,YAAY,CAAC;wBAC5B,iBAAiB,CAAC,IAAI,CAAC;wBACvB,eAAe,CAAC,IAAI,CAAC;AACtB,qBAAC,EACD,kBAAkB,EAAE,MAAK;wBACxB,cAAc,CAAC,YAAY,CAAC;wBAC5B,iBAAiB,CAAC,IAAI,CAAC;wBACvB,eAAe,CAAC,IAAI,CAAC;qBACrB,EACD,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,qBAAqB,EAC5C,MAAM,EAAE,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,EACnD,OAAO,EAAE,MAAK;wBACb,cAAc,CAAC,YAAY,CAAC;wBAC5B,iBAAiB,CAAC,IAAI,CAAC;wBACvB,eAAe,CAAC,IAAI,CAAC;qBACrB,EACD,YAAY,EAAE,YAAY,GACzB,CACF,CAAA,EAAA,CACc;;IAIlB,IAAI,QAAQ,KAAK,aAAa,IAAI,CAAC,cAAc,IAAI,WAAW,KAAK,gBAAgB,EAAE;;AAEtF,QAAA,QACCA,GAAA,CAAC,aAAa,EAAA,EAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAC3B,6BAA6B,KAC7BA,GAAA,CAAC,sBAAsB,EAAA,EACtB,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,yBAAyB,EAChD,kBAAkB,EAAE,MAAK;oBACxB,iBAAiB,CAAC,IAAI,CAAC;oBACvB,cAAc,CAAC,YAAY,CAAC;iBAC5B,EACD,MAAM,EAAE,WAAW,KAAK,gBAAgB,EACxC,OAAO,EAAE,MAAK;oBACb,iBAAiB,CAAC,IAAI,CAAC;oBACvB,cAAc,CAAC,YAAY,CAAC;AAC7B,iBAAC,EACD,uBAAuB,EAAE,uBAAuB,EAChD,qBAAqB,EAAE,qBAAqB,EAAA,CAC3C,CACF,EAAA,CACc;;IAIlB,IAAI,QAAQ,KAAK,QAAQ,KAAK,qBAAqB,IAAI,oBAAoB,CAAC,EAAE;;QAE7E,QACCA,GAAA,CAAC,aAAa,EAAA,EAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAC5BU,IAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAE;AACN,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,cAAc,EAAE,QAAQ;AACxB,oBAAA,UAAU,EAAE,QAAQ;AACpB,oBAAA,SAAS,EAAE,OAAO;AAClB,iBAAA,EAAA,QAAA,EAAA,CAEDV,gBACC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;AACN,4BAAA,eAAe,EAAE,2BAA2B;AAC5C,4BAAA,KAAK,EAAE,OAAO;AACd,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,YAAY,EAAE,yBAAyB;AACvC,4BAAA,QAAQ,EAAE,MAAM;AAChB,4BAAA,UAAU,EAAE,GAAG;AACf,4BAAA,UAAU,EAAE,uBAAuB;AACnC,4BAAA,SAAS,EAAE,qBAAqB;AAChC,4BAAA,MAAM,EAAE,SAAS;yBACjB,EACD,OAAO,EAAE,MAAK;4BACb,IAAI,oBAAoB,EAAE;gCACzB,cAAc,CAAC,SAAS,CAAC;gCACzB,0BAA0B,CAAC,IAAI,CAAC;;iCAC1B;gCACN,cAAc,CAAC,IAAI,CAAC;gCACpB,gCAAgC,CAAC,IAAI,CAAC;;yBAEvC,EAAA,QAAA,EAEA,MAAM,CAAC,UAAU;AACjB,6BAAC,oBAAoB,GAAG,cAAc,GAAG,wBAAwB,CAAC,GAC3D,EAER,6BAA6B,KAC7BA,GAAA,CAAC,sBAAsB,EAAA,EACtB,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,yBAAyB,EAChD,kBAAkB,EAAE,MAAM,cAAc,CAAC,KAAK,CAAC,EAC/C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,cAAc,CAAC,KAAK,CAAC,EACpC,uBAAuB,EAAE,uBAAuB,EAChD,qBAAqB,EAAE,qBAAqB,EAAA,CAC3C,CACF,EACA,uBAAuB,IAAI,YAAY,KACvCA,GAAA,CAAC,WAAW,EAAA,EACX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,sBAAsB,EAAE,MACvB,cAAc,CAAC,oBAAoB,GAAG,YAAY,GAAG,gBAAgB,CAAC,EAEvE,kBAAkB,EAAE,MAAM,cAAc,CAAC,KAAK,CAAC,EAC/C,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,qBAAqB,EAC5C,MAAM,EAAE,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,EACnD,OAAO,EAAE,MAAM,cAAc,CAAC,oBAAoB,GAAG,YAAY,GAAG,gBAAgB,CAAC,EACrF,YAAY,EAAE,YAAY,EAAA,CACzB,CACF,CAAA,EAAA,CACI,EAAA,CACS;;;IAKlB,MAAM,SAAS,IACdA,GAAA,CAAC,kBAAkB,IAClB,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,qBAAqB,EACxC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,gBAAgB,EAAE,EAAA,CAChC,CACF;;IAGD,MAAM,eAAe,GAAG,MAAK;AAC5B,QAAA,IAAI,QAAQ,KAAK,aAAa,EAAE;YAC/B,OAAO;gBACN,sBAAsB,EAAE,MAAK;oBAC5B,cAAc,CAAC,gBAAgB,CAAC;oBAChC,iBAAiB,CAAC,KAAK,CAAC;oBACxB,eAAe,CAAC,IAAI,CAAC;iBACrB;gBACD,kBAAkB,EAAE,MAAK;oBACxB,iBAAiB,CAAC,IAAI,CAAC;oBACvB,cAAc,CAAC,YAAY,CAAC;oBAC5B,eAAe,CAAC,IAAI,CAAC;iBACrB;gBACD,OAAO,EAAE,MAAK;oBACb,cAAc,CAAC,gBAAgB,CAAC;oBAChC,iBAAiB,CAAC,KAAK,CAAC;oBACxB,eAAe,CAAC,IAAI,CAAC;iBACrB;aACD;;;QAGF,OAAO;AACN,YAAA,sBAAsB,EAAE,0BAA0B;AAClD,YAAA,kBAAkB,EAAE,sBAAsB;AAC1C,YAAA,OAAO,EAAE,0BAA0B;SACnC;AACF,KAAC;AAED,IAAA,MAAM,YAAY,GAAG,eAAe,EAAE;IAEtC,QACCU,IAAA,CAAC,aAAa,EAAA,EAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAAA,CAC3B,SAAS,EAGT,6BAA6B,KAC7BV,GAAA,CAAC,sBAAsB,EAAA,EACtB,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,yBAAyB,EAChD,kBAAkB,EAAE,sBAAsB,EAC1C,MAAM,EAAE,WAAW,KAAK,gBAAgB,EACxC,OAAO,EAAE,sBAAsB,EAC/B,uBAAuB,EAAE,uBAAuB,EAChD,qBAAqB,EAAE,qBAAqB,EAAA,CAC3C,CACF,EAGA,uBAAuB,IAAI,YAAY,KACvCA,GAAA,CAAC,WAAW,EAAA,EACX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,sBAAsB,EAAE,YAAY,CAAC,sBAAsB,EAC3D,kBAAkB,EAAE,YAAY,CAAC,kBAAkB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,EAAE,qBAAqB,EAC5C,MAAM,EAAE,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,EACnD,OAAO,EAAE,YAAY,CAAC,OAAO,EAC7B,YAAY,EAAE,YAAY,EAAA,CACzB,CACF,CAAA,EAAA,CACc;AAElB;;ACp5CA;SACgB,IAAI,CAAC,EACpB,MAAM,EACN,MAAM,GAC4D,EAAA;AAClE,IAAA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM;IAEtF,IAAI,CAAC,SAAS,EAAE;AACf,QAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAA,CAAE,CAAC;;;AAIvD,IAAA,SAAS,CAAC,SAAS,GAAG,EAAE;;AAGxB,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAClC,QAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC;;;IAI3E,MAAM,QAAQ,GACb,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,KAAK,GAAI,MAAc,CAAC,KAAK,GAAGE,uBAAK;IACvF,MAAM,WAAW,GAChB,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC;UAC7C,MAAc,CAAC;AAClB,UAAE,EAAE,UAAU,EAAE;;AAGlB,IAAA,IAAI,WAAW,CAAC,UAAU,EAAE;QAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;AAC9C,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvE,OAAO;AACN,YAAA,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE;SAC7B;;AAGF,IAAA,IAAI,WAAW,CAAC,MAAM,EAAE;;AAEvB,QAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC;QAEzF,OAAO;YACN,OAAO,EAAE,MAAM,WAAW,CAAC,sBAAsB,CAAC,SAAS,CAAC;SAC5D;;AAGF,IAAA,MAAM,IAAI,KAAK,CACd,oFAAoF,CACpF;AACF;;;;","x_google_ignoreList":[0,3,4,5,6,7,8,9,10,11,12,16]}