@kb-labs/agent-entry 2.14.0 → 2.15.0

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.
Files changed (41) hide show
  1. package/dist/widgets/117.js +2 -0
  2. package/dist/widgets/117.js.map +1 -0
  3. package/dist/widgets/297.js +2 -0
  4. package/dist/widgets/297.js.map +1 -0
  5. package/dist/widgets/338.js +2 -0
  6. package/dist/widgets/338.js.map +1 -0
  7. package/dist/widgets/370.js +2 -0
  8. package/dist/widgets/370.js.map +1 -0
  9. package/dist/widgets/451.js +2 -0
  10. package/dist/widgets/451.js.map +1 -0
  11. package/dist/widgets/50.js +2 -0
  12. package/dist/widgets/50.js.map +1 -0
  13. package/dist/widgets/586.js +39 -0
  14. package/dist/widgets/586.js.map +1 -0
  15. package/dist/widgets/59.js +2 -0
  16. package/dist/widgets/59.js.map +1 -0
  17. package/dist/widgets/607.js +2 -0
  18. package/dist/widgets/607.js.map +1 -0
  19. package/dist/widgets/626.js +2 -0
  20. package/dist/widgets/626.js.map +1 -0
  21. package/dist/widgets/669.js +2 -0
  22. package/dist/widgets/669.js.map +1 -0
  23. package/dist/widgets/678.js +2 -0
  24. package/dist/widgets/678.js.map +1 -0
  25. package/dist/widgets/781.js +2 -0
  26. package/dist/widgets/781.js.map +1 -0
  27. package/dist/widgets/842.js +446 -0
  28. package/dist/widgets/842.js.map +1 -0
  29. package/dist/widgets/968.js +10 -0
  30. package/dist/widgets/968.js.map +1 -0
  31. package/dist/widgets/997.js +35 -0
  32. package/dist/widgets/997.js.map +1 -0
  33. package/dist/widgets/@mf-types.d.ts +3 -0
  34. package/dist/widgets/@mf-types.zip +0 -0
  35. package/dist/widgets/__federation_expose_AgentsPage.js +2 -0
  36. package/dist/widgets/__federation_expose_AgentsPage.js.map +1 -0
  37. package/dist/widgets/mf-manifest.json +262 -0
  38. package/dist/widgets/mf-stats.json +307 -0
  39. package/dist/widgets/remoteEntry.js +7 -0
  40. package/dist/widgets/remoteEntry.js.map +1 -0
  41. package/package.json +14 -14
@@ -0,0 +1,10 @@
1
+ "use strict";(self.webpackChunk_kb_labs_agent_entry=self.webpackChunk_kb_labs_agent_entry||[]).push([["968"],{3755(e,r,a){a.r(r),a.d(r,{colors:()=>t,darkSemanticColors:()=>m,darkTheme:()=>c,generateCSSVars:()=>p,generateThemeCSS:()=>d,lightSemanticColors:()=>b,lightTheme:()=>f,radius:()=>i,shadows:()=>o,spacing:()=>n,typography:()=>s});var t={primary:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},secondary:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},success:{50:"#f0fdf4",500:"#22c55e",600:"#16a34a",700:"#15803d"},warning:{50:"#fffbeb",500:"#f59e0b",600:"#d97706",700:"#b45309"},error:{50:"#fef2f2",500:"#ef4444",600:"#dc2626",700:"#b91c1c"},neutral:{0:"#ffffff",50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d4d4d4",400:"#9ca3af",500:"#6b7280",600:"#525252",700:"#404040",800:"#27272a",900:"#1a1a1c",950:"#0d0d0f"},muted:{background:"#F3F4F6",foreground:"#6B7280"}},n={0:"0",1:"0.25rem",2:"0.5rem",3:"0.75rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem"},s={fontFamily:{sans:["Inter","system-ui","-apple-system","sans-serif"],mono:["Fira Code","Courier New","monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}]},fontWeight:{normal:"400",medium:"500",semibold:"600",bold:"700"}},i={none:"0",sm:"0.125rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem",full:"9999px"},o={sm:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",md:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)",lg:"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)",xl:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)","2xl":"0 25px 50px -12px rgba(0, 0, 0, 0.25)",none:"none"},f={colors:t,spacing:n,typography:s,radius:i,shadows:o},c={colors:t,spacing:n,typography:s,radius:i,shadows:o},b={"bg-primary":"#F9FAFB","bg-secondary":"#FFFFFF","bg-tertiary":"#F3F4F6","text-primary":"#111827","text-secondary":"#6B7280","text-tertiary":"#6B7280","text-inverse":"#FFFFFF","border-primary":"#E5E7EB","border-secondary":"#D4D4D4",link:"#2563EB","link-hover":"#1E40AF","accent-subtle":"#DBEAFE",success:"#16A34A",warning:"#F59E0B",error:"#DC2626",info:"#0EA5E9",disabled:"#9CA3AF",shadow:"rgba(0, 0, 0, 0.05)"},m={"bg-primary":"#0D0D0F","bg-secondary":"#1A1A1C","bg-tertiary":"#27272A","text-primary":"#F5F5F7","text-secondary":"#A1A1AA","text-tertiary":"#A1A1AA","text-inverse":"#1A1A1C","border-primary":"#3F3F46","border-secondary":"#52525B",link:"#3B82F6","link-hover":"#60A5FA","accent-subtle":"#1E3A8A",success:"#22C55E",warning:"#EAB308",error:"#EF4444",info:"#38BDF8",disabled:"#52525B",shadow:"rgba(0, 0, 0, 0.4)"};function p(e,r){let{colors:a,spacing:t,typography:n,radius:s,shadows:i}=e,o=[];return Object.entries(r).forEach(([e,r])=>{o.push(` --${e}: ${r};`)}),Object.entries(a).forEach(([e,r])=>{"object"==typeof r&&null!==r&&Object.entries(r).forEach(([r,a])=>{o.push(` --color-${e}-${r}: ${a};`)})}),Object.entries(t).forEach(([e,r])=>{o.push(` --spacing-${e}: ${r};`)}),Object.entries(n).forEach(([e,r])=>{"object"==typeof r?Object.entries(r).forEach(([r,a])=>{o.push(` --typography-${e}-${r}: ${a};`)}):o.push(` --typography-${e}: ${r};`)}),Object.entries(s).forEach(([e,r])=>{o.push(` --radius-${e}: ${r};`)}),Object.entries(i).forEach(([e,r])=>{o.push(` --shadow-${e}: ${r};`)}),o.join("\n")}function d(e,r){return`
2
+ :root {
3
+ ${p(e,b)}
4
+ }
5
+
6
+ .dark {
7
+ ${p(r,m)}
8
+ }
9
+ `.trim()}}}]);
10
+ //# sourceMappingURL=968.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"968.js","sources":["webpack://@kb-labs/agent-entry/../../../studio/ui-core/dist/index.js"],"sourcesContent":["// src/tokens/colors.ts\nvar colors = {\n // Primary brand colors\n primary: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\"\n },\n // Secondary accent colors\n secondary: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\",\n 950: \"#082f49\"\n },\n // Semantic colors\n success: {\n 50: \"#f0fdf4\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\"\n },\n warning: {\n 50: \"#fffbeb\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\"\n },\n error: {\n 50: \"#fef2f2\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\"\n },\n // Neutral grays - updated to KB Labs UI Color Kit\n neutral: {\n 0: \"#ffffff\",\n // Light: Surface/Card\n 50: \"#f9fafb\",\n // Light: Background\n 100: \"#f3f4f6\",\n // Light: Muted Surface\n 200: \"#e5e7eb\",\n // Light: Border\n 300: \"#d4d4d4\",\n // Light: Lighter borders\n 400: \"#9ca3af\",\n // Light: Disabled\n 500: \"#6b7280\",\n // Light: Text Secondary\n 600: \"#525252\",\n // Light: Darker text\n 700: \"#404040\",\n // Dark: Lighter borders\n 800: \"#27272a\",\n // Dark: Muted Surface\n 900: \"#1a1a1c\",\n // Dark: Surface/Card\n 950: \"#0d0d0f\"\n // Dark: Background\n },\n // Muted/subtle colors - updated to KB Labs UI Color Kit\n muted: {\n background: \"#F3F4F6\",\n // Light: Muted Surface\n foreground: \"#6B7280\"\n // Light: Text Secondary\n }\n};\n\n// src/tokens/spacing.ts\nvar spacing = {\n 0: \"0\",\n 1: \"0.25rem\",\n // 4px\n 2: \"0.5rem\",\n // 8px\n 3: \"0.75rem\",\n // 12px\n 4: \"1rem\",\n // 16px\n 5: \"1.25rem\",\n // 20px\n 6: \"1.5rem\",\n // 24px\n 8: \"2rem\",\n // 32px\n 10: \"2.5rem\",\n // 40px\n 12: \"3rem\",\n // 48px\n 16: \"4rem\"\n // 64px\n};\n\n// src/tokens/typography.ts\nvar typography = {\n fontFamily: {\n sans: [\"Inter\", \"system-ui\", \"-apple-system\", \"sans-serif\"],\n mono: [\"Fira Code\", \"Courier New\", \"monospace\"]\n },\n fontSize: {\n xs: [\"0.75rem\", { lineHeight: \"1rem\" }],\n // 12px\n sm: [\"0.875rem\", { lineHeight: \"1.25rem\" }],\n // 14px\n base: [\"1rem\", { lineHeight: \"1.5rem\" }],\n // 16px\n lg: [\"1.125rem\", { lineHeight: \"1.75rem\" }],\n // 18px\n xl: [\"1.25rem\", { lineHeight: \"1.75rem\" }],\n // 20px\n \"2xl\": [\"1.5rem\", { lineHeight: \"2rem\" }],\n // 24px\n \"3xl\": [\"1.875rem\", { lineHeight: \"2.25rem\" }],\n // 30px\n \"4xl\": [\"2.25rem\", { lineHeight: \"2.5rem\" }]\n // 36px\n },\n fontWeight: {\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\"\n }\n};\n\n// src/tokens/radius.ts\nvar radius = {\n none: \"0\",\n sm: \"0.125rem\",\n // 2px\n md: \"0.375rem\",\n // 6px\n lg: \"0.5rem\",\n // 8px\n xl: \"0.75rem\",\n // 12px\n full: \"9999px\"\n};\n\n// src/tokens/shadows.ts\nvar shadows = {\n sm: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n md: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n lg: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)\",\n xl: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)\",\n \"2xl\": \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n none: \"none\"\n};\n\n// src/themes/light.ts\nvar lightTheme = {\n colors,\n spacing,\n typography,\n radius,\n shadows\n};\n\n// src/themes/dark.ts\nvar darkTheme = {\n colors,\n spacing,\n typography,\n radius,\n shadows\n};\n\n// src/themes/semantic-colors.ts\nvar lightSemanticColors = {\n // Backgrounds\n \"bg-primary\": \"#F9FAFB\",\n // Background (почти белый, но не режет глаза)\n \"bg-secondary\": \"#FFFFFF\",\n // Surface / Card (карточки, панели, таблицы)\n \"bg-tertiary\": \"#F3F4F6\",\n // Muted Surface (вторичные блоки, фильтры, сайдбар)\n // Text\n \"text-primary\": \"#111827\",\n // Text Primary (почти чёрный, но мягкий)\n \"text-secondary\": \"#6B7280\",\n // Text Secondary (подписи, вторичный текст)\n \"text-tertiary\": \"#6B7280\",\n // Text Tertiary (вторичный текст)\n \"text-inverse\": \"#FFFFFF\",\n // Text Inverse (белый текст)\n // Borders\n \"border-primary\": \"#E5E7EB\",\n // Border (границы карточек, таблиц)\n \"border-secondary\": \"#D4D4D4\",\n // Border Secondary (более светлые границы)\n // Interactive\n \"link\": \"#2563EB\",\n // Accent Primary (KB Blue — кнопки, ссылки, активные табы)\n \"link-hover\": \"#1E40AF\",\n // Accent Hover (hover на синих элементах)\n \"accent-subtle\": \"#DBEAFE\",\n // Accent Subtle (фон и выделения для активных блоков)\n // Status\n \"success\": \"#16A34A\",\n // Success (успешные статусы, зелёные метрики)\n \"warning\": \"#F59E0B\",\n // Warning (предупреждения)\n \"error\": \"#DC2626\",\n // Error (ошибки)\n \"info\": \"#0EA5E9\",\n // Info (информационные состояния)\n // States\n \"disabled\": \"#9CA3AF\",\n // Disabled (неактивные элементы)\n // Effects\n \"shadow\": \"rgba(0, 0, 0, 0.05)\"\n // Shadow (тени для карточек и кнопок)\n};\nvar darkSemanticColors = {\n // Backgrounds\n \"bg-primary\": \"#0D0D0F\",\n // Background (глубокий, чуть теплее чистого чёрного)\n \"bg-secondary\": \"#1A1A1C\",\n // Surface / Card (карточки и панели)\n \"bg-tertiary\": \"#27272A\",\n // Muted Surface (вторичные зоны, hover-эффекты)\n // Text\n \"text-primary\": \"#F5F5F7\",\n // Text Primary (основной текст)\n \"text-secondary\": \"#A1A1AA\",\n // Text Secondary (вторичный текст)\n \"text-tertiary\": \"#A1A1AA\",\n // Text Tertiary (вторичный текст)\n \"text-inverse\": \"#1A1A1C\",\n // Text Inverse (тёмный текст)\n // Borders\n \"border-primary\": \"#3F3F46\",\n // Border (границы элементов)\n \"border-secondary\": \"#52525B\",\n // Border Secondary (более светлые границы)\n // Interactive\n \"link\": \"#3B82F6\",\n // Accent Primary (KB Blue)\n \"link-hover\": \"#60A5FA\",\n // Accent Hover (hover для кнопок/ссылок)\n \"accent-subtle\": \"#1E3A8A\",\n // Accent Subtle (тонкий фон подсветки)\n // Status\n \"success\": \"#22C55E\",\n // Success (успешные статусы)\n \"warning\": \"#EAB308\",\n // Warning (предупреждения)\n \"error\": \"#EF4444\",\n // Error (ошибки)\n \"info\": \"#38BDF8\",\n // Info (информационные элементы)\n // States\n \"disabled\": \"#52525B\",\n // Disabled (неактивные кнопки)\n // Effects\n \"shadow\": \"rgba(0, 0, 0, 0.4)\"\n // Shadow (глубокие тени для контраста)\n};\n\n// src/utils/css-vars.ts\nfunction generateCSSVars(theme, semanticColors) {\n const { colors: colors2, spacing: spacing2, typography: typography2, radius: radius2, shadows: shadows2 } = theme;\n const cssVars = [];\n Object.entries(semanticColors).forEach(([key, value]) => {\n cssVars.push(` --${key}: ${value};`);\n });\n Object.entries(colors2).forEach(([colorName, colorValue]) => {\n if (typeof colorValue === \"object\" && colorValue !== null) {\n Object.entries(colorValue).forEach(([shade, value]) => {\n cssVars.push(` --color-${colorName}-${shade}: ${value};`);\n });\n }\n });\n Object.entries(spacing2).forEach(([key, value]) => {\n cssVars.push(` --spacing-${key}: ${value};`);\n });\n Object.entries(typography2).forEach(([key, value]) => {\n if (typeof value === \"object\") {\n Object.entries(value).forEach(([prop, val]) => {\n cssVars.push(` --typography-${key}-${prop}: ${val};`);\n });\n } else {\n cssVars.push(` --typography-${key}: ${value};`);\n }\n });\n Object.entries(radius2).forEach(([key, value]) => {\n cssVars.push(` --radius-${key}: ${value};`);\n });\n Object.entries(shadows2).forEach(([key, value]) => {\n cssVars.push(` --shadow-${key}: ${value};`);\n });\n return cssVars.join(\"\\n\");\n}\nfunction generateThemeCSS(lightTheme2, darkTheme2) {\n return `\n:root {\n${generateCSSVars(lightTheme2, lightSemanticColors)}\n}\n\n.dark {\n${generateCSSVars(darkTheme2, darkSemanticColors)}\n}\n`.trim();\n}\n\nexport { colors, darkSemanticColors, darkTheme, generateCSSVars, generateThemeCSS, lightSemanticColors, lightTheme, radius, shadows, spacing, typography };\n//# sourceMappingURL=index.js.map\n//# sourceMappingURL=index.js.map"],"names":["Object"],"mappings":"kVACA,IAAI,EAAS,CAEX,QAAS,CACP,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,EAEA,UAAW,CACT,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,SACP,EAEA,QAAS,CACP,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,SACP,EACA,QAAS,CACP,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,SACP,EACA,MAAO,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,SACP,EAEA,QAAS,CACP,EAAG,UAEH,GAAI,UAEJ,IAAK,UAEL,IAAK,UAEL,IAAK,UAEL,IAAK,UAEL,IAAK,UAEL,IAAK,UAEL,IAAK,UAEL,IAAK,UAEL,IAAK,UAEL,IAAK,SAEP,EAEA,MAAO,CACL,WAAY,UAEZ,WAAY,SAEd,CACF,EAGI,EAAU,CACZ,EAAG,IACH,EAAG,UAEH,EAAG,SAEH,EAAG,UAEH,EAAG,OAEH,EAAG,UAEH,EAAG,SAEH,EAAG,OAEH,GAAI,SAEJ,GAAI,OAEJ,GAAI,MAEN,EAGI,EAAa,CACf,WAAY,CACV,KAAM,CAAC,QAAS,YAAa,gBAAiB,aAAa,CAC3D,KAAM,CAAC,YAAa,cAAe,YAAY,AACjD,EACA,SAAU,CACR,GAAI,CAAC,UAAW,CAAE,WAAY,MAAO,EAAE,CAEvC,GAAI,CAAC,WAAY,CAAE,WAAY,SAAU,EAAE,CAE3C,KAAM,CAAC,OAAQ,CAAE,WAAY,QAAS,EAAE,CAExC,GAAI,CAAC,WAAY,CAAE,WAAY,SAAU,EAAE,CAE3C,GAAI,CAAC,UAAW,CAAE,WAAY,SAAU,EAAE,CAE1C,MAAO,CAAC,SAAU,CAAE,WAAY,MAAO,EAAE,CAEzC,MAAO,CAAC,WAAY,CAAE,WAAY,SAAU,EAAE,CAE9C,MAAO,CAAC,UAAW,CAAE,WAAY,QAAS,EAAE,AAE9C,EACA,WAAY,CACV,OAAQ,MACR,OAAQ,MACR,SAAU,MACV,KAAM,KACR,CACF,EAGI,EAAS,CACX,KAAM,IACN,GAAI,WAEJ,GAAI,WAEJ,GAAI,SAEJ,GAAI,UAEJ,KAAM,QACR,EAGI,EAAU,CACZ,GAAI,kCACJ,GAAI,uEACJ,GAAI,yEACJ,GAAI,0EACJ,MAAO,wCACP,KAAM,MACR,EAGI,EAAa,CACf,SACA,UACA,aACA,SACA,SACF,EAGI,EAAY,CACd,SACA,UACA,aACA,SACA,SACF,EAGI,EAAsB,CAExB,aAAc,UAEd,eAAgB,UAEhB,cAAe,UAGf,eAAgB,UAEhB,iBAAkB,UAElB,gBAAiB,UAEjB,eAAgB,UAGhB,iBAAkB,UAElB,mBAAoB,UAGpB,KAAQ,UAER,aAAc,UAEd,gBAAiB,UAGjB,QAAW,UAEX,QAAW,UAEX,MAAS,UAET,KAAQ,UAGR,SAAY,UAGZ,OAAU,qBAEZ,EACI,EAAqB,CAEvB,aAAc,UAEd,eAAgB,UAEhB,cAAe,UAGf,eAAgB,UAEhB,iBAAkB,UAElB,gBAAiB,UAEjB,eAAgB,UAGhB,iBAAkB,UAElB,mBAAoB,UAGpB,KAAQ,UAER,aAAc,UAEd,gBAAiB,UAGjB,QAAW,UAEX,QAAW,UAEX,MAAS,UAET,KAAQ,UAGR,SAAY,UAGZ,OAAU,oBAEZ,EAGA,SAAS,EAAgB,CAAK,CAAE,CAAc,EAC5C,GAAM,CAAE,OAAQ,CAAO,CAAE,QAAS,CAAQ,CAAE,WAAY,CAAW,CAAE,OAAQ,CAAO,CAAE,QAAS,CAAQ,CAAE,CAAG,EACtG,EAAU,EAAE,CA6BlB,OA5BAA,OAAO,OAAO,CAAC,GAAgB,OAAO,CAAC,CAAC,CAAC,EAAK,EAAM,IAClD,EAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,EAAI,EAAE,EAAE,EAAM,CAAC,CAAC,CACtC,GACAA,OAAO,OAAO,CAAC,GAAS,OAAO,CAAC,CAAC,CAAC,EAAW,EAAW,IAClD,AAAsB,UAAtB,OAAO,GAA2B,AAAe,OAAf,GACpCA,OAAO,OAAO,CAAC,GAAY,OAAO,CAAC,CAAC,CAAC,EAAO,EAAM,IAChD,EAAQ,IAAI,CAAC,CAAC,UAAU,EAAE,EAAU,CAAC,EAAE,EAAM,EAAE,EAAE,EAAM,CAAC,CAAC,CAC3D,EAEJ,GACAA,OAAO,OAAO,CAAC,GAAU,OAAO,CAAC,CAAC,CAAC,EAAK,EAAM,IAC5C,EAAQ,IAAI,CAAC,CAAC,YAAY,EAAE,EAAI,EAAE,EAAE,EAAM,CAAC,CAAC,CAC9C,GACAA,OAAO,OAAO,CAAC,GAAa,OAAO,CAAC,CAAC,CAAC,EAAK,EAAM,IAC3C,AAAiB,UAAjB,OAAO,EACTA,OAAO,OAAO,CAAC,GAAO,OAAO,CAAC,CAAC,CAAC,EAAM,EAAI,IACxC,EAAQ,IAAI,CAAC,CAAC,eAAe,EAAE,EAAI,CAAC,EAAE,EAAK,EAAE,EAAE,EAAI,CAAC,CAAC,CACvD,GAEA,EAAQ,IAAI,CAAC,CAAC,eAAe,EAAE,EAAI,EAAE,EAAE,EAAM,CAAC,CAAC,CAEnD,GACAA,OAAO,OAAO,CAAC,GAAS,OAAO,CAAC,CAAC,CAAC,EAAK,EAAM,IAC3C,EAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,EAAI,EAAE,EAAE,EAAM,CAAC,CAAC,CAC7C,GACAA,OAAO,OAAO,CAAC,GAAU,OAAO,CAAC,CAAC,CAAC,EAAK,EAAM,IAC5C,EAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,EAAI,EAAE,EAAE,EAAM,CAAC,CAAC,CAC7C,GACO,EAAQ,IAAI,CAAC,KACtB,CACA,SAAS,EAAiB,CAAW,CAAE,CAAU,EAC/C,MAAO;AACT;AACA,EAAE,EAAgB,EAAa;AAC/B;;AAEA;AACA,EAAE,EAAgB,EAAY;AAC9B;AACA,CAAC,CAAC,IAAI,EACN,C"}
@@ -0,0 +1,35 @@
1
+ "use strict";(self.webpackChunk_kb_labs_agent_entry=self.webpackChunk_kb_labs_agent_entry||[]).push([["997"],{8389(e,t){let r;t.parse=function(e,t){let r=new l,n=e.length;if(n<2)return r;let a=t?.decode||d,o=0;do{let t=function(e,t,r){let n=e.indexOf("=",t);return n<r?n:-1}(e,o,n);if(-1===t)break;let i=function(e,t,r){let n=e.indexOf(";",t);return -1===n?r:n}(e,o,n);if(t>i){o=e.lastIndexOf(";",t-1)+1;continue}let s=c(e,o,t);void 0===r[s]&&(r[s]=a(c(e,t+1,i))),o=i+1}while(o<n);return r},t.serialize=u,t.serialize=u;let n=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,a=/^[\u0021-\u003A\u003C-\u007E]*$/,o=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,i=/^[\u0020-\u003A\u003D-\u007E]*$/,s=Object.prototype.toString,l=((r=function(){}).prototype=Object.create(null),r);function u(e,t,r){let l="object"==typeof e?e:{...r,name:e,value:String(t)},u=("object"==typeof t?t:r)?.encode||encodeURIComponent;if(!n.test(l.name))throw TypeError(`argument name is invalid: ${l.name}`);let c=l.value?u(l.value):"";if(!a.test(c))throw TypeError(`argument val is invalid: ${l.value}`);let d=l.name+"="+c;if(void 0!==l.maxAge){if(!Number.isInteger(l.maxAge))throw TypeError(`option maxAge is invalid: ${l.maxAge}`);d+="; Max-Age="+l.maxAge}if(l.domain){if(!o.test(l.domain))throw TypeError(`option domain is invalid: ${l.domain}`);d+="; Domain="+l.domain}if(l.path){if(!i.test(l.path))throw TypeError(`option path is invalid: ${l.path}`);d+="; Path="+l.path}if(l.expires){var h;if(h=l.expires,"[object Date]"!==s.call(h)||!Number.isFinite(l.expires.valueOf()))throw TypeError(`option expires is invalid: ${l.expires}`);d+="; Expires="+l.expires.toUTCString()}if(l.httpOnly&&(d+="; HttpOnly"),l.secure&&(d+="; Secure"),l.partitioned&&(d+="; Partitioned"),l.priority)switch("string"==typeof l.priority?l.priority.toLowerCase():void 0){case"low":d+="; Priority=Low";break;case"medium":d+="; Priority=Medium";break;case"high":d+="; Priority=High";break;default:throw TypeError(`option priority is invalid: ${l.priority}`)}if(l.sameSite)switch("string"==typeof l.sameSite?l.sameSite.toLowerCase():l.sameSite){case!0:case"strict":d+="; SameSite=Strict";break;case"lax":d+="; SameSite=Lax";break;case"none":d+="; SameSite=None";break;default:throw TypeError(`option sameSite is invalid: ${l.sameSite}`)}return d}function c(e,t,r){let n=t,a=r;do{let t=e.charCodeAt(n);if(32!==t&&9!==t)break}while(++n<a);for(;a>n;){let t=e.charCodeAt(a-1);if(32!==t&&9!==t)break;a--}return e.slice(n,a)}function d(e){if(-1===e.indexOf("%"))return e;try{return decodeURIComponent(e)}catch(t){return e}}},4981(e){var t={decodeValues:!0,map:!1,silent:!1};function r(e){return"string"!=typeof e||e in{}}function n(){return Object.create(null)}function a(e){return"string"==typeof e&&!!e.trim()}function o(e,o){var i,s,l,u,c=e.split(";").filter(a),d=(i=c.shift(),s="",l="",(u=i.split("=")).length>1?(s=u.shift(),l=u.join("=")):l=i,{name:s,value:l}),h=d.name,f=d.value;if(o=o?Object.assign({},t,o):t,r(h))return null;try{f=o.decodeValues?decodeURIComponent(f):f}catch(e){console.error("set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",e)}var p=n();return p.name=h,p.value=f,c.forEach(function(e){var t=e.split("="),n=t.shift().trimLeft().toLowerCase();if(!r(n)){var a=t.join("=");if("expires"===n)p.expires=new Date(a);else if("max-age"===n){var o=parseInt(a,10);Number.isNaN(o)||(p.maxAge=o)}else"secure"===n?p.secure=!0:"httponly"===n?p.httpOnly=!0:"samesite"===n?p.sameSite=a:"partitioned"===n?p.partitioned=!0:n&&(p[n]=a)}}),p}function i(e,i){if(i=i?Object.assign({},t,i):t,!e)if(!i.map)return[];else return n();if(e.headers)if("function"==typeof e.headers.getSetCookie)e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var s=e.headers[Object.keys(e.headers).find(function(e){return"set-cookie"===e.toLowerCase()})];s||!e.headers.cookie||i.silent||console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=s}if(Array.isArray(e)||(e=[e]),!i.map)return e.filter(a).map(function(e){return o(e,i)}).filter(Boolean);var l=n();return e.filter(a).reduce(function(e,t){var n=o(t,i);return n&&!r(n.name)&&(e[n.name]=n),e},l)}e.exports=i,e.exports.parse=i,e.exports.parseString=o,e.exports.splitCookiesString=function(e){if(Array.isArray(e))return e;if("string"!=typeof e)return[];var t,r,n,a,o,i=[],s=0;function l(){for(;s<e.length&&/\s/.test(e.charAt(s));)s+=1;return s<e.length}for(;s<e.length;){for(t=s,o=!1;l();)if(","===(r=e.charAt(s))){for(n=s,s+=1,l(),a=s;s<e.length&&"="!==(r=e.charAt(s))&&";"!==r&&","!==r;)s+=1;s<e.length&&"="===e.charAt(s)?(o=!0,s=a,i.push(e.substring(t,n)),t=s):s=n+1}else s+=1;(!o||s>=e.length)&&i.push(e.substring(t,e.length))}return i}},8732(e,t,r){r.r(t),r.d(t,{useFetchers:()=>aT,UNSAFE_ServerMode:()=>a6,ScrollRestoration:()=>aR,Route:()=>r$,UNSAFE_RSCDefaultRootErrorBoundary:()=>oW,HydratedRouter:()=>o4,MemoryRouter:()=>rT,UNSAFE_createHashHistory:()=>y,UNSAFE_invariant:()=>g,IDLE_BLOCKER:()=>ex,PrefetchPageLinks:()=>ar,createCookieSessionStorage:()=>oM,UNSAFE_withErrorBoundaryProps:()=>rZ,createMemorySessionStorage:()=>o$,useLoaderData:()=>ru,useLinkClickHandler:()=>ak,useRouteError:()=>rh,UNSAFE_createMemoryHistory:()=>p,replace:()=>er,useHref:()=>tW,useParams:()=>t2,useRoutes:()=>t5,useSubmit:()=>aL,Navigate:()=>rO,UNSAFE_NavigationContext:()=>tF,useAsyncError:()=>rp,isSession:()=>oA,unstable_usePrompt:()=>aF,Links:()=>at,createStaticRouter:()=>aB,useFetcher:()=>aA,UNSAFE_FrameworkContext:()=>n8,useBlocker:()=>ry,data:()=>Q,createHashRouter:()=>af,unstable_routeRSCServerRequest:()=>oV,useMatch:()=>tV,useNavigation:()=>ri,useFormAction:()=>aD,useActionData:()=>rd,href:()=>oN,UNSAFE_hydrationRouteProperties:()=>rC,matchPath:()=>j,BrowserRouter:()=>am,Form:()=>aE,createSearchParams:()=>r2,UNSAFE_LocationContext:()=>tH,Outlet:()=>rM,UNSAFE_WithHydrateFallbackProps:()=>rX,createMemoryRouter:()=>rk,UNSAFE_decodeViaTurboStream:()=>nC,createStaticHandler:()=>aq,IDLE_FETCHER:()=>eS,useOutlet:()=>t1,useViewTransitionState:()=>aH,Link:()=>av,createRoutesStub:()=>aK,NavLink:()=>ab,UNSAFE_DataRouterStateContext:()=>tA,UNSAFE_AwaitContextProvider:()=>tj,UNSAFE_createBrowserHistory:()=>m,createRequestHandler:()=>oS,redirectDocument:()=>et,unstable_RSCStaticRouter:()=>oG,UNSAFE_useFogOFWarDiscovery:()=>n0,isRouteErrorResponse:()=>ea,useNavigationType:()=>tX,Scripts:()=>as,unstable_HistoryRouter:()=>ag,useMatches:()=>rl,StaticRouter:()=>aU,UNSAFE_withComponentProps:()=>rJ,redirect:()=>ee,useOutletContext:()=>t0,createSessionStorage:()=>oT,createRoutesFromElements:()=>rI,UNSAFE_shouldHydrateRouteLoader:()=>nV,UNSAFE_getPatchRoutesOnNavigationFunction:()=>nQ,generatePath:()=>N,UNSAFE_ViewTransitionContext:()=>tM,UNSAFE_ErrorResponseImpl:()=>en,UNSAFE_FetchersContext:()=>t$,createSession:()=>oD,createRoutesFromChildren:()=>rz,UNSAFE_withHydrateFallbackProps:()=>rV,UNSAFE_WithComponentProps:()=>rW,UNSAFE_createClientRoutes:()=>nW,UNSAFE_createRouter:()=>eP,createCookie:()=>a2,HashRouter:()=>ay,UNSAFE_mapRouteProperties:()=>rx,useResolvedPath:()=>t4,RouterContextProvider:()=>k,Router:()=>rN,Routes:()=>rj,StaticRouterProvider:()=>az,UNSAFE_createClientRoutesWithHMRRevalidationOptOut:()=>nI,useRouteLoaderData:()=>rc,UNSAFE_deserializeErrors:()=>oK,Await:()=>rF,UNSAFE_RemixErrorBoundary:()=>al,UNSAFE_DataRouterContext:()=>tD,IDLE_NAVIGATION:()=>eR,NavigationType:()=>d,ServerRouter:()=>aG,UNSAFE_RouteContext:()=>tU,UNSAFE_WithErrorBoundaryProps:()=>rK,parsePath:()=>R,RouterProvider:()=>o0,UNSAFE_SingleFetchRedirectSymbol:()=>nf,unstable_useRoute:()=>rv,UNSAFE_useScrollRestoration:()=>aN,unstable_setDevServerHooks:()=>os,matchRoutes:()=>A,createPath:()=>E,isCookie:()=>a4,resolvePath:()=>I,useInRouterContext:()=>tJ,useNavigate:()=>tZ,Meta:()=>ao,useAsyncValue:()=>rf,useSearchParams:()=>a_,renderMatches:()=>rq,UNSAFE_getTurboStreamSingleFetchDataStrategy:()=>ng,createContext:()=>C,useBeforeUnload:()=>aj,UNSAFE_getHydrationData:()=>oZ,createBrowserRouter:()=>ah,useLocation:()=>tY,useRevalidator:()=>rs});var n,a,o,i,s=r(5259),l=r.n(s),u=e=>{throw TypeError(e)},c=(e,t,r)=>(t.has(e)||u("Cannot read from private field"),r?r.call(e):t.get(e)),d=((n=d||{}).Pop="POP",n.Push="PUSH",n.Replace="REPLACE",n),h="popstate";function f(e){return"object"==typeof e&&null!=e&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function p(e={}){let t,{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map((e,t)=>u(e,"string"==typeof e?null:e.state,0===t?"default":void 0,"string"==typeof e?void 0:e.unstable_mask));let o=l(null==n?t.length-1:n),i="POP",s=null;function l(e){return Math.min(Math.max(e,0),t.length-1)}function u(e,r=null,n,a){let i=b(t?t[o].pathname:"/",e,r,n,a);return w("/"===i.pathname.charAt(0),`relative pathnames are not supported in memory history: ${JSON.stringify(e)}`),i}function c(e){return"string"==typeof e?e:E(e)}return{get index(){return o},get action(){return i},get location(){return t[o]},createHref:c,createURL:e=>new URL(c(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?R(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i="PUSH";let n=f(e)?e:u(e,r);o+=1,t.splice(o,t.length,n),a&&s&&s({action:i,location:n,delta:1})},replace(e,r){i="REPLACE";let n=f(e)?e:u(e,r);t[o]=n,a&&s&&s({action:i,location:n,delta:0})},go(e){i="POP";let r=l(o+e),n=t[r];o=r,s&&s({action:i,location:n,delta:e})},listen:e=>(s=e,()=>{s=null})}}function m(e={}){return S(function(e,t){let r=t.state?.masked,{pathname:n,search:a,hash:o}=r||e.location;return b("",{pathname:n,search:a,hash:o},t.state&&t.state.usr||null,t.state&&t.state.key||"default",r?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)},function(e,t){return"string"==typeof t?t:E(t)},null,e)}function y(e={}){return S(function(e,t){let{pathname:r="/",search:n="",hash:a=""}=R(e.location.hash.substring(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),b("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let r=e.document.querySelector("base"),n="";if(r&&r.getAttribute("href")){let t=e.location.href,r=t.indexOf("#");n=-1===r?t:t.slice(0,r)}return n+"#"+("string"==typeof t?t:E(t))},function(e,t){w("/"===e.pathname.charAt(0),`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)},e)}function g(e,t){if(!1===e||null==e)throw Error(t)}function w(e,t){if(!e){"u">typeof console&&console.warn(t);try{throw Error(t)}catch(e){}}}function v(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.unstable_mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function b(e,t,r=null,n,a){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?R(t):t,state:r,key:t&&t.key||n||Math.random().toString(36).substring(2,10),unstable_mask:a}}function E({pathname:e="/",search:t="",hash:r=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),r&&"#"!==r&&(e+="#"===r.charAt(0)?r:"#"+r),e}function R(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function S(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,s="POP",l=null,u=c();function c(){return(i.state||{idx:null}).idx}function d(){s="POP";let e=c(),t=null==e?null:e-u;u=e,l&&l({action:s,location:p.location,delta:t})}null==u&&(u=0,i.replaceState({...i.state,idx:u},""));let p={get action(){return s},get location(){return e(a,i)},listen(e){if(l)throw Error("A history only accepts one active listener");return a.addEventListener(h,d),l=e,()=>{a.removeEventListener(h,d),l=null}},createHref:e=>t(a,e),createURL:function(e){return x(e)},encodeLocation(e){let t=x(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s="PUSH";let n=f(e)?e:b(p.location,e,t);r&&r(n,e);let d=v(n,u=c()+1),h=p.createHref(n.unstable_mask||n);try{i.pushState(d,"",h)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(h)}o&&l&&l({action:s,location:p.location,delta:1})},replace:function(e,t){s="REPLACE";let n=f(e)?e:b(p.location,e,t);r&&r(n,e);let a=v(n,u=c()),d=p.createHref(n.unstable_mask||n);i.replaceState(a,"",d),o&&l&&l({action:s,location:p.location,delta:0})},go:e=>i.go(e)};return p}function x(e,t=!1){let r="http://localhost";"u">typeof window&&(r="null"!==window.location.origin?window.location.origin:window.location.href),g(r,"No window.location.(origin|href) available to create URL");let n="string"==typeof e?e:E(e);return n=n.replace(/ $/,"%20"),!t&&n.startsWith("//")&&(n=r+n),new URL(n,r)}function C(e){return{defaultValue:e}}var k=class{constructor(e){if(((e,t,r)=>t.has(e)?u("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r))(this,o,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(c(this,o).has(e))return c(this,o).get(e);if(void 0!==e.defaultValue)return e.defaultValue;throw Error("No value found for context")}set(e,t){c(this,o).set(e,t)}};o=new WeakMap;var _=new Set(["lazy","caseSensitive","path","id","index","children"]),P=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function L(e,t,r=[],n={},a=!1){return e.map((e,o)=>{let i=[...r,String(o)],s="string"==typeof e.id?e.id:i.join("-");if(g(!0!==e.index||!e.children,"Cannot specify children on an index route"),g(a||!n[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),!0===e.index){let r={...e,id:s};return n[s]=D(r,t(r)),r}{let r={...e,id:s,children:void 0};return n[s]=D(r,t(r)),e.children&&(r.children=L(e.children,t,i,n,a)),r}})}function D(e,t){return Object.assign(e,{...t,..."object"==typeof t.lazy&&null!=t.lazy?{lazy:{...e.lazy,...t.lazy}}:{}})}function A(e,t,r="/"){return T(e,t,r,!1)}function T(e,t,r,n){let a=U(("string"==typeof t?R(t):t).pathname||"/",r);if(null==a)return null;let o=function e(t,r=[],n=[],a="",o=!1){let i=(t,i,s=o,l)=>{var u,c;let d,h,f={relativePath:void 0===l?t.path||"":l,caseSensitive:!0===t.caseSensitive,childrenIndex:i,route:t};if(f.relativePath.startsWith("/")){if(!f.relativePath.startsWith(a)&&s)return;g(f.relativePath.startsWith(a),`Absolute route path "${f.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),f.relativePath=f.relativePath.slice(a.length)}let p=X([a,f.relativePath]),m=n.concat(f);t.children&&t.children.length>0&&(g(!0!==t.index,`Index routes must not have child routes. Please remove all child routes from route path "${p}".`),e(t.children,r,m,p,s)),(null!=t.path||t.index)&&r.push({path:p,score:(u=p,c=t.index,h=(d=u.split("/")).length,d.some($)&&(h+=-2),c&&(h+=2),d.filter(e=>!$(e)).reduce((e,t)=>e+(M.test(t)?3:""===t?1:10),h)),routesMeta:m})};return t.forEach((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let r of function e(t){let r=t.split("/");if(0===r.length)return[];let[n,...a]=r,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===a.length)return o?[i,""]:[i];let s=e(a.join("/")),l=[];return l.push(...s.map(e=>""===e?i:[i,e].join("/"))),o&&l.push(...s),l.map(e=>t.startsWith("/")&&""===e?"/":e)}(e.path))i(e,t,!0,r);else i(e,t)}),r}(e);o.sort((e,t)=>{var r,n;return e.score!==t.score?t.score-e.score:(r=e.routesMeta.map(e=>e.childrenIndex),n=t.routesMeta.map(e=>e.childrenIndex),r.length===n.length&&r.slice(0,-1).every((e,t)=>e===n[t])?r[r.length-1]-n[n.length-1]:0)});let i=null;for(let e=0;null==i&&e<o.length;++e){let t=H(a);i=function(e,t,r=!1){let{routesMeta:n}=e,a={},o="/",i=[];for(let e=0;e<n.length;++e){let s=n[e],l=e===n.length-1,u="/"===o?t:t.slice(o.length)||"/",c=j({path:s.relativePath,caseSensitive:s.caseSensitive,end:l},u),d=s.route;if(!c&&l&&r&&!n[n.length-1].route.index&&(c=j({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:X([o,c.pathname]),pathnameBase:V(X([o,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(o=X([o,c.pathnameBase]))}return i}(o[e],t,n)}return i}function O(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],loaderData:t[r.id],handle:r.handle}}var M=/^:[\w-]+$/,$=e=>"*"===e;function N(e,t={}){let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(w(!1,`Route path "${r}" will be treated as if it were "${r.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${r.replace(/\*$/,"/*")}".`),r=r.replace(/\*$/,"/*"));let n=r.startsWith("/")?"/":"",a=e=>null==e?"":"string"==typeof e?e:String(e);return n+r.split(/\/+/).map((e,r,n)=>{if(r===n.length-1&&"*"===e)return a(t["*"]);let o=e.match(/^:([\w-]+)(\??)(.*)/);if(o){let[,e,r,n]=o,i=t[e];return g("?"===r||null!=i,`Missing ":${e}" param`),encodeURIComponent(a(i))+n}return e.replace(/\?$/g,"")}).filter(e=>!!e).join("/")}function j(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=F(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:n.reduce((e,{paramName:t,isOptional:r},n)=>{if("*"===t){let e=s[n]||"";i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}let a=s[n];return r&&!a?e[t]=void 0:e[t]=(a||"").replace(/%2F/g,"/"),e},{}),pathname:o,pathnameBase:i,pattern:e}}function F(e,t=!1,r=!0){w("*"===e||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,r,a,o)=>{if(n.push({paramName:t,isOptional:null!=r}),r){let t=o.charAt(a+e.length);return t&&"/"!==t?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(n.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function H(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return w(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function U(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&"/"!==n?null:e.slice(r)||"/"}var z=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function I(e,t="/"){let{pathname:r,search:n="",hash:a=""}="string"==typeof e?R(e):e;return{pathname:r?(r=r.replace(/\/\/+/g,"/")).startsWith("/")?q(r.substring(1),"/"):q(r,t):t,search:G(n),hash:K(a)}}function q(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)}),r.length>1?r.join("/"):"/"}function B(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function W(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function J(e){let t=W(e);return t.map((e,r)=>r===t.length-1?e.pathname:e.pathnameBase)}function Y(e,t,r,n=!1){let a,o;"string"==typeof e?a=R(e):(g(!(a={...e}).pathname||!a.pathname.includes("?"),B("?","pathname","search",a)),g(!a.pathname||!a.pathname.includes("#"),B("#","pathname","hash",a)),g(!a.search||!a.search.includes("#"),B("#","search","hash",a)));let i=""===e||""===a.pathname,s=i?"/":a.pathname;if(null==s)o=r;else{let e=t.length-1;if(!n&&s.startsWith("..")){let t=s.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let l=I(a,o),u=s&&"/"!==s&&s.endsWith("/"),c=(i||"."===s)&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}var X=e=>e.join("/").replace(/\/\/+/g,"/"),V=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),G=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",K=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",Z=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function Q(e,t){return new Z(e,"number"==typeof t?{status:t}:t)}var ee=(e,t=302)=>{let r=t;"number"==typeof r?r={status:r}:void 0===r.status&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,{...r,headers:n})},et=(e,t)=>{let r=ee(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},er=(e,t)=>{let r=ee(e,t);return r.headers.set("X-Remix-Replace","true"),r},en=class{constructor(e,t,r,n=!1){this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function ea(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}function eo(e){return e.map(e=>e.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var ei="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function es(e,t){let r=e;if("string"!=typeof r||!z.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let n=r,a=!1;if(ei)try{let e=new URL(window.location.href),n=new URL(r.startsWith("//")?e.protocol+r:r),o=U(n.pathname,t);n.origin===e.origin&&null!=o?r=o+n.search+n.hash:a=!0}catch(e){w(!1,`<Link to="${r}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:n,isExternal:a,to:r}}var el=Symbol("Uninstrumented");function eu(e,t){let r={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){for(let t of Object.keys(r))e[t]&&r[t].push(e[t])}}));let n={};if("function"==typeof t.lazy&&r.lazy.length>0){let e=ec(r.lazy,t.lazy,()=>void 0);e&&(n.lazy=e)}if("object"==typeof t.lazy){let e=t.lazy;["middleware","loader","action"].forEach(t=>{let a=e[t],o=r[`lazy.${t}`];if("function"==typeof a&&o.length>0){let e=ec(o,a,()=>void 0);e&&(n.lazy=Object.assign(n.lazy||{},{[t]:e}))}})}return["loader","action"].forEach(e=>{let a=t[e];if("function"==typeof a&&r[e].length>0){let t=a[el]??a,o=ec(r[e],t,(...e)=>eh(e[0]));o&&("loader"===e&&!0===t.hydrate&&(o.hydrate=!0),o[el]=t,n[e]=o)}}),t.middleware&&t.middleware.length>0&&r.middleware.length>0&&(n.middleware=t.middleware.map(e=>{let t=e[el]??e,n=ec(r.middleware,t,(...e)=>eh(e[0]));return n?(n[el]=t,n):e})),n}function ec(e,t,r){return 0===e.length?null:async(...n)=>{let a=await ed(e,r(...n),()=>t(...n),e.length-1);if("error"===a.type)throw a.value;return a.value}}async function ed(e,t,r,n){let a,o=e[n];if(o){let i,s=async()=>(i?console.error("You cannot call instrumented handlers more than once"):i=ed(e,t,r,n-1),g(a=await i,"Expected a result"),"error"===a.type&&a.value instanceof Error)?{status:"error",error:a.value}:{status:"success",error:void 0};try{await o(s,t)}catch(e){console.error("An instrumentation function threw an error:",e)}i||await s(),await i}else try{let e=await r();a={type:"success",value:e}}catch(e){a={type:"error",value:e}}return a||{type:"error",value:Error("No result assigned in instrumentation chain.")}}function eh(e){let{request:t,context:r,params:n,unstable_pattern:a}=e;return{request:ep(t),params:{...n},unstable_pattern:a,context:em(r)}}function ef(e,t){return{currentUrl:E(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function ep(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function em(e){if(!function(e){if(null===e||"object"!=typeof e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||null===t||Object.getOwnPropertyNames(t).sort().join("\0")===ey}(e))return{get:t=>e.get(t)};{let t={...e};return Object.freeze(t),t}}var ey=Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),eg=["POST","PUT","PATCH","DELETE"],ew=new Set(eg),ev=new Set(["GET",...eg]),eb=new Set([301,302,303,307,308]),eE=new Set([307,308]),eR={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eS={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ex={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},eC=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),ek="remix-router-transitions",e_=Symbol("ResetLoaderData");function eP(e){let t,r,n,a,o,i,s=e.window?e.window:"u">typeof window?window:void 0,l=void 0!==s&&void 0!==s.document&&void 0!==s.document.createElement;g(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let u=e.hydrationRouteProperties||[],c=e.mapRouteProperties||eC,d=c;if(e.unstable_instrumentations){let t=e.unstable_instrumentations;d=e=>({...c(e),...eu(t.map(e=>e.route).filter(Boolean),e)})}let h={},f=L(e.routes,d,void 0,h),p=e.basename||"/";p.startsWith("/")||(p=`/${p}`);let m=e.dataStrategy||eJ,y={unstable_passThroughRequests:!1,...e.future},v=null,S=new Set,C=null,_=null,P=null,D=null!=e.hydrationData,M=A(f,e.history.location,p),$=!1,N=null;if(null!=M||e.patchRoutesOnNavigation)if(M&&!e.hydrationData&&eG(M,f,e.history.location.pathname).active&&(M=null),M)if(M.some(e=>e.route.lazy))r=!1,n=!0;else if(M.some(e=>eN(e.route))){let t=e.hydrationData?e.hydrationData.loaderData:null,a=e.hydrationData?e.hydrationData.errors:null,o=M;if(a){let e=M.findIndex(e=>void 0!==a[e.route.id]);o=o.slice(0,e+1)}n=!1,r=!0,o.forEach(e=>{let o=ej(e.route,t,a);n=n||o.renderFallback,r=r&&!o.shouldLoad})}else r=!0,n=!1;else{r=!1,n=!0,M=[];let t=eG(null,f,e.history.location.pathname);t.active&&t.matches&&($=!0,M=t.matches)}else{let t=ts(404,{pathname:e.history.location.pathname}),{matches:a,route:o}=ti(f);r=!0,n=!1,M=a,N={[o.id]:t}}let j={historyAction:e.history.action,location:e.history.location,matches:M,initialized:r,renderFallback:n,navigation:eR,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||N,fetchers:new Map,blockers:new Map},F="POP",H=null,I=!1,q=!1,B=new Map,W=null,J=!1,Y=!1,X=new Set,V=new Map,G=0,K=-1,Z=new Map,Q=new Set,ee=new Map,et=new Map,er=new Set,en=new Map,eo=null;function ei(e,t={}){e.matches&&(e.matches=e.matches.map(e=>{let t=h[e.route.id],r=e.route;return r.element!==t.element||r.errorElement!==t.errorElement||r.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e}));let r=[],n=[];(j={...j,...e}).fetchers.forEach((e,t)=>{"idle"===e.state&&(er.has(t)?r.push(t):n.push(t))}),er.forEach(e=>{j.fetchers.has(e)||V.has(e)||r.push(e)}),[...S].forEach(n=>n(j,{deletedFetchers:r,newErrors:e.errors??null,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),r.forEach(e=>eT(e)),n.forEach(e=>j.fetchers.delete(e))}function es(r,n,{flushSync:a}={}){let o,i,s=null!=j.actionData&&null!=j.navigation.formMethod&&tR(j.navigation.formMethod)&&"loading"===j.navigation.state&&r.state?._isRedirect!==!0;o=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:s?j.actionData:null;let l=n.loaderData?tn(j.loaderData,n.loaderData,n.matches||[],n.errors):j.loaderData,u=j.blockers;u.size>0&&(u=new Map(u)).forEach((e,t)=>u.set(t,ex));let c=!J&&eV(r,n.matches||j.matches),d=!0===I||null!=j.navigation.formMethod&&tR(j.navigation.formMethod)&&r.state?._isRedirect!==!0;if(t&&(f=t,t=void 0),J||"POP"===F||("PUSH"===F?e.history.push(r,r.state):"REPLACE"===F&&e.history.replace(r,r.state)),"POP"===F){let e=B.get(j.location.pathname);e&&e.has(r.pathname)?i={currentLocation:j.location,nextLocation:r}:B.has(r.pathname)&&(i={currentLocation:r,nextLocation:j.location})}else if(q){let e=B.get(j.location.pathname);e?e.add(r.pathname):(e=new Set([r.pathname]),B.set(j.location.pathname,e)),i={currentLocation:j.location,nextLocation:r}}ei({...n,actionData:o,loaderData:l,historyAction:F,location:r,initialized:!0,renderFallback:!1,navigation:eR,revalidation:"idle",restoreScrollPosition:c,preventScrollReset:d,blockers:u},{viewTransitionOpts:i,flushSync:!0===a}),F="POP",I=!1,q=!1,J=!1,Y=!1,H?.resolve(),H=null,eo?.resolve(),eo=null}async function ed(t,r){let n;if(H?.resolve(),H=null,"number"==typeof t){H||(H=tL());let r=H.promise;return e.history.go(t),r}let{path:a,submission:o,error:i}=eM(!1,eO(j.location,j.matches,p,t,r?.fromRouteId,r?.relative),r);r?.unstable_mask&&(n={pathname:"",search:"",hash:"",..."string"==typeof r.unstable_mask?R(r.unstable_mask):{...j.location.unstable_mask,...r.unstable_mask}});let s=j.location,l=b(s,a,r&&r.state,void 0,n);l={...l,...e.history.encodeLocation(l)};let u=r&&null!=r.replace?r.replace:void 0,c="PUSH";!0===u?c="REPLACE":!1===u||null!=o&&tR(o.formMethod)&&o.formAction===j.location.pathname+j.location.search&&(c="REPLACE");let d=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,h=!0===(r&&r.flushSync),f=eW({currentLocation:s,nextLocation:l,historyAction:c});f?eB(f,{state:"blocked",location:l,proceed(){eB(f,{state:"proceeding",proceed:void 0,reset:void 0,location:l}),ed(t,r)},reset(){let e=new Map(j.blockers);e.set(f,ex),ei({blockers:e})}}):await eh(c,l,{submission:o,pendingError:i,preventScrollReset:d,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:h,callSiteDefaultShouldRevalidate:r&&r.unstable_defaultShouldRevalidate})}async function eh(r,n,a){var i,s,l,u;let c;o&&o.abort(),o=null,F=r,J=!0===(a&&a.startUninterruptedRevalidation),i=j.location,s=j.matches,C&&P&&(C[eX(i,s)]=P()),I=!0===(a&&a.preventScrollReset),q=!0===(a&&a.enableViewTransition);let d=t||f,h=a&&a.overrideNavigation,m=a?.initialHydration&&j.matches&&j.matches.length>0&&!$?j.matches:A(d,n,p),y=!0===(a&&a.flushSync);if(m&&j.initialized&&!Y&&(l=j.location,u=n,l.pathname===u.pathname&&l.search===u.search&&(""===l.hash?""!==u.hash:l.hash===u.hash||""!==u.hash||!1))&&!(a&&a.submission&&tR(a.submission.formMethod)))return void es(n,{matches:m},{flushSync:y});let g=eG(m,d,n.pathname);if(g.active&&g.matches&&(m=g.matches),!m){let{error:e,notFoundMatches:t,route:r}=eY(n.pathname);es(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:y});return}o=new AbortController;let w=e9(e.history,n,o.signal,a&&a.submission),v=e.getContext?await e.getContext():new k;if(a&&a.pendingError)c=[to(m).route.id,{type:"error",error:a.pendingError}];else if(a&&a.submission&&tR(a.submission.formMethod)){let t=await ep(w,n,a.submission,m,v,g.active,a&&!0===a.initialHydration,{replace:a.replace,flushSync:y});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,r]=t.pendingActionResult;if(tm(r)&&ea(r.error)&&404===r.error.status){o=null,es(n,{matches:t.matches,loaderData:{},errors:{[e]:r.error}});return}}m=t.matches||m,c=t.pendingActionResult,h=tk(n,a.submission),y=!1,g.active=!1,w=e9(e.history,w.url,w.signal)}let{shortCircuited:b,matches:E,loaderData:R,errors:S}=await em(w,n,m,v,g.active,h,a&&a.submission,a&&a.fetcherSubmission,a&&a.replace,a&&!0===a.initialHydration,y,c,a&&a.callSiteDefaultShouldRevalidate);b||(o=null,es(n,{matches:E||m,...ta(c),loaderData:R,errors:S}))}async function ep(t,r,n,a,o,i,s,l={}){var c;let m;if(eP(),ei({navigation:{state:"submitting",location:r,formMethod:(c=n).formMethod,formAction:c.formAction,formEncType:c.formEncType,formData:c.formData,json:c.json,text:c.text}},{flushSync:!0===l.flushSync}),i){let e=await eK(a,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){if(0===e.partialMatches.length){let{matches:t,route:r}=ti(f);return{matches:t,pendingActionResult:[r.id,{type:"error",error:e.error}]}}let t=to(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:"error",error:e.error}]}}if(e.matches)a=e.matches;else{let{notFoundMatches:e,error:t,route:n}=eY(r.pathname);return{matches:e,pendingActionResult:[n.id,{type:"error",error:t}]}}}let y=tx(a,r);if(y.route.action||y.route.lazy){let e=eQ(d,h,t,r,a,y,s?[]:u,o),n=await eb(t,r,e,o,null);if(!(m=n[y.route.id])){for(let e of a)if(n[e.route.id]){m=n[e.route.id];break}}if(t.signal.aborted)return{shortCircuited:!0}}else m={type:"error",error:ts(405,{method:t.method,pathname:r.pathname,routeId:y.route.id})};if(ty(m)){let r;return r=l&&null!=l.replace?l.replace:e8(m.response.headers.get("Location"),new URL(t.url),p,e.history)===j.location.pathname+j.location.search,await ev(t,m,!0,{submission:n,replace:r}),{shortCircuited:!0}}if(tm(m)){let e=to(a,y.route.id);return!0!==(l&&l.replace)&&(F="PUSH"),{matches:a,pendingActionResult:[e.route.id,m,y.route.id]}}return{matches:a,pendingActionResult:[y.route.id,m]}}async function em(r,n,a,i,s,l,c,m,y,g,w,v,b){let E=l||tk(n,c),R=c||m||tC(E),S=!J&&!g;if(s){if(S){let e=ey(v);ei({navigation:E,...void 0!==e?{actionData:e}:{}},{flushSync:w})}let e=await eK(a,n.pathname,r.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){if(0===e.partialMatches.length){let{matches:t,route:r}=ti(f);return{matches:t,loaderData:{},errors:{[r.id]:e.error}}}let t=to(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)a=e.matches;else{let{error:e,notFoundMatches:t,route:r}=eY(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let x=t||f,{dsMatches:C,revalidatingFetchers:k}=e$(r,i,d,h,e.history,j,a,R,n,g?[]:u,!0===g,Y,X,er,ee,Q,x,p,null!=e.patchRoutesOnNavigation,v,b);if(K=++G,!e.dataStrategy&&!C.some(e=>e.shouldLoad)&&!C.some(e=>e.route.middleware&&e.route.middleware.length>0)&&0===k.length){let e=ez();return es(n,{matches:a,loaderData:{},errors:v&&tm(v[1])?{[v[0]]:v[1].error}:null,...ta(v),...e?{fetchers:new Map(j.fetchers)}:{}},{flushSync:w}),{shortCircuited:!0}}if(S){let e={};if(!s){e.navigation=E;let t=ey(v);void 0!==t&&(e.actionData=t)}k.length>0&&(k.forEach(e=>{let t=j.fetchers.get(e.key),r=t_(void 0,t?t.data:void 0);j.fetchers.set(e.key,r)}),e.fetchers=new Map(j.fetchers)),ei(e,{flushSync:w})}k.forEach(e=>{eF(e.key),e.controller&&V.set(e.key,e.controller)});let _=()=>k.forEach(e=>eF(e.key));o&&o.signal.addEventListener("abort",_);let{loaderResults:P,fetcherResults:L}=await e_(C,k,r,n,i);if(r.signal.aborted)return{shortCircuited:!0};o&&o.signal.removeEventListener("abort",_),k.forEach(e=>V.delete(e.key));let D=tl(P);if(D)return await ev(r,D.result,!0,{replace:y}),{shortCircuited:!0};if(D=tl(L))return Q.add(D.key),await ev(r,D.result,!0,{replace:y}),{shortCircuited:!0};let{loaderData:A,errors:T}=tr(j,a,P,v,k,L);g&&j.errors&&(T={...j.errors,...T});let O=ez(),M=eI(K);return{matches:a,loaderData:A,errors:T,...O||M||k.length>0?{fetchers:new Map(j.fetchers)}:{}}}function ey(e){if(e&&!tm(e[1]))return{[e[0]]:e[1].data};if(j.actionData)if(0===Object.keys(j.actionData).length)return null;else return j.actionData}async function eg(r,n,a,i,s,l,c,m,y,w){var v,b;eP(),ee.delete(r);let E=j.fetchers.get(r);eL(r,(v=y,b=E,{state:"submitting",formMethod:v.formMethod,formAction:v.formAction,formEncType:v.formEncType,formData:v.formData,json:v.json,text:v.text,data:b?b.data:void 0}),{flushSync:c});let R=new AbortController,S=e9(e.history,a,R.signal,y);if(l){let e=await eK(i,new URL(S.url).pathname,S.signal,r);if("aborted"===e.type)return;if("error"===e.type)return void eD(r,n,e.error,{flushSync:c});if(!e.matches)return void eD(r,n,ts(404,{pathname:a}),{flushSync:c});i=e.matches}let x=tx(i,a);if(!x.route.action&&!x.route.lazy){let e=ts(405,{method:y.formMethod,pathname:a,routeId:n});eD(r,n,e,{flushSync:c});return}V.set(r,R);let C=G,k=eQ(d,h,S,a,i,x,u,s),_=await eb(S,a,k,s,r),P=_[x.route.id];if(!P){for(let e of k)if(_[e.route.id]){P=_[e.route.id];break}}if(S.signal.aborted){V.get(r)===R&&V.delete(r);return}if(er.has(r)){if(ty(P)||tm(P))return void eL(r,tP(void 0))}else{if(ty(P))return(V.delete(r),K>C)?void eL(r,tP(void 0)):(Q.add(r),eL(r,t_(y)),ev(S,P,!1,{fetcherSubmission:y,preventScrollReset:m}));if(tm(P))return void eD(r,n,P.error)}let L=j.navigation.location||j.location,D=e9(e.history,L,R.signal),T=t||f,O="idle"!==j.navigation.state?A(T,j.navigation.location,p):j.matches;g(O,"Didn't find any matches after fetcher action");let M=++G;Z.set(r,M);let $=t_(y,P.data);j.fetchers.set(r,$);let{dsMatches:N,revalidatingFetchers:H}=e$(D,s,d,h,e.history,j,O,y,L,u,!1,Y,X,er,ee,Q,T,p,null!=e.patchRoutesOnNavigation,[x.route.id,P],w);H.filter(e=>e.key!==r).forEach(e=>{let t=e.key,r=j.fetchers.get(t),n=t_(void 0,r?r.data:void 0);j.fetchers.set(t,n),eF(t),e.controller&&V.set(t,e.controller)}),ei({fetchers:new Map(j.fetchers)});let U=()=>H.forEach(e=>eF(e.key));R.signal.addEventListener("abort",U);let{loaderResults:z,fetcherResults:I}=await e_(N,H,D,L,s);if(R.signal.aborted)return;if(R.signal.removeEventListener("abort",U),Z.delete(r),V.delete(r),H.forEach(e=>V.delete(e.key)),j.fetchers.has(r)){let e=tP(P.data);j.fetchers.set(r,e)}let q=tl(z);if(q)return ev(D,q.result,!1,{preventScrollReset:m});if(q=tl(I))return Q.add(q.key),ev(D,q.result,!1,{preventScrollReset:m});let{loaderData:B,errors:W}=tr(j,O,z,void 0,H,I);eI(M),"loading"===j.navigation.state&&M>K?(g(F,"Expected pending action"),o&&o.abort(),es(j.navigation.location,{matches:O,loaderData:B,errors:W,fetchers:new Map(j.fetchers)})):(ei({errors:W,loaderData:tn(j.loaderData,B,O,W),fetchers:new Map(j.fetchers)}),Y=!1)}async function ew(t,r,n,a,o,i,s,l,c){let f=j.fetchers.get(t);eL(t,t_(c,f?f.data:void 0),{flushSync:s});let p=new AbortController,m=e9(e.history,n,p.signal);if(i){let e=await eK(a,new URL(m.url).pathname,m.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void eD(t,r,e.error,{flushSync:s});if(!e.matches)return void eD(t,r,ts(404,{pathname:n}),{flushSync:s});a=e.matches}let y=tx(a,n);V.set(t,p);let g=G,w=eQ(d,h,m,n,a,y,u,o),v=(await eb(m,n,w,o,t))[y.route.id];if(V.get(t)===p&&V.delete(t),!m.signal.aborted){if(er.has(t))return void eL(t,tP(void 0));if(ty(v))if(K>g)return void eL(t,tP(void 0));else{Q.add(t),await ev(m,v,!1,{preventScrollReset:l});return}if(tm(v))return void eD(t,r,v.error);eL(t,tP(v.data))}}async function ev(t,r,n,{submission:a,fetcherSubmission:i,preventScrollReset:u,replace:c}={}){n||(H?.resolve(),H=null),r.response.headers.has("X-Remix-Revalidate")&&(Y=!0);let d=r.response.headers.get("Location");g(d,"Expected a Location header on the redirect Response"),d=e8(d,new URL(t.url),p,e.history);let h=b(j.location,d,{_isRedirect:!0});if(l){let e=!1;if(r.response.headers.has("X-Remix-Reload-Document"))e=!0;else{let t;if(t=d,z.test(t)){let t=x(d,!0);e=t.origin!==s.location.origin||null==U(t.pathname,p)}}if(e)return void(c?s.location.replace(d):s.location.assign(d))}o=null;let f=!0===c||r.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:m,formAction:y,formEncType:w}=j.navigation;!a&&!i&&m&&y&&w&&(a=tC(j.navigation));let v=a||i;if(eE.has(r.response.status)&&v&&tR(v.formMethod))await eh(f,h,{submission:{...v,formAction:d},preventScrollReset:u||I,enableViewTransition:n?q:void 0});else{let e=tk(h,a);await eh(f,h,{overrideNavigation:e,fetcherSubmission:i,preventScrollReset:u||I,enableViewTransition:n?q:void 0})}}async function eb(e,t,r,n,a){let o,i={};try{o=await e0(m,e,t,r,a,n,!1)}catch(e){return r.filter(e=>e.shouldLoad).forEach(t=>{i[t.route.id]={type:"error",error:e}}),i}if(e.signal.aborted)return i;if(!tR(e.method))for(let e of r){if(o[e.route.id]?.type==="error")break;!o.hasOwnProperty(e.route.id)&&!j.loaderData.hasOwnProperty(e.route.id)&&(!j.errors||!j.errors.hasOwnProperty(e.route.id))&&e.shouldCallHandler()&&(o[e.route.id]={type:"error",result:Error(`No result returned from dataStrategy for route ${e.route.id}`)})}for(let[t,n]of Object.entries(o))if(tp(n)){let a=n.result;i[t]={type:"redirect",response:e5(a,e,t,r,p)}}else i[t]=await e4(n);return i}async function e_(e,t,r,n,a){let o=eb(r,n,e,a,null),i=Promise.all(t.map(async e=>{if(!e.matches||!e.match||!e.request||!e.controller)return Promise.resolve({[e.key]:{type:"error",error:ts(404,{pathname:e.path})}});{let t=(await eb(e.request,e.path,e.matches,a,e.key))[e.match.route.id];return{[e.key]:t}}}));return{loaderResults:await o,fetcherResults:(await i).reduce((e,t)=>Object.assign(e,t),{})}}function eP(){Y=!0,ee.forEach((e,t)=>{V.has(t)&&X.add(t),eF(t)})}function eL(e,t,r={}){j.fetchers.set(e,t),ei({fetchers:new Map(j.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function eD(e,t,r,n={}){let a=to(j.matches,t);eT(e),ei({errors:{[a.route.id]:r},fetchers:new Map(j.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function eA(e){return et.set(e,(et.get(e)||0)+1),er.has(e)&&er.delete(e),j.fetchers.get(e)||eS}function eT(e){let t=j.fetchers.get(e);V.has(e)&&!(t&&"loading"===t.state&&Z.has(e))&&eF(e),ee.delete(e),Z.delete(e),Q.delete(e),er.delete(e),X.delete(e),j.fetchers.delete(e)}function eF(e,t){let r=V.get(e);r&&(r.abort(t),V.delete(e))}function eU(e){for(let t of e){let e=tP(eA(t).data);j.fetchers.set(t,e)}}function ez(){let e=[],t=!1;for(let r of Q){let n=j.fetchers.get(r);g(n,`Expected fetcher: ${r}`),"loading"===n.state&&(Q.delete(r),e.push(r),t=!0)}return eU(e),t}function eI(e){let t=[];for(let[r,n]of Z)if(n<e){let e=j.fetchers.get(r);g(e,`Expected fetcher: ${r}`),"loading"===e.state&&(eF(r),Z.delete(r),t.push(r))}return eU(t),t.length>0}function eq(e){j.blockers.delete(e),en.delete(e)}function eB(e,t){let r=j.blockers.get(e)||ex;g("unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state,`Invalid blocker state transition: ${r.state} -> ${t.state}`);let n=new Map(j.blockers);n.set(e,t),ei({blockers:n})}function eW({currentLocation:e,nextLocation:t,historyAction:r}){if(0===en.size)return;en.size>1&&w(!1,"A router only supports one blocker at a time");let n=Array.from(en.entries()),[a,o]=n[n.length-1],i=j.blockers.get(a);if((!i||"proceeding"!==i.state)&&o({currentLocation:e,nextLocation:t,historyAction:r}))return a}function eY(e){let r=ts(404,{pathname:e}),{matches:n,route:a}=ti(t||f);return{notFoundMatches:n,route:a,error:r}}function eX(e,t){return _&&_(e,t.map(e=>O(e,j.loaderData)))||e.key}function eV(e,t){if(C){let r=C[eX(e,t)];if("number"==typeof r)return r}return null}function eG(t,r,n){if(e.patchRoutesOnNavigation){if(!t)return{active:!0,matches:T(r,n,p,!0)||[]};else if(Object.keys(t[0].params).length>0)return{active:!0,matches:T(r,n,p,!0)}}return{active:!1,matches:null}}async function eK(r,n,a,o){if(!e.patchRoutesOnNavigation)return{type:"success",matches:r};let i=r;for(;;){let r=null==t,s=t||f,l=h;try{await e.patchRoutesOnNavigation({signal:a,path:n,matches:i,fetcherKey:o,patch:(e,t)=>{a.aborted||eH(e,t,s,l,d,!1)}})}catch(e){return{type:"error",error:e,partialMatches:i}}finally{r&&!a.aborted&&(f=[...f])}if(a.aborted)return{type:"aborted"};let u=A(s,n,p),c=null;if(u){if(0===Object.keys(u[0].params).length)return{type:"success",matches:u};else if(!((c=T(s,n,p,!0))&&i.length<c.length&&eZ(i,c.slice(0,i.length))))return{type:"success",matches:u}}if(c||(c=T(s,n,p,!0)),!c||eZ(i,c))return{type:"success",matches:null};i=c}}function eZ(e,t){return e.length===t.length&&e.every((e,r)=>e.route.id===t[r].route.id)}return a={get basename(){return p},get future(){return y},get state(){return j},get routes(){return f},get window(){return s},initialize:function(){if(v=e.history.listen(({action:t,location:r,delta:n})=>{if(i){i(),i=void 0;return}w(0===en.size||null!=n,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let a=eW({currentLocation:j.location,nextLocation:r,historyAction:t});if(a&&null!=n){let t=new Promise(e=>{i=e});e.history.go(-1*n),eB(a,{state:"blocked",location:r,proceed(){eB(a,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),t.then(()=>e.history.go(n))},reset(){let e=new Map(j.blockers);e.set(a,ex),ei({blockers:e})}}),H?.resolve(),H=null;return}return eh(t,r)}),l){var t=s,r=B;try{let e=t.sessionStorage.getItem(ek);if(e){let t=JSON.parse(e);for(let[e,n]of Object.entries(t||{}))n&&Array.isArray(n)&&r.set(e,new Set(n||[]))}}catch(e){}let e=()=>(function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ek,JSON.stringify(r))}catch(e){w(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}})(s,B);s.addEventListener("pagehide",e),W=()=>s.removeEventListener("pagehide",e)}return j.initialized||eh("POP",j.location,{initialHydration:!0}),a},subscribe:function(e){return S.add(e),()=>S.delete(e)},enableScrollRestoration:function(e,t,r){if(C=e,P=t,_=r||null,!D&&j.navigation===eR){D=!0;let e=eV(j.location,j.matches);null!=e&&ei({restoreScrollPosition:e})}return()=>{C=null,P=null,_=null}},navigate:ed,fetch:async function r(r,n,a,o){eF(r);let i=!0===(o&&o.flushSync),s=t||f,l=eO(j.location,j.matches,p,a,n,o?.relative),u=A(s,l,p),c=eG(u,s,l);if(c.active&&c.matches&&(u=c.matches),!u)return void eD(r,n,ts(404,{pathname:l}),{flushSync:i});let{path:d,submission:h,error:m}=eM(!0,l,o);if(m)return void eD(r,n,m,{flushSync:i});let y=e.getContext?await e.getContext():new k,g=!0===(o&&o.preventScrollReset);h&&tR(h.formMethod)?await eg(r,n,d,u,y,c.active,i,g,h,o&&o.unstable_defaultShouldRevalidate):(ee.set(r,{routeId:n,path:d}),await ew(r,n,d,u,y,c.active,i,g,h))},revalidate:function(){eo||(eo=tL()),eP(),ei({revalidation:"loading"});let e=eo.promise;return"submitting"===j.navigation.state||("idle"===j.navigation.state?eh(j.historyAction,j.location,{startUninterruptedRevalidation:!0}):eh(F||j.historyAction,j.navigation.location,{overrideNavigation:j.navigation,enableViewTransition:!0===q})),e},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:eA,resetFetcher:function(e,t){eF(e,t?.reason),eL(e,tP(null))},deleteFetcher:function(e){let t=(et.get(e)||0)-1;t<=0?(et.delete(e),er.add(e)):et.set(e,t),ei({fetchers:new Map(j.fetchers)})},dispose:function(){v&&v(),W&&W(),S.clear(),o&&o.abort(),j.fetchers.forEach((e,t)=>eT(t)),j.blockers.forEach((e,t)=>eq(t))},getBlocker:function(e,t){let r=j.blockers.get(e)||ex;return en.get(e)!==t&&en.set(e,t),r},deleteBlocker:eq,patchRoutes:function(e,r,n=!1){let a=null==t;eH(e,r,t||f,h,d,n),a&&(f=[...f],ei({}))},_internalFetchControllers:V,_internalSetRoutes:function(e){t=L(e,d,void 0,h={})},_internalSetStateDoNotUseOrYouWillBreakYourApp(e){ei(e)}},e.unstable_instrumentations&&(a=function(e,t){let r={navigate:[],fetch:[]};if(t.forEach(e=>e({instrument(e){for(let t of Object.keys(e))e[t]&&r[t].push(e[t])}})),r.navigate.length>0){let t=e.navigate[el]??e.navigate,n=ec(r.navigate,t,(...t)=>{let[r,n]=t;return{to:"number"==typeof r||"string"==typeof r?r:r?E(r):".",...ef(e,n??{})}});n&&(n[el]=t,e.navigate=n)}if(r.fetch.length>0){let t=e.fetch[el]??e.fetch,n=ec(r.fetch,t,(...t)=>{let[r,,n,a]=t;return{href:n??".",fetcherKey:r,...ef(e,a??{})}});n&&(n[el]=t,e.fetch=n)}return e}(a,e.unstable_instrumentations.map(e=>e.router).filter(Boolean))),a}function eL(e,t){g(e.length>0,"You must provide a non-empty routes array to createStaticHandler");let r={},n=(t?t.basename:null)||"/",a=t?.mapRouteProperties||eC,o=a;if({...t?.future},t?.unstable_instrumentations){let e=t.unstable_instrumentations;o=t=>({...a(t),...eu(e.map(e=>e.route).filter(Boolean),t)})}let i=L(e,o,void 0,r);async function s(e,{requestContext:t,filterMatchesToLoad:a,skipLoaderErrorBubbling:l,skipRevalidation:c,dataStrategy:d,generateMiddlewareResponse:h,unstable_normalizePath:f}={}){let p=e.method,m=b("",(f||eT)(e),null,"default"),y=A(i,m,n);if(t=null!=t?t:new k,tE(p)||"HEAD"===p){if(!y){let e=ts(404,{pathname:m.pathname}),{matches:t,route:r}=ti(i),a={basename:n,location:m,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}};return h?h(()=>Promise.resolve(a)):a}}else{let e=ts(405,{method:p}),{matches:t,route:r}=ti(i),a={basename:n,location:m,matches:t,loaderData:{},actionData:null,errors:{[r.id]:e},statusCode:e.status,loaderHeaders:{},actionHeaders:{}};return h?h(()=>Promise.resolve(a)):a}if(h){g(t instanceof k,"When using middleware in `staticHandler.query()`, any provided `requestContext` must be an instance of `RouterContextProvider`");try{let s;await eB(y,r,o);let f=await eY({request:e,unstable_url:e6(e,m),unstable_pattern:eo(y),matches:y,params:y[0].params,context:t},async()=>await h(async(e,r={})=>{let o=await u(e,m,y,t,d||null,!0===l,null,"filterMatchesToLoad"in r?r.filterMatchesToLoad??null:a??null,!0===c);return tw(o)?o:s={location:m,basename:n,...o}}),async(e,t)=>{if(tb(e))return e;if(tw(e))try{e=new en(e.status,e.statusText,await e2(e))}catch(t){e=t}if(tg(e)&&(e=td(e)),s){t in s.loaderData&&(s.loaderData[t]=void 0);let r=eD(i,s,e,l?t:to(y,t).route.id);return h(()=>Promise.resolve(r))}{let r=l?t:to(y,y.find(e=>e.route.id===t||e.route.loader)?.route.id||t).route.id,a={matches:y,location:m,basename:n,loaderData:{},actionData:null,errors:{[r]:e},statusCode:ea(e)?e.status:500,actionHeaders:{},loaderHeaders:{}};return h(()=>Promise.resolve(a))}});return g(tw(f),"Expected a response in query()"),f}catch(e){if(tw(e))return e;throw e}}let w=await u(e,m,y,t,d||null,!0===l,null,a||null,!0===c);return tw(w)?w:{location:m,basename:n,...w}}async function l(e,{routeId:t,requestContext:a,dataStrategy:s,generateMiddlewareResponse:c,unstable_normalizePath:d}={}){let h=e.method,f=b("",(d||eT)(e),null,"default"),p=A(i,f,n);if(a=null!=a?a:new k,tE(h)||"HEAD"===h||"OPTIONS"===h){if(!p)throw ts(404,{pathname:f.pathname})}else throw ts(405,{method:h});let m=t?p.find(e=>e.route.id===t):tx(p,f);if(t&&!m)throw ts(403,{pathname:f.pathname,routeId:t});if(!m)throw ts(404,{pathname:f.pathname});if(c)return g(a instanceof k,"When using middleware in `staticHandler.queryRoute()`, any provided `requestContext` must be an instance of `RouterContextProvider`"),await eB(p,r,o),await eY({request:e,unstable_url:e6(e,f),unstable_pattern:eo(p),matches:p,params:p[0].params,context:a},async()=>await c(async e=>{let t=y(await u(e,f,p,a,s||null,!1,m,null,!1));return tw(t)?t:"string"==typeof t?new Response(t):Response.json(t)}),e=>{if(tg(e))return Promise.resolve(tc(e));if(tw(e))return Promise.resolve(e);throw e});return y(await u(e,f,p,a,s||null,!1,m,null,!1));function y(e){if(tw(e))return e;let t=e.errors?Object.values(e.errors)[0]:void 0;if(void 0!==t)throw t;return e.actionData?Object.values(e.actionData)[0]:e.loaderData?Object.values(e.loaderData)[0]:void 0}}async function u(e,t,r,n,a,o,i,s,l){g(e.signal,"query()/queryRoute() requests must contain an AbortController signal");try{if(tR(e.method))return await c(e,t,r,i||tx(r,t),n,a,o,null!=i,s,l);let u=await d(e,t,r,n,a,o,i,s);return tw(u)?u:{...u,actionData:null,actionHeaders:{}}}catch(e){if(tf(e)&&tw(e.result)){if("error"===e.type)throw e.result;return e.result}if(tb(e))return e;throw e}}async function c(e,t,n,a,i,s,l,u,c,f){let p;if(a.route.action||a.route.lazy){let l=eQ(o,r,e,t,n,a,[],i);p=(await h(e,t,l,u,i,s))[a.route.id],e.signal.aborted&&eA(e,u)}else{let t=ts(405,{method:e.method,pathname:new URL(e.url).pathname,routeId:a.route.id});if(u)throw t;p={type:"error",error:t}}if(ty(p))throw new Response(null,{status:p.response.status,headers:{Location:p.response.headers.get("Location")}});if(u){if(tm(p))throw p.error;return{matches:[a],loaderData:{},actionData:{[a.route.id]:p.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{}}}if(f)if(!tm(p))return{actionData:{[a.route.id]:p.data},actionHeaders:p.headers?{[a.route.id]:p.headers}:{},matches:n,loaderData:{},errors:null,statusCode:p.statusCode||200,loaderHeaders:{}};else{let e=l?a:to(n,a.route.id);return{statusCode:ea(p.error)?p.error.status:null!=p.statusCode?p.statusCode:500,actionData:null,actionHeaders:{...p.headers?{[a.route.id]:p.headers}:{}},matches:n,loaderData:{},errors:{[e.route.id]:p.error},loaderHeaders:{}}}let m=new Request(e.url,{headers:e.headers,redirect:e.redirect,signal:e.signal});if(tm(p)){let e=l?a:to(n,a.route.id);return{...await d(m,t,n,i,s,l,null,c,[e.route.id,p]),statusCode:ea(p.error)?p.error.status:null!=p.statusCode?p.statusCode:500,actionData:null,actionHeaders:{...p.headers?{[a.route.id]:p.headers}:{}}}}return{...await d(m,t,n,i,s,l,null,c),actionData:{[a.route.id]:p.data},...p.statusCode?{statusCode:p.statusCode}:{},actionHeaders:p.headers?{[a.route.id]:p.headers}:{}}}async function d(e,t,n,a,i,s,l,u,c){let d,f=null!=l;if(f&&!l?.route.loader&&!l?.route.lazy)throw ts(400,{method:e.method,pathname:new URL(e.url).pathname,routeId:l?.route.id});if(l)d=eQ(o,r,e,t,n,l,[],a);else{let i=c&&tm(c[1])?n.findIndex(e=>e.route.id===c[0])-1:void 0,s=eo(n);d=n.map((n,l)=>null!=i&&l>i?eZ(o,r,e,t,s,n,[],a,!1):eZ(o,r,e,t,s,n,[],a,null!=(n.route.loader||n.route.lazy)&&(!u||u(n))))}if(!i&&!d.some(e=>e.shouldLoad))return{matches:n,loaderData:{},errors:c&&tm(c[1])?{[c[0]]:c[1].error}:null,statusCode:200,loaderHeaders:{}};let p=await h(e,t,d,f,a,i);return e.signal.aborted&&eA(e,f),{...tt(n,p,c,!0,s),matches:n}}async function h(e,t,r,a,o,i){let s=await e0(i||eW,e,t,r,null,o,!0),l={};return await Promise.all(r.map(async t=>{if(!(t.route.id in s))return;let o=s[t.route.id];if(tp(o))throw e5(o.result,e,t.route.id,r,n);if(a){if(tw(o.result))throw o;else if(tg(o.result))throw tc(o.result)}l[t.route.id]=await e4(o)})),l}return{dataRoutes:i,query:s,queryRoute:l}}function eD(e,t,r,n){let a=n||t._deepestRenderedBoundaryId||e[0].id;return{...t,statusCode:ea(r)?r.status:500,errors:{[a]:r}}}function eA(e,t){if(void 0!==e.signal.reason)throw e.signal.reason;throw Error(`${t?"queryRoute":"query"}() call aborted without an \`AbortSignal.reason\`: ${e.method} ${e.url}`)}function eT(e){let t=new URL(e.url);return{pathname:t.pathname,search:t.search,hash:t.hash}}function eO(e,t,r,n,a,o){let i,s;if(a){for(let e of(i=[],t))if(i.push(e),e.route.id===a){s=e;break}}else i=t,s=t[t.length-1];let l=Y(n||".",J(i),U(e.pathname,r)||e.pathname,"path"===o);if(null==n&&(l.search=e.search,l.hash=e.hash),(null==n||""===n||"."===n)&&s){let e=tS(l.search);if(s.route.index&&!e)l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index";else if(!s.route.index&&e){let e=new URLSearchParams(l.search),t=e.getAll("index");e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();l.search=r?`?${r}`:""}}return"/"!==r&&(l.pathname=function({basename:e,pathname:t}){return"/"===t?e:X([e,t])}({basename:r,pathname:l.pathname})),E(l)}function eM(e,t,r){let n,a;if(!r||!(null!=r&&("formData"in r&&null!=r.formData||"body"in r&&void 0!==r.body)))return{path:t};if(r.formMethod&&!tE(r.formMethod))return{path:t,error:ts(405,{method:r.formMethod})};let o=()=>({path:t,error:ts(400,{type:"invalid-body"})}),i=(r.formMethod||"get").toUpperCase(),s=tu(t);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!tR(i))return o();let e="string"==typeof r.body?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((e,[t,r])=>`${e}${t}=${r}
2
+ `,""):String(r.body);return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}else if("application/json"===r.formEncType){if(!tR(i))return o();try{let e="string"==typeof r.body?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:i,formAction:s,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return o()}}}if(g("function"==typeof FormData,"FormData is not available in this environment"),r.formData)n=e7(r.formData),a=r.formData;else if(r.body instanceof FormData)n=e7(r.body),a=r.body;else if(r.body instanceof URLSearchParams)a=te(n=r.body);else if(null==r.body)n=new URLSearchParams,a=new FormData;else try{n=new URLSearchParams(r.body),a=te(n)}catch(e){return o()}let l={formMethod:i,formAction:s,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:a,json:void 0,text:void 0};if(tR(l.formMethod))return{path:t,submission:l};let u=R(t);return e&&u.search&&tS(u.search)&&n.append("index",""),u.search=`?${n}`,{path:E(u),submission:l}}function e$(e,t,r,n,a,o,i,s,l,u,c,d,h,f,p,m,y,g,w,v,b){let E,R=v?tm(v[1])?v[1].error:v[1].data:void 0,S=a.createURL(o.location),x=a.createURL(l);if(c&&o.errors){let e=Object.keys(o.errors)[0];E=i.findIndex(t=>t.route.id===e)}else if(v&&tm(v[1])){let e=v[0];E=i.findIndex(t=>t.route.id===e)-1}let C=v?v[1].statusCode:void 0,k=C&&C>=400,_={currentUrl:S,currentParams:o.matches[0]?.params||{},nextUrl:x,nextParams:i[0].params,...s,actionResult:R,actionStatus:C},P=eo(i),L=i.map((a,i)=>{var s,h,f,p,m;let y,{route:g}=a,w=null;if(null!=E&&i>E)w=!1;else if(g.lazy)w=!0;else if(eN(g))if(c){let{shouldLoad:e}=ej(g,o.loaderData,o.errors);w=e}else{let e,t;s=o.loaderData,h=o.matches[i],f=a,e=!h||f.route.id!==h.route.id,t=!s.hasOwnProperty(f.route.id),(e||t)&&(w=!0)}else w=!1;if(null!==w)return eZ(r,n,e,l,P,a,u,t,w);let v=!1;"boolean"==typeof b?v=b:k?v=!1:d||S.pathname+S.search===x.pathname+x.search||S.search!==x.search?v=!0:(p=o.matches[i],m=a,y=p.route.path,(p.pathname!==m.pathname||null!=y&&y.endsWith("*")&&p.params["*"]!==m.params["*"])&&(v=!0));let R={..._,defaultShouldRevalidate:v},C=eF(a,R);return eZ(r,n,e,l,P,a,u,t,C,R,b)}),D=[];return p.forEach((e,s)=>{if(c||!i.some(t=>t.route.id===e.routeId)||f.has(s))return;let l=o.fetchers.get(s),p=l&&"idle"!==l.state&&void 0===l.data,v=A(y,e.path,g);if(!v){if(w&&p)return;D.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(m.has(s))return;let E=tx(v,e.path),R=new AbortController,S=e9(a,e.path,R.signal),x=null;if(h.has(s))h.delete(s),x=eQ(r,n,S,e.path,v,E,u,t);else if(p)d&&(x=eQ(r,n,S,e.path,v,E,u,t));else{let a={..._,defaultShouldRevalidate:"boolean"==typeof b?b:!k&&d};eF(E,a)&&(x=eQ(r,n,S,e.path,v,E,u,t,a))}x&&D.push({key:s,routeId:e.routeId,path:e.path,matches:x,match:E,request:S,controller:R})}),{dsMatches:L,revalidatingFetchers:D}}function eN(e){return null!=e.loader||null!=e.middleware&&e.middleware.length>0}function ej(e,t,r){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!eN(e))return{shouldLoad:!1,renderFallback:!1};let n=null!=t&&e.id in t,a=null!=r&&void 0!==r[e.id];if(!n&&a)return{shouldLoad:!1,renderFallback:!1};if("function"==typeof e.loader&&!0===e.loader.hydrate)return{shouldLoad:!0,renderFallback:!n};let o=!n&&!a;return{shouldLoad:o,renderFallback:o}}function eF(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}function eH(e,t,r,n,a,o){let i;if(e){let t=n[e];g(t,`No route found to patch children into: routeId = ${e}`),t.children||(t.children=[]),i=t.children}else i=r;let s=[],l=[];if(t.forEach(e=>{let t=i.find(t=>(function e(t,r){return"id"in t&&"id"in r&&t.id===r.id||t.index===r.index&&t.path===r.path&&t.caseSensitive===r.caseSensitive&&((!t.children||0===t.children.length)&&(!r.children||0===r.children.length)||(t.children?.every((t,n)=>r.children?.some(r=>e(t,r)))??!1))})(e,t));t?l.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=L(s,a,[e||"_","patch",String(i?.length||"0")],n);i.push(...t)}if(o&&l.length>0)for(let e=0;e<l.length;e++){let{existingRoute:t,newRoute:r}=l[e],[n]=L([r],a,[],{},!0);Object.assign(t,{element:n.element?n.element:t.element,errorElement:n.errorElement?n.errorElement:t.errorElement,hydrateFallbackElement:n.hydrateFallbackElement?n.hydrateFallbackElement:t.hydrateFallbackElement})}}var eU=new WeakMap,ez=({key:e,route:t,manifest:r,mapRouteProperties:n})=>{let a=r[t.id];if(g(a,"No route found in manifest"),!a.lazy||"object"!=typeof a.lazy)return;let o=a.lazy[e];if(!o)return;let i=eU.get(a);i||(i={},eU.set(a,i));let s=i[e];if(s)return s;let l=(async()=>{let t=_.has(e),r=void 0!==a[e]&&"hasErrorBoundary"!==e;if(t)w(!t,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(r)w(!1,`Route "${a.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await o();null!=t&&(Object.assign(a,{[e]:t}),Object.assign(a,n(a)))}"object"==typeof a.lazy&&(a.lazy[e]=void 0,Object.values(a.lazy).every(e=>void 0===e)&&(a.lazy=void 0))})();return i[e]=l,l},eI=new WeakMap;function eq(e){return void 0!==e}function eB(e,t,r){let n=e.map(({route:e})=>{if("object"==typeof e.lazy&&e.lazy.middleware)return ez({key:"middleware",route:e,manifest:t,mapRouteProperties:r})}).filter(eq);return n.length>0?Promise.all(n):void 0}async function eW(e){let t=e.matches.filter(e=>e.shouldLoad),r={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,n)=>{r[t[n].route.id]=e}),r}async function eJ(e){return e.matches.some(e=>e.route.middleware)?eX(e,()=>eW(e)):eW(e)}function eY(e,t,r){return eV(e,t,function(e){return tg(e)?tc(e):e},tw,r)}function eX(e,t){return eV(e,t,e=>{if(tb(e))throw e;return e},th,function(t,r,n){if(n)return Promise.resolve(Object.assign(n.value,{[r]:{type:"error",result:t}}));{let{matches:n}=e,a=Math.min(Math.max(n.findIndex(e=>e.route.id===r),0),Math.max(n.findIndex(e=>e.shouldCallHandler()),0));return Promise.resolve({[to(n,n[a].route.id).route.id]:{type:"error",result:t}})}})}async function eV(e,t,r,n,a){let{matches:o,...i}=e,s=o.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]);return await eG(i,s,t,r,n,a)}async function eG(e,t,r,n,a,o,i=0){let s,{request:l}=e;if(l.signal.aborted)throw l.signal.reason??Error(`Request aborted: ${l.method} ${l.url}`);let u=t[i];if(!u)return await r();let[c,d]=u,h=async()=>{if(s)throw Error("You may only call `next()` once per middleware");try{return(s={value:await eG(e,t,r,n,a,o,i+1)}).value}catch(e){return(s={value:await o(e,c,s)}).value}};try{let t=await d(e,h),r=null!=t?n(t):void 0;if(a(r))return r;if(s)return r??s.value;return(s={value:await h()}).value}catch(e){return await o(e,c,s)}}function eK(e,t,r,n,a){let o=ez({key:"middleware",route:n.route,manifest:t,mapRouteProperties:e}),i=function(e,t,r,n,a){let o,i=r[e.id];if(g(i,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if("function"==typeof e.lazy){let t=eI.get(i);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let r=(async()=>{g("function"==typeof e.lazy,"No lazy route function found");let t=await e.lazy(),r={};for(let e in t){let n=t[e];if(void 0===n)continue;let a=P.has(e),o=void 0!==i[e]&&"hasErrorBoundary"!==e;a?w(!a,"Route property "+e+" is not a supported property to be returned from a lazy route function. This property will be ignored."):o?w(!o,`Route "${i.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):r[e]=n}Object.assign(i,r),Object.assign(i,{...n(i),lazy:void 0})})();return eI.set(i,r),r.catch(()=>{}),{lazyRoutePromise:r,lazyHandlerPromise:r}}let s=Object.keys(e.lazy),l=[];for(let i of s){if(a&&a.includes(i))continue;let s=ez({key:i,route:e,manifest:r,mapRouteProperties:n});s&&(l.push(s),i===t&&(o=s))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u?.catch(()=>{}),o?.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:o}}(n.route,tR(r.method)?"action":"loader",t,e,a);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function eZ(e,t,r,n,a,o,i,s,l,u=null,c){let d=!1,h=eK(e,t,r,o,i);return{...o,_lazyPromises:h,shouldLoad:l,shouldRevalidateArgs:u,shouldCallHandler:e=>(d=!0,u)?"boolean"==typeof c?eF(o,{...u,defaultShouldRevalidate:c}):"boolean"==typeof e?eF(o,{...u,defaultShouldRevalidate:e}):eF(o,u):l,resolve(e){let{lazy:t,loader:i,middleware:u}=o.route,c=d||l||e&&!tR(r.method)&&(t||i),f=u&&u.length>0&&!i&&!t;return c&&(tR(r.method)||!f)?e1({request:r,path:n,unstable_pattern:a,match:o,lazyHandlerPromise:h?.handler,lazyRoutePromise:h?.route,handlerOverride:e,scopedContext:s}):Promise.resolve({type:"data",result:void 0})}}}function eQ(e,t,r,n,a,o,i,s,l=null){return a.map(u=>u.route.id!==o.route.id?{...u,shouldLoad:!1,shouldRevalidateArgs:l,shouldCallHandler:()=>!1,_lazyPromises:eK(e,t,r,u,i),resolve:()=>Promise.resolve({type:"data",result:void 0})}:eZ(e,t,r,n,eo(a),u,i,s,!0,l))}async function e0(e,t,r,n,a,o,i){n.some(e=>e._lazyPromises?.middleware)&&await Promise.all(n.map(e=>e._lazyPromises?.middleware));let s={request:t,unstable_url:e6(t,r),unstable_pattern:eo(n),params:n[0].params,context:o,matches:n},l=i?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>eX(s,()=>e({...s,fetcherKey:a,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}})),u=await e({...s,fetcherKey:a,runClientMiddleware:l});try{await Promise.all(n.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch(e){}return u}async function e1({request:e,path:t,unstable_pattern:r,match:n,lazyHandlerPromise:a,lazyRoutePromise:o,handlerOverride:i,scopedContext:s}){let l,u,c=tR(e.method),d=c?"action":"loader",h=a=>{let o,l=new Promise((e,t)=>o=t);u=()=>o(),e.signal.addEventListener("abort",u);let c=o=>"function"!=typeof a?Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${d}" [routeId: ${n.route.id}]`)):a({request:e,unstable_url:e6(e,t),unstable_pattern:r,params:n.params,context:s},...void 0!==o?[o]:[]);return Promise.race([(async()=>{try{let e=await (i?i(e=>c(e)):c());return{type:"data",result:e}}catch(e){return{type:"error",result:e}}})(),l])};try{let t=c?n.route.action:n.route.loader;if(a||o)if(t){let e,[r]=await Promise.all([h(t).catch(t=>{e=t}),a,o]);if(void 0!==e)throw e;l=r}else{await a;let t=c?n.route.action:n.route.loader;if(t)[l]=await Promise.all([h(t),o]);else{if("action"!==d)return{type:"data",result:void 0};let t=new URL(e.url),r=t.pathname+t.search;throw ts(405,{method:e.method,pathname:r,routeId:n.route.id})}}else if(t)l=await h(t);else{let t=new URL(e.url),r=t.pathname+t.search;throw ts(404,{pathname:r})}}catch(e){return{type:"error",result:e}}finally{u&&e.signal.removeEventListener("abort",u)}return l}async function e2(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?null==e.body?null:e.json():e.text()}async function e4(e){let{result:t,type:r}=e;if(tw(t)){let e;try{e=await e2(t)}catch(e){return{type:"error",error:e}}return"error"===r?{type:"error",error:new en(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:"data",data:e,statusCode:t.status,headers:t.headers}}if("error"===r)return tg(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:td(t),statusCode:ea(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:ea(t)?t.status:void 0};return tg(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function e5(e,t,r,n,a){let o,i=e.headers.get("Location");if(g(i,"Redirects returned/thrown from loaders/actions must have a Location header"),o=i,!z.test(o)){let o=n.slice(0,n.findIndex(e=>e.route.id===r)+1);i=eO(new URL(t.url),o,a,i),e.headers.set("Location",i)}return e}var e3=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function e8(e,t,r,n){if(z.test(e)){let n=new URL(e.startsWith("//")?t.protocol+e:e);if(e3.includes(n.protocol))throw Error("Invalid redirect location");let a=null!=U(n.pathname,r);if(n.origin===t.origin&&a)return n.pathname+n.search+n.hash}try{let t=n.createURL(e);if(e3.includes(t.protocol))throw Error("Invalid redirect location")}catch(e){}return e}function e9(e,t,r,n){let a=e.createURL(tu(t)).toString(),o={signal:r};if(n&&tR(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(n.json)):"text/plain"===t?o.body=n.text:"application/x-www-form-urlencoded"===t&&n.formData?o.body=e7(n.formData):o.body=n.formData}return new Request(a,o)}function e6(e,t){let r=new URL(e.url),n="string"==typeof t?R(t):t;if(r.pathname=n.pathname||"/",n.search){let e=new URLSearchParams(n.search),t=e.getAll("index");for(let r of(e.delete("index"),t.filter(Boolean)))e.append("index",r);r.search=e.size?`?${e.toString()}`:""}else r.search="";return r.hash=n.hash||"",r}function e7(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function te(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function tt(e,t,r,n=!1,a=!1){let o,i={},s=null,l=!1,u={},c=r&&tm(r[1])?r[1].error:void 0;return e.forEach(r=>{if(!(r.route.id in t))return;let d=r.route.id,h=t[d];if(g(!ty(h),"Cannot handle redirect results in processLoaderData"),tm(h)){let t=h.error;if(void 0!==c&&(t=c,c=void 0),s=s||{},a)s[d]=t;else{let r=to(e,d);null==s[r.route.id]&&(s[r.route.id]=t)}n||(i[d]=e_),l||(l=!0,o=ea(h.error)?h.error.status:500),h.headers&&(u[d]=h.headers)}else i[d]=h.data,h.statusCode&&200!==h.statusCode&&!l&&(o=h.statusCode),h.headers&&(u[d]=h.headers)}),void 0!==c&&r&&(s={[r[0]]:c},r[2]&&(i[r[2]]=void 0)),{loaderData:i,errors:s,statusCode:o||200,loaderHeaders:u}}function tr(e,t,r,n,a,o){let{loaderData:i,errors:s}=tt(t,r,n);return a.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:r,match:n,controller:a}=t;if(a&&a.signal.aborted)return;let i=o[r];if(g(i,"Did not find corresponding fetcher result"),tm(i)){let t=to(e.matches,n?.route.id);s&&s[t.route.id]||(s={...s,[t.route.id]:i.error}),e.fetchers.delete(r)}else if(ty(i))g(!1,"Unhandled fetcher revalidation redirect");else{let t=tP(i.data);e.fetchers.set(r,t)}}),{loaderData:i,errors:s}}function tn(e,t,r,n){let a=Object.entries(t).filter(([,e])=>e!==e_).reduce((e,[t,r])=>(e[t]=r,e),{});for(let o of r){let r=o.route.id;if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function ta(e){return e?tm(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function to(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>!0===e.route.hasErrorBoundary)||e[0]}function ti(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||"/"===e.path)||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ts(e,{pathname:t,routeId:r,method:n,type:a,message:o}={}){let i="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(i="Bad Request",n&&t&&r?s=`You made a ${n} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:"invalid-body"===a&&(s="Unable to encode submission body")):403===e?(i="Forbidden",s=`Route "${r}" does not match URL "${t}"`):404===e?(i="Not Found",s=`No route matches URL "${t}"`):405===e&&(i="Method Not Allowed",n&&t&&r?s=`You made a ${n.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:n&&(s=`Invalid request method "${n.toUpperCase()}"`)),new en(e||500,i,Error(s),!0)}function tl(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(ty(n))return{key:r,result:n}}}function tu(e){return E({..."string"==typeof e?R(e):e,hash:""})}function tc(e){return Response.json(e.data,e.init??void 0)}function td(e){return new en(e.init?.status??500,e.init?.statusText??"Internal Server Error",e.data)}function th(e){return null!=e&&"object"==typeof e&&Object.entries(e).every(([e,t])=>"string"==typeof e&&tf(t))}function tf(e){return null!=e&&"object"==typeof e&&"type"in e&&"result"in e&&("data"===e.type||"error"===e.type)}function tp(e){return tw(e.result)&&eb.has(e.result.status)}function tm(e){return"error"===e.type}function ty(e){return"redirect"===(e&&e.type)}function tg(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function tw(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function tv(e){return eb.has(e)}function tb(e){return tw(e)&&tv(e.status)&&e.headers.has("Location")}function tE(e){return ev.has(e.toUpperCase())}function tR(e){return ew.has(e.toUpperCase())}function tS(e){return new URLSearchParams(e).getAll("index").some(e=>""===e)}function tx(e,t){let r="string"==typeof t?R(t).search:t.search;if(e[e.length-1].route.index&&tS(r||""))return e[e.length-1];let n=W(e);return n[n.length-1]}function tC(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n){if(null!=a)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};else if(null!=o)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};else if(void 0!==i)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function tk(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function t_(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function tP(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function tL(){let e,t,r=new Promise((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}});return{promise:r,resolve:e,reject:t}}var tD=s.createContext(null);tD.displayName="DataRouter";var tA=s.createContext(null);tA.displayName="DataRouterState";var tT=s.createContext(!1);function tO(){return s.useContext(tT)}var tM=s.createContext({isTransitioning:!1});tM.displayName="ViewTransition";var t$=s.createContext(new Map);t$.displayName="Fetchers";var tN=s.createContext(null);tN.displayName="Await";var tj=e=>s.createElement(tN.Provider,e),tF=s.createContext(null);tF.displayName="Navigation";var tH=s.createContext(null);tH.displayName="Location";var tU=s.createContext({outlet:null,matches:[],isDataRoute:!1});tU.displayName="Route";var tz=s.createContext(null);tz.displayName="RouteError";var tI="REACT_ROUTER_ERROR";function tq(e){if(e.startsWith(`${tI}:REDIRECT:{`))try{let t=JSON.parse(e.slice(28));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText&&"string"==typeof t.location&&"boolean"==typeof t.reloadDocument&&"boolean"==typeof t.replace)return t}catch{}}function tB(e){if(e.startsWith(`${tI}:ROUTE_ERROR_RESPONSE:{`))try{let t=JSON.parse(e.slice(40));if("object"==typeof t&&t&&"number"==typeof t.status&&"string"==typeof t.statusText)return new en(t.status,t.statusText,t.data)}catch{}}function tW(e,{relative:t}={}){g(tJ(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=s.useContext(tF),{hash:a,pathname:o,search:i}=t4(e,{relative:t}),l=o;return"/"!==r&&(l="/"===o?r:X([r,o])),n.createHref({pathname:l,search:i,hash:a})}function tJ(){return null!=s.useContext(tH)}function tY(){return g(tJ(),"useLocation() may be used only in the context of a <Router> component."),s.useContext(tH).location}function tX(){return s.useContext(tH).navigationType}function tV(e){g(tJ(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:t}=tY();return s.useMemo(()=>j(e,H(t)),[t,e])}var tG="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function tK(e){s.useContext(tF).static||s.useLayoutEffect(e)}function tZ(){let{isDataRoute:e}=s.useContext(tU);return e?function(){let{router:e}=rn("useNavigate"),t=ro("useNavigate"),r=s.useRef(!1);return tK(()=>{r.current=!0}),s.useCallback(async(n,a={})=>{w(r.current,tG),r.current&&("number"==typeof n?await e.navigate(n):await e.navigate(n,{fromRouteId:t,...a}))},[e,t])}():function(){g(tJ(),"useNavigate() may be used only in the context of a <Router> component.");let e=s.useContext(tD),{basename:t,navigator:r}=s.useContext(tF),{matches:n}=s.useContext(tU),{pathname:a}=tY(),o=JSON.stringify(J(n)),i=s.useRef(!1);return tK(()=>{i.current=!0}),s.useCallback((n,s={})=>{if(w(i.current,tG),!i.current)return;if("number"==typeof n)return void r.go(n);let l=Y(n,JSON.parse(o),a,"path"===s.relative);null==e&&"/"!==t&&(l.pathname="/"===l.pathname?t:X([t,l.pathname])),(s.replace?r.replace:r.push)(l,s.state,s)},[t,r,o,a,e])}()}var tQ=s.createContext(null);function t0(){return s.useContext(tQ)}function t1(e){let t=s.useContext(tU).outlet;return s.useMemo(()=>t&&s.createElement(tQ.Provider,{value:e},t),[t,e])}function t2(){let{matches:e}=s.useContext(tU),t=e[e.length-1];return t?t.params:{}}function t4(e,{relative:t}={}){let{matches:r}=s.useContext(tU),{pathname:n}=tY(),a=JSON.stringify(J(r));return s.useMemo(()=>Y(e,JSON.parse(a),n,"path"===t),[e,a,n,t])}function t5(e,t){return t3(e,t)}function t3(e,t,r){let n;g(tJ(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=s.useContext(tF),{matches:o}=s.useContext(tU),i=o[o.length-1],l=i?i.params:{},u=i?i.pathname:"/",c=i?i.pathnameBase:"/",d=i&&i.route;{let e=d&&d.path||"";rw(u,!d||e.endsWith("*")||e.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
3
+
4
+ Please change the parent <Route path="${e}"> to <Route path="${"/"===e?"*":`${e}/*`}">.`)}let h=tY();if(t){let e="string"==typeof t?R(t):t;g("/"===c||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),n=e}else n=h;let f=n.pathname||"/",p=f;if("/"!==c){let e=c.replace(/^\//,"").split("/");p="/"+f.replace(/^\//,"").split("/").slice(e.length).join("/")}let m=A(e,{pathname:p});w(d||null!=m,`No routes matched location "${n.pathname}${n.search}${n.hash}" `),w(null==m||void 0!==m[m.length-1].route.element||void 0!==m[m.length-1].route.Component||void 0!==m[m.length-1].route.lazy,`Matched leaf route at location "${n.pathname}${n.search}${n.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let y=rt(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},l,e.params),pathname:X([c,a.encodeLocation?a.encodeLocation(e.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?c:X([c,a.encodeLocation?a.encodeLocation(e.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),o,r);return t&&y?s.createElement(tH.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...n},navigationType:"POP"}},y):y}var t8=s.createElement(function(){let e=rh(),t=ea(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"2px 4px",backgroundColor:n},o=null;return console.error("Error handled by React Router default ErrorBoundary:",e),o=s.createElement(s.Fragment,null,s.createElement("p",null,"\uD83D\uDCBF Hey developer \uD83D\uDC4B"),s.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",s.createElement("code",{style:a},"ErrorBoundary")," or"," ",s.createElement("code",{style:a},"errorElement")," prop on your route.")),s.createElement(s.Fragment,null,s.createElement("h2",null,"Unexpected Application Error!"),s.createElement("h3",{style:{fontStyle:"italic"}},t),r?s.createElement("pre",{style:{padding:"0.5rem",backgroundColor:n}},r):null,o)},null),t9=class extends s.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&"object"==typeof e&&e&&"digest"in e&&"string"==typeof e.digest){let t=tB(e.digest);t&&(e=t)}let t=void 0!==e?s.createElement(tU.Provider,{value:this.props.routeContext},s.createElement(tz.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?s.createElement(t7,{error:e},t):t}};t9.contextType=tT;var t6=new WeakMap;function t7({children:e,error:t}){let{basename:r}=s.useContext(tF);if("object"==typeof t&&t&&"digest"in t&&"string"==typeof t.digest){let e=tq(t.digest);if(e){let n=t6.get(t);if(n)throw n;let a=es(e.location,r);if(ei&&!t6.get(t))if(a.isExternal||e.reloadDocument)window.location.href=a.absoluteURL||a.to;else{let r=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw t6.set(t,r),r}return s.createElement("meta",{httpEquiv:"refresh",content:`0;url=${a.absoluteURL||a.to}`})}}return e}function re({routeContext:e,match:t,children:r}){let n=s.useContext(tD);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),s.createElement(tU.Provider,{value:e},r)}function rt(e,t=[],r){let n=r?.state;if(null==e){if(!n)return null;if(n.errors)e=n.matches;else{if(0!==t.length||n.initialized||!(n.matches.length>0))return null;e=n.matches}}let a=e,o=n?.errors;if(null!=o){let e=a.findIndex(e=>e.route.id&&o?.[e.route.id]!==void 0);g(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),a=a.slice(0,Math.min(a.length,e+1))}let i=!1,l=-1;if(r&&n){i=n.renderFallback;for(let e=0;e<a.length;e++){let t=a[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(l=e),t.route.id){let{loaderData:e,errors:o}=n,s=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!o||void 0===o[t.route.id]);if(t.route.lazy||s){r.isStatic&&(i=!0),a=l>=0?a.slice(0,l+1):[a[0]];break}}}}let u=r?.onError,c=n&&u?(e,t)=>{u(e,{location:n.location,params:n.matches?.[0]?.params??{},unstable_pattern:eo(n.matches),errorInfo:t})}:void 0;return a.reduceRight((e,r,u)=>{let d,h=!1,f=null,p=null;n&&(d=o&&r.route.id?o[r.route.id]:void 0,f=r.route.errorElement||t8,i&&(l<0&&0===u?(rw("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),h=!0,p=null):l===u&&(h=!0,p=r.route.hydrateFallbackElement||null)));let m=t.concat(a.slice(0,u+1)),y=()=>{let t;return t=d?f:h?p:r.route.Component?s.createElement(r.route.Component,null):r.route.element?r.route.element:e,s.createElement(re,{match:r,routeContext:{outlet:e,matches:m,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===u)?s.createElement(t9,{location:n.location,revalidation:n.revalidation,component:f,error:d,children:y(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:c}):y()},null)}function rr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function rn(e){let t=s.useContext(tD);return g(t,rr(e)),t}function ra(e){let t=s.useContext(tA);return g(t,rr(e)),t}function ro(e){let t,r=(g(t=s.useContext(tU),rr(e)),t),n=r.matches[r.matches.length-1];return g(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function ri(){return ra("useNavigation").navigation}function rs(){let e=rn("useRevalidator"),t=ra("useRevalidator"),r=s.useCallback(async()=>{await e.router.revalidate()},[e.router]);return s.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function rl(){let{matches:e,loaderData:t}=ra("useMatches");return s.useMemo(()=>e.map(e=>O(e,t)),[e,t])}function ru(){let e=ra("useLoaderData"),t=ro("useLoaderData");return e.loaderData[t]}function rc(e){return ra("useRouteLoaderData").loaderData[e]}function rd(){let e=ra("useActionData"),t=ro("useLoaderData");return e.actionData?e.actionData[t]:void 0}function rh(){let e=s.useContext(tz),t=ra("useRouteError"),r=ro("useRouteError");return void 0!==e?e:t.errors?.[r]}function rf(){let e=s.useContext(tN);return e?._data}function rp(){let e=s.useContext(tN);return e?._error}var rm=0;function ry(e){let{router:t,basename:r}=rn("useBlocker"),n=ra("useBlocker"),[a,o]=s.useState(""),i=s.useCallback(t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:{...n,pathname:U(n.pathname,r)||n.pathname},nextLocation:{...a,pathname:U(a.pathname,r)||a.pathname},historyAction:o})},[r,e]);return s.useEffect(()=>{let e=String(++rm);return o(e),()=>t.deleteBlocker(e)},[t]),s.useEffect(()=>{""!==a&&t.getBlocker(a,i)},[t,a,i]),a&&n.blockers.has(a)?n.blockers.get(a):ex}var rg={};function rw(e,t,r){t||rg[e]||(rg[e]=!0,w(!1,r))}function rv(...e){let t=ro("useRoute"),r=e[0]??t,n=ra("useRoute"),a=n.matches.find(({route:e})=>e.id===r);if(void 0!==a)return{handle:a.route.handle,loaderData:n.loaderData[r],actionData:n.actionData?.[r]}}var rb={};function rE(e,t){e||rb[t]||(rb[t]=!0,console.warn(t))}var rR=s.useOptimistic,rS=()=>void 0;function rx(e){let t={hasErrorBoundary:e.hasErrorBoundary||null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&(e.element&&w(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:s.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&w(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:s.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&w(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:s.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var rC=["HydrateFallback","hydrateFallbackElement"];function rk(e,t){return eP({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:p({initialEntries:t?.initialEntries,initialIndex:t?.initialIndex}),hydrationData:t?.hydrationData,routes:e,hydrationRouteProperties:rC,mapRouteProperties:rx,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,unstable_instrumentations:t?.unstable_instrumentations}).initialize()}var r_=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}})}};function rP({router:e,flushSync:t,onError:r,unstable_useTransitions:n}){n=tO()||n;let[a,o]=s.useState(e.state),[i,l]=rR?rR(a):[a,rS],[u,c]=s.useState(),[d,h]=s.useState({isTransitioning:!1}),[f,p]=s.useState(),[m,y]=s.useState(),[g,w]=s.useState(),v=s.useRef(new Map),b=s.useCallback((a,{deletedFetchers:i,newErrors:u,flushSync:d,viewTransitionOpts:g})=>{u&&r&&Object.values(u).forEach(e=>r(e,{location:a.location,params:a.matches[0]?.params??{},unstable_pattern:eo(a.matches)})),a.fetchers.forEach((e,t)=>{void 0!==e.data&&v.current.set(t,e.data)}),i.forEach(e=>v.current.delete(e)),rE(!1===d||null!=t,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let b=null!=e.window&&null!=e.window.document&&"function"==typeof e.window.document.startViewTransition;if(rE(null==g||b,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!g||!b)return void(t&&d?t(()=>o(a)):!1===n?o(a):s.startTransition(()=>{!0===n&&l(e=>rL(e,a)),o(a)}));if(t&&d){t(()=>{m&&(f?.resolve(),m.skipTransition()),h({isTransitioning:!0,flushSync:!0,currentLocation:g.currentLocation,nextLocation:g.nextLocation})});let r=e.window.document.startViewTransition(()=>{t(()=>o(a))});r.finished.finally(()=>{t(()=>{p(void 0),y(void 0),c(void 0),h({isTransitioning:!1})})}),t(()=>y(r));return}m?(f?.resolve(),m.skipTransition(),w({state:a,currentLocation:g.currentLocation,nextLocation:g.nextLocation})):(c(a),h({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}))},[e.window,t,m,f,n,l,r]);s.useLayoutEffect(()=>e.subscribe(b),[e,b]),s.useEffect(()=>{d.isTransitioning&&!d.flushSync&&p(new r_)},[d]),s.useEffect(()=>{if(f&&u&&e.window){let t=f.promise,r=e.window.document.startViewTransition(async()=>{!1===n?o(u):s.startTransition(()=>{!0===n&&l(e=>rL(e,u)),o(u)}),await t});r.finished.finally(()=>{p(void 0),y(void 0),c(void 0),h({isTransitioning:!1})}),y(r)}},[u,f,e.window,n,l]),s.useEffect(()=>{f&&u&&i.location.key===u.location.key&&f.resolve()},[f,m,i.location,u]),s.useEffect(()=>{!d.isTransitioning&&g&&(c(g.state),h({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}),w(void 0))},[d.isTransitioning,g]);let E=s.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,r,n)=>e.navigate(t,{state:r,preventScrollReset:n?.preventScrollReset}),replace:(t,r,n)=>e.navigate(t,{replace:!0,state:r,preventScrollReset:n?.preventScrollReset})}),[e]),R=e.basename||"/",S=s.useMemo(()=>({router:e,navigator:E,static:!1,basename:R,onError:r}),[e,E,R,r]);return s.createElement(s.Fragment,null,s.createElement(tD.Provider,{value:S},s.createElement(tA.Provider,{value:i},s.createElement(t$.Provider,{value:v.current},s.createElement(tM.Provider,{value:d},s.createElement(rN,{basename:R,location:i.location,navigationType:i.historyAction,navigator:E,unstable_useTransitions:n},s.createElement(rD,{routes:e.routes,future:e.future,state:i,isStatic:!1,onError:r})))))),null)}function rL(e,t){return{...e,navigation:"idle"!==t.navigation.state?t.navigation:e.navigation,revalidation:"idle"!==t.revalidation?t.revalidation:e.revalidation,actionData:"submitting"!==t.navigation.state?t.actionData:e.actionData,fetchers:t.fetchers}}var rD=s.memo(rA);function rA({routes:e,future:t,state:r,isStatic:n,onError:a}){return t3(e,void 0,{state:r,isStatic:n,onError:a,future:t})}function rT({basename:e,children:t,initialEntries:r,initialIndex:n,unstable_useTransitions:a}){let o=s.useRef();null==o.current&&(o.current=p({initialEntries:r,initialIndex:n,v5Compat:!0}));let i=o.current,[l,u]=s.useState({action:i.action,location:i.location}),c=s.useCallback(e=>{!1===a?u(e):s.startTransition(()=>u(e))},[a]);return s.useLayoutEffect(()=>i.listen(c),[i,c]),s.createElement(rN,{basename:e,children:t,location:l.location,navigationType:l.action,navigator:i,unstable_useTransitions:a})}function rO({to:e,replace:t,state:r,relative:n}){g(tJ(),"<Navigate> may be used only in the context of a <Router> component.");let{static:a}=s.useContext(tF);w(!a,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:o}=s.useContext(tU),{pathname:i}=tY(),l=tZ(),u=JSON.stringify(Y(e,J(o),i,"path"===n));return s.useEffect(()=>{l(JSON.parse(u),{replace:t,state:r,relative:n})},[l,u,n,t,r]),null}function rM(e){return t1(e.context)}function r$(e){g(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function rN({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:a,static:o=!1,unstable_useTransitions:i}){g(!tJ(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),u=s.useMemo(()=>({basename:l,navigator:a,static:o,unstable_useTransitions:i,future:{}}),[l,a,o,i]);"string"==typeof r&&(r=R(r));let{pathname:c="/",search:d="",hash:h="",state:f=null,key:p="default",unstable_mask:m}=r,y=s.useMemo(()=>{let e=U(c,l);return null==e?null:{location:{pathname:e,search:d,hash:h,state:f,key:p,unstable_mask:m},navigationType:n}},[l,c,d,h,f,p,n,m]);return(w(null!=y,`<Router basename="${l}"> is not able to match the URL "${c}${d}${h}" because it does not start with the basename, so the <Router> won't render anything.`),null==y)?null:s.createElement(tF.Provider,{value:u},s.createElement(tH.Provider,{children:t,value:y}))}function rj({children:e,location:t}){return t3(rz(e),t)}function rF({children:e,errorElement:t,resolve:r}){let n=s.useContext(tD),a=s.useContext(tA),o=s.useCallback((e,t)=>{n&&n.onError&&a&&n.onError(e,{location:a.location,params:a.matches[0]?.params||{},unstable_pattern:eo(a.matches),errorInfo:t})},[n,a]);return s.createElement(rH,{resolve:r,errorElement:t,onError:o},s.createElement(rU,null,e))}var rH=class extends s.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,a=0;if(r instanceof Promise)if(this.state.error){a=2;let e=this.state.error;Object.defineProperty(n=Promise.reject().catch(()=>{}),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?a="_error"in(n=r)?2:+("_data"in n):(a=0,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then(e=>Object.defineProperty(r,"_data",{get:()=>e}),e=>{this.props.onError?.(e),Object.defineProperty(r,"_error",{get:()=>e})}));else a=1,Object.defineProperty(n=Promise.resolve(),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(2===a&&!t)throw n._error;if(2===a)return s.createElement(tN.Provider,{value:n,children:t});if(1===a)return s.createElement(tN.Provider,{value:n,children:e});throw n}};function rU({children:e}){let t=rf(),r="function"==typeof e?e(t):e;return s.createElement(s.Fragment,null,r)}function rz(e,t=[]){let r=[];return s.Children.forEach(e,(e,n)=>{if(!s.isValidElement(e))return;let a=[...t,n];if(e.type===s.Fragment)return void r.push.apply(r,rz(e.props.children,a));g(e.type===r$,`[${"string"==typeof e.type?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),g(!e.props.index||!e.props.children,"An index route cannot have child routes.");let o={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:!0===e.props.hasErrorBoundary||null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(o.children=rz(e.props.children,a)),r.push(o)}),r}var rI=rz;function rq(e){return rt(e)}function rB(){return{params:t2(),loaderData:ru(),actionData:rd(),matches:rl()}}function rW({children:e}){let t=rB();return s.cloneElement(e,t)}function rJ(e){return function(){let t=rB();return s.createElement(e,t)}}function rY(){return{params:t2(),loaderData:ru(),actionData:rd()}}function rX({children:e}){let t=rY();return s.cloneElement(e,t)}function rV(e){return function(){let t=rY();return s.createElement(e,t)}}function rG(){return{params:t2(),loaderData:ru(),actionData:rd(),error:rh()}}function rK({children:e}){let t=rG();return s.cloneElement(e,t)}function rZ(e){return function(){let t=rG();return s.createElement(e,t)}}var rQ="get",r0="application/x-www-form-urlencoded";function r1(e){return"u">typeof HTMLElement&&e instanceof HTMLElement}function r2(e=""){return new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(e=>[r,e]):[[r,n]])},[]))}var r4=null,r5=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function r3(e){return null==e||r5.has(e)?e:(w(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${r0}"`),null)}var r8=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},r9=()=>Date.now(),r6=()=>new Promise(e=>setTimeout(e,0));async function r7(e){let{indices:t}=this,r=t.get(e);if(r)return[r];if(void 0===e)return -7;if(null===e)return -5;if(Number.isNaN(e))return -2;if(e===1/0)return -6;if(e===-1/0)return -3;if(0===e&&1/e<0)return -4;let n=this.index++;t.set(e,n);let a=[[e,n]];return await ne.call(this,a),n}async function ne(e){let{deferred:t,indices:r,plugins:n,postPlugins:a}=this,o=this.stringified,i=r9(),s=t=>{let n=r.get(t);if(n)return[n];if(void 0===t)return -7;if(null===t)return -5;if(Number.isNaN(t))return -2;if(t===1/0)return -6;if(t===-1/0)return -3;if(0===t&&1/t<0)return -4;let a=this.index++;return r.set(t,a),e.push([t,a]),a},l=0;for(;e.length>0;){let r=r9();++l%6e3==0&&r-i>=1&&(await r6(),i=r9());let[u,c]=e.pop(),d=e=>Object.keys(e).map(t=>`"_${s(t)}":${s(e[t])}`).join(","),h=null;switch(typeof u){case"boolean":case"number":case"string":o[c]=JSON.stringify(u);break;case"bigint":o[c]=`["B","${u}"]`;break;case"symbol":{let e=Symbol.keyFor(u);e?o[c]=`["Y",${JSON.stringify(e)}]`:h=Error("Cannot encode symbol unless created with Symbol.for()");break}case"object":{if(!u){o[c]="-5";break}let e=Array.isArray(u),r=!1;if(!e&&n)for(let e of n){let t=e(u);if(Array.isArray(t)){r=!0;let[e,...n]=t;o[c]=`[${JSON.stringify(e)}`,n.length>0&&(o[c]+=`,${n.map(e=>s(e)).join(",")}`),o[c]+="]";break}}if(!r){let r=e?"[":"{";if(e){for(let e=0;e<u.length;e++)r+=(e?",":"")+(e in u?s(u[e]):-1);o[c]=`${r}]`}else if(u instanceof Date){let e=u.getTime();o[c]=`["D",${Number.isNaN(e)?JSON.stringify("invalid"):e}]`}else u instanceof URL?o[c]=`["U",${JSON.stringify(u.href)}]`:u instanceof RegExp?o[c]=`["R",${JSON.stringify(u.source)},${JSON.stringify(u.flags)}]`:u instanceof Set?u.size>0?o[c]=`["S",${[...u].map(e=>s(e)).join(",")}]`:o[c]='["S"]':u instanceof Map?u.size>0?o[c]=`["M",${[...u].flatMap(([e,t])=>[s(e),s(t)]).join(",")}]`:o[c]='["M"]':u instanceof Promise?(o[c]=`["P",${c}]`,t[c]=u):u instanceof Error?(o[c]=`["E",${JSON.stringify(u.message)}`,"Error"!==u.name&&(o[c]+=`,${JSON.stringify(u.name)}`),o[c]+="]"):null===Object.getPrototypeOf(u)?o[c]=`["N",{${d(u)}}]`:function(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||null===t||Object.getOwnPropertyNames(t).sort().join("\0")===nt}(u)?o[c]=`{${d(u)}}`:h=Error("Cannot encode object with prototype")}break}default:{let e=Array.isArray(u),t=!1;if(!e&&n)for(let e of n){let r=e(u);if(Array.isArray(r)){t=!0;let[e,...n]=r;o[c]=`[${JSON.stringify(e)}`,n.length>0&&(o[c]+=`,${n.map(e=>s(e)).join(",")}`),o[c]+="]";break}}t||(h=Error("Cannot encode function or unexpected type"))}}if(h){let e=!1;if(a)for(let t of a){let r=t(u);if(Array.isArray(r)){e=!0;let[t,...n]=r;o[c]=`[${JSON.stringify(t)}`,n.length>0&&(o[c]+=`,${n.map(e=>s(e)).join(",")}`),o[c]+="]";break}}if(!e)throw h}}}var nt=Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),nr="u">typeof window?window:"u">typeof globalThis?globalThis:void 0;function nn(e){let{hydrated:t,values:r}=this;if("number"==typeof e)return na.call(this,e);if(!Array.isArray(e)||!e.length)throw SyntaxError();let n=r.length;for(let t of e)r.push(t);return t.length=r.length,na.call(this,n)}function na(e){let t,{hydrated:r,values:n,deferred:a,plugins:o}=this,i=[[e,e=>{t=e}]],s=[];for(;i.length>0;){let[e,t]=i.pop();switch(e){case -7:t(void 0);continue;case -5:t(null);continue;case -2:t(NaN);continue;case -6:t(1/0);continue;case -3:t(-1/0);continue;case -4:t(-0);continue}if(r[e]){t(r[e]);continue}let l=n[e];if(!l||"object"!=typeof l){r[e]=l,t(l);continue}if(Array.isArray(l))if("string"==typeof l[0]){let[n,u,c]=l;switch(n){case"D":t(r[e]=new Date(u));continue;case"U":t(r[e]=new URL(u));continue;case"B":t(r[e]=BigInt(u));continue;case"R":t(r[e]=new RegExp(u,c));continue;case"Y":t(r[e]=Symbol.for(u));continue;case"S":let d=new Set;r[e]=d;for(let e=l.length-1;e>0;e--)i.push([l[e],e=>{d.add(e)}]);t(d);continue;case"M":let h=new Map;r[e]=h;for(let e=l.length-2;e>0;e-=2){let t=[];i.push([l[e+1],e=>{t[1]=e}]),i.push([l[e],e=>{t[0]=e}]),s.push(()=>{h.set(t[0],t[1])})}t(h);continue;case"N":let f=Object.create(null);for(let t of(r[e]=f,Object.keys(u).reverse())){let e=[];i.push([u[t],t=>{e[1]=t}]),i.push([Number(t.slice(1)),t=>{e[0]=t}]),s.push(()=>{f[e[0]]=e[1]})}t(f);continue;case"P":if(r[u])t(r[e]=r[u]);else{let n=new r8;a[u]=n,t(r[e]=n.promise)}continue;case"E":let[,p,m]=l,y=m&&nr&&nr[m]?new nr[m](p):Error(p);r[e]=y,t(y);continue;case"Z":t(r[e]=r[u]);continue;default:if(Array.isArray(o)){let n=[],a=l.slice(1);for(let e=0;e<a.length;e++){let t=a[e];i.push([t,t=>{n[e]=t}])}s.push(()=>{for(let a of o){let o=a(l[0],...n);if(o)return void t(r[e]=o.value)}throw SyntaxError()});continue}throw SyntaxError()}}else{let n=[];r[e]=n;for(let e=0;e<l.length;e++){let t=l[e];-1!==t&&i.push([t,t=>{n[e]=t}])}t(n);continue}{let n={};for(let t of(r[e]=n,Object.keys(l).reverse())){let e=[];i.push([l[t],t=>{e[1]=t}]),i.push([Number(t.slice(1)),t=>{e[0]=t}]),s.push(()=>{n[e[0]]=e[1]})}t(n);continue}}for(;s.length>0;)s.pop()();return t}async function no(e,t){let r,n,{plugins:a}=t??{},o=new r8,i=e.pipeThrough((r=new TextDecoder,n="",new TransformStream({transform(e,t){let a=r.decode(e,{stream:!0}),o=(n+a).split("\n");for(let e of(n=o.pop()||"",o))t.enqueue(e)},flush(e){n&&e.enqueue(n)}}))).getReader(),s={values:[],hydrated:[],deferred:{},plugins:a},l=await ni.call(s,i),u=o.promise;return l.done?o.resolve():u=ns.call(s,i).then(o.resolve).catch(e=>{for(let t of Object.values(s.deferred))t.reject(e);o.reject(e)}),{done:u.then(()=>i.closed),value:l.value}}async function ni(e){let t,r=await e.read();if(!r.value)throw SyntaxError();try{t=JSON.parse(r.value)}catch(e){throw SyntaxError()}return{done:r.done,value:nn.call(this,t)}}async function ns(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;let r=t.value;switch(r[0]){case"P":{let e,t=r.indexOf(":"),n=Number(r.slice(1,t)),a=this.deferred[n];if(!a)throw Error(`Deferred ID ${n} not found in stream`);let o=r.slice(t+1);try{e=JSON.parse(o)}catch(e){throw SyntaxError()}let i=nn.call(this,e);a.resolve(i);break}case"E":{let e,t=r.indexOf(":"),n=Number(r.slice(1,t)),a=this.deferred[n];if(!a)throw Error(`Deferred ID ${n} not found in stream`);let o=r.slice(t+1);try{e=JSON.parse(o)}catch(e){throw SyntaxError()}let i=nn.call(this,e);a.reject(i);break}default:throw SyntaxError()}t=await e.read()}}async function nl(e){let t={signal:e.signal};if("GET"!==e.method){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}var nu={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},nc=/[&><\u2028\u2029]/g;function nd(e){return e.replace(nc,e=>nu[e])}function nh(e,t){if(!1===e||null==e)throw Error(t)}var nf=Symbol("SingleFetchRedirect"),np=class extends Error{},nm=new Set([100,101,204,205]);function ny({context:e,identifier:t,reader:r,textDecoder:n,nonce:a}){if(!e.renderMeta||!e.renderMeta.didRenderScripts)return null;e.renderMeta.streamCache||(e.renderMeta.streamCache={});let{streamCache:o}=e.renderMeta,i=o[t];if(i||(i=o[t]=r.read().then(e=>{o[t].result={done:e.done,value:n.decode(e.value,{stream:!0})}}).catch(e=>{o[t].error=e})),i.error)throw i.error;if(void 0===i.result)throw i;let{done:l,value:u}=i.result,c=u?s.createElement("script",{nonce:a,dangerouslySetInnerHTML:{__html:`window.__reactRouterContext.streamController.enqueue(${nd(JSON.stringify(u))});`}}):null;return l?s.createElement(s.Fragment,null,c,s.createElement("script",{nonce:a,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.close();"}})):s.createElement(s.Fragment,null,c,s.createElement(s.Suspense,null,s.createElement(ny,{context:e,identifier:t+1,reader:r,textDecoder:n,nonce:a})))}function ng(e,t,r,n,a,o){let i=function(e,t,r,n,a,o,i=()=>!0){return async s=>{let{request:l,matches:u,fetcherKey:c}=s,d=e();if("GET"!==l.method)return nw(s,r,a,o);let h=u.some(e=>{let{hasLoader:r,hasClientLoader:n}=t(e);return e.shouldCallHandler()&&r&&!n});return n||h?c?nR(s,r,a,o):nb(s,d,t,r,n,a,o,i):nv(s,t,r,a,o)}}(e,e=>{let n=t.routes[e.route.id];nh(n,"Route not found in manifest");let a=r[e.route.id];return{hasLoader:n.hasLoader,hasClientLoader:n.hasClientLoader,hasShouldRevalidate:!!a?.shouldRevalidate}},nx,n,a,o);return async e=>e.runClientMiddleware(i)}async function nw(e,t,r,n){let a,o=e.matches.find(e=>e.shouldCallHandler());nh(o,"No action match found");let i=await o.resolve(async i=>await i(async()=>{let{data:i,status:s}=await t(e,r,n,[o.route.id]);return a=s,nk(i,o.route.id)}));return tw(i.result)||ea(i.result)||tg(i.result)?{[o.route.id]:i}:{[o.route.id]:{type:i.type,result:Q(i.result,a)}}}async function nv(e,t,r,n,a){let o=e.matches.filter(e=>e.shouldCallHandler()),i={};return await Promise.all(o.map(o=>o.resolve(async s=>{try{let{hasClientLoader:l}=t(o),u=o.route.id,c=l?await s(async()=>{let{data:t}=await r(e,n,a,[u]);return nk(t,u)}):await s();i[o.route.id]={type:"data",result:c}}catch(e){i[o.route.id]={type:"error",result:e}}}))),i}async function nb(e,t,r,n,a,o,i,s=()=>!0){let l=new Set,u=!1,c=e.matches.map(()=>n_()),d=n_(),h={},f=Promise.all(e.matches.map(async(t,a)=>t.resolve(async f=>{c[a].resolve();let p=t.route.id,{hasLoader:m,hasClientLoader:y,hasShouldRevalidate:g}=r(t),w=!t.shouldRevalidateArgs||null==t.shouldRevalidateArgs.actionStatus||t.shouldRevalidateArgs.actionStatus<400;if(!t.shouldCallHandler(w)){u||(u=null!=t.shouldRevalidateArgs&&m&&!0===g);return}if(s(t)&&y){m&&(u=!0);try{let t=await f(async()=>{let{data:t}=await n(e,o,i,[p]);return nk(t,p)});h[p]={type:"data",result:t}}catch(e){h[p]={type:"error",result:e}}return}m&&l.add(p);try{let e=await f(async()=>{let e=await d.promise;return nk(e,p)});h[p]={type:"data",result:e}}catch(e){h[p]={type:"error",result:e}}})));if(await Promise.all(c.map(e=>e.promise)),(t.state.initialized||"idle"!==t.state.navigation.state)&&0!==l.size||window.__reactRouterHdrActive){let t=a&&u&&l.size>0?[...l.keys()]:void 0;try{let r=await n(e,o,i,t);d.resolve(r.data)}catch(e){d.reject(e)}}else d.resolve({routes:{}});return await f,await nE(d.promise,e.matches,l,h),h}async function nE(e,t,r,n){try{let a,o=await e;if("routes"in o){for(let e of t)if(e.route.id in o.routes){let t=o.routes[e.route.id];if("error"in t){a=t.error,n[e.route.id]?.result==null&&(n[e.route.id]={type:"error",result:a});break}}}void 0!==a&&Array.from(r.values()).forEach(e=>{n[e].result instanceof np&&(n[e].result=a)})}catch(e){}}async function nR(e,t,r,n){let a=e.matches.find(e=>e.shouldCallHandler());nh(a,"No fetcher match found");let o=a.route.id,i=await a.resolve(async a=>a(async()=>{let{data:a}=await t(e,r,n,[o]);return nk(a,o)}));return{[a.route.id]:i}}function nS(e,t,r,n){let a="string"==typeof e?new URL(e,"u"<typeof window?"server://singlefetch/":window.location.origin):e;return r?a.pathname.endsWith("/")?a.pathname=`${a.pathname}_.${n}`:a.pathname=`${a.pathname}.${n}`:"/"===a.pathname?a.pathname=`_root.${n}`:t&&"/"===U(a.pathname,t)?a.pathname=`${t.replace(/\/$/,"")}/_root.${n}`:a.pathname=`${a.pathname.replace(/\/$/,"")}.${n}`,a}async function nx(e,t,r,n){let{request:a}=e,o=nS(a.url,t,r,"data");"GET"===a.method&&(o=function(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let e of t)e&&r.push(e);for(let t of r)e.searchParams.append("index",t);return e}(o),n&&o.searchParams.set("_routes",n.join(",")));let i=await fetch(o,await nl(a));if(i.status>=400&&!i.headers.has("X-Remix-Response"))throw new en(i.status,i.statusText,await i.text());if(204===i.status&&i.headers.has("X-Remix-Redirect"))return{status:202,data:{redirect:{redirect:i.headers.get("X-Remix-Redirect"),status:Number(i.headers.get("X-Remix-Status")||"302"),revalidate:"true"===i.headers.get("X-Remix-Revalidate"),reload:"true"===i.headers.get("X-Remix-Reload-Document"),replace:"true"===i.headers.get("X-Remix-Replace")}}};if(nm.has(i.status)){let e={};return n&&"GET"!==a.method&&(e[n[0]]={data:void 0}),{status:i.status,data:{routes:e}}}nh(i.body,"No response body to decode");try{let e,t=await nC(i.body,window);if("GET"===a.method){let r=t.value;e=nf in r?{redirect:r[nf]}:{routes:r}}else{let r=t.value,a=n?.[0];nh(a,"No routeId found for single fetch call decoding"),e="redirect"in r?{redirect:r}:{routes:{[a]:r}}}return{status:i.status,data:e}}catch(e){throw Error("Unable to decode turbo-stream response")}}function nC(e,t){return no(e,{plugins:[(e,...r)=>{if("SanitizedError"===e){let[e,n,a]=r,o=Error;e&&e in t&&"function"==typeof t[e]&&(o=t[e]);let i=new o(n);return i.stack=a,{value:i}}if("ErrorResponse"===e){let[e,t,n]=r;return{value:new en(t,n,e)}}return"SingleFetchRedirect"===e?{value:{[nf]:r[0]}}:"SingleFetchClassInstance"===e?{value:r[0]}:"SingleFetchFallback"===e?{value:void 0}:void 0}]})}function nk(e,t){if("redirect"in e){let{redirect:t,revalidate:r,reload:n,replace:a,status:o}=e.redirect;throw ee(t,{status:o,headers:{...r?{"X-Remix-Revalidate":"yes"}:null,...n?{"X-Remix-Reload-Document":"yes"}:null,...a?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(null==r)throw new np(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw Error(`Invalid response found for routeId "${t}"`)}function n_(){let e,t,r=new Promise((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}});return{promise:r,resolve:e,reject:t}}async function nP(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function nL(e){return e.css?e.css.map(e=>({rel:"stylesheet",href:e})):[]}async function nD(e){if(!e.css)return;let t=nL(e);await Promise.all(t.map(nT))}async function nA(e,t){if(!e.css&&!t.links||!function(){if(void 0!==i)return i;let e=document.createElement("link");return i=e.relList.supports("preload"),e=null,i}())return;let r=[];if(e.css&&r.push(...nL(e)),t.links&&r.push(...t.links()),0===r.length)return;let n=[];for(let e of r)nO(e)||"stylesheet"!==e.rel||n.push({...e,rel:"preload",as:"style"});await Promise.all(n.map(nT))}async function nT(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let r=document.createElement("link");function n(){document.head.contains(r)&&document.head.removeChild(r)}Object.assign(r,e),r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function nO(e){return null!=e&&"string"==typeof e.page}function nM(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}async function n$(e,t,r){return nF((await Promise.all(e.map(async e=>{let n=t.routes[e.route.id];if(n){let e=await nP(n,r);return e.links?e.links():[]}return[]}))).flat(1).filter(nM).filter(e=>"stylesheet"===e.rel||"preload"===e.rel).map(e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"}))}function nN(e,t,r,n,a,o){let i=(e,t)=>!r[t]||e.route.id!==r[t].route.id,s=(e,t)=>r[t].pathname!==e.pathname||r[t].route.path?.endsWith("*")&&r[t].params["*"]!==e.params["*"];return"assets"===o?t.filter((e,t)=>i(e,t)||s(e,t)):"data"===o?t.filter((t,o)=>{let l=n.routes[t.route.id];if(!l||!l.hasLoader)return!1;if(i(t,o)||s(t,o))return!0;if(t.route.shouldRevalidate){let n=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof n)return n}return!0}):[]}function nj(e,t,{includeHydrateFallback:r}={}){return[...new Set(e.map(e=>{let n=t.routes[e.route.id];if(!n)return[];let a=[n.module];return n.clientActionModule&&(a=a.concat(n.clientActionModule)),n.clientLoaderModule&&(a=a.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(a=a.concat(n.hydrateFallbackModule)),n.imports&&(a=a.concat(n.imports)),a}).flat(1))]}function nF(e,t){let r=new Set,n=new Set(t);return e.reduce((e,a)=>{if(t&&!nO(a)&&"script"===a.as&&a.href&&n.has(a.href))return e;let o=JSON.stringify(function(e){let t={};for(let r of Object.keys(e).sort())t[r]=e[r];return t}(a));return r.has(o)||(r.add(o),e.push({key:o,link:a})),e},[])}function nH(){return s.createElement(ac,{title:"Loading...",renderScripts:!0},s.createElement("script",{dangerouslySetInnerHTML:{__html:`
5
+ console.log(
6
+ "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this " +
7
+ "when your app is loading JS modules and/or running \`clientLoader\` " +
8
+ "functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " +
9
+ "for more information."
10
+ );
11
+ `}}))}function nU(e){let t={};return Object.values(e).forEach(e=>{if(e){let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)}}),t}function nz(e,t,r){let n=nX(t),a=t.HydrateFallback&&(!r||"root"===e.id)?t.HydrateFallback:"root"===e.id?nH:void 0,o=t.ErrorBoundary?t.ErrorBoundary:"root"===e.id?()=>s.createElement(au,{error:rh()}):void 0;return"root"===e.id&&t.Layout?{...n?{element:s.createElement(t.Layout,null,s.createElement(n,null))}:{Component:n},...o?{errorElement:s.createElement(t.Layout,null,s.createElement(o,null))}:{ErrorBoundary:o},...a?{hydrateFallbackElement:s.createElement(t.Layout,null,s.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:o,HydrateFallback:a}}function nI(e,t,r,n,a,o){return nW(t,r,n,a,o,"",nU(t),e)}function nq(e,t){if("loader"===e&&!t.hasLoader||"action"===e&&!t.hasAction){let r=`You are trying to call ${"action"===e?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(r),new en(400,"Bad Request",Error(r),!0)}}function nB(e,t){let r="clientAction"===e?"a":"an",n=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(n),new en(405,"Method Not Allowed",Error(n),!0)}function nW(e,t,r,n,a,o="",i=nU(e),s){return(i[o]||[]).map(o=>{let l=t[o.id];function u(e){return nh("function"==typeof e,"No single fetch function available for route handler"),e()}function c(e){return o.hasLoader?u(e):Promise.resolve(null)}function d(e){if(!o.hasAction)throw nB("action",o.id);return u(e)}function h(e){e.clientActionModule&&import(e.clientActionModule),e.clientLoaderModule&&import(e.clientLoaderModule)}async function f(e){let r=t[o.id],n=r?nA(o,r):Promise.resolve();try{return e()}finally{await n}}let p={id:o.id,index:o.index,path:o.path};if(l){Object.assign(p,{...p,...nz(o,l,a),middleware:l.clientMiddleware,handle:l.handle,shouldRevalidate:nJ(p.path,l,o,n,s)});let e=r&&r.loaderData&&o.id in r.loaderData,t=e?r?.loaderData?.[o.id]:void 0,i=r&&r.errors&&o.id in r.errors,u=i?r?.errors?.[o.id]:void 0,h=null==s&&(l.clientLoader?.hydrate===!0||!o.hasLoader);p.loader=async({request:r,params:n,context:a,unstable_pattern:s,unstable_url:d},p)=>{try{return await f(async()=>(nh(l,"No `routeModule` available for critical-route loader"),l.clientLoader)?l.clientLoader({request:r,params:n,context:a,unstable_pattern:s,unstable_url:d,async serverLoader(){if(nq("loader",o),h){if(e)return t;if(i)throw u}return c(p)}}):c(p))}finally{h=!1}},p.loader.hydrate=nV(o.id,l.clientLoader,o.hasLoader,a),p.action=({request:e,params:t,context:r,unstable_pattern:n,unstable_url:i},s)=>f(async()=>{if(nh(l,"No `routeModule` available for critical-route action"),!l.clientAction){if(a)throw nB("clientAction",o.id);return d(s)}return l.clientAction({request:e,params:t,context:r,unstable_pattern:n,unstable_url:i,serverAction:async()=>(nq("action",o),d(s))})})}else{let e;async function m(){return e||(e=(async()=>{(o.clientLoaderModule||o.clientActionModule)&&await new Promise(e=>setTimeout(e,0));let e=nY(o,t);return h(o),await e})()),await e}o.hasClientLoader||(p.loader=(e,t)=>f(()=>c(t))),o.hasClientAction||(p.action=(e,t)=>f(()=>{if(a)throw nB("clientAction",o.id);return d(t)})),p.lazy={loader:o.hasClientLoader?async()=>{let{clientLoader:e}=o.clientLoaderModule?await import(o.clientLoaderModule):await m();return nh(e,"No `clientLoader` export found"),(t,r)=>e({...t,serverLoader:async()=>(nq("loader",o),c(r))})}:void 0,action:o.hasClientAction?async()=>{let e=o.clientActionModule?import(o.clientActionModule):m();h(o);let{clientAction:t}=await e;return nh(t,"No `clientAction` export found"),(e,r)=>t({...e,serverAction:async()=>(nq("action",o),d(r))})}:void 0,middleware:o.hasClientMiddleware?async()=>{let{clientMiddleware:e}=o.clientMiddlewareModule?await import(o.clientMiddlewareModule):await m();return nh(e,"No `clientMiddleware` export found"),e}:void 0,shouldRevalidate:async()=>{let e=await m();return nJ(p.path,e,o,n,s)},handle:async()=>(await m()).handle,Component:async()=>(await m()).Component,ErrorBoundary:o.hasErrorBoundary?async()=>(await m()).ErrorBoundary:void 0}}let y=nW(e,t,r,n,a,o.id,i,s);return y.length>0&&(p.children=y),p})}function nJ(e,t,r,n,a){if(a){var o,i,s;let e;return o=r.id,i=t.shouldRevalidate,s=a,e=!1,t=>e?i?i(t):t.defaultShouldRevalidate:(e=!0,s.has(o))}if(!n&&r.hasLoader&&!r.hasClientLoader){let r=e?F(e)[1].map(e=>e.paramName):[],n=e=>r.some(t=>e.currentParams[t]!==e.nextParams[t]);if(!t.shouldRevalidate)return e=>n(e);{let e=t.shouldRevalidate;return t=>e({...t,defaultShouldRevalidate:n(t)})}}return t.shouldRevalidate}async function nY(e,t){let r=nP(e,t),n=nD(e),a=await r;return await Promise.all([n,nA(e,a)]),{Component:nX(a),ErrorBoundary:a.ErrorBoundary,clientMiddleware:a.clientMiddleware,clientAction:a.clientAction,clientLoader:a.clientLoader,handle:a.handle,links:a.links,meta:a.meta,shouldRevalidate:a.shouldRevalidate}}function nX(e){if(null!=e.default&&("object"!=typeof e.default||0!==Object.keys(e.default).length))return e.default}function nV(e,t,r,n){return n&&"root"!==e||null!=t&&(!0===t.hydrate||!0!==r)}var nG=new Set,nK=new Set;function nZ(e,t){return"lazy"===e.mode&&!0===t}function nQ(e,t,r,n,a,o,i){if(nZ(a,n))return async({path:s,patch:l,signal:u,fetcherKey:c})=>{if(nK.has(s))return;let{state:d}=e();await n4([s],c?window.location.href:E(d.navigation.location||d.location),t,r,n,o,i,a.manifestPath,l,u)}}function n0(e,t,r,n,a,o){s.useEffect(()=>{var i;let s;if(!nZ(a,n)||window.navigator?.connection?.saveData===!0)return;function l(e){let t="FORM"===e.tagName?e.getAttribute("action"):e.getAttribute("href");if(!t)return;let r="A"===e.tagName?e.pathname:new URL(t,window.location.origin).pathname;nK.has(r)||nG.add(r)}async function u(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(l);let i=Array.from(nG.keys()).filter(e=>!nK.has(e)||(nG.delete(e),!1));if(0!==i.length)try{await n4(i,null,t,r,n,o,e.basename,a.manifestPath,e.patchRoutes)}catch(e){console.error("Failed to fetch manifest patches",e)}}let c=(i=u,(...e)=>{window.clearTimeout(s),s=window.setTimeout(()=>i(...e),100)});u();let d=new MutationObserver(()=>c());return d.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>d.disconnect()},[n,o,t,r,e,a])}function n1(e,t){let r=e||"/__manifest";return null==t?r:`${t}${r}`.replace(/\/+/g,"/")}var n2="react-router-manifest-version";async function n4(e,t,r,n,a,o,i,s,l,u){let c,d=new URLSearchParams;d.set("paths",e.sort().join(",")),d.set("version",r.version);let h=new URL(n1(s,i),window.location.origin);if(h.search=d.toString(),h.toString().length>7680)return void nG.clear();try{let e=await fetch(h,{signal:u});if(e.ok){if(204===e.status&&e.headers.has("X-Remix-Reload-Document")){if(!t)return void console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");try{if(sessionStorage.getItem(n2)===r.version)return void console.error("Unable to discover routes due to manifest version mismatch.");sessionStorage.setItem(n2,r.version)}catch{}window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(e.status>=400)throw Error(await e.text())}else throw Error(`${e.status} ${e.statusText}`);try{sessionStorage.removeItem(n2)}catch{}c=await e.json()}catch(e){if(u?.aborted)return;throw e}let f=new Set(Object.keys(r.routes)),p=Object.values(c).reduce((e,t)=>(t&&!f.has(t.id)&&(e[t.id]=t),e),{});Object.assign(r.routes,p),e.forEach(e=>(function(e,t){if(t.size>=1e3){let e=t.values().next().value;t.delete(e)}t.add(e)})(e,nK));let m=new Set;Object.values(p).forEach(e=>{!e||e.parentId&&p[e.parentId]||m.add(e.parentId)}),m.forEach(e=>l(e||null,nW(p,n,null,a,o,e)))}function n5(){let e=s.useContext(tD);return nh(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function n3(){let e=s.useContext(tA);return nh(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var n8=s.createContext(void 0);function n9(){let e=s.useContext(n8);return nh(e,"You must render this element inside a <HydratedRouter> element"),e}function n6(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function n7(e,t,r){if(r&&!ai)return[e[0]];if(t){let r=e.findIndex(e=>void 0!==t[e.route.id]);return e.slice(0,r+1)}return e}n8.displayName="FrameworkContext";var ae="data-react-router-critical-css";function at({nonce:e,crossOrigin:t}){let{isSpaMode:r,manifest:n,routeModules:a,criticalCss:o}=n9(),{errors:i,matches:l}=n3(),u=n7(l,i,r),c=s.useMemo(()=>nF(u.map(e=>{let t=a[e.route.id],r=n.routes[e.route.id];return[r&&r.css?r.css.map(e=>({rel:"stylesheet",href:e})):[],t?.links?.()||[]]}).flat(2),nj(u,n)),[u,a,n]);return s.createElement(s.Fragment,null,"string"==typeof o?s.createElement("style",{...{[ae]:""},nonce:e,dangerouslySetInnerHTML:{__html:o}}):null,"object"==typeof o?s.createElement("link",{...{[ae]:""},rel:"stylesheet",href:o.href,nonce:e,crossOrigin:t}):null,c.map(({key:r,link:n})=>nO(n)?s.createElement(ar,{key:r,nonce:e,...n,crossOrigin:n.crossOrigin??t}):s.createElement("link",{key:r,nonce:e,...n,crossOrigin:n.crossOrigin??t})))}function ar({page:e,...t}){let r=tO(),{router:n}=n5(),a=s.useMemo(()=>A(n.routes,e,n.basename),[n.routes,e,n.basename]);return a?r?s.createElement(an,{page:e,matches:a,...t}):s.createElement(aa,{page:e,matches:a,...t}):null}function an({page:e,matches:t,...r}){let n=tY(),{future:a}=n9(),{basename:o}=n5(),i=s.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let r=nS(e,o,a.unstable_trailingSlashAwareDataRequests,"rsc"),i=!1,s=[];for(let e of t)"function"==typeof e.route.shouldRevalidate?i=!0:s.push(e.route.id);return i&&s.length>0&&r.searchParams.set("_routes",s.join(",")),[r.pathname+r.search]},[o,a.unstable_trailingSlashAwareDataRequests,e,n,t]);return s.createElement(s.Fragment,null,i.map(e=>s.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...r})))}function aa({page:e,matches:t,...r}){let n=tY(),{future:a,manifest:o,routeModules:i}=n9(),{basename:l}=n5(),{loaderData:u,matches:c}=n3(),d=s.useMemo(()=>nN(e,t,c,o,n,"data"),[e,t,c,o,n]),h=s.useMemo(()=>nN(e,t,c,o,n,"assets"),[e,t,c,o,n]),f=s.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let r=new Set,s=!1;if(t.forEach(e=>{let t=o.routes[e.route.id];t&&t.hasLoader&&(!d.some(t=>t.route.id===e.route.id)&&e.route.id in u&&i[e.route.id]?.shouldRevalidate||t.hasClientLoader?s=!0:r.add(e.route.id))}),0===r.size)return[];let c=nS(e,l,a.unstable_trailingSlashAwareDataRequests,"data");return s&&r.size>0&&c.searchParams.set("_routes",t.filter(e=>r.has(e.route.id)).map(e=>e.route.id).join(",")),[c.pathname+c.search]},[l,a.unstable_trailingSlashAwareDataRequests,u,n,o,d,t,e,i]),p=s.useMemo(()=>nj(h,o),[h,o]),m=function(e){let{manifest:t,routeModules:r}=n9(),[n,a]=s.useState([]);return s.useEffect(()=>{let n=!1;return n$(e,t,r).then(e=>{n||a(e)}),()=>{n=!0}},[e,t,r]),n}(h);return s.createElement(s.Fragment,null,f.map(e=>s.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...r})),p.map(e=>s.createElement("link",{key:e,rel:"modulepreload",href:e,...r})),m.map(({key:e,link:t})=>s.createElement("link",{key:e,nonce:r.nonce,...t,crossOrigin:t.crossOrigin??r.crossOrigin})))}function ao(){let{isSpaMode:e,routeModules:t}=n9(),{errors:r,matches:n,loaderData:a}=n3(),o=tY(),i=n7(n,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let u=[],c=null,d=[];for(let e=0;e<i.length;e++){let r=i[e],n=r.route.id,s=a[n],h=r.params,f=t[n],p=[],m={id:n,data:s,loaderData:s,meta:[],params:r.params,pathname:r.pathname,handle:r.route.handle,error:l};if(d[e]=m,f?.meta?p="function"==typeof f.meta?f.meta({data:s,loaderData:s,params:h,location:o,matches:d,error:l}):Array.isArray(f.meta)?[...f.meta]:f.meta:c&&(p=[...c]),!Array.isArray(p=p||[]))throw Error("The route at "+r.route.path+" returns an invalid value. All route meta functions must return an array of meta objects.\n\nTo reference the meta function API, see https://reactrouter.com/start/framework/route-module#meta");m.meta=p,d[e]=m,c=u=[...p]}return s.createElement(s.Fragment,null,u.flat().map(e=>{if(!e)return null;if("tagName"in e){var t;let{tagName:r,...n}=e;return"string"==typeof(t=r)&&/^(meta|link)$/.test(t)?s.createElement(r,{key:JSON.stringify(n),...n}):(console.warn(`A meta object uses an invalid tagName: ${r}. Expected either 'link' or 'meta'`),null)}if("title"in e)return s.createElement("title",{key:"title"},String(e.title));if("charset"in e&&(e.charSet??(e.charSet=e.charset),delete e.charset),"charSet"in e&&null!=e.charSet)return"string"==typeof e.charSet?s.createElement("meta",{key:"charSet",charSet:e.charSet}):null;if("script:ld+json"in e)try{let t=JSON.stringify(e["script:ld+json"]);return s.createElement("script",{key:`script:ld+json:${t}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:nd(t)}})}catch(e){return null}return s.createElement("meta",{key:JSON.stringify(e),...e})}))}var ai=!1;function as(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a,routeDiscovery:o,ssr:i}=n9(),{router:l,static:u,staticContext:c}=n5(),{matches:d}=n3(),h=tO(),f=nZ(o,i);a&&(a.didRenderScripts=!0);let p=n7(d,null,n);s.useEffect(()=>{ai=!0},[]);let m=s.useMemo(()=>{if(h)return null;let n=c?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",a=u?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${!f?`import ${JSON.stringify(t.url)}`:""};
12
+ ${p.map((e,r)=>{let n=`route${r}`,a=t.routes[e.route.id];nh(a,`Route ${e.route.id} not found in manifest`);let{clientActionModule:o,clientLoaderModule:i,clientMiddlewareModule:s,hydrateFallbackModule:l,module:u}=a,c=[...o?[{module:o,varName:`${n}_clientAction`}]:[],...i?[{module:i,varName:`${n}_clientLoader`}]:[],...s?[{module:s,varName:`${n}_clientMiddleware`}]:[],...l?[{module:l,varName:`${n}_HydrateFallback`}]:[],{module:u,varName:`${n}_main`}];return 1===c.length?`import * as ${n} from ${JSON.stringify(u)};`:[c.map(e=>`import * as ${e.varName} from "${e.module}";`).join("\n"),`const ${n} = {${c.map(e=>`...${e.varName}`).join(",")}};`].join("\n")}).join("\n")}
13
+ ${f?`window.__reactRouterManifest = ${JSON.stringify(function({sri:e,...t},r){let n=new Set(r.state.matches.map(e=>e.route.id)),a=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(a.pop();a.length>0;)o.push(`/${a.join("/")}`),a.pop();o.forEach(e=>{let t=A(r.routes,e,r.basename);t&&t.forEach(e=>n.add(e.route.id))});let i=[...n].reduce((e,r)=>Object.assign(e,{[r]:t.routes[r]}),{});return{...t,routes:i,sri:!!e||void 0}}(t,l),null,2)};`:""}
14
+ window.__reactRouterRouteModules = {${p.map((e,t)=>`${JSON.stringify(e.route.id)}:route${t}`).join(",")}};
15
+
16
+ import(${JSON.stringify(t.entry.module)});`:" ";return s.createElement(s.Fragment,null,s.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n},type:void 0}),s.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:a},type:"module",async:!0}))},[]),y=ai||h?[]:[...new Set(t.entry.imports.concat(nj(p,t,{includeHydrateFallback:!0})))],g="object"==typeof t.sri?t.sri:{};return rE(!h,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),ai||h?null:s.createElement(s.Fragment,null,"object"==typeof t.sri?s.createElement("script",{...e,"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:g})}}):null,f?null:s.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:g[t.url],suppressHydrationWarning:!0}),s.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:g[t.entry.module],suppressHydrationWarning:!0}),y.map(t=>s.createElement("link",{key:t,rel:"modulepreload",href:t,crossOrigin:e.crossOrigin,integrity:g[t],suppressHydrationWarning:!0})),m)}var al=class extends s.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error||null,location:e.location}:{error:e.error||t.error,location:t.location}}render(){return this.state.error?s.createElement(au,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function au({error:e,isOutsideRemixApp:t}){let r;console.error(e);let n=s.createElement("script",{dangerouslySetInnerHTML:{__html:`
17
+ console.log(
18
+ "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
19
+ );
20
+ `}});return ea(e)?s.createElement(ac,{title:"Unhandled Thrown Response!"},s.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),n):(r=e instanceof Error?e:Error(null==e?"Unknown Error":"object"==typeof e&&"toString"in e?e.toString():JSON.stringify(e)),s.createElement(ac,{title:"Application Error!",isOutsideRemixApp:t},s.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),s.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},r.stack),n))}function ac({title:e,renderScripts:t,isOutsideRemixApp:r,children:n}){let{routeModules:a}=n9();return a.root?.Layout&&!r?n:s.createElement("html",{lang:"en"},s.createElement("head",null,s.createElement("meta",{charSet:"utf-8"}),s.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),s.createElement("title",null,e)),s.createElement("body",null,s.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},n,t?s.createElement(as,null):null)))}var ad="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{ad&&(window.__reactRouterVersion="7.14.0")}catch(e){}function ah(e,t){return eP({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:m({window:t?.window}),hydrationData:t?.hydrationData||ap(),routes:e,mapRouteProperties:rx,hydrationRouteProperties:rC,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,unstable_instrumentations:t?.unstable_instrumentations}).initialize()}function af(e,t){return eP({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:y({window:t?.window}),hydrationData:t?.hydrationData||ap(),routes:e,mapRouteProperties:rx,hydrationRouteProperties:rC,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,unstable_instrumentations:t?.unstable_instrumentations}).initialize()}function ap(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new en(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack="",r[e]=a}catch(e){}}if(null==r[e]){let t=Error(n.message);t.stack="",r[e]=t}}else r[e]=n;return r}(e.errors)}),e}function am({basename:e,children:t,unstable_useTransitions:r,window:n}){let a=s.useRef();null==a.current&&(a.current=m({window:n,v5Compat:!0}));let o=a.current,[i,l]=s.useState({action:o.action,location:o.location}),u=s.useCallback(e=>{!1===r?l(e):s.startTransition(()=>l(e))},[r]);return s.useLayoutEffect(()=>o.listen(u),[o,u]),s.createElement(rN,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:o,unstable_useTransitions:r})}function ay({basename:e,children:t,unstable_useTransitions:r,window:n}){let a=s.useRef();null==a.current&&(a.current=y({window:n,v5Compat:!0}));let o=a.current,[i,l]=s.useState({action:o.action,location:o.location}),u=s.useCallback(e=>{!1===r?l(e):s.startTransition(()=>l(e))},[r]);return s.useLayoutEffect(()=>o.listen(u),[o,u]),s.createElement(rN,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:o,unstable_useTransitions:r})}function ag({basename:e,children:t,history:r,unstable_useTransitions:n}){let[a,o]=s.useState({action:r.action,location:r.location}),i=s.useCallback(e=>{!1===n?o(e):s.startTransition(()=>o(e))},[n]);return s.useLayoutEffect(()=>r.listen(i),[r,i]),s.createElement(rN,{basename:e,children:t,location:a.location,navigationType:a.action,navigator:r,unstable_useTransitions:n})}ag.displayName="unstable_HistoryRouter";var aw=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,av=s.forwardRef(function({onClick:e,discover:t="render",prefetch:r="none",relative:n,reloadDocument:a,replace:o,unstable_mask:i,state:l,target:u,to:c,preventScrollReset:d,viewTransition:h,unstable_defaultShouldRevalidate:f,...p},m){let{basename:y,navigator:g,unstable_useTransitions:w}=s.useContext(tF),v="string"==typeof c&&aw.test(c),b=es(c,y),E=tW(c=b.to,{relative:n}),R=tY(),S=null;if(i){let e=Y(i,[],R.unstable_mask?R.unstable_mask.pathname:"/",!0);"/"!==y&&(e.pathname="/"===e.pathname?y:X([y,e.pathname])),S=g.createHref(e)}let[x,C,k]=function(e,t){let r=s.useContext(n8),[n,a]=s.useState(!1),[o,i]=s.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:c,onMouseLeave:d,onTouchStart:h}=t,f=s.useRef(null);s.useEffect(()=>{if("render"===e&&i(!0),"viewport"===e){let e=new IntersectionObserver(e=>{e.forEach(e=>{i(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),s.useEffect(()=>{if(n){let e=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(e)}}},[n]);let p=()=>{a(!0)},m=()=>{a(!1),i(!1)};return r?"intent"!==e?[o,f,{}]:[o,f,{onFocus:n6(l,p),onBlur:n6(u,m),onMouseEnter:n6(c,p),onMouseLeave:n6(d,m),onTouchStart:n6(h,p)}]:[!1,f,{}]}(r,p),_=ak(c,{replace:o,unstable_mask:i,state:l,target:u,preventScrollReset:d,relative:n,viewTransition:h,unstable_defaultShouldRevalidate:f,unstable_useTransitions:w}),P=!(b.isExternal||a),L=s.createElement("a",{...p,...k,href:(P?S:void 0)||b.absoluteURL||E,onClick:P?function(t){e&&e(t),t.defaultPrevented||_(t)}:e,ref:function(...e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}}(m,C),target:u,"data-discover":v||"render"!==t?void 0:"true"});return x&&!v?s.createElement(s.Fragment,null,L,s.createElement(ar,{page:E})):L});av.displayName="Link";var ab=s.forwardRef(function({"aria-current":e="page",caseSensitive:t=!1,className:r="",end:n=!1,style:a,to:o,viewTransition:i,children:l,...u},c){let d,h=t4(o,{relative:u.relative}),f=tY(),p=s.useContext(tA),{navigator:m,basename:y}=s.useContext(tF),g=null!=p&&aH(h)&&!0===i,w=m.encodeLocation?m.encodeLocation(h).pathname:h.pathname,v=f.pathname,b=p&&p.navigation&&p.navigation.location?p.navigation.location.pathname:null;t||(v=v.toLowerCase(),b=b?b.toLowerCase():null,w=w.toLowerCase()),b&&y&&(b=U(b,y)||b);let E="/"!==w&&w.endsWith("/")?w.length-1:w.length,R=v===w||!n&&v.startsWith(w)&&"/"===v.charAt(E),S=null!=b&&(b===w||!n&&b.startsWith(w)&&"/"===b.charAt(w.length)),x={isActive:R,isPending:S,isTransitioning:g},C=R?e:void 0;d="function"==typeof r?r(x):[r,R?"active":null,S?"pending":null,g?"transitioning":null].filter(Boolean).join(" ");let k="function"==typeof a?a(x):a;return s.createElement(av,{...u,"aria-current":C,className:d,ref:c,style:k,to:o,viewTransition:i},"function"==typeof l?l(x):l)});ab.displayName="NavLink";var aE=s.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:n,replace:a,state:o,method:i=rQ,action:l,onSubmit:u,relative:c,preventScrollReset:d,viewTransition:h,unstable_defaultShouldRevalidate:f,...p},m)=>{let{unstable_useTransitions:y}=s.useContext(tF),g=aL(),w=aD(l,{relative:c}),v="get"===i.toLowerCase()?"get":"post",b="string"==typeof l&&aw.test(l);return s.createElement("form",{ref:m,method:v,action:w,onSubmit:n?u:e=>{if(u&&u(e),e.defaultPrevented)return;e.preventDefault();let n=e.nativeEvent.submitter,l=n?.getAttribute("formmethod")||i,p=()=>g(n||e.currentTarget,{fetcherKey:t,method:l,navigate:r,replace:a,state:o,relative:c,preventScrollReset:d,viewTransition:h,unstable_defaultShouldRevalidate:f});y&&!1!==r?s.startTransition(()=>p()):p()},...p,"data-discover":b||"render"!==e?void 0:"true"})});function aR({getKey:e,storageKey:t,...r}){let n=s.useContext(n8),{basename:a}=s.useContext(tF),o=tY(),i=rl();aN({getKey:e,storageKey:t});let l=s.useMemo(()=>{if(!n||!e)return null;let t=a$(o,i,a,e);return t!==o.key?t:null},[]);if(!n||n.isSpaMode)return null;let u=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},"")}try{let r=JSON.parse(sessionStorage.getItem(e)||"{}")[t||window.history.state.key];"number"==typeof r&&window.scrollTo(0,r)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return s.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${u})(${nd(JSON.stringify(t||aO))}, ${nd(JSON.stringify(l))})`}})}function aS(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function ax(e){let t=s.useContext(tD);return g(t,aS(e)),t}function aC(e){let t=s.useContext(tA);return g(t,aS(e)),t}function ak(e,{target:t,replace:r,unstable_mask:n,state:a,preventScrollReset:o,relative:i,viewTransition:l,unstable_defaultShouldRevalidate:u,unstable_useTransitions:c}={}){let d=tZ(),h=tY(),f=t4(e,{relative:i});return s.useCallback(p=>{if(0===p.button&&(!t||"_self"===t)&&!(p.metaKey||p.altKey||p.ctrlKey||p.shiftKey)){p.preventDefault();let t=void 0!==r?r:E(h)===E(f),m=()=>d(e,{replace:t,unstable_mask:n,state:a,preventScrollReset:o,relative:i,viewTransition:l,unstable_defaultShouldRevalidate:u});c?s.startTransition(()=>m()):m()}},[h,d,f,r,n,a,t,e,o,i,l,u,c])}function a_(e){w("u">typeof URLSearchParams,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=s.useRef(r2(e)),r=s.useRef(!1),n=tY(),a=s.useMemo(()=>{var e,a;let o;return e=n.search,a=r.current?null:t.current,o=r2(e),a&&a.forEach((e,t)=>{o.has(t)||a.getAll(t).forEach(e=>{o.append(t,e)})}),o},[n.search]),o=tZ(),i=s.useCallback((e,t)=>{let n=r2("function"==typeof e?e(new URLSearchParams(a)):e);r.current=!0,o("?"+n,t)},[o,a]);return[a,i]}aE.displayName="Form",aR.displayName="ScrollRestoration";var aP=0;function aL(){let{router:e}=ax("useSubmit"),{basename:t}=s.useContext(tF),r=ro("useRouteId"),n=e.fetch,a=e.navigate;return s.useCallback(async(e,o={})=>{let{action:i,method:s,encType:l,formData:u,body:c}=function(e,t){let r,n,a,o,i;if(r1(e)&&"form"===e.tagName.toLowerCase()){let i=e.getAttribute("action");n=i?U(i,t):null,r=e.getAttribute("method")||rQ,a=r3(e.getAttribute("enctype"))||r0,o=new FormData(e)}else if(r1(e)&&"button"===e.tagName.toLowerCase()||r1(e)&&"input"===e.tagName.toLowerCase()&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||i.getAttribute("action");if(n=s?U(s,t):null,r=e.getAttribute("formmethod")||i.getAttribute("method")||rQ,a=r3(e.getAttribute("formenctype"))||r3(i.getAttribute("enctype"))||r0,o=new FormData(i,e),!function(){if(null===r4)try{new FormData(document.createElement("form"),0),r4=!1}catch(e){r4=!0}return r4}()){let{name:t,type:r,value:n}=e;if("image"===r){let e=t?`${t}.`:"";o.append(`${e}x`,"0"),o.append(`${e}y`,"0")}else t&&o.append(t,n)}}else if(r1(e))throw Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');else r=rQ,n=null,a=r0,i=e;return o&&"text/plain"===a&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}(e,t);if(!1===o.navigate){let e=o.fetcherKey||`__${String(++aP)}__`;await n(e,r,o.action||i,{unstable_defaultShouldRevalidate:o.unstable_defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:u,body:c,formMethod:o.method||s,formEncType:o.encType||l,flushSync:o.flushSync})}else await a(o.action||i,{unstable_defaultShouldRevalidate:o.unstable_defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:u,body:c,formMethod:o.method||s,formEncType:o.encType||l,replace:o.replace,state:o.state,fromRouteId:r,flushSync:o.flushSync,viewTransition:o.viewTransition})},[n,a,t,r])}function aD(e,{relative:t}={}){let{basename:r}=s.useContext(tF),n=s.useContext(tU);g(n,"useFormAction must be used inside a RouteContext");let[a]=n.matches.slice(-1),o={...t4(e||".",{relative:t})},i=tY();if(null==e){o.search=i.search;let e=new URLSearchParams(o.search),t=e.getAll("index");if(t.some(e=>""===e)){e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();o.search=r?`?${r}`:""}}return(!e||"."===e)&&a.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),"/"!==r&&(o.pathname="/"===o.pathname?r:X([r,o.pathname])),E(o)}function aA({key:e}={}){let{router:t}=ax("useFetcher"),r=aC("useFetcher"),n=s.useContext(t$),a=s.useContext(tU),o=a.matches[a.matches.length-1]?.route.id;g(n,"useFetcher must be used inside a FetchersContext"),g(a,"useFetcher must be used inside a RouteContext"),g(null!=o,'useFetcher can only be used on routes that contain a unique "id"');let i=s.useId(),[l,u]=s.useState(e||i);e&&e!==l&&u(e);let{deleteFetcher:c,getFetcher:d,resetFetcher:h,fetch:f}=t;s.useEffect(()=>(d(l),()=>c(l)),[c,d,l]);let p=s.useCallback(async(e,t)=>{g(o,"No routeId available for fetcher.load()"),await f(l,o,e,t)},[l,o,f]),m=aL(),y=s.useCallback(async(e,t)=>{await m(e,{...t,navigate:!1,fetcherKey:l})},[l,m]),w=s.useCallback(e=>h(l,e),[h,l]),v=s.useMemo(()=>{let e=s.forwardRef((e,t)=>s.createElement(aE,{...e,navigate:!1,fetcherKey:l,ref:t}));return e.displayName="fetcher.Form",e},[l]),b=r.fetchers.get(l)||eS,E=n.get(l);return s.useMemo(()=>({Form:v,submit:y,load:p,reset:w,...b,data:E}),[v,y,p,w,b,E])}function aT(){return Array.from(aC("useFetchers").fetchers.entries()).map(([e,t])=>({...t,key:e}))}var aO="react-router-scroll-positions",aM={};function a$(e,t,r,n){let a=null;return n&&(a=n("/"!==r?{...e,pathname:U(e.pathname,r)||e.pathname}:e,t)),null==a&&(a=e.key),a}function aN({getKey:e,storageKey:t}={}){let{router:r}=ax("useScrollRestoration"),{restoreScrollPosition:n,preventScrollReset:a}=aC("useScrollRestoration"),{basename:o}=s.useContext(tF),i=tY(),l=rl(),u=ri();s.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),function(e){let{capture:t}={};s.useEffect(()=>{let r=null!=t?{capture:t}:void 0;return window.addEventListener("pagehide",e,r),()=>{window.removeEventListener("pagehide",e,r)}},[e,t])}(s.useCallback(()=>{"idle"===u.state&&(aM[a$(i,l,o,e)]=window.scrollY);try{sessionStorage.setItem(t||aO,JSON.stringify(aM))}catch(e){w(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${e}).`)}window.history.scrollRestoration="auto"},[u.state,e,o,i,l,t])),"u">typeof document&&(s.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(t||aO);e&&(aM=JSON.parse(e))}catch(e){}},[t]),s.useLayoutEffect(()=>{let t=r?.enableScrollRestoration(aM,()=>window.scrollY,e?(t,r)=>a$(t,r,o,e):void 0);return()=>t&&t()},[r,o,e]),s.useLayoutEffect(()=>{if(!1!==n){if("number"==typeof n)return void window.scrollTo(0,n);try{if(i.hash){let e=document.getElementById(decodeURIComponent(i.hash.slice(1)));if(e)return void e.scrollIntoView()}}catch{w(!1,`"${i.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}!0!==a&&window.scrollTo(0,0)}},[i,n,a]))}function aj(e,t){let{capture:r}=t||{};s.useEffect(()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}},[e,r])}function aF({when:e,message:t}){let r=ry(e);s.useEffect(()=>{"blocked"===r.state&&(window.confirm(t)?setTimeout(r.proceed,0):r.reset())},[r,t]),s.useEffect(()=>{"blocked"!==r.state||e||r.reset()},[r,e])}function aH(e,{relative:t}={}){let r=s.useContext(tM);g(null!=r,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=ax("useViewTransitionState"),a=t4(e,{relative:t});if(!r.isTransitioning)return!1;let o=U(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=U(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=j(a.pathname,i)||null!=j(a.pathname,o)}function aU({basename:e,children:t,location:r="/"}){"string"==typeof r&&(r=R(r));let n={pathname:r.pathname||"/",search:r.search||"",hash:r.hash||"",state:null!=r.state?r.state:null,key:r.key||"default",unstable_mask:void 0},a=aI();return s.createElement(rN,{basename:e,children:t,location:n,navigationType:"POP",navigator:a,static:!0,unstable_useTransitions:!1})}function az({context:e,router:t,hydrate:r=!0,nonce:n}){g(t&&e,"You must provide `router` and `context` to <StaticRouterProvider>");let a={router:t,navigator:aI(),static:!0,staticContext:e,basename:e.basename||"/"},o=new Map,i="";if(!1!==r){let t=nd(JSON.stringify(JSON.stringify({loaderData:e.loaderData,actionData:e.actionData,errors:function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)ea(n)?r[e]={...n,__type:"RouteErrorResponse"}:n instanceof Error?r[e]={message:n.message,__type:"Error",..."Error"!==n.name?{__subType:n.name}:{}}:r[e]=n;return r}(e.errors)})));i=`window.__staticRouterHydrationData = JSON.parse(${t});`}let{state:l}=a.router;return s.createElement(s.Fragment,null,s.createElement(tD.Provider,{value:a},s.createElement(tA.Provider,{value:l},s.createElement(t$.Provider,{value:o},s.createElement(tM.Provider,{value:{isTransitioning:!1}},s.createElement(rN,{basename:a.basename,location:l.location,navigationType:l.historyAction,navigator:a.navigator,static:a.static,unstable_useTransitions:!1},s.createElement(rA,{routes:t.routes,future:t.future,state:l,isStatic:!0})))))),i?s.createElement("script",{suppressHydrationWarning:!0,nonce:n,dangerouslySetInnerHTML:{__html:i}}):null)}function aI(){return{createHref:aW,encodeLocation:aJ,push(e){throw Error(`You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a \`navigate(${JSON.stringify(e)})\` somewhere in your app.`)},replace(e){throw Error(`You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a \`navigate(${JSON.stringify(e)}, { replace: true })\` somewhere in your app.`)},go(e){throw Error(`You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a \`navigate(${e})\` somewhere in your app.`)},back(){throw Error("You cannot use navigator.back() on the server because it is a stateless environment.")},forward(){throw Error("You cannot use navigator.forward() on the server because it is a stateless environment.")}}}function aq(e,t){return eL(e,{...t,mapRouteProperties:rx})}function aB(e,t,r={}){let n={},a=L(e,rx,void 0,n),o=t.matches.map(e=>{let t=n[e.route.id]||e.route;return{...e,route:t}}),i=e=>`You cannot use router.${e}() on the server because it is a stateless environment`;return{get basename(){return t.basename},get future(){return{v8_middleware:!1,unstable_passThroughRequests:!1,...r?.future}},get state(){return{historyAction:"POP",location:t.location,matches:o,loaderData:t.loaderData,actionData:t.actionData,errors:t.errors,initialized:!0,renderFallback:!1,navigation:eR,restoreScrollPosition:null,preventScrollReset:!1,revalidation:"idle",fetchers:new Map,blockers:new Map}},get routes(){return a},get window(){return},initialize(){throw i("initialize")},subscribe(){throw i("subscribe")},enableScrollRestoration(){throw i("enableScrollRestoration")},navigate(){throw i("navigate")},fetch(){throw i("fetch")},revalidate(){throw i("revalidate")},createHref:aW,encodeLocation:aJ,getFetcher:()=>eS,deleteFetcher(){throw i("deleteFetcher")},resetFetcher(){throw i("resetFetcher")},dispose(){throw i("dispose")},getBlocker:()=>ex,deleteBlocker(){throw i("deleteBlocker")},patchRoutes(){throw i("patchRoutes")},_internalFetchControllers:new Map,_internalSetRoutes(){throw i("_internalSetRoutes")},_internalSetStateDoNotUseOrYouWillBreakYourApp(){throw i("_internalSetStateDoNotUseOrYouWillBreakYourApp")}}}function aW(e){return"string"==typeof e?e:E(e)}function aJ(e){let t="string"==typeof e?e:E(e),r=aY.test(t=t.replace(/ $/,"%20"))?new URL(t):new URL(t,"http://localhost");return{pathname:r.pathname,search:r.search,hash:r.hash}}var aY=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,aX=r(8389),aV=r(4981);function aG({context:e,url:t,nonce:r}){"string"==typeof t&&(t=new URL(t));let{manifest:n,routeModules:a,criticalCss:o,serverHandoffString:i}=e,l=function e(t,r,n,a,o="",i=nU(t),s=Promise.resolve({Component:()=>null})){return(i[o]||[]).map(o=>{let l=r[o.id];nh(l,"No `routeModule` available to create server routes");let u={...nz(o,l,a),caseSensitive:o.caseSensitive,id:o.id,index:o.index,path:o.path,handle:l.handle,lazy:a?()=>s:void 0,loader:o.hasLoader||o.hasClientLoader?()=>null:void 0},c=e(t,r,n,a,o.id,i,s);return c.length>0&&(u.children=c),u})}(n.routes,a,e.future,e.isSpaMode);for(let t of(e.staticHandlerContext.loaderData={...e.staticHandlerContext.loaderData},e.staticHandlerContext.matches)){let r=t.route.id,n=a[r],o=e.manifest.routes[r];n&&o&&nV(r,n.clientLoader,o.hasLoader,e.isSpaMode)&&(n.HydrateFallback||!o.hasLoader)&&delete e.staticHandlerContext.loaderData[r]}let u=aB(l,e.staticHandlerContext);return s.createElement(s.Fragment,null,s.createElement(n8.Provider,{value:{manifest:n,routeModules:a,criticalCss:o,serverHandoffString:i,future:e.future,ssr:e.ssr,isSpaMode:e.isSpaMode,routeDiscovery:e.routeDiscovery,serializeError:e.serializeError,renderMeta:e.renderMeta}},s.createElement(al,{location:u.state.location},s.createElement(az,{router:u,context:e.staticHandlerContext,hydrate:!1}))),e.serverHandoffStream?s.createElement(s.Suspense,null,s.createElement(ny,{context:e,identifier:0,reader:e.serverHandoffStream.getReader(),textDecoder:new TextDecoder,nonce:r})):null)}function aK(e,t){return function({initialEntries:r,initialIndex:n,hydrationData:a,future:o}){let i=s.useRef(),l=s.useRef();return null==i.current&&(l.current={future:{unstable_passThroughRequests:o?.unstable_passThroughRequests===!0,unstable_subResourceIntegrity:o?.unstable_subResourceIntegrity===!0,v8_middleware:o?.v8_middleware===!0,unstable_trailingSlashAwareDataRequests:o?.unstable_trailingSlashAwareDataRequests===!0},manifest:{routes:{},entry:{imports:[],module:""},url:"",version:""},routeModules:{},ssr:!1,isSpaMode:!1,routeDiscovery:{mode:"lazy",manifestPath:"/__manifest"}},i.current=rk(function e(t,r,n,a,o){return t.map(t=>{if(!t.id)throw Error("Expected a route.id in react-router processRoutes() function");let i={id:t.id,path:t.path,index:t.index,Component:t.Component?rJ(t.Component):void 0,HydrateFallback:t.HydrateFallback?rV(t.HydrateFallback):void 0,ErrorBoundary:t.ErrorBoundary?rZ(t.ErrorBoundary):void 0,action:t.action?e=>t.action({...e,context:r}):void 0,loader:t.loader?e=>t.loader({...e,context:r}):void 0,middleware:t.middleware?t.middleware.map(e=>(...t)=>e({...t[0],context:r},t[1])):void 0,handle:t.handle,shouldRevalidate:t.shouldRevalidate},s={id:t.id,path:t.path,index:t.index,parentId:o,hasAction:null!=t.action,hasLoader:null!=t.loader,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasErrorBoundary:null!=t.ErrorBoundary,module:"build/stub-path-to-module.js",clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0};return n.routes[i.id]=s,a[t.id]={default:i.Component||rM,ErrorBoundary:i.ErrorBoundary||void 0,handle:t.handle,links:t.links,meta:t.meta,shouldRevalidate:t.shouldRevalidate},t.children&&(i.children=e(t.children,r,n,a,i.id)),i})}(L(e,e=>e),void 0!==t?t:o?.v8_middleware?new k:{},l.current.manifest,l.current.routeModules),{initialEntries:r,initialIndex:n,hydrationData:a})),s.createElement(n8.Provider,{value:l.current},s.createElement(rP,{router:i.current}))}}var aZ=new TextEncoder,aQ=async(e,t)=>{let r=aZ.encode(e),n=await a1(t,["sign"]);return e+"."+btoa(String.fromCharCode(...new Uint8Array(await crypto.subtle.sign("HMAC",n,r)))).replace(/=+$/,"")},a0=async(e,t)=>{let r=e.lastIndexOf("."),n=e.slice(0,r),a=e.slice(r+1),o=aZ.encode(n),i=await a1(t,["verify"]);try{let e=function(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}(atob(a));return!!await crypto.subtle.verify("HMAC",i,e,o)&&n}catch(e){return!1}},a1=async(e,t)=>crypto.subtle.importKey("raw",aZ.encode(e),{name:"HMAC",hash:"SHA-256"},!1,t),a2=(e,t={})=>{var r;let{secrets:n=[],...a}={path:"/",sameSite:"lax",...t};return r=e,rE(!a.expires,`The "${r}" cookie has an "expires" property set. This will cause the expires value to not be updated when the session is committed. Instead, you should set the expires value when serializing the cookie. You can use \`commitSession(session, { expires })\` if using a session storage object, or \`cookie.serialize("value", { expires })\` if you're using the cookie directly.`),{get name(){return e},get isSigned(){return n.length>0},get expires(){return void 0!==a.maxAge?new Date(Date.now()+1e3*a.maxAge):a.expires},async parse(t,r){if(!t)return null;let o=(0,aX.parse)(t,{...a,...r});if(!(e in o))return null;{let t=o[e];return"string"==typeof t&&""!==t?await a3(t,n):""}},serialize:async(t,r)=>(0,aX.serialize)(e,""===t?"":await a5(t,n),{...a,...r})}},a4=e=>null!=e&&"string"==typeof e.name&&"boolean"==typeof e.isSigned&&"function"==typeof e.parse&&"function"==typeof e.serialize;async function a5(e,t){let r=btoa(function(e){let t,r,n=e.toString(),a="",o=0;for(;o<n.length;){if("%"===(t=n.charAt(o++))){if("u"===n.charAt(o)){if(r=n.slice(o+1,o+5),/^[\da-f]{4}$/i.exec(r)){a+=String.fromCharCode(parseInt(r,16)),o+=5;continue}}else if(r=n.slice(o,o+2),/^[\da-f]{2}$/i.exec(r)){a+=String.fromCharCode(parseInt(r,16)),o+=2;continue}}a+=t}return a}(encodeURIComponent(JSON.stringify(e))));return t.length>0&&(r=await aQ(r,t[0])),r}async function a3(e,t){if(t.length>0){for(let r of t){let t=await a0(e,r);if(!1!==t)return a8(t)}return null}return a8(e)}function a8(e){try{return JSON.parse(decodeURIComponent(function(e){let t,r,n=e.toString(),a="",o=0;for(;o<n.length;)t=n.charAt(o++),/[\w*+\-./@]/.exec(t)?a+=t:(r=t.charCodeAt(0))<256?a+="%"+a9(r,2):a+="%u"+a9(r,4).toUpperCase();return a}(atob(e))))}catch(e){return{}}}function a9(e,t){let r=e.toString(16);for(;r.length<t;)r="0"+r;return r}var a6=((a=a6||{}).Development="development",a.Production="production",a.Test="test",a);function a7(e,t){if(e instanceof Error&&"development"!==t){let e=Error("Unexpected Server Error");return e.stack=void 0,e}return e}function oe(e,t){return Object.entries(e).reduce((e,[r,n])=>Object.assign(e,{[r]:a7(n,t)}),{})}function ot(e,t){let r=a7(e,t);return{message:r.message,stack:r.stack}}function or(e,t){if(!e)return null;let r=Object.entries(e),n={};for(let[e,a]of r)if(ea(a))n[e]={...a,__type:"RouteErrorResponse"};else if(a instanceof Error){let r=a7(a,t);n[e]={message:r.message,stack:r.stack,__type:"Error",..."Error"!==r.name?{__subType:r.name}:{}}}else n[e]=a;return n}function on(e,t,r){let n=A(e,t,r);return n?n.map(e=>({params:e.params,pathname:e.pathname,route:e.route})):null}async function oa(e,t,r){var n;let a,o,i=await e({request:r.unstable_passThroughRequests?t.request:(n=function(e){let t=new URL(e.url),r=t.searchParams.getAll("index");t.searchParams.delete("index");let n=[];for(let e of r)e&&n.push(e);for(let e of n)t.searchParams.append("index",e);let a={method:e.method,body:e.body,headers:e.headers,signal:e.signal};return a.body&&(a.duplex="half"),new Request(t.href,a)}(t.request),(a=new URL(n.url)).searchParams.delete("_routes"),(o={method:n.method,body:n.body,headers:n.headers,signal:n.signal}).body&&(o.duplex="half"),new Request(a.href,o)),unstable_url:t.unstable_url,params:t.params,context:t.context,unstable_pattern:t.unstable_pattern});if(tg(i)&&i.init&&i.init.status&&tv(i.init.status))throw new Response(null,i.init);return i}function oo(e,t){if(!1===e||null==e)throw console.error("The following error is a bug in React Router; please open an issue! https://github.com/remix-run/react-router/issues/new/choose"),Error(t)}var oi="__reactRouterDevServerHooks";function os(e){globalThis[oi]=e}function ol(){return globalThis[oi]}function ou(e,t){if("u">typeof process)try{if(process.env?.IS_RR_BUILD_REQUEST==="yes")return e.headers.get(t)}catch(e){}return null}function oc(e){let t={};return Object.values(e).forEach(e=>{if(e){let r=e.parentId||"";t[r]||(t[r]=[]),t[r].push(e)}}),t}function od(e){return nd(JSON.stringify(e))}function oh(e,t){return function(e,t){let r,n=e.errors?e.matches.findIndex(t=>e.errors[t.route.id]):-1,a=n>=0?e.matches.slice(0,n+1):e.matches;if(n>=0){let{actionHeaders:t,actionData:a,loaderHeaders:o,loaderData:i}=e;e.matches.slice(n).some(e=>{let n=e.route.id;return!t[n]||a&&a.hasOwnProperty(n)?o[n]&&!i.hasOwnProperty(n)&&(r=o[n]):r=t[n],null!=r})}let o=new Headers(void 0);return a.reduce((n,o,i)=>{let{id:s}=o.route,l=e.loaderHeaders[s]||new Headers,u=e.actionHeaders[s]||new Headers,c=null!=r&&i===a.length-1,d=c&&r!==l&&r!==u,h=t(o);if(null==h){let e=new Headers(n);return d&&of(r,e),of(u,e),of(l,e),e}let f=new Headers("function"==typeof h?h({loaderHeaders:l,parentHeaders:n,actionHeaders:u,errorHeaders:c?r:void 0}):h);return d&&of(r,f),of(u,f),of(l,f),of(n,f),f},new Headers(o))}(e,e=>{let r=t.routes[e.route.id];return oo(r,`Route with id "${e.route.id}" not found in build`),r.module.headers})}function of(e,t){let r=e.get("Set-Cookie");if(r){let e=(0,aV.splitCookiesString)(r),n=new Set(t.getSetCookie());e.forEach(e=>{n.has(e)||t.append("Set-Cookie",e)})}}function op(e,t){var r;let n,a,o,i=e.get("origin"),s=null;try{s="string"==typeof i&&"null"!==i?new URL(i).host:i}catch{throw Error("`origin` header is not a valid URL. Aborting the action.")}let l=(n=(r=e).get("x-forwarded-host"),a=n?.split(",")[0]?.trim(),o=r.get("host"),a?{type:"x-forwarded-host",value:a}:o?{type:"host",value:o}:void 0);if(s&&(!l||s!==l.value)&&!function(e,t=[]){return t.some(t=>t&&(t===e||function(e,t){let r=e.split("."),n=t.split(".");if(n.length<1||r.length<n.length)return!1;for(;n.length;){let e=n.pop(),t=r.pop();switch(e){case"":return!1;case"*":if(t)continue;return!1;case"**":if(n.length>0)return!1;return void 0!==t;default:if(t!==e)return!1}}return 0===r.length}(e,t)))}(s,t))if(l)throw Error(`${l.type} header does not match \`origin\` header from a forwarded action request. Aborting the action.`);else throw Error("`x-forwarded-host` or `host` headers are not provided. One of these is needed to compare the `origin` header from a forwarded action request. Aborting the action.")}function om(e,t,r){t=t||"/";let n=new URL(e.url),a=n.pathname;r?.unstable_trailingSlashAwareDataRequests?a=a.endsWith("/_.data")?a.replace(/_\.data$/,""):a.replace(/\.data$/,""):("/_root.data"===U(a,t)?a=t:a.endsWith(".data")&&(a=a.replace(/\.data$/,"")),"/"!==U(a,t)&&a.endsWith("/")&&(a=a.slice(0,-1)));let o=new URLSearchParams(n.search);o.delete("_routes");let i=o.toString();return i&&(i=`?${i}`),{pathname:a,search:i,hash:""}}var oy=new Set([...nm,304]);async function og(e,t,r,n,a,o,i){try{var s;try{op(n.headers,Array.isArray(e.allowedActionOrigins)?e.allowedActionOrigins:[])}catch(e){return l(Error("Bad Request"),400)}let t=e.future.unstable_passThroughRequests?n:new Request(a,{method:n.method,body:n.body,headers:n.headers,signal:n.signal,...n.body?{duplex:"half"}:void 0});return s=await r.query(t,{requestContext:o,skipLoaderErrorBubbling:!0,skipRevalidation:!0,generateMiddlewareResponse:e.future.v8_middleware?async e=>{try{var r;return r=await e(t),tw(r)?r:u(r)}catch(e){return l(e)}}:void 0,unstable_normalizePath:t=>om(t,e.basename,e.future)}),tw(s)?s:u(s)}catch(e){return l(e)}function l(r,a=500){return i(r),ov(n,e,t,{result:{error:r},headers:new Headers,status:a})}function u(r){let a=oh(r,e);return tv(r.statusCode)&&a.has("Location")?new Response(null,{status:r.statusCode,headers:a}):(r.errors&&(Object.values(r.errors).forEach(e=>{(!ea(e)||e.error)&&i(e)}),r.errors=oe(r.errors,t)),ov(n,e,t,{result:r.errors?{error:Object.values(r.errors)[0]}:{data:Object.values(r.actionData||{})[0]},headers:a,status:r.statusCode}))}}async function ow(e,t,r,n,a,o,i){let s=new URL(n.url).searchParams.get("_routes"),l=s?new Set(s.split(",")):null;try{var u;let t=e.future.unstable_passThroughRequests?n:new Request(a,{headers:n.headers,signal:n.signal});return u=await r.query(t,{requestContext:o,filterMatchesToLoad:e=>!l||l.has(e.route.id),skipLoaderErrorBubbling:!0,generateMiddlewareResponse:e.future.v8_middleware?async e=>{try{var r;return r=await e(t),tw(r)?r:d(r)}catch(e){return c(e)}}:void 0,unstable_normalizePath:t=>om(t,e.basename,e.future)}),tw(u)?u:d(u)}catch(e){return c(e)}function c(r){return i(r),ov(n,e,t,{result:{error:r},headers:new Headers,status:500})}function d(r){let a=oh(r,e);if(tv(r.statusCode)&&a.has("Location"))return new Response(null,{status:r.statusCode,headers:a});r.errors&&(Object.values(r.errors).forEach(e=>{(!ea(e)||e.error)&&i(e)}),r.errors=oe(r.errors,t));let o={},s=new Set(r.matches.filter(e=>l?l.has(e.route.id):null!=e.route.loader).map(e=>e.route.id));if(r.errors)for(let[e,t]of Object.entries(r.errors))o[e]={error:t};for(let[e,t]of Object.entries(r.loaderData))!(e in o)&&s.has(e)&&(o[e]={data:t});return ov(n,e,t,{result:o,headers:a,status:r.statusCode})}}function ov(e,t,r,{result:n,headers:a,status:o}){let i=new Headers(a);return(i.set("X-Remix-Response","yes"),oy.has(o))?new Response(null,{status:o,headers:i}):(i.set("Content-Type","text/x-script"),i.delete("Content-Length"),new Response(oE(n,e.signal,t.entry.module.streamTimeout,r),{status:o||200,headers:i}))}function ob(e,t,r,n){var a,o,i;let s,l=(a=e.status,o=e.headers,i=r.basename,s=o.get("Location"),i&&(s=U(s,i)||s),{redirect:s,status:a,revalidate:o.has("X-Remix-Revalidate")||o.has("Set-Cookie"),reload:o.has("X-Remix-Reload-Document"),replace:o.has("X-Remix-Replace")}),u=new Headers(e.headers);return u.delete("Location"),u.set("Content-Type","text/x-script"),ov(t,r,n,{result:"GET"===t.method?{[nf]:l}:l,headers:u,status:202})}function oE(e,t,r,n){let a=new AbortController,o=setTimeout(()=>{a.abort(Error("Server Timeout")),s()},"number"==typeof r?r:4950),i=()=>{a.abort(t.reason),s()};t.addEventListener("abort",i);let s=()=>{clearTimeout(o),t.removeEventListener("abort",i)};return function(e,t){let{onComplete:r,plugins:n,postPlugins:a,signal:o}=t??{},i={deferred:{},index:0,indices:new Map,stringified:[],plugins:n,postPlugins:a,signal:o},s=new TextEncoder,l=0;return new ReadableStream({async start(t){let n=await r7.call(i,e);if(Array.isArray(n))throw Error("This should never happen");n<0?t.enqueue(s.encode(`${n}
21
+ `)):(t.enqueue(s.encode(`[${i.stringified.join(",")}]
22
+ `)),l=i.stringified.length-1);let a=new WeakSet,u=Promise.resolve();if(Object.keys(i.deferred).length){let e,r=new Promise((t,r)=>{if(e=t,o){let e=()=>r(o.reason||Error("Signal was aborted."));o.aborted?e():o.addEventListener("abort",t=>{e()})}});for(;Object.keys(i.deferred).length>0;){for(let[e,n]of Object.entries(i.deferred))a.has(n)||a.add(i.deferred[Number(e)]=Promise.race([r,n]).then(r=>u=u.then(async()=>{let n=await r7.call(i,r);if(Array.isArray(n))t.enqueue(s.encode(`P${e}:[["Z",${n[0]}]]
23
+ `)),i.index++,l++;else if(n<0)t.enqueue(s.encode(`P${e}:${n}
24
+ `));else{let r=i.stringified.slice(l+1).join(",");t.enqueue(s.encode(`P${e}:[${r}]
25
+ `)),l=i.stringified.length-1}}),r=>u=u.then(async()=>{r&&"object"==typeof r&&r instanceof Error||(r=Error("An unknown error occurred"));let n=await r7.call(i,r);if(Array.isArray(n))t.enqueue(s.encode(`E${e}:[["Z",${n[0]}]]
26
+ `)),i.index++,l++;else if(n<0)t.enqueue(s.encode(`E${e}:${n}
27
+ `));else{let r=i.stringified.slice(l+1).join(",");t.enqueue(s.encode(`E${e}:[${r}]
28
+ `)),l=i.stringified.length-1}})).finally(()=>{delete i.deferred[Number(e)]}));await Promise.race(Object.values(i.deferred))}e()}await Promise.all(Object.values(i.deferred)),await u,t.close(),r?.()}})}(e,{signal:a.signal,onComplete:s,plugins:[e=>{if(e instanceof Error){let{name:t,message:r,stack:a}="production"===n?a7(e,n):e;return["SanitizedError",t,r,a]}if(e instanceof en){let{data:t,status:r,statusText:n}=e;return["ErrorResponse",t,r,n]}if(e&&"object"==typeof e&&nf in e)return["SingleFetchRedirect",e[nf]]}],postPlugins:[e=>{if(e&&"object"==typeof e)return["SingleFetchClassInstance",Object.fromEntries(Object.entries(e))]},()=>["SingleFetchFallback"]]})}function oR(e,t){var r,n;let a,o,i=function e(t,r="",n=oc(t)){return(n[r]||[]).map(r=>({...r,children:e(t,r.id,n)}))}(e.routes),s=function e(t,r,n="",a=oc(t)){return(a[n]||[]).map(n=>{let o={hasErrorBoundary:"root"===n.id||null!=n.module.ErrorBoundary,id:n.id,path:n.path,middleware:n.module.middleware,loader:n.module.loader?async e=>{let t=ou(e.request,"X-React-Router-Prerender-Data");if(null!=t){let e=t?decodeURI(t):t;oo(e,"Missing prerendered data for route");let r=new TextEncoder().encode(e),a=new ReadableStream({start(e){e.enqueue(r),e.close()}}),o=(await nC(a,global)).value;if(o&&nf in o){let e=o[nf],t={status:e.status};if(e.reload)throw et(e.redirect,t);if(e.replace)throw er(e.redirect,t);throw ee(e.redirect,t)}{oo(o&&n.id in o,"Unable to decode prerendered data");let e=o[n.id];return oo("data"in e,"Unable to process prerendered data"),e.data}}return await oa(n.module.loader,e,r)}:void 0,action:n.module.action?e=>oa(n.module.action,e,r):void 0,handle:n.module.handle};return n.index?{index:!0,...o}:{caseSensitive:n.caseSensitive,children:e(t,r,n.id,a),...o}})}(e.routes,e.future),l="development"===t||"production"===t||"test"===t?t:"production",u=eL(s,{basename:e.basename,unstable_instrumentations:e.entry.module.unstable_instrumentations}),c=e.entry.module.handleError||((e,{request:t})=>{"test"===l||t.signal.aborted||console.error(ea(e)&&e.error?e.error:e)}),d=async(r,n)=>{let a,o,s={},d=e=>{"development"===t&&ol()?.processRequestError?.(e),c(e,{context:a,params:s,request:r})};if(e.future.v8_middleware){if(n&&!(n instanceof k)){let e=Error("Invalid `context` value provided to `handleRequest`. When middleware is enabled you must return an instance of `RouterContextProvider` from your `getLoadContext` function.");return d(e),oP(e,l)}a=n||new k}else a=n||{};let h=new URL(r.url),f=om(r,e.basename,e.future).pathname,p="yes"===ou(r,"X-React-Router-SPA-Mode");if(!e.ssr){let t=decodeURI(f);if(e.basename&&"/"!==e.basename){let n=U(t,e.basename);if(null==n)return c(new en(404,"Not Found",`Refusing to prerender the \`${t}\` path because it does not start with the basename \`${e.basename}\``),{context:a,params:s,request:r}),new Response("Not Found",{status:404,statusText:"Not Found"});t=n}if(0===e.prerender.length)p=!0;else if(!e.prerender.includes(t)&&!e.prerender.includes(t+"/"))if(h.pathname.endsWith(".data"))return c(new en(404,"Not Found",`Refusing to SSR the path \`${t}\` because \`ssr:false\` is set and the path is not included in the \`prerender\` config, so in production the path will be a 404.`),{context:a,params:s,request:r}),new Response("Not Found",{status:404,statusText:"Not Found"});else p=!0}let m=n1(e.routeDiscovery.manifestPath,e.basename);if(h.pathname===m)try{return await ox(e,i,h)}catch(e){return d(e),new Response("Unknown Server Error",{status:500})}let y=on(i,f,e.basename);if(y&&y.length>0&&Object.assign(s,y[0].params),h.pathname.endsWith(".data")){let t=on(i,f,e.basename);tb(o=await oC(l,e,u,r,f,a,d))&&(o=ob(o,r,e,l)),e.entry.module.handleDataRequest&&tb(o=await e.entry.module.handleDataRequest(o,{context:a,params:t?t[0].params:{},request:r}))&&(o=ob(o,r,e,l))}else if(!p&&y&&null==y[y.length-1].route.module.default&&null==y[y.length-1].route.module.ErrorBoundary)o=await o_(l,e,u,y.slice(-1)[0].route.id,r,a,d);else{let n,{pathname:i}=h;e.unstable_getCriticalCss?n=await e.unstable_getCriticalCss({pathname:i}):"development"===t&&ol()?.getCriticalCss&&(n=await ol()?.getCriticalCss?.(i)),o=await ok(l,e,u,r,a,d,p,n)}return"HEAD"===r.method?new Response(null,{headers:o.headers,status:o.status,statusText:o.statusText}):o};return e.entry.module.unstable_instrumentations&&(r=d,n=e.entry.module.unstable_instrumentations.map(e=>e.handler).filter(Boolean),a={request:[]},n.forEach(e=>e({instrument(e){for(let t of Object.keys(e))e[t]&&a[t].push(e[t])}})),o=r,a.request.length>0&&(o=ec(a.request,r,(...e)=>{let[t,r]=e;return{request:ep(t),context:null!=r?em(r):r}})),d=o),{routes:i,dataRoutes:s,serverMode:l,staticHandler:u,errorHandler:c,requestHandler:d}}var oS=(e,t)=>{let r,n,a,o,i,s;return async function(l,u){if(r="function"==typeof e?await e():e,"function"==typeof e){let e=oR(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler,s=e.requestHandler}else if(!n||!a||!o||!i||!s){let e=oR(r,t);n=e.routes,a=e.serverMode,o=e.staticHandler,i=e.errorHandler,s=e.requestHandler}return s(l,u)}};async function ox(e,t,r){if(e.assets.version!==r.searchParams.get("version"))return new Response(null,{status:204,headers:{"X-Remix-Reload-Document":"true"}});let n={};if(r.searchParams.has("paths")){let a=new Set;for(let o of((r.searchParams.get("paths")||"").split(",").filter(Boolean).forEach(e=>{e.startsWith("/")||(e=`/${e}`);let t=e.split("/").slice(1);t.forEach((e,r)=>{let n=t.slice(0,r+1).join("/");a.add(`/${n}`)})}),a)){let r=on(t,o,e.basename);if(r)for(let t of r){let r=t.route.id,a=e.assets.routes[r];a&&(n[r]=a)}}return Response.json(n,{headers:{"Cache-Control":"public, max-age=31536000, immutable"}})}return new Response("Invalid Request",{status:400})}async function oC(e,t,r,n,a,o,i){let s=new URL(n.url);return s.pathname=a,"GET"!==n.method?await og(t,e,r,n,s,o,i):await ow(t,e,r,n,s,o,i)}async function ok(e,t,r,n,a,o,i,s){try{if("POST"===n.method)try{op(n.headers,Array.isArray(t.allowedActionOrigins)?t.allowedActionOrigins:[])}catch(e){return o(e),new Response("Bad Request",{status:400})}let e=await r.query(n,{requestContext:a,generateMiddlewareResponse:t.future.v8_middleware?async e=>{try{let t=await e(n);return tw(t)||(t=await l(t,i)),t}catch(e){return o(e),new Response(null,{status:500})}}:void 0,unstable_normalizePath:e=>om(e,t.basename,t.future)});return tw(e)||(e=await l(e,i)),e}catch(e){return o(e),new Response(null,{status:500})}async function l(i,l){var u,c;let d=oh(i,t);if(oy.has(i.statusCode))return new Response(null,{status:i.statusCode,headers:d});i.errors&&(Object.values(i.errors).forEach(e=>{(!ea(e)||e.error)&&o(e)}),i.errors=oe(i.errors,e));let h={loaderData:i.loaderData,actionData:i.actionData,errors:or(i.errors,e)},f={basename:t.basename,future:t.future,routeDiscovery:t.routeDiscovery,ssr:t.ssr,isSpaMode:l},p={manifest:t.assets,routeModules:Object.keys(u=t.routes).reduce((e,t)=>{let r=u[t];return r&&(e[t]=r.module),e},{}),staticHandlerContext:i,criticalCss:s,serverHandoffString:od({...f,criticalCss:s}),serverHandoffStream:oE(h,n.signal,t.entry.module.streamTimeout,e),renderMeta:{},future:t.future,ssr:t.ssr,routeDiscovery:t.routeDiscovery,isSpaMode:l,serializeError:t=>ot(t,e)},m=t.entry.module.default;try{return await m(n,i.statusCode,d,p,a)}catch(u){o(u);let s=u;if(tw(u))try{let e,t=await ((e=(c=u).headers.get("Content-Type"))&&/\bapplication\/json\b/.test(e)?null==c.body?null:c.json():c.text());s=new en(u.status,u.statusText,t)}catch(e){}(i=eD(r.dataRoutes,i,s)).errors&&(i.errors=oe(i.errors,e));let l={loaderData:i.loaderData,actionData:i.actionData,errors:or(i.errors,e)};p={...p,staticHandlerContext:i,serverHandoffString:od(f),serverHandoffStream:oE(l,n.signal,t.entry.module.streamTimeout,e),renderMeta:{}};try{return await m(n,i.statusCode,d,p,a)}catch(t){return o(t),oP(t,e)}}}}async function o_(e,t,r,n,a,o,i){try{let e=await r.queryRoute(a,{routeId:n,requestContext:o,generateMiddlewareResponse:t.future.v8_middleware?async e=>{try{let t=await e(a);return s(t)}catch(e){return l(e)}}:void 0,unstable_normalizePath:e=>om(e,t.basename,t.future)});return s(e)}catch(e){return l(e)}function s(e){return tw(e)?e:"string"==typeof e?new Response(e):Response.json(e)}function l(t){if(tw(t))return t;if(ea(t)){var r,n;return i(t),r=t,n=e,Response.json(ot(r.error||Error("Unexpected Server Error"),n),{status:r.status,statusText:r.statusText})}if(t instanceof Error&&"Expected a response from queryRoute"===t.message){let t=Error("Expected a Response to be returned from resource route handler");return i(t),oP(t,e)}return i(t),oP(t,e)}}function oP(e,t){let r="Unexpected Server Error";return"production"!==t&&(r+=`
29
+
30
+ ${String(e)}`),new Response(r,{status:500,headers:{"Content-Type":"text/plain"}})}function oL(e){return`__flash_${e}__`}var oD=(e={},t="")=>{let r=new Map(Object.entries(e));return{get id(){return t},get data(){return Object.fromEntries(r)},has:e=>r.has(e)||r.has(oL(e)),get(e){if(r.has(e))return r.get(e);let t=oL(e);if(r.has(t)){let e=r.get(t);return r.delete(t),e}},set(e,t){r.set(e,t)},flash(e,t){r.set(oL(e),t)},unset(e){r.delete(e)}}},oA=e=>null!=e&&"string"==typeof e.id&&void 0!==e.data&&"function"==typeof e.has&&"function"==typeof e.get&&"function"==typeof e.set&&"function"==typeof e.flash&&"function"==typeof e.unset;function oT({cookie:e,createData:t,readData:r,updateData:n,deleteData:a}){let o=a4(e)?e:a2(e?.name||"__session",e);return oO(o),{async getSession(e,t){let n=e&&await o.parse(e,t);return oD(n&&await r(n)||{},n||"")},async commitSession(e,r){let{id:a,data:i}=e,s=r?.maxAge!=null?new Date(Date.now()+1e3*r.maxAge):r?.expires!=null?r.expires:o.expires;return a?await n(a,i,s):a=await t(i,s),o.serialize(a,r)},destroySession:async(e,t)=>(await a(e.id),o.serialize("",{...t,maxAge:void 0,expires:new Date(0)}))}}function oO(e){rE(e.isSigned,`The "${e.name}" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://reactrouter.com/explanation/sessions-and-cookies#signing-cookies for more information.`)}function oM({cookie:e}={}){let t=a4(e)?e:a2(e?.name||"__session",e);return oO(t),{getSession:async(e,r)=>oD(e&&await t.parse(e,r)||{}),async commitSession(e,r){let n=await t.serialize(e.data,r);if(n.length>4096)throw Error("Cookie length will exceed browser maximum. Length: "+n.length);return n},destroySession:async(e,r)=>t.serialize("",{...r,maxAge:void 0,expires:new Date(0)})}}function o$({cookie:e}={}){let t=new Map;return oT({cookie:e,async createData(e,r){let n=Math.random().toString(36).substring(2,10);return t.set(n,{data:e,expires:r}),n},async readData(e){if(t.has(e)){let{data:r,expires:n}=t.get(e);if(!n||n>new Date)return r;n&&t.delete(e)}return null},async updateData(e,r,n){t.set(e,{data:r,expires:n})},async deleteData(e){t.delete(e)}})}function oN(e,...t){let r=t[0],n=(function(e){let t=e.length-1,r=e[t];if("*"!==r&&"/"!==r)return e;for(t--;t>=0&&"/"===e[t];t--);return e.slice(0,t+1)})(e).replace(/\/:([\w-]+)(\?)?/g,(t,n,a)=>{let o=r?.[n];if(void 0===a&&void 0===o)throw Error(`Path '${e}' requires param '${n}' but it was not provided`);return void 0===o?"":"/"+o});if(e.endsWith("*")){let e=r?.["*"];void 0!==e&&(n+="/"+e)}return n||"/"}var oj=new TextEncoder,oF="</body></html>";function oH(e){let t,r=new TextDecoder,n=new Promise(e=>t=e),a=!1,o=[],i=null;function s(e){for(let t of o){let n=r.decode(t,{stream:!0});n.endsWith(oF)&&(n=n.slice(0,-oF.length)),e.enqueue(oj.encode(n))}o.length=0,i=null}return new TransformStream({transform(r,n){o.push(r),i||(i=setTimeout(async()=>{s(n),a||(a=!0,oU(e,n).catch(e=>n.error(e)).then(t))},0))},async flush(e){await n,i&&(clearTimeout(i),s(e)),e.enqueue(oj.encode("</body></html>"))}})}async function oU(e,t){let r=new TextDecoder("utf-8",{fatal:!0}),n=e.getReader();try{let e;for(;(e=await n.read())&&!e.done;){let n=e.value;try{oz(JSON.stringify(r.decode(n,{stream:!0})),t)}catch(r){let e=JSON.stringify(btoa(String.fromCodePoint(...n)));oz(`Uint8Array.from(atob(${e}), m => m.codePointAt(0))`,t)}}}finally{n.releaseLock()}let a=r.decode();a.length&&oz(JSON.stringify(a),t)}function oz(e,t){t.enqueue(oj.encode(`<script>${`(self.__FLIGHT_DATA||=[]).push(${e})`.replace(/<!--/g,"<\\!--").replace(/<\/(script)/gi,"</\\$1")}</script>`))}var oI=class extends l().Component{constructor(e){super(e),this.state={error:null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:null,location:e.location}:{error:t.error,location:t.location}}render(){return this.state.error?l().createElement(oB,{error:this.state.error,renderAppShell:!0}):this.props.children}};function oq({renderAppShell:e,title:t,children:r}){return e?l().createElement("html",{lang:"en"},l().createElement("head",null,l().createElement("meta",{charSet:"utf-8"}),l().createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),l().createElement("title",null,t)),l().createElement("body",null,l().createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},r))):r}function oB({error:e,renderAppShell:t}){let r;console.error(e);let n=l().createElement("script",{dangerouslySetInnerHTML:{__html:`
31
+ console.log(
32
+ "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
33
+ );
34
+ `}});return ea(e)?l().createElement(oq,{renderAppShell:t,title:"Unhandled Thrown Response!"},l().createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),n):(r=e instanceof Error?e:Error(null==e?"Unknown Error":"object"==typeof e&&"toString"in e?e.toString():JSON.stringify(e)),l().createElement(oq,{renderAppShell:t,title:"Application Error!"},l().createElement("h1",{style:{fontSize:"24px"}},"Application Error"),l().createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},r.stack),n))}function oW({hasRootLayout:e}){let t=rh();if(void 0===e)throw Error("Missing 'hasRootLayout' prop");return l().createElement(oB,{renderAppShell:!e,error:t})}var oJ=()=>null,oY="/__manifest",oX=s.use;async function oV({request:e,serverResponse:t,createFromReadableStream:r,renderHTML:n,hydrate:a=!0}){let o,i,s,l=new URL(e.url);if(l.pathname.endsWith(".rsc")||l.pathname.endsWith(".manifest")||e.headers.has("rsc-action-id")||"true"===t.headers.get("React-Router-Resource"))return t;if(!t.body)throw Error("Missing body in server response");let u=t.clone(),c=null;a&&(c=t.clone());let d=t.body,h=[],f=()=>o?new ReadableStream({start(e){o.forEach(t=>e.enqueue(t)),h.push(e)}}):(o=[],d.pipeThrough(new TransformStream({transform(e,t){o.push(e),t.enqueue(e),h.forEach(t=>t.enqueue(e))},flush(){h.forEach(e=>e.close()),h=[]}}))),p=null;try{if(!u.body)throw Error("Failed to clone server response");let e=await r(u.body);if(202===t.status&&"redirect"===e.type){let r=new Headers(t.headers);return r.delete("Content-Encoding"),r.delete("Content-Length"),r.delete("Content-Type"),r.delete("X-Remix-Response"),r.set("Location",e.location),new Response(c?.body||"",{headers:r,status:e.status,statusText:t.statusText})}let o=new Headers,l=t.status,d=t.statusText,h=await n(()=>{let e=Promise.resolve(r(f()));return Object.defineProperties(e,{_deepestRenderedBoundaryId:{get:()=>p,set(e){p=e}},formState:{get:()=>e.then(e=>"render"===e.type?e.formState:void 0)}})},{onError(e){if("object"==typeof e&&e&&"digest"in e&&"string"==typeof e.digest){if(i=tq(e.digest))return e.digest;let t=tB(e.digest);if(t)return s=t,l=t.status,d=t.statusText,e.digest}},onHeaders(e){for(let[t,r]of e)o.append(t,r)}}),m=new Headers(o);for(let[e,r]of t.headers)m.append(e,r);if(m.set("Content-Type","text/html; charset=utf-8"),i)return m.set("Location",i.location),new Response(h,{status:i.status,headers:m});let y=new TransformStream({flush(e){i&&e.enqueue(new TextEncoder().encode(`<meta http-equiv="refresh" content="0;url=${nd(i.location)}"/>`))}});if(!a)return new Response(h.pipeThrough(y),{status:l,statusText:d,headers:m});if(!c?.body)throw Error("Failed to clone server response");let g=h.pipeThrough(oH(c.body)).pipeThrough(y);return new Response(g,{status:l,statusText:d,headers:m})}catch(e){if(e instanceof Response)return e;if(i)return new Response(`Redirect: ${i.location}`,{status:i.status,headers:{Location:i.location}});try{let o;e=s??e;let[i,l]=ea(e)?[e.status,e.statusText]:[500,""],u=new Headers,d=await n(()=>{let t=Promise.resolve(r(f())).then(t=>Object.assign(t,{status:i,errors:p?{[p]:e}:{}}));return Object.defineProperties(t,{_deepestRenderedBoundaryId:{get:()=>p,set(e){p=e}},formState:{get:()=>t.then(e=>"render"===e.type?e.formState:void 0)}})},{onError(e){if("object"==typeof e&&e&&"digest"in e&&"string"==typeof e.digest){if(o=tq(e.digest))return e.digest;let t=tB(e.digest);if(t)return i=t.status,l=t.statusText,e.digest}},onHeaders(e){for(let[t,r]of e)u.append(t,r)}}),h=new Headers(u);for(let[e,r]of t.headers)h.append(e,r);if(h.set("Content-Type","text/html; charset=utf-8"),o)return h.set("Location",o.location),new Response(d,{status:o.status,headers:h});let m=new TransformStream({flush(e){o&&e.enqueue(new TextEncoder().encode(`<meta http-equiv="refresh" content="0;url=${nd(o.location)}"/>`))}});if(!a)return new Response(d.pipeThrough(m),{status:i,statusText:l,headers:h});if(!c?.body)throw Error("Failed to clone server response");let y=d.pipeThrough(oH(c.body)).pipeThrough(m);return new Response(y,{status:i,statusText:l,headers:h})}catch{}throw e}}function oG({getPayload:e}){let t=e(),r=function(e){if(oX)return oX(e);throw Error("React Router v7 requires React 19+ for RSC features.")}(t);if("redirect"===r.type)throw new Response(null,{status:r.status,headers:{Location:r.location}});if("render"!==r.type)return null;let n={...r.loaderData};for(let e of r.matches)nV(e.id,e.clientLoader,e.hasLoader,!1)&&(e.hydrateFallbackElement||!e.hasLoader)&&delete n[e.id];let a={get _deepestRenderedBoundaryId(){return t._deepestRenderedBoundaryId??null},set _deepestRenderedBoundaryId(boundaryId){t._deepestRenderedBoundaryId=boundaryId},actionData:r.actionData,actionHeaders:{},basename:r.basename,errors:r.errors,loaderData:n,loaderHeaders:{},location:r.location,statusCode:200,matches:r.matches.map(e=>({params:e.params,pathname:e.pathname,pathnameBase:e.pathnameBase,route:{id:e.id,action:e.hasAction||!!e.clientAction,handle:e.handle,hasErrorBoundary:e.hasErrorBoundary,loader:e.hasLoader||!!e.clientLoader,index:e.index,path:e.path,shouldRevalidate:e.shouldRevalidate}}))},o=aB(r.matches.reduceRight((e,t)=>{let r={id:t.id,action:t.hasAction||!!t.clientAction,element:t.element,errorElement:t.errorElement,handle:t.handle,hasErrorBoundary:!!t.errorElement,hydrateFallbackElement:t.hydrateFallbackElement,index:t.index,loader:t.hasLoader||!!t.clientLoader,path:t.path,shouldRevalidate:t.shouldRevalidate};return e.length>0&&(r.children=e),[r]},[]),a),i={future:{v8_middleware:!1,unstable_subResourceIntegrity:!1,unstable_trailingSlashAwareDataRequests:!0,unstable_passThroughRequests:!0},isSpaMode:!1,ssr:!0,criticalCss:"",manifest:{routes:{},version:"1",url:"",entry:{module:"",imports:[]}},routeDiscovery:"initial"===r.routeDiscovery.mode?{mode:"initial",manifestPath:oY}:{mode:"lazy",manifestPath:r.routeDiscovery.manifestPath||oY},routeModules:function(e){let t={};for(let a of e.matches){var r=t,n=a;for(let e of n=Array.isArray(n)?n:[n])r[e.id]={links:e.links,meta:e.meta,default:oJ}}return t}(r)};return s.createElement(tT.Provider,{value:!0},s.createElement(oI,{location:r.location},s.createElement(n8.Provider,{value:i},s.createElement(az,{context:a,router:o,hydrate:!1,nonce:r.nonce}))))}function oK(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new en(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack=n.stack,r[e]=a}catch(e){}}if(null==r[e]){let t=Error(n.message);t.stack=n.stack,r[e]=t}}else r[e]=n;return r}function oZ({state:e,routes:t,getRouteInfo:r,location:n,basename:a,isSpaMode:o}){let i={...e,loaderData:{...e.loaderData}},s=A(t,n,a);if(s)for(let e of s){let t=e.route.id,n=r(t);nV(t,n.clientLoader,n.hasLoader,o)&&(n.hasHydrateFallback||!n.hasLoader)?delete i.loaderData[t]:n.hasLoader||(i.loaderData[t]=null)}return i}var oQ=r(3385);function o0(e){return s.createElement(rP,{flushSync:oQ.flushSync,...e})}var o1=null,o2=null;function o4(e){o2||(o2=function({getContext:e,unstable_instrumentations:t}){let r;if(!o1&&window.__reactRouterContext&&window.__reactRouterManifest&&window.__reactRouterRouteModules){if(!0===window.__reactRouterManifest.sri){let e=document.querySelector("script[rr-importmap]");if(e?.textContent)try{window.__reactRouterManifest.sri=JSON.parse(e.textContent).integrity}catch(e){console.error("Failed to parse import map",e)}}o1={context:window.__reactRouterContext,manifest:window.__reactRouterManifest,routeModules:window.__reactRouterRouteModules,stateDecodingPromise:void 0,router:void 0,routerInitialized:!1}}if(!o1)throw Error("You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`");let n=o1;if(!o1.stateDecodingPromise){let e=o1.context.stream;g(e,"No stream found for single fetch decoding"),o1.context.stream=void 0,o1.stateDecodingPromise=nC(e,window).then(e=>{o1.context.state=e.value,n.stateDecodingPromise.value=!0}).catch(e=>{n.stateDecodingPromise.error=e})}if(o1.stateDecodingPromise.error)throw o1.stateDecodingPromise.error;if(!o1.stateDecodingPromise.value)throw o1.stateDecodingPromise;let a=nW(o1.manifest.routes,o1.routeModules,o1.context.state,o1.context.ssr,o1.context.isSpaMode);if(o1.context.isSpaMode){let{loaderData:e}=o1.context.state;o1.manifest.routes.root?.hasLoader&&e&&"root"in e&&(r={loaderData:{root:e.root}})}else(r=oZ({state:o1.context.state,routes:a,getRouteInfo:e=>({clientLoader:o1.routeModules[e]?.clientLoader,hasLoader:o1.manifest.routes[e]?.hasLoader===!0,hasHydrateFallback:o1.routeModules[e]?.HydrateFallback!=null}),location:window.location,basename:window.__reactRouterContext?.basename,isSpaMode:o1.context.isSpaMode}))&&r.errors&&(r.errors=oK(r.errors));window.history.state&&window.history.state.masked&&window.history.replaceState({...window.history.state,masked:void 0},"");let o=eP({routes:a,history:m(),basename:o1.context.basename,getContext:e,hydrationData:r,hydrationRouteProperties:rC,unstable_instrumentations:t,mapRouteProperties:rx,future:{unstable_passThroughRequests:o1.context.future.unstable_passThroughRequests},dataStrategy:ng(()=>o,o1.manifest,o1.routeModules,o1.context.ssr,o1.context.basename,o1.context.future.unstable_trailingSlashAwareDataRequests),patchRoutesOnNavigation:nQ(()=>o,o1.manifest,o1.routeModules,o1.context.ssr,o1.context.routeDiscovery,o1.context.isSpaMode,o1.context.basename)});return o1.router=o,o.state.initialized&&(o1.routerInitialized=!0,o.initialize()),o.createRoutesForHMR=nI,window.__reactRouterDataRouter=o,o}({getContext:e.getContext,unstable_instrumentations:e.unstable_instrumentations}));let[t,r]=s.useState(void 0);s.useEffect(()=>{},[]),s.useEffect(()=>{},[t]);let[n,a]=s.useState(o2.state.location);return s.useLayoutEffect(()=>{o1&&o1.router&&!o1.routerInitialized&&(o1.routerInitialized=!0,o1.router.initialize())},[]),s.useLayoutEffect(()=>{if(o1&&o1.router)return o1.router.subscribe(e=>{e.location!==n&&a(e.location)})},[n]),g(o1,"ssrInfo unavailable for HydratedRouter"),n0(o2,o1.manifest,o1.routeModules,o1.context.ssr,o1.context.routeDiscovery,o1.context.isSpaMode),s.createElement(s.Fragment,null,s.createElement(n8.Provider,{value:{manifest:o1.manifest,routeModules:o1.routeModules,future:o1.context.future,criticalCss:t,ssr:o1.context.ssr,isSpaMode:o1.context.isSpaMode,routeDiscovery:o1.context.routeDiscovery}},s.createElement(al,{location:n},s.createElement(o0,{router:o2,unstable_useTransitions:e.unstable_useTransitions,onError:e.onError}))),s.createElement(s.Fragment,null))}C()}}]);
35
+ //# sourceMappingURL=997.js.map