@pstdio/ui 0.2.0 → 0.2.1

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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/alert.tsx","../src/components/breadcrumb.tsx","../src/components/checkbox.tsx","../src/components/content-placeholder.tsx","../src/components/delete-confirmation-modal.tsx","../src/components/diff-card.tsx","../src/components/scroll-area.tsx","../src/components/diff-drawer.tsx","../src/components/documentation/docs-changelog.tsx","../src/components/documentation/docs-outline.tsx","../src/components/documentation/docs-pagination.tsx","../src/components/item-section.tsx","../src/components/menu-item.tsx","../src/components/panel-menu.tsx","../src/components/documentation/docs-sidebar.tsx","../src/components/error-boundary.tsx","../src/components/folder-picker-dialog.tsx","../src/components/horizontal-menu-stack.tsx","../src/components/open-source-notices-screen.tsx","../src/components/properties.tsx","../src/components/session-indicator.tsx","../src/components/sidebar-tree/sidebar-tree.tsx","../src/components/sidebar-next/sidebar-next.store.ts","../src/components/sidebar-next/sidebar-next-footer.tsx","../src/components/sidebar-next/sidebar-next-header.tsx","../src/components/sidebar-next/sidebar-next.tsx","../src/components/switch.tsx","../src/components/tickets/ticket-card.tsx","../src/components/tickets/ticket-board.tsx","../src/components/tickets/ticket-list.tsx","../src/components/toaster.tsx","../src/utils/apply-theme-preference.ts","../src/utils/theme-preference.tsx"],"sourcesContent":["import { Alert as ChakraAlert } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface AlertProps extends Omit<ChakraAlert.RootProps, \"title\"> {\n startElement?: React.ReactNode;\n endElement?: React.ReactNode;\n title?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\nexport const AlertMessage = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(props, ref) {\n const { title, children, icon, startElement, endElement, ...rest } = props;\n return (\n <ChakraAlert.Root ref={ref} {...rest}>\n {startElement || <ChakraAlert.Indicator>{icon}</ChakraAlert.Indicator>}\n {children ? (\n <ChakraAlert.Content>\n <ChakraAlert.Title>{title}</ChakraAlert.Title>\n <ChakraAlert.Description>{children}</ChakraAlert.Description>\n </ChakraAlert.Content>\n ) : (\n <ChakraAlert.Title flex=\"1\">{title}</ChakraAlert.Title>\n )}\n {endElement}\n </ChakraAlert.Root>\n );\n});\n","import { Breadcrumb as ChakraBreadcrumb, type SystemStyleObject } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface BreadcrumbItem {\n title: React.ReactNode;\n url?: string;\n onClick?: () => void;\n}\n\nexport interface BreadcrumbLinkProps {\n to: string;\n children: React.ReactNode;\n}\n\nexport interface BreadcrumbProps extends ChakraBreadcrumb.RootProps {\n separator?: React.ReactNode;\n separatorGap?: SystemStyleObject[\"gap\"];\n items: BreadcrumbItem[];\n linkComponent?: React.ComponentType<BreadcrumbLinkProps>;\n}\n\nexport const Breadcrumb = React.forwardRef<HTMLDivElement, BreadcrumbProps>(function BreadcrumbRoot(props, ref) {\n const { separator, separatorGap, items, linkComponent: LinkComponent, ...rest } = props;\n\n return (\n <ChakraBreadcrumb.Root ref={ref} {...rest}>\n <ChakraBreadcrumb.List gap={separatorGap}>\n {items.map((item, index) => {\n const last = index === items.length - 1;\n const isInteractive = Boolean(item.url || item.onClick);\n let itemContent: React.ReactNode;\n\n if (last && !isInteractive) {\n itemContent = <ChakraBreadcrumb.CurrentLink>{item.title}</ChakraBreadcrumb.CurrentLink>;\n } else if (item.url) {\n itemContent = LinkComponent ? (\n <ChakraBreadcrumb.Link asChild>\n <LinkComponent to={item.url}>{item.title}</LinkComponent>\n </ChakraBreadcrumb.Link>\n ) : (\n <ChakraBreadcrumb.Link href={item.url}>{item.title}</ChakraBreadcrumb.Link>\n );\n } else if (item.onClick) {\n itemContent = (\n <ChakraBreadcrumb.Link as=\"button\" type=\"button\" onClick={item.onClick}>\n {item.title}\n </ChakraBreadcrumb.Link>\n );\n } else {\n itemContent = <ChakraBreadcrumb.Link>{item.title}</ChakraBreadcrumb.Link>;\n }\n\n return (\n <ChakraBreadcrumb.Item key={index}>\n {itemContent}\n {last ? null : (\n <ChakraBreadcrumb.Separator as=\"span\" aria-hidden ml=\"xs\">\n {separator}\n </ChakraBreadcrumb.Separator>\n )}\n </ChakraBreadcrumb.Item>\n );\n })}\n </ChakraBreadcrumb.List>\n </ChakraBreadcrumb.Root>\n );\n});\n","import { Checkbox as ChakraCheckbox } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface CheckboxProps extends ChakraCheckbox.RootProps {\n icon?: React.ReactNode;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n}\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(function Checkbox(props, ref) {\n const { icon, children, inputProps, rootRef, disabled = false, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : \"pointer\";\n\n return (\n <ChakraCheckbox.Root ref={rootRef} disabled={disabled} cursor={interactiveCursor} {...rest}>\n <ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />\n <ChakraCheckbox.Control borderRadius=\"xs\" cursor={interactiveCursor}>\n {icon || <ChakraCheckbox.Indicator />}\n </ChakraCheckbox.Control>\n {children != null && <ChakraCheckbox.Label cursor={interactiveCursor}>{children}</ChakraCheckbox.Label>}\n </ChakraCheckbox.Root>\n );\n});\n","import { Box, type BoxProps, Text, type TextProps } from \"@chakra-ui/react\";\n\nexport interface ContentPlaceholderProps extends BoxProps {}\n\nexport const ContentPlaceholder = (props: ContentPlaceholderProps) => (\n <Box\n {...props}\n css={{\n backgroundClip: \"padding-box\",\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%239C92AC' fill-opacity='0.2' fillRule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E\")`,\n display: \"flex\",\n width: \"100%\",\n }}\n />\n);\n\nexport const Label = (props: TextProps) => (\n <Box p=\"2\">\n <Text color=\"fg.muted\" fontWeight=\"medium\" textStyle=\"sm\" whiteSpace=\"nowrap\" {...props} />\n </Box>\n);\n","import { Button, CloseButton, Dialog, Stack, Text } from \"@chakra-ui/react\";\nimport { useState } from \"react\";\n\ninterface DeleteConfirmationModalProps {\n open: boolean;\n onClose: () => void;\n onDelete: () => void | Promise<void>;\n headline?: string;\n notificationText?: string;\n buttonText?: string;\n}\n\nexport type { DeleteConfirmationModalProps };\n\nexport const DeleteConfirmationModal = (props: DeleteConfirmationModalProps) => {\n const [isDeleting, setIsDeleting] = useState(false);\n const { headline, buttonText, notificationText, onDelete, open, onClose } = props;\n\n const handleDelete = async () => {\n setIsDeleting(true);\n\n try {\n await onDelete();\n onClose();\n } catch {\n // Errors surface through parent state.\n } finally {\n setIsDeleting(false);\n }\n };\n\n return (\n <Dialog.Root open={open} onOpenChange={onClose}>\n <Dialog.Backdrop />\n <Dialog.Positioner>\n <Dialog.Content>\n <Dialog.Header>\n <Text textStyle=\"heading/M\">{headline}</Text>\n <Dialog.CloseTrigger asChild>\n <CloseButton size=\"sm\" />\n </Dialog.CloseTrigger>\n </Dialog.Header>\n <Dialog.Body>{notificationText}</Dialog.Body>\n <Dialog.Footer>\n <Stack direction=\"row\" gap=\"1\">\n <Button onClick={onClose}>Close</Button>\n <Button loading={isDeleting} variant=\"solid\" colorPalette=\"red\" onClick={handleDelete}>\n {buttonText}\n </Button>\n </Stack>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Positioner>\n </Dialog.Root>\n );\n};\n","import { Box, Grid, IconButton, Text } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { DiffBubble } from \"@/components/diff-bubble\";\nimport { DiffEditor } from \"./diff-editor\";\n\nexport interface Diff {\n change: \"added\" | \"deleted\" | \"modified\" | \"renamed\" | \"copied\" | \"permissionChange\";\n oldPath?: string;\n newPath?: string;\n oldContent?: string;\n newContent?: string;\n additions?: number;\n deletions?: number;\n}\n\ninterface DiffCardProps {\n diff: Diff;\n}\n\nconst getLanguage = (path: string) => {\n const ext = path.split(\".\").pop()?.toLowerCase();\n switch (ext) {\n case \"ts\":\n case \"tsx\":\n return \"typescript\";\n case \"js\":\n case \"jsx\":\n return \"javascript\";\n case \"json\":\n return \"json\";\n case \"md\":\n return \"markdown\";\n case \"py\":\n return \"python\";\n case \"go\":\n return \"go\";\n case \"rs\":\n return \"rust\";\n case \"css\":\n return \"css\";\n case \"html\":\n return \"html\";\n case \"sh\":\n return \"shell\";\n case \"yml\":\n case \"yaml\":\n return \"yaml\";\n default:\n return \"plaintext\";\n }\n};\n\nexport const DiffCard = (props: DiffCardProps) => {\n const { diff } = props;\n const [isExpanded, setIsExpanded] = useState(true);\n\n const filePath = diff.newPath || diff.oldPath || \"unknown\";\n const language = getLanguage(filePath);\n\n const additions = diff.additions ?? 0;\n const deletions = diff.deletions ?? 0;\n\n return (\n <Box\n border=\"1px solid\"\n borderColor=\"border.muted\"\n borderRadius=\"xs\"\n overflow=\"hidden\"\n bg=\"bg\"\n width=\"100%\"\n maxW=\"100%\"\n >\n <Grid\n templateColumns=\"auto minmax(0, 1fr) auto\"\n px=\"xs\"\n py=\"2xs\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n borderBottom={isExpanded ? \"1px solid\" : \"none\"}\n borderColor=\"border.muted\"\n cursor=\"pointer\"\n onClick={() => setIsExpanded(!isExpanded)}\n gap=\"sm\"\n >\n <IconButton\n aria-label={isExpanded ? \"Collapse\" : \"Expand\"}\n variant=\"ghost\"\n size=\"2xs\"\n onClick={(event) => {\n event.stopPropagation();\n setIsExpanded(!isExpanded);\n }}\n flexShrink={0}\n >\n {isExpanded ? <ChevronDown size={16} /> : <ChevronRight size={16} />}\n </IconButton>\n\n <Box minW={0} overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\" title={filePath}>\n {diff.change === \"renamed\" ? (\n <Text as=\"span\" textStyle=\"sm\">\n <Text as=\"span\" color=\"fg.muted\" textDecoration=\"line-through\" mr=\"xs\">\n {diff.oldPath}\n </Text>\n <Box as=\"span\" display=\"inline-flex\" alignItems=\"center\" verticalAlign=\"middle\" mr=\"xs\">\n <ChevronRight size={12} />\n </Box>\n {diff.newPath}\n </Text>\n ) : diff.change === \"deleted\" ? (\n <Text as=\"span\" color=\"fg.muted\" textDecoration=\"line-through\" textStyle=\"sm\">\n {filePath}\n </Text>\n ) : (\n <Text as=\"span\" textStyle=\"sm\">\n {filePath}\n </Text>\n )}\n </Box>\n\n <Box flexShrink={0}>\n <DiffBubble variant=\"ghost\" additions={additions} deletions={deletions} />\n </Box>\n </Grid>\n\n {isExpanded && (\n <Box height=\"400px\" bg=\"bg\">\n <DiffEditor\n original={diff.oldContent || \"\"}\n modified={diff.newContent || \"\"}\n language={language}\n sideBySide={false}\n disableScroll={false}\n />\n </Box>\n )}\n </Box>\n );\n};\n","import { ScrollArea as ChakraScrollArea } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\ntype VerticalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\ntype HorizontalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\n\nexport interface ScrollAreaProps extends ChakraScrollArea.RootProps {\n viewportRef?: React.Ref<HTMLDivElement>;\n viewportProps?: ChakraScrollArea.ViewportProps;\n contentProps?: ChakraScrollArea.ContentProps;\n verticalScrollbarProps?: VerticalScrollbarProps;\n horizontalScrollbarProps?: HorizontalScrollbarProps;\n showVerticalScrollbar?: boolean;\n showHorizontalScrollbar?: boolean;\n showCorner?: boolean;\n}\n\nexport const ScrollArea = React.forwardRef<HTMLDivElement, ScrollAreaProps>(function ScrollArea(props, ref) {\n const {\n children,\n viewportRef,\n viewportProps,\n contentProps,\n verticalScrollbarProps,\n horizontalScrollbarProps,\n showVerticalScrollbar = true,\n showHorizontalScrollbar = false,\n showCorner = showVerticalScrollbar && showHorizontalScrollbar,\n ...rest\n } = props;\n\n return (\n <ChakraScrollArea.Root ref={ref} {...rest}>\n <ChakraScrollArea.Viewport {...viewportProps} ref={viewportRef}>\n <ChakraScrollArea.Content {...contentProps}>{children}</ChakraScrollArea.Content>\n </ChakraScrollArea.Viewport>\n {showVerticalScrollbar ? <ChakraScrollArea.Scrollbar {...verticalScrollbarProps} borderRadius={\"xs\"} /> : null}\n {showHorizontalScrollbar ? (\n <ChakraScrollArea.Scrollbar orientation=\"horizontal\" {...horizontalScrollbarProps} borderRadius={\"xs\"} />\n ) : null}\n {showCorner ? <ChakraScrollArea.Corner /> : null}\n </ChakraScrollArea.Root>\n );\n});\n","import { Box, Stack } from \"@chakra-ui/react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { useRef } from \"react\";\nimport { type Diff, DiffCard } from \"./diff-card\";\nimport { EmptyState } from \"./empty-state\";\nimport { ScrollArea } from \"./scroll-area\";\n\ninterface DiffDrawerProps {\n diffs: Diff[];\n}\n\nexport type { Diff };\n\nexport function DiffDrawer(props: DiffDrawerProps) {\n const { diffs } = props;\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const virtualizer = useVirtualizer({\n count: diffs.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => 42,\n overscan: 5,\n });\n\n if (diffs.length === 0) {\n return (\n <Stack h=\"full\" minH=\"0\" gap=\"0\">\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ p: \"xs\", spaceY: \"xs\" }}>\n <EmptyState title=\"No changes detected\" description=\"Make some changes to see the diff here.\" paddingY=\"sm\" />\n </ScrollArea>\n </Stack>\n );\n }\n\n return (\n <Stack h=\"full\" minH=\"0\" gap=\"0\">\n <Box position=\"relative\" flex=\"1\" minH=\"0\">\n <ScrollArea position=\"absolute\" inset=\"0\" viewportRef={scrollRef} contentProps={{ p: \"xs\" }}>\n <Box position=\"relative\" width=\"100%\" style={{ height: virtualizer.getTotalSize() }}>\n {virtualizer.getVirtualItems().map((virtualItem) => (\n <Box\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n width=\"100%\"\n pb=\"xs\"\n style={{ transform: `translateY(${virtualItem.start}px)` }}\n >\n <DiffCard diff={diffs[virtualItem.index]} />\n </Box>\n ))}\n </Box>\n </ScrollArea>\n </Box>\n </Stack>\n );\n}\n","import {\n Badge,\n Box,\n Flex,\n Heading,\n HStack,\n Image,\n Link,\n List,\n Stack,\n type StackProps,\n Text,\n Timeline,\n} from \"@chakra-ui/react\";\n\nexport interface DocsChangelogChange {\n title: string;\n description?: string;\n link?: string;\n}\n\nexport interface DocsChangelogEntry {\n version: string;\n date: string;\n tags?: string[];\n title: string;\n image?: string;\n description?: string;\n changes?: DocsChangelogChange[];\n}\n\nexport interface DocsChangelogProps {\n entries: DocsChangelogEntry[];\n title: string;\n description?: string;\n}\n\ninterface ChangelogDateProps extends StackProps {\n date: string;\n version: string;\n}\n\nconst getEntryKey = (entry: DocsChangelogEntry, index: number) => {\n return `${entry.version}-${entry.date}-${index}`;\n};\n\nconst getChangeKey = (change: DocsChangelogChange, index: number) => {\n return `${change.title}-${index}`;\n};\n\nconst ChangelogDate = (props: ChangelogDateProps) => {\n const { date, version, ...rest } = props;\n\n return (\n <Stack {...rest}>\n <Timeline.Title textStyle=\"sm\" color=\"fg.muted\">\n {date}\n </Timeline.Title>\n <Flex\n px=\"3\"\n py=\"2\"\n rounded=\"l3\"\n align=\"center\"\n justify=\"center\"\n borderWidth=\"1px\"\n textAlign=\"center\"\n alignSelf=\"flex-start\"\n >\n <Timeline.Title textStyle=\"md\" fontWeight=\"semibold\">\n {version}\n </Timeline.Title>\n </Flex>\n </Stack>\n );\n};\n\nexport const DocsChangelog = (props: DocsChangelogProps) => {\n const { entries, title, description } = props;\n\n return (\n <Stack gap=\"20\">\n <Stack textAlign=\"center\">\n <Heading size=\"4xl\">{title}</Heading>\n {description ? (\n <Text color=\"fg.muted\" textStyle=\"lg\">\n {description}\n </Text>\n ) : null}\n </Stack>\n\n <Box position=\"relative\">\n <Timeline.Root size=\"sm\" variant=\"solid\">\n {entries.map((entry, entryIndex) => (\n <Timeline.Item key={getEntryKey(entry, entryIndex)}>\n <Timeline.Content\n top=\"6\"\n width=\"48\"\n flexShrink=\"0\"\n hideBelow=\"md\"\n position={{ base: \"static\", md: \"sticky\" }}\n >\n <ChangelogDate hideBelow=\"md\" date={entry.date} version={entry.version} />\n </Timeline.Content>\n\n <Timeline.Connector>\n <Timeline.Separator />\n <Timeline.Indicator />\n </Timeline.Connector>\n\n <Timeline.Content>\n <Stack gap=\"4\">\n <ChangelogDate hideFrom=\"md\" date={entry.date} version={entry.version} />\n\n <Stack gap=\"2\">\n <Timeline.Title fontSize=\"lg\" fontWeight=\"medium\">\n {entry.title}\n </Timeline.Title>\n {entry.description ? (\n <Text color=\"fg.muted\" textStyle=\"sm\">\n {entry.description}\n </Text>\n ) : null}\n </Stack>\n\n {entry.tags && entry.tags.length > 0 ? (\n <HStack>\n {entry.tags.map((tag) => (\n <Badge\n key={tag}\n size=\"md\"\n rounded=\"l2\"\n variant=\"subtle\"\n colorPalette=\"gray\"\n textTransform=\"capitalize\"\n >\n {tag}\n </Badge>\n ))}\n </HStack>\n ) : null}\n\n {entry.image ? <Image rounded=\"l2\" src={entry.image} alt={entry.title} /> : null}\n\n {entry.changes && entry.changes.length > 0 ? (\n <List.Root pl=\"4\" gap=\"4\">\n {entry.changes.map((change, changeIndex) => (\n <List.Item key={getChangeKey(change, changeIndex)}>\n <Stack gap=\"1\">\n <Text color=\"fg.muted\" fontWeight=\"normal\" textStyle=\"sm\">\n {change.title}\n </Text>\n {change.description ? (\n <Text color=\"fg.subtle\" textStyle=\"xs\">\n {change.description}\n </Text>\n ) : null}\n {change.link ? (\n <Link href={change.link} textStyle=\"xs\" width=\"fit-content\">\n Learn more\n </Link>\n ) : null}\n </Stack>\n </List.Item>\n ))}\n </List.Root>\n ) : null}\n </Stack>\n </Timeline.Content>\n </Timeline.Item>\n ))}\n </Timeline.Root>\n </Box>\n </Stack>\n );\n};\n","import { Box, Collapsible, HStack, Icon, Stack, Text, useEnvironmentContext } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight, FileText } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { ScrollArea } from \"../scroll-area\";\n\ninterface DocHeading {\n id: string;\n level: number;\n text: string;\n}\n\ninterface HeadingElementsMatch {\n elementsByHeadingId: Map<string, HTMLElement>;\n headingIdByElement: Map<HTMLElement, string>;\n}\n\nexport interface DocsOutlineProps {\n markdown: string;\n title?: string;\n rootMargin?: string;\n}\n\ninterface DocsOutlineItemProps {\n heading: DocHeading;\n isActive: boolean;\n emphasized: boolean;\n variant: \"line\" | \"minimal\";\n onSelect: (headingId: string) => void;\n}\n\nconst HEADING_REGEX = /^(#{1,3})\\s+(.+)$/gm;\nconst HEADING_SELECTOR = \".rich-text__h1, .rich-text__h2, .rich-text__h3\";\n\nconst isHeadingLevelMatch = (element: Element, level: number) => {\n return element.classList.contains(`rich-text__h${level}`);\n};\n\nconst slugifyHeading = (value: string) => {\n return value\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n};\n\nexport const extractHeadings = (markdown: string) => {\n const headings: DocHeading[] = [];\n let headingIndex = 0;\n\n for (const match of markdown.matchAll(HEADING_REGEX)) {\n const level = match[1]!.length;\n const text = match[2]!.trim();\n const slug = slugifyHeading(text);\n const id = `${slug || \"heading\"}-${headingIndex}`;\n\n headings.push({ id, level, text });\n headingIndex += 1;\n }\n\n return headings;\n};\n\nconst matchHeadingElements = (headings: DocHeading[], doc: Document) => {\n const elements = Array.from(doc.querySelectorAll(HEADING_SELECTOR));\n const elementsByHeadingId = new Map<string, HTMLElement>();\n const headingIdByElement = new Map<HTMLElement, string>();\n let nextElementIndex = 0;\n\n for (const heading of headings) {\n for (let elementIndex = nextElementIndex; elementIndex < elements.length; elementIndex += 1) {\n const element = elements[elementIndex] as HTMLElement;\n const elementText = element.textContent?.trim();\n\n if (!elementText || elementText !== heading.text) {\n continue;\n }\n\n if (!isHeadingLevelMatch(element, heading.level)) {\n continue;\n }\n\n elementsByHeadingId.set(heading.id, element);\n headingIdByElement.set(element, heading.id);\n nextElementIndex = elementIndex + 1;\n break;\n }\n }\n\n return { elementsByHeadingId, headingIdByElement };\n};\n\nconst DocsOutlineItem = (props: DocsOutlineItemProps) => {\n const { heading, isActive, emphasized, variant, onSelect } = props;\n const isLine = variant === \"line\";\n\n return (\n <Box\n as=\"button\"\n py=\"1.5\"\n px=\"0\"\n width=\"full\"\n display=\"flex\"\n textAlign=\"left\"\n textStyle=\"sm\"\n cursor=\"pointer\"\n textDecoration=\"none\"\n transition=\"all 0.15s ease\"\n paddingInlineStart={`calc(${heading.level} * 0.75rem)`}\n color={isActive ? \"fg\" : \"fg.muted\"}\n fontWeight={isActive || emphasized ? \"medium\" : \"normal\"}\n borderStartWidth={isLine ? \"1px\" : \"0px\"}\n borderStartColor={isLine ? (isActive ? \"fg\" : \"bg.muted\") : \"transparent\"}\n _hover={isLine ? { borderStartColor: \"bg.emphasized\" } : { color: \"fg\" }}\n onClick={() => onSelect(heading.id)}\n >\n {heading.text}\n </Box>\n );\n};\n\nexport const DocsOutline = (props: DocsOutlineProps) => {\n const { markdown, title = \"On this page\", rootMargin = \"-20% 0% -35% 0%\" } = props;\n const headings = extractHeadings(markdown);\n const env = useEnvironmentContext();\n const [activeHeadingId, setActiveHeadingId] = useState(headings[0]?.id ?? \"\");\n const [isMobileOpen, setIsMobileOpen] = useState(false);\n const headingElementsMatchRef = useRef<HeadingElementsMatch>({\n elementsByHeadingId: new Map(),\n headingIdByElement: new Map(),\n });\n\n useEffect(() => {\n const extractedHeadings = extractHeadings(markdown);\n setActiveHeadingId(extractedHeadings[0]?.id ?? \"\");\n }, [markdown]);\n\n useEffect(() => {\n const headingsForObserver = extractHeadings(markdown);\n const doc = env.getDocument();\n const win = env.getWindow();\n const nextMatch = matchHeadingElements(headingsForObserver, doc);\n\n headingElementsMatchRef.current = nextMatch;\n\n if (nextMatch.headingIdByElement.size === 0) {\n return;\n }\n\n const observer = new win.IntersectionObserver(\n (entries) => {\n const visibleEntries = entries\n .filter((entry) => entry.isIntersecting)\n .sort((first, second) => first.boundingClientRect.top - second.boundingClientRect.top);\n\n if (visibleEntries.length === 0) {\n return;\n }\n\n const target = visibleEntries[0]!.target as HTMLElement;\n const nextActiveHeadingId = nextMatch.headingIdByElement.get(target);\n\n if (nextActiveHeadingId) {\n setActiveHeadingId(nextActiveHeadingId);\n }\n },\n { rootMargin },\n );\n\n for (const element of nextMatch.headingIdByElement.keys()) {\n observer.observe(element);\n }\n\n return () => {\n observer.disconnect();\n };\n }, [env, markdown, rootMargin]);\n\n if (headings.length === 0) {\n return null;\n }\n\n const activeHeading = headings.find((heading) => heading.id === activeHeadingId);\n\n const handleHeadingSelect = (headingId: string) => {\n const headingElement = headingElementsMatchRef.current.elementsByHeadingId.get(headingId);\n setActiveHeadingId(headingId);\n setIsMobileOpen(false);\n headingElement?.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n };\n\n return (\n <Stack gap=\"0\" width=\"full\">\n <Box hideFrom=\"md\" px=\"4\" py=\"2\" w=\"full\" bg=\"bg.subtle\" borderWidth=\"1px\">\n <Collapsible.Root open={isMobileOpen} onOpenChange={(details) => setIsMobileOpen(details.open)}>\n <Collapsible.Trigger width=\"full\" display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <HStack>\n <Icon as={FileText} color=\"fg.subtle\" />\n <Text textStyle=\"sm\" fontWeight=\"medium\" color=\"fg\">\n {title}\n </Text>\n {!isMobileOpen ? (\n <>\n <Icon as={ChevronRight} color=\"fg.subtle\" />\n <Text textStyle=\"sm\" color=\"fg.muted\">\n {activeHeading?.text}\n </Text>\n </>\n ) : null}\n </HStack>\n <Box transition=\"transform 0.2s\" transform={isMobileOpen ? \"rotate(180deg)\" : \"rotate(0deg)\"}>\n <Icon as={ChevronDown} color=\"fg.subtle\" />\n </Box>\n </Collapsible.Trigger>\n\n <Collapsible.Content>\n <ScrollArea mt=\"3\" maxH=\"30vh\">\n <Stack gap=\"0\">\n {headings.map((heading) => (\n <DocsOutlineItem\n key={heading.id}\n heading={heading}\n variant=\"minimal\"\n emphasized={false}\n isActive={activeHeadingId === heading.id}\n onSelect={handleHeadingSelect}\n />\n ))}\n </Stack>\n </ScrollArea>\n </Collapsible.Content>\n </Collapsible.Root>\n </Box>\n\n <ScrollArea hideBelow=\"md\" top=\"6\" width=\"xs\" position=\"sticky\" maxH=\"calc(100vh - 3rem)\">\n <HStack mb=\"4\">\n <Icon as={FileText} color=\"fg.subtle\" />\n <Text fontWeight=\"medium\" textStyle=\"sm\">\n {title}\n </Text>\n </HStack>\n\n <Stack gap=\"0\">\n {headings.map((heading) => (\n <DocsOutlineItem\n key={heading.id}\n heading={heading}\n variant=\"line\"\n emphasized={heading.level === 1}\n isActive={activeHeadingId === heading.id}\n onSelect={handleHeadingSelect}\n />\n ))}\n </Stack>\n </ScrollArea>\n </Stack>\n );\n};\n","import { Box, Button, HStack, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\nexport interface DocsPaginationItem {\n href: string;\n title: string;\n description?: string;\n}\n\nexport interface DocsPaginationProps {\n previous?: DocsPaginationItem;\n next?: DocsPaginationItem;\n}\n\ninterface DocsPaginationLinkProps {\n item: DocsPaginationItem;\n direction: \"prev\" | \"next\";\n}\n\nconst DocsPaginationLink = (props: DocsPaginationLinkProps) => {\n const { item, direction } = props;\n const isPrevious = direction === \"prev\";\n const directionText = isPrevious ? \"Previous\" : \"Next\";\n\n return (\n <Button\n asChild\n variant=\"ghost\"\n colorPalette=\"gray\"\n gap=\"3\"\n size=\"sm\"\n h=\"auto\"\n py=\"2\"\n textAlign={isPrevious ? \"start\" : \"end\"}\n justifyContent={isPrevious ? \"flex-start\" : \"flex-end\"}\n flex=\"1\"\n >\n <a href={item.href}>\n {isPrevious ? <ChevronLeft size={16} /> : null}\n <Stack gap=\"0\" alignItems={isPrevious ? \"flex-start\" : \"flex-end\"}>\n <Text textStyle=\"sm\" color=\"fg.muted\" fontWeight=\"normal\">\n {directionText}\n </Text>\n <Text textStyle=\"sm\" fontWeight=\"medium\">\n {item.title}\n </Text>\n {item.description ? (\n <Text textStyle=\"xs\" color=\"fg.subtle\" fontWeight=\"normal\">\n {item.description}\n </Text>\n ) : null}\n </Stack>\n {isPrevious ? null : <ChevronRight size={16} />}\n </a>\n </Button>\n );\n};\n\nexport const DocsPagination = (props: DocsPaginationProps) => {\n const { previous, next } = props;\n\n if (!previous && !next) {\n return null;\n }\n\n return (\n <HStack justify=\"space-between\" gap=\"4\">\n <Box flex=\"1\">{previous ? <DocsPaginationLink item={previous} direction=\"prev\" /> : null}</Box>\n <Box flex=\"1\">{next ? <DocsPaginationLink item={next} direction=\"next\" /> : null}</Box>\n </HStack>\n );\n};\n","import { Box, Collapsible, Flex, Text } from \"@chakra-ui/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\nexport interface ItemSectionProps {\n children: ReactNode;\n title?: string;\n defaultOpen?: boolean;\n action?: ReactNode;\n}\n\n/**\n * A collapsible section wrapper with a title trigger and optional action.\n */\nexport const ItemSection = (props: ItemSectionProps) => {\n const { children, title, defaultOpen = true, action } = props;\n\n return (\n <Collapsible.Root defaultOpen={defaultOpen} width=\"full\">\n <Flex>\n <Collapsible.Trigger\n _hover={{\n background: \"bg.muted\",\n }}\n borderRadius={\"xs\"}\n padding=\"sm\"\n height=\"2rem\"\n display=\"flex\"\n width=\"full\"\n gap=\"2\"\n alignItems=\"center\"\n cursor=\"pointer\"\n justifyContent=\"space-between\"\n >\n {title && (\n <Text fontWeight=\"600\" textStyle=\"label/S/medium\">\n {title}\n </Text>\n )}\n <Collapsible.Indicator transition=\"transform 0.2s\" _open={{ transform: \"rotate(90deg)\" }}>\n <ChevronRight size={16} />\n </Collapsible.Indicator>\n </Collapsible.Trigger>\n {action && (\n <Box marginLeft=\"auto\" onClick={(e) => e.stopPropagation()}>\n {action}\n </Box>\n )}\n </Flex>\n <Collapsible.Content>{children}</Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import type { IconProps } from \"@chakra-ui/react\";\nimport { Badge, MenuItem as ChakraMenuItem, Flex, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport type { ComponentProps, MouseEvent as ReactMouseEvent, ReactNode } from \"react\";\nimport { Tooltip } from \"./tooltip\";\n\ntype ChakraMenuItemProps = ComponentProps<typeof ChakraMenuItem>;\ntype MenuItemIcon = ComponentProps<typeof Icon>[\"as\"];\ntype MenuItemIconColor = IconProps[\"color\"];\ntype MenuItemTagColor = ComponentProps<typeof Badge>[\"colorPalette\"];\ntype MenuItemTagVariant = ComponentProps<typeof Badge>[\"variant\"];\ntype MenuItemVariant = \"default\" | \"compact\";\n\nconst menuItemVariantStyles = {\n default: {\n paddingX: \"sm\",\n paddingY: \"xs\",\n minHeight: \"2rem\",\n iconSize: \"19px\",\n primaryTextStyle: \"label/M/regular\",\n secondaryMarginLeft: \"2px\",\n secondaryTextStyle: \"label/XS/regular\",\n },\n compact: {\n paddingX: \"xs\",\n paddingY: \"2xs\",\n minHeight: \"1.75rem\",\n iconSize: \"16px\",\n primaryTextStyle: \"label/S/regular\",\n secondaryMarginLeft: \"0\",\n secondaryTextStyle: \"label/XS/regular\",\n },\n} as const;\n\nexport interface MenuItemProps {\n id?: string;\n children?: ReactNode;\n isDisabled?: boolean;\n isSelected?: boolean;\n primaryLabel: string;\n secondaryLabel?: string;\n tooltipLabel?: ReactNode;\n leftIcon?: MenuItemIcon | null;\n leftSlot?: ReactNode;\n rightIcon?: MenuItemIcon | null;\n leftIconColor?: MenuItemIconColor;\n rightIconColor?: MenuItemIconColor;\n leftIconSize?: string;\n rightIconSize?: string;\n rightIconAriaLabel?: string;\n rightTooltipLabel?: ReactNode;\n onRightIconClick?: () => void;\n tagLabel?: ReactNode;\n tagColorPalette?: MenuItemTagColor;\n tagVariant?: MenuItemTagVariant;\n variant?: MenuItemVariant;\n tabIndex?: number;\n width?: ChakraMenuItemProps[\"width\"];\n maxWidth?: ChakraMenuItemProps[\"maxWidth\"];\n setRefElement?: ChakraMenuItemProps[\"ref\"];\n onClick?: ChakraMenuItemProps[\"onClick\"];\n onMouseDown?: ChakraMenuItemProps[\"onMouseDown\"];\n onMouseEnter?: ChakraMenuItemProps[\"onMouseEnter\"];\n}\n\nexport const MenuItem = (props: MenuItemProps) => {\n const {\n id,\n primaryLabel,\n tooltipLabel,\n secondaryLabel,\n leftIcon = null,\n leftSlot,\n rightIcon,\n leftIconColor = \"fg.menu-item.default\",\n rightIconColor = \"fg.menu-item.default\",\n leftIconSize,\n rightIconSize,\n rightIconAriaLabel,\n rightTooltipLabel,\n onRightIconClick,\n isDisabled,\n isSelected,\n tagLabel,\n tagColorPalette = \"yellow\",\n tagVariant = \"subtle\",\n variant = \"default\",\n tabIndex,\n width,\n maxWidth,\n setRefElement,\n } = props;\n const { onClick, onMouseDown, onMouseEnter } = props;\n const variantStyles = menuItemVariantStyles[variant];\n const backgroundColor = isSelected ? \"bg.menu-item.selected\" : \"bg.menu-item.default\";\n const resolvedLeftIconSize = leftIconSize ?? variantStyles.iconSize;\n const resolvedRightIconSize = rightIconSize ?? variantStyles.iconSize;\n const isRightIconInteractive = Boolean(onRightIconClick && rightIcon);\n\n const handleRightIconMouseDown = (event: ReactMouseEvent<HTMLElement>) => {\n if (!isRightIconInteractive) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n };\n\n const handleRightIconClick = (event: ReactMouseEvent<HTMLElement>) => {\n if (!isRightIconInteractive || !onRightIconClick) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n onRightIconClick();\n };\n\n return (\n <ChakraMenuItem\n id={id}\n ref={setRefElement}\n tabIndex={tabIndex}\n disabled={isDisabled}\n aria-selected={isSelected}\n paddingX={variantStyles.paddingX}\n paddingY={variantStyles.paddingY}\n onClick={onClick}\n onMouseDown={onMouseDown}\n onMouseEnter={onMouseEnter}\n height=\"auto\"\n minHeight={variantStyles.minHeight}\n role=\"option\"\n width={width}\n maxWidth={maxWidth ?? \"20rem\"}\n overflow={\"hidden\"}\n position=\"relative\"\n cursor={isDisabled ? \"default\" : \"pointer\"}\n value={id ?? primaryLabel}\n bg={backgroundColor}\n _hover={{ bg: \"bg.menu-item.hover\" }}\n _focus={{ bg: \"bg.menu-item.focus\" }}\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap=\"xs\" flex=\"1\">\n <Tooltip positioning={{ placement: \"right\" }} content={tooltipLabel} disabled={!tooltipLabel}>\n <Stack gap=\"2xs\">\n <Flex alignItems=\"flex-start\" gap=\"xs\" flex=\"1\">\n {leftSlot ? (\n leftSlot\n ) : leftIcon ? (\n <Icon as={leftIcon} boxSize={resolvedLeftIconSize} color={leftIconColor} />\n ) : null}\n <Text lineClamp={1} textOverflow=\"ellipsis\" textStyle={variantStyles.primaryTextStyle}>\n {primaryLabel}\n </Text>\n </Flex>\n {secondaryLabel && (\n <Text\n ml={variantStyles.secondaryMarginLeft}\n lineClamp={1}\n textOverflow=\"ellipsis\"\n textStyle={variantStyles.secondaryTextStyle}\n color=\"fg.menu-item.secondary\"\n >\n {secondaryLabel}\n </Text>\n )}\n </Stack>\n </Tooltip>\n <Flex justifyContent=\"flex-end\" color=\"fg.menu-item.default\">\n {rightIcon ? (\n <Tooltip positioning={{ placement: \"right\" }} content={rightTooltipLabel} disabled={!rightTooltipLabel}>\n <Flex\n as={isRightIconInteractive ? \"button\" : \"div\"}\n alignItems=\"center\"\n aria-label={rightIconAriaLabel}\n cursor={isRightIconInteractive ? \"pointer\" : \"default\"}\n bg=\"transparent\"\n borderWidth=\"0\"\n padding=\"0\"\n onMouseDown={handleRightIconMouseDown}\n onClick={handleRightIconClick}\n >\n <Icon as={rightIcon} boxSize={resolvedRightIconSize} color={rightIconColor} />\n </Flex>\n </Tooltip>\n ) : null}\n </Flex>\n </Flex>\n {tagLabel ? (\n <Badge\n position=\"absolute\"\n top=\"xs\"\n right=\"sm\"\n textStyle=\"label/XS/medium\"\n px=\"xs\"\n py=\"2px\"\n borderRadius=\"md\"\n colorPalette={tagColorPalette}\n variant={tagVariant}\n pointerEvents=\"none\"\n >\n {tagLabel}\n </Badge>\n ) : null}\n </ChakraMenuItem>\n );\n};\n","import { Flex, Stack, Text } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\nimport { ScrollArea } from \"./scroll-area\";\n\ntype PanelMenuVariant = \"default\" | \"compact\";\n\nconst panelMenuVariantStyles = {\n default: {\n width: \"64\" as const,\n headerHeight: \"49px\",\n headerPadding: \"xs\" as const,\n headerTextStyle: \"label/L/medium\",\n contentPadding: \"xs\" as const,\n contentGap: \"xs\" as const,\n },\n compact: {\n width: \"64\" as const,\n headerHeight: \"49px\",\n headerPadding: \"xs\" as const,\n headerTextStyle: \"label/L/medium\",\n contentPadding: \"2xs\" as const,\n contentGap: \"2xs\" as const,\n },\n} as const;\n\ninterface PanelMenuProps {\n title: string;\n children?: ReactNode;\n variant?: PanelMenuVariant;\n}\n\nexport function PanelMenu(props: PanelMenuProps) {\n const { title, children, variant = \"default\" } = props;\n const styles = panelMenuVariantStyles[variant];\n\n return (\n <Stack borderRightWidth=\"1px\" width={styles.width} gap=\"0\" minH=\"0\">\n {title && (\n <Flex height={styles.headerHeight} p={styles.headerPadding} borderBottomWidth=\"1px\" alignItems=\"center\">\n <Text pb=\"0\" textStyle={styles.headerTextStyle} color=\"fg.muted\">\n {title}\n </Text>\n </Flex>\n )}\n\n {children && (\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ p: styles.contentPadding, spaceY: styles.contentGap }}>\n {children}\n </ScrollArea>\n )}\n </Stack>\n );\n}\n","import { Menu, Text } from \"@chakra-ui/react\";\nimport { ItemSection } from \"../item-section\";\nimport { MenuItem } from \"../menu-item\";\nimport { PanelMenu } from \"../panel-menu\";\n\nexport interface DocsSidebarItem {\n text: string;\n link?: string;\n items?: DocsSidebarItem[];\n}\n\ninterface DocsSidebarEntryProps {\n item: DocsSidebarItem;\n activeLink: string | null;\n onSelectLink: (link: string) => void;\n shouldStartOpen?: (item: DocsSidebarItem) => boolean;\n}\n\nexport interface DocsSidebarProps {\n title: string;\n emptyMessage?: string;\n menuItems: DocsSidebarItem[];\n activeLink: string | null;\n onSelectLink: (link: string) => void;\n shouldStartOpen?: (item: DocsSidebarItem) => boolean;\n}\n\nconst DocsSidebarEntry = (props: DocsSidebarEntryProps) => {\n const { item, activeLink, onSelectLink, shouldStartOpen } = props;\n const children = item.items ?? [];\n const hasChildren = children.length > 0;\n\n if (!hasChildren && item.link) {\n const link = item.link;\n const isActive = item.link === activeLink;\n return (\n <Menu.Root>\n <MenuItem primaryLabel={item.text} isSelected={isActive} variant=\"compact\" onClick={() => onSelectLink(link)} />\n </Menu.Root>\n );\n }\n\n if (!hasChildren) {\n return (\n <Menu.Root>\n <MenuItem primaryLabel={item.text} isDisabled variant=\"compact\" />\n </Menu.Root>\n );\n }\n\n const defaultOpen = shouldStartOpen?.(item) ?? false;\n\n return (\n <ItemSection title={item.text} defaultOpen={defaultOpen}>\n {children.map((child, index) => (\n <DocsSidebarEntry\n key={`${child.text}-${child.link ?? index}`}\n item={child}\n activeLink={activeLink}\n onSelectLink={onSelectLink}\n shouldStartOpen={shouldStartOpen}\n />\n ))}\n </ItemSection>\n );\n};\n\nexport const DocsSidebar = (props: DocsSidebarProps) => {\n const { title, emptyMessage, menuItems, activeLink, onSelectLink, shouldStartOpen } = props;\n\n return (\n <PanelMenu title={title} variant=\"compact\">\n {menuItems.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" p=\"xs\">\n {emptyMessage ?? \"No files found\"}\n </Text>\n ) : (\n menuItems.map((item, index) => (\n <DocsSidebarEntry\n key={`${item.text}-${item.link ?? index}`}\n item={item}\n activeLink={activeLink}\n onSelectLink={onSelectLink}\n shouldStartOpen={shouldStartOpen}\n />\n ))\n )}\n </PanelMenu>\n );\n};\n","import { AbsoluteCenter, Button, Stack, Text } from \"@chakra-ui/react\";\nimport { Component, type ErrorInfo, type ReactNode } from \"react\";\n\nimport { AlertMessage } from \"./alert\";\nimport { ContentPlaceholder } from \"./content-placeholder\";\n\ninterface ErrorBoundaryProps {\n children: ReactNode;\n fallback?: ReactNode;\n label?: string;\n onReset?: () => void;\n}\n\ninterface ErrorBoundaryState {\n error: Error | null;\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = { error: null };\n\n static getDerivedStateFromError(error: Error) {\n return { error };\n }\n\n componentDidCatch(error: Error, info: ErrorInfo) {\n console.error(\"Dashboard error boundary caught an error\", error, info);\n }\n\n handleReset = () => {\n this.setState({ error: null });\n this.props.onReset?.();\n };\n\n render() {\n const { children, fallback, label } = this.props;\n const { error } = this.state;\n\n if (error) {\n if (fallback) {\n return fallback;\n }\n\n return <ErrorFallback error={error} label={label} onReset={this.handleReset} />;\n }\n\n return children;\n }\n}\n\ninterface ErrorFallbackProps {\n error: Error;\n label?: string;\n onReset?: () => void;\n}\n\nexport const ErrorFallback = (props: ErrorFallbackProps) => {\n const { error, label, onReset } = props;\n\n return (\n <ContentPlaceholder height=\"100%\" width=\"100%\">\n <AbsoluteCenter>\n <AlertMessage\n status=\"error\"\n title={<Text textStyle=\"paragraph/M/medium\">{label ?? \"Something went wrong\"}</Text>}\n >\n <Stack gap=\"sm\">\n <Text textStyle=\"paragraph/S/regular\">\n {error.message || \"An unexpected error occurred while rendering this section.\"}\n </Text>\n {onReset ? (\n <Button size=\"sm\" variant=\"solid\" colorScheme={\"black\"} onClick={onReset}>\n Try again\n </Button>\n ) : null}\n </Stack>\n </AlertMessage>\n </AbsoluteCenter>\n </ContentPlaceholder>\n );\n};\n","import { Button, Dialog, Menu, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronUp, FileText, Folder, FolderOpen, Home } from \"lucide-react\";\nimport { MenuItem } from \"./menu-item\";\nimport { ScrollArea } from \"./scroll-area\";\n\nexport interface FolderPickerDialogEntry {\n name: string;\n path: string;\n isDirectory: boolean;\n isGitRepo: boolean;\n}\n\ninterface FolderPickerDialogProps {\n open: boolean;\n title?: string;\n description?: string;\n currentPath?: string;\n entries: FolderPickerDialogEntry[];\n selectedPath?: string | null;\n selectedPaths?: string[];\n isLoading?: boolean;\n error?: string;\n isSelectDisabled?: boolean;\n onClose: () => void;\n onSelect: () => void;\n onSelectHomeDirectory: () => void;\n onSelectParentDirectory: () => void;\n onEntryClick: (entry: FolderPickerDialogEntry) => void;\n}\n\nexport type { FolderPickerDialogProps };\n\nconst getEntryIcon = (entry: FolderPickerDialogEntry) => {\n if (!entry.isDirectory) return FileText;\n if (entry.isGitRepo) return FolderOpen;\n return Folder;\n};\n\ntype FolderPickerListEntryProps = {\n entry: FolderPickerDialogEntry;\n selectedPath: string | null;\n selectedPathSet: Set<string>;\n onEntryClick: (entry: FolderPickerDialogEntry) => void;\n};\n\nconst FolderPickerListEntry = (props: FolderPickerListEntryProps) => {\n const { entry, selectedPath, selectedPathSet, onEntryClick } = props;\n const isAlreadySelected = entry.isGitRepo && selectedPathSet.has(entry.path);\n const isDisabled = !entry.isDirectory || isAlreadySelected;\n\n const handleClick = () => {\n if (isAlreadySelected) {\n return;\n }\n\n onEntryClick(entry);\n };\n\n return (\n <Menu.Root>\n <MenuItem\n primaryLabel={entry.name}\n leftIcon={getEntryIcon(entry)}\n tagLabel={entry.isGitRepo ? \"Git repo\" : undefined}\n tagColorPalette={entry.isGitRepo ? \"green\" : undefined}\n isDisabled={isDisabled}\n isSelected={selectedPath === entry.path}\n width=\"100%\"\n maxWidth=\"100%\"\n onClick={handleClick}\n />\n </Menu.Root>\n );\n};\n\nexport const FolderPickerDialog = (props: FolderPickerDialogProps) => {\n const {\n open,\n title = \"Select folder\",\n description,\n currentPath = \"\",\n entries,\n selectedPath = null,\n selectedPaths = [],\n isLoading = false,\n error = \"\",\n isSelectDisabled = false,\n onClose,\n onSelect,\n onSelectHomeDirectory,\n onSelectParentDirectory,\n onEntryClick,\n } = props;\n\n const selectedPathSet = new Set(selectedPaths);\n\n return (\n <Dialog.Root closeOnInteractOutside={false} open={open} onOpenChange={(details) => !details.open && onClose()}>\n <Dialog.Backdrop />\n <Dialog.Positioner>\n <Dialog.Content>\n <Dialog.Header>\n <Stack gap=\"xs\">\n <Text textStyle=\"heading/M\">{title}</Text>\n {description ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {description}\n </Text>\n ) : null}\n </Stack>\n </Dialog.Header>\n <Dialog.Body>\n <Stack gap=\"md\">\n <Stack direction=\"row\" gap=\"sm\" align=\"center\">\n <Button aria-label=\"Go to home directory\" variant=\"outline\" size=\"sm\" onClick={onSelectHomeDirectory}>\n <Home size={16} />\n </Button>\n <Button\n aria-label=\"Go to parent directory\"\n variant=\"outline\"\n size=\"sm\"\n onClick={onSelectParentDirectory}\n disabled={!currentPath || currentPath === \"/\"}\n >\n <ChevronUp size={16} />\n </Button>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" flex=\"1\" lineClamp={1}>\n {currentPath || \"Home\"}\n </Text>\n </Stack>\n\n <ScrollArea\n borderWidth=\"1px\"\n borderRadius=\"md\"\n borderColor=\"border.muted\"\n maxHeight=\"320px\"\n contentProps={{ padding: \"sm\" }}\n >\n {isLoading ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n Loading...\n </Text>\n ) : error ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"red.500\">\n {error}\n </Text>\n ) : entries.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n No entries found.\n </Text>\n ) : (\n <Stack gap=\"xs\">\n {entries.map((entry) => (\n <FolderPickerListEntry\n key={entry.path}\n entry={entry}\n selectedPath={selectedPath}\n selectedPathSet={selectedPathSet}\n onEntryClick={onEntryClick}\n />\n ))}\n </Stack>\n )}\n </ScrollArea>\n </Stack>\n </Dialog.Body>\n <Dialog.Footer>\n <Stack direction=\"row\" gap=\"sm\">\n <Button variant=\"outline\" onClick={onClose}>\n Cancel\n </Button>\n <Button onClick={onSelect} disabled={isSelectDisabled}>\n Select repository\n </Button>\n </Stack>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Positioner>\n </Dialog.Root>\n );\n};\n","import { HStack, type StackProps } from \"@chakra-ui/react\";\n\ninterface HorizontalMenuStackProps extends StackProps {\n children?: StackProps[\"children\"];\n}\n\nexport function HorizontalMenuStack(props: HorizontalMenuStackProps) {\n const { children, ...rest } = props;\n\n return (\n <HStack {...rest} minH=\"49px\" justify=\"space-between\" align=\"center\" borderBottomWidth=\"1px\" p=\"xs\">\n {children}\n </HStack>\n );\n}\n","import { Box, HStack, Link, Separator, Stack, Text } from \"@chakra-ui/react\";\n\nexport interface OpenSourceNotice {\n name: string;\n version?: string;\n license?: string;\n copyright?: string;\n homepageUrl?: string;\n sourceUrl?: string;\n attribution?: string;\n}\n\nexport interface OpenSourceNoticesScreenProps {\n notices: OpenSourceNotice[];\n title?: string;\n description?: string;\n productName?: string;\n productVersion?: string;\n generatedAt?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n}\n\nconst getNoticeKey = (notice: OpenSourceNotice, index: number) => {\n return `${notice.name}-${notice.version ?? \"unknown\"}-${index}`;\n};\n\nconst getNoticeTitle = (notice: OpenSourceNotice) => {\n if (!notice.version) return notice.name;\n\n return `${notice.name} v${notice.version}`;\n};\n\nexport const OpenSourceNoticesScreen = (props: OpenSourceNoticesScreenProps) => {\n const {\n notices,\n title = \"Open Source and Third-Party Notices\",\n description = \"This product includes software developed by the open source community.\",\n productName,\n productVersion,\n generatedAt,\n emptyTitle = \"No third-party notices available\",\n emptyDescription = \"No third-party packages were included in this build.\",\n } = props;\n\n return (\n <Stack width=\"full\" minHeight=\"100%\" background=\"bg\" color=\"fg\" padding={{ base: \"md\", md: \"xl\" }} gap=\"lg\">\n <Stack gap=\"xs\">\n <Text textStyle=\"heading/L\">{title}</Text>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {description}\n </Text>\n\n <HStack gap=\"md\" flexWrap=\"wrap\">\n {productName ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Product: {productName}\n </Text>\n ) : null}\n\n {productVersion ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Version: {productVersion}\n </Text>\n ) : null}\n\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Packages: {notices.length}\n </Text>\n\n {generatedAt ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Generated: {generatedAt}\n </Text>\n ) : null}\n </HStack>\n </Stack>\n\n <Separator borderColor=\"border.muted\" />\n\n {notices.length === 0 ? (\n <Stack borderWidth=\"1px\" borderColor=\"border.muted\" borderRadius=\"md\" padding=\"lg\" gap=\"xs\">\n <Text textStyle=\"label/L/medium\">{emptyTitle}</Text>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {emptyDescription}\n </Text>\n </Stack>\n ) : (\n <Stack gap=\"md\">\n {notices.map((notice, index) => (\n <Box\n key={getNoticeKey(notice, index)}\n borderWidth=\"1px\"\n borderColor=\"border.muted\"\n borderRadius=\"md\"\n padding=\"md\"\n >\n <Stack gap=\"sm\">\n <Stack gap=\"2xs\">\n <Text textStyle=\"label/L/medium\">{getNoticeTitle(notice)}</Text>\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\">\n License: {notice.license ?? \"Unknown\"}\n </Text>\n </Stack>\n\n {notice.copyright ? (\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\">\n {notice.copyright}\n </Text>\n ) : null}\n\n {(notice.homepageUrl || notice.sourceUrl) && (\n <Stack gap=\"2xs\">\n {notice.homepageUrl ? (\n <Link\n href={notice.homepageUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n textStyle=\"label/S/medium\"\n width=\"fit-content\"\n >\n Homepage\n </Link>\n ) : null}\n\n {notice.sourceUrl ? (\n <Link\n href={notice.sourceUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n textStyle=\"label/S/medium\"\n width=\"fit-content\"\n >\n Source code\n </Link>\n ) : null}\n </Stack>\n )}\n\n {notice.attribution ? (\n <Box background=\"bg.muted\" borderRadius=\"sm\" padding=\"sm\">\n <Text textStyle=\"label/S/regular\" whiteSpace=\"pre-wrap\">\n {notice.attribution}\n </Text>\n </Box>\n ) : null}\n </Stack>\n </Box>\n ))}\n </Stack>\n )}\n </Stack>\n );\n};\n","import { Box, HStack, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport { Info } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { Tooltip } from \"./tooltip\";\n\nexport interface PropertyItem {\n label: string;\n description?: string;\n value: ReactNode;\n}\n\nexport interface PropertiesProps {\n items: PropertyItem[];\n}\n\n/**\n * Displays a list of label–value property rows.\n *\n * Each property has a label, an optional description (shown as a tooltip), and a value (ReactNode).\n * All labels share a fixed width for alignment.\n *\n * Wrap with `<ItemSection>` when collapsible behavior is needed.\n */\nexport const Properties = (props: PropertiesProps) => {\n const { items } = props;\n\n return (\n <Stack gap=\"sm\" paddingLeft=\"sm\" paddingY=\"xs\">\n {items.map((item, index) => (\n <HStack key={`${item.label}-${index}`} gap=\"md\" alignItems=\"center\">\n <Box width=\"140px\" flexShrink={0}>\n <HStack gap=\"1\" alignItems=\"center\">\n <Text textStyle=\"label/S/medium\" color=\"fg.muted\">\n {item.label}\n </Text>\n {item.description && (\n <Tooltip content={item.description} showArrow>\n <Icon as={Info} boxSize=\"12px\" color=\"fg.muted\" opacity={0.6} cursor=\"help\" />\n </Tooltip>\n )}\n </HStack>\n </Box>\n <Box flex=\"1\">{item.value}</Box>\n </HStack>\n ))}\n </Stack>\n );\n};\n","import { Icon } from \"@chakra-ui/react\";\nimport { CircleAlert, CircleCheck, CircleDashed } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\n\nexport type SessionCompletionStatus = \"in_progress\" | \"awaiting_input\" | \"completed\" | \"failed\";\n\nexport const resolveSessionIndicatorIcon = (status: SessionCompletionStatus | undefined) => {\n if (status === \"completed\") return CircleCheck;\n if (status === \"failed\") return CircleAlert;\n return CircleDashed;\n};\n\nexport const resolveSessionIndicatorColor = (status: SessionCompletionStatus | undefined) => {\n if (status === \"completed\") return \"fg.success\";\n if (status === \"failed\") return \"fg.error\";\n return \"fg.muted\";\n};\n\ninterface SessionIndicatorProps {\n status?: SessionCompletionStatus;\n boxSize?: ComponentProps<typeof Icon>[\"boxSize\"];\n ariaLabel?: string;\n cursor?: ComponentProps<typeof Icon>[\"cursor\"];\n onClick?: ComponentProps<typeof Icon>[\"onClick\"];\n}\n\nexport const SessionIndicator = (props: SessionIndicatorProps) => {\n const { status, boxSize = \"14px\", ariaLabel = \"Session status\", cursor, onClick } = props;\n\n return (\n <Icon\n as={resolveSessionIndicatorIcon(status)}\n boxSize={boxSize}\n color={resolveSessionIndicatorColor(status)}\n aria-label={ariaLabel}\n cursor={cursor}\n onClick={onClick}\n />\n );\n};\n","import { Box, HStack, IconButton, Menu, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport type { SidebarAction, SidebarNavigateEvent, SidebarNode, SidebarSection } from \"./sidebar-tree.types\";\n\ninterface SidebarTreeProps {\n sections: SidebarSection[];\n expandedSections: string[];\n expandedNodes: string[];\n activeNodeId?: string | null;\n onNavigate?: (event: SidebarNavigateEvent) => void;\n onToggleSection: (sectionId: string) => void;\n onToggleNode: (nodeId: string) => void;\n}\n\ninterface SidebarRowActionsProps {\n sectionId: string;\n nodeId?: string;\n actions: SidebarAction[];\n}\n\ninterface SidebarNodeRowProps {\n sectionId: string;\n node: SidebarNode;\n level: number;\n expandedNodes: string[];\n activeNodeId?: string | null;\n onNavigate?: (event: SidebarNavigateEvent) => void;\n onToggleNode: (nodeId: string) => void;\n}\n\nconst isExpanded = (id: string, values: string[]) => values.includes(id);\n\nconst SidebarActionButton = (props: { action: SidebarAction; sectionId: string; nodeId?: string }) => {\n const { action, sectionId, nodeId } = props;\n\n if (action.menuItems && action.menuItems.length > 0) {\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton variant=\"ghost\" size=\"2xs\" aria-label={action.label}>\n {action.icon}\n </IconButton>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"160px\" bg=\"bg\">\n {action.menuItems.map((item) => (\n <Menu.Item key={item.id} value={item.id} onClick={() => item.onAction?.()}>\n {item.icon ? <Box mr=\"2\">{item.icon}</Box> : null}\n {item.label}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n );\n }\n\n return (\n <IconButton\n variant=\"ghost\"\n size=\"2xs\"\n aria-label={action.label}\n onClick={(event) => {\n event.stopPropagation();\n action.onAction?.({ sectionId, nodeId });\n }}\n >\n {action.icon}\n </IconButton>\n );\n};\n\nconst SidebarRowActions = (props: SidebarRowActionsProps) => {\n const { sectionId, nodeId, actions } = props;\n\n if (actions.length === 0) return null;\n\n return (\n <HStack\n gap=\"0\"\n opacity=\"0\"\n pointerEvents=\"none\"\n _groupHover={{ opacity: \"1\", pointerEvents: \"auto\" }}\n _groupFocusWithin={{ opacity: \"1\", pointerEvents: \"auto\" }}\n transition=\"opacity 120ms ease\"\n onClick={(event) => event.stopPropagation()}\n >\n {actions.map((action) => (\n <SidebarActionButton key={action.id} action={action} sectionId={sectionId} nodeId={nodeId} />\n ))}\n </HStack>\n );\n};\n\nconst SidebarNodeRow = (props: SidebarNodeRowProps) => {\n const { sectionId, node, level, expandedNodes, activeNodeId, onNavigate, onToggleNode } = props;\n const hasChildren = (node.children?.length ?? 0) > 0;\n const expanded = hasChildren && isExpanded(node.id, expandedNodes);\n const isNavigable = node.isNavigable || node.navigationIntent !== undefined;\n const isActive = activeNodeId === node.id;\n const isDisabled = node.disabled === true;\n const paddingLeft = level > 0 ? `calc(var(--chakra-spacing-1) + ${level} * var(--chakra-spacing-3))` : undefined;\n\n const handleClick = () => {\n if (isDisabled) return;\n\n if (hasChildren) {\n onToggleNode(node.id);\n return;\n }\n\n if (!isNavigable) return;\n\n onNavigate?.({\n sectionId,\n nodeId: node.id,\n node,\n intent: node.navigationIntent,\n });\n };\n\n return (\n <Stack gap={!node.children ? \"2xs\" : \"0\"}>\n <HStack\n className=\"group\"\n justify=\"space-between\"\n align=\"center\"\n borderRadius=\"xs\"\n px=\"1\"\n py=\"2xs\"\n pl={paddingLeft}\n bg={isActive ? \"bg.muted\" : \"transparent\"}\n _hover={{ bg: isActive ? \"bg.muted\" : \"bg.subtle\" }}\n cursor={isDisabled ? \"default\" : \"pointer\"}\n onClick={handleClick}\n overflow=\"hidden\"\n >\n <HStack gap=\"2\" minW=\"0\" flex=\"1\" overflow=\"hidden\">\n {node.icon ? (\n <Box color=\"fg.muted\" flexShrink={0}>\n {node.icon}\n </Box>\n ) : null}\n <Stack gap=\"0\" minW=\"0\" flex=\"1\">\n <HStack gap=\"1\" minW=\"0\">\n <Text textStyle=\"paragraph/S/regular\" color={isDisabled ? \"fg.muted\" : \"fg\"} truncate>\n {node.label}\n </Text>\n {hasChildren ? (\n <Box color=\"fg.muted\" flexShrink={0}>\n <ChevronRight\n size={14}\n style={{ transform: expanded ? \"rotate(90deg)\" : \"rotate(0deg)\", transition: \"120ms\" }}\n />\n </Box>\n ) : null}\n </HStack>\n {node.description ? (\n <Text textStyle=\"paragraph/XS/regular\" color=\"fg.muted\" truncate>\n {node.description}\n </Text>\n ) : null}\n </Stack>\n </HStack>\n\n <SidebarRowActions sectionId={sectionId} nodeId={node.id} actions={node.actions ?? []} />\n </HStack>\n\n {expanded\n ? node.children?.map((childNode) => (\n <SidebarNodeRow\n key={childNode.id}\n sectionId={sectionId}\n node={childNode}\n level={level + 1}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n onNavigate={onNavigate}\n onToggleNode={onToggleNode}\n />\n ))\n : null}\n </Stack>\n );\n};\n\nexport const SidebarTree = (props: SidebarTreeProps) => {\n const { sections, expandedSections, expandedNodes, activeNodeId, onNavigate, onToggleSection, onToggleNode } = props;\n\n return (\n <Stack gap=\"md\" p=\"md\">\n {sections.map((section) => {\n const sectionExpanded = section.label ? isExpanded(section.id, expandedSections) : true;\n\n return (\n <Stack key={section.id} gap=\"0\">\n {section.label ? (\n <HStack\n className=\"group\"\n justify=\"space-between\"\n align=\"center\"\n px=\"1\"\n py=\"2xs\"\n minH=\"7\"\n cursor=\"pointer\"\n borderRadius=\"xs\"\n _hover={{ bg: \"bg.subtle\" }}\n onClick={() => onToggleSection(section.id)}\n >\n <HStack gap=\"1\" flex=\"1\" minW=\"0\">\n <Text textStyle=\"label/XS\" textTransform=\"uppercase\" color=\"fg.muted\" letterSpacing=\"0.08em\" truncate>\n {section.label}\n </Text>\n <Box color=\"fg.muted\" flexShrink={0}>\n <ChevronRight\n size={14}\n style={{ transform: sectionExpanded ? \"rotate(90deg)\" : \"rotate(0deg)\", transition: \"120ms\" }}\n />\n </Box>\n </HStack>\n <SidebarRowActions sectionId={section.id} actions={section.actions ?? []} />\n </HStack>\n ) : null}\n\n {sectionExpanded\n ? section.nodes.length > 0\n ? section.nodes.map((node) => (\n <SidebarNodeRow\n key={node.id}\n sectionId={section.id}\n node={node}\n level={0}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n onNavigate={onNavigate}\n onToggleNode={onToggleNode}\n />\n ))\n : (section.emptyState ?? null)\n : null}\n </Stack>\n );\n })}\n </Stack>\n );\n};\n","import { useStore } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\nimport { createStore } from \"zustand/vanilla\";\n\ninterface SidebarNextSnapshot {\n open: boolean;\n expandedSections: string[];\n expandedNodes: string[];\n}\n\ninterface SidebarNextState extends SidebarNextSnapshot {\n openSidebar: () => void;\n closeSidebar: () => void;\n toggleSidebar: () => void;\n toggleSection: (sectionId: string) => void;\n toggleNode: (nodeId: string) => void;\n setSectionExpanded: (sectionId: string, expanded: boolean) => void;\n setNodeExpanded: (nodeId: string, expanded: boolean) => void;\n reset: () => void;\n}\n\ninterface CreateSidebarNextStoreOptions {\n storageKey: string;\n initialState?: Partial<SidebarNextSnapshot>;\n}\n\nconst DEFAULT_SNAPSHOT = {\n open: true,\n expandedSections: [],\n expandedNodes: [],\n} satisfies SidebarNextSnapshot;\n\nconst SIDEBAR_STORE_NAMESPACE = \"pstdio/ui/sidebar-next\";\n\nconst toStorageName = (storageKey: string) => `${SIDEBAR_STORE_NAMESPACE}/${storageKey}`;\n\nconst createNoopStorage = () => ({\n getItem: () => null,\n setItem: () => {},\n removeItem: () => {},\n});\n\nconst toggleId = (values: string[], id: string) =>\n values.includes(id) ? values.filter((value) => value !== id) : [...values, id];\n\nconst setExpanded = (values: string[], id: string, expanded: boolean) => {\n if (expanded) {\n return values.includes(id) ? values : [...values, id];\n }\n\n return values.filter((value) => value !== id);\n};\n\nconst getPersistedSnapshot = (state: SidebarNextState) => ({\n open: state.open,\n expandedSections: state.expandedSections,\n expandedNodes: state.expandedNodes,\n});\n\nexport const createSidebarNextStore = (options: CreateSidebarNextStoreOptions) => {\n const { storageKey, initialState } = options;\n const snapshot = { ...DEFAULT_SNAPSHOT, ...initialState };\n\n return createStore<SidebarNextState>()(\n persist(\n (set) => ({\n ...snapshot,\n openSidebar: () => set((state) => ({ ...state, open: true })),\n closeSidebar: () => set((state) => ({ ...state, open: false })),\n toggleSidebar: () => set((state) => ({ ...state, open: !state.open })),\n toggleSection: (sectionId) =>\n set((state) => ({\n ...state,\n expandedSections: toggleId(state.expandedSections, sectionId),\n })),\n toggleNode: (nodeId) =>\n set((state) => ({\n ...state,\n expandedNodes: toggleId(state.expandedNodes, nodeId),\n })),\n setSectionExpanded: (sectionId, expanded) =>\n set((state) => ({\n ...state,\n expandedSections: setExpanded(state.expandedSections, sectionId, expanded),\n })),\n setNodeExpanded: (nodeId, expanded) =>\n set((state) => ({\n ...state,\n expandedNodes: setExpanded(state.expandedNodes, nodeId, expanded),\n })),\n reset: () => set(DEFAULT_SNAPSHOT),\n }),\n {\n name: toStorageName(storageKey),\n storage: createJSONStorage(() => {\n if (typeof globalThis.localStorage === \"undefined\") {\n return createNoopStorage();\n }\n\n return globalThis.localStorage;\n }),\n partialize: getPersistedSnapshot,\n },\n ),\n );\n};\n\nconst sidebarStoreRegistry = new Map<string, ReturnType<typeof createSidebarNextStore>>();\n\nexport const getSidebarNextStore = (storageKey: string) => {\n const existingStore = sidebarStoreRegistry.get(storageKey);\n\n if (existingStore) {\n return existingStore;\n }\n\n const store = createSidebarNextStore({ storageKey });\n sidebarStoreRegistry.set(storageKey, store);\n\n return store;\n};\n\nexport const useSidebarNextStore = <T>(storageKey: string, selector: (state: SidebarNextState) => T) => {\n const store = getSidebarNextStore(storageKey);\n return useStore(store, selector);\n};\n","import { Box } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\n\ninterface SidebarNextFooterProps {\n children?: ReactNode;\n}\n\nexport const SidebarNextFooter = (props: SidebarNextFooterProps) => {\n const { children } = props;\n\n if (!children) {\n return null;\n }\n\n return (\n <Box borderTopWidth=\"1px\" borderTopColor=\"border.muted\" px=\"2\" py=\"2\" bg=\"bg\" position=\"sticky\" bottom=\"0\">\n {children}\n </Box>\n );\n};\n","import { HStack, IconButton } from \"@chakra-ui/react\";\nimport { PanelLeftClose } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\ninterface SidebarNextHeaderProps {\n children?: ReactNode;\n onClose: () => void;\n}\n\nexport const SidebarNextHeader = (props: SidebarNextHeaderProps) => {\n const { children, onClose } = props;\n\n return (\n <HStack\n justify=\"space-between\"\n align=\"center\"\n minH=\"11\"\n px=\"3\"\n py=\"2\"\n borderBottomWidth=\"1px\"\n borderBottomColor=\"border.muted\"\n bg=\"bg\"\n position=\"sticky\"\n top=\"0\"\n zIndex=\"1\"\n >\n <HStack minW=\"0\" flex=\"1\">\n {children}\n </HStack>\n <IconButton variant=\"ghost\" size=\"sm\" aria-label=\"Hide sidebar\" onClick={onClose}>\n <PanelLeftClose size={16} />\n </IconButton>\n </HStack>\n );\n};\n","import { Flex, Text } from \"@chakra-ui/react\";\nimport { useEffect } from \"react\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { SidebarTree } from \"../sidebar-tree/sidebar-tree\";\nimport { useSidebarNextStore } from \"./sidebar-next.store\";\nimport type { SidebarNextProps } from \"./sidebar-next.types\";\nimport { SidebarNextFooter } from \"./sidebar-next-footer\";\nimport { SidebarNextHeader } from \"./sidebar-next-header\";\n\nexport const SidebarNext = (props: SidebarNextProps) => {\n const {\n storageKey,\n sections,\n activeNodeId,\n header,\n footer,\n width = \"320px\",\n emptyLabel = \"No items available.\",\n onNavigate,\n onOpenChange,\n } = props;\n\n const open = useSidebarNextStore(storageKey, (state) => state.open);\n const expandedSections = useSidebarNextStore(storageKey, (state) => state.expandedSections);\n const expandedNodes = useSidebarNextStore(storageKey, (state) => state.expandedNodes);\n const closeSidebar = useSidebarNextStore(storageKey, (state) => state.closeSidebar);\n const toggleSection = useSidebarNextStore(storageKey, (state) => state.toggleSection);\n const toggleNode = useSidebarNextStore(storageKey, (state) => state.toggleNode);\n\n useEffect(() => {\n onOpenChange?.(open);\n }, [onOpenChange, open]);\n\n if (!open) {\n return null;\n }\n\n return (\n <Flex\n as=\"aside\"\n direction=\"column\"\n h=\"100%\"\n w={width}\n minW={width}\n maxW={width}\n borderRightWidth=\"1px\"\n borderRightColor=\"border.muted\"\n bg=\"bg\"\n >\n <SidebarNextHeader onClose={closeSidebar}>{header}</SidebarNextHeader>\n\n <ScrollArea flex=\"1\">\n {sections.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" p=\"3\">\n {emptyLabel}\n </Text>\n ) : (\n <SidebarTree\n sections={sections}\n expandedSections={expandedSections}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n onNavigate={onNavigate}\n onToggleSection={toggleSection}\n onToggleNode={toggleNode}\n />\n )}\n </ScrollArea>\n\n <SidebarNextFooter>{footer}</SidebarNextFooter>\n </Flex>\n );\n};\n","import { Switch as ChakraSwitch } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface SwitchProps extends ChakraSwitch.RootProps {\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n trackLabel?: { on: React.ReactNode; off: React.ReactNode };\n thumbLabel?: { on: React.ReactNode; off: React.ReactNode };\n}\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(function Switch(props, ref) {\n const { inputProps, children, rootRef, trackLabel, thumbLabel, disabled = false, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : \"pointer\";\n\n return (\n <ChakraSwitch.Root ref={rootRef} disabled={disabled} cursor={interactiveCursor} {...rest}>\n <ChakraSwitch.HiddenInput ref={ref} {...inputProps} />\n <ChakraSwitch.Control borderRadius=\"md\" cursor={interactiveCursor}>\n <ChakraSwitch.Thumb borderRadius=\"full\">\n {thumbLabel && (\n <ChakraSwitch.ThumbIndicator fallback={thumbLabel?.off}>{thumbLabel?.on}</ChakraSwitch.ThumbIndicator>\n )}\n </ChakraSwitch.Thumb>\n {trackLabel && <ChakraSwitch.Indicator fallback={trackLabel.off}>{trackLabel.on}</ChakraSwitch.Indicator>}\n </ChakraSwitch.Control>\n {children != null && <ChakraSwitch.Label cursor={interactiveCursor}>{children}</ChakraSwitch.Label>}\n </ChakraSwitch.Root>\n );\n});\n","import { Badge, HStack, Stack, Text, Wrap } from \"@chakra-ui/react\";\nimport { GitBranchIcon } from \"lucide-react\";\nimport type { DragEventHandler, MouseEvent } from \"react\";\nimport { DiffBubble } from \"@/components/diff-bubble\";\nimport { Tooltip } from \"@/components/tooltip\";\nimport { type SessionCompletionStatus, SessionIndicator } from \"../session-indicator\";\n\nexport interface TicketCardBadge {\n label: string;\n color?: string;\n}\n\ninterface TicketCardProps {\n ticketId: string;\n parentPath?: string[];\n sessionIndicatorLabel?: string;\n sessionIndicatorStatus?: SessionCompletionStatus;\n title: string;\n badges?: TicketCardBadge[];\n diffAdditions?: number;\n diffDeletions?: number;\n isSelected?: boolean;\n draggable?: boolean;\n onDragStart?: DragEventHandler<HTMLDivElement>;\n onDragEnd?: DragEventHandler<HTMLDivElement>;\n onClick?: () => void;\n onDiffBadgeClick?: () => void;\n onSessionIndicatorClick?: () => void;\n}\n\nexport const TicketCard = (props: TicketCardProps) => {\n const {\n ticketId,\n parentPath = [],\n sessionIndicatorLabel,\n sessionIndicatorStatus,\n title,\n badges = [],\n diffAdditions,\n diffDeletions,\n isSelected = false,\n draggable,\n onDragStart,\n onDragEnd,\n onClick,\n onDiffBadgeClick,\n onSessionIndicatorClick,\n } = props;\n\n const handleDiffBadgeClick = (event: MouseEvent<HTMLSpanElement>) => {\n event.stopPropagation();\n onDiffBadgeClick?.();\n };\n\n const handleSessionIndicatorClick = (event: MouseEvent<SVGSVGElement>) => {\n event.stopPropagation();\n onSessionIndicatorClick?.();\n };\n\n return (\n <Stack\n gap=\"xs\"\n padding=\"sm\"\n borderRadius=\"sm\"\n borderWidth=\"1px\"\n width=\"calc(100% - 8px)\"\n alignSelf=\"center\"\n background=\"bg\"\n transition=\"box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out\"\n _hover={{\n borderColor: \"border.blue\",\n boxShadow: \"mid\",\n }}\n cursor={draggable ? \"grab\" : onClick ? \"pointer\" : \"default\"}\n draggable={draggable}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onClick={onClick}\n data-selected={isSelected ? \"true\" : undefined}\n >\n <HStack justifyContent={\"space-between\"} gap=\"2xs\" flexWrap=\"wrap\">\n <HStack gap=\"2xs\" flexShrink={0}>\n <Text textStyle=\"label/S/regular\" flexShrink={0}>\n {parentPath.length > 0 && (\n <Text as=\"span\" color=\"subtle\">\n {parentPath.join(\" / \")} /{\" \"}\n </Text>\n )}\n {ticketId}\n </Text>\n {sessionIndicatorLabel ? (\n <Tooltip content={`Session ${sessionIndicatorLabel}`}>\n <SessionIndicator\n status={sessionIndicatorStatus}\n boxSize=\"12px\"\n aria-label={`Session ${sessionIndicatorLabel}`}\n cursor={onSessionIndicatorClick ? \"pointer\" : \"default\"}\n onClick={onSessionIndicatorClick ? handleSessionIndicatorClick : undefined}\n />\n </Tooltip>\n ) : null}\n </HStack>\n {typeof diffAdditions === \"number\" && typeof diffDeletions === \"number\" ? (\n <DiffBubble\n additions={diffAdditions}\n deletions={diffDeletions}\n variant=\"ghost\"\n size=\"small\"\n label={<GitBranchIcon size=\"12\" />}\n onClick={handleDiffBadgeClick}\n data-testid=\"ticket-diff-badge\"\n />\n ) : null}\n </HStack>\n\n <HStack align=\"start\" gap=\"2xs\" flexWrap=\"wrap\">\n <Text textStyle=\"label/S/regular\" flex=\"1\" minW=\"0\">\n {title}\n </Text>\n </HStack>\n\n {badges.length > 0 && (\n <Wrap gap=\"2xs\">\n {badges.map((badge) => (\n <Badge key={badge.label} variant=\"subtle\" colorPalette={badge.color ?? \"gray\"} textStyle=\"label/XS/medium\">\n {badge.label}\n </Badge>\n ))}\n </Wrap>\n )}\n </Stack>\n );\n};\n","import { Badge, HStack, Icon, IconButton, Menu, Spacer, Stack, Text } from \"@chakra-ui/react\";\nimport { MoreHorizontal, Plus } from \"lucide-react\";\nimport { type ComponentProps, type ComponentType, type DragEvent, useState } from \"react\";\n\nimport { MenuItem } from \"@/components/menu-item\";\nimport { ScrollArea } from \"@/components/scroll-area\";\nimport { Tooltip } from \"@/components/tooltip\";\n\nimport { TicketCard } from \"./ticket-card\";\n\ntype TicketCardProps = ComponentProps<typeof TicketCard>;\n\nexport interface TicketBoardItem {\n id: string;\n cardProps: Omit<TicketCardProps, \"draggable\" | \"onDragStart\" | \"onDragEnd\" | \"isSelected\">;\n}\n\nexport interface TicketBoardColumnAction {\n id: string;\n label: string;\n icon: ComponentType<{ size?: number | string }>;\n}\n\nexport interface TicketBoardColumn {\n id: string;\n label: string;\n color?: string;\n items: TicketBoardItem[];\n canDragIn: boolean;\n canDragOut: boolean;\n canCreate: boolean;\n actions: TicketBoardColumnAction[];\n}\n\ninterface TicketBoardProps {\n columns: TicketBoardColumn[];\n selectedItemId?: string | null;\n onMoveItem?: (itemId: string, targetColumnId: string) => void;\n onCreateStart?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n}\n\nexport const TicketBoard = (props: TicketBoardProps) => {\n const { columns, selectedItemId = null, onMoveItem, onCreateStart, onColumnAction } = props;\n\n const [activeColumn, setActiveColumn] = useState<string | null>(null);\n\n const handleDragStart = (itemId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.dataTransfer.setData(\"text/plain\", itemId);\n event.dataTransfer.effectAllowed = \"move\";\n };\n\n const handleDragEnd = () => {\n setActiveColumn(null);\n };\n\n const handleDragOver = (columnId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n setActiveColumn(columnId);\n };\n\n const handleDragLeave = (event: DragEvent<HTMLDivElement>) => {\n if (event.currentTarget.contains(event.relatedTarget as Node)) return;\n setActiveColumn(null);\n };\n\n const handleDrop = (columnId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setActiveColumn(null);\n\n const itemId = event.dataTransfer.getData(\"text/plain\");\n if (!itemId) return;\n\n onMoveItem?.(itemId, columnId);\n };\n\n return (\n <ScrollArea\n height=\"100%\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n contentProps={{ display: \"flex\", alignItems: \"stretch\", gap: \"0\", pb: \"2xs\", minH: \"100%\" }}\n >\n {columns.map((column) => (\n <Stack\n key={column.id}\n gap=\"xs\"\n _notFirst={{ borderLeft: \"1px solid\", borderColor: \"border\" }}\n background={activeColumn === column.id ? \"bg.subtle\" : \"bg\"}\n transition=\"background 150ms ease\"\n height=\"100%\"\n minH=\"240px\"\n overflow=\"hidden\"\n minW=\"260px\"\n flex=\"1 0 260px\"\n onDragOver={column.canDragIn ? handleDragOver(column.id) : undefined}\n onDragLeave={column.canDragIn ? handleDragLeave : undefined}\n onDrop={column.canDragIn ? handleDrop(column.id) : undefined}\n >\n <ColumnHeader column={column} onCreateStart={onCreateStart} onColumnAction={onColumnAction} />\n\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ spaceY: \"sm\" }}>\n {column.items.map((item) => (\n <TicketCard\n key={item.id}\n {...item.cardProps}\n isSelected={item.id === selectedItemId}\n draggable={column.canDragOut}\n onDragStart={column.canDragOut ? handleDragStart(item.id) : undefined}\n onDragEnd={column.canDragOut ? handleDragEnd : undefined}\n />\n ))}\n </ScrollArea>\n </Stack>\n ))}\n </ScrollArea>\n );\n};\n\ninterface ColumnHeaderProps {\n column: TicketBoardColumn;\n onCreateStart?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n}\n\nconst ColumnHeader = (props: ColumnHeaderProps) => {\n const { column, onCreateStart, onColumnAction } = props;\n\n return (\n <HStack padding=\"xs\" gap=\"xs\" alignItems=\"center\">\n <Text textStyle=\"label/L/medium\">{column.label}</Text>\n\n <Badge variant=\"subtle\" colorPalette={column.color ?? \"gray\"}>\n {column.items.length}\n </Badge>\n\n <Spacer />\n\n {column.canCreate && onCreateStart && (\n <Tooltip content=\"Create new ticket\">\n <IconButton size=\"2xs\" variant=\"outline\" onClick={() => onCreateStart(column.id)} aria-label=\"Create ticket\">\n <Icon as={Plus} boxSize=\"12px\" />\n </IconButton>\n </Tooltip>\n )}\n\n {column.actions.length > 0 && (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton size=\"2xs\" variant=\"ghost\" aria-label={`Column actions for ${column.label}`}>\n <Icon as={MoreHorizontal} boxSize=\"12px\" />\n </IconButton>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"180px\" bg=\"bg\">\n {column.actions.map((action) => (\n <MenuItem\n key={action.id}\n primaryLabel={action.label}\n leftIcon={action.icon}\n onClick={() => onColumnAction?.(column.id, action.id)}\n />\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n )}\n </HStack>\n );\n};\n","import { Badge, Box, HStack, Icon, Text, Wrap } from \"@chakra-ui/react\";\nimport {\n type ColumnDef,\n type ExpandedState,\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n type Row,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { ChevronRight } from \"lucide-react\";\nimport type { ComponentType, ReactNode } from \"react\";\n\nimport type { TicketCardBadge } from \"./ticket-card\";\n\nexport interface TicketListItem {\n id: string;\n ticketId: string;\n title: string;\n statusIcon?: ComponentType<{ size?: number | string }>;\n statusColor?: string;\n badges?: TicketCardBadge[];\n date?: string;\n assigneeIcon?: ReactNode;\n children?: TicketListItem[];\n onClick?: () => void;\n}\n\ninterface TicketListProps {\n items: TicketListItem[];\n selectedItemId?: string | null;\n onItemClick?: (item: TicketListItem) => void;\n}\n\nconst columns: ColumnDef<TicketListItem, unknown>[] = [\n {\n id: \"ticket\",\n header: \"\",\n cell: ({ row }) => <TicketCell row={row} />,\n },\n];\n\nexport const TicketList = (props: TicketListProps) => {\n const { items, selectedItemId = null, onItemClick } = props;\n\n const table = useReactTable({\n data: items,\n columns,\n state: { expanded: true as unknown as ExpandedState },\n getSubRows: (row) => row.children,\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getRowId: (row) => row.id,\n });\n\n return (\n <Box>\n {table.getRowModel().rows.map((row) => {\n const item = row.original;\n const isSelected = item.id === selectedItemId;\n\n return (\n <HStack\n key={row.id}\n paddingX=\"sm\"\n paddingY=\"xs\"\n gap=\"sm\"\n cursor=\"pointer\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.muted\"\n background={isSelected ? \"bg.muted\" : \"transparent\"}\n _hover={{ background: \"bg.muted\" }}\n onClick={() => {\n item.onClick?.();\n onItemClick?.(item);\n }}\n data-selected={isSelected ? \"true\" : undefined}\n >\n {flexRender(row.getVisibleCells()[0].column.columnDef.cell, row.getVisibleCells()[0].getContext())}\n </HStack>\n );\n })}\n </Box>\n );\n};\n\ninterface TicketCellProps {\n row: Row<TicketListItem>;\n}\n\nconst TicketCell = (props: TicketCellProps) => {\n const { row } = props;\n const item = row.original;\n const depth = row.depth;\n\n return (\n <HStack gap=\"sm\" flex=\"1\" paddingLeft={depth > 0 ? `${depth * 24}px` : undefined}>\n {row.getCanExpand() ? <ExpandToggle row={row} /> : depth > 0 ? <TreeConnector /> : null}\n\n {item.statusIcon && (\n <Icon as={item.statusIcon} boxSize=\"16px\" color={item.statusColor ?? \"fg.muted\"} flexShrink={0} />\n )}\n\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\" flexShrink={0} minW=\"70px\">\n {item.ticketId}\n </Text>\n\n <Text textStyle=\"label/S/regular\" flex=\"1\" truncate>\n {item.title}\n </Text>\n\n {item.badges && item.badges.length > 0 && (\n <Wrap gap=\"2xs\" flexShrink={0}>\n {item.badges.map((badge) => (\n <Badge key={badge.label} variant=\"subtle\" colorPalette={badge.color ?? \"gray\"} textStyle=\"label/XS/medium\">\n {badge.label}\n </Badge>\n ))}\n </Wrap>\n )}\n\n {item.assigneeIcon && <Box flexShrink={0}>{item.assigneeIcon}</Box>}\n\n {item.date && (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\" flexShrink={0}>\n {item.date}\n </Text>\n )}\n </HStack>\n );\n};\n\ninterface ExpandToggleProps {\n row: Row<TicketListItem>;\n}\n\nconst ExpandToggle = (props: ExpandToggleProps) => {\n const { row } = props;\n\n return (\n <Box\n as=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n row.toggleExpanded();\n }}\n cursor=\"pointer\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n width=\"16px\"\n height=\"16px\"\n >\n <Icon\n as={ChevronRight}\n boxSize=\"14px\"\n color=\"fg.muted\"\n transform={row.getIsExpanded() ? \"rotate(90deg)\" : \"rotate(0deg)\"}\n transition=\"transform 0.15s ease\"\n />\n </Box>\n );\n};\n\nconst TreeConnector = () => (\n <Box width=\"16px\" height=\"16px\" position=\"relative\" flexShrink={0}>\n <Box position=\"absolute\" left=\"7px\" top=\"0\" bottom=\"50%\" borderLeftWidth=\"1px\" borderColor=\"border.muted\" />\n <Box position=\"absolute\" left=\"7px\" top=\"50%\" width=\"8px\" borderBottomWidth=\"1px\" borderColor=\"border.muted\" />\n </Box>\n);\n","import { Toaster as ChakraToaster, createToaster, Portal, Spinner, Stack, Toast } from \"@chakra-ui/react\";\n\nexport const toaster: ReturnType<typeof createToaster> = createToaster({\n placement: \"bottom-end\",\n pauseOnPageIdle: true,\n});\n\nexport const Toaster = () => {\n return (\n <Portal>\n <ChakraToaster toaster={toaster} insetInline={{ mdDown: \"4\" }}>\n {(toast) => (\n <Toast.Root width={{ md: \"sm\" }}>\n {toast.type === \"loading\" ? <Spinner size=\"sm\" color=\"blue.solid\" /> : <Toast.Indicator />}\n <Stack gap=\"1\" flex=\"1\" maxWidth=\"100%\">\n {toast.title && <Toast.Title>{toast.title}</Toast.Title>}\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Stack>\n {toast.action && <Toast.ActionTrigger>{toast.action.label}</Toast.ActionTrigger>}\n {toast.closable && <Toast.CloseTrigger />}\n </Toast.Root>\n )}\n </ChakraToaster>\n </Portal>\n );\n};\n","export type ThemePreference = \"light\" | \"dark\";\n\nexport const applyThemePreference = (theme: ThemePreference) => {\n if (typeof document === \"undefined\") return;\n\n const root = document.documentElement;\n const body = document.body;\n const opposite = theme === \"dark\" ? \"light\" : \"dark\";\n\n for (const el of [root, body]) {\n if (!el) continue;\n el.classList.remove(opposite);\n el.classList.add(theme);\n el.setAttribute(\"data-theme\", theme);\n el.style.colorScheme = theme;\n }\n};\n","import { createContext, type ReactNode, useContext, useEffect, useState } from \"react\";\n\nimport { applyThemePreference, type ThemePreference } from \"./apply-theme-preference\";\n\nconst STORAGE_KEY = \"theme-preference\";\n\nconst ThemePreferenceContext = createContext<ThemePreferenceContextValue | null>(null);\n\ninterface ThemePreferenceContextValue {\n themePreference: ThemePreference;\n setThemePreference: (preference: ThemePreference) => void;\n toggleThemePreference: () => void;\n}\n\ninterface ThemePreferenceProviderProps {\n children: ReactNode;\n initialPreference?: ThemePreference;\n}\n\nexport const getInitialThemePreference = () => {\n if (typeof window === \"undefined\") return \"light\";\n\n const stored = window.localStorage.getItem(STORAGE_KEY);\n if (stored === \"dark\" || stored === \"light\") return stored;\n\n const prefersDark =\n typeof window.matchMedia === \"function\" && window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n return prefersDark ? \"dark\" : \"light\";\n};\n\nexport const ThemePreferenceProvider = (props: ThemePreferenceProviderProps) => {\n const { children, initialPreference = getInitialThemePreference() } = props;\n const [themePreference, setThemePreference] = useState<ThemePreference>(initialPreference);\n\n useEffect(() => {\n applyThemePreference(themePreference);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(STORAGE_KEY, themePreference);\n }\n }, [themePreference]);\n\n const toggleThemePreference = () => setThemePreference((prev) => (prev === \"dark\" ? \"light\" : \"dark\"));\n\n return (\n <ThemePreferenceContext value={{ themePreference, setThemePreference, toggleThemePreference }}>\n {children}\n </ThemePreferenceContext>\n );\n};\n\nexport const useThemePreference = () => {\n const context = useContext(ThemePreferenceContext);\n\n if (!context) {\n throw new Error(\"useThemePreference must be used within a ThemePreferenceProvider\");\n }\n\n return context;\n};\n"],"names":["AlertMessage","React","forwardRef","props","ref","$","_c","children","endElement","icon","rest","startElement","title","t0","jsx","ChakraAlert","t1","jsxs","t2","Breadcrumb","LinkComponent","items","separator","separatorGap","linkComponent","length","item","index","last","isInteractive","Boolean","url","onClick","itemContent","ChakraBreadcrumb","map","Checkbox","inputProps","rootRef","disabled","undefined","interactiveCursor","ChakraCheckbox","t3","t4","t5","ContentPlaceholder","Symbol","for","backgroundClip","backgroundImage","display","width","Box","Label","Text","DeleteConfirmationModal","isDeleting","setIsDeleting","useState","headline","buttonText","notificationText","onDelete","open","onClose","handleDelete","Dialog","CloseButton","Stack","Button","getLanguage","path","split","pop","toLowerCase","ext","DiffCard","diff","isExpanded","setIsExpanded","filePath","newPath","oldPath","language","additions","deletions","event","stopPropagation","ChevronDown","ChevronRight","t6","IconButton","t7","change","t8","t9","DiffBubble","t10","Grid","t11","newContent","oldContent","DiffEditor","t12","ScrollArea","contentProps","horizontalScrollbarProps","verticalScrollbarProps","viewportProps","viewportRef","showVerticalScrollbar","showHorizontalScrollbar","showCorner","ChakraScrollArea","DiffDrawer","diffs","scrollRef","useRef","virtualizer","useVirtualizer","count","getScrollElement","current","estimateSize","overscan","p","spaceY","EmptyState","height","getTotalSize","getVirtualItems","virtualItem","measureElement","transform","start","key","getEntryKey","entry","version","date","getChangeKey","ChangelogDate","Timeline","Flex","DocsChangelog","entries","description","Heading","_temp3","_temp","tag","Badge","_temp2","changeIndex","List","link","Link","entryIndex","base","md","tags","HStack","image","Image","changes","HEADING_REGEX","HEADING_SELECTOR","isHeadingLevelMatch","element","level","classList","contains","slugifyHeading","value","replace","extractHeadings","markdown","headings","headingIndex","match","matchAll","text","trim","id","push","matchHeadingElements","doc","elements","Array","from","querySelectorAll","elementsByHeadingId","Map","headingIdByElement","nextElementIndex","heading","elementIndex","elementText","textContent","set","DocsOutlineItem","isActive","emphasized","variant","onSelect","isLine","borderStartColor","color","DocsOutline","rootMargin","env","useEnvironmentContext","activeHeadingId","setActiveHeadingId","isMobileOpen","setIsMobileOpen","headingElementsMatchRef","extractedHeadings","useEffect","headingsForObserver","getDocument","win","getWindow","nextMatch","size","observer","IntersectionObserver","visibleEntries","filter","sort","target","nextActiveHeadingId","get","keys","observe","disconnect","activeHeading","find","headingId","headingElement","scrollIntoView","behavior","block","handleHeadingSelect","details","Icon","FileText","Fragment","t13","t14","t15","t16","t17","Collapsible","t18","heading_0","T0","t19","t20","t21","t22","t23","t24","t25","T1","t26","t27","heading_1","t28","t29","t30","isIntersecting","first","second","boundingClientRect","top","DocsPaginationLink","direction","isPrevious","directionText","ChevronLeft","href","DocsPagination","previous","next","ItemSection","defaultOpen","action","background","e","menuItemVariantStyles","default","paddingX","paddingY","minHeight","iconSize","primaryTextStyle","secondaryMarginLeft","secondaryTextStyle","compact","MenuItem","primaryLabel","tooltipLabel","secondaryLabel","leftIcon","leftSlot","rightIcon","leftIconColor","rightIconColor","leftIconSize","rightIconSize","rightIconAriaLabel","rightTooltipLabel","onRightIconClick","isDisabled","isSelected","tagLabel","tagColorPalette","tagVariant","tabIndex","maxWidth","setRefElement","onMouseDown","onMouseEnter","variantStyles","backgroundColor","resolvedLeftIconSize","resolvedRightIconSize","isRightIconInteractive","preventDefault","handleRightIconMouseDown","event_0","handleRightIconClick","bg","placement","Tooltip","ChakraMenuItem","panelMenuVariantStyles","headerHeight","headerPadding","headerTextStyle","contentPadding","contentGap","PanelMenu","styles","DocsSidebarEntry","activeLink","onSelectLink","shouldStartOpen","hasChildren","Menu","child","DocsSidebar","emptyMessage","menuItems","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","console","handleReset","setState","onReset","render","fallback","label","ErrorFallback","message","AbsoluteCenter","getEntryIcon","isDirectory","isGitRepo","FolderOpen","Folder","FolderPickerListEntry","selectedPath","selectedPathSet","onEntryClick","has","isAlreadySelected","handleClick","name","FolderPickerDialog","currentPath","selectedPaths","isLoading","isSelectDisabled","onSelectHomeDirectory","onSelectParentDirectory","Set","Home","ChevronUp","padding","HorizontalMenuStack","getNoticeKey","notice","getNoticeTitle","OpenSourceNoticesScreen","notices","productName","productVersion","generatedAt","emptyTitle","emptyDescription","Separator","license","copyright","homepageUrl","sourceUrl","attribution","Properties","Info","resolveSessionIndicatorIcon","status","CircleCheck","CircleAlert","CircleDashed","resolveSessionIndicatorColor","SessionIndicator","boxSize","ariaLabel","cursor","values","includes","SidebarActionButton","sectionId","nodeId","onAction","SidebarRowActions","actions","opacity","pointerEvents","SidebarNodeRow","node","expandedNodes","activeNodeId","onNavigate","onToggleNode","expanded","isNavigable","navigationIntent","paddingLeft","intent","transition","childNode","SidebarTree","sections","expandedSections","onToggleSection","section","sectionExpanded","nodes","emptyState","DEFAULT_SNAPSHOT","SIDEBAR_STORE_NAMESPACE","toStorageName","storageKey","createNoopStorage","getItem","setItem","removeItem","toggleId","setExpanded","getPersistedSnapshot","createSidebarNextStore","options","initialState","snapshot","createStore","persist","openSidebar","closeSidebar","toggleSidebar","toggleSection","toggleNode","setSectionExpanded","setNodeExpanded","reset","storage","createJSONStorage","globalThis","localStorage","partialize","sidebarStoreRegistry","getSidebarNextStore","existingStore","store","useSidebarNextStore","selector","useStore","SidebarNextFooter","SidebarNextHeader","PanelLeftClose","SidebarNext","header","footer","emptyLabel","onOpenChange","_temp4","_temp5","_temp6","state_0","state_1","state_2","state_3","state_4","Switch","thumbLabel","trackLabel","ChakraSwitch","off","on","TicketCard","ticketId","parentPath","sessionIndicatorLabel","sessionIndicatorStatus","badges","diffAdditions","diffDeletions","draggable","onDragStart","onDragEnd","onDiffBadgeClick","onSessionIndicatorClick","handleDiffBadgeClick","handleSessionIndicatorClick","borderColor","boxShadow","join","GitBranchIcon","Wrap","badge","TicketBoard","columns","selectedItemId","onMoveItem","onCreateStart","onColumnAction","activeColumn","setActiveColumn","handleDragStart","handleDragEnd","columnId","dataTransfer","dropEffect","handleDragOver","event_1","currentTarget","relatedTarget","handleDragLeave","columnId_0","event_2","itemId_0","getData","itemId","handleDrop","alignItems","gap","pb","minH","column","borderLeft","canDragIn","ColumnHeader","cardProps","canDragOut","Spacer","canCreate","Plus","MoreHorizontal","setData","effectAllowed","cell","row","TicketCell","TicketList","onItemClick","table","useReactTable","data","getSubRows","getCoreRowModel","getExpandedRowModel","getRowId","getRowModel","rows","original","flexRender","getVisibleCells","columnDef","getContext","depth","getCanExpand","ExpandToggle","TreeConnector","statusColor","statusIcon","assigneeIcon","toggleExpanded","getIsExpanded","toaster","createToaster","pauseOnPageIdle","Toaster","Portal","ChakraToaster","mdDown","toast","Toast","type","Spinner","closable","applyThemePreference","theme","document","root","documentElement","body","opposite","el","remove","add","setAttribute","style","colorScheme","STORAGE_KEY","ThemePreferenceContext","createContext","getInitialThemePreference","window","stored","matchMedia","matches","ThemePreferenceProvider","initialPreference","themePreference","setThemePreference","toggleThemePreference","useThemePreference","context","useContext","Error","prev"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/alert.tsx","../src/components/breadcrumb.tsx","../src/components/checkbox.tsx","../src/components/content-placeholder.tsx","../src/components/delete-confirmation-modal.tsx","../src/components/diff-card.tsx","../src/components/scroll-area.tsx","../src/components/diff-drawer.tsx","../src/components/documentation/docs-changelog.tsx","../src/components/documentation/docs-outline.tsx","../src/components/documentation/docs-pagination.tsx","../src/components/item-section.tsx","../src/components/menu-item.tsx","../src/components/panel-menu.tsx","../src/components/documentation/docs-sidebar.tsx","../src/components/error-boundary.tsx","../src/components/folder-picker-dialog.tsx","../src/components/horizontal-menu-stack.tsx","../src/components/open-source-notices-screen.tsx","../src/components/properties.tsx","../src/components/session-indicator.tsx","../src/components/sidebar-tree/sidebar-tree.tsx","../src/components/sidebar-next/sidebar-next.store.ts","../src/components/sidebar-next/sidebar-next-footer.tsx","../src/components/sidebar-next/sidebar-next-header.tsx","../src/components/sidebar-next/sidebar-next.tsx","../src/components/switch.tsx","../src/components/tickets/ticket-card.tsx","../src/components/tickets/ticket-board.tsx","../src/components/tickets/ticket-list.tsx","../src/components/toaster.tsx","../src/utils/apply-theme-preference.ts","../src/utils/theme-preference.tsx"],"sourcesContent":["import { Alert as ChakraAlert } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface AlertProps extends Omit<ChakraAlert.RootProps, \"title\"> {\n startElement?: React.ReactNode;\n endElement?: React.ReactNode;\n title?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\nexport const AlertMessage = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(props, ref) {\n const { title, children, icon, startElement, endElement, ...rest } = props;\n return (\n <ChakraAlert.Root ref={ref} {...rest}>\n {startElement || <ChakraAlert.Indicator>{icon}</ChakraAlert.Indicator>}\n {children ? (\n <ChakraAlert.Content>\n <ChakraAlert.Title>{title}</ChakraAlert.Title>\n <ChakraAlert.Description>{children}</ChakraAlert.Description>\n </ChakraAlert.Content>\n ) : (\n <ChakraAlert.Title flex=\"1\">{title}</ChakraAlert.Title>\n )}\n {endElement}\n </ChakraAlert.Root>\n );\n});\n","import { Breadcrumb as ChakraBreadcrumb, type SystemStyleObject } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface BreadcrumbItem {\n title: React.ReactNode;\n url?: string;\n onClick?: () => void;\n}\n\nexport interface BreadcrumbLinkProps {\n to: string;\n children: React.ReactNode;\n}\n\nexport interface BreadcrumbProps extends ChakraBreadcrumb.RootProps {\n separator?: React.ReactNode;\n separatorGap?: SystemStyleObject[\"gap\"];\n items: BreadcrumbItem[];\n linkComponent?: React.ComponentType<BreadcrumbLinkProps>;\n}\n\nexport const Breadcrumb = React.forwardRef<HTMLDivElement, BreadcrumbProps>(function BreadcrumbRoot(props, ref) {\n const { separator, separatorGap, items, linkComponent: LinkComponent, ...rest } = props;\n\n return (\n <ChakraBreadcrumb.Root ref={ref} {...rest}>\n <ChakraBreadcrumb.List gap={separatorGap}>\n {items.map((item, index) => {\n const last = index === items.length - 1;\n const isInteractive = Boolean(item.url || item.onClick);\n let itemContent: React.ReactNode;\n\n if (last && !isInteractive) {\n itemContent = <ChakraBreadcrumb.CurrentLink>{item.title}</ChakraBreadcrumb.CurrentLink>;\n } else if (item.url) {\n itemContent = LinkComponent ? (\n <ChakraBreadcrumb.Link asChild>\n <LinkComponent to={item.url}>{item.title}</LinkComponent>\n </ChakraBreadcrumb.Link>\n ) : (\n <ChakraBreadcrumb.Link href={item.url}>{item.title}</ChakraBreadcrumb.Link>\n );\n } else if (item.onClick) {\n itemContent = (\n <ChakraBreadcrumb.Link as=\"button\" type=\"button\" onClick={item.onClick}>\n {item.title}\n </ChakraBreadcrumb.Link>\n );\n } else {\n itemContent = <ChakraBreadcrumb.Link>{item.title}</ChakraBreadcrumb.Link>;\n }\n\n return (\n <ChakraBreadcrumb.Item key={index}>\n {itemContent}\n {last ? null : (\n <ChakraBreadcrumb.Separator as=\"span\" aria-hidden ml=\"xs\">\n {separator}\n </ChakraBreadcrumb.Separator>\n )}\n </ChakraBreadcrumb.Item>\n );\n })}\n </ChakraBreadcrumb.List>\n </ChakraBreadcrumb.Root>\n );\n});\n","import { Checkbox as ChakraCheckbox } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface CheckboxProps extends ChakraCheckbox.RootProps {\n icon?: React.ReactNode;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n}\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(function Checkbox(props, ref) {\n const { icon, children, inputProps, rootRef, disabled = false, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : \"pointer\";\n\n return (\n <ChakraCheckbox.Root ref={rootRef} disabled={disabled} cursor={interactiveCursor} {...rest}>\n <ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />\n <ChakraCheckbox.Control borderRadius=\"xs\" cursor={interactiveCursor}>\n {icon || <ChakraCheckbox.Indicator />}\n </ChakraCheckbox.Control>\n {children != null && <ChakraCheckbox.Label cursor={interactiveCursor}>{children}</ChakraCheckbox.Label>}\n </ChakraCheckbox.Root>\n );\n});\n","import { Box, type BoxProps, Text, type TextProps } from \"@chakra-ui/react\";\n\nexport interface ContentPlaceholderProps extends BoxProps {}\n\nexport const ContentPlaceholder = (props: ContentPlaceholderProps) => (\n <Box\n {...props}\n css={{\n backgroundClip: \"padding-box\",\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%239C92AC' fill-opacity='0.2' fillRule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E\")`,\n display: \"flex\",\n width: \"100%\",\n }}\n />\n);\n\nexport const Label = (props: TextProps) => (\n <Box p=\"2\">\n <Text color=\"fg.muted\" fontWeight=\"medium\" textStyle=\"sm\" whiteSpace=\"nowrap\" {...props} />\n </Box>\n);\n","import { Button, CloseButton, Dialog, Stack, Text } from \"@chakra-ui/react\";\nimport { useState } from \"react\";\n\ninterface DeleteConfirmationModalProps {\n open: boolean;\n onClose: () => void;\n onDelete: () => void | Promise<void>;\n headline?: string;\n notificationText?: string;\n buttonText?: string;\n}\n\nexport type { DeleteConfirmationModalProps };\n\nexport const DeleteConfirmationModal = (props: DeleteConfirmationModalProps) => {\n const [isDeleting, setIsDeleting] = useState(false);\n const { headline, buttonText, notificationText, onDelete, open, onClose } = props;\n\n const handleDelete = async () => {\n setIsDeleting(true);\n\n try {\n await onDelete();\n onClose();\n } catch {\n // Errors surface through parent state.\n } finally {\n setIsDeleting(false);\n }\n };\n\n return (\n <Dialog.Root open={open} onOpenChange={onClose}>\n <Dialog.Backdrop />\n <Dialog.Positioner>\n <Dialog.Content>\n <Dialog.Header>\n <Text textStyle=\"heading/M\">{headline}</Text>\n <Dialog.CloseTrigger asChild>\n <CloseButton size=\"sm\" />\n </Dialog.CloseTrigger>\n </Dialog.Header>\n <Dialog.Body>{notificationText}</Dialog.Body>\n <Dialog.Footer>\n <Stack direction=\"row\" gap=\"1\">\n <Button onClick={onClose}>Close</Button>\n <Button loading={isDeleting} variant=\"solid\" colorPalette=\"red\" onClick={handleDelete}>\n {buttonText}\n </Button>\n </Stack>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Positioner>\n </Dialog.Root>\n );\n};\n","import { Box, Grid, IconButton, Text } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { DiffBubble } from \"@/components/diff-bubble\";\nimport { DiffEditor } from \"./diff-editor\";\n\nexport interface Diff {\n change: \"added\" | \"deleted\" | \"modified\" | \"renamed\" | \"copied\" | \"permissionChange\";\n oldPath?: string;\n newPath?: string;\n oldContent?: string;\n newContent?: string;\n additions?: number;\n deletions?: number;\n}\n\ninterface DiffCardProps {\n diff: Diff;\n}\n\nconst getLanguage = (path: string) => {\n const ext = path.split(\".\").pop()?.toLowerCase();\n switch (ext) {\n case \"ts\":\n case \"tsx\":\n return \"typescript\";\n case \"js\":\n case \"jsx\":\n return \"javascript\";\n case \"json\":\n return \"json\";\n case \"md\":\n return \"markdown\";\n case \"py\":\n return \"python\";\n case \"go\":\n return \"go\";\n case \"rs\":\n return \"rust\";\n case \"css\":\n return \"css\";\n case \"html\":\n return \"html\";\n case \"sh\":\n return \"shell\";\n case \"yml\":\n case \"yaml\":\n return \"yaml\";\n default:\n return \"plaintext\";\n }\n};\n\nexport const DiffCard = (props: DiffCardProps) => {\n const { diff } = props;\n const [isExpanded, setIsExpanded] = useState(true);\n\n const filePath = diff.newPath || diff.oldPath || \"unknown\";\n const language = getLanguage(filePath);\n\n const additions = diff.additions ?? 0;\n const deletions = diff.deletions ?? 0;\n\n return (\n <Box\n border=\"1px solid\"\n borderColor=\"border.muted\"\n borderRadius=\"xs\"\n overflow=\"hidden\"\n bg=\"bg\"\n width=\"100%\"\n maxW=\"100%\"\n >\n <Grid\n templateColumns=\"auto minmax(0, 1fr) auto\"\n px=\"xs\"\n py=\"2xs\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n borderBottom={isExpanded ? \"1px solid\" : \"none\"}\n borderColor=\"border.muted\"\n cursor=\"pointer\"\n onClick={() => setIsExpanded(!isExpanded)}\n gap=\"sm\"\n >\n <IconButton\n aria-label={isExpanded ? \"Collapse\" : \"Expand\"}\n variant=\"ghost\"\n size=\"2xs\"\n onClick={(event) => {\n event.stopPropagation();\n setIsExpanded(!isExpanded);\n }}\n flexShrink={0}\n >\n {isExpanded ? <ChevronDown size={16} /> : <ChevronRight size={16} />}\n </IconButton>\n\n <Box minW={0} overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\" title={filePath}>\n {diff.change === \"renamed\" ? (\n <Text as=\"span\" textStyle=\"sm\">\n <Text as=\"span\" color=\"fg.muted\" textDecoration=\"line-through\" mr=\"xs\">\n {diff.oldPath}\n </Text>\n <Box as=\"span\" display=\"inline-flex\" alignItems=\"center\" verticalAlign=\"middle\" mr=\"xs\">\n <ChevronRight size={12} />\n </Box>\n {diff.newPath}\n </Text>\n ) : diff.change === \"deleted\" ? (\n <Text as=\"span\" color=\"fg.muted\" textDecoration=\"line-through\" textStyle=\"sm\">\n {filePath}\n </Text>\n ) : (\n <Text as=\"span\" textStyle=\"sm\">\n {filePath}\n </Text>\n )}\n </Box>\n\n <Box flexShrink={0}>\n <DiffBubble variant=\"ghost\" additions={additions} deletions={deletions} />\n </Box>\n </Grid>\n\n {isExpanded && (\n <Box height=\"400px\" bg=\"bg\">\n <DiffEditor\n original={diff.oldContent || \"\"}\n modified={diff.newContent || \"\"}\n language={language}\n sideBySide={false}\n disableScroll={false}\n />\n </Box>\n )}\n </Box>\n );\n};\n","import { ScrollArea as ChakraScrollArea } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\ntype VerticalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\ntype HorizontalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\n\nexport interface ScrollAreaProps extends ChakraScrollArea.RootProps {\n viewportRef?: React.Ref<HTMLDivElement>;\n viewportProps?: ChakraScrollArea.ViewportProps;\n contentProps?: ChakraScrollArea.ContentProps;\n verticalScrollbarProps?: VerticalScrollbarProps;\n horizontalScrollbarProps?: HorizontalScrollbarProps;\n showVerticalScrollbar?: boolean;\n showHorizontalScrollbar?: boolean;\n showCorner?: boolean;\n}\n\nexport const ScrollArea = React.forwardRef<HTMLDivElement, ScrollAreaProps>(function ScrollArea(props, ref) {\n const {\n children,\n viewportRef,\n viewportProps,\n contentProps,\n verticalScrollbarProps,\n horizontalScrollbarProps,\n showVerticalScrollbar = true,\n showHorizontalScrollbar = false,\n showCorner = showVerticalScrollbar && showHorizontalScrollbar,\n ...rest\n } = props;\n\n return (\n <ChakraScrollArea.Root ref={ref} {...rest}>\n <ChakraScrollArea.Viewport {...viewportProps} ref={viewportRef}>\n <ChakraScrollArea.Content {...contentProps}>{children}</ChakraScrollArea.Content>\n </ChakraScrollArea.Viewport>\n {showVerticalScrollbar ? <ChakraScrollArea.Scrollbar {...verticalScrollbarProps} borderRadius={\"xs\"} /> : null}\n {showHorizontalScrollbar ? (\n <ChakraScrollArea.Scrollbar orientation=\"horizontal\" {...horizontalScrollbarProps} borderRadius={\"xs\"} />\n ) : null}\n {showCorner ? <ChakraScrollArea.Corner /> : null}\n </ChakraScrollArea.Root>\n );\n});\n","import { Box, Stack } from \"@chakra-ui/react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { useRef } from \"react\";\nimport { type Diff, DiffCard } from \"./diff-card\";\nimport { EmptyState } from \"./empty-state\";\nimport { ScrollArea } from \"./scroll-area\";\n\ninterface DiffDrawerProps {\n diffs: Diff[];\n}\n\nexport type { Diff };\n\nexport function DiffDrawer(props: DiffDrawerProps) {\n const { diffs } = props;\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const virtualizer = useVirtualizer({\n count: diffs.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => 42,\n overscan: 5,\n });\n\n if (diffs.length === 0) {\n return (\n <Stack h=\"full\" minH=\"0\" gap=\"0\">\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ p: \"xs\", spaceY: \"xs\" }}>\n <EmptyState title=\"No changes detected\" description=\"Make some changes to see the diff here.\" paddingY=\"sm\" />\n </ScrollArea>\n </Stack>\n );\n }\n\n return (\n <Stack h=\"full\" minH=\"0\" gap=\"0\">\n <Box position=\"relative\" flex=\"1\" minH=\"0\">\n <ScrollArea position=\"absolute\" inset=\"0\" viewportRef={scrollRef} contentProps={{ p: \"xs\" }}>\n <Box position=\"relative\" width=\"100%\" style={{ height: virtualizer.getTotalSize() }}>\n {virtualizer.getVirtualItems().map((virtualItem) => (\n <Box\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n width=\"100%\"\n pb=\"xs\"\n style={{ transform: `translateY(${virtualItem.start}px)` }}\n >\n <DiffCard diff={diffs[virtualItem.index]} />\n </Box>\n ))}\n </Box>\n </ScrollArea>\n </Box>\n </Stack>\n );\n}\n","import {\n Badge,\n Box,\n Flex,\n Heading,\n HStack,\n Image,\n Link,\n List,\n Stack,\n type StackProps,\n Text,\n Timeline,\n} from \"@chakra-ui/react\";\n\nexport interface DocsChangelogChange {\n title: string;\n description?: string;\n link?: string;\n}\n\nexport interface DocsChangelogEntry {\n version: string;\n date: string;\n tags?: string[];\n title: string;\n image?: string;\n description?: string;\n changes?: DocsChangelogChange[];\n}\n\nexport interface DocsChangelogProps {\n entries: DocsChangelogEntry[];\n title: string;\n description?: string;\n}\n\ninterface ChangelogDateProps extends StackProps {\n date: string;\n version: string;\n}\n\nconst getEntryKey = (entry: DocsChangelogEntry, index: number) => {\n return `${entry.version}-${entry.date}-${index}`;\n};\n\nconst getChangeKey = (change: DocsChangelogChange, index: number) => {\n return `${change.title}-${index}`;\n};\n\nconst ChangelogDate = (props: ChangelogDateProps) => {\n const { date, version, ...rest } = props;\n\n return (\n <Stack {...rest}>\n <Timeline.Title textStyle=\"sm\" color=\"fg.muted\">\n {date}\n </Timeline.Title>\n <Flex\n px=\"3\"\n py=\"2\"\n rounded=\"l3\"\n align=\"center\"\n justify=\"center\"\n borderWidth=\"1px\"\n textAlign=\"center\"\n alignSelf=\"flex-start\"\n >\n <Timeline.Title textStyle=\"md\" fontWeight=\"semibold\">\n {version}\n </Timeline.Title>\n </Flex>\n </Stack>\n );\n};\n\nexport const DocsChangelog = (props: DocsChangelogProps) => {\n const { entries, title, description } = props;\n\n return (\n <Stack gap=\"20\">\n <Stack textAlign=\"center\">\n <Heading size=\"4xl\">{title}</Heading>\n {description ? (\n <Text color=\"fg.muted\" textStyle=\"lg\">\n {description}\n </Text>\n ) : null}\n </Stack>\n\n <Box position=\"relative\">\n <Timeline.Root size=\"sm\" variant=\"solid\">\n {entries.map((entry, entryIndex) => (\n <Timeline.Item key={getEntryKey(entry, entryIndex)}>\n <Timeline.Content\n top=\"6\"\n width=\"48\"\n flexShrink=\"0\"\n hideBelow=\"md\"\n position={{ base: \"static\", md: \"sticky\" }}\n >\n <ChangelogDate hideBelow=\"md\" date={entry.date} version={entry.version} />\n </Timeline.Content>\n\n <Timeline.Connector>\n <Timeline.Separator />\n <Timeline.Indicator />\n </Timeline.Connector>\n\n <Timeline.Content>\n <Stack gap=\"4\">\n <ChangelogDate hideFrom=\"md\" date={entry.date} version={entry.version} />\n\n <Stack gap=\"2\">\n <Timeline.Title fontSize=\"lg\" fontWeight=\"medium\">\n {entry.title}\n </Timeline.Title>\n {entry.description ? (\n <Text color=\"fg.muted\" textStyle=\"sm\">\n {entry.description}\n </Text>\n ) : null}\n </Stack>\n\n {entry.tags && entry.tags.length > 0 ? (\n <HStack>\n {entry.tags.map((tag) => (\n <Badge\n key={tag}\n size=\"md\"\n rounded=\"l2\"\n variant=\"subtle\"\n colorPalette=\"gray\"\n textTransform=\"capitalize\"\n >\n {tag}\n </Badge>\n ))}\n </HStack>\n ) : null}\n\n {entry.image ? <Image rounded=\"l2\" src={entry.image} alt={entry.title} /> : null}\n\n {entry.changes && entry.changes.length > 0 ? (\n <List.Root pl=\"4\" gap=\"4\">\n {entry.changes.map((change, changeIndex) => (\n <List.Item key={getChangeKey(change, changeIndex)}>\n <Stack gap=\"1\">\n <Text color=\"fg.muted\" fontWeight=\"normal\" textStyle=\"sm\">\n {change.title}\n </Text>\n {change.description ? (\n <Text color=\"fg.subtle\" textStyle=\"xs\">\n {change.description}\n </Text>\n ) : null}\n {change.link ? (\n <Link href={change.link} textStyle=\"xs\" width=\"fit-content\">\n Learn more\n </Link>\n ) : null}\n </Stack>\n </List.Item>\n ))}\n </List.Root>\n ) : null}\n </Stack>\n </Timeline.Content>\n </Timeline.Item>\n ))}\n </Timeline.Root>\n </Box>\n </Stack>\n );\n};\n","import { Box, Collapsible, HStack, Icon, Stack, Text, useEnvironmentContext } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight, FileText } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { ScrollArea } from \"../scroll-area\";\n\ninterface DocHeading {\n id: string;\n level: number;\n text: string;\n}\n\ninterface HeadingElementsMatch {\n elementsByHeadingId: Map<string, HTMLElement>;\n headingIdByElement: Map<HTMLElement, string>;\n}\n\nexport interface DocsOutlineProps {\n markdown: string;\n title?: string;\n rootMargin?: string;\n}\n\ninterface DocsOutlineItemProps {\n heading: DocHeading;\n isActive: boolean;\n emphasized: boolean;\n variant: \"line\" | \"minimal\";\n onSelect: (headingId: string) => void;\n}\n\nconst HEADING_REGEX = /^(#{1,3})\\s+(.+)$/gm;\nconst HEADING_SELECTOR = \".rich-text__h1, .rich-text__h2, .rich-text__h3\";\n\nconst isHeadingLevelMatch = (element: Element, level: number) => {\n return element.classList.contains(`rich-text__h${level}`);\n};\n\nconst slugifyHeading = (value: string) => {\n return value\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n};\n\nexport const extractHeadings = (markdown: string) => {\n const headings: DocHeading[] = [];\n let headingIndex = 0;\n\n for (const match of markdown.matchAll(HEADING_REGEX)) {\n const level = match[1]!.length;\n const text = match[2]!.trim();\n const slug = slugifyHeading(text);\n const id = `${slug || \"heading\"}-${headingIndex}`;\n\n headings.push({ id, level, text });\n headingIndex += 1;\n }\n\n return headings;\n};\n\nconst matchHeadingElements = (headings: DocHeading[], doc: Document) => {\n const elements = Array.from(doc.querySelectorAll(HEADING_SELECTOR));\n const elementsByHeadingId = new Map<string, HTMLElement>();\n const headingIdByElement = new Map<HTMLElement, string>();\n let nextElementIndex = 0;\n\n for (const heading of headings) {\n for (let elementIndex = nextElementIndex; elementIndex < elements.length; elementIndex += 1) {\n const element = elements[elementIndex] as HTMLElement;\n const elementText = element.textContent?.trim();\n\n if (!elementText || elementText !== heading.text) {\n continue;\n }\n\n if (!isHeadingLevelMatch(element, heading.level)) {\n continue;\n }\n\n elementsByHeadingId.set(heading.id, element);\n headingIdByElement.set(element, heading.id);\n nextElementIndex = elementIndex + 1;\n break;\n }\n }\n\n return { elementsByHeadingId, headingIdByElement };\n};\n\nconst DocsOutlineItem = (props: DocsOutlineItemProps) => {\n const { heading, isActive, emphasized, variant, onSelect } = props;\n const isLine = variant === \"line\";\n\n return (\n <Box\n as=\"button\"\n py=\"1.5\"\n px=\"0\"\n width=\"full\"\n display=\"flex\"\n textAlign=\"left\"\n textStyle=\"sm\"\n cursor=\"pointer\"\n textDecoration=\"none\"\n transition=\"all 0.15s ease\"\n paddingInlineStart={`calc(${heading.level} * 0.75rem)`}\n color={isActive ? \"fg\" : \"fg.muted\"}\n fontWeight={isActive || emphasized ? \"medium\" : \"normal\"}\n borderStartWidth={isLine ? \"1px\" : \"0px\"}\n borderStartColor={isLine ? (isActive ? \"fg\" : \"bg.muted\") : \"transparent\"}\n _hover={isLine ? { borderStartColor: \"bg.emphasized\" } : { color: \"fg\" }}\n onClick={() => onSelect(heading.id)}\n >\n {heading.text}\n </Box>\n );\n};\n\nexport const DocsOutline = (props: DocsOutlineProps) => {\n const { markdown, title = \"On this page\", rootMargin = \"-20% 0% -35% 0%\" } = props;\n const headings = extractHeadings(markdown);\n const env = useEnvironmentContext();\n const [activeHeadingId, setActiveHeadingId] = useState(headings[0]?.id ?? \"\");\n const [isMobileOpen, setIsMobileOpen] = useState(false);\n const headingElementsMatchRef = useRef<HeadingElementsMatch>({\n elementsByHeadingId: new Map(),\n headingIdByElement: new Map(),\n });\n\n useEffect(() => {\n const extractedHeadings = extractHeadings(markdown);\n setActiveHeadingId(extractedHeadings[0]?.id ?? \"\");\n }, [markdown]);\n\n useEffect(() => {\n const headingsForObserver = extractHeadings(markdown);\n const doc = env.getDocument();\n const win = env.getWindow();\n const nextMatch = matchHeadingElements(headingsForObserver, doc);\n\n headingElementsMatchRef.current = nextMatch;\n\n if (nextMatch.headingIdByElement.size === 0) {\n return;\n }\n\n const observer = new win.IntersectionObserver(\n (entries) => {\n const visibleEntries = entries\n .filter((entry) => entry.isIntersecting)\n .sort((first, second) => first.boundingClientRect.top - second.boundingClientRect.top);\n\n if (visibleEntries.length === 0) {\n return;\n }\n\n const target = visibleEntries[0]!.target as HTMLElement;\n const nextActiveHeadingId = nextMatch.headingIdByElement.get(target);\n\n if (nextActiveHeadingId) {\n setActiveHeadingId(nextActiveHeadingId);\n }\n },\n { rootMargin },\n );\n\n for (const element of nextMatch.headingIdByElement.keys()) {\n observer.observe(element);\n }\n\n return () => {\n observer.disconnect();\n };\n }, [env, markdown, rootMargin]);\n\n if (headings.length === 0) {\n return null;\n }\n\n const activeHeading = headings.find((heading) => heading.id === activeHeadingId);\n\n const handleHeadingSelect = (headingId: string) => {\n const headingElement = headingElementsMatchRef.current.elementsByHeadingId.get(headingId);\n setActiveHeadingId(headingId);\n setIsMobileOpen(false);\n headingElement?.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n };\n\n return (\n <Stack gap=\"0\" width=\"full\">\n <Box hideFrom=\"md\" px=\"4\" py=\"2\" w=\"full\" bg=\"bg.subtle\" borderWidth=\"1px\">\n <Collapsible.Root open={isMobileOpen} onOpenChange={(details) => setIsMobileOpen(details.open)}>\n <Collapsible.Trigger width=\"full\" display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\">\n <HStack>\n <Icon as={FileText} color=\"fg.subtle\" />\n <Text textStyle=\"sm\" fontWeight=\"medium\" color=\"fg\">\n {title}\n </Text>\n {!isMobileOpen ? (\n <>\n <Icon as={ChevronRight} color=\"fg.subtle\" />\n <Text textStyle=\"sm\" color=\"fg.muted\">\n {activeHeading?.text}\n </Text>\n </>\n ) : null}\n </HStack>\n <Box transition=\"transform 0.2s\" transform={isMobileOpen ? \"rotate(180deg)\" : \"rotate(0deg)\"}>\n <Icon as={ChevronDown} color=\"fg.subtle\" />\n </Box>\n </Collapsible.Trigger>\n\n <Collapsible.Content>\n <ScrollArea mt=\"3\" maxH=\"30vh\">\n <Stack gap=\"0\">\n {headings.map((heading) => (\n <DocsOutlineItem\n key={heading.id}\n heading={heading}\n variant=\"minimal\"\n emphasized={false}\n isActive={activeHeadingId === heading.id}\n onSelect={handleHeadingSelect}\n />\n ))}\n </Stack>\n </ScrollArea>\n </Collapsible.Content>\n </Collapsible.Root>\n </Box>\n\n <ScrollArea hideBelow=\"md\" top=\"6\" width=\"xs\" position=\"sticky\" maxH=\"calc(100vh - 3rem)\">\n <HStack mb=\"4\">\n <Icon as={FileText} color=\"fg.subtle\" />\n <Text fontWeight=\"medium\" textStyle=\"sm\">\n {title}\n </Text>\n </HStack>\n\n <Stack gap=\"0\">\n {headings.map((heading) => (\n <DocsOutlineItem\n key={heading.id}\n heading={heading}\n variant=\"line\"\n emphasized={heading.level === 1}\n isActive={activeHeadingId === heading.id}\n onSelect={handleHeadingSelect}\n />\n ))}\n </Stack>\n </ScrollArea>\n </Stack>\n );\n};\n","import { Box, Button, HStack, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\nexport interface DocsPaginationItem {\n href: string;\n title: string;\n description?: string;\n}\n\nexport interface DocsPaginationProps {\n previous?: DocsPaginationItem;\n next?: DocsPaginationItem;\n}\n\ninterface DocsPaginationLinkProps {\n item: DocsPaginationItem;\n direction: \"prev\" | \"next\";\n}\n\nconst DocsPaginationLink = (props: DocsPaginationLinkProps) => {\n const { item, direction } = props;\n const isPrevious = direction === \"prev\";\n const directionText = isPrevious ? \"Previous\" : \"Next\";\n\n return (\n <Button\n asChild\n variant=\"ghost\"\n colorPalette=\"gray\"\n gap=\"3\"\n size=\"sm\"\n h=\"auto\"\n py=\"2\"\n textAlign={isPrevious ? \"start\" : \"end\"}\n justifyContent={isPrevious ? \"flex-start\" : \"flex-end\"}\n flex=\"1\"\n >\n <a href={item.href}>\n {isPrevious ? <ChevronLeft size={16} /> : null}\n <Stack gap=\"0\" alignItems={isPrevious ? \"flex-start\" : \"flex-end\"}>\n <Text textStyle=\"sm\" color=\"fg.muted\" fontWeight=\"normal\">\n {directionText}\n </Text>\n <Text textStyle=\"sm\" fontWeight=\"medium\">\n {item.title}\n </Text>\n {item.description ? (\n <Text textStyle=\"xs\" color=\"fg.subtle\" fontWeight=\"normal\">\n {item.description}\n </Text>\n ) : null}\n </Stack>\n {isPrevious ? null : <ChevronRight size={16} />}\n </a>\n </Button>\n );\n};\n\nexport const DocsPagination = (props: DocsPaginationProps) => {\n const { previous, next } = props;\n\n if (!previous && !next) {\n return null;\n }\n\n return (\n <HStack justify=\"space-between\" gap=\"4\">\n <Box flex=\"1\">{previous ? <DocsPaginationLink item={previous} direction=\"prev\" /> : null}</Box>\n <Box flex=\"1\">{next ? <DocsPaginationLink item={next} direction=\"next\" /> : null}</Box>\n </HStack>\n );\n};\n","import { Box, Collapsible, Flex, Text } from \"@chakra-ui/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\nexport interface ItemSectionProps {\n children: ReactNode;\n title?: string;\n defaultOpen?: boolean;\n action?: ReactNode;\n}\n\n/**\n * A collapsible section wrapper with a title trigger and optional action.\n */\nexport const ItemSection = (props: ItemSectionProps) => {\n const { children, title, defaultOpen = true, action } = props;\n\n return (\n <Collapsible.Root defaultOpen={defaultOpen} width=\"full\">\n <Flex>\n <Collapsible.Trigger\n _hover={{\n background: \"bg.muted\",\n }}\n borderRadius={\"xs\"}\n padding=\"sm\"\n height=\"2rem\"\n display=\"flex\"\n width=\"full\"\n gap=\"2\"\n alignItems=\"center\"\n cursor=\"pointer\"\n justifyContent=\"space-between\"\n >\n {title && (\n <Text fontWeight=\"600\" textStyle=\"label/S/medium\">\n {title}\n </Text>\n )}\n <Collapsible.Indicator transition=\"transform 0.2s\" _open={{ transform: \"rotate(90deg)\" }}>\n <ChevronRight size={16} />\n </Collapsible.Indicator>\n </Collapsible.Trigger>\n {action && (\n <Box marginLeft=\"auto\" onClick={(e) => e.stopPropagation()}>\n {action}\n </Box>\n )}\n </Flex>\n <Collapsible.Content>{children}</Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import type { IconProps } from \"@chakra-ui/react\";\nimport { Badge, MenuItem as ChakraMenuItem, Flex, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport type { ComponentProps, MouseEvent as ReactMouseEvent, ReactNode } from \"react\";\nimport { Tooltip } from \"./tooltip\";\n\ntype ChakraMenuItemProps = ComponentProps<typeof ChakraMenuItem>;\ntype MenuItemIcon = ComponentProps<typeof Icon>[\"as\"];\ntype MenuItemIconColor = IconProps[\"color\"];\ntype MenuItemTagColor = ComponentProps<typeof Badge>[\"colorPalette\"];\ntype MenuItemTagVariant = ComponentProps<typeof Badge>[\"variant\"];\ntype MenuItemVariant = \"default\" | \"compact\";\n\nconst menuItemVariantStyles = {\n default: {\n paddingX: \"sm\",\n paddingY: \"xs\",\n minHeight: \"2rem\",\n iconSize: \"19px\",\n primaryTextStyle: \"label/M/regular\",\n secondaryMarginLeft: \"2px\",\n secondaryTextStyle: \"label/XS/regular\",\n },\n compact: {\n paddingX: \"xs\",\n paddingY: \"2xs\",\n minHeight: \"1.75rem\",\n iconSize: \"16px\",\n primaryTextStyle: \"label/S/regular\",\n secondaryMarginLeft: \"0\",\n secondaryTextStyle: \"label/XS/regular\",\n },\n} as const;\n\nexport interface MenuItemProps {\n id?: string;\n children?: ReactNode;\n isDisabled?: boolean;\n isSelected?: boolean;\n primaryLabel: string;\n secondaryLabel?: string;\n tooltipLabel?: ReactNode;\n leftIcon?: MenuItemIcon | null;\n leftSlot?: ReactNode;\n rightIcon?: MenuItemIcon | null;\n leftIconColor?: MenuItemIconColor;\n rightIconColor?: MenuItemIconColor;\n leftIconSize?: string;\n rightIconSize?: string;\n rightIconAriaLabel?: string;\n rightTooltipLabel?: ReactNode;\n onRightIconClick?: () => void;\n tagLabel?: ReactNode;\n tagColorPalette?: MenuItemTagColor;\n tagVariant?: MenuItemTagVariant;\n variant?: MenuItemVariant;\n tabIndex?: number;\n width?: ChakraMenuItemProps[\"width\"];\n maxWidth?: ChakraMenuItemProps[\"maxWidth\"];\n setRefElement?: ChakraMenuItemProps[\"ref\"];\n onClick?: ChakraMenuItemProps[\"onClick\"];\n onMouseDown?: ChakraMenuItemProps[\"onMouseDown\"];\n onMouseEnter?: ChakraMenuItemProps[\"onMouseEnter\"];\n}\n\nexport const MenuItem = (props: MenuItemProps) => {\n const {\n id,\n primaryLabel,\n tooltipLabel,\n secondaryLabel,\n leftIcon = null,\n leftSlot,\n rightIcon,\n leftIconColor = \"fg.menu-item.default\",\n rightIconColor = \"fg.menu-item.default\",\n leftIconSize,\n rightIconSize,\n rightIconAriaLabel,\n rightTooltipLabel,\n onRightIconClick,\n isDisabled,\n isSelected,\n tagLabel,\n tagColorPalette = \"yellow\",\n tagVariant = \"subtle\",\n variant = \"default\",\n tabIndex,\n width,\n maxWidth,\n setRefElement,\n } = props;\n const { onClick, onMouseDown, onMouseEnter } = props;\n const variantStyles = menuItemVariantStyles[variant];\n const backgroundColor = isSelected ? \"bg.menu-item.selected\" : \"bg.menu-item.default\";\n const resolvedLeftIconSize = leftIconSize ?? variantStyles.iconSize;\n const resolvedRightIconSize = rightIconSize ?? variantStyles.iconSize;\n const isRightIconInteractive = Boolean(onRightIconClick && rightIcon);\n\n const handleRightIconMouseDown = (event: ReactMouseEvent<HTMLElement>) => {\n if (!isRightIconInteractive) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n };\n\n const handleRightIconClick = (event: ReactMouseEvent<HTMLElement>) => {\n if (!isRightIconInteractive || !onRightIconClick) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n onRightIconClick();\n };\n\n return (\n <ChakraMenuItem\n id={id}\n ref={setRefElement}\n tabIndex={tabIndex}\n disabled={isDisabled}\n aria-selected={isSelected}\n paddingX={variantStyles.paddingX}\n paddingY={variantStyles.paddingY}\n onClick={onClick}\n onMouseDown={onMouseDown}\n onMouseEnter={onMouseEnter}\n height=\"auto\"\n minHeight={variantStyles.minHeight}\n role=\"option\"\n width={width}\n maxWidth={maxWidth ?? \"20rem\"}\n overflow={\"hidden\"}\n position=\"relative\"\n cursor={isDisabled ? \"default\" : \"pointer\"}\n value={id ?? primaryLabel}\n bg={backgroundColor}\n _hover={{ bg: \"bg.menu-item.hover\" }}\n _focus={{ bg: \"bg.menu-item.focus\" }}\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap=\"xs\" flex=\"1\">\n <Tooltip positioning={{ placement: \"right\" }} content={tooltipLabel} disabled={!tooltipLabel}>\n <Stack gap=\"2xs\">\n <Flex alignItems=\"flex-start\" gap=\"xs\" flex=\"1\">\n {leftSlot ? (\n leftSlot\n ) : leftIcon ? (\n <Icon as={leftIcon} boxSize={resolvedLeftIconSize} color={leftIconColor} />\n ) : null}\n <Text lineClamp={1} textOverflow=\"ellipsis\" textStyle={variantStyles.primaryTextStyle}>\n {primaryLabel}\n </Text>\n </Flex>\n {secondaryLabel && (\n <Text\n ml={variantStyles.secondaryMarginLeft}\n lineClamp={1}\n textOverflow=\"ellipsis\"\n textStyle={variantStyles.secondaryTextStyle}\n color=\"fg.menu-item.secondary\"\n >\n {secondaryLabel}\n </Text>\n )}\n </Stack>\n </Tooltip>\n <Flex justifyContent=\"flex-end\" color=\"fg.menu-item.default\">\n {rightIcon ? (\n <Tooltip positioning={{ placement: \"right\" }} content={rightTooltipLabel} disabled={!rightTooltipLabel}>\n <Flex\n as={isRightIconInteractive ? \"button\" : \"div\"}\n alignItems=\"center\"\n aria-label={rightIconAriaLabel}\n cursor={isRightIconInteractive ? \"pointer\" : \"default\"}\n bg=\"transparent\"\n borderWidth=\"0\"\n padding=\"0\"\n onMouseDown={handleRightIconMouseDown}\n onClick={handleRightIconClick}\n >\n <Icon as={rightIcon} boxSize={resolvedRightIconSize} color={rightIconColor} />\n </Flex>\n </Tooltip>\n ) : null}\n </Flex>\n </Flex>\n {tagLabel ? (\n <Badge\n position=\"absolute\"\n top=\"xs\"\n right=\"sm\"\n textStyle=\"label/XS/medium\"\n px=\"xs\"\n py=\"2px\"\n borderRadius=\"md\"\n colorPalette={tagColorPalette}\n variant={tagVariant}\n pointerEvents=\"none\"\n >\n {tagLabel}\n </Badge>\n ) : null}\n </ChakraMenuItem>\n );\n};\n","import { Flex, Stack, Text } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\nimport { ScrollArea } from \"./scroll-area\";\n\ntype PanelMenuVariant = \"default\" | \"compact\";\n\nconst panelMenuVariantStyles = {\n default: {\n width: \"64\" as const,\n headerHeight: \"49px\",\n headerPadding: \"xs\" as const,\n headerTextStyle: \"label/L/medium\",\n contentPadding: \"xs\" as const,\n contentGap: \"xs\" as const,\n },\n compact: {\n width: \"64\" as const,\n headerHeight: \"49px\",\n headerPadding: \"xs\" as const,\n headerTextStyle: \"label/L/medium\",\n contentPadding: \"2xs\" as const,\n contentGap: \"2xs\" as const,\n },\n} as const;\n\ninterface PanelMenuProps {\n title: string;\n children?: ReactNode;\n variant?: PanelMenuVariant;\n}\n\nexport function PanelMenu(props: PanelMenuProps) {\n const { title, children, variant = \"default\" } = props;\n const styles = panelMenuVariantStyles[variant];\n\n return (\n <Stack borderRightWidth=\"1px\" width={styles.width} gap=\"0\" minH=\"0\">\n {title && (\n <Flex height={styles.headerHeight} p={styles.headerPadding} borderBottomWidth=\"1px\" alignItems=\"center\">\n <Text pb=\"0\" textStyle={styles.headerTextStyle} color=\"fg.muted\">\n {title}\n </Text>\n </Flex>\n )}\n\n {children && (\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ p: styles.contentPadding, spaceY: styles.contentGap }}>\n {children}\n </ScrollArea>\n )}\n </Stack>\n );\n}\n","import { Menu, Text } from \"@chakra-ui/react\";\nimport { ItemSection } from \"../item-section\";\nimport { MenuItem } from \"../menu-item\";\nimport { PanelMenu } from \"../panel-menu\";\n\nexport interface DocsSidebarItem {\n text: string;\n link?: string;\n items?: DocsSidebarItem[];\n}\n\ninterface DocsSidebarEntryProps {\n item: DocsSidebarItem;\n activeLink: string | null;\n onSelectLink: (link: string) => void;\n shouldStartOpen?: (item: DocsSidebarItem) => boolean;\n}\n\nexport interface DocsSidebarProps {\n title: string;\n emptyMessage?: string;\n menuItems: DocsSidebarItem[];\n activeLink: string | null;\n onSelectLink: (link: string) => void;\n shouldStartOpen?: (item: DocsSidebarItem) => boolean;\n}\n\nconst DocsSidebarEntry = (props: DocsSidebarEntryProps) => {\n const { item, activeLink, onSelectLink, shouldStartOpen } = props;\n const children = item.items ?? [];\n const hasChildren = children.length > 0;\n\n if (!hasChildren && item.link) {\n const link = item.link;\n const isActive = item.link === activeLink;\n return (\n <Menu.Root>\n <MenuItem primaryLabel={item.text} isSelected={isActive} variant=\"compact\" onClick={() => onSelectLink(link)} />\n </Menu.Root>\n );\n }\n\n if (!hasChildren) {\n return (\n <Menu.Root>\n <MenuItem primaryLabel={item.text} isDisabled variant=\"compact\" />\n </Menu.Root>\n );\n }\n\n const defaultOpen = shouldStartOpen?.(item) ?? false;\n\n return (\n <ItemSection title={item.text} defaultOpen={defaultOpen}>\n {children.map((child, index) => (\n <DocsSidebarEntry\n key={`${child.text}-${child.link ?? index}`}\n item={child}\n activeLink={activeLink}\n onSelectLink={onSelectLink}\n shouldStartOpen={shouldStartOpen}\n />\n ))}\n </ItemSection>\n );\n};\n\nexport const DocsSidebar = (props: DocsSidebarProps) => {\n const { title, emptyMessage, menuItems, activeLink, onSelectLink, shouldStartOpen } = props;\n\n return (\n <PanelMenu title={title} variant=\"compact\">\n {menuItems.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" p=\"xs\">\n {emptyMessage ?? \"No files found\"}\n </Text>\n ) : (\n menuItems.map((item, index) => (\n <DocsSidebarEntry\n key={`${item.text}-${item.link ?? index}`}\n item={item}\n activeLink={activeLink}\n onSelectLink={onSelectLink}\n shouldStartOpen={shouldStartOpen}\n />\n ))\n )}\n </PanelMenu>\n );\n};\n","import { AbsoluteCenter, Button, Stack, Text } from \"@chakra-ui/react\";\nimport { Component, type ErrorInfo, type ReactNode } from \"react\";\n\nimport { AlertMessage } from \"./alert\";\nimport { ContentPlaceholder } from \"./content-placeholder\";\n\ninterface ErrorBoundaryProps {\n children: ReactNode;\n fallback?: ReactNode;\n label?: string;\n onReset?: () => void;\n}\n\ninterface ErrorBoundaryState {\n error: Error | null;\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = { error: null };\n\n static getDerivedStateFromError(error: Error) {\n return { error };\n }\n\n componentDidCatch(error: Error, info: ErrorInfo) {\n console.error(\"Dashboard error boundary caught an error\", error, info);\n }\n\n handleReset = () => {\n this.setState({ error: null });\n this.props.onReset?.();\n };\n\n render() {\n const { children, fallback, label } = this.props;\n const { error } = this.state;\n\n if (error) {\n if (fallback) {\n return fallback;\n }\n\n return <ErrorFallback error={error} label={label} onReset={this.handleReset} />;\n }\n\n return children;\n }\n}\n\ninterface ErrorFallbackProps {\n error: Error;\n label?: string;\n onReset?: () => void;\n}\n\nexport const ErrorFallback = (props: ErrorFallbackProps) => {\n const { error, label, onReset } = props;\n\n return (\n <ContentPlaceholder height=\"100%\" width=\"100%\">\n <AbsoluteCenter>\n <AlertMessage\n status=\"error\"\n title={<Text textStyle=\"paragraph/M/medium\">{label ?? \"Something went wrong\"}</Text>}\n >\n <Stack gap=\"sm\">\n <Text textStyle=\"paragraph/S/regular\">\n {error.message || \"An unexpected error occurred while rendering this section.\"}\n </Text>\n {onReset ? (\n <Button size=\"sm\" variant=\"solid\" colorScheme={\"black\"} onClick={onReset}>\n Try again\n </Button>\n ) : null}\n </Stack>\n </AlertMessage>\n </AbsoluteCenter>\n </ContentPlaceholder>\n );\n};\n","import { Button, Dialog, Menu, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronUp, FileText, Folder, FolderOpen, Home } from \"lucide-react\";\nimport { MenuItem } from \"./menu-item\";\nimport { ScrollArea } from \"./scroll-area\";\n\nexport interface FolderPickerDialogEntry {\n name: string;\n path: string;\n isDirectory: boolean;\n isGitRepo: boolean;\n}\n\ninterface FolderPickerDialogProps {\n open: boolean;\n title?: string;\n description?: string;\n currentPath?: string;\n entries: FolderPickerDialogEntry[];\n selectedPath?: string | null;\n selectedPaths?: string[];\n isLoading?: boolean;\n error?: string;\n isSelectDisabled?: boolean;\n onClose: () => void;\n onSelect: () => void;\n onSelectHomeDirectory: () => void;\n onSelectParentDirectory: () => void;\n onEntryClick: (entry: FolderPickerDialogEntry) => void;\n}\n\nexport type { FolderPickerDialogProps };\n\nconst getEntryIcon = (entry: FolderPickerDialogEntry) => {\n if (!entry.isDirectory) return FileText;\n if (entry.isGitRepo) return FolderOpen;\n return Folder;\n};\n\ntype FolderPickerListEntryProps = {\n entry: FolderPickerDialogEntry;\n selectedPath: string | null;\n selectedPathSet: Set<string>;\n onEntryClick: (entry: FolderPickerDialogEntry) => void;\n};\n\nconst FolderPickerListEntry = (props: FolderPickerListEntryProps) => {\n const { entry, selectedPath, selectedPathSet, onEntryClick } = props;\n const isAlreadySelected = entry.isGitRepo && selectedPathSet.has(entry.path);\n const isDisabled = !entry.isDirectory || isAlreadySelected;\n\n const handleClick = () => {\n if (isAlreadySelected) {\n return;\n }\n\n onEntryClick(entry);\n };\n\n return (\n <Menu.Root>\n <MenuItem\n primaryLabel={entry.name}\n leftIcon={getEntryIcon(entry)}\n tagLabel={entry.isGitRepo ? \"Git repo\" : undefined}\n tagColorPalette={entry.isGitRepo ? \"green\" : undefined}\n isDisabled={isDisabled}\n isSelected={selectedPath === entry.path}\n width=\"100%\"\n maxWidth=\"100%\"\n onClick={handleClick}\n />\n </Menu.Root>\n );\n};\n\nexport const FolderPickerDialog = (props: FolderPickerDialogProps) => {\n const {\n open,\n title = \"Select folder\",\n description,\n currentPath = \"\",\n entries,\n selectedPath = null,\n selectedPaths = [],\n isLoading = false,\n error = \"\",\n isSelectDisabled = false,\n onClose,\n onSelect,\n onSelectHomeDirectory,\n onSelectParentDirectory,\n onEntryClick,\n } = props;\n\n const selectedPathSet = new Set(selectedPaths);\n\n return (\n <Dialog.Root closeOnInteractOutside={false} open={open} onOpenChange={(details) => !details.open && onClose()}>\n <Dialog.Backdrop />\n <Dialog.Positioner>\n <Dialog.Content>\n <Dialog.Header>\n <Stack gap=\"xs\">\n <Text textStyle=\"heading/M\">{title}</Text>\n {description ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {description}\n </Text>\n ) : null}\n </Stack>\n </Dialog.Header>\n <Dialog.Body>\n <Stack gap=\"md\">\n <Stack direction=\"row\" gap=\"sm\" align=\"center\">\n <Button aria-label=\"Go to home directory\" variant=\"outline\" size=\"sm\" onClick={onSelectHomeDirectory}>\n <Home size={16} />\n </Button>\n <Button\n aria-label=\"Go to parent directory\"\n variant=\"outline\"\n size=\"sm\"\n onClick={onSelectParentDirectory}\n disabled={!currentPath || currentPath === \"/\"}\n >\n <ChevronUp size={16} />\n </Button>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" flex=\"1\" lineClamp={1}>\n {currentPath || \"Home\"}\n </Text>\n </Stack>\n\n <ScrollArea\n borderWidth=\"1px\"\n borderRadius=\"md\"\n borderColor=\"border.muted\"\n maxHeight=\"320px\"\n contentProps={{ padding: \"sm\" }}\n >\n {isLoading ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n Loading...\n </Text>\n ) : error ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"red.500\">\n {error}\n </Text>\n ) : entries.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n No entries found.\n </Text>\n ) : (\n <Stack gap=\"xs\">\n {entries.map((entry) => (\n <FolderPickerListEntry\n key={entry.path}\n entry={entry}\n selectedPath={selectedPath}\n selectedPathSet={selectedPathSet}\n onEntryClick={onEntryClick}\n />\n ))}\n </Stack>\n )}\n </ScrollArea>\n </Stack>\n </Dialog.Body>\n <Dialog.Footer>\n <Stack direction=\"row\" gap=\"sm\">\n <Button variant=\"outline\" onClick={onClose}>\n Cancel\n </Button>\n <Button onClick={onSelect} disabled={isSelectDisabled}>\n Select repository\n </Button>\n </Stack>\n </Dialog.Footer>\n </Dialog.Content>\n </Dialog.Positioner>\n </Dialog.Root>\n );\n};\n","import { HStack, type StackProps } from \"@chakra-ui/react\";\n\ninterface HorizontalMenuStackProps extends StackProps {\n children?: StackProps[\"children\"];\n}\n\nexport function HorizontalMenuStack(props: HorizontalMenuStackProps) {\n const { children, ...rest } = props;\n\n return (\n <HStack {...rest} minH=\"49px\" justify=\"space-between\" align=\"center\" borderBottomWidth=\"1px\" p=\"xs\">\n {children}\n </HStack>\n );\n}\n","import { Box, HStack, Link, Separator, Stack, Text } from \"@chakra-ui/react\";\n\nexport interface OpenSourceNotice {\n name: string;\n version?: string;\n license?: string;\n copyright?: string;\n homepageUrl?: string;\n sourceUrl?: string;\n attribution?: string;\n}\n\nexport interface OpenSourceNoticesScreenProps {\n notices: OpenSourceNotice[];\n title?: string;\n description?: string;\n productName?: string;\n productVersion?: string;\n generatedAt?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n}\n\nconst getNoticeKey = (notice: OpenSourceNotice, index: number) => {\n return `${notice.name}-${notice.version ?? \"unknown\"}-${index}`;\n};\n\nconst getNoticeTitle = (notice: OpenSourceNotice) => {\n if (!notice.version) return notice.name;\n\n return `${notice.name} v${notice.version}`;\n};\n\nexport const OpenSourceNoticesScreen = (props: OpenSourceNoticesScreenProps) => {\n const {\n notices,\n title = \"Open Source and Third-Party Notices\",\n description = \"This product includes software developed by the open source community.\",\n productName,\n productVersion,\n generatedAt,\n emptyTitle = \"No third-party notices available\",\n emptyDescription = \"No third-party packages were included in this build.\",\n } = props;\n\n return (\n <Stack width=\"full\" minHeight=\"100%\" background=\"bg\" color=\"fg\" padding={{ base: \"md\", md: \"xl\" }} gap=\"lg\">\n <Stack gap=\"xs\">\n <Text textStyle=\"heading/L\">{title}</Text>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {description}\n </Text>\n\n <HStack gap=\"md\" flexWrap=\"wrap\">\n {productName ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Product: {productName}\n </Text>\n ) : null}\n\n {productVersion ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Version: {productVersion}\n </Text>\n ) : null}\n\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Packages: {notices.length}\n </Text>\n\n {generatedAt ? (\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n Generated: {generatedAt}\n </Text>\n ) : null}\n </HStack>\n </Stack>\n\n <Separator borderColor=\"border.muted\" />\n\n {notices.length === 0 ? (\n <Stack borderWidth=\"1px\" borderColor=\"border.muted\" borderRadius=\"md\" padding=\"lg\" gap=\"xs\">\n <Text textStyle=\"label/L/medium\">{emptyTitle}</Text>\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\">\n {emptyDescription}\n </Text>\n </Stack>\n ) : (\n <Stack gap=\"md\">\n {notices.map((notice, index) => (\n <Box\n key={getNoticeKey(notice, index)}\n borderWidth=\"1px\"\n borderColor=\"border.muted\"\n borderRadius=\"md\"\n padding=\"md\"\n >\n <Stack gap=\"sm\">\n <Stack gap=\"2xs\">\n <Text textStyle=\"label/L/medium\">{getNoticeTitle(notice)}</Text>\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\">\n License: {notice.license ?? \"Unknown\"}\n </Text>\n </Stack>\n\n {notice.copyright ? (\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\">\n {notice.copyright}\n </Text>\n ) : null}\n\n {(notice.homepageUrl || notice.sourceUrl) && (\n <Stack gap=\"2xs\">\n {notice.homepageUrl ? (\n <Link\n href={notice.homepageUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n textStyle=\"label/S/medium\"\n width=\"fit-content\"\n >\n Homepage\n </Link>\n ) : null}\n\n {notice.sourceUrl ? (\n <Link\n href={notice.sourceUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n textStyle=\"label/S/medium\"\n width=\"fit-content\"\n >\n Source code\n </Link>\n ) : null}\n </Stack>\n )}\n\n {notice.attribution ? (\n <Box background=\"bg.muted\" borderRadius=\"sm\" padding=\"sm\">\n <Text textStyle=\"label/S/regular\" whiteSpace=\"pre-wrap\">\n {notice.attribution}\n </Text>\n </Box>\n ) : null}\n </Stack>\n </Box>\n ))}\n </Stack>\n )}\n </Stack>\n );\n};\n","import { Box, HStack, Icon, Stack, Text } from \"@chakra-ui/react\";\nimport { Info } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { Tooltip } from \"./tooltip\";\n\nexport interface PropertyItem {\n label: string;\n description?: string;\n value: ReactNode;\n}\n\nexport interface PropertiesProps {\n items: PropertyItem[];\n}\n\n/**\n * Displays a list of label–value property rows.\n *\n * Each property has a label, an optional description (shown as a tooltip), and a value (ReactNode).\n * All labels share a fixed width for alignment.\n *\n * Wrap with `<ItemSection>` when collapsible behavior is needed.\n */\nexport const Properties = (props: PropertiesProps) => {\n const { items } = props;\n\n return (\n <Stack gap=\"sm\" paddingLeft=\"sm\" paddingY=\"xs\">\n {items.map((item, index) => (\n <HStack key={`${item.label}-${index}`} gap=\"md\" alignItems=\"center\">\n <Box width=\"140px\" flexShrink={0}>\n <HStack gap=\"1\" alignItems=\"center\">\n <Text textStyle=\"label/S/medium\" color=\"fg.muted\">\n {item.label}\n </Text>\n {item.description && (\n <Tooltip content={item.description} showArrow>\n <Icon as={Info} boxSize=\"12px\" color=\"fg.muted\" opacity={0.6} cursor=\"help\" />\n </Tooltip>\n )}\n </HStack>\n </Box>\n <Box flex=\"1\">{item.value}</Box>\n </HStack>\n ))}\n </Stack>\n );\n};\n","import { Icon } from \"@chakra-ui/react\";\nimport { CircleAlert, CircleCheck, CircleDashed } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\n\nexport type SessionCompletionStatus = \"in_progress\" | \"awaiting_input\" | \"completed\" | \"failed\";\n\nexport const resolveSessionIndicatorIcon = (status: SessionCompletionStatus | undefined) => {\n if (status === \"completed\") return CircleCheck;\n if (status === \"failed\") return CircleAlert;\n return CircleDashed;\n};\n\nexport const resolveSessionIndicatorColor = (status: SessionCompletionStatus | undefined) => {\n if (status === \"completed\") return \"fg.success\";\n if (status === \"failed\") return \"fg.error\";\n return \"fg.muted\";\n};\n\ninterface SessionIndicatorProps {\n status?: SessionCompletionStatus;\n boxSize?: ComponentProps<typeof Icon>[\"boxSize\"];\n ariaLabel?: string;\n cursor?: ComponentProps<typeof Icon>[\"cursor\"];\n onClick?: ComponentProps<typeof Icon>[\"onClick\"];\n}\n\nexport const SessionIndicator = (props: SessionIndicatorProps) => {\n const { status, boxSize = \"14px\", ariaLabel = \"Session status\", cursor, onClick } = props;\n\n return (\n <Icon\n as={resolveSessionIndicatorIcon(status)}\n boxSize={boxSize}\n color={resolveSessionIndicatorColor(status)}\n aria-label={ariaLabel}\n cursor={cursor}\n onClick={onClick}\n />\n );\n};\n","import { Box, HStack, IconButton, Menu, Stack, Text } from \"@chakra-ui/react\";\nimport { ChevronRight } from \"lucide-react\";\nimport type { SidebarAction, SidebarNavigateEvent, SidebarNode, SidebarSection } from \"./sidebar-tree.types\";\n\ninterface SidebarTreeProps {\n sections: SidebarSection[];\n expandedSections: string[];\n expandedNodes: string[];\n activeNodeId?: string | null;\n onNavigate?: (event: SidebarNavigateEvent) => void;\n onToggleSection: (sectionId: string) => void;\n onToggleNode: (nodeId: string) => void;\n}\n\ninterface SidebarRowActionsProps {\n sectionId: string;\n nodeId?: string;\n actions: SidebarAction[];\n}\n\ninterface SidebarNodeRowProps {\n sectionId: string;\n node: SidebarNode;\n level: number;\n expandedNodes: string[];\n activeNodeId?: string | null;\n onNavigate?: (event: SidebarNavigateEvent) => void;\n onToggleNode: (nodeId: string) => void;\n}\n\nconst isExpanded = (id: string, values: string[]) => values.includes(id);\n\nconst SidebarActionButton = (props: { action: SidebarAction; sectionId: string; nodeId?: string }) => {\n const { action, sectionId, nodeId } = props;\n\n if (action.menuItems && action.menuItems.length > 0) {\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton variant=\"ghost\" size=\"2xs\" aria-label={action.label}>\n {action.icon}\n </IconButton>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"160px\" bg=\"bg\">\n {action.menuItems.map((item) => (\n <Menu.Item key={item.id} value={item.id} onClick={() => item.onAction?.()}>\n {item.icon ? <Box mr=\"2\">{item.icon}</Box> : null}\n {item.label}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n );\n }\n\n return (\n <IconButton\n variant=\"ghost\"\n size=\"2xs\"\n aria-label={action.label}\n onClick={(event) => {\n event.stopPropagation();\n action.onAction?.({ sectionId, nodeId });\n }}\n >\n {action.icon}\n </IconButton>\n );\n};\n\nconst SidebarRowActions = (props: SidebarRowActionsProps) => {\n const { sectionId, nodeId, actions } = props;\n\n if (actions.length === 0) return null;\n\n return (\n <HStack\n gap=\"0\"\n opacity=\"0\"\n pointerEvents=\"none\"\n _groupHover={{ opacity: \"1\", pointerEvents: \"auto\" }}\n _groupFocusWithin={{ opacity: \"1\", pointerEvents: \"auto\" }}\n transition=\"opacity 120ms ease\"\n onClick={(event) => event.stopPropagation()}\n >\n {actions.map((action) => (\n <SidebarActionButton key={action.id} action={action} sectionId={sectionId} nodeId={nodeId} />\n ))}\n </HStack>\n );\n};\n\nconst SidebarNodeRow = (props: SidebarNodeRowProps) => {\n const { sectionId, node, level, expandedNodes, activeNodeId, onNavigate, onToggleNode } = props;\n const hasChildren = (node.children?.length ?? 0) > 0;\n const expanded = hasChildren && isExpanded(node.id, expandedNodes);\n const isNavigable = node.isNavigable || node.navigationIntent !== undefined;\n const isActive = activeNodeId === node.id;\n const isDisabled = node.disabled === true;\n const paddingLeft = level > 0 ? `calc(var(--chakra-spacing-1) + ${level} * var(--chakra-spacing-3))` : undefined;\n\n const handleClick = () => {\n if (isDisabled) return;\n\n if (hasChildren) {\n onToggleNode(node.id);\n return;\n }\n\n if (!isNavigable) return;\n\n onNavigate?.({\n sectionId,\n nodeId: node.id,\n node,\n intent: node.navigationIntent,\n });\n };\n\n return (\n <Stack gap={!node.children ? \"2xs\" : \"0\"}>\n <HStack\n className=\"group\"\n role=\"option\"\n aria-selected={isActive}\n justify=\"space-between\"\n align=\"center\"\n borderRadius=\"xs\"\n px=\"1\"\n py=\"2xs\"\n pl={paddingLeft}\n bg={isActive ? \"bg.muted\" : \"transparent\"}\n _hover={{ bg: isActive ? \"bg.muted\" : \"bg.subtle\" }}\n cursor={isDisabled ? \"default\" : \"pointer\"}\n onClick={handleClick}\n overflow=\"hidden\"\n >\n <HStack gap=\"2\" minW=\"0\" flex=\"1\" overflow=\"hidden\">\n {node.icon ? (\n <Box color=\"fg.muted\" flexShrink={0}>\n {node.icon}\n </Box>\n ) : null}\n <Stack gap=\"0\" minW=\"0\" flex=\"1\">\n <HStack gap=\"1\" minW=\"0\">\n <Text textStyle=\"paragraph/S/regular\" color={isDisabled ? \"fg.muted\" : \"fg\"} truncate>\n {node.label}\n </Text>\n {hasChildren ? (\n <Box color=\"fg.muted\" flexShrink={0}>\n <ChevronRight\n size={14}\n style={{ transform: expanded ? \"rotate(90deg)\" : \"rotate(0deg)\", transition: \"120ms\" }}\n />\n </Box>\n ) : null}\n </HStack>\n {node.description ? (\n <Text textStyle=\"paragraph/XS/regular\" color=\"fg.muted\" truncate>\n {node.description}\n </Text>\n ) : null}\n </Stack>\n </HStack>\n\n <SidebarRowActions sectionId={sectionId} nodeId={node.id} actions={node.actions ?? []} />\n </HStack>\n\n {expanded\n ? node.children?.map((childNode) => (\n <SidebarNodeRow\n key={childNode.id}\n sectionId={sectionId}\n node={childNode}\n level={level + 1}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n onNavigate={onNavigate}\n onToggleNode={onToggleNode}\n />\n ))\n : null}\n </Stack>\n );\n};\n\nexport const SidebarTree = (props: SidebarTreeProps) => {\n const { sections, expandedSections, expandedNodes, activeNodeId, onNavigate, onToggleSection, onToggleNode } = props;\n\n return (\n <Stack role=\"listbox\" gap=\"md\" p=\"md\">\n {sections.map((section) => {\n const sectionExpanded = section.label ? isExpanded(section.id, expandedSections) : true;\n\n return (\n <Stack key={section.id} gap=\"0\">\n {section.label ? (\n <HStack\n className=\"group\"\n justify=\"space-between\"\n align=\"center\"\n px=\"1\"\n py=\"2xs\"\n minH=\"7\"\n cursor=\"pointer\"\n borderRadius=\"xs\"\n _hover={{ bg: \"bg.subtle\" }}\n onClick={() => onToggleSection(section.id)}\n >\n <HStack gap=\"1\" flex=\"1\" minW=\"0\">\n <Text textStyle=\"label/XS\" textTransform=\"uppercase\" color=\"fg.muted\" letterSpacing=\"0.08em\" truncate>\n {section.label}\n </Text>\n <Box color=\"fg.muted\" flexShrink={0}>\n <ChevronRight\n size={14}\n style={{ transform: sectionExpanded ? \"rotate(90deg)\" : \"rotate(0deg)\", transition: \"120ms\" }}\n />\n </Box>\n </HStack>\n <SidebarRowActions sectionId={section.id} actions={section.actions ?? []} />\n </HStack>\n ) : null}\n\n {sectionExpanded\n ? section.nodes.length > 0\n ? section.nodes.map((node) => (\n <SidebarNodeRow\n key={node.id}\n sectionId={section.id}\n node={node}\n level={0}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n onNavigate={onNavigate}\n onToggleNode={onToggleNode}\n />\n ))\n : (section.emptyState ?? null)\n : null}\n </Stack>\n );\n })}\n </Stack>\n );\n};\n","import { useStore } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\nimport { createStore } from \"zustand/vanilla\";\n\ninterface SidebarNextSnapshot {\n open: boolean;\n expandedSections: string[];\n expandedNodes: string[];\n}\n\ninterface SidebarNextState extends SidebarNextSnapshot {\n openSidebar: () => void;\n closeSidebar: () => void;\n toggleSidebar: () => void;\n toggleSection: (sectionId: string) => void;\n toggleNode: (nodeId: string) => void;\n setSectionExpanded: (sectionId: string, expanded: boolean) => void;\n setNodeExpanded: (nodeId: string, expanded: boolean) => void;\n reset: () => void;\n}\n\ninterface CreateSidebarNextStoreOptions {\n storageKey: string;\n initialState?: Partial<SidebarNextSnapshot>;\n}\n\nconst DEFAULT_SNAPSHOT = {\n open: true,\n expandedSections: [],\n expandedNodes: [],\n} satisfies SidebarNextSnapshot;\n\nconst SIDEBAR_STORE_NAMESPACE = \"pstdio/ui/sidebar-next\";\n\nconst toStorageName = (storageKey: string) => `${SIDEBAR_STORE_NAMESPACE}/${storageKey}`;\n\nconst createNoopStorage = () => ({\n getItem: () => null,\n setItem: () => {},\n removeItem: () => {},\n});\n\nconst toggleId = (values: string[], id: string) =>\n values.includes(id) ? values.filter((value) => value !== id) : [...values, id];\n\nconst setExpanded = (values: string[], id: string, expanded: boolean) => {\n if (expanded) {\n return values.includes(id) ? values : [...values, id];\n }\n\n return values.filter((value) => value !== id);\n};\n\nconst getPersistedSnapshot = (state: SidebarNextState) => ({\n open: state.open,\n expandedSections: state.expandedSections,\n expandedNodes: state.expandedNodes,\n});\n\nexport const createSidebarNextStore = (options: CreateSidebarNextStoreOptions) => {\n const { storageKey, initialState } = options;\n const snapshot = { ...DEFAULT_SNAPSHOT, ...initialState };\n\n return createStore<SidebarNextState>()(\n persist(\n (set) => ({\n ...snapshot,\n openSidebar: () => set((state) => ({ ...state, open: true })),\n closeSidebar: () => set((state) => ({ ...state, open: false })),\n toggleSidebar: () => set((state) => ({ ...state, open: !state.open })),\n toggleSection: (sectionId) =>\n set((state) => ({\n ...state,\n expandedSections: toggleId(state.expandedSections, sectionId),\n })),\n toggleNode: (nodeId) =>\n set((state) => ({\n ...state,\n expandedNodes: toggleId(state.expandedNodes, nodeId),\n })),\n setSectionExpanded: (sectionId, expanded) =>\n set((state) => ({\n ...state,\n expandedSections: setExpanded(state.expandedSections, sectionId, expanded),\n })),\n setNodeExpanded: (nodeId, expanded) =>\n set((state) => ({\n ...state,\n expandedNodes: setExpanded(state.expandedNodes, nodeId, expanded),\n })),\n reset: () => set(DEFAULT_SNAPSHOT),\n }),\n {\n name: toStorageName(storageKey),\n storage: createJSONStorage(() => {\n if (typeof globalThis.localStorage === \"undefined\") {\n return createNoopStorage();\n }\n\n return globalThis.localStorage;\n }),\n partialize: getPersistedSnapshot,\n },\n ),\n );\n};\n\nconst sidebarStoreRegistry = new Map<string, ReturnType<typeof createSidebarNextStore>>();\n\nexport const getSidebarNextStore = (storageKey: string) => {\n const existingStore = sidebarStoreRegistry.get(storageKey);\n\n if (existingStore) {\n return existingStore;\n }\n\n const store = createSidebarNextStore({ storageKey });\n sidebarStoreRegistry.set(storageKey, store);\n\n return store;\n};\n\nexport const useSidebarNextStore = <T>(storageKey: string, selector: (state: SidebarNextState) => T) => {\n const store = getSidebarNextStore(storageKey);\n return useStore(store, selector);\n};\n","import { Box } from \"@chakra-ui/react\";\nimport type { ReactNode } from \"react\";\n\ninterface SidebarNextFooterProps {\n children?: ReactNode;\n}\n\nexport const SidebarNextFooter = (props: SidebarNextFooterProps) => {\n const { children } = props;\n\n if (!children) {\n return null;\n }\n\n return (\n <Box px=\"2\" py=\"2\" bg=\"bg\" position=\"sticky\" bottom=\"0\" overflow=\"hidden\">\n {children}\n </Box>\n );\n};\n","import { HStack, IconButton } from \"@chakra-ui/react\";\nimport { PanelLeftClose } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\ninterface SidebarNextHeaderProps {\n children?: ReactNode;\n onClose?: () => void;\n}\n\nexport const SidebarNextHeader = (props: SidebarNextHeaderProps) => {\n const { children, onClose } = props;\n\n return (\n <HStack justify=\"space-between\" align=\"center\" px=\"4\" py=\"3\" bg=\"bg\" position=\"sticky\" top=\"0\" zIndex=\"1\">\n <HStack minW=\"0\" flex=\"1\">\n {children}\n </HStack>\n {onClose ? (\n <IconButton variant=\"ghost\" size=\"sm\" aria-label=\"Hide sidebar\" onClick={onClose}>\n <PanelLeftClose size={16} />\n </IconButton>\n ) : null}\n </HStack>\n );\n};\n","import { Flex, Text } from \"@chakra-ui/react\";\nimport { useEffect } from \"react\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { SidebarTree } from \"../sidebar-tree/sidebar-tree\";\nimport { useSidebarNextStore } from \"./sidebar-next.store\";\nimport type { SidebarNextProps } from \"./sidebar-next.types\";\nimport { SidebarNextFooter } from \"./sidebar-next-footer\";\nimport { SidebarNextHeader } from \"./sidebar-next-header\";\n\nexport const SidebarNext = (props: SidebarNextProps) => {\n const {\n storageKey,\n sections,\n activeNodeId,\n header,\n footer,\n width = \"240px\",\n closable = true,\n emptyLabel = \"No items available.\",\n onNavigate,\n onOpenChange,\n } = props;\n\n const open = useSidebarNextStore(storageKey, (state) => state.open);\n const expandedSections = useSidebarNextStore(storageKey, (state) => state.expandedSections);\n const expandedNodes = useSidebarNextStore(storageKey, (state) => state.expandedNodes);\n const closeSidebar = useSidebarNextStore(storageKey, (state) => state.closeSidebar);\n const toggleSection = useSidebarNextStore(storageKey, (state) => state.toggleSection);\n const toggleNode = useSidebarNextStore(storageKey, (state) => state.toggleNode);\n\n useEffect(() => {\n onOpenChange?.(open);\n }, [onOpenChange, open]);\n\n if (!open && closable) {\n return null;\n }\n\n return (\n <Flex\n as=\"aside\"\n direction=\"column\"\n h=\"100%\"\n w={width}\n minW={width}\n maxW={width}\n borderRightWidth=\"1px\"\n borderRightColor=\"border.muted\"\n bg=\"bg\"\n >\n <SidebarNextHeader onClose={closable ? closeSidebar : undefined}>{header}</SidebarNextHeader>\n\n <ScrollArea flex=\"1\">\n {sections.length === 0 ? (\n <Text textStyle=\"paragraph/S/regular\" color=\"fg.muted\" p=\"3\">\n {emptyLabel}\n </Text>\n ) : (\n <SidebarTree\n sections={sections}\n expandedSections={expandedSections}\n expandedNodes={expandedNodes}\n activeNodeId={activeNodeId}\n onNavigate={onNavigate}\n onToggleSection={toggleSection}\n onToggleNode={toggleNode}\n />\n )}\n </ScrollArea>\n\n <SidebarNextFooter>{footer}</SidebarNextFooter>\n </Flex>\n );\n};\n","import { Switch as ChakraSwitch } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface SwitchProps extends ChakraSwitch.RootProps {\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n rootRef?: React.RefObject<HTMLLabelElement | null>;\n trackLabel?: { on: React.ReactNode; off: React.ReactNode };\n thumbLabel?: { on: React.ReactNode; off: React.ReactNode };\n}\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(function Switch(props, ref) {\n const { inputProps, children, rootRef, trackLabel, thumbLabel, disabled = false, ...rest } = props;\n const interactiveCursor = disabled ? \"not-allowed\" : \"pointer\";\n\n return (\n <ChakraSwitch.Root ref={rootRef} disabled={disabled} cursor={interactiveCursor} {...rest}>\n <ChakraSwitch.HiddenInput ref={ref} {...inputProps} />\n <ChakraSwitch.Control borderRadius=\"md\" cursor={interactiveCursor}>\n <ChakraSwitch.Thumb borderRadius=\"full\">\n {thumbLabel && (\n <ChakraSwitch.ThumbIndicator fallback={thumbLabel?.off}>{thumbLabel?.on}</ChakraSwitch.ThumbIndicator>\n )}\n </ChakraSwitch.Thumb>\n {trackLabel && <ChakraSwitch.Indicator fallback={trackLabel.off}>{trackLabel.on}</ChakraSwitch.Indicator>}\n </ChakraSwitch.Control>\n {children != null && <ChakraSwitch.Label cursor={interactiveCursor}>{children}</ChakraSwitch.Label>}\n </ChakraSwitch.Root>\n );\n});\n","import { Badge, HStack, Stack, Text, Wrap } from \"@chakra-ui/react\";\nimport { GitBranchIcon } from \"lucide-react\";\nimport type { DragEventHandler, MouseEvent } from \"react\";\nimport { DiffBubble } from \"@/components/diff-bubble\";\nimport { Tooltip } from \"@/components/tooltip\";\nimport { type SessionCompletionStatus, SessionIndicator } from \"../session-indicator\";\n\nexport interface TicketCardBadge {\n label: string;\n color?: string;\n}\n\ninterface TicketCardProps {\n ticketId: string;\n parentPath?: string[];\n sessionIndicatorLabel?: string;\n sessionIndicatorStatus?: SessionCompletionStatus;\n title: string;\n badges?: TicketCardBadge[];\n diffAdditions?: number;\n diffDeletions?: number;\n isSelected?: boolean;\n draggable?: boolean;\n onDragStart?: DragEventHandler<HTMLDivElement>;\n onDragEnd?: DragEventHandler<HTMLDivElement>;\n onClick?: () => void;\n onDiffBadgeClick?: () => void;\n onSessionIndicatorClick?: () => void;\n}\n\nexport const TicketCard = (props: TicketCardProps) => {\n const {\n ticketId,\n parentPath = [],\n sessionIndicatorLabel,\n sessionIndicatorStatus,\n title,\n badges = [],\n diffAdditions,\n diffDeletions,\n isSelected = false,\n draggable,\n onDragStart,\n onDragEnd,\n onClick,\n onDiffBadgeClick,\n onSessionIndicatorClick,\n } = props;\n\n const handleDiffBadgeClick = (event: MouseEvent<HTMLSpanElement>) => {\n event.stopPropagation();\n onDiffBadgeClick?.();\n };\n\n const handleSessionIndicatorClick = (event: MouseEvent<SVGSVGElement>) => {\n event.stopPropagation();\n onSessionIndicatorClick?.();\n };\n\n return (\n <Stack\n gap=\"xs\"\n padding=\"sm\"\n borderRadius=\"sm\"\n borderWidth=\"1px\"\n width=\"calc(100% - 8px)\"\n alignSelf=\"center\"\n background=\"bg\"\n transition=\"box-shadow 0.2s ease-in-out, border-color 0.2s ease-in-out\"\n _hover={{\n borderColor: \"border.blue\",\n boxShadow: \"mid\",\n }}\n cursor={draggable ? \"grab\" : onClick ? \"pointer\" : \"default\"}\n draggable={draggable}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onClick={onClick}\n data-selected={isSelected ? \"true\" : undefined}\n >\n <HStack justifyContent={\"space-between\"} gap=\"2xs\" flexWrap=\"wrap\">\n <HStack gap=\"2xs\" flexShrink={0}>\n <Text textStyle=\"label/S/regular\" flexShrink={0}>\n {parentPath.length > 0 && (\n <Text as=\"span\" color=\"subtle\">\n {parentPath.join(\" / \")} /{\" \"}\n </Text>\n )}\n {ticketId}\n </Text>\n {sessionIndicatorLabel ? (\n <Tooltip content={`Session ${sessionIndicatorLabel}`}>\n <SessionIndicator\n status={sessionIndicatorStatus}\n boxSize=\"12px\"\n aria-label={`Session ${sessionIndicatorLabel}`}\n cursor={onSessionIndicatorClick ? \"pointer\" : \"default\"}\n onClick={onSessionIndicatorClick ? handleSessionIndicatorClick : undefined}\n />\n </Tooltip>\n ) : null}\n </HStack>\n {typeof diffAdditions === \"number\" && typeof diffDeletions === \"number\" ? (\n <DiffBubble\n additions={diffAdditions}\n deletions={diffDeletions}\n variant=\"ghost\"\n size=\"small\"\n label={<GitBranchIcon size=\"12\" />}\n onClick={handleDiffBadgeClick}\n data-testid=\"ticket-diff-badge\"\n />\n ) : null}\n </HStack>\n\n <HStack align=\"start\" gap=\"2xs\" flexWrap=\"wrap\">\n <Text textStyle=\"label/S/regular\" flex=\"1\" minW=\"0\">\n {title}\n </Text>\n </HStack>\n\n {badges.length > 0 && (\n <Wrap gap=\"2xs\">\n {badges.map((badge) => (\n <Badge key={badge.label} variant=\"subtle\" colorPalette={badge.color ?? \"gray\"} textStyle=\"label/XS/medium\">\n {badge.label}\n </Badge>\n ))}\n </Wrap>\n )}\n </Stack>\n );\n};\n","import { Badge, HStack, Icon, IconButton, Menu, Spacer, Stack, Text } from \"@chakra-ui/react\";\nimport { MoreHorizontal, Plus } from \"lucide-react\";\nimport { type ComponentProps, type ComponentType, type DragEvent, useState } from \"react\";\n\nimport { MenuItem } from \"@/components/menu-item\";\nimport { ScrollArea } from \"@/components/scroll-area\";\nimport { Tooltip } from \"@/components/tooltip\";\n\nimport { TicketCard } from \"./ticket-card\";\n\ntype TicketCardProps = ComponentProps<typeof TicketCard>;\n\nexport interface TicketBoardItem {\n id: string;\n cardProps: Omit<TicketCardProps, \"draggable\" | \"onDragStart\" | \"onDragEnd\" | \"isSelected\">;\n}\n\nexport interface TicketBoardColumnAction {\n id: string;\n label: string;\n icon: ComponentType<{ size?: number | string }>;\n}\n\nexport interface TicketBoardColumn {\n id: string;\n label: string;\n color?: string;\n items: TicketBoardItem[];\n canDragIn: boolean;\n canDragOut: boolean;\n canCreate: boolean;\n actions: TicketBoardColumnAction[];\n}\n\ninterface TicketBoardProps {\n columns: TicketBoardColumn[];\n selectedItemId?: string | null;\n onMoveItem?: (itemId: string, targetColumnId: string) => void;\n onCreateStart?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n}\n\nexport const TicketBoard = (props: TicketBoardProps) => {\n const { columns, selectedItemId = null, onMoveItem, onCreateStart, onColumnAction } = props;\n\n const [activeColumn, setActiveColumn] = useState<string | null>(null);\n\n const handleDragStart = (itemId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.dataTransfer.setData(\"text/plain\", itemId);\n event.dataTransfer.effectAllowed = \"move\";\n };\n\n const handleDragEnd = () => {\n setActiveColumn(null);\n };\n\n const handleDragOver = (columnId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n setActiveColumn(columnId);\n };\n\n const handleDragLeave = (event: DragEvent<HTMLDivElement>) => {\n if (event.currentTarget.contains(event.relatedTarget as Node)) return;\n setActiveColumn(null);\n };\n\n const handleDrop = (columnId: string) => (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setActiveColumn(null);\n\n const itemId = event.dataTransfer.getData(\"text/plain\");\n if (!itemId) return;\n\n onMoveItem?.(itemId, columnId);\n };\n\n return (\n <ScrollArea\n height=\"100%\"\n showHorizontalScrollbar\n showVerticalScrollbar={false}\n contentProps={{ display: \"flex\", alignItems: \"stretch\", gap: \"0\", pb: \"2xs\", minH: \"100%\" }}\n >\n {columns.map((column) => (\n <Stack\n key={column.id}\n gap=\"xs\"\n _notFirst={{ borderLeft: \"1px solid\", borderColor: \"border\" }}\n background={activeColumn === column.id ? \"bg.subtle\" : \"bg\"}\n transition=\"background 150ms ease\"\n height=\"100%\"\n minH=\"240px\"\n overflow=\"hidden\"\n minW=\"260px\"\n flex=\"1 0 260px\"\n onDragOver={column.canDragIn ? handleDragOver(column.id) : undefined}\n onDragLeave={column.canDragIn ? handleDragLeave : undefined}\n onDrop={column.canDragIn ? handleDrop(column.id) : undefined}\n >\n <ColumnHeader column={column} onCreateStart={onCreateStart} onColumnAction={onColumnAction} />\n\n <ScrollArea flex=\"1\" minH=\"0\" contentProps={{ spaceY: \"sm\" }}>\n {column.items.map((item) => (\n <TicketCard\n key={item.id}\n {...item.cardProps}\n isSelected={item.id === selectedItemId}\n draggable={column.canDragOut}\n onDragStart={column.canDragOut ? handleDragStart(item.id) : undefined}\n onDragEnd={column.canDragOut ? handleDragEnd : undefined}\n />\n ))}\n </ScrollArea>\n </Stack>\n ))}\n </ScrollArea>\n );\n};\n\ninterface ColumnHeaderProps {\n column: TicketBoardColumn;\n onCreateStart?: (columnId: string) => void;\n onColumnAction?: (columnId: string, actionId: string) => Promise<void> | void;\n}\n\nconst ColumnHeader = (props: ColumnHeaderProps) => {\n const { column, onCreateStart, onColumnAction } = props;\n\n return (\n <HStack padding=\"xs\" gap=\"xs\" alignItems=\"center\">\n <Text textStyle=\"label/L/medium\">{column.label}</Text>\n\n <Badge variant=\"subtle\" colorPalette={column.color ?? \"gray\"}>\n {column.items.length}\n </Badge>\n\n <Spacer />\n\n {column.canCreate && onCreateStart && (\n <Tooltip content=\"Create new ticket\">\n <IconButton size=\"2xs\" variant=\"outline\" onClick={() => onCreateStart(column.id)} aria-label=\"Create ticket\">\n <Icon as={Plus} boxSize=\"12px\" />\n </IconButton>\n </Tooltip>\n )}\n\n {column.actions.length > 0 && (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton size=\"2xs\" variant=\"ghost\" aria-label={`Column actions for ${column.label}`}>\n <Icon as={MoreHorizontal} boxSize=\"12px\" />\n </IconButton>\n </Menu.Trigger>\n <Menu.Positioner>\n <Menu.Content minW=\"180px\" bg=\"bg\">\n {column.actions.map((action) => (\n <MenuItem\n key={action.id}\n primaryLabel={action.label}\n leftIcon={action.icon}\n onClick={() => onColumnAction?.(column.id, action.id)}\n />\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Menu.Root>\n )}\n </HStack>\n );\n};\n","import { Badge, Box, HStack, Icon, Text, Wrap } from \"@chakra-ui/react\";\nimport {\n type ColumnDef,\n type ExpandedState,\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n type Row,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { ChevronRight } from \"lucide-react\";\nimport type { ComponentType, ReactNode } from \"react\";\n\nimport type { TicketCardBadge } from \"./ticket-card\";\n\nexport interface TicketListItem {\n id: string;\n ticketId: string;\n title: string;\n statusIcon?: ComponentType<{ size?: number | string }>;\n statusColor?: string;\n badges?: TicketCardBadge[];\n date?: string;\n assigneeIcon?: ReactNode;\n children?: TicketListItem[];\n onClick?: () => void;\n}\n\ninterface TicketListProps {\n items: TicketListItem[];\n selectedItemId?: string | null;\n onItemClick?: (item: TicketListItem) => void;\n}\n\nconst columns: ColumnDef<TicketListItem, unknown>[] = [\n {\n id: \"ticket\",\n header: \"\",\n cell: ({ row }) => <TicketCell row={row} />,\n },\n];\n\nexport const TicketList = (props: TicketListProps) => {\n const { items, selectedItemId = null, onItemClick } = props;\n\n const table = useReactTable({\n data: items,\n columns,\n state: { expanded: true as unknown as ExpandedState },\n getSubRows: (row) => row.children,\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getRowId: (row) => row.id,\n });\n\n return (\n <Box>\n {table.getRowModel().rows.map((row) => {\n const item = row.original;\n const isSelected = item.id === selectedItemId;\n\n return (\n <HStack\n key={row.id}\n paddingX=\"sm\"\n paddingY=\"xs\"\n gap=\"sm\"\n cursor=\"pointer\"\n borderBottomWidth=\"1px\"\n borderColor=\"border.muted\"\n background={isSelected ? \"bg.muted\" : \"transparent\"}\n _hover={{ background: \"bg.muted\" }}\n onClick={() => {\n item.onClick?.();\n onItemClick?.(item);\n }}\n data-selected={isSelected ? \"true\" : undefined}\n >\n {flexRender(row.getVisibleCells()[0].column.columnDef.cell, row.getVisibleCells()[0].getContext())}\n </HStack>\n );\n })}\n </Box>\n );\n};\n\ninterface TicketCellProps {\n row: Row<TicketListItem>;\n}\n\nconst TicketCell = (props: TicketCellProps) => {\n const { row } = props;\n const item = row.original;\n const depth = row.depth;\n\n return (\n <HStack gap=\"sm\" flex=\"1\" paddingLeft={depth > 0 ? `${depth * 24}px` : undefined}>\n {row.getCanExpand() ? <ExpandToggle row={row} /> : depth > 0 ? <TreeConnector /> : null}\n\n {item.statusIcon && (\n <Icon as={item.statusIcon} boxSize=\"16px\" color={item.statusColor ?? \"fg.muted\"} flexShrink={0} />\n )}\n\n <Text textStyle=\"label/S/regular\" color=\"fg.muted\" flexShrink={0} minW=\"70px\">\n {item.ticketId}\n </Text>\n\n <Text textStyle=\"label/S/regular\" flex=\"1\" truncate>\n {item.title}\n </Text>\n\n {item.badges && item.badges.length > 0 && (\n <Wrap gap=\"2xs\" flexShrink={0}>\n {item.badges.map((badge) => (\n <Badge key={badge.label} variant=\"subtle\" colorPalette={badge.color ?? \"gray\"} textStyle=\"label/XS/medium\">\n {badge.label}\n </Badge>\n ))}\n </Wrap>\n )}\n\n {item.assigneeIcon && <Box flexShrink={0}>{item.assigneeIcon}</Box>}\n\n {item.date && (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\" flexShrink={0}>\n {item.date}\n </Text>\n )}\n </HStack>\n );\n};\n\ninterface ExpandToggleProps {\n row: Row<TicketListItem>;\n}\n\nconst ExpandToggle = (props: ExpandToggleProps) => {\n const { row } = props;\n\n return (\n <Box\n as=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n row.toggleExpanded();\n }}\n cursor=\"pointer\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n width=\"16px\"\n height=\"16px\"\n >\n <Icon\n as={ChevronRight}\n boxSize=\"14px\"\n color=\"fg.muted\"\n transform={row.getIsExpanded() ? \"rotate(90deg)\" : \"rotate(0deg)\"}\n transition=\"transform 0.15s ease\"\n />\n </Box>\n );\n};\n\nconst TreeConnector = () => (\n <Box width=\"16px\" height=\"16px\" position=\"relative\" flexShrink={0}>\n <Box position=\"absolute\" left=\"7px\" top=\"0\" bottom=\"50%\" borderLeftWidth=\"1px\" borderColor=\"border.muted\" />\n <Box position=\"absolute\" left=\"7px\" top=\"50%\" width=\"8px\" borderBottomWidth=\"1px\" borderColor=\"border.muted\" />\n </Box>\n);\n","import { Toaster as ChakraToaster, createToaster, Portal, Spinner, Stack, Toast } from \"@chakra-ui/react\";\n\nexport const toaster: ReturnType<typeof createToaster> = createToaster({\n placement: \"bottom-end\",\n pauseOnPageIdle: true,\n});\n\nexport const Toaster = () => {\n return (\n <Portal>\n <ChakraToaster toaster={toaster} insetInline={{ mdDown: \"4\" }}>\n {(toast) => (\n <Toast.Root width={{ md: \"sm\" }}>\n {toast.type === \"loading\" ? <Spinner size=\"sm\" color=\"blue.solid\" /> : <Toast.Indicator />}\n <Stack gap=\"1\" flex=\"1\" maxWidth=\"100%\">\n {toast.title && <Toast.Title>{toast.title}</Toast.Title>}\n {toast.description && <Toast.Description>{toast.description}</Toast.Description>}\n </Stack>\n {toast.action && <Toast.ActionTrigger>{toast.action.label}</Toast.ActionTrigger>}\n {toast.closable && <Toast.CloseTrigger />}\n </Toast.Root>\n )}\n </ChakraToaster>\n </Portal>\n );\n};\n","export type ThemePreference = \"light\" | \"dark\";\n\nexport const applyThemePreference = (theme: ThemePreference) => {\n if (typeof document === \"undefined\") return;\n\n const root = document.documentElement;\n const body = document.body;\n const opposite = theme === \"dark\" ? \"light\" : \"dark\";\n\n for (const el of [root, body]) {\n if (!el) continue;\n el.classList.remove(opposite);\n el.classList.add(theme);\n el.setAttribute(\"data-theme\", theme);\n el.style.colorScheme = theme;\n }\n};\n","import { createContext, type ReactNode, useContext, useEffect, useState } from \"react\";\n\nimport { applyThemePreference, type ThemePreference } from \"./apply-theme-preference\";\n\nconst STORAGE_KEY = \"theme-preference\";\n\nconst ThemePreferenceContext = createContext<ThemePreferenceContextValue | null>(null);\n\ninterface ThemePreferenceContextValue {\n themePreference: ThemePreference;\n setThemePreference: (preference: ThemePreference) => void;\n toggleThemePreference: () => void;\n}\n\ninterface ThemePreferenceProviderProps {\n children: ReactNode;\n initialPreference?: ThemePreference;\n}\n\nexport const getInitialThemePreference = () => {\n if (typeof window === \"undefined\") return \"light\";\n\n const stored = window.localStorage.getItem(STORAGE_KEY);\n if (stored === \"dark\" || stored === \"light\") return stored;\n\n const prefersDark =\n typeof window.matchMedia === \"function\" && window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n return prefersDark ? \"dark\" : \"light\";\n};\n\nexport const ThemePreferenceProvider = (props: ThemePreferenceProviderProps) => {\n const { children, initialPreference = getInitialThemePreference() } = props;\n const [themePreference, setThemePreference] = useState<ThemePreference>(initialPreference);\n\n useEffect(() => {\n applyThemePreference(themePreference);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(STORAGE_KEY, themePreference);\n }\n }, [themePreference]);\n\n const toggleThemePreference = () => setThemePreference((prev) => (prev === \"dark\" ? \"light\" : \"dark\"));\n\n return (\n <ThemePreferenceContext value={{ themePreference, setThemePreference, toggleThemePreference }}>\n {children}\n </ThemePreferenceContext>\n );\n};\n\nexport const useThemePreference = () => {\n const context = useContext(ThemePreferenceContext);\n\n if (!context) {\n throw new Error(\"useThemePreference must be used within a ThemePreferenceProvider\");\n }\n\n return context;\n};\n"],"names":["AlertMessage","React","forwardRef","props","ref","$","_c","children","endElement","icon","rest","startElement","title","t0","jsx","ChakraAlert","t1","jsxs","t2","Breadcrumb","LinkComponent","items","separator","separatorGap","linkComponent","length","item","index","last","isInteractive","Boolean","url","onClick","itemContent","ChakraBreadcrumb","map","Checkbox","inputProps","rootRef","disabled","undefined","interactiveCursor","ChakraCheckbox","t3","t4","t5","ContentPlaceholder","Symbol","for","backgroundClip","backgroundImage","display","width","Box","Label","Text","DeleteConfirmationModal","isDeleting","setIsDeleting","useState","headline","buttonText","notificationText","onDelete","open","onClose","handleDelete","Dialog","CloseButton","Stack","Button","getLanguage","path","split","pop","toLowerCase","ext","DiffCard","diff","isExpanded","setIsExpanded","filePath","newPath","oldPath","language","additions","deletions","event","stopPropagation","ChevronDown","ChevronRight","t6","IconButton","t7","change","t8","t9","DiffBubble","t10","Grid","t11","newContent","oldContent","DiffEditor","t12","ScrollArea","contentProps","horizontalScrollbarProps","verticalScrollbarProps","viewportProps","viewportRef","showVerticalScrollbar","showHorizontalScrollbar","showCorner","ChakraScrollArea","DiffDrawer","diffs","scrollRef","useRef","virtualizer","useVirtualizer","count","getScrollElement","current","estimateSize","overscan","p","spaceY","EmptyState","height","getTotalSize","getVirtualItems","virtualItem","measureElement","transform","start","key","getEntryKey","entry","version","date","getChangeKey","ChangelogDate","Timeline","Flex","DocsChangelog","entries","description","Heading","_temp3","_temp","tag","Badge","_temp2","changeIndex","List","link","Link","entryIndex","base","md","tags","HStack","image","Image","changes","HEADING_REGEX","HEADING_SELECTOR","isHeadingLevelMatch","element","level","classList","contains","slugifyHeading","value","replace","extractHeadings","markdown","headings","headingIndex","match","matchAll","text","trim","id","push","matchHeadingElements","doc","elements","Array","from","querySelectorAll","elementsByHeadingId","Map","headingIdByElement","nextElementIndex","heading","elementIndex","elementText","textContent","set","DocsOutlineItem","isActive","emphasized","variant","onSelect","isLine","borderStartColor","color","DocsOutline","rootMargin","env","useEnvironmentContext","activeHeadingId","setActiveHeadingId","isMobileOpen","setIsMobileOpen","headingElementsMatchRef","extractedHeadings","useEffect","headingsForObserver","getDocument","win","getWindow","nextMatch","size","observer","IntersectionObserver","visibleEntries","filter","sort","target","nextActiveHeadingId","get","keys","observe","disconnect","activeHeading","find","headingId","headingElement","scrollIntoView","behavior","block","handleHeadingSelect","details","Icon","FileText","Fragment","t13","t14","t15","t16","t17","Collapsible","t18","heading_0","T0","t19","t20","t21","t22","t23","t24","t25","T1","t26","t27","heading_1","t28","t29","t30","isIntersecting","first","second","boundingClientRect","top","DocsPaginationLink","direction","isPrevious","directionText","ChevronLeft","href","DocsPagination","previous","next","ItemSection","defaultOpen","action","background","e","menuItemVariantStyles","default","paddingX","paddingY","minHeight","iconSize","primaryTextStyle","secondaryMarginLeft","secondaryTextStyle","compact","MenuItem","primaryLabel","tooltipLabel","secondaryLabel","leftIcon","leftSlot","rightIcon","leftIconColor","rightIconColor","leftIconSize","rightIconSize","rightIconAriaLabel","rightTooltipLabel","onRightIconClick","isDisabled","isSelected","tagLabel","tagColorPalette","tagVariant","tabIndex","maxWidth","setRefElement","onMouseDown","onMouseEnter","variantStyles","backgroundColor","resolvedLeftIconSize","resolvedRightIconSize","isRightIconInteractive","preventDefault","handleRightIconMouseDown","event_0","handleRightIconClick","bg","placement","Tooltip","ChakraMenuItem","panelMenuVariantStyles","headerHeight","headerPadding","headerTextStyle","contentPadding","contentGap","PanelMenu","styles","DocsSidebarEntry","activeLink","onSelectLink","shouldStartOpen","hasChildren","Menu","child","DocsSidebar","emptyMessage","menuItems","ErrorBoundary","Component","state","error","getDerivedStateFromError","componentDidCatch","info","console","handleReset","setState","onReset","render","fallback","label","ErrorFallback","message","AbsoluteCenter","getEntryIcon","isDirectory","isGitRepo","FolderOpen","Folder","FolderPickerListEntry","selectedPath","selectedPathSet","onEntryClick","has","isAlreadySelected","handleClick","name","FolderPickerDialog","currentPath","selectedPaths","isLoading","isSelectDisabled","onSelectHomeDirectory","onSelectParentDirectory","Set","Home","ChevronUp","padding","HorizontalMenuStack","getNoticeKey","notice","getNoticeTitle","OpenSourceNoticesScreen","notices","productName","productVersion","generatedAt","emptyTitle","emptyDescription","Separator","license","copyright","homepageUrl","sourceUrl","attribution","Properties","Info","resolveSessionIndicatorIcon","status","CircleCheck","CircleAlert","CircleDashed","resolveSessionIndicatorColor","SessionIndicator","boxSize","ariaLabel","cursor","values","includes","SidebarActionButton","sectionId","nodeId","onAction","SidebarRowActions","actions","opacity","pointerEvents","SidebarNodeRow","node","expandedNodes","activeNodeId","onNavigate","onToggleNode","expanded","isNavigable","navigationIntent","paddingLeft","intent","transition","childNode","SidebarTree","sections","expandedSections","onToggleSection","section","sectionExpanded","nodes","emptyState","DEFAULT_SNAPSHOT","SIDEBAR_STORE_NAMESPACE","toStorageName","storageKey","createNoopStorage","getItem","setItem","removeItem","toggleId","setExpanded","getPersistedSnapshot","createSidebarNextStore","options","initialState","snapshot","createStore","persist","openSidebar","closeSidebar","toggleSidebar","toggleSection","toggleNode","setSectionExpanded","setNodeExpanded","reset","storage","createJSONStorage","globalThis","localStorage","partialize","sidebarStoreRegistry","getSidebarNextStore","existingStore","store","useSidebarNextStore","selector","useStore","SidebarNextFooter","SidebarNextHeader","PanelLeftClose","SidebarNext","header","footer","closable","emptyLabel","onOpenChange","_temp4","_temp5","_temp6","state_0","state_1","state_2","state_3","state_4","Switch","thumbLabel","trackLabel","ChakraSwitch","off","on","TicketCard","ticketId","parentPath","sessionIndicatorLabel","sessionIndicatorStatus","badges","diffAdditions","diffDeletions","draggable","onDragStart","onDragEnd","onDiffBadgeClick","onSessionIndicatorClick","handleDiffBadgeClick","handleSessionIndicatorClick","borderColor","boxShadow","join","GitBranchIcon","Wrap","badge","TicketBoard","columns","selectedItemId","onMoveItem","onCreateStart","onColumnAction","activeColumn","setActiveColumn","handleDragStart","handleDragEnd","columnId","dataTransfer","dropEffect","handleDragOver","event_1","currentTarget","relatedTarget","handleDragLeave","columnId_0","event_2","itemId_0","getData","itemId","handleDrop","alignItems","gap","pb","minH","column","borderLeft","canDragIn","ColumnHeader","cardProps","canDragOut","Spacer","canCreate","Plus","MoreHorizontal","setData","effectAllowed","cell","row","TicketCell","TicketList","onItemClick","table","useReactTable","data","getSubRows","getCoreRowModel","getExpandedRowModel","getRowId","getRowModel","rows","original","flexRender","getVisibleCells","columnDef","getContext","depth","getCanExpand","ExpandToggle","TreeConnector","statusColor","statusIcon","assigneeIcon","toggleExpanded","getIsExpanded","toaster","createToaster","pauseOnPageIdle","Toaster","Portal","ChakraToaster","mdDown","toast","Toast","type","Spinner","applyThemePreference","theme","document","root","documentElement","body","opposite","el","remove","add","setAttribute","style","colorScheme","STORAGE_KEY","ThemePreferenceContext","createContext","getInitialThemePreference","window","stored","matchMedia","matches","ThemePreferenceProvider","initialPreference","themePreference","setThemePreference","toggleThemePreference","useThemePreference","context","useContext","Error","prev"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAUO,MAAMA,KAAeC,GAAMC,WAAuC,SAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;AAAA,EAAAP,SAAAF,KACvE;AAAA,IAAAS,OAAAA;AAAAA,IAAAL,UAAAA;AAAAA,IAAAE,MAAAA;AAAAA,IAAAE,cAAAA;AAAAA,IAAAH,YAAAA;AAAAA,IAAA,GAAAE;AAAAA,EAAAA,IAAqEP,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAAG,GAAAH,OAAAI,GAAAJ,OAAAK,GAAAL,OAAAM,GAAAN,OAAAO,MAAAL,IAAAF,EAAA,CAAA,GAAAG,IAAAH,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAM,IAAAN,EAAA,CAAA,GAAAO,IAAAP,EAAA,CAAA;AAAA,MAAAQ;AAAA,EAAAR,EAAA,CAAA,MAAAI,KAAAJ,SAAAM,KAGtEE,IAAAF,KAAgB,gBAAAG,EAAAC,GAAA,WAAA,EAAwBN,UAAAA,GAAK,GAAwBJ,OAAAI,GAAAJ,OAAAM,GAAAN,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,EAAAX,EAAA,EAAA,MAAAE,KAAAF,UAAAO,KACrEI,IAAAT,IACC,gBAAAU,EAAAF,GAAA,SAAA,EACE,UAAA;AAAA,IAAA,gBAAAD,cAAoBF,UAAAA,EAAAA,CAAM;AAAA,IAC1B,gBAAAE,EAAAC,GAAA,aAAA,EAA0BR,UAAAA,EAAAA,CAAS;AAAA,EAAA,GACrC,IAEA,gBAAAO,EAAAC,GAAA,OAAA,EAAwB,MAAA,KAAKH,UAAAA,GAAM,GACpCP,QAAAE,GAAAF,QAAAO,GAAAP,QAAAW,KAAAA,IAAAX,EAAA,EAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,EAAA,MAAAG,KAAAH,EAAA,EAAA,MAAAD,KAAAC,EAAA,EAAA,MAAAK,KAAAL,EAAA,EAAA,MAAAQ,KAAAR,UAAAW,KATHE,iCAAuBd,KAAAA,MAASM,GAC7BG,UAAAA;AAAAA,IAAAA;AAAAA,IACAG;AAAAA,IAQAR;AAAAA,EAAAA,GACH,GAAmBH,QAAAG,GAAAH,QAAAD,GAAAC,QAAAK,GAAAL,QAAAQ,GAAAR,QAAAW,GAAAX,QAAAa,KAAAA,IAAAb,EAAA,EAAA,GAXnBa;AAWmB,CAEtB,GCLYC,KAAalB,GAAMC,WAA4C,SAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAc,GAAAC,GAAAX,GAAAY,GAAAC;AAAA,EAAAlB,SAAAF,KAC1E;AAAA,IAAAmB,WAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAF,OAAAA;AAAAA,IAAAG,eAAAJ;AAAAA,IAAA,GAAAV;AAAAA,EAAAA,IAAkFP,GAAME,OAAAF,GAAAE,OAAAe,GAAAf,OAAAgB,GAAAhB,OAAAK,GAAAL,OAAAiB,GAAAjB,OAAAkB,MAAAH,IAAAf,EAAA,CAAA,GAAAgB,IAAAhB,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAiB,IAAAjB,EAAA,CAAA,GAAAkB,IAAAlB,EAAA,CAAA;AAAA,MAAAQ;AAAA,MAAAR,EAAA,CAAA,MAAAe,KAAAf,SAAAgB,KAAAhB,EAAA,CAAA,MAAAiB,GAAA;AAAA,QAAAN;AAAA,IAAAX,EAAA,EAAA,MAAAe,KAAAf,EAAA,EAAA,MAAAgB,EAAAI,UAAApB,EAAA,EAAA,MAAAiB,KAKvEN,IAAAA,CAAAU,GAAAC,MAAA;AACT,YAAAC,IAAaD,MAAUN,EAAKI,SAAU,GACtCI,IAAsBC,GAAQJ,EAAIK,OAAQL,EAAIM;AAC1CC,UAAAA;AAEJ,aAAIL,KAAA,CAASC,IACXI,IAAcA,gBAAAA,EAAAA,GAAAA,aAAAA,EAA+BP,YAAId,OAAO,IAC/Cc,EAAIK,MACbE,IAAcb,IACZ,gBAAAN,EAAAoB,GAAA,MAAA,EAAuB,SAAA,IACrB,UAAA,gBAAApB,EAACM,GAAA,EAAkB,IAAAM,EAAIK,KAAOL,YAAId,MAAAA,CAAO,EAAA,CAC3C,IAEA,gBAAAE,aAA6B,MAAAY,EAAIK,KAAOL,UAAAA,EAAId,MAAAA,CAAO,IAE5Cc,EAAIM,UACbC,IACEA,gBAAAA,EAAAA,GAAAA,MAAAA,EAA0BA,IAAAA,UAAcA,MAAAA,UAAkBA,SAAAP,EAAIM,SAC3DN,UAAAA,EAAId,OACP,IAGFqB,IAAcA,gBAAAA,EAAAA,GAAAA,MAAAA,EAAwBP,YAAId,OAAO,GAIjD,gBAAAK,EAAAiB,GAAA,MAAA,EACGD,UAAAA;AAAAA,QAAAA;AAAAA,QACAL,IAAA,OACC,gBAAAd,EAAAoB,GAAA,WAAA,EAA+B,IAAA,QAAO,eAAA,IAAe,IAAA,MAClDZ,UAAAA,EAAAA,CACH;AAAA,MAAA,EAAA,GALwBK,CAO5B;AAAA,IAAwB,GAE3BtB,QAAAe,GAAAf,EAAA,EAAA,IAAAgB,EAAAI,QAAApB,QAAAiB,GAAAjB,QAAAW,KAAAA,IAAAX,EAAA,EAAA,GAnCAQ,IAAAQ,EAAKc,IAAKnB,CAmCV,GAACX,OAAAe,GAAAf,OAAAgB,GAAAhB,OAAAiB,GAAAjB,OAAAQ;AAAAA,EAAA;AAAAA,IAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,EAAAX,EAAA,EAAA,MAAAkB,KAAAlB,UAAAQ,KApCJG,sBAAAkB,GAAA,MAAA,EAA4BX,KAAAA,GACzBV,UAAAA,GAoCH,GAAwBR,QAAAkB,GAAAlB,QAAAQ,GAAAR,QAAAW,KAAAA,IAAAX,EAAA,EAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,EAAA,MAAAD,KAAAC,UAAAK,KAAAL,EAAA,EAAA,MAAAW,KAtC1BE,sBAAAgB,GAAA,MAAA,EAA4B9B,KAAAA,GAAG,GAAMM,GACnCM,UAAAA,GAsCF,GAAwBX,QAAAD,GAAAC,QAAAK,GAAAL,QAAAW,GAAAX,QAAAa,KAAAA,IAAAb,EAAA,EAAA,GAvCxBa;AAuCwB,CAE3B,GCzDYkB,KAAWnC,GAAMC,WAA4C,SAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC,GAAAE,GAAA4B,GAAA3B,GAAA4B,GAAAzB;AAAA,EAAAR,SAAAF,KACxE;AAAA,IAAAM,MAAAA;AAAAA,IAAAF,UAAAA;AAAAA,IAAA8B,YAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,UAAA1B;AAAAA,IAAA,GAAAH;AAAAA,EAAAA,IAA2EP,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAAI,GAAAJ,OAAAgC,GAAAhC,OAAAK,GAAAL,OAAAiC,GAAAjC,OAAAQ,MAAAN,IAAAF,EAAA,CAAA,GAAAI,IAAAJ,EAAA,CAAA,GAAAgC,IAAAhC,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAiC,IAAAjC,EAAA,CAAA,GAAAQ,IAAAR,EAAA,CAAA;AAApC,QAAAkC,IAAA1B,MAAA2B,SAAA,KAAA3B,GAC7C4B,IAA0BF,IAAA,gBAAA;AAAqC,MAAAvB;AAAA,EAAAX,EAAA,CAAA,MAAAgC,KAAAhC,SAAAD,KAI3DY,wCAAiCZ,KAAAA,GAAG,GAAMiC,GAAU,GAAIhC,OAAAgC,GAAAhC,OAAAD,GAAAC,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,EAAAb,UAAAI,KAErDS,IAAAT,KAAQ,gBAAAK,EAAA4B,GAAA,WAAA,CAAA,CAAA,GAA4BrC,QAAAI,GAAAJ,QAAAa,KAAAA,IAAAb,EAAA,EAAA;AAAA,MAAAsC;AAAA,EAAAtC,EAAA,EAAA,MAAAoC,KAAApC,UAAAa,KADvCyB,IAAA,gBAAA7B,EAAA4B,GAAA,SAAA,EAAqC,cAAA,MAAaD,QAAAA,GAC/CvB,UAAAA,EAAAA,CACH,GAAyBb,QAAAoC,GAAApC,QAAAa,GAAAb,QAAAsC,KAAAA,IAAAtC,EAAA,EAAA;AAAA,MAAAuC;AAAA,EAAAvC,EAAA,EAAA,MAAAE,KAAAF,UAAAoC,KACxBG,IAAArC,KAAY,QAAQ,gBAAAO,EAAA4B,GAAA,OAAA,EAA8BD,QAAAA,GAAoBlC,UAAAA,GAAS,GAAuBF,QAAAE,GAAAF,QAAAoC,GAAApC,QAAAuC,KAAAA,IAAAvC,EAAA,EAAA;AAAA,MAAAwC;AAAA,SAAAxC,EAAA,EAAA,MAAAkC,KAAAlC,EAAA,EAAA,MAAAoC,KAAApC,EAAA,EAAA,MAAAK,KAAAL,UAAAiC,KAAAjC,EAAA,EAAA,MAAAW,KAAAX,EAAA,EAAA,MAAAsC,KAAAtC,EAAA,EAAA,MAAAuC,KALzGC,IAAA,gBAAA5B,EAAAyB,GAAA,MAAA,EAA0BJ,KAAAA,GAAmBC,UAAAA,GAAkBE,QAAAA,GAAiB,GAAM/B,GACpFM,UAAAA;AAAAA,IAAAA;AAAAA,IACA2B;AAAAA,IAGCC;AAAAA,EAAAA,GACH,GAAsBvC,QAAAkC,GAAAlC,QAAAoC,GAAApC,QAAAK,GAAAL,QAAAiC,GAAAjC,QAAAW,GAAAX,QAAAsC,GAAAtC,QAAAuC,GAAAvC,QAAAwC,KAAAA,IAAAxC,EAAA,EAAA,GANtBwC;AAMsB,CAEzB,GClBYC,KAAqB3C,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA;AAAA,MAAAO;AAAA,EAAAR,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAGzBnC,IAAA;AAAA,IAAAoC,gBACa;AAAA,IAAaC,iBACZ;AAAA,IAAqOC,SAC7O;AAAA,IAAMC,OACR;AAAA,EAAA,GACR/C,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,SAAAX,SAAAF,KAPHa,IAAA,gBAAAF,EAACuC,GAAA,EAAG,GACElD,GACC,KAAAU,GAKJ,GACDR,OAAAF,GAAAE,OAAAW,KAAAA,IAAAX,EAAA,CAAA,GARFW;AAQE,GAGSsC,KAAQnD,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA;AAAA,MAAAO;AAAA,SAAAR,SAAAF,KACnBU,sBAACwC,GAAA,EAAM,GAAA,KACL,UAAA,gBAAAvC,EAACyC,KAAW,OAAA,YAAsB,YAAA,UAAmB,WAAA,MAAgB,YAAA,UAAQ,GAAKpD,GAAK,GACzF,GAAME,OAAAF,GAAAE,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAFNQ;AAEM,GCLK2C,KAA0BA,CAACrD,MAAwC;AAC9E,QAAM,CAACsD,GAAYC,CAAa,IAAIC,GAAS,EAAK,GAC5C;AAAA,IAAEC,UAAAA;AAAAA,IAAUC,YAAAA;AAAAA,IAAYC,kBAAAA;AAAAA,IAAkBC,UAAAA;AAAAA,IAAUC,MAAAA;AAAAA,IAAMC,SAAAA;AAAAA,EAAAA,IAAY9D,GAEtE+D,IAAe,YAAY;AAC/BR,IAAAA,EAAc,EAAI;AAElB,QAAI;AACF,YAAMK,EAAAA,GACNE,EAAAA;AAAAA,IACF,QAAQ;AAAA,IACN,UAAA;AAEAP,MAAAA,EAAc,EAAK;AAAA,IACrB;AAAA,EACF;AAEA,2BACGS,EAAO,MAAP,EAAY,MAAAH,GAAY,cAAcC,GACrC,UAAA;AAAA,IAAA,gBAAAnD,EAACqD,EAAO,UAAP,EAAe;AAAA,sBACfA,EAAO,YAAP,EACC,UAAA,gBAAAlD,EAACkD,EAAO,SAAP,EACC,UAAA;AAAA,MAAA,gBAAAlD,EAACkD,EAAO,QAAP,EACC,UAAA;AAAA,QAAA,gBAAArD,EAACyC,GAAA,EAAK,WAAU,aAAaK,UAAAA,GAAS;AAAA,QACtC,gBAAA9C,EAACqD,EAAO,cAAP,EAAoB,SAAO,IAC1B,UAAA,gBAAArD,EAACsD,IAAA,EAAY,MAAK,KAAA,CAAI,EAAA,CACxB;AAAA,MAAA,GACF;AAAA,MACA,gBAAAtD,EAACqD,EAAO,MAAP,EAAaL,UAAAA,EAAAA,CAAiB;AAAA,MAC/B,gBAAAhD,EAACqD,EAAO,QAAP,EACC,4BAACE,GAAA,EAAM,WAAU,OAAM,KAAI,KACzB,UAAA;AAAA,QAAA,gBAAAvD,EAACwD,IAAA,EAAO,SAASL,GAAS,UAAA,SAAK;AAAA,QAC/B,gBAAAnD,EAACwD,IAAA,EAAO,SAASb,GAAY,SAAQ,SAAQ,cAAa,OAAM,SAASS,GACtEL,UAAAA,EAAAA,CACH;AAAA,MAAA,EAAA,CACF,EAAA,CACF;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ,GCnCMU,KAAcA,CAACC,MAAiB;AAEpC,UADYA,EAAKC,MAAM,GAAG,EAAEC,IAAAA,GAAOC,YAAAA,GAC3BC;AAAAA,IACN,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb,GAEaC,KAAW1E,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACtB;AAAA,IAAAwE,MAAAA;AAAAA,EAAAA,IAAiB3E,GACjB,CAAA4E,GAAAC,CAAA,IAAoCrB,GAAS,EAAI,GAEjDsB,IAAiBH,EAAII,WAAYJ,EAAIK,WAApB;AAA0C,MAAAtE;AAAA,EAAAR,SAAA4E,KAC1CpE,IAAA0D,GAAYU,CAAQ,GAAC5E,OAAA4E,GAAA5E,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAtC,QAAA+E,IAAiBvE,GAEjBwE,IAAkBP,EAAIO,aAAJ,GAClBC,IAAkBR,EAAIQ,aAAJ,GAkBEtE,IAAA+D,IAAA,cAAA;AAAiC,MAAA7D;AAAA,EAAAb,SAAA0E,KAGtC7D,IAAAA,MAAM8D,EAAc,CAACD,CAAU,GAAC1E,OAAA0E,GAAA1E,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAI3B,QAAAsC,IAAAoC,IAAA,aAAA;AAAkC,MAAAnC;AAAA,EAAAvC,SAAA0E,KAGrCnC,IAAA2C,CAAAA,MAAA;AACPA,IAAAA,EAAKC,gBAAAA,GACLR,EAAc,CAACD,CAAU;AAAA,EAAC,GAC3B1E,OAAA0E,GAAA1E,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAAA,MAAAwC;AAAA,EAAAxC,SAAA0E,KAGAlC,IAAAkC,sBAAcU,IAAA,EAAkB,MAAA,IAAE,IAAO,gBAAA3E,EAAC4E,IAAA,EAAmB,MAAA,GAAA,CAAE,GAAIrF,OAAA0E,GAAA1E,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAAA,MAAAsF;AAAA,EAAAtF,EAAA,CAAA,MAAAsC,KAAAtC,SAAAuC,KAAAvC,EAAA,EAAA,MAAAwC,KAVtE8C,IAAA,gBAAA7E,EAAC8E,IAAA,EACa,cAAAjD,GACJ,SAAA,SACH,MAAA,OACI,SAAAC,GAIG,YAAA,GAEXC,UAAAA,GACH,GAAaxC,OAAAsC,GAAAtC,OAAAuC,GAAAvC,QAAAwC,GAAAxC,QAAAsF,KAAAA,IAAAtF,EAAA,EAAA;AAAA,MAAAwF;AAAA,EAAAxF,UAAAyE,EAAAgB,UAAAzF,UAAAyE,EAAAI,WAAA7E,UAAAyE,EAAAK,WAAA9E,UAAA4E,KAGVY,IAAAf,EAAIgB,WAAY,YACf,gBAAA7E,EAACsC,KAAQ,IAAA,QAAiB,WAAA,MACxB,UAAA;AAAA,IAAA,gBAAAzC,EAACyC,GAAA,EAAQ,IAAA,QAAa,OAAA,YAA0B,gBAAA,gBAAkB,IAAA,MAC/DuB,UAAAA,EAAIK,QAAAA,CACP;AAAA,sBACC9B,GAAA,EAAO,IAAA,QAAe,SAAA,eAAyB,YAAA,UAAuB,eAAA,UAAY,IAAA,MACjF,UAAA,gBAAAvC,EAAC4E,IAAA,EAAmB,MAAA,IAAE,GACxB;AAAA,IACCZ,EAAII;AAAAA,EAAAA,EAAAA,CACP,IACEJ,EAAIgB,WAAY,8BACjBvC,GAAA,EAAQ,IAAA,QAAa,OAAA,YAA0B,gBAAA,gBAAyB,WAAA,MACtE0B,aACH,IAEA,gBAAAnE,EAACyC,KAAQ,IAAA,QAAiB,WAAA,MACvB0B,UAAAA,EAAAA,CACH,GACD5E,EAAA,EAAA,IAAAyE,EAAAgB,QAAAzF,EAAA,EAAA,IAAAyE,EAAAI,SAAA7E,EAAA,EAAA,IAAAyE,EAAAK,SAAA9E,QAAA4E,GAAA5E,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA;AAAA,MAAA0F;AAAA,EAAA1F,EAAA,EAAA,MAAA4E,KAAA5E,UAAAwF,KAnBHE,IAAA,gBAAAjF,EAACuC,GAAA,EAAU,MAAA,GAAY,UAAA,UAAsB,cAAA,YAAsB,YAAA,UAAgB4B,OAAAA,GAChFY,UAAAA,GAmBH,GAAMxF,QAAA4E,GAAA5E,QAAAwF,GAAAxF,QAAA0F,KAAAA,IAAA1F,EAAA,EAAA;AAAA,MAAA2F;AAAA,EAAA3F,EAAA,EAAA,MAAAgF,KAAAhF,UAAAiF,KAENU,IAAA,gBAAAlF,EAACuC,GAAA,EAAgB,YAAA,GACf,UAAA,gBAAAvC,EAACmF,MAAmB,SAAA,SAAmBZ,WAAAA,GAAsBC,WAAAA,EAAAA,CAAS,EAAA,CACxE,GAAMjF,QAAAgF,GAAAhF,QAAAiF,GAAAjF,QAAA2F,KAAAA,IAAA3F,EAAA,EAAA;AAAA,MAAA6F;AAAA,EAAA7F,EAAA,EAAA,MAAAW,KAAAX,EAAA,EAAA,MAAAa,KAAAb,EAAA,EAAA,MAAAsF,KAAAtF,EAAA,EAAA,MAAA0F,KAAA1F,UAAA2F,KAjDRE,IAAA,gBAAAjF,EAACkF,MACiB,iBAAA,4BACb,IAAA,MACA,IAAA,OACQ,YAAA,UACI,gBAAA,iBACD,cAAAnF,GACF,aAAA,gBACL,QAAA,WACE,SAAAE,GACL,KAAA,MAEJyE,UAAAA;AAAAA,IAAAA;AAAAA,IAaAI;AAAAA,IAsBAC;AAAAA,EAAAA,GAGF,GAAO3F,QAAAW,GAAAX,QAAAa,GAAAb,QAAAsF,GAAAtF,QAAA0F,GAAA1F,QAAA2F,GAAA3F,QAAA6F,KAAAA,IAAA7F,EAAA,EAAA;AAAA,MAAA+F;AAAA,EAAA/F,EAAA,EAAA,MAAAyE,EAAAuB,cAAAhG,EAAA,EAAA,MAAAyE,EAAAwB,cAAAjG,EAAA,EAAA,MAAA0E,KAAA1E,UAAA+E,KAENgB,IAAArB,uBACE1B,GAAA,EAAW,QAAA,SAAW,IAAA,MACrB,UAAA,gBAAAvC,EAACyF,IAAA,EACW,UAAAzB,EAAIwB,cAAJ,IACA,UAAAxB,EAAIuB,cAAJ,IACAjB,UAAAA,GACE,YAAA,IACG,eAAA,GAAA,CAAK,EAAA,CAExB,GACD/E,EAAA,EAAA,IAAAyE,EAAAuB,YAAAhG,EAAA,EAAA,IAAAyE,EAAAwB,YAAAjG,QAAA0E,GAAA1E,QAAA+E,GAAA/E,QAAA+F,KAAAA,IAAA/F,EAAA,EAAA;AAAA,MAAAmG;AAAA,SAAAnG,EAAA,EAAA,MAAA6F,KAAA7F,UAAA+F,KAvEHI,sBAACnD,GAAA,EACQ,QAAA,aACK,aAAA,gBACC,cAAA,MACJ,UAAA,UACN,IAAA,MACG,OAAA,QACD,MAAA,QAEL6C,UAAAA;AAAAA,IAAAA;AAAAA,IAoDCE;AAAAA,EAAAA,GAWH,GAAM/F,QAAA6F,GAAA7F,QAAA+F,GAAA/F,QAAAmG,KAAAA,IAAAnG,EAAA,EAAA,GAxENmG;AAwEM,GCvHGC,KAAaxG,GAAMC,WAA4C,SAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC,GAAAmG,GAAAC,GAAAjG,GAAAG,GAAAG,GAAAE,GAAA0F,GAAAC,GAAAC;AAAA,EAAAzG,SAAAF,KAC1E;AAAA,IAAAI,UAAAA;AAAAA,IAAAuG,aAAAA;AAAAA,IAAAD,eAAAA;AAAAA,IAAAH,cAAAA;AAAAA,IAAAE,wBAAAA;AAAAA,IAAAD,0BAAAA;AAAAA,IAAAI,uBAAAlG;AAAAA,IAAAmG,yBAAAhG;AAAAA,IAAAiG,YAAA/F;AAAAA,IAAA,GAAAR;AAAAA,EAAAA,IAWIP,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAAqG,GAAArG,OAAAsG,GAAAtG,OAAAK,GAAAL,OAAAQ,GAAAR,OAAAW,GAAAX,OAAAa,GAAAb,OAAAuG,GAAAvG,OAAAwG,GAAAxG,QAAAyG,MAAAvG,IAAAF,EAAA,CAAA,GAAAqG,IAAArG,EAAA,CAAA,GAAAsG,IAAAtG,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAQ,IAAAR,EAAA,CAAA,GAAAW,IAAAX,EAAA,CAAA,GAAAa,IAAAb,EAAA,CAAA,GAAAuG,IAAAvG,EAAA,CAAA,GAAAwG,IAAAxG,EAAA,CAAA,GAAAyG,IAAAzG,EAAA,EAAA;AAJR,QAAA0G,IAAAlG,MAAA2B,SAAA,KAAA3B,GACAmG,IAAAhG,MAAAwB,SAAA,KAAAxB,GACAiG,IAAA/F,MAAAsB,SAAauE,KAAAC,IAAb9F;AAA6D,MAAAyB;AAAA,EAAAtC,EAAA,EAAA,MAAAE,KAAAF,UAAAqG,KAOzD/D,sBAAAuE,GAAA,SAAA,EAAA,GAA8BR,GAAenG,UAAAA,GAAS,GAA2BF,QAAAE,GAAAF,QAAAqG,GAAArG,QAAAsC,KAAAA,IAAAtC,EAAA,EAAA;AAAA,MAAAuC;AAAA,EAAAvC,EAAA,EAAA,MAAAsC,KAAAtC,UAAAwG,KAAAxG,EAAA,EAAA,MAAAyG,KADnFlE,IAAA,gBAAA9B,EAAAoG,GAAA,UAAA,EAAA,GAA+BL,GAAoBC,KAAAA,GACjDnE,UAAAA,GACF,GAA4BtC,QAAAsC,GAAAtC,QAAAwG,GAAAxG,QAAAyG,GAAAzG,QAAAuC,KAAAA,IAAAvC,EAAA,EAAA;AAAA,MAAAwC;AAAA,EAAAxC,EAAA,EAAA,MAAA0G,KAAA1G,UAAAuG,KAC3B/D,IAAAkE,sBAAwBG,GAAA,WAAA,EAAA,GAAgCN,GAAsC,cAAA,KAAA,CAAI,IAAlG,MAA6GvG,QAAA0G,GAAA1G,QAAAuG,GAAAvG,QAAAwC,KAAAA,IAAAxC,EAAA,EAAA;AAAA,MAAAsF;AAAA,EAAAtF,EAAA,EAAA,MAAAsG,KAAAtG,UAAA2G,KAC7GrB,IAAAqB,IACC,gBAAAlG,EAAAoG,GAAA,WAAA,EAAwC,aAAA,cAAY,GAAKP,GAAwC,cAAA,KAAA,CAAI,IADtG,MAEOtG,QAAAsG,GAAAtG,QAAA2G,GAAA3G,QAAAsF,KAAAA,IAAAtF,EAAA,EAAA;AAAA,MAAAwF;AAAA,EAAAxF,UAAA4G,KACPpB,IAAAoB,IAAa,gBAAAnG,EAAAoG,GAAA,QAAA,CAAA,CAAA,IAAb,MAA+C7G,QAAA4G,GAAA5G,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA;AAAA,MAAA0F;AAAA,SAAA1F,UAAAD,KAAAC,EAAA,EAAA,MAAAK,KAAAL,EAAA,EAAA,MAAAuC,KAAAvC,EAAA,EAAA,MAAAwC,KAAAxC,UAAAsF,KAAAtF,EAAA,EAAA,MAAAwF,KARlDE,sBAAAmB,GAAA,MAAA,EAA4B9G,KAAAA,GAAG,GAAMM,GACnCkC,UAAAA;AAAAA,IAAAA;AAAAA,IAGCC;AAAAA,IACA8C;AAAAA,IAGAE;AAAAA,EAAAA,GACH,GAAwBxF,QAAAD,GAAAC,QAAAK,GAAAL,QAAAuC,GAAAvC,QAAAwC,GAAAxC,QAAAsF,GAAAtF,QAAAwF,GAAAxF,QAAA0F,KAAAA,IAAA1F,EAAA,EAAA,GATxB0F;AASwB,CAE3B;AC9BM,SAASoB,GAAWhH,GAAwB;AACjD,QAAM;AAAA,IAAEiH,OAAAA;AAAAA,EAAAA,IAAUjH,GACZkH,IAAYC,GAAuB,IAAI,GAEvCC,IAAcC,GAAe;AAAA,IACjCC,OAAOL,EAAM3F;AAAAA,IACbiG,kBAAkBA,MAAML,EAAUM;AAAAA,IAClCC,cAAcA,MAAM;AAAA,IACpBC,UAAU;AAAA,EAAA,CACX;AAED,SAAIT,EAAM3F,WAAW,IAEjB,gBAAAX,EAACuD,GAAA,EAAM,GAAE,QAAO,MAAK,KAAI,KAAI,KAC3B,UAAA,gBAAAvD,EAAC2F,IAAA,EAAW,MAAK,KAAI,MAAK,KAAI,cAAc;AAAA,IAAEqB,GAAG;AAAA,IAAMC,QAAQ;AAAA,EAAA,GAC7D,UAAA,gBAAAjH,EAACkH,IAAA,EAAW,OAAM,uBAAsB,aAAY,2CAA0C,UAAS,MAAI,EAAA,CAC7G,EAAA,CACF,IAKF,gBAAAlH,EAACuD,GAAA,EAAM,GAAE,QAAO,MAAK,KAAI,KAAI,KAC3B,UAAA,gBAAAvD,EAACuC,GAAA,EAAI,UAAS,YAAW,MAAK,KAAI,MAAK,KACrC,UAAA,gBAAAvC,EAAC2F,IAAA,EAAW,UAAS,YAAW,OAAM,KAAI,aAAaY,GAAW,cAAc;AAAA,IAAES,GAAG;AAAA,EAAA,GACnF,UAAA,gBAAAhH,EAACuC,GAAA,EAAI,UAAS,YAAW,OAAM,QAAO,OAAO;AAAA,IAAE4E,QAAQV,EAAYW,aAAAA;AAAAA,EAAa,GAC7EX,UAAAA,EAAYY,gBAAAA,EAAkBhG,IAAKiG,OAClC,gBAAAtH,EAACuC,GAAA,EAEC,cAAY+E,EAAYzG,OACxB,KAAK4F,EAAYc,gBACjB,UAAS,YACT,KAAI,KACJ,MAAK,KACL,OAAM,QACN,IAAG,MACH,OAAO;AAAA,IAAEC,WAAW,cAAcF,EAAYG,KAAK;AAAA,EAAA,GAEnD,UAAA,gBAAAzH,EAAC+D,IAAA,EAAS,MAAMuC,EAAMgB,EAAYzG,KAAK,EAAA,CAAE,EAAA,GAVpCyG,EAAYI,GAWnB,CACD,EAAA,CACH,EAAA,CACF,GACF,GACF;AAEJ;ACjBA,MAAMC,KAAcA,CAACC,GAA2B/G,MACvC,GAAG+G,EAAMC,OAAO,IAAID,EAAME,IAAI,IAAIjH,CAAK,IAG1CkH,KAAeA,CAAC/C,GAA6BnE,MAC1C,GAAGmE,EAAOlF,KAAK,IAAIe,CAAK,IAG3BmH,KAAgB3I,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA;AAAA,MAAAsI,GAAAlI,GAAAiI;AAAA,EAAAtI,SAAAF,KACpB;AAAA,IAAAyI,MAAAA;AAAAA,IAAAD,SAAAA;AAAAA,IAAA,GAAAjI;AAAAA,EAAAA,IAAmCP,GAAME,OAAAF,GAAAE,OAAAuI,GAAAvI,OAAAK,GAAAL,OAAAsI,MAAAC,IAAAvI,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAsI,IAAAtI,EAAA,CAAA;AAAA,MAAAQ;AAAA,EAAAR,SAAAuI,KAIrC/H,IAAA,gBAAAC,EAAAiI,GAAA,OAAA,EAA0B,WAAA,MAAW,OAAA,YAClCH,UAAAA,EAAAA,CACH,GAAiBvI,OAAAuI,GAAAvI,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,EAAAX,SAAAsI,KACjB3H,IAAA,gBAAAF,EAACkI,IAAA,EACI,IAAA,KACA,IAAA,KACK,SAAA,MACF,OAAA,UACE,SAAA,UACI,aAAA,OACF,WAAA,UACA,WAAA,cAEV,UAAA,gBAAAlI,EAAAiI,GAAA,OAAA,EAA0B,WAAA,MAAgB,YAAA,yBAE1C,GACF,GAAO1I,OAAAsI,GAAAtI,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,CAAA,MAAAK,KAAAL,SAAAQ,KAAAR,EAAA,EAAA,MAAAW,KAjBTE,IAAA,gBAAAD,EAACoD,GAAA,EAAK,GAAK3D,GACTG,UAAAA;AAAAA,IAAAA;AAAAA,IAGAG;AAAAA,EAAAA,GAcF,GAAQX,OAAAK,GAAAL,OAAAQ,GAAAR,QAAAW,GAAAX,QAAAa,KAAAA,IAAAb,EAAA,EAAA,GAlBRa;AAkBQ,GAIC+H,KAAgB9I,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GAC3B;AAAA,IAAA4I,SAAAA;AAAAA,IAAAtI,OAAAA;AAAAA,IAAAuI,aAAAA;AAAAA,EAAAA,IAAwChJ;AAAM,MAAAU;AAAA,EAAAR,SAAAO,KAKxCC,IAAA,gBAAAC,EAACsI,IAAA,EAAa,MAAA,OAAOxI,UAAAA,GAAM,GAAUP,OAAAO,GAAAP,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,EAAAX,SAAA8I,KACpCnI,IAAAmI,sBACE5F,GAAA,EAAW,OAAA,YAAqB,WAAA,MAC9B4F,aACH,IAHD,MAIO9I,OAAA8I,GAAA9I,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,EAAAb,EAAA,CAAA,MAAAQ,KAAAR,SAAAW,KANVE,IAAA,gBAAAD,EAACoD,GAAA,EAAgB,WAAA,UACfxD,UAAAA;AAAAA,IAAAA;AAAAA,IACCG;AAAAA,EAAAA,GAKH,GAAQX,OAAAQ,GAAAR,OAAAW,GAAAX,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAsC;AAAA,EAAAtC,SAAA6I,KAIHvG,IAAAuG,EAAO/G,IAAKkH,EA6EZ,GAAChJ,OAAA6I,GAAA7I,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AAAA,MAAAuC;AAAA,EAAAvC,SAAAsC,KA/ENC,IAAA,gBAAA9B,EAACuC,GAAA,EAAa,UAAA,YACZ,UAAA,gBAAAvC,EAAAiI,GAAA,MAAA,EAAoB,MAAA,MAAa,SAAA,SAC9BpG,aA8EH,GACF,GAAMtC,OAAAsC,GAAAtC,QAAAuC,KAAAA,IAAAvC,EAAA,EAAA;AAAA,MAAAwC;AAAA,SAAAxC,EAAA,EAAA,MAAAa,KAAAb,UAAAuC,KA3FRC,IAAA,gBAAA5B,EAACoD,GAAA,EAAU,KAAA,MACTnD,UAAAA;AAAAA,IAAAA;AAAAA,IASA0B;AAAAA,EAAAA,GAkFF,GAAQvC,QAAAa,GAAAb,QAAAuC,GAAAvC,QAAAwC,KAAAA,IAAAxC,EAAA,EAAA,GA5FRwC;AA4FQ;AAhGiB,SAAAyG,GAAAC,GAAA;AAAA,SAmDL,gBAAAzI,EAAC0I,IAAA,EAEM,MAAA,MACG,SAAA,MACA,SAAA,UACK,cAAA,QACC,eAAA,cAEbD,eAPIA,CAQP;AAAQ;AA5DH,SAAAE,GAAA3D,GAAA4D,GAAA;AAAA,2BAsELC,GAAA,MAAA,EACE,UAAA,gBAAA1I,EAACoD,GAAA,EAAU,KAAA,KACT,UAAA;AAAA,IAAA,gBAAAvD,EAACyC,GAAA,EAAW,OAAA,YAAsB,YAAA,UAAmB,WAAA,MAClDuC,YAAMlF,MAAAA,CACT;AAAA,IACCkF,EAAMqD,cACL,gBAAArI,EAACyC,GAAA,EAAW,OAAA,aAAsB,WAAA,MAC/BuC,UAAAA,EAAMqD,YAAAA,CACT,IAHD;AAAA,IAKArD,EAAM8D,OACL,gBAAA9I,EAAC+I,IAAA,EAAW,MAAA/D,EAAM8D,MAAiB,WAAA,MAAW,OAAA,eAAc,UAAA,aAAA,CAE5D,IAHD;AAAA,EAAA,EAAA,CAKH,EAAA,GAfcf,GAAa/C,GAAQ4D,CAAW,CAgBhD;AAAY;AAtFP,SAAAL,GAAAX,GAAAoB,GAAA;AAAA,SAiBjB,gBAAA7I,EAAA8H,GAAA,MAAA,EACE,UAAA;AAAA,IAAA,gBAAAjI,EAAAiI,GAAA,SAAA,EACM,KAAA,KACE,OAAA,MACK,YAAA,KACD,WAAA,MACA,UAAA;AAAA,MAAAgB,MAAQ;AAAA,MAAQC,IAAM;AAAA,IAAA,GAEhC,UAAA,gBAAAlJ,EAACgI,IAAA,EAAwB,WAAA,MAAW,MAAAJ,EAAKE,MAAgB,SAAAF,EAAKC,QAAAA,CAAQ,EAAA,CACxE;AAAA,IAEA,gBAAA1H,kBACE,UAAA;AAAA,MAAA,gBAAAH,EAAAiI,GAAA,WAAA,EAAA;AAAA,MACA,gBAAAjI,EAAAiI,GAAA,WAAA,CAAA,CAAA;AAAA,IAAA,GACF;AAAA,sBAEAA,GAAA,SAAA,EACE,UAAA,gBAAA9H,EAACoD,GAAA,EAAU,KAAA,KACT,UAAA;AAAA,MAAA,gBAAAvD,EAACgI,IAAA,EAAuB,UAAA,MAAW,MAAAJ,EAAKE,MAAgB,SAAAF,EAAKC,QAAAA,CAAQ;AAAA,MAErE,gBAAA1H,EAACoD,GAAA,EAAU,KAAA,KACT,UAAA;AAAA,QAAA,gBAAAvD,EAAAiI,GAAA,OAAA,EAAyB,UAAA,MAAgB,YAAA,UACtCL,YAAK9H,MAAAA,CACR;AAAA,QACC8H,EAAKS,cACJ,gBAAArI,EAACyC,GAAA,EAAW,OAAA,YAAqB,WAAA,MAC9BmF,UAAAA,EAAKS,YAAAA,CACR,IAHD;AAAA,MAAA,GAKH;AAAA,MAECT,EAAKuB,QAASvB,EAAKuB,KAAKxI,SAAU,IACjC,gBAAAX,EAACoJ,GAAA,EACExB,UAAAA,EAAKuB,KAAK9H,IAAKmH,EAWf,GACH,IAdD;AAAA,MAiBAZ,EAAKyB,QAAS,gBAAArJ,EAACsJ,IAAA,EAAc,SAAA,MAAU,KAAA1B,EAAKyB,OAAa,KAAAzB,EAAK9H,MAAAA,CAAM,IAApE;AAAA,MAEA8H,EAAK2B,WAAY3B,EAAK2B,QAAQ5I,SAAU,iCACzB,IAAA,KAAQ,KAAA,KACnBiH,UAAAA,EAAK2B,QAAQlI,IAAKsH,EAkBlB,GACH,IArBD;AAAA,IAAA,EAAA,CAuBH,EAAA,CACF;AAAA,EAAA,EAAA,GA1EkBhB,GAAYC,GAAOoB,CAAU,CA2EjD;AAAgB;AC1I5B,MAAMQ,KAAgB,uBAChBC,KAAmB,kDAEnBC,KAAsBA,CAACC,GAAkBC,MACtCD,EAAQE,UAAUC,SAAS,eAAeF,CAAK,EAAE,GAGpDG,KAAiBA,CAACC,MACfA,EACJnG,cACAoG,QAAQ,eAAe,GAAG,EAC1BA,QAAQ,YAAY,EAAE,GAGdC,KAAkBA,CAACC,MAAqB;AACnD,QAAMC,IAAyB,CAAA;AAC/B,MAAIC,IAAe;AAEnB,aAAWC,KAASH,EAASI,SAASf,EAAa,GAAG;AACpD,UAAMI,IAAQU,EAAM,CAAC,EAAG3J,QAClB6J,IAAOF,EAAM,CAAC,EAAGG,KAAAA,GAEjBC,IAAK,GADEX,GAAeS,CAAI,KACV,SAAS,IAAIH,CAAY;AAE/CD,IAAAA,EAASO,KAAK;AAAA,MAAED,IAAAA;AAAAA,MAAId,OAAAA;AAAAA,MAAOY,MAAAA;AAAAA,IAAAA,CAAM,GACjCH,KAAgB;AAAA,EAClB;AAEA,SAAOD;AACT,GAEMQ,KAAuBA,CAACR,GAAwBS,MAAkB;AACtE,QAAMC,IAAWC,MAAMC,KAAKH,EAAII,iBAAiBxB,EAAgB,CAAC,GAC5DyB,wBAA0BC,IAAAA,GAC1BC,wBAAyBD,IAAAA;AAC/B,MAAIE,IAAmB;AAEvB,aAAWC,KAAWlB;AACpB,aAASmB,IAAeF,GAAkBE,IAAeT,EAASnK,QAAQ4K,KAAgB,GAAG;AAC3F,YAAM5B,IAAUmB,EAASS,CAAY,GAC/BC,IAAc7B,EAAQ8B,aAAahB,KAAAA;AAEzC,UAAI,GAACe,KAAeA,MAAgBF,EAAQd,SAIvCd,GAAoBC,GAAS2B,EAAQ1B,KAAK,GAI/CsB;AAAAA,QAAAA,EAAoBQ,IAAIJ,EAAQZ,IAAIf,CAAO,GAC3CyB,EAAmBM,IAAI/B,GAAS2B,EAAQZ,EAAE,GAC1CW,IAAmBE,IAAe;AAClC;AAAA;AAAA,IACF;AAGF,SAAO;AAAA,IAAEL,qBAAAA;AAAAA,IAAqBE,oBAAAA;AAAAA,EAAAA;AAChC,GAEMO,KAAkBtM,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACtB;AAAA,IAAA8L,SAAAA;AAAAA,IAAAM,UAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAA6D1M,GAC7D2M,IAAeF,MAAY,QAcH/L,IAAA,QAAQuL,EAAO1B,KAAM,eAClC1J,IAAA0L,IAAA,OAAA,YACKxL,IAAAwL,KAAAC,IAAA,WAAA,UACMhK,IAAAmK,IAAA,QAAA,OACAlK,IAAAkK,IAAUJ,IAAA,OAAA,aAAV;AAAuD,MAAA7J;AAAA,EAAAxC,SAAAyM,KACjEjK,IAAAiK,IAAA;AAAA,IAAAC,kBAA6B;AAAA,EAAA,IAA7B;AAAA,IAAAC,OAA0D;AAAA,EAAA,GAAM3M,OAAAyM,GAAAzM,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAAA,MAAAsF;AAAA,EAAAtF,SAAA+L,EAAAZ,MAAAnL,SAAAwM,KAC/DlH,IAAAA,MAAMkH,EAAST,EAAOZ,EAAG,GAACnL,EAAA,CAAA,IAAA+L,EAAAZ,IAAAnL,OAAAwM,GAAAxM,OAAAsF,KAAAA,IAAAtF,EAAA,CAAA;AAAA,MAAAwF;AAAA,SAAAxF,EAAA,CAAA,MAAA+L,EAAAd,QAAAjL,EAAA,CAAA,MAAAQ,KAAAR,EAAA,CAAA,MAAAW,KAAAX,EAAA,CAAA,MAAAa,KAAAb,EAAA,CAAA,MAAAsC,KAAAtC,EAAA,EAAA,MAAAuC,KAAAvC,EAAA,EAAA,MAAAwC,KAAAxC,UAAAsF,KAjBrCE,sBAACxC,GAAA,EACI,IAAA,UACA,IAAA,OACA,IAAA,KACG,OAAA,QACE,SAAA,QACE,WAAA,QACA,WAAA,MACH,QAAA,WACQ,gBAAA,QACJ,YAAA,kBACS,oBAAAxC,GACb,OAAAG,GACK,YAAAE,GACM,kBAAAyB,GACA,kBAAAC,GACV,QAAAC,GACC,SAAA8C,GAERyG,YAAOd,MACV,GAAMjL,EAAA,CAAA,IAAA+L,EAAAd,MAAAjL,OAAAQ,GAAAR,OAAAW,GAAAX,OAAAa,GAAAb,OAAAsC,GAAAtC,QAAAuC,GAAAvC,QAAAwC,GAAAxC,QAAAsF,GAAAtF,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA,GApBNwF;AAoBM,GAIGoH,KAAc9M,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACzB;AAAA,IAAA2K,UAAAA;AAAAA,IAAArK,OAAAC;AAAAA,IAAAqM,YAAAlM;AAAAA,EAAAA,IAA6Eb,GAA3DS,IAAAC,MAAA2B,SAAA,iBAAA3B,GAAwBqM,IAAAlM,MAAAwB,SAAA,oBAAAxB,GAC1CkK,IAAiBF,GAAgBC,CAAQ,GACzCkC,IAAYC,GAAAA,GACZ,CAAAC,GAAAC,CAAA,IAA8C3J,GAASuH,EAAQ,CAAA,GAAOM,MAAf,EAAqB,GAC5E,CAAA+B,GAAAC,CAAA,IAAwC7J,GAAS,EAAK;AAAE,MAAAzC;AAAA,EAAAb,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KACK9B,IAAA;AAAA,IAAA8K,yCAClCC,IAAAA;AAAAA,IAAKC,wCACND,IAAAA;AAAAA,EAAI,GAC7B5L,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAHD,QAAAoN,IAAgCnG,GAA6BpG,CAG5D;AAAE,MAAAyB,GAAAC;AAAA,EAAAvC,SAAA4K,KAEOtI,IAAAA,MAAA;AACR,UAAA+K,IAA0B1C,GAAgBC,CAAQ;AAClDqC,IAAAA,EAAmBI,EAAiB,CAAA,GAAOlC,MAAxB,EAA8B;AAAA,EAAC,GACjD5I,IAAA,CAACqI,CAAQ,GAAC5K,OAAA4K,GAAA5K,OAAAsC,GAAAtC,OAAAuC,MAAAD,IAAAtC,EAAA,CAAA,GAAAuC,IAAAvC,EAAA,CAAA,IAHbsN,GAAUhL,GAGPC,CAAU;AAAC,MAAAC,GAAA8C;AA2Cd,MA3CctF,EAAA,CAAA,MAAA8M,KAAA9M,SAAA4K,KAAA5K,EAAA,CAAA,MAAA6M,KAEJrK,IAAAA,MAAA;AACR,UAAA+K,IAA4B5C,GAAgBC,CAAQ,GACpDU,KAAYwB,EAAGU,YAAAA,GACfC,KAAYX,EAAGY,UAAAA,GACfC,KAAkBtC,GAAqBkC,GAAqBjC,EAAG;AAI/D,QAFA8B,EAAuB9F,UAAWqG,IAE9BA,GAAS9B,mBAAmB+B,SAAU;AAAC;AAI3C,UAAAC,KAAiB,IAAIJ,GAAGK,qBACtBjF,CAAAA,OAAA;AACE,YAAAkF,KAAuBlF,GAAOmF,OACpB/E,EAA+B,EAACgF,KAClC7E,EAA+E;AAEvF,UAAI2E,GAAc3M,WAAY;AAAC;AAI/B,YAAA8M,KAAeH,MAAiBG,QAChCC,KAA4BR,GAAS9B,mBAAmBuC,IAAKF,EAAM;AAEnE,MAAIC,MACFlB,EAAmBkB,EAAmB;AAAA,IACvC,GAEH;AAAA,MAAAtB,YAAAA;AAAAA,IAAAA,CACF;AAEA,eAAKzC,MAAiBuD,GAAS9B,mBAAmBwC,KAAAA;AAChDR,MAAAA,GAAQS,QAASlE,EAAO;AACzB,WAEM,MAAA;AACLyD,MAAAA,GAAQU,WAAAA;AAAAA,IAAa;AAAA,EACtB,GACAjJ,KAACwH,GAAKlC,GAAUiC,CAAU,GAAC7M,OAAA8M,GAAA9M,OAAA4K,GAAA5K,OAAA6M,GAAA7M,OAAAwC,GAAAxC,OAAAsF,MAAA9C,IAAAxC,EAAA,CAAA,GAAAsF,IAAAtF,EAAA,CAAA,IAvC9BsN,GAAU9K,GAuCP8C,CAA2B,GAE1BuF,EAAQzJ,WAAY;AAAC,WAChB;AACR,MAAAoE;AAAA,EAAAxF,SAAAgN,KAEmCxH,IAAAuG,CAAAA,MAAaA,EAAOZ,OAAQ6B,GAAehN,OAAAgN,GAAAhN,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA;AAA/E,QAAAwO,IAAsB3D,EAAQ4D,KAAMjJ,CAA2C;AAAE,MAAAE;AAAA,EAAA1F,EAAA,EAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAErD+C,IAAAgJ,CAAAA,MAAA;AAC1B,UAAAC,KAAuBvB,EAAuB9F,QAAQqE,oBAAoByC,IAAKM,CAAS;AACxFzB,IAAAA,EAAmByB,CAAS,GAC5BvB,EAAgB,EAAK,GACrBwB,IAAcC,eAAiB;AAAA,MAAAC,UAAY;AAAA,MAAQC,OAAS;AAAA,IAAA,CAAS;AAAA,EAAC,GACvE9O,QAAA0F,KAAAA,IAAA1F,EAAA,EAAA;AALD,QAAA+O,IAA4BrJ;AAK1B,MAAAC;AAAA,EAAA3F,EAAA,EAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAKwDgD,IAAAqJ,CAAAA,MAAa7B,EAAgB6B,EAAOrL,IAAK,GAAC3D,QAAA2F,KAAAA,IAAA3F,EAAA,EAAA;AAAA,MAAA6F;AAAA,EAAA7F,EAAA,EAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAGxFkD,IAAA,gBAAApF,EAACwO,IAAA,EAASC,IAAAA,IAAgB,OAAA,aAAW,GAAGlP,QAAA6F,KAAAA,IAAA7F,EAAA,EAAA;AAAA,MAAA+F;AAAA,EAAA/F,UAAAO,KACxCwF,sBAAC7C,KAAe,WAAA,MAAgB,YAAA,UAAe,OAAA,mBAE/C,GAAOlD,QAAAO,GAAAP,QAAA+F,KAAAA,IAAA/F,EAAA,EAAA;AACN,QAAAmG,IAAC+G,IAAD,OAAA,gBAAAtM,EAAAuO,IAAA,EAEG,UAAA;AAAA,IAAA,gBAAA1O,EAACwO,IAAA,EAAS5J,QAAoB,OAAA;sBAC7BnC,GAAA,EAAe,WAAA,MAAW,OAAA,YACxBsL,aAAavD,KAAAA,CAChB;AAAA,EAAA,EAAA,CAAO;AAEH,MAAAmE;AAAA,EAAApP,EAAA,EAAA,MAAA+F,KAAA/F,UAAAmG,KAZViJ,sBAACvF,GAAA,EACChE,UAAAA;AAAAA,IAAAA;AAAAA,IACAE;AAAAA,IAGCI;AAAAA,EAAAA,GAQH,GAASnG,QAAA+F,GAAA/F,QAAAmG,GAAAnG,QAAAoP,KAAAA,IAAApP,EAAA,EAAA;AACmC,QAAAqP,IAAAnC,IAAA,mBAAA;AAAgD,MAAAoC;AAAA,EAAAtP,EAAA,EAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAC1F2M,IAAA,gBAAA7O,EAACwO,IAAA,EAAS7J,IAAAA,IAAmB,OAAA,aAAW,GAAGpF,QAAAsP,KAAAA,IAAAtP,EAAA,EAAA;AAAA,MAAAuP;AAAA,EAAAvP,UAAAqP,KAD7CE,sBAACvM,GAAA,EAAe,YAAA,kBAA4B,WAAAqM,GAC1CC,UAAAA,GACF,GAAMtP,QAAAqP,GAAArP,QAAAuP,KAAAA,IAAAvP,EAAA,EAAA;AAAA,MAAAwP;AAAA,EAAAxP,EAAA,EAAA,MAAAoP,KAAApP,UAAAuP,KAjBRC,IAAA,gBAAA5O,EAAA6O,GAAA,SAAA,EAA2B,OAAA,QAAe,SAAA,QAAkB,YAAA,UAAwB,gBAAA,iBAClFL,UAAAA;AAAAA,IAAAA;AAAAA,IAcAG;AAAAA,EAAAA,GAGF,GAAsBvP,QAAAoP,GAAApP,QAAAuP,GAAAvP,QAAAwP,KAAAA,IAAAxP,EAAA,EAAA;AAAA,MAAA0P;AAAA,EAAA1P,UAAAgN,KAKF0C,IAAAC,OACZ,gBAAAlP,EAAC2L,IAAA,EAEUL,SAAAA,GACD,SAAA,WACI,YAAA,IACF,UAAAiB,MAAoBjB,EAAOZ,IAC3B4D,UAAAA,EAAAA,GALLhD,EAAOZ,EAKiB,GAEhCnL,QAAAgN,GAAAhN,QAAA0P,KAAAA,IAAA1P,EAAA,EAAA;AAOV,QAAA4P,IAAAxJ,IAAqByJ,IAAA,MAASC,IAAA,KAAUC,IAAA,MAAcC,IAAA,UAAcC,IAAA;AAAoB,MAAAC;AAAA,EAAAlQ,EAAA,EAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAErFuN,IAAA,gBAAAzP,EAACwO,IAAA,EAASC,IAAAA,IAAgB,OAAA,aAAW,GAAGlP,QAAAkQ,KAAAA,IAAAlQ,EAAA,EAAA;AAAA,MAAAmQ;AAAA,EAAAnQ,UAAAO,KAD1C4P,IAAA,gBAAAvP,EAACiJ,GAAA,EAAU,IAAA,KACTqG,UAAAA;AAAAA,IAAAA;AAAAA,sBACChN,GAAA,EAAgB,YAAA,UAAmB,WAAA,MACjC3C,UAAAA,EAAAA,CACH;AAAA,EAAA,GACF,GAASP,QAAAO,GAAAP,QAAAmQ,KAAAA,IAAAnQ,EAAA,EAAA;AAER,QAAAoQ,IAAApM,GAAUqM,KAAA;AAAG,MAAAC;AAAA,EAAAtQ,UAAAgN,KACEsD,IAAAC,OACZ,gBAAA9P,EAAC2L,IAAA,EAEUL,YACD,SAAA,QACI,YAAAA,EAAO1B,UAAW,GACpB,UAAA2C,MAAoBjB,EAAOZ,IAC3B4D,UAAAA,EAAAA,GALLhD,EAAOZ,EAKiB,GAEhCnL,QAAAgN,GAAAhN,QAAAsQ,KAAAA,IAAAtQ,EAAA,EAAA;AATA,QAAAwQ,KAAA3F,EAAQ/I,IAAKwO,CASb;AAAC,MAAAG;AAAA,EAAAzQ,EAAA,EAAA,MAAAoQ,KAAApQ,UAAAwQ,MAVJC,IAAA,gBAAAhQ,EAAC2P,GAAA,EAAU,KAAAC,IACRG,UAAAA,IAUH,GAAQxQ,QAAAoQ,GAAApQ,QAAAwQ,IAAAxQ,QAAAyQ,KAAAA,IAAAzQ,EAAA,EAAA;AAAA,MAAA0Q;AAAA,SAAA1Q,EAAA,EAAA,MAAA4P,KAAA5P,UAAAmQ,KAAAnQ,EAAA,EAAA,MAAAyQ,KAnBVC,sBAACd,GAAA,EAAqB,WAAAC,GAAS,KAAAC,GAAU,OAAAC,GAAc,UAAAC,GAAc,MAAAC,GACnEE,UAAAA;AAAAA,IAAAA;AAAAA,IAOAM;AAAAA,EAAAA,GAYF,GAAazQ,QAAA4P,GAAA5P,QAAAmQ,GAAAnQ,QAAAyQ,GAAAzQ,QAAA0Q,KAAAA,IAAA1Q,EAAA,EAAA,GA9Df,gBAAAY,EAACoD,GAAA,EAAU,KAAA,KAAU,OAAA,QACnB,UAAA;AAAA,IAAA,gBAAAvD,EAACuC,GAAA,EAAa,UAAA,MAAQ,IAAA,KAAO,IAAA,KAAM,GAAA,QAAU,IAAA,aAAwB,aAAA,OACnE,4BAAAyM,GAAA,MAAA,EAAwBvC,MAAAA,GAA4B,cAAAvH,GAClD6J,UAAAA;AAAAA,MAAAA;AAAAA,sCAqBE,UAAA,gBAAA/O,EAAC2F,IAAA,EAAc,IAAA,KAAS,MAAA,QACtB,UAAA,gBAAA3F,EAACuD,GAAA,EAAU,KAAA,KACR6G,UAAAA,EAAQ/I,IAAK4N,CASb,EAAA,CACH,GACF,EAAA,CACF;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,IAEAgB;AAAAA,EAAAA,GAqBF;AAAQ;AAtIe,SAAAzH,GAAAZ,GAAA;AAAA,SA+BEA,EAAKsI;AAAe;AA/BtB,SAAAvH,GAAAwH,GAAAC,GAAA;AAAA,SAgCQD,EAAKE,mBAAmBC,MAAOF,EAAMC,mBAAmBC;AAAI;ACpI/F,MAAMC,KAAqBlR,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACzB;AAAA,IAAAoB,MAAAA;AAAAA,IAAA4P,WAAAA;AAAAA,EAAAA,IAA4BnR,GAC5BoR,IAAmBD,MAAc,QACjCE,IAAsBD,IAAA,aAAA,QAWP1Q,IAAA0Q,IAAA,UAAA,OACKvQ,IAAAuQ,IAAA,eAAA;AAAsC,MAAArQ;AAAA,EAAAb,SAAAkR,KAInDrQ,IAAAqQ,IAAa,gBAAAzQ,EAAC2Q,IAAA,EAAkB,MAAA,IAAE,IAAlC,MAA6CpR,OAAAkR,GAAAlR,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AACnB,QAAAsC,IAAA4O,IAAA,eAAA;AAAsC,MAAA3O;AAAA,EAAAvC,SAAAmR,KAC/D5O,sBAACW,KAAe,WAAA,MAAW,OAAA,YAAsB,YAAA,uBAEjD,GAAOlD,OAAAmR,GAAAnR,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAAA,MAAAwC;AAAA,EAAAxC,EAAA,CAAA,MAAAqB,EAAAd,SACPiC,sBAACU,GAAA,EAAe,WAAA,MAAgB,YAAA,UAC7B7B,YAAId,MAAAA,CACP,GAAOP,EAAA,CAAA,IAAAqB,EAAAd,OAAAP,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAAA,MAAAsF;AAAA,EAAAtF,EAAA,CAAA,MAAAqB,EAAAyH,eACNxD,IAAAjE,EAAIyH,cACH,gBAAArI,EAACyC,GAAA,EAAe,WAAA,MAAW,OAAA,aAAuB,YAAA,UAC/C7B,UAAAA,EAAIyH,YAAAA,CACP,IAHD,MAIO9I,EAAA,CAAA,IAAAqB,EAAAyH,aAAA9I,OAAAsF,KAAAA,IAAAtF,EAAA,CAAA;AAAA,MAAAwF;AAAA,EAAAxF,EAAA,CAAA,MAAAsC,KAAAtC,EAAA,CAAA,MAAAuC,KAAAvC,EAAA,EAAA,MAAAwC,KAAAxC,UAAAsF,KAXVE,IAAA,gBAAA5E,EAACoD,GAAA,EAAU,KAAA,KAAgB,YAAA1B,GACzBC,UAAAA;AAAAA,IAAAA;AAAAA,IAGAC;AAAAA,IAGC8C;AAAAA,EAAAA,GAKH,GAAQtF,OAAAsC,GAAAtC,OAAAuC,GAAAvC,QAAAwC,GAAAxC,QAAAsF,GAAAtF,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA;AAAA,MAAA0F;AAAA,EAAA1F,UAAAkR,KACPxL,IAAAwL,IAAA,OAAoB,gBAAAzQ,EAAC4E,IAAA,EAAmB,MAAA,IAAE,GAAIrF,QAAAkR,GAAAlR,QAAA0F,KAAAA,IAAA1F,EAAA,EAAA;AAAA,MAAA2F;AAAA,EAAA3F,EAAA,EAAA,MAAAqB,EAAAgQ,QAAArR,EAAA,EAAA,MAAAa,KAAAb,EAAA,EAAA,MAAAwF,KAAAxF,UAAA0F,KAfjDC,IAAA,gBAAA/E,EAAA,KAAA,EAAS,MAAAS,EAAIgQ,MACVxQ,UAAAA;AAAAA,IAAAA;AAAAA,IACD2E;AAAAA,IAaCE;AAAAA,EAAAA,GACH,GAAI1F,EAAA,EAAA,IAAAqB,EAAAgQ,MAAArR,QAAAa,GAAAb,QAAAwF,GAAAxF,QAAA0F,GAAA1F,QAAA2F,KAAAA,IAAA3F,EAAA,EAAA;AAAA,MAAA6F;AAAA,SAAA7F,EAAA,EAAA,MAAAQ,KAAAR,UAAAW,KAAAX,EAAA,EAAA,MAAA2F,KA5BNE,IAAA,gBAAApF,EAACwD,MACC,aACQ,SAAA,SACK,cAAA,QACT,KAAA,KACC,MAAA,MACH,GAAA,QACC,IAAA,KACQ,WAAAzD,GACK,gBAAAG,GACX,MAAA,KAELgF,UAAAA,EAAAA,CAiBF,GAAS3F,QAAAQ,GAAAR,QAAAW,GAAAX,QAAA2F,GAAA3F,QAAA6F,KAAAA,IAAA7F,EAAA,EAAA,GA7BT6F;AA6BS,GAIAyL,KAAiBxR,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GAC5B;AAAA,IAAAsR,UAAAA;AAAAA,IAAAC,MAAAA;AAAAA,EAAAA,IAA2B1R;AAE3B,MAAI,CAACyR,KAAD,CAAcC;AAAI,WACb;AACR,MAAAhR;AAAA,EAAAR,SAAAuR,KAIkB/Q,IAAA+Q,IAAW,gBAAA9Q,EAACuQ,IAAA,EAAyBO,MAAAA,GAAoB,WAAA,QAAM,IAA/D,MAAyEvR,OAAAuR,GAAAvR,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,EAAAX,SAAAQ,KAAxFG,IAAA,gBAAAF,EAACuC,GAAA,EAAS,MAAA,KAAKxC,UAAAA,GAA0E,GAAMR,OAAAQ,GAAAR,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,EAAAb,SAAAwR,KAChF3Q,IAAA2Q,IAAO,gBAAA/Q,EAACuQ,IAAA,EAAyBQ,MAAAA,GAAgB,WAAA,QAAM,IAAvD,MAAiExR,OAAAwR,GAAAxR,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAsC;AAAA,EAAAtC,SAAAa,KAAhFyB,IAAA,gBAAA7B,EAACuC,GAAA,EAAS,MAAA,KAAKnC,UAAAA,GAAkE,GAAMb,OAAAa,GAAAb,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AAAA,MAAAuC;AAAA,SAAAvC,EAAA,CAAA,MAAAW,KAAAX,SAAAsC,KAFzFC,sBAACsH,GAAA,EAAe,SAAA,iBAAoB,KAAA,KAClClJ,UAAAA;AAAAA,IAAAA;AAAAA,IACA2B;AAAAA,EAAAA,GACF,GAAStC,OAAAW,GAAAX,OAAAsC,GAAAtC,QAAAuC,KAAAA,IAAAvC,EAAA,EAAA,GAHTuC;AAGS,GCvDAkP,KAAc3R,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACzB;AAAA,IAAAC,UAAAA;AAAAA,IAAAK,OAAAA;AAAAA,IAAAmR,aAAAlR;AAAAA,IAAAmR,QAAAA;AAAAA,EAAAA,IAAwD7R,GAA/B4R,IAAAlR,MAAA2B,SAAA,KAAA3B;AAAkB,MAAAG;AAAA,EAAAX,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAM3BhC,IAAA;AAAA,IAAAiR,YACM;AAAA,EAAA,GACb5R,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,EAAAb,SAAAO,KAWAM,IAAAN,KACC,gBAAAE,EAACyC,GAAA,EAAgB,YAAA,OAAgB,WAAA,+BAEjC,GACDlD,OAAAO,GAAAP,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAsC;AAAA,EAAAtC,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KACDL,sCAAkC,YAAA,kBAAwB,OAAA;AAAA,IAAA2F,WAAa;AAAA,EAAA,GACrE,UAAA,gBAAAxH,EAAC4E,IAAA,EAAmB,MAAA,IAAE,GACxB,GAAwBrF,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AAAA,MAAAuC;AAAA,EAAAvC,SAAAa,KArB1B0B,IAAA,gBAAA3B,EAAA6O,GAAA,SAAA,EACU,QAAA9O,GAGM,cAAA,MACN,SAAA,MACD,QAAA,QACC,SAAA,QACF,OAAA,QACF,KAAA,KACO,YAAA,UACJ,QAAA,WACQ,gBAAA,iBAEdE,UAAAA;AAAAA,IAAAA;AAAAA,IAKDyB;AAAAA,EAAAA,GAGF,GAAsBtC,OAAAa,GAAAb,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAAA,MAAAwC;AAAA,EAAAxC,SAAA2R,KACrBnP,IAAAmP,KACC,gBAAAlR,EAACuC,GAAA,EAAe,YAAA,QAAgB,SAAAiG,iBAEhC,GACDjJ,OAAA2R,GAAA3R,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAAA,MAAAsF;AAAA,EAAAtF,EAAA,CAAA,MAAAuC,KAAAvC,SAAAwC,KA5BH8C,sBAACqD,IAAA,EACCpG,UAAAA;AAAAA,IAAAA;AAAAA,IAuBCC;AAAAA,EAAAA,GAKH,GAAOxC,OAAAuC,GAAAvC,OAAAwC,GAAAxC,QAAAsF,KAAAA,IAAAtF,EAAA,EAAA;AAAA,MAAAwF;AAAA,EAAAxF,UAAAE,KACPsF,IAAA,gBAAA/E,EAAAgP,GAAA,SAAA,EAAsBvP,UAAAA,EAAAA,CAAS,GAAsBF,QAAAE,GAAAF,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA;AAAA,MAAA0F;AAAA,SAAA1F,EAAA,EAAA,MAAA0R,KAAA1R,UAAAsF,KAAAtF,EAAA,EAAA,MAAAwF,KA/BvDE,iCAA+BgM,aAAAA,GAAmB,OAAA,QAChDpM,UAAAA;AAAAA,IAAAA;AAAAA,IA8BAE;AAAAA,EAAAA,GACF,GAAmBxF,QAAA0R,GAAA1R,QAAAsF,GAAAtF,QAAAwF,GAAAxF,QAAA0F,KAAAA,IAAA1F,EAAA,EAAA,GAhCnB0F;AAgCmB;AApCI,SAAAuD,GAAA4I,GAAA;AAAA,SA8BsBA,EAAC1M,gBAAAA;AAAkB;AChCpE,MAAM2M,KAAwB;AAAA,EAC5BC,SAAS;AAAA,IACPC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,WAAW;AAAA,IACXC,UAAU;AAAA,IACVC,kBAAkB;AAAA,IAClBC,qBAAqB;AAAA,IACrBC,oBAAoB;AAAA,EAAA;AAAA,EAEtBC,SAAS;AAAA,IACPP,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,WAAW;AAAA,IACXC,UAAU;AAAA,IACVC,kBAAkB;AAAA,IAClBC,qBAAqB;AAAA,IACrBC,oBAAoB;AAAA,EAAA;AAExB,GAiCaE,KAAW1S,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACtB;AAAA,IAAAkL,IAAAA;AAAAA,IAAAsH,cAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,IAAAC,UAAApS;AAAAA,IAAAqS,UAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,eAAApS;AAAAA,IAAAqS,gBAAAnS;AAAAA,IAAAoS,cAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAC,oBAAAA;AAAAA,IAAAC,mBAAAA;AAAAA,IAAAC,kBAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,iBAAAnR;AAAAA,IAAAoR,YAAAnR;AAAAA,IAAAgK,SAAA/J;AAAAA,IAAAmR,UAAAA;AAAAA,IAAA5Q,OAAAA;AAAAA,IAAA6Q,UAAAA;AAAAA,IAAAC,eAAAA;AAAAA,EAAAA,IAyBI/T,GApBF8S,IAAApS,MAAA2B,SAAA,OAAA3B,GAGAuS,IAAApS,MAAAwB,SAAA,yBAAAxB,GACAqS,IAAAnS,MAAAsB,SAAA,yBAAAtB,GASA4S,IAAAnR,MAAAH,SAAA,WAAAG,GACAoR,IAAAnR,MAAAJ,SAAA,WAAAI,GACAgK,IAAA/J,MAAAL,SAAA,YAAAK,GAMF;AAAA,IAAAb,SAAAA;AAAAA,IAAAmS,aAAAA;AAAAA,IAAAC,cAAAA;AAAAA,EAAAA,IAA+CjU,GAC/CkU,IAAsBlC,GAAsBvF,CAAO,GACnD0H,IAAwBV,IAAA,0BAAA,wBACxBW,IAA6BjB,KAAgBe,EAAa7B,UAC1DgC,IAA8BjB,KAAiBc,EAAa7B,UAC5DiC,IAA+B3S,GAAQ4R,KAAAP;AAA+B,MAAAxN;AAAA,EAAAtF,SAAAoU,KAErC9O,IAAAJ,CAAAA,OAAA;AAC/B,IAAKkP,MAILlP,GAAKmP,eAAAA,GACLnP,GAAKC,gBAAAA;AAAAA,EAAkB,GACxBnF,OAAAoU,GAAApU,OAAAsF,KAAAA,IAAAtF,EAAA,CAAA;AAPD,QAAAsU,IAAiChP;AAO/B,MAAAE;AAAA,EAAAxF,EAAA,CAAA,MAAAoU,KAAApU,SAAAqT,KAE2B7N,KAAA+O,CAAAA,OAAA;AAC3B,IAAI,CAACH,KAAD,CAA4Bf,MAIhCnO,GAAKmP,eAAAA,GACLnP,GAAKC,gBAAAA,GACLkO,EAAAA;AAAAA,EAAkB,GACnBrT,OAAAoU,GAAApU,OAAAqT,GAAArT,OAAAwF,MAAAA,KAAAxF,EAAA,CAAA;AARD,QAAAwU,IAA6BhP,IA0BfE,KAAAkO,KAAA,SAGFjO,IAAA2N,IAAA,YAAA,WACDzN,IAAAsF,KAAAsH;AAAkB,MAAA1M,GAAAI;AAAA,EAAAnG,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAEjBoD,IAAA;AAAA,IAAA0O,IAAM;AAAA,EAAA,GACNtO,KAAA;AAAA,IAAAsO,IAAM;AAAA,EAAA,GAAsBzU,OAAA+F,GAAA/F,OAAAmG,OAAAJ,IAAA/F,EAAA,CAAA,GAAAmG,KAAAnG,EAAA,CAAA;AAAA,MAAAoP;AAAA,EAAApP,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAGZyM,KAAA;AAAA,IAAAsF,WAAa;AAAA,EAAA,GAAS1U,OAAAoP,MAAAA,KAAApP,EAAA,CAAA;AAAmC,QAAAqP,MAACqD;AAAY,MAAApD;AAAA,EAAAtP,EAAA,CAAA,MAAA4S,KAAA5S,EAAA,CAAA,MAAA+S,KAAA/S,EAAA,EAAA,MAAA6S,KAAA7S,UAAAkU,KAGrF5E,KAAAuD,MAEGD,IACF,gBAAAnS,EAACwO,IAAA,EAAS2D,IAAAA,GAAmBsB,SAAAA,GAA6BnB,OAAAA,EAAAA,CAAa,IADrE,OAEI/S,OAAA4S,GAAA5S,OAAA+S,GAAA/S,QAAA6S,GAAA7S,QAAAkU,GAAAlU,QAAAsP,MAAAA,KAAAtP,EAAA,EAAA;AAAA,MAAAuP;AAAA,EAAAvP,UAAAyS,KAAAzS,EAAA,EAAA,MAAAgU,EAAA5B,oBACR7C,KAAA,gBAAA9O,EAACyC,KAAgB,WAAA,GAAgB,cAAA,YAAsB,WAAA8Q,EAAa5B,kBACjEK,UAAAA,EAAAA,CACH,GAAOzS,QAAAyS,GAAAzS,EAAA,EAAA,IAAAgU,EAAA5B,kBAAApS,QAAAuP,MAAAA,KAAAvP,EAAA,EAAA;AAAA,MAAAwP;AAAA,EAAAxP,EAAA,EAAA,MAAAsP,MAAAtP,UAAAuP,MARTC,uBAAC7G,IAAA,EAAgB,YAAA,cAAiB,KAAA,MAAU,MAAA,KACzC2G,UAAAA;AAAAA,IAAAA;AAAAA,IAKDC;AAAAA,EAAAA,GAGF,GAAOvP,QAAAsP,IAAAtP,QAAAuP,IAAAvP,QAAAwP,MAAAA,KAAAxP,EAAA,EAAA;AAAA,MAAA0P;AAAA,EAAA1P,EAAA,EAAA,MAAA2S,KAAA3S,EAAA,EAAA,MAAAgU,EAAA3B,uBAAArS,EAAA,EAAA,MAAAgU,EAAA1B,sBACN5C,KAAAiD,KACC,gBAAAlS,EAACyC,GAAA,EACK,IAAA8Q,EAAa3B,qBACN,cACE,cAAA,YACF,WAAA2B,EAAa1B,oBAClB,OAAA,uCAGR,GACDtS,QAAA2S,GAAA3S,EAAA,EAAA,IAAAgU,EAAA3B,qBAAArS,EAAA,EAAA,IAAAgU,EAAA1B,oBAAAtS,QAAA0P,MAAAA,KAAA1P,EAAA,EAAA;AAAA,MAAA6P;AAAA,EAAA7P,EAAA,EAAA,MAAAwP,MAAAxP,UAAA0P,MArBHG,KAAA,gBAAAjP,EAACoD,GAAA,EAAU,KAAA,OACTwL,UAAAA;AAAAA,IAAAA;AAAAA,IAUCE;AAAAA,EAAAA,GAWH,GAAQ1P,QAAAwP,IAAAxP,QAAA0P,IAAA1P,QAAA6P,MAAAA,KAAA7P,EAAA,EAAA;AAAA,MAAA8P;AAAA,EAAA9P,EAAA,EAAA,MAAAqP,MAAArP,UAAA6P,MAAA7P,EAAA,EAAA,MAAA0S,KAvBV5C,KAAA,gBAAArP,EAACkU,MAAqB,aAAAvF,IAAiCsD,SAAAA,GAAwB,UAAArD,IAC7EQ,UAAAA,GAAAA,CAuBF,GAAU7P,QAAAqP,IAAArP,QAAA6P,IAAA7P,QAAA0S,GAAA1S,QAAA8P,MAAAA,KAAA9P,EAAA,EAAA;AAAA,MAAA+P;AAAA,EAAA/P,EAAA,EAAA,MAAAwU,KAAAxU,EAAA,EAAA,MAAAsU,KAAAtU,EAAA,EAAA,MAAAoU,KAAApU,EAAA,EAAA,MAAAmU,KAAAnU,EAAA,EAAA,MAAA8S,KAAA9S,EAAA,EAAA,MAAAmT,KAAAnT,EAAA,EAAA,MAAAgT,KAAAhT,UAAAoT,KAEPrD,KAAA+C,IACC,gBAAArS,EAACkU,IAAA,EAAqB,aAAA;AAAA,IAAAD,WAAa;AAAA,EAAA,GAAoBtB,YAA6B,UAAA,CAACA,GACnF,4BAACzK,IAAA,EACK,IAAAyL,IAAA,WAAA,OACO,YAAA,UACCjB,cAAAA,GACJ,QAAAiB,IAAA,YAAA,WACL,IAAA,eACS,aAAA,KACJ,SAAA,KACKE,aAAAA,GACJE,YAET,UAAA,gBAAA/T,EAACwO,IAAA,EAAS6D,IAAAA,GAAoBqB,SAAAA,GAA8BnB,UAAc,EAAA,CAC5E,GACF,IAfD,MAgBOhT,QAAAwU,GAAAxU,QAAAsU,GAAAtU,QAAAoU,GAAApU,QAAAmU,GAAAnU,QAAA8S,GAAA9S,QAAAmT,GAAAnT,QAAAgT,GAAAhT,QAAAoT,GAAApT,QAAA+P,MAAAA,KAAA/P,EAAA,EAAA;AAAA,MAAAgQ;AAAA,EAAAhQ,UAAA+P,MAjBVC,uBAACrH,IAAA,EAAoB,gBAAA,YAAiB,OAAA,wBACnCoH,UAAAA,IAiBH,GAAO/P,QAAA+P,IAAA/P,QAAAgQ,MAAAA,KAAAhQ,EAAA,EAAA;AAAA,MAAAiQ;AAAA,EAAAjQ,EAAA,EAAA,MAAA8P,MAAA9P,UAAAgQ,MA5CTC,KAAA,gBAAArP,EAAC+H,MAAoB,gBAAA,iBAA2B,YAAA,UAAa,KAAA,MAAU,MAAA,KACrEmH,UAAAA;AAAAA,IAAAA;AAAAA,IAyBAE;AAAAA,EAAAA,GAmBF,GAAOhQ,QAAA8P,IAAA9P,QAAAgQ,IAAAhQ,QAAAiQ,MAAAA,KAAAjQ,EAAA,EAAA;AAAA,MAAAkQ;AAAA,EAAAlQ,EAAA,EAAA,MAAAyT,KAAAzT,UAAAwT,KAAAxT,EAAA,EAAA,MAAA0T,KACNxD,KAAAsD,IACC,gBAAA/S,EAAC0I,IAAA,EACU,UAAA,YACL,KAAA,MACE,OAAA,MACI,WAAA,mBACP,IAAA,MACA,IAAA,OACU,cAAA,MACCsK,cAAAA,GACLC,YACK,eAAA,QAEbF,UAAAA,EAAAA,CACH,IAdD,MAeOxT,QAAAyT,GAAAzT,QAAAwT,GAAAxT,QAAA0T,GAAA1T,QAAAkQ,MAAAA,KAAAlQ,EAAA,EAAA;AAAA,MAAAmQ;AAAA,SAAAnQ,EAAA,EAAA,MAAAiU,KAAAjU,UAAAmL,KAAAnL,EAAA,EAAA,MAAAsT,KAAAtT,EAAA,EAAA,MAAAuT,KAAAvT,EAAA,EAAA,MAAA2B,KAAA3B,EAAA,EAAA,MAAA8T,KAAA9T,UAAA+T,KAAA/T,EAAA,EAAA,MAAA6T,KAAA7T,EAAA,EAAA,MAAA6F,KAAA7F,EAAA,EAAA,MAAAiQ,MAAAjQ,EAAA,EAAA,MAAAkQ,MAAAlQ,UAAA0F,MAAA1F,EAAA,EAAA,MAAA2F,KAAA3F,EAAA,EAAA,MAAA2T,KAAA3T,EAAA,EAAA,MAAAgU,EAAA9B,aAAAlS,EAAA,EAAA,MAAAgU,EAAAhC,YAAAhS,EAAA,EAAA,MAAAgU,EAAA/B,YAAAjS,UAAA+C,KArFVoN,uBAACyE,IAAA,EACKzJ,IAAAA,GACC0I,KAAAA,GACKF,UAAAA,GACAL,UAAAA,GACKC,iBAAAA,GACL,UAAAS,EAAahC,UACb,UAAAgC,EAAa/B,UACdtQ,SAAAA,GACImS,aAAAA,GACCC,cAAAA,GACP,QAAA,QACI,WAAAC,EAAa9B,WACnB,MAAA,UACEnP,OAAAA,GACG,UAAA2C,IACA,UAAA,UACD,UAAA,YACD,QAAAC,GACD,OAAAE,GACHoO,IAAAA,GACI,QAAAlO,GACA,QAAAI,IAER8J,UAAAA;AAAAA,IAAAA;AAAAA,IA8CCC;AAAAA,EAAAA,GAgBH,GAAiBlQ,QAAAiU,GAAAjU,QAAAmL,GAAAnL,QAAAsT,GAAAtT,QAAAuT,GAAAvT,QAAA2B,GAAA3B,QAAA8T,GAAA9T,QAAA+T,GAAA/T,QAAA6T,GAAA7T,QAAA6F,GAAA7F,QAAAiQ,IAAAjQ,QAAAkQ,IAAAlQ,QAAA0F,IAAA1F,QAAA2F,GAAA3F,QAAA2T,GAAA3T,EAAA,EAAA,IAAAgU,EAAA9B,WAAAlS,EAAA,EAAA,IAAAgU,EAAAhC,UAAAhS,EAAA,EAAA,IAAAgU,EAAA/B,UAAAjS,QAAA+C,GAAA/C,QAAAmQ,MAAAA,KAAAnQ,EAAA,EAAA,GAtFjBmQ;AAsFiB,GCtMf0E,KAAyB;AAAA,EAC7B9C,SAAS;AAAA,IACPhP,OAAO;AAAA,IACP+R,cAAc;AAAA,IACdC,eAAe;AAAA,IACfC,iBAAiB;AAAA,IACjBC,gBAAgB;AAAA,IAChBC,YAAY;AAAA,EAAA;AAAA,EAEd3C,SAAS;AAAA,IACPxP,OAAO;AAAA,IACP+R,cAAc;AAAA,IACdC,eAAe;AAAA,IACfC,iBAAiB;AAAA,IACjBC,gBAAgB;AAAA,IAChBC,YAAY;AAAA,EAAA;AAEhB;AAQO,SAAAC,GAAArV,GAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACL;AAAA,IAAAM,OAAAA;AAAAA,IAAAL,UAAAA;AAAAA,IAAAqM,SAAA/L;AAAAA,EAAAA,IAAiDV,GACjDsV,IAAeP,GADUrU,MAAA2B,SAAA,YAAA3B,CACoB;AAAE,MAAAG;AAAA,EAAAX,SAAAoV,EAAAN,gBAAA9U,SAAAoV,EAAAL,iBAAA/U,SAAAoV,EAAAJ,mBAAAhV,SAAAO,KAI1CI,IAAAJ,uBACEoI,IAAA,EAAa,QAAAyM,EAAMN,cAAkB,GAAAM,EAAML,eAAkC,mBAAA,OAAiB,YAAA,UAC7F,UAAA,gBAAAtU,EAACyC,GAAA,EAAQ,IAAA,KAAe,WAAAkS,EAAMJ,iBAAwB,OAAA,YACnDzU,UAAAA,EAAAA,CACH,EAAA,CACF,GACDP,EAAA,CAAA,IAAAoV,EAAAN,cAAA9U,EAAA,CAAA,IAAAoV,EAAAL,eAAA/U,EAAA,CAAA,IAAAoV,EAAAJ,iBAAAhV,OAAAO,GAAAP,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,EAAAb,EAAA,CAAA,MAAAE,KAAAF,EAAA,CAAA,MAAAoV,EAAAF,cAAAlV,EAAA,CAAA,MAAAoV,EAAAH,kBAEApU,IAAAX,KACC,gBAAAO,EAAC2F,IAAA,EAAgB,MAAA,KAAS,MAAA,KAAkB,cAAA;AAAA,IAAAqB,GAAK2N,EAAMH;AAAAA,IAAevN,QAAU0N,EAAMF;AAAAA,EAAAA,GACnFhV,UAAAA,EAAAA,CACH,GACDF,OAAAE,GAAAF,EAAA,CAAA,IAAAoV,EAAAF,YAAAlV,EAAA,CAAA,IAAAoV,EAAAH,gBAAAjV,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAsC;AAAA,SAAAtC,EAAA,CAAA,MAAAoV,EAAArS,SAAA/C,EAAA,EAAA,MAAAW,KAAAX,EAAA,EAAA,MAAAa,KAbHyB,IAAA,gBAAA1B,EAACoD,GAAA,EAAuB,kBAAA,OAAa,OAAAoR,EAAMrS,OAAY,KAAA,KAAS,MAAA,KAC7DpC,UAAAA;AAAAA,IAAAA;AAAAA,IAQAE;AAAAA,EAAAA,GAKH,GAAQb,EAAA,CAAA,IAAAoV,EAAArS,OAAA/C,QAAAW,GAAAX,QAAAa,GAAAb,QAAAsC,KAAAA,IAAAtC,EAAA,EAAA,GAdRsC;AAcQ;ACvBZ,MAAM+S,KAAmBvV,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACvB;AAAA,IAAAoB,MAAAA;AAAAA,IAAAiU,YAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,EAAAA,IAA4D1V;AAAM,MAAAU;AAAA,EAAAR,EAAA,CAAA,MAAAqB,EAAAL,SACjDR,IAAAa,EAAIL,SAAJ,CAAA,GAAgBhB,EAAA,CAAA,IAAAqB,EAAAL,OAAAhB,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAjC,QAAAE,IAAiBM,GACjBiV,IAAoBvV,EAAQkB,SAAU;AAEtC,MAAI,CAACqU,KAAepU,EAAIkI,MAAK;AAC3B,UAAAA,IAAalI,EAAIkI,MACjB8C,IAAiBhL,EAAIkI,SAAU+L;AAAW,QAAA3U;AAAA,IAAAX,EAAA,CAAA,MAAAuJ,KAAAvJ,SAAAuV,KAG8C5U,IAAAA,MAAM4U,EAAahM,CAAI,GAACvJ,OAAAuJ,GAAAvJ,OAAAuV,GAAAvV,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,QAAAa;AAAA,WAAAb,EAAA,CAAA,MAAAqM,KAAArM,EAAA,CAAA,MAAAqB,EAAA4J,QAAAjL,EAAA,CAAA,MAAAW,KAD9GE,IAAA,gBAAAJ,EAAAiV,GAAA,MAAA,EACE,4BAAClD,IAAA,EAAuB,cAAAnR,EAAI4J,MAAmBoB,YAAAA,GAAkB,SAAA,WAAmB,SAAA1L,GAAwB,GAC9G,GAAYX,OAAAqM,GAAArM,EAAA,CAAA,IAAAqB,EAAA4J,MAAAjL,OAAAW,GAAAX,OAAAa,KAAAA,IAAAb,EAAA,CAAA,GAFZa;AAAAA,EAEY;AAIhB,MAAI,CAAC4U,GAAW;AAAA,QAAA9U;AAAA,WAAAX,EAAA,CAAA,MAAAqB,EAAA4J,QAEZtK,IAAA,gBAAAF,EAAAiV,GAAA,MAAA,EACE,UAAA,gBAAAjV,EAAC+R,IAAA,EAAuB,cAAAnR,EAAI4J,MAAO,YAAA,IAAmB,SAAA,WAAS,GACjE,GAAYjL,EAAA,CAAA,IAAAqB,EAAA4J,MAAAjL,QAAAW,KAAAA,IAAAX,EAAA,EAAA,GAFZW;AAAAA,EAEY;AAEf,MAAAA;AAAA,EAAAX,EAAA,EAAA,MAAAqB,KAAArB,UAAAwV,KAEmB7U,IAAA6U,IAAkBnU,CAAa,KAA/B,IAAgCrB,QAAAqB,GAAArB,QAAAwV,GAAAxV,QAAAW,KAAAA,IAAAX,EAAA,EAAA;AAApD,QAAA0R,IAAoB/Q,GAGEE,IAAAQ,EAAI4J;AAAK,MAAA3I;AAAA,MAAAtC,EAAA,EAAA,MAAAsV,KAAAtV,EAAA,EAAA,MAAAE,KAAAF,EAAA,EAAA,MAAAuV,KAAAvV,UAAAwV,GAAA;AAAA,QAAAjT;AAAA,IAAAvC,EAAA,EAAA,MAAAsV,KAAAtV,UAAAuV,KAAAvV,EAAA,EAAA,MAAAwV,KACbjT,IAAAA,CAAAoT,GAAArU,MACZ,gBAAAb,EAAC4U,IAAA,EAEOM,MAAAA,GACML,YAAAA,GACEC,cAAAA,GACGC,iBAAAA,KAJZ,GAAGG,EAAK1K,IAAK,IAAI0K,EAAKpM,QAALjI,CAAmB,EAIT,GAEnCtB,QAAAsV,GAAAtV,QAAAuV,GAAAvV,QAAAwV,GAAAxV,QAAAuC,KAAAA,IAAAvC,EAAA,EAAA,GARAsC,IAAApC,EAAQ4B,IAAKS,CAQb,GAACvC,QAAAsV,GAAAtV,QAAAE,GAAAF,QAAAuV,GAAAvV,QAAAwV,GAAAxV,QAAAsC;AAAAA,EAAA;AAAAA,IAAAA,IAAAtC,EAAA,EAAA;AAAA,MAAAuC;AAAA,SAAAvC,EAAA,EAAA,MAAA0R,KAAA1R,EAAA,EAAA,MAAAqB,EAAA4J,QAAAjL,EAAA,EAAA,MAAAsC,KATJC,sBAACkP,IAAA,EAAmB,OAAA5Q,GAAwB6Q,aAAAA,GACzCpP,UAAAA,GASH,GAActC,QAAA0R,GAAA1R,EAAA,EAAA,IAAAqB,EAAA4J,MAAAjL,QAAAsC,GAAAtC,QAAAuC,KAAAA,IAAAvC,EAAA,EAAA,GAVduC;AAUc,GAILqT,KAAc9V,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA,GACzB;AAAA,IAAAM,OAAAA;AAAAA,IAAAsV,cAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAR,YAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,EAAAA,IAAsF1V;AAAM,MAAAU;AAAA,EAAAR,EAAA,CAAA,MAAAsV,KAAAtV,EAAA,CAAA,MAAA6V,KAAA7V,EAAA,CAAA,MAAA8V,KAAA9V,EAAA,CAAA,MAAAuV,KAAAvV,SAAAwV,KAIvFhV,IAAAsV,EAAS1U,WAAY,IACpB,gBAAAX,EAACyC,KAAe,WAAA,uBAA4B,OAAA,YAAa,GAAA,MACtD2S,UAAAA,KAAA,iBAAA,CACH,IAEAC,EAAShU,IAAK,CAAAT,GAAAC,MACZ,gBAAAb,EAAC4U,IAAA,EAEOhU,MAAAA,GACMiU,YAAAA,GACEC,cAAAA,GACGC,iBAAAA,EAAAA,GAJZ,GAAGnU,EAAI4J,IAAK,IAAI5J,EAAIkI,QAAJjI,CAAkB,GAO7C,GAACtB,OAAAsV,GAAAtV,OAAA6V,GAAA7V,OAAA8V,GAAA9V,OAAAuV,GAAAvV,OAAAwV,GAAAxV,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,SAAAX,EAAA,CAAA,MAAAQ,KAAAR,SAAAO,KAfHI,sBAACwU,IAAA,EAAiB5U,OAAAA,GAAe,SAAA,WAC9BC,UAAAA,GAeH,GAAYR,OAAAQ,GAAAR,OAAAO,GAAAP,OAAAW,KAAAA,IAAAX,EAAA,CAAA,GAhBZW;AAgBY;ACtET,MAAMoV,WAAsBC,GAAkD;AAAA,EACnFC,QAA4B;AAAA,IAAEC,OAAO;AAAA,EAAA;AAAA,EAErC,OAAOC,yBAAyBD,GAAc;AAC5C,WAAO;AAAA,MAAEA,OAAAA;AAAAA,IAAAA;AAAAA,EACX;AAAA,EAEAE,kBAAkBF,GAAcG,GAAiB;AAC/CC,YAAQJ,MAAM,4CAA4CA,GAAOG,CAAI;AAAA,EACvE;AAAA,EAEAE,cAAcA,MAAM;AAClB,SAAKC,SAAS;AAAA,MAAEN,OAAO;AAAA,IAAA,CAAM,GAC7B,KAAKpW,MAAM2W,UAAAA;AAAAA,EACb;AAAA,EAEAC,SAAS;AACP,UAAM;AAAA,MAAExW,UAAAA;AAAAA,MAAUyW,UAAAA;AAAAA,MAAUC,OAAAA;AAAAA,IAAAA,IAAU,KAAK9W,OACrC;AAAA,MAAEoW,OAAAA;AAAAA,IAAAA,IAAU,KAAKD;AAEvB,WAAIC,IACES,uBAIIE,IAAA,EAAc,OAAAX,GAAc,OAAAU,GAAc,SAAS,KAAKL,aAAY,IAGvErW;AAAAA,EACT;AACF;AAQO,MAAM2W,KAAgB/W,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GAC3B;AAAA,IAAAiW,OAAAA;AAAAA,IAAAU,OAAAA;AAAAA,IAAAH,SAAAA;AAAAA,EAAAA,IAAkC3W,GAOmBU,IAAAoW,KAAA;AAA+B,MAAAjW;AAAA,EAAAX,SAAAQ,KAArEG,IAAA,gBAAAF,EAACyC,GAAA,EAAe,WAAA,sBAAsB1C,UAAAA,GAAgC,GAAOR,OAAAQ,GAAAR,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAI/E,QAAAa,IAAAqV,EAAKY,WAAL;AAA6E,MAAAxU;AAAA,EAAAtC,SAAAa,KADhFyB,IAAA,gBAAA7B,EAACyC,GAAA,EAAe,WAAA,uBACbrC,UAAAA,GACH,GAAOb,OAAAa,GAAAb,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AAAA,MAAAuC;AAAA,EAAAvC,SAAAyW,KACNlU,IAAAkU,IACC,gBAAAhW,EAACwD,IAAA,EAAY,MAAA,MAAa,SAAA,SAAqB,aAAA,SAAkBwS,SAAAA,GAAS,UAAA,YAAA,CAE1E,IAHD,MAIOzW,OAAAyW,GAAAzW,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAAA,MAAAwC;AAAA,EAAAxC,EAAA,CAAA,MAAAsC,KAAAtC,SAAAuC,KARVC,IAAA,gBAAA5B,EAACoD,GAAA,EAAU,KAAA,MACT1B,UAAAA;AAAAA,IAAAA;AAAAA,IAGCC;AAAAA,EAAAA,GAKH,GAAQvC,OAAAsC,GAAAtC,OAAAuC,GAAAvC,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAAA,MAAAsF;AAAA,SAAAtF,EAAA,CAAA,MAAAW,KAAAX,UAAAwC,KAfd8C,sBAAC7C,IAAA,EAA0B,QAAA,QAAa,OAAA,QACtC,UAAA,gBAAAhC,EAACsW,IAAA,EACC,UAAA,gBAAAtW,EAACd,IAAA,EACQ,QAAA,SACA,OAAAgB,GAEP6B,UAAAA,GAUF,GACF,EAAA,CACF,GAAqBxC,OAAAW,GAAAX,QAAAwC,GAAAxC,QAAAsF,KAAAA,IAAAtF,EAAA,EAAA,GAlBrBsF;AAkBqB,GC7CnB0R,KAAeA,CAAC3O,MACfA,EAAM4O,cACP5O,EAAM6O,YAAkBC,KACrBC,KAFwBlI,IAY3BmI,KAAwBvX,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GAC5B;AAAA,IAAAoI,OAAAA;AAAAA,IAAAiP,cAAAA;AAAAA,IAAAC,iBAAAA;AAAAA,IAAAC,cAAAA;AAAAA,EAAAA,IAA+D1X;AAAM,MAAAU;AAAA,EAAAR,EAAA,CAAA,MAAAqI,EAAA6O,aAAAlX,EAAA,CAAA,MAAAqI,EAAAlE,QAAAnE,SAAAuX,KAC3C/W,IAAA6H,EAAK6O,aAAcK,EAAeE,IAAKpP,EAAKlE,IAAK,GAACnE,EAAA,CAAA,IAAAqI,EAAA6O,WAAAlX,EAAA,CAAA,IAAAqI,EAAAlE,MAAAnE,OAAAuX,GAAAvX,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAA5E,QAAA0X,IAA0BlX,GAC1B8S,IAAmB,CAACjL,EAAK4O,eAANS;AAAwC,MAAA/W;AAAA,EAAAX,EAAA,CAAA,MAAAqI,KAAArI,SAAA0X,KAAA1X,EAAA,CAAA,MAAAwX,KAEvC7W,IAAAA,MAAA;AAClB,IAAI+W,KAIJF,EAAanP,CAAK;AAAA,EAAC,GACpBrI,OAAAqI,GAAArI,OAAA0X,GAAA1X,OAAAwX,GAAAxX,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAND,QAAA2X,IAAoBhX,GAWAE,IAAAwH,EAAKuP;AAAK,MAAAtV;AAAA,EAAAtC,SAAAqI,KACd/F,IAAA0U,GAAa3O,CAAK,GAACrI,OAAAqI,GAAArI,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AACnB,QAAAuC,IAAA8F,EAAK6O,YAAL,aAAA/U,QACOK,IAAA6F,EAAK6O,YAAL,UAAA/U,QAELmD,IAAAgS,MAAiBjP,EAAKlE;AAAK,MAAAqB;AAAA,SAAAxF,EAAA,EAAA,MAAAqI,EAAAuP,QAAA5X,EAAA,EAAA,MAAA2X,KAAA3X,EAAA,EAAA,MAAAsT,KAAAtT,EAAA,EAAA,MAAAsC,KAAAtC,EAAA,EAAA,MAAAuC,KAAAvC,EAAA,EAAA,MAAAwC,KAAAxC,EAAA,EAAA,MAAAsF,KAP3CE,IAAA,gBAAA/E,EAAAiV,GAAA,MAAA,EACE,4BAAClD,IAAA,EACe,cAAA3R,GACJ,UAAAyB,GACA,UAAAC,GACO,iBAAAC,GACL8Q,YAAAA,GACA,YAAAhO,GACN,OAAA,QACG,UAAA,QACAqS,SAAAA,EAAAA,CAAW,EAAA,CAExB,GAAY3X,EAAA,EAAA,IAAAqI,EAAAuP,MAAA5X,QAAA2X,GAAA3X,QAAAsT,GAAAtT,QAAAsC,GAAAtC,QAAAuC,GAAAvC,QAAAwC,GAAAxC,QAAAsF,GAAAtF,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA,GAZZwF;AAYY,GAIHqS,KAAqB/X,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GAChC;AAAA,IAAA0D,MAAAA;AAAAA,IAAApD,OAAAC;AAAAA,IAAAsI,aAAAA;AAAAA,IAAAgP,aAAAnX;AAAAA,IAAAkI,SAAAA;AAAAA,IAAAyO,cAAAzW;AAAAA,IAAAkX,eAAAzV;AAAAA,IAAA0V,WAAAzV;AAAAA,IAAA2T,OAAA1T;AAAAA,IAAAyV,kBAAA3S;AAAAA,IAAA1B,SAAAA;AAAAA,IAAA4I,UAAAA;AAAAA,IAAA0L,uBAAAA;AAAAA,IAAAC,yBAAAA;AAAAA,IAAAX,cAAAA;AAAAA,EAAAA,IAgBI1X,GAdFS,IAAAC,MAAA2B,SAAA,kBAAA3B,GAEAsX,IAAAnX,MAAAwB,SAAA,KAAAxB,GAEA2W,IAAAzW,MAAAsB,SAAA,OAAAtB;AAAmB,MAAA2E;AAAA,EAAAxF,SAAAsC,KACnBkD,IAAAlD,MAAAH,SAAA,CAAA,IAAAG,GAAkBtC,OAAAsC,GAAAtC,OAAAwF,KAAAA,IAAAxF,EAAA,CAAA;AAAlB,QAAA+X,IAAAvS,GACAwS,IAAAzV,MAAAJ,SAAA,KAAAI,GACA2T,IAAA1T,MAAAL,SAAA,KAAAK,GACAyV,IAAA3S,MAAAnD,SAAA,KAAAmD;AAAwB,MAAAI;AAAA,EAAA1F,SAAA+X,KAQFrS,IAAA,IAAI0S,IAAIL,CAAa,GAAC/X,OAAA+X,GAAA/X,OAAA0F,KAAAA,IAAA1F,EAAA,CAAA;AAA9C,QAAAuX,IAAwB7R;AAAuB,MAAAC;AAAA,EAAA3F,SAAA4D,KAGyB+B,IAAAqJ,CAAAA,OAAa,CAACA,GAAOrL,QAASC,EAAAA,GAAS5D,OAAA4D,GAAA5D,OAAA2F,KAAAA,IAAA3F,EAAA,CAAA;AAAA,MAAA6F;AAAA,EAAA7F,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAC3GkD,IAAA,gBAAApF,EAAAqD,EAAA,UAAA,CAAA,CAAA,GAAmB9D,OAAA6F,KAAAA,IAAA7F,EAAA,CAAA;AAAA,MAAA+F;AAAA,EAAA/F,SAAAO,KAKXwF,IAAA,gBAAAtF,EAACyC,GAAA,EAAe,WAAA,aAAa3C,UAAAA,GAAM,GAAOP,OAAAO,GAAAP,OAAA+F,KAAAA,IAAA/F,EAAA,CAAA;AAAA,MAAAmG;AAAA,EAAAnG,SAAA8I,KACzC3C,IAAA2C,sBACE5F,GAAA,EAAe,WAAA,uBAA4B,OAAA,YACzC4F,aACH,IAHD,MAIO9I,OAAA8I,GAAA9I,QAAAmG,KAAAA,IAAAnG,EAAA,EAAA;AAAA,MAAAoP;AAAA,EAAApP,EAAA,EAAA,MAAA+F,KAAA/F,UAAAmG,KAPZiJ,kCACE,UAAA,gBAAAxO,EAACoD,GAAA,EAAU,KAAA,MACT+B,UAAAA;AAAAA,IAAAA;AAAAA,IACCI;AAAAA,EAAAA,EAAAA,CAKH,EAAA,CACF,GAAgBnG,QAAA+F,GAAA/F,QAAAmG,GAAAnG,QAAAoP,KAAAA,IAAApP,EAAA,EAAA;AAAA,MAAAqP;AAAA,EAAArP,EAAA,EAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAKR0M,sBAACgJ,IAAA,EAAW,MAAA,GAAA,CAAE,GAAIrY,QAAAqP,KAAAA,IAAArP,EAAA,EAAA;AAAA,MAAAsP;AAAA,EAAAtP,UAAAkY,KADpB5I,IAAA,gBAAA7O,EAACwD,IAAA,EAAkB,cAAA,wBAA+B,SAAA,WAAe,MAAA,MAAciU,SAAAA,GAC7E7I,UAAAA,EAAAA,CACF,GAASrP,QAAAkY,GAAAlY,QAAAsP,KAAAA,IAAAtP,EAAA,EAAA;AAMG,QAAAuP,IAAA,CAACuI,KAAeA,MAAgB;AAAG,MAAAtI;AAAA,EAAAxP,EAAA,EAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAE7C6M,sBAAC8I,IAAA,EAAgB,MAAA,GAAA,CAAE,GAAItY,QAAAwP,KAAAA,IAAAxP,EAAA,EAAA;AAAA,MAAA0P;AAAA,EAAA1P,EAAA,EAAA,MAAAmY,KAAAnY,UAAAuP,KAPzBG,IAAA,gBAAAjP,EAACwD,IAAA,EACY,cAAA,0BACH,SAAA,WACH,MAAA,MACIkU,SAAAA,GACC,UAAA5I,GAEVC,UAAAA,GACF,GAASxP,QAAAmY,GAAAnY,QAAAuP,GAAAvP,QAAA0P,KAAAA,IAAA1P,EAAA,EAAA;AAEN,QAAA6P,IAAAiI,KAAA;AAAqB,MAAAhI;AAAA,EAAA9P,UAAA6P,KADxBC,IAAA,gBAAArP,EAACyC,GAAA,EAAe,WAAA,uBAA4B,OAAA,YAAgB,MAAA,KAAe,WAAA,GACxE2M,UAAAA,EAAAA,CACH,GAAO7P,QAAA6P,GAAA7P,QAAA8P,KAAAA,IAAA9P,EAAA,EAAA;AAAA,MAAA+P;AAAA,EAAA/P,EAAA,EAAA,MAAAsP,KAAAtP,UAAA0P,KAAA1P,EAAA,EAAA,MAAA8P,KAfTC,sBAAC/L,GAAA,EAAgB,WAAA,OAAU,KAAA,MAAW,OAAA,UACpCsL,UAAAA;AAAAA,IAAAA;AAAAA,IAGAI;AAAAA,IASAI;AAAAA,EAAAA,GAGF,GAAQ9P,QAAAsP,GAAAtP,QAAA0P,GAAA1P,QAAA8P,GAAA9P,QAAA+P,KAAAA,IAAA/P,EAAA,EAAA;AAAA,MAAAgQ;AAAA,EAAAhQ,EAAA,EAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAOQqN,IAAA;AAAA,IAAAuI,SAAW;AAAA,EAAA,GAAMvY,QAAAgQ,KAAAA,IAAAhQ,EAAA,EAAA;AAAA,MAAAiQ;AAAA,EAAAjQ,UAAA6I,KAAA7I,EAAA,EAAA,MAAAkW,KAAAlW,EAAA,EAAA,MAAAgY,KAAAhY,EAAA,EAAA,MAAAwX,KAAAxX,UAAAsX,KAAAtX,EAAA,EAAA,MAAAuX,KALjCtH,IAAA,gBAAAxP,EAAC2F,IAAA,EACa,aAAA,OACC,cAAA,MACD,aAAA,gBACF,WAAA,SACI,cAAA4J,GAEbgI,UAAAA,IACC,gBAAAvX,EAACyC,GAAA,EAAe,WAAA,uBAA4B,OAAA,YAAW,UAAA,cAEvD,IACEgT,IACF,gBAAAzV,EAACyC,GAAA,EAAe,WAAA,uBAA4B,OAAA,WACzCgT,UAAAA,EAAAA,CACH,IACErN,EAAOzH,WAAY,IACrB,gBAAAX,EAACyC,GAAA,EAAe,WAAA,uBAA4B,OAAA,YAAW,UAAA,oBAAA,CAEvD,IAEA,gBAAAzC,EAACuD,GAAA,EAAU,KAAA,MACR6E,UAAAA,EAAO/G,IAAKuG,CAAAA,OACX,gBAAA5H,EAAC4W,IAAA,EAEQhP,OAAAA,IACOiP,cAAAA,GACGC,iBAAAA,GACHC,cAAAA,KAJTnP,GAAKlE,IAIgB,CAE7B,EAAA,CACH,GAEJ,GAAanE,QAAA6I,GAAA7I,QAAAkW,GAAAlW,QAAAgY,GAAAhY,QAAAwX,GAAAxX,QAAAsX,GAAAtX,QAAAuX,GAAAvX,QAAAiQ,KAAAA,IAAAjQ,EAAA,EAAA;AAAA,MAAAkQ;AAAA,EAAAlQ,EAAA,EAAA,MAAA+P,KAAA/P,UAAAiQ,KApDjBC,iCACE,UAAA,gBAAAtP,EAACoD,GAAA,EAAU,KAAA,MACT+L,UAAAA;AAAAA,IAAAA;AAAAA,IAkBAE;AAAAA,EAAAA,EAAAA,CAiCF,EAAA,CACF,GAAcjQ,QAAA+P,GAAA/P,QAAAiQ,GAAAjQ,QAAAkQ,MAAAA,KAAAlQ,EAAA,EAAA;AAAA,MAAAmQ;AAAA,EAAAnQ,UAAA4D,KAGVuM,sBAAClM,IAAA,EAAe,SAAA,WAAmBL,YAAS,UAAA,UAE5C,GAAS5D,QAAA4D,GAAA5D,QAAAmQ,KAAAA,IAAAnQ,EAAA,EAAA;AAAA,MAAAqQ;AAAA,EAAArQ,EAAA,EAAA,MAAAiY,KAAAjY,UAAAwM,KACT6D,uBAACpM,IAAA,EAAgBuI,YAAoByL,aAAkB,UAAA,qBAEvD,GAASjY,QAAAiY,GAAAjY,QAAAwM,GAAAxM,QAAAqQ,MAAAA,KAAArQ,EAAA,EAAA;AAAA,MAAAsQ;AAAA,EAAAtQ,EAAA,EAAA,MAAAmQ,KAAAnQ,UAAAqQ,MAPbC,IAAA,gBAAA7P,EAAAqD,EAAA,QAAA,EACE,4BAACE,GAAA,EAAgB,WAAA,OAAU,KAAA,MACzBmM,UAAAA;AAAAA,IAAAA;AAAAA,IAGAE;AAAAA,EAAAA,EAAAA,CAGF,EAAA,CACF,GAAgBrQ,QAAAmQ,GAAAnQ,QAAAqQ,IAAArQ,QAAAsQ,KAAAA,IAAAtQ,EAAA,EAAA;AAAA,MAAAwQ;AAAA,EAAAxQ,EAAA,EAAA,MAAAoP,KAAApP,UAAAkQ,MAAAlQ,EAAA,EAAA,MAAAsQ,KA5EpBE,sBAAA1M,EAAA,YAAA,EACE,UAAA,gBAAAlD,EAAAkD,EAAA,SAAA,EACEsL,UAAAA;AAAAA,IAAAA;AAAAA,IAUAc;AAAAA,IAuDAI;AAAAA,EAAAA,EAAAA,CAUF,EAAA,CACF,GAAoBtQ,QAAAoP,GAAApP,QAAAkQ,IAAAlQ,QAAAsQ,GAAAtQ,QAAAwQ,KAAAA,IAAAxQ,EAAA,EAAA;AAAA,MAAAyQ;AAAA,SAAAzQ,EAAA,EAAA,MAAA2D,KAAA3D,UAAAwQ,KAAAxQ,EAAA,EAAA,MAAA2F,KAhFtB8K,IAAA,gBAAA7P,EAAAkD,EAAA,MAAA,EAAqC,wBAAA,IAAaH,MAAAA,GAAoB,cAAAgC,GACpEE,UAAAA;AAAAA,IAAAA;AAAAA,IACA2K;AAAAA,EAAAA,GA+EF,GAAcxQ,QAAA2D,GAAA3D,QAAAwQ,GAAAxQ,QAAA2F,GAAA3F,QAAAyQ,KAAAA,IAAAzQ,EAAA,EAAA,GAjFdyQ;AAiFc;AC5KX,SAAA+H,GAAA1Y,GAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA;AAAA,MAAAC,GAAAG;AAAA,EAAAL,SAAAF,KACL;AAAA,IAAAI,UAAAA;AAAAA,IAAA,GAAAG;AAAAA,EAAAA,IAA8BP,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAAK,MAAAH,IAAAF,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA;AAAA,MAAAQ;AAAA,SAAAR,EAAA,CAAA,MAAAE,KAAAF,SAAAK,KAGlCG,IAAA,gBAAAC,EAACoJ,GAAA,EAAM,GAAKxJ,GAAW,MAAA,QAAe,SAAA,iBAAsB,OAAA,UAA2B,mBAAA,OAAQ,GAAA,MAC5FH,UAAAA,GACH,GAASF,OAAAE,GAAAF,OAAAK,GAAAL,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAFTQ;AAES;ACWb,MAAMiY,KAAeA,CAACC,GAA0BpX,MACvC,GAAGoX,EAAOd,IAAI,IAAIc,EAAOpQ,WAAW,SAAS,IAAIhH,CAAK,IAGzDqX,KAAiBA,CAACD,MACjBA,EAAOpQ,UAEL,GAAGoQ,EAAOd,IAAI,KAAKc,EAAOpQ,OAAO,KAFZoQ,EAAOd,MAKxBgB,KAA0B9Y,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACrC;AAAA,IAAA4Y,SAAAA;AAAAA,IAAAtY,OAAAC;AAAAA,IAAAsI,aAAAnI;AAAAA,IAAAmY,aAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,YAAApY;AAAAA,IAAAqY,kBAAA5W;AAAAA,EAAAA,IASIxC,GAPFS,IAAAC,MAAA2B,SAAA,wCAAA3B,GACAsI,IAAAnI,MAAAwB,SAAA,2EAAAxB,GAIAsY,IAAApY,MAAAsB,SAAA,qCAAAtB,GACAqY,IAAA5W,MAAAH,SAAA,yDAAAG;AAAyE,MAAAC;AAAA,EAAAvC,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAIAJ,IAAA;AAAA,IAAAmH,MAAQ;AAAA,IAAIC,IAAM;AAAA,EAAA,GAAM3J,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAAA,MAAAwC;AAAA,EAAAxC,SAAAO,KAE7FiC,IAAA,gBAAA/B,EAACyC,GAAA,EAAe,WAAA,aAAa3C,UAAAA,GAAM,GAAOP,OAAAO,GAAAP,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAAA,MAAAsF;AAAA,EAAAtF,SAAA8I,KAC1CxD,sBAACpC,GAAA,EAAe,WAAA,uBAA4B,OAAA,YACzC4F,UAAAA,GACH,GAAO9I,OAAA8I,GAAA9I,OAAAsF,KAAAA,IAAAtF,EAAA,CAAA;AAAA,MAAAwF;AAAA,EAAAxF,SAAA8Y,KAGJtT,IAAAsT,IACC,gBAAAlY,EAACsC,GAAA,EAAe,WAAA,YAAiB,OAAA,YAAW,UAAA;AAAA,IAAA;AAAA,IAChC4V;AAAAA,EAAAA,EAAAA,CACZ,IAHD,MAIO9Y,OAAA8Y,GAAA9Y,OAAAwF,KAAAA,IAAAxF,EAAA,CAAA;AAAA,MAAA0F;AAAA,EAAA1F,SAAA+Y,KAEPrT,IAAAqT,IACC,gBAAAnY,EAACsC,GAAA,EAAe,WAAA,YAAiB,OAAA,YAAW,UAAA;AAAA,IAAA;AAAA,IAChC6V;AAAAA,EAAAA,EAAAA,CACZ,IAHD,MAIO/Y,OAAA+Y,GAAA/Y,OAAA0F,KAAAA,IAAA1F,EAAA,CAAA;AAAA,MAAA2F;AAAA,EAAA3F,EAAA,CAAA,MAAA6Y,EAAAzX,UAERuE,sBAACzC,GAAA,EAAe,WAAA,YAAiB,OAAA,YAAW,UAAA;AAAA,IAAA;AAAA,IAC/B2V,EAAOzX;AAAAA,EAAAA,GACpB,GAAOpB,EAAA,CAAA,IAAA6Y,EAAAzX,QAAApB,QAAA2F,KAAAA,IAAA3F,EAAA,EAAA;AAAA,MAAA6F;AAAA,EAAA7F,UAAAgZ,KAENnT,IAAAmT,IACC,gBAAApY,EAACsC,GAAA,EAAe,WAAA,YAAiB,OAAA,YAAW,UAAA;AAAA,IAAA;AAAA,IAC9B8V;AAAAA,EAAAA,EAAAA,CACd,IAHD,MAIOhZ,QAAAgZ,GAAAhZ,QAAA6F,KAAAA,IAAA7F,EAAA,EAAA;AAAA,MAAA+F;AAAA,EAAA/F,EAAA,EAAA,MAAA6F,KAAA7F,EAAA,EAAA,MAAAwF,KAAAxF,EAAA,EAAA,MAAA0F,KAAA1F,UAAA2F,KArBVI,IAAA,gBAAAnF,EAACiJ,GAAA,EAAW,KAAA,MAAc,UAAA,QACvBrE,UAAAA;AAAAA,IAAAA;AAAAA,IAMAE;AAAAA,IAMDC;AAAAA,IAICE;AAAAA,EAAAA,GAKH,GAAS7F,QAAA6F,GAAA7F,QAAAwF,GAAAxF,QAAA0F,GAAA1F,QAAA2F,GAAA3F,QAAA+F,KAAAA,IAAA/F,EAAA,EAAA;AAAA,MAAAmG;AAAA,EAAAnG,EAAA,EAAA,MAAA+F,KAAA/F,UAAAwC,KAAAxC,EAAA,EAAA,MAAAsF,KA5BXa,sBAACnC,GAAA,EAAU,KAAA,MACTxB,UAAAA;AAAAA,IAAAA;AAAAA,IACA8C;AAAAA,IAIAS;AAAAA,EAAAA,GAuBF,GAAQ/F,QAAA+F,GAAA/F,QAAAwC,GAAAxC,QAAAsF,GAAAtF,QAAAmG,KAAAA,IAAAnG,EAAA,EAAA;AAAA,MAAAoP;AAAA,EAAApP,EAAA,EAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAERyM,sBAAC+J,IAAA,EAAsB,aAAA,eAAA,CAAc,GAAGnZ,QAAAoP,KAAAA,IAAApP,EAAA,EAAA;AAAA,MAAAqP;AAAA,EAAArP,EAAA,EAAA,MAAAkZ,KAAAlZ,UAAAiZ,KAAAjZ,EAAA,EAAA,MAAA6Y,KAEvCxJ,IAAAwJ,EAAOzX,WAAY,IAClB,gBAAAR,EAACoD,KAAkB,aAAA,OAAkB,aAAA,gBAA4B,cAAA,MAAa,SAAA,MAAS,KAAA,MACrF,UAAA;AAAA,IAAA,gBAAAvD,EAACyC,GAAA,EAAe,WAAA,kBAAkB+V,UAAAA,GAAW;AAAA,sBAC5C/V,GAAA,EAAe,WAAA,uBAA4B,OAAA,YACzCgW,UAAAA,EAAAA,CACH;AAAA,EAAA,EAAA,CACF,sBAEClV,GAAA,EAAU,KAAA,MACR6U,UAAAA,EAAO/W,IAAKmH,EA2DZ,EAAA,CACH,GACDjJ,QAAAkZ,GAAAlZ,QAAAiZ,GAAAjZ,QAAA6Y,GAAA7Y,QAAAqP,KAAAA,IAAArP,EAAA,EAAA;AAAA,MAAAsP;AAAA,SAAAtP,EAAA,EAAA,MAAAmG,KAAAnG,UAAAqP,KAxGHC,sBAACtL,GAAA,EAAY,OAAA,QAAiB,WAAA,QAAkB,YAAA,MAAW,OAAA,MAAc,SAAAzB,GAA8B,KAAA,MACrG4D,UAAAA;AAAAA,IAAAA;AAAAA,IA+BAiJ;AAAAA,IAECC;AAAAA,EAAAA,GAuEH,GAAQrP,QAAAmG,GAAAnG,QAAAqP,GAAArP,QAAAsP,KAAAA,IAAAtP,EAAA,EAAA,GAzGRsP;AAyGQ;AAtH2B,SAAArG,GAAAyP,GAAApX,GAAA;AAAA,SAyD3B,gBAAAb,EAACuC,GAAA,EAEa,aAAA,OACA,aAAA,gBACC,cAAA,MACL,SAAA,MAER,UAAA,gBAAApC,EAACoD,GAAA,EAAU,KAAA,MACT,UAAA;AAAA,IAAA,gBAAApD,EAACoD,GAAA,EAAU,KAAA,OACT,UAAA;AAAA,MAAA,gBAAAvD,EAACyC,GAAA,EAAe,WAAA,kBAAkByV,UAAAA,GAAeD,CAAM,GAAE;AAAA,MACzD,gBAAA9X,EAACsC,GAAA,EAAe,WAAA,mBAAwB,OAAA,YAAW,UAAA;AAAA,QAAA;AAAA,QACvCwV,EAAMU,WAAN;AAAA,MAAA,EAAA,CACZ;AAAA,IAAA,GACF;AAAA,IAECV,EAAMW,YACL,gBAAA5Y,EAACyC,GAAA,EAAe,WAAA,mBAAwB,OAAA,YACrCwV,UAAAA,EAAMW,UAAAA,CACT,IAHD;AAAA,KAMCX,EAAMY,eAAgBZ,EAAMa,cAC5B,gBAAA3Y,EAACoD,GAAA,EAAU,KAAA,OACR0U,UAAAA;AAAAA,MAAAA,EAAMY,cACL,gBAAA7Y,EAAC+I,IAAA,EACO,MAAAkP,EAAMY,aACL,QAAA,UACH,KAAA,cACM,WAAA,kBACJ,OAAA,eACP,sBAED,IATD;AAAA,MAYAZ,EAAMa,YACL,gBAAA9Y,EAAC+I,IAAA,EACO,MAAAkP,EAAMa,WACL,QAAA,UACH,KAAA,cACM,WAAA,kBACJ,OAAA,eACP,yBAED,IATD;AAAA,IAAA,GAWH;AAAA,IAGDb,EAAMc,cACL,gBAAA/Y,EAACuC,KAAe,YAAA,YAAwB,cAAA,MAAa,SAAA,MACnD,UAAA,gBAAAvC,EAACyC,GAAA,EAAe,WAAA,mBAA6B,YAAA,YAC1CwV,UAAAA,EAAMc,YAAAA,CACT,GACF,IALD;AAAA,EAAA,EAAA,CAOH,EAAA,GAvDKf,GAAaC,GAAQpX,CAAK,CAwDjC;AAAM;AC5HX,MAAMmY,KAAa3Z,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA,GACxB;AAAA,IAAAe,OAAAA;AAAAA,EAAAA,IAAkBlB;AAAM,MAAAU;AAAA,EAAAR,SAAAgB,KAInBR,IAAAQ,EAAKc,IAAKmH,EAgBV,GAACjJ,OAAAgB,GAAAhB,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,SAAAX,SAAAQ,KAjBJG,IAAA,gBAAAF,EAACuD,KAAU,KAAA,MAAiB,aAAA,MAAc,UAAA,MACvCxD,UAAAA,EAAAA,CAiBH,GAAQR,OAAAQ,GAAAR,OAAAW,KAAAA,IAAAX,EAAA,CAAA,GAlBRW;AAkBQ;AAtBc,SAAAsI,GAAA5H,GAAAC,GAAA;AAAA,SAMlB,gBAAAV,EAACiJ,GAAA,EAA0C,KAAA,MAAgB,YAAA,UACzD,UAAA;AAAA,IAAA,gBAAApJ,EAACuC,GAAA,EAAU,OAAA,SAAoB,YAAA,GAC7B,4BAAC6G,GAAA,EAAW,KAAA,KAAe,YAAA,UACzB,UAAA;AAAA,MAAA,gBAAApJ,EAACyC,KAAe,WAAA,kBAAuB,OAAA,YACpC7B,YAAIuV,OACP;AAAA,MACCvV,EAAIyH,eACH,gBAAArI,EAACkU,IAAA,EAAiB,SAAAtT,EAAIyH,aAAc,WAAA,IAClC,UAAA,gBAAArI,EAACwO,MAASyK,IAAAA,IAAc,SAAA,QAAa,OAAA,YAAoB,SAAA,KAAY,QAAA,OAAA,CAAM,EAAA,CAC7E;AAAA,IAAA,EAAA,CAEJ,EAAA,CACF;AAAA,IACA,gBAAAjZ,EAACuC,GAAA,EAAS,MAAA,KAAK3B,YAAIoJ,MAAAA,CAAO;AAAA,EAAA,EAAA,GAbf,GAAGpJ,EAAIuV,KAAM,IAAItV,CAAK,EAcnC;AAAS;ACrCV,MAAMqY,KAA8BA,CAACC,MACtCA,MAAW,cAAoBC,KAC/BD,MAAW,WAAiBE,KACzBC,IAGIC,KAA+BA,CAACJ,MACvCA,MAAW,cAAoB,eAC/BA,MAAW,WAAiB,aACzB,YAWIK,KAAmBna,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GAC9B;AAAA,IAAA2Z,QAAAA;AAAAA,IAAAM,SAAA1Z;AAAAA,IAAA2Z,WAAAxZ;AAAAA,IAAAyZ,QAAAA;AAAAA,IAAAzY,SAAAA;AAAAA,EAAAA,IAAoF7B,GAApEoa,IAAA1Z,MAAA2B,SAAA,SAAA3B,GAAkB2Z,IAAAxZ,MAAAwB,SAAA,mBAAAxB;AAA4B,MAAAE;AAAA,EAAAb,SAAA4Z,KAItD/Y,IAAA8Y,GAA4BC,CAAM,GAAC5Z,OAAA4Z,GAAA5Z,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAsC;AAAA,EAAAtC,SAAA4Z,KAEhCtX,IAAA0X,GAA6BJ,CAAM,GAAC5Z,OAAA4Z,GAAA5Z,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AAAA,MAAAuC;AAAA,SAAAvC,SAAAma,KAAAna,EAAA,CAAA,MAAAka,KAAAla,EAAA,CAAA,MAAAoa,KAAApa,EAAA,CAAA,MAAA2B,KAAA3B,SAAAa,KAAAb,EAAA,CAAA,MAAAsC,KAH7CC,IAAA,gBAAA9B,EAACwO,IAAA,EACK,IAAApO,GACKqZ,SAAAA,GACF,OAAA5X,GACK6X,cAAAA,GACJC,QAAAA,GACCzY,SAAAA,EAAAA,CAAO,GAChB3B,OAAAma,GAAAna,OAAAka,GAAAla,OAAAoa,GAAApa,OAAA2B,GAAA3B,OAAAa,GAAAb,OAAAsC,GAAAtC,QAAAuC,KAAAA,IAAAvC,EAAA,EAAA,GAPFuC;AAOE,GCPAmC,KAAaA,CAACyG,GAAYkP,MAAqBA,EAAOC,SAASnP,CAAE,GAEjEoP,KAAsBza,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GAC1B;AAAA,IAAA0R,QAAAA;AAAAA,IAAA6I,WAAAA;AAAAA,IAAAC,QAAAA;AAAAA,EAAAA,IAAsC3a;AAEtC,MAAI6R,EAAMmE,aAAcnE,EAAMmE,UAAU1U,SAAU,GAAC;AAAA,QAAAZ;AAAA,IAAAR,EAAA,CAAA,MAAA2R,EAAAvR,QAAAJ,EAAA,CAAA,MAAA2R,EAAAiF,SAG7CpW,IAAA,gBAAAC,EAAAiV,GAAA,SAAA,EAAc,SAAA,IACZ,UAAA,gBAAAjV,EAAC8E,IAAA,EAAmB,SAAA,SAAa,MAAA,OAAkB,cAAAoM,EAAMiF,OACtDjF,UAAAA,EAAMvR,MACT,GACF,GAAeJ,EAAA,CAAA,IAAA2R,EAAAvR,MAAAJ,EAAA,CAAA,IAAA2R,EAAAiF,OAAA5W,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,QAAAW;AAAA,IAAAX,EAAA,CAAA,MAAA2R,EAAAmE,aAGVnV,IAAAgR,EAAMmE,UAAUhU,IAAKmH,EAKrB,GAACjJ,EAAA,CAAA,IAAA2R,EAAAmE,WAAA9V,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,QAAAa;AAAA,IAAAb,SAAAW,KAPNE,IAAA,gBAAAJ,EAAAiV,GAAA,YAAA,EACE,4BAAAA,GAAA,SAAA,EAAmB,MAAA,SAAW,IAAA,MAC3B/U,UAAAA,GAMH,GACF,GAAkBX,OAAAW,GAAAX,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,QAAAsC;AAAA,WAAAtC,EAAA,CAAA,MAAAQ,KAAAR,SAAAa,KAfpByB,iCACE9B,UAAAA;AAAAA,MAAAA;AAAAA,MAKAK;AAAAA,IAAAA,GAUF,GAAYb,OAAAQ,GAAAR,OAAAa,GAAAb,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA,GAhBZsC;AAAAA,EAgBY;AAEf,MAAA9B;AAAA,EAAAR,EAAA,EAAA,MAAA2R,KAAA3R,UAAAya,KAAAza,EAAA,EAAA,MAAAwa,KAOYha,IAAA0E,CAAAA,MAAA;AACPA,IAAAA,EAAKC,gBAAAA,GACLwM,EAAM+I,WAAY;AAAA,MAAAF,WAAAA;AAAAA,MAAAC,QAAAA;AAAAA,IAAAA,CAAqB;AAAA,EAAC,GACzCza,QAAA2R,GAAA3R,QAAAya,GAAAza,QAAAwa,GAAAxa,QAAAQ,KAAAA,IAAAR,EAAA,EAAA;AAAA,MAAAW;AAAA,SAAAX,EAAA,EAAA,MAAA2R,EAAAvR,QAAAJ,EAAA,EAAA,MAAA2R,EAAAiF,SAAA5W,UAAAQ,KAPHG,IAAA,gBAAAF,EAAC8E,IAAA,EACS,SAAA,SACH,MAAA,OACO,cAAAoM,EAAMiF,OACT,SAAApW,GAKRmR,UAAAA,EAAMvR,MACT,GAAaJ,EAAA,EAAA,IAAA2R,EAAAvR,MAAAJ,EAAA,EAAA,IAAA2R,EAAAiF,OAAA5W,QAAAQ,GAAAR,QAAAW,KAAAA,IAAAX,EAAA,EAAA,GAVbW;AAUa,GAIXga,KAAoB7a,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACxB;AAAA,IAAAua,WAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAG,SAAAA;AAAAA,EAAAA,IAAuC9a;AAEvC,MAAI8a,EAAOxZ,WAAY;AAAC,WAAS;AAAK,MAAAZ,GAAAG;AAAA,EAAAX,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAOrBnC,IAAA;AAAA,IAAAqa,SAAW;AAAA,IAAGC,eAAiB;AAAA,EAAA,GACzBna,IAAA;AAAA,IAAAka,SAAW;AAAA,IAAGC,eAAiB;AAAA,EAAA,GAAQ9a,OAAAQ,GAAAR,OAAAW,MAAAH,IAAAR,EAAA,CAAA,GAAAW,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,MAAAb,EAAA,CAAA,MAAA4a,KAAA5a,SAAAya,KAAAza,EAAA,CAAA,MAAAwa,GAAA;AAAA,QAAAlY;AAAA,IAAAtC,EAAA,CAAA,MAAAya,KAAAza,SAAAwa,KAI7ClY,IAAAqP,OACX,gBAAAlR,EAAC8Z,IAAA,EAA4C5I,QAAAA,GAAmB6I,WAAAA,GAAmBC,QAAAA,EAAAA,GAAzD9I,EAAMxG,EAAyD,GAC1FnL,OAAAya,GAAAza,OAAAwa,GAAAxa,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA,GAFAa,IAAA+Z,EAAO9Y,IAAKQ,CAEZ,GAACtC,OAAA4a,GAAA5a,OAAAya,GAAAza,OAAAwa,GAAAxa,OAAAa;AAAAA,EAAA;AAAAA,IAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAsC;AAAA,SAAAtC,SAAAa,KAXJyB,sBAACuH,GAAA,EACK,KAAA,KACI,SAAA,KACM,eAAA,QACD,aAAArJ,GACM,mBAAAG,GACR,YAAA,sBACF,SAAAyI,IAERvI,UAAAA,GAGH,GAASb,OAAAa,GAAAb,QAAAsC,KAAAA,IAAAtC,EAAA,EAAA,GAZTsC;AAYS,GAIPyY,KAAiBjb,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACrB;AAAA,IAAAua,WAAAA;AAAAA,IAAAQ,MAAAA;AAAAA,IAAA3Q,OAAAA;AAAAA,IAAA4Q,eAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,cAAAA;AAAAA,EAAAA,IAA0Ftb,GAC1F2V,KAAqBuF,EAAI9a,UAAiBkB,UAArB,KAA8B;AAAE,MAAAZ;AAAA,EAAAR,EAAA,CAAA,MAAAib,KAAAjb,EAAA,CAAA,MAAAyV,KAAAzV,EAAA,CAAA,MAAAgb,EAAA7P,MACpC3K,IAAAiV,KAAe/Q,GAAWsW,EAAI7P,IAAK8P,CAAa,GAACjb,OAAAib,GAAAjb,OAAAyV,GAAAzV,EAAA,CAAA,IAAAgb,EAAA7P,IAAAnL,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAlE,QAAAqb,IAAiB7a,GACjB8a,IAAoBN,EAAIM,eAAgBN,EAAIO,qBAAsBpZ,QAClEkK,IAAiB6O,MAAiBF,EAAI7P,IACtCmI,IAAmB0H,EAAI9Y,aAAc,IACrCsZ,IAAoBnR,IAAQ,IAAR,kCAA8CA,CAAK,gCAAnDlI;AAA6F,MAAAxB;AAAA,EAAAX,EAAA,CAAA,MAAAyV,KAAAzV,EAAA,CAAA,MAAAsT,KAAAtT,EAAA,CAAA,MAAAsb,KAAAtb,SAAAgb,KAAAhb,EAAA,CAAA,MAAAmb,KAAAnb,EAAA,CAAA,MAAAob,KAAApb,EAAA,EAAA,MAAAwa,KAE7F7Z,IAAAA,MAAA;AAClB,QAAI2S,CAAAA,GAEJ;AAAA,UAAImC,GAAW;AACb2F,QAAAA,EAAaJ,EAAI7P,EAAG;AAAC;AAAA,MAAA;AAIvB,MAAKmQ,KAELH,IAAa;AAAA,QAAAX,WAAAA;AAAAA,QAAAC,QAEHO,EAAI7P;AAAAA,QAAG6P,MAAAA;AAAAA,QAAAS,QAEPT,EAAIO;AAAAA,MAAAA,CACb;AAAA;AAAA,EAAC,GACHvb,OAAAyV,GAAAzV,OAAAsT,GAAAtT,OAAAsb,GAAAtb,OAAAgb,GAAAhb,OAAAmb,GAAAnb,OAAAob,GAAApb,QAAAwa,GAAAxa,QAAAW,KAAAA,IAAAX,EAAA,EAAA;AAhBD,QAAA2X,IAAoBhX,GAmBNE,IAACma,EAAI9a,WAAL,MAAA,OAWJoC,IAAA+J,IAAA,aAAA,eACU9J,IAAA8J,IAAA,aAAA;AAAmC,MAAA7J;AAAA,EAAAxC,UAAAuC,KAAzCC,IAAA;AAAA,IAAAiS,IAAMlS;AAAAA,EAAAA,GAAqCvC,QAAAuC,GAAAvC,QAAAwC,KAAAA,IAAAxC,EAAA,EAAA;AAC3C,QAAAsF,IAAAgO,IAAA,YAAA;AAAkC,MAAA9N;AAAA,EAAAxF,EAAA,EAAA,MAAAgb,EAAA5a,QAKvCoF,IAAAwV,EAAI5a,OACH,gBAAAK,EAACuC,GAAA,EAAU,OAAA,YAAuB,YAAA,GAC/BgY,UAAAA,EAAI5a,KAAAA,CACP,IAHD,MAIOJ,EAAA,EAAA,IAAAgb,EAAA5a,MAAAJ,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA;AAGyC,QAAA0F,IAAA4N,IAAA,aAAA;AAA8B,MAAA3N;AAAA,EAAA3F,UAAAgb,EAAApE,SAAA5W,UAAA0F,KAA3EC,IAAA,gBAAAlF,EAACyC,KAAe,WAAA,uBAA6B,OAAAwC,GAAgC,UAAA,IAC1EsV,UAAAA,EAAIpE,MAAAA,CACP,GAAO5W,EAAA,EAAA,IAAAgb,EAAApE,OAAA5W,QAAA0F,GAAA1F,QAAA2F,KAAAA,IAAA3F,EAAA,EAAA;AAAA,MAAA6F;AAAA,EAAA7F,EAAA,EAAA,MAAAqb,KAAArb,UAAAyV,KACN5P,IAAA4P,IACC,gBAAAhV,EAACuC,GAAA,EAAU,OAAA,YAAuB,YAAA,GAChC,UAAA,gBAAAvC,EAAC4E,IAAA,EACO,MAAA,IACC,OAAA;AAAA,IAAA4C,WAAaoT,IAAA,kBAAA;AAAA,IAA2CK,YAAc;AAAA,EAAA,EAAQ,CAAC,GAE1F,IAND,MAOO1b,QAAAqb,GAAArb,QAAAyV,GAAAzV,QAAA6F,KAAAA,IAAA7F,EAAA,EAAA;AAAA,MAAA+F;AAAA,EAAA/F,EAAA,EAAA,MAAA6F,KAAA7F,UAAA2F,KAXVI,sBAAC8D,GAAA,EAAW,KAAA,KAAS,MAAA,KACnBlE,UAAAA;AAAAA,IAAAA;AAAAA,IAGCE;AAAAA,EAAAA,GAQH,GAAS7F,QAAA6F,GAAA7F,QAAA2F,GAAA3F,QAAA+F,KAAAA,IAAA/F,EAAA,EAAA;AAAA,MAAAmG;AAAA,EAAAnG,EAAA,EAAA,MAAAgb,EAAAlS,eACR3C,IAAA6U,EAAIlS,cACH,gBAAArI,EAACyC,GAAA,EAAe,WAAA,wBAA6B,OAAA,YAAW,UAAA,IACrD8X,UAAAA,EAAIlS,YAAAA,CACP,IAHD,MAIO9I,EAAA,EAAA,IAAAgb,EAAAlS,aAAA9I,QAAAmG,KAAAA,IAAAnG,EAAA,EAAA;AAAA,MAAAoP;AAAA,EAAApP,EAAA,EAAA,MAAA+F,KAAA/F,UAAAmG,KAlBViJ,sBAACpL,GAAA,EAAU,KAAA,KAAS,MAAA,KAAS,MAAA,KAC3B+B,UAAAA;AAAAA,IAAAA;AAAAA,IAaCI;AAAAA,EAAAA,GAKH,GAAQnG,QAAA+F,GAAA/F,QAAAmG,GAAAnG,QAAAoP,KAAAA,IAAApP,EAAA,EAAA;AAAA,MAAAqP;AAAA,EAAArP,EAAA,EAAA,MAAAoP,KAAApP,UAAAwF,KAzBV6J,IAAA,gBAAAzO,EAACiJ,KAAW,KAAA,KAAS,MAAA,KAAS,MAAA,KAAa,UAAA,UACxCrE,UAAAA;AAAAA,IAAAA;AAAAA,IAKD4J;AAAAA,EAAAA,GAoBF,GAASpP,QAAAoP,GAAApP,QAAAwF,GAAAxF,QAAAqP,KAAAA,IAAArP,EAAA,EAAA;AAAA,MAAAsP;AAAA,EAAAtP,EAAA,EAAA,MAAAgb,EAAAJ,WAE0DtL,IAAA0L,EAAIJ,WAAJ,CAAA,GAAkB5a,EAAA,EAAA,IAAAgb,EAAAJ,SAAA5a,QAAAsP,KAAAA,IAAAtP,EAAA,EAAA;AAAA,MAAAuP;AAAA,EAAAvP,EAAA,EAAA,MAAAgb,EAAA7P,MAAAnL,EAAA,EAAA,MAAAwa,KAAAxa,EAAA,EAAA,MAAAsP,KAArFC,sBAACoL,IAAA,EAA6BH,WAAAA,GAAmB,QAAAQ,EAAI7P,IAAc,SAAAmE,GAAkB,GAAItP,EAAA,EAAA,IAAAgb,EAAA7P,IAAAnL,QAAAwa,GAAAxa,QAAAsP,GAAAtP,QAAAuP,KAAAA,IAAAvP,EAAA,EAAA;AAAA,MAAAwP;AAAA,EAAAxP,EAAA,EAAA,MAAA2X,KAAA3X,EAAA,EAAA,MAAAqM,KAAArM,EAAA,EAAA,MAAAwb,KAAAxb,EAAA,EAAA,MAAAqP,KAAArP,EAAA,EAAA,MAAAuP,KAAAvP,EAAA,EAAA,MAAAsC,KAAAtC,EAAA,EAAA,MAAAwC,KAAAxC,UAAAsF,KA5C3FkK,sBAAC3F,GAAA,EACW,WAAA,SACL,MAAA,UACUwC,iBAAAA,GACP,SAAA,iBACF,OAAA,UACO,cAAA,MACV,IAAA,KACA,IAAA,OACCmP,IAAAA,GACA,IAAAlZ,GACI,QAAAE,GACA,QAAA8C,GACCqS,SAAAA,GACA,UAAA,UAETtI,UAAAA;AAAAA,IAAAA;AAAAA,IA4BAE;AAAAA,EAAAA,GACF,GAASvP,QAAA2X,GAAA3X,QAAAqM,GAAArM,QAAAwb,GAAAxb,QAAAqP,GAAArP,QAAAuP,GAAAvP,QAAAsC,GAAAtC,QAAAwC,GAAAxC,QAAAsF,GAAAtF,QAAAwP,KAAAA,IAAAxP,EAAA,EAAA;AAAA,MAAA0P;AAAA,EAAA1P,EAAA,EAAA,MAAAkb,KAAAlb,EAAA,EAAA,MAAAqb,KAAArb,EAAA,EAAA,MAAAib,KAAAjb,UAAAqK,KAAArK,EAAA,EAAA,MAAAgb,EAAA9a,YAAAF,EAAA,EAAA,MAAAmb,KAAAnb,EAAA,EAAA,MAAAob,KAAApb,UAAAwa,KAER9K,IAAA2L,IACGL,EAAI9a,UAAc4B,IAAC6Z,OACjB,gBAAAlb,EAACsa,IAAA,EAEYP,WAAAA,GACLmB,MAAAA,GACC,OAAAtR,IAAQ,GACA4Q,eAAAA,GACDC,cAAAA,GACFC,YAAAA,GACEC,cAAAA,KAPTO,EAASxQ,EAOY,CAG3B,IAbN,MAaOnL,QAAAkb,GAAAlb,QAAAqb,GAAArb,QAAAib,GAAAjb,QAAAqK,GAAArK,EAAA,EAAA,IAAAgb,EAAA9a,UAAAF,QAAAmb,GAAAnb,QAAAob,GAAApb,QAAAwa,GAAAxa,QAAA0P,KAAAA,IAAA1P,EAAA,EAAA;AAAA,MAAA6P;AAAA,SAAA7P,EAAA,EAAA,MAAAwP,KAAAxP,UAAA0P,KAAA1P,EAAA,EAAA,MAAAa,KA7DVgP,sBAAC7L,GAAA,EAAW,KAAAnD,GACV2O,UAAAA;AAAAA,IAAAA;AAAAA,IA+CCE;AAAAA,EAAAA,GAcH,GAAQ1P,QAAAwP,GAAAxP,QAAA0P,GAAA1P,QAAAa,GAAAb,QAAA6P,KAAAA,IAAA7P,EAAA,EAAA,GA9DR6P;AA8DQ,GAIC+L,KAAc9b,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACzB;AAAA,IAAA4b,UAAAA;AAAAA,IAAAC,kBAAAA;AAAAA,IAAAb,eAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAY,iBAAAA;AAAAA,IAAAX,cAAAA;AAAAA,EAAAA,IAA+Gtb;AAAM,MAAAU;AAAA,MAAAR,EAAA,CAAA,MAAAkb,KAAAlb,EAAA,CAAA,MAAAib,KAAAjb,EAAA,CAAA,MAAA8b,KAAA9b,SAAAmb,KAAAnb,EAAA,CAAA,MAAAob,KAAApb,EAAA,CAAA,MAAA+b,KAAA/b,EAAA,CAAA,MAAA6b,GAAA;AAAA,QAAAlb;AAAA,IAAAX,SAAAkb,KAAAlb,EAAA,CAAA,MAAAib,KAAAjb,EAAA,EAAA,MAAA8b,KAAA9b,EAAA,EAAA,MAAAmb,KAAAnb,UAAAob,KAAApb,EAAA,EAAA,MAAA+b,KAInGpb,IAAAqb,CAAAA,MAAA;AACZ,YAAAC,IAAwBD,EAAOpF,QAASlS,GAAWsX,EAAO7Q,IAAK2Q,CAAuB,IAA9D;AAAgE,aAGtF,gBAAAlb,EAACoD,GAAA,EAA2B,KAAA,KACzBgY,UAAAA;AAAAA,QAAAA,EAAOpF,QACN,gBAAAhW,EAACiJ,GAAA,EACW,WAAA,SACF,SAAA,iBACF,OAAA,UACH,IAAA,KACA,IAAA,OACE,MAAA,KACE,QAAA,WACM,cAAA,MACL,QAAA;AAAA,UAAA4K,IAAM;AAAA,QAAA,GACL,SAAA,MAAMsH,EAAgBC,EAAO7Q,EAAG,GAEzC,UAAA;AAAA,UAAA,gBAAAvK,EAACiJ,KAAW,KAAA,KAAS,MAAA,KAAS,MAAA,KAC5B,UAAA;AAAA,YAAA,gBAAApJ,EAACyC,GAAA,EAAe,WAAA,YAAyB,eAAA,aAAkB,OAAA,YAAyB,eAAA,UAAS,UAAA,IAC1F8Y,UAAAA,EAAOpF,OACV;AAAA,YACA,gBAAAnW,EAACuC,GAAA,EAAU,OAAA,YAAuB,YAAA,GAChC,UAAA,gBAAAvC,EAAC4E,IAAA,EACO,UACC,OAAA;AAAA,cAAA4C,WAAagU,IAAA,kBAAA;AAAA,cAAkDP,YAAc;AAAA,YAAA,GAAS,EAAA,CAEjG;AAAA,UAAA,GACF;AAAA,UACA,gBAAAjb,EAACka,MAA6B,WAAAqB,EAAO7Q,IAAc,SAAA6Q,EAAOpB,WAAP,GAAA;WACrD,IAzBD;AAAA,QA4BAqB,IACGD,EAAOE,MAAM9a,SAAU,IACrB4a,EAAOE,MAAMpa,IAAKkZ,CAAAA,MAChB,gBAAAva,EAACsa,IAAA,EAEY,WAAAiB,EAAO7Q,IACZ6P,MAAAA,GACC,OAAA,GACQC,eAAAA,GACDC,cAAAA,GACFC,YAAAA,GACEC,cAAAA,KAPTJ,EAAI7P,GAUc,IAA1B6Q,EAAOG,cAAP,OAdN;AAAA,MAAA,EAAA,GA7BSH,EAAO7Q,EA6CnB;AAAA,IAAQ,GAEXnL,OAAAkb,GAAAlb,OAAAib,GAAAjb,QAAA8b,GAAA9b,QAAAmb,GAAAnb,QAAAob,GAAApb,QAAA+b,GAAA/b,QAAAW,KAAAA,IAAAX,EAAA,EAAA,GAnDAQ,IAAAqb,EAAQ/Z,IAAKnB,CAmDb,GAACX,OAAAkb,GAAAlb,OAAAib,GAAAjb,OAAA8b,GAAA9b,OAAAmb,GAAAnb,OAAAob,GAAApb,OAAA+b,GAAA/b,OAAA6b,GAAA7b,OAAAQ;AAAAA,EAAA;AAAAA,IAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,SAAAX,UAAAQ,KApDJG,IAAA,gBAAAF,EAACuD,KAAW,MAAA,WAAc,KAAA,MAAO,GAAA,MAC9BxD,UAAAA,EAAAA,CAoDH,GAAQR,QAAAQ,GAAAR,QAAAW,KAAAA,IAAAX,EAAA,EAAA,GArDRW;AAqDQ;AArNgB,SAAAsI,GAAA5H,GAAA;AAAA,SAcd,gBAAAT,EAAA8U,GAAA,MAAA,EAAgC,OAAArU,EAAI8J,IAAc,SAAA,MAAM9J,EAAIqZ,WAAAA,GACzDrZ,UAAAA;AAAAA,IAAAA,EAAIjB,OAAQ,gBAAAK,EAACuC,GAAA,EAAO,IAAA,KAAK3B,UAAAA,EAAIjB,MAAM,IAAnC;AAAA,IACAiB,EAAIuV;AAAAA,EAAAA,EAAAA,GAFSvV,EAAI8J,EAGpB;AAAY;AAuBA,SAAA/B,GAAAlE,GAAA;AAAA,SAaAA,EAAKC,gBAAAA;AAAkB;AC3DjD,MAAMiX,KAAmB;AAAA,EACvBzY,MAAM;AAAA,EACNmY,kBAAkB,CAAA;AAAA,EAClBb,eAAe,CAAA;AACjB,GAEMoB,KAA0B,0BAE1BC,KAAgBA,CAACC,MAAuB,GAAGF,EAAuB,IAAIE,CAAU,IAEhFC,KAAoBA,OAAO;AAAA,EAC/BC,SAASA,MAAM;AAAA,EACfC,SAASA,MAAM;AAAA,EAAC;AAAA,EAChBC,YAAYA,MAAM;AAAA,EAAC;AACrB,IAEMC,KAAWA,CAACvC,GAAkBlP,MAClCkP,EAAOC,SAASnP,CAAE,IAAIkP,EAAOrM,OAAQvD,OAAUA,MAAUU,CAAE,IAAI,CAAC,GAAGkP,GAAQlP,CAAE,GAEzE0R,KAAcA,CAACxC,GAAkBlP,GAAYkQ,MAC7CA,IACKhB,EAAOC,SAASnP,CAAE,IAAIkP,IAAS,CAAC,GAAGA,GAAQlP,CAAE,IAG/CkP,EAAOrM,OAAQvD,CAAAA,MAAUA,MAAUU,CAAE,GAGxC2R,KAAuBA,CAAC7G,OAA6B;AAAA,EACzDtS,MAAMsS,EAAMtS;AAAAA,EACZmY,kBAAkB7F,EAAM6F;AAAAA,EACxBb,eAAehF,EAAMgF;AACvB,IAEa8B,KAAyBA,CAACC,MAA2C;AAChF,QAAM;AAAA,IAAET,YAAAA;AAAAA,IAAYU,cAAAA;AAAAA,EAAAA,IAAiBD,GAC/BE,IAAW;AAAA,IAAE,GAAGd;AAAAA,IAAkB,GAAGa;AAAAA,EAAAA;AAE3C,SAAOE,GAAAA,EACLC,GACGjR,CAAAA,OAAS;AAAA,IACR,GAAG+Q;AAAAA,IACHG,aAAaA,MAAMlR,EAAK8J,CAAAA,OAAW;AAAA,MAAE,GAAGA;AAAAA,MAAOtS,MAAM;AAAA,IAAA,EAAO;AAAA,IAC5D2Z,cAAcA,MAAMnR,EAAK8J,CAAAA,OAAW;AAAA,MAAE,GAAGA;AAAAA,MAAOtS,MAAM;AAAA,IAAA,EAAQ;AAAA,IAC9D4Z,eAAeA,MAAMpR,EAAK8J,CAAAA,OAAW;AAAA,MAAE,GAAGA;AAAAA,MAAOtS,MAAM,CAACsS,EAAMtS;AAAAA,IAAAA,EAAO;AAAA,IACrE6Z,eAAgBhD,CAAAA,MACdrO,EAAK8J,CAAAA,OAAW;AAAA,MACd,GAAGA;AAAAA,MACH6F,kBAAkBc,GAAS3G,EAAM6F,kBAAkBtB,CAAS;AAAA,IAAA,EAC5D;AAAA,IACJiD,YAAahD,CAAAA,MACXtO,EAAK8J,CAAAA,OAAW;AAAA,MACd,GAAGA;AAAAA,MACHgF,eAAe2B,GAAS3G,EAAMgF,eAAeR,CAAM;AAAA,IAAA,EACnD;AAAA,IACJiD,oBAAoBA,CAAClD,GAAWa,MAC9BlP,EAAK8J,CAAAA,OAAW;AAAA,MACd,GAAGA;AAAAA,MACH6F,kBAAkBe,GAAY5G,EAAM6F,kBAAkBtB,GAAWa,CAAQ;AAAA,IAAA,EACzE;AAAA,IACJsC,iBAAiBA,CAAClD,GAAQY,MACxBlP,EAAK8J,CAAAA,OAAW;AAAA,MACd,GAAGA;AAAAA,MACHgF,eAAe4B,GAAY5G,EAAMgF,eAAeR,GAAQY,CAAQ;AAAA,IAAA,EAChE;AAAA,IACJuC,OAAOA,MAAMzR,EAAIiQ,EAAgB;AAAA,EAAA,IAEnC;AAAA,IACExE,MAAM0E,GAAcC,CAAU;AAAA,IAC9BsB,SAASC,GAAkB,MACrB,OAAOC,WAAWC,eAAiB,MAC9BxB,GAAAA,IAGFuB,WAAWC,YACnB;AAAA,IACDC,YAAYnB;AAAAA,EAAAA,CAEhB,CACF;AACF,GAEMoB,yBAA2BtS,IAAAA,GAEpBuS,KAAsBA,CAAC5B,MAAuB;AACzD,QAAM6B,IAAgBF,GAAqB9P,IAAImO,CAAU;AAEzD,MAAI6B;AACF,WAAOA;AAGT,QAAMC,IAAQtB,GAAuB;AAAA,IAAER,YAAAA;AAAAA,EAAAA,CAAY;AACnD2B,SAAAA,GAAqB/R,IAAIoQ,GAAY8B,CAAK,GAEnCA;AACT,GAEaC,KAAsBA,CAAA/B,GAAAgC,MAAA;AAAA,QAAAve,IAAAC,EAAA,CAAA;AAAA,MAAAO;AAAA,SAAAR,SAAAuc,KACnB/b,IAAA2d,GAAoB5B,CAAU,GAACvc,OAAAuc,GAAAvc,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GACtCwe,GADOhe,GACS+d,CAAQ;AAAC,GCrHrBE,KAAoB3e,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA,GAC/B;AAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAAqBJ;AAErB,MAAI,CAACI;AAAQ,WACJ;AACR,MAAAM;AAAA,SAAAR,SAAAE,KAGCM,IAAA,gBAAAC,EAACuC,GAAA,EAAO,IAAA,KAAO,IAAA,KAAO,IAAA,MAAc,UAAA,UAAgB,QAAA,KAAa,UAAA,UAC9D9C,UAAAA,GACH,GAAMF,OAAAE,GAAAF,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAFNQ;AAEM,GCRGke,KAAoB5e,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA,GAC/B;AAAA,IAAAC,UAAAA;AAAAA,IAAA0D,SAAAA;AAAAA,EAAAA,IAA8B9D;AAAM,MAAAU;AAAA,EAAAR,SAAAE,KAIhCM,sBAACqJ,GAAA,EAAY,MAAA,KAAS,MAAA,KACnB3J,UAAAA,GACH,GAASF,OAAAE,GAAAF,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAAW;AAAA,EAAAX,SAAA4D,KACRjD,IAAAiD,IACC,gBAAAnD,EAAC8E,IAAA,EAAmB,SAAA,SAAa,MAAA,MAAgB,cAAA,gBAAwB3B,SAAAA,GACvE,UAAA,gBAAAnD,EAACke,IAAA,EAAqB,MAAA,GAAA,CAAE,GAC1B,IAHD,MAIO3e,OAAA4D,GAAA5D,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,SAAAb,EAAA,CAAA,MAAAQ,KAAAR,SAAAW,KARVE,sBAACgJ,GAAA,EAAe,SAAA,iBAAsB,OAAA,UAAY,IAAA,KAAO,IAAA,KAAO,IAAA,MAAc,UAAA,UAAa,KAAA,KAAW,QAAA,KACpGrJ,UAAAA;AAAAA,IAAAA;AAAAA,IAGCG;AAAAA,EAAAA,GAKH,GAASX,OAAAQ,GAAAR,OAAAW,GAAAX,OAAAa,KAAAA,IAAAb,EAAA,CAAA,GATTa;AASS,GCbA+d,KAAc9e,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACzB;AAAA,IAAAsc,YAAAA;AAAAA,IAAAV,UAAAA;AAAAA,IAAAX,cAAAA;AAAAA,IAAA2D,QAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAA/b,OAAAvC;AAAAA,IAAAue,UAAApe;AAAAA,IAAAqe,YAAAne;AAAAA,IAAAsa,YAAAA;AAAAA,IAAA8D,cAAAA;AAAAA,EAAAA,IAWInf,GALFiD,IAAAvC,MAAA2B,SAAA,UAAA3B,GACAue,IAAApe,MAAAwB,SAAA,KAAAxB,GACAqe,IAAAne,MAAAsB,SAAA,wBAAAtB,GAKF8C,IAAa2a,GAAoB/B,GAAYtT,EAAqB,GAClE6S,IAAyBwC,GAAoB/B,GAAYnT,EAAiC,GAC1F6R,IAAsBqD,GAAoB/B,GAAYvT,EAA8B,GACpFsU,IAAqBgB,GAAoB/B,GAAY2C,EAA6B,GAClF1B,IAAsBc,GAAoB/B,GAAY4C,EAA8B,GACpF1B,IAAmBa,GAAoB/B,GAAY6C,EAA2B;AAAE,MAAA9c,GAAAC;AAMhF,MANgFvC,EAAA,CAAA,MAAAif,KAAAjf,SAAA2D,KAEtErB,IAAAA,MAAA;AACR2c,IAAAA,IAAetb,CAAI;AAAA,EAAC,GACnBpB,IAAA,CAAC0c,GAActb,CAAI,GAAC3D,OAAAif,GAAAjf,OAAA2D,GAAA3D,OAAAsC,GAAAtC,OAAAuC,MAAAD,IAAAtC,EAAA,CAAA,GAAAuC,IAAAvC,EAAA,CAAA,IAFvBsN,GAAUhL,GAEPC,CAAoB,GAEnB,CAACoB,KAADob;AAAiB,WACZ;AAeuB,QAAAvc,IAAAuc,IAAAzB,IAAAnb;AAAmC,MAAAmD;AAAA,EAAAtF,EAAA,CAAA,MAAA6e,KAAA7e,SAAAwC,KAA/D8C,IAAA,gBAAA7E,EAACie,IAAA,EAA2B,SAAAlc,GAAsCqc,UAAAA,GAAO,GAAoB7e,OAAA6e,GAAA7e,OAAAwC,GAAAxC,OAAAsF,KAAAA,IAAAtF,EAAA,CAAA;AAAA,MAAAwF;AAAA,EAAAxF,EAAA,CAAA,MAAAkb,KAAAlb,EAAA,CAAA,MAAAgf,KAAAhf,EAAA,CAAA,MAAAib,KAAAjb,EAAA,EAAA,MAAA8b,KAAA9b,EAAA,EAAA,MAAAmb,KAAAnb,EAAA,EAAA,MAAA6b,KAAA7b,EAAA,EAAA,MAAAyd,KAAAzd,UAAAwd,KAE7FhY,sBAACY,IAAA,EAAgB,MAAA,KACdyV,UAAAA,EAAQza,WAAY,IACnB,gBAAAX,EAACyC,GAAA,EAAe,WAAA,uBAA4B,OAAA,YAAa,GAAA,KACtD8b,UAAAA,GACH,IAEA,gBAAAve,EAACmb,IAAA,EACWC,UAAAA,GACQC,kBAAAA,GACHb,eAAAA,GACDC,cAAAA,GACFC,YAAAA,GACKqC,oBACHC,iBAAU,GAG9B,GAAazd,OAAAkb,GAAAlb,OAAAgf,GAAAhf,OAAAib,GAAAjb,QAAA8b,GAAA9b,QAAAmb,GAAAnb,QAAA6b,GAAA7b,QAAAyd,GAAAzd,QAAAwd,GAAAxd,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA;AAAA,MAAA0F;AAAA,EAAA1F,UAAA8e,KAEbpZ,sBAAC+Y,mBAA0B,GAAoBze,QAAA8e,GAAA9e,QAAA0F,KAAAA,IAAA1F,EAAA,EAAA;AAAA,MAAA2F;AAAA,SAAA3F,EAAA,EAAA,MAAAsF,KAAAtF,EAAA,EAAA,MAAAwF,KAAAxF,EAAA,EAAA,MAAA0F,KAAA1F,UAAA+C,KA/BjD4C,sBAACgD,IAAA,EACI,IAAA,SACO,WAAA,UACR,GAAA,QACC5F,GAAAA,GACGA,MAAAA,GACAA,MAAAA,GACW,kBAAA,OACA,kBAAA,gBACd,IAAA,MAEHuC,UAAAA;AAAAA,IAAAA;AAAAA,IAEAE;AAAAA,IAkBAE;AAAAA,EAAAA,GACF,GAAO1F,QAAAsF,GAAAtF,QAAAwF,GAAAxF,QAAA0F,GAAA1F,QAAA+C,GAAA/C,QAAA2F,KAAAA,IAAA3F,EAAA,EAAA,GAhCP2F;AAgCO;AA9DgB,SAAAsD,GAAAgN,GAAA;AAAA,SAc+BA,EAAKtS;AAAK;AAdzC,SAAAyF,GAAAiW,GAAA;AAAA,SAe2CpJ,EAAK6F;AAAiB;AAfjE,SAAA9S,GAAAsW,GAAA;AAAA,SAgBwCrJ,EAAKgF;AAAc;AAhB3D,SAAAiE,GAAAK,GAAA;AAAA,SAiBuCtJ,EAAKqH;AAAa;AAjBzD,SAAA6B,GAAAK,GAAA;AAAA,SAkBwCvJ,EAAKuH;AAAc;AAlB3D,SAAA4B,GAAAK,GAAA;AAAA,SAmBqCxJ,EAAKwH;AAAW;AClBzE,MAAMiC,KAAS9f,GAAMC,WAA0C,SAAAC,GAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC,GAAA8B,GAAA3B,GAAA4B,GAAAzB,GAAAmf,GAAAC;AAAA,EAAA5f,SAAAF,KACpE;AAAA,IAAAkC,YAAAA;AAAAA,IAAA9B,UAAAA;AAAAA,IAAA+B,SAAAA;AAAAA,IAAA2d,YAAAA;AAAAA,IAAAD,YAAAA;AAAAA,IAAAzd,UAAA1B;AAAAA,IAAA,GAAAH;AAAAA,EAAAA,IAA6FP,GAAME,OAAAF,GAAAE,OAAAE,GAAAF,OAAAgC,GAAAhC,OAAAK,GAAAL,OAAAiC,GAAAjC,OAAAQ,GAAAR,OAAA2f,GAAA3f,OAAA4f,MAAA1f,IAAAF,EAAA,CAAA,GAAAgC,IAAAhC,EAAA,CAAA,GAAAK,IAAAL,EAAA,CAAA,GAAAiC,IAAAjC,EAAA,CAAA,GAAAQ,IAAAR,EAAA,CAAA,GAAA2f,IAAA3f,EAAA,CAAA,GAAA4f,IAAA5f,EAAA,CAAA;AAApC,QAAAkC,IAAA1B,MAAA2B,SAAA,KAAA3B,GAC/D4B,IAA0BF,IAAA,gBAAA;AAAqC,MAAAvB;AAAA,EAAAX,EAAA,CAAA,MAAAgC,KAAAhC,SAAAD,KAI3DY,wCAA+BZ,KAAAA,GAAG,GAAMiC,GAAU,GAAIhC,OAAAgC,GAAAhC,OAAAD,GAAAC,QAAAW,KAAAA,IAAAX,EAAA,EAAA;AAAA,MAAAa;AAAA,EAAAb,UAAA2f,KAGjD9e,IAAA8e,uBACCE,GAAA,gBAAA,EAAuC,UAAAF,GAAUG,KAAQH,UAAAA,GAAUI,GAAAA,CAAK,GACzE/f,QAAA2f,GAAA3f,QAAAa,KAAAA,IAAAb,EAAA,EAAA;AAAA,MAAAsC;AAAA,EAAAtC,UAAAa,KAHHyB,sBAAAud,GAAA,OAAA,EAAiC,cAAA,QAC9Bhf,UAAAA,GAGH,GAAqBb,QAAAa,GAAAb,QAAAsC,KAAAA,IAAAtC,EAAA,EAAA;AAAA,MAAAuC;AAAA,EAAAvC,UAAA4f,KACpBrd,IAAAqd,uBAAcC,GAAA,WAAA,EAAkC,UAAAD,EAAUE,KAAOF,UAAAA,EAAUG,GAAAA,CAAI,GAAyB/f,QAAA4f,GAAA5f,QAAAuC,KAAAA,IAAAvC,EAAA,EAAA;AAAA,MAAAwC;AAAA,EAAAxC,EAAA,EAAA,MAAAoC,KAAApC,UAAAsC,KAAAtC,EAAA,EAAA,MAAAuC,KAN3GC,oCAAmC,cAAA,MAAaJ,QAAAA,GAC9CE,UAAAA;AAAAA,IAAAA;AAAAA,IAKCC;AAAAA,EAAAA,GACH,GAAuBvC,QAAAoC,GAAApC,QAAAsC,GAAAtC,QAAAuC,GAAAvC,QAAAwC,KAAAA,IAAAxC,EAAA,EAAA;AAAA,MAAAsF;AAAA,EAAAtF,EAAA,EAAA,MAAAE,KAAAF,UAAAoC,KACtBkD,IAAApF,KAAY,QAAQ,gBAAAO,EAAAof,GAAA,OAAA,EAA4Bzd,QAAAA,GAAoBlC,UAAAA,GAAS,GAAqBF,QAAAE,GAAAF,QAAAoC,GAAApC,QAAAsF,KAAAA,IAAAtF,EAAA,EAAA;AAAA,MAAAwF;AAAA,SAAAxF,EAAA,EAAA,MAAAkC,KAAAlC,EAAA,EAAA,MAAAoC,KAAApC,EAAA,EAAA,MAAAK,KAAAL,UAAAiC,KAAAjC,EAAA,EAAA,MAAAW,KAAAX,EAAA,EAAA,MAAAwC,KAAAxC,EAAA,EAAA,MAAAsF,KAVrGE,IAAA,gBAAA5E,EAAAif,GAAA,MAAA,EAAwB5d,KAAAA,GAAmBC,UAAAA,GAAkBE,QAAAA,GAAiB,GAAM/B,GAClFM,UAAAA;AAAAA,IAAAA;AAAAA,IACA6B;AAAAA,IAQC8C;AAAAA,EAAAA,GACH,GAAoBtF,QAAAkC,GAAAlC,QAAAoC,GAAApC,QAAAK,GAAAL,QAAAiC,GAAAjC,QAAAW,GAAAX,QAAAwC,GAAAxC,QAAAsF,GAAAtF,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA,GAXpBwF;AAWoB,CAEvB,GCEYwa,KAAalgB,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACxB;AAAA,IAAAggB,UAAAA;AAAAA,IAAAC,YAAA1f;AAAAA,IAAA2f,uBAAAA;AAAAA,IAAAC,wBAAAA;AAAAA,IAAA7f,OAAAA;AAAAA,IAAA8f,QAAA1f;AAAAA,IAAA2f,eAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAhN,YAAA1S;AAAAA,IAAA2f,WAAAA;AAAAA,IAAAC,aAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAA/e,SAAAA;AAAAA,IAAAgf,kBAAAA;AAAAA,IAAAC,yBAAAA;AAAAA,EAAAA,IAgBI9gB;AAAM,MAAAwC;AAAA,EAAAtC,SAAAQ,KAdR8B,IAAA9B,MAAA2B,SAAA,CAAA,IAAA3B,GAAeR,OAAAQ,GAAAR,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AAAf,QAAAkgB,IAAA5d;AAAe,MAAAC;AAAA,EAAAvC,SAAAW,KAIf4B,IAAA5B,MAAAwB,SAAA,CAAA,IAAAxB,GAAWX,OAAAW,GAAAX,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAAX,QAAAqgB,IAAA9d,GAGAgR,IAAA1S,MAAAsB,SAAA,KAAAtB;AAAkB,MAAA2B;AAAA,EAAAxC,SAAA2gB,KASSne,IAAA0C,CAAAA,MAAA;AAC3BA,IAAAA,EAAKC,gBAAAA,GACLwb,IAAAA;AAAAA,EAAoB,GACrB3gB,OAAA2gB,GAAA3gB,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAHD,QAAA6gB,IAA6Bre;AAG3B,MAAA8C;AAAA,EAAAtF,SAAA4gB,KAEkCtb,IAAAiP,CAAAA,MAAA;AAClCrP,IAAAA,EAAKC,gBAAAA,GACLyb,IAAAA;AAAAA,EAA2B,GAC5B5gB,OAAA4gB,GAAA5gB,OAAAsF,KAAAA,IAAAtF,EAAA,CAAA;AAHD,QAAA8gB,IAAoCxb;AAGlC,MAAAE;AAAA,EAAAxF,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAYU6C,IAAA;AAAA,IAAAub,aACO;AAAA,IAAaC,WACf;AAAA,EAAA,GACZhhB,OAAAwF,KAAAA,IAAAxF,EAAA,CAAA;AACO,QAAA0F,IAAA8a,IAAA,SAAqB7e,IAAA,YAAA,WAKdgE,IAAA4N,IAAA,SAAApR;AAA+B,MAAA0D;AAAA,EAAA7F,SAAAkgB,KAKvCra,IAAAqa,EAAU9e,SAAU,KACnB,gBAAAR,EAACsC,KAAQ,IAAA,QAAa,OAAA,UACnBgd,UAAAA;AAAAA,IAAAA,EAAUe,KAAM,KAAK;AAAA,IAAE;AAAA,IAAG;AAAA,EAAA,GAC7B,GACDjhB,OAAAkgB,GAAAlgB,QAAA6F,KAAAA,IAAA7F,EAAA,EAAA;AAAA,MAAA+F;AAAA,EAAA/F,EAAA,EAAA,MAAA6F,KAAA7F,UAAAigB,KALHla,sBAAC7C,GAAA,EAAe,WAAA,mBAA8B,YAAA,GAC3C2C,UAAAA;AAAAA,IAAAA;AAAAA;KAMH,GAAO7F,QAAA6F,GAAA7F,QAAAigB,GAAAjgB,QAAA+F,KAAAA,IAAA/F,EAAA,EAAA;AAAA,MAAAmG;AAAA,EAAAnG,EAAA,EAAA,MAAA8gB,KAAA9gB,EAAA,EAAA,MAAA4gB,KAAA5gB,EAAA,EAAA,MAAAmgB,KAAAngB,UAAAogB,KACNja,IAAAga,IACC,gBAAA1f,EAACkU,IAAA,EAAiB,SAAA,WAAWwL,CAAqB,IAChD,UAAA,gBAAA1f,EAACwZ,IAAA,EACSmG,QAAAA,GACA,SAAA,QACI,cAAA,WAAWD,CAAqB,IACpC,QAAAS,IAAA,YAAA,WACC,SAAAA,IAAAE,IAAA3e,OAAAA,CAAiE,EAAA,CAE9E,IATD,MAUOnC,QAAA8gB,GAAA9gB,QAAA4gB,GAAA5gB,QAAAmgB,GAAAngB,QAAAogB,GAAApgB,QAAAmG,KAAAA,IAAAnG,EAAA,EAAA;AAAA,MAAAoP;AAAA,EAAApP,EAAA,EAAA,MAAA+F,KAAA/F,UAAAmG,KAnBViJ,sBAACvF,GAAA,EAAW,KAAA,OAAkB,eAC5B9D,UAAAA;AAAAA,IAAAA;AAAAA,IAQCI;AAAAA,EAAAA,GAWH,GAASnG,QAAA+F,GAAA/F,QAAAmG,GAAAnG,QAAAoP,KAAAA,IAAApP,EAAA,EAAA;AAAA,MAAAqP;AAAA,EAAArP,EAAA,EAAA,MAAAsgB,KAAAtgB,UAAAugB,KAAAvgB,EAAA,EAAA,MAAA6gB,KACRxR,IAAA,OAAOiR,KAAkB,YAAY,OAAOC,KAAkB,WAC7D,gBAAA9f,EAACmF,IAAA,EACY0a,WAAAA,GACAC,WAAAA,GACH,SAAA,SACH,MAAA,SACE,yBAACW,IAAA,EAAmB,MAAA,MAAI,GACtBL,SAAAA,GACG,eAAA,oBAAA,CAAmB,IARlC,MAUO7gB,QAAAsgB,GAAAtgB,QAAAugB,GAAAvgB,QAAA6gB,GAAA7gB,QAAAqP,KAAAA,IAAArP,EAAA,EAAA;AAAA,MAAAsP;AAAA,EAAAtP,EAAA,EAAA,MAAAoP,KAAApP,UAAAqP,KAhCVC,sBAACzF,GAAA,EAAuB,gBAAA,iBAAqB,KAAA,OAAe,UAAA,QAC1DuF,UAAAA;AAAAA,IAAAA;AAAAA,IAqBCC;AAAAA,EAAAA,GAWH,GAASrP,QAAAoP,GAAApP,QAAAqP,GAAArP,QAAAsP,KAAAA,IAAAtP,EAAA,EAAA;AAAA,MAAAuP;AAAA,EAAAvP,UAAAO,KAETgP,sBAAC1F,GAAA,EAAa,OAAA,SAAY,KAAA,OAAe,UAAA,QACvC,UAAA,gBAAApJ,EAACyC,GAAA,EAAe,WAAA,mBAAuB,MAAA,KAAS,MAAA,kBAEhD,GACF,GAASlD,QAAAO,GAAAP,QAAAuP,KAAAA,IAAAvP,EAAA,EAAA;AAAA,MAAAwP;AAAA,EAAAxP,UAAAqgB,KAER7Q,IAAA6Q,EAAMjf,SAAU,KACf,gBAAAX,EAAC0gB,IAAA,EAAS,KAAA,OACPd,UAAAA,EAAMve,IAAKmH,EAIX,EAAA,CACH,GACDjJ,QAAAqgB,GAAArgB,QAAAwP,KAAAA,IAAAxP,EAAA,EAAA;AAAA,MAAA0P;AAAA,SAAA1P,EAAA,EAAA,MAAAwgB,KAAAxgB,EAAA,EAAA,MAAA2B,KAAA3B,UAAA0gB,KAAA1gB,EAAA,EAAA,MAAAygB,KAAAzgB,EAAA,EAAA,MAAAsP,KAAAtP,EAAA,EAAA,MAAAuP,KAAAvP,EAAA,EAAA,MAAAwP,KAAAxP,EAAA,EAAA,MAAA0F,KAAA1F,UAAA2F,KArEH+J,sBAAC1L,GAAA,EACK,KAAA,MACI,SAAA,MACK,cAAA,MACD,aAAA,OACN,OAAA,oBACI,WAAA,UACC,YAAA,MACA,YAAA,8DACH,QAAAwB,GAIA,QAAAE,GACG8a,WAAAA,GACEC,aAAAA,GACFC,WAAAA,GACF/e,SAAAA,GACM,iBAAAgE,GAEf2J,UAAAA;AAAAA,IAAAA;AAAAA,IAmCAC;AAAAA,IAMCC;AAAAA,EAAAA,GASH,GAAQxP,QAAAwgB,GAAAxgB,QAAA2B,GAAA3B,QAAA0gB,GAAA1gB,QAAAygB,GAAAzgB,QAAAsP,GAAAtP,QAAAuP,GAAAvP,QAAAwP,GAAAxP,QAAA0F,GAAA1F,QAAA2F,GAAA3F,QAAA0P,KAAAA,IAAA1P,EAAA,EAAA,GAtER0P;AAsEQ;AApGc,SAAAzG,GAAAmY,GAAA;AAAA,SA8Fd,gBAAA3gB,EAAC0I,IAAA,EAAgC,SAAA,UAAuB,cAAAiY,EAAKzU,SAAL,QAAiC,WAAA,mBACtFyU,UAAAA,EAAKxK,MAAAA,GADIwK,EAAKxK,KAEjB;AAAQ;ACpFb,MAAMyK,KAAcvhB,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACzB;AAAA,IAAAqhB,SAAAA;AAAAA,IAAAC,gBAAA/gB;AAAAA,IAAAghB,YAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,EAAAA,IAAsF5hB,GAArEyhB,IAAA/gB,MAAA2B,SAAA,OAAA3B,GAEjB,CAAAmhB,GAAAC,CAAA,IAAwCte,GAAwB,IAAI,GAEpEue,IAAwB5Y;AAGtB,MAAAtI;AAAA,EAAAX,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAEoBhC,IAAAA,MAAA;AACpBihB,IAAAA,EAAgB,IAAI;AAAA,EAAC,GACtB5hB,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAFD,QAAA8hB,IAAsBnhB;AAEpB,MAAAE;AAAA,EAAAb,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAEqB9B,IAAAkhB,OAAsBxN,CAAAA,MAAA;AAC3CrP,IAAAA,EAAKmP,eAAAA,GACLnP,EAAK8c,aAAaC,aAAc,QAChCL,EAAgBG,CAAQ;AAAA,EAAC,GAC1B/hB,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAJD,QAAAkiB,IAAuBrhB;AAIrB,MAAAyB;AAAA,EAAAtC,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAEsBL,IAAA6f,CAAAA,MAAA;AACtB,IAAIjd,EAAKkd,cAAc7X,SAAUrF,EAAKmd,aAAsB,KAC5DT,EAAgB,IAAI;AAAA,EAAC,GACtB5hB,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AAHD,QAAAsiB,IAAwBhgB;AAGtB,MAAAC;AAAA,EAAAvC,SAAAwhB,KAEiBjf,IAAAggB,OAAsBC,CAAAA,MAAA;AACvCtd,IAAAA,EAAKmP,eAAAA,GACLuN,EAAgB,IAAI;AAEpB,UAAAa,IAAevd,EAAK8c,aAAaU,QAAS,YAAY;AACtD,IAAKC,KAELnB,IAAamB,GAAQZ,CAAQ;AAAA,EAAC,GAC/B/hB,OAAAwhB,GAAAxhB,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AARD,QAAA4iB,IAAmBrgB;AAQjB,MAAAC;AAAA,EAAAxC,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAOgBH,IAAA;AAAA,IAAAM,SAAW;AAAA,IAAM+f,YAAc;AAAA,IAASC,KAAO;AAAA,IAAGC,IAAM;AAAA,IAAKC,MAAQ;AAAA,EAAA,GAAQhjB,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAAA,MAAAsF;AAAA,MAAAtF,SAAA2hB,KAAA3hB,EAAA,CAAA,MAAAshB,KAAAthB,EAAA,CAAA,MAAA4iB,KAAA5iB,EAAA,CAAA,MAAA0hB,KAAA1hB,UAAAyhB,KAAAzhB,EAAA,EAAA,MAAAuhB,GAAA;AAAA,QAAA/b;AAAA,IAAAxF,EAAA,EAAA,MAAA2hB,KAAA3hB,EAAA,EAAA,MAAA4iB,KAAA5iB,EAAA,EAAA,MAAA0hB,KAAA1hB,EAAA,EAAA,MAAAyhB,KAAAzhB,UAAAuhB,KAE9E/b,IAAAyd,CAAAA,MACX,gBAAAriB,EAACoD,GAAA,EAEK,KAAA,MACO,WAAA;AAAA,MAAAkf,YAAc;AAAA,MAAWnC,aAAe;AAAA,IAAA,GACvC,YAAAY,MAAiBsB,EAAM9X,KAAvB,cAAA,MACD,YAAA,yBACJ,QAAA,QACF,MAAA,SACI,UAAA,UACJ,MAAA,SACA,MAAA,aACO,YAAA8X,EAAME,YAAajB,EAAee,EAAM9X,EAAe,IAAvDhJ,QACC,aAAA8gB,EAAME,YAANb,IAAAngB,QACL,QAAA8gB,EAAME,YAAaP,EAAWK,EAAM9X,EAAe,IAAnDhJ,QAER,UAAA;AAAA,MAAA,gBAAA1B,EAAC2iB,IAAA,EAAqBH,QAAAA,GAAuBxB,eAAAA,GAA+BC,gBAAAA,EAAAA;wBAE3Etb,IAAA,EAAgB,MAAA,KAAS,MAAA,KAAkB,cAAA;AAAA,QAAAsB,QAAU;AAAA,MAAA,GACnDub,UAAAA,EAAMjiB,MAAMc,IAAKT,OAChB,gBAAAZ,EAACuf,IAAA,KAEK3e,EAAIgiB,WACI,YAAAhiB,EAAI8J,OAAQoW,GACb,WAAA0B,EAAMK,YACJ,aAAAL,EAAMK,aAAczB,EAAgBxgB,EAAI8J,EAAe,IAAvDhJ,QACF,WAAA8gB,EAAMK,aAANxB,IAAA3f,OAAAA,GALNd,EAAI8J,GAOZ,EAAA,CACH;AAAA,IAAA,EAAA,GA3BK8X,EAAM9X,EA4Bb,GACDnL,QAAA2hB,GAAA3hB,QAAA4iB,GAAA5iB,QAAA0hB,GAAA1hB,QAAAyhB,GAAAzhB,QAAAuhB,GAAAvhB,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA,GA/BAsF,IAAAgc,EAAOxf,IAAK0D,CA+BZ,GAACxF,OAAA2hB,GAAA3hB,OAAAshB,GAAAthB,OAAA4iB,GAAA5iB,OAAA0hB,GAAA1hB,QAAAyhB,GAAAzhB,QAAAuhB,GAAAvhB,QAAAsF;AAAAA,EAAA;AAAAA,IAAAA,IAAAtF,EAAA,EAAA;AAAA,MAAAwF;AAAA,SAAAxF,UAAAsF,KArCJE,IAAA,gBAAA/E,EAAC2F,IAAA,EACQ,QAAA,QACP,yBAAA,IACuB,uBAAA,IACT,cAAA5D,GAEb8C,UAAAA,EAAAA,CAgCH,GAAatF,QAAAsF,GAAAtF,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA,GAtCbwF;AAsCa,GAUX4d,KAAetjB,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACnB;AAAA,IAAAgjB,QAAAA;AAAAA,IAAAxB,eAAAA;AAAAA,IAAAC,gBAAAA;AAAAA,EAAAA,IAAkD5hB;AAAM,MAAAU;AAAA,EAAAR,EAAA,CAAA,MAAAijB,EAAArM,SAIpDpW,IAAA,gBAAAC,EAACyC,GAAA,EAAe,WAAA,kBAAkB+f,YAAMrM,OAAO,GAAO5W,EAAA,CAAA,IAAAijB,EAAArM,OAAA5W,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAEhB,QAAAW,IAAAsiB,EAAMtW,SAAN;AAAsB,MAAA9L;AAAA,EAAAb,EAAA,CAAA,MAAAijB,EAAAjiB,MAAAI,UAAApB,EAAA,CAAA,MAAAW,KAA5DE,IAAA,gBAAAJ,EAAC0I,MAAc,SAAA,UAAuB,cAAAxI,GACnCsiB,UAAAA,EAAMjiB,MAAMI,OAAAA,CACf,GAAQpB,EAAA,CAAA,IAAAijB,EAAAjiB,MAAAI,QAAApB,OAAAW,GAAAX,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAsC;AAAA,EAAAtC,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAERL,sBAACihB,IAAA,EAAM,GAAGvjB,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AAAA,MAAAuC;AAAA,EAAAvC,EAAA,CAAA,MAAAijB,EAAAO,aAAAxjB,EAAA,CAAA,MAAAijB,EAAA9X,MAAAnL,SAAAyhB,KAETlf,IAAA0gB,EAAMO,aAAN/B,KACC,gBAAAhhB,EAACkU,IAAA,EAAgB,SAAA,qBACf,UAAA,gBAAAlU,EAAC8E,IAAA,EAAgB,MAAA,OAAc,SAAA,WAAmB,SAAA,MAAMkc,EAAcwB,EAAM9X,EAAG,GAAc,cAAA,iBAC3F,UAAA,gBAAA1K,EAACwO,IAAA,EAASwU,IAAAA,IAAc,SAAA,OAAA,CAAM,EAAA,CAChC,GACF,GACDzjB,EAAA,CAAA,IAAAijB,EAAAO,WAAAxjB,EAAA,CAAA,IAAAijB,EAAA9X,IAAAnL,OAAAyhB,GAAAzhB,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAAA,MAAAwC;AAAA,EAAAxC,UAAAijB,EAAArI,WAAA5a,UAAAijB,EAAA9X,MAAAnL,UAAAijB,EAAArM,SAAA5W,UAAA0hB,KAEAlf,IAAAygB,EAAMrI,QAAQxZ,SAAU,KACvB,gBAAAR,EAAA8U,GAAA,MAAA,EACE,UAAA;AAAA,IAAA,gBAAAjV,EAAAiV,GAAA,SAAA,EAAc,SAAA,IACZ,UAAA,gBAAAjV,EAAC8E,IAAA,EAAgB,MAAA,OAAc,SAAA,SAAoB,cAAA,sBAAsB0d,EAAMrM,KAAM,IACnF,UAAA,gBAAAnW,EAACwO,IAAA,EAASyU,IAAAA,IAAwB,SAAA,OAAA,CAAM,EAAA,CAC1C,EAAA,CACF;AAAA,sBACAhO,GAAA,YAAA,EACE,UAAA,gBAAAjV,EAAAiV,GAAA,SAAA,EAAmB,MAAA,SAAW,IAAA,MAC3BuN,UAAAA,EAAMrI,QAAQ9Y,IAAK6P,OAClB,gBAAAlR,EAAC+R,IAAA,EAEe,cAAAb,EAAMiF,OACV,UAAAjF,EAAMvR,MACP,SAAA,MAAMshB,IAAiBuB,EAAM9X,IAAKwG,EAAMxG,EAAG,EAAA,GAH/CwG,EAAMxG,EAG0C,CAExD,GACH,EAAA,CACF;AAAA,EAAA,GACF,GACDnL,EAAA,EAAA,IAAAijB,EAAArI,SAAA5a,EAAA,EAAA,IAAAijB,EAAA9X,IAAAnL,EAAA,EAAA,IAAAijB,EAAArM,OAAA5W,QAAA0hB,GAAA1hB,QAAAwC,KAAAA,IAAAxC,EAAA,EAAA;AAAA,MAAAsF;AAAA,SAAAtF,EAAA,EAAA,MAAAQ,KAAAR,EAAA,EAAA,MAAAa,KAAAb,EAAA,EAAA,MAAAuC,KAAAvC,UAAAwC,KArCH8C,sBAACuE,GAAA,EAAe,SAAA,MAAS,KAAA,MAAgB,YAAA,UACvCrJ,UAAAA;AAAAA,IAAAA;AAAAA,IAEAK;AAAAA,IAIAyB;AAAAA,IAECC;AAAAA,IAQAC;AAAAA,EAAAA,GAqBH,GAASxC,QAAAQ,GAAAR,QAAAa,GAAAb,QAAAuC,GAAAvC,QAAAwC,GAAAxC,QAAAsF,KAAAA,IAAAtF,EAAA,EAAA,GAtCTsF;AAsCS;AA9Hc,SAAA2D,GAAA0Z,GAAA;AAAA,SAKmBzd,CAAAA,MAAA;AAC1CA,IAAAA,EAAK8c,aAAa2B,QAAS,cAAchB,CAAM,GAC/Czd,EAAK8c,aAAa4B,gBAAiB;AAAA,EAAH;AACjC;AChBH,MAAMtC,KAAgD,CACpD;AAAA,EACEnW,IAAI;AAAA,EACJ0T,QAAQ;AAAA,EACRgF,MAAMA,CAAC;AAAA,IAAEC,KAAAA;AAAAA,EAAAA,MAAU,gBAAArjB,EAACsjB,IAAA,EAAW,KAAAD,EAAA,CAAS;AAC1C,CAAC,GAGUE,KAAaA,CAAClkB,MAA2B;AACpD,QAAM;AAAA,IAAEkB,OAAAA;AAAAA,IAAOugB,gBAAAA,IAAiB;AAAA,IAAM0C,aAAAA;AAAAA,EAAAA,IAAgBnkB,GAEhDokB,IAAQC,GAAc;AAAA,IAC1BC,MAAMpjB;AAAAA,IACNsgB,SAAAA;AAAAA,IACArL,OAAO;AAAA,MAAEoF,UAAU;AAAA,IAAA;AAAA,IACnBgJ,YAAaP,OAAQA,EAAI5jB;AAAAA,IACzBokB,iBAAiBA,GAAAA;AAAAA,IACjBC,qBAAqBA,GAAAA;AAAAA,IACrBC,UAAWV,OAAQA,EAAI3Y;AAAAA,EAAAA,CACxB;AAED,2BACGnI,GAAA,EACEkhB,UAAAA,EAAMO,cAAcC,KAAK5iB,IAAKgiB,CAAAA,MAAQ;AACrC,UAAMziB,IAAOyiB,EAAIa,UACXpR,IAAalS,EAAK8J,OAAOoW;AAE/B,6BACG1X,GAAA,EAEC,UAAS,MACT,UAAS,MACT,KAAI,MACJ,QAAO,WACP,mBAAkB,OAClB,aAAY,gBACZ,YAAY0J,IAAa,aAAa,eACtC,QAAQ;AAAA,MAAE3B,YAAY;AAAA,IAAA,GACtB,SAAS,MAAM;AACbvQ,MAAAA,EAAKM,UAAAA,GACLsiB,IAAc5iB,CAAI;AAAA,IACpB,GACA,iBAAekS,IAAa,SAASpR,QAEpCyiB,UAAAA,GAAWd,EAAIe,gBAAAA,EAAkB,CAAC,EAAE5B,OAAO6B,UAAUjB,MAAMC,EAAIe,kBAAkB,CAAC,EAAEE,YAAY,EAAA,GAf5FjB,EAAI3Y,EAgBX;AAAA,EAEJ,CAAC,EAAA,CACH;AAEJ,GAMM4Y,KAAajkB,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACjB;AAAA,IAAA6jB,KAAAA;AAAAA,EAAAA,IAAgBhkB,GAChBuB,IAAayiB,EAAGa,UAChBK,IAAclB,EAAGkB,OAGwBxkB,IAAAwkB,IAAQ,IAAR,GAAeA,IAAQ,EAAE,OAAzB7iB;AAAyC,MAAAxB;AAAA,EAAAX,EAAA,CAAA,MAAAglB,KAAAhlB,SAAA8jB,KAC7EnjB,IAAAmjB,EAAGmB,aAAAA,IAAkB,gBAAAxkB,EAACykB,IAAA,EAAkBpB,KAAAA,EAAAA,CAAG,IAAOkB,IAAQ,IAAI,gBAAAvkB,EAAC0kB,IAAA,CAAA,CAAa,IAA1B,MAAoCnlB,OAAAglB,GAAAhlB,OAAA8jB,GAAA9jB,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAAA,MAAAa;AAAA,EAAAb,EAAA,CAAA,MAAAqB,EAAA+jB,eAAAplB,EAAA,CAAA,MAAAqB,EAAAgkB,cAEtFxkB,IAAAQ,EAAIgkB,cACH,gBAAA5kB,EAACwO,IAAA,EAAS,IAAA5N,EAAIgkB,YAAqB,SAAA,QAAc,OAAAhkB,EAAI+jB,eAAJ,YAA4C,eAAC,GAC/FplB,EAAA,CAAA,IAAAqB,EAAA+jB,aAAAplB,EAAA,CAAA,IAAAqB,EAAAgkB,YAAArlB,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAsC;AAAA,EAAAtC,EAAA,CAAA,MAAAqB,EAAA4e,YAED3d,IAAA,gBAAA7B,EAACyC,GAAA,EAAe,WAAA,mBAAwB,OAAA,YAAuB,eAAQ,MAAA,QACpE7B,UAAAA,EAAI4e,UACP,GAAOjgB,EAAA,CAAA,IAAAqB,EAAA4e,UAAAjgB,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA;AAAA,MAAAuC;AAAA,EAAAvC,EAAA,CAAA,MAAAqB,EAAAd,SAEPgC,IAAA,gBAAA9B,EAACyC,KAAe,WAAA,mBAAuB,MAAA,KAAI,UAAA,IACxC7B,UAAAA,EAAId,MAAAA,CACP,GAAOP,EAAA,CAAA,IAAAqB,EAAAd,OAAAP,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAAA,MAAAwC;AAAA,EAAAxC,EAAA,EAAA,MAAAqB,EAAAgf,UAEN7d,IAAAnB,EAAIgf,UAAWhf,EAAIgf,OAAOjf,SAAU,KACnC,gBAAAX,EAAC0gB,IAAA,EAAS,KAAA,OAAkB,YAAA,GACzB9f,UAAAA,EAAIgf,OAAOve,IAAKmH,EAIhB,GACH,GACDjJ,EAAA,EAAA,IAAAqB,EAAAgf,QAAArgB,QAAAwC,KAAAA,IAAAxC,EAAA,EAAA;AAAA,MAAAsF;AAAA,EAAAtF,EAAA,EAAA,MAAAqB,EAAAikB,gBAEAhgB,IAAAjE,EAAIikB,gBAAiB,gBAAA7kB,EAACuC,KAAgB,YAAA,GAAI3B,YAAIikB,aAAAA,CAAc,GAAMtlB,EAAA,EAAA,IAAAqB,EAAAikB,cAAAtlB,QAAAsF,KAAAA,IAAAtF,EAAA,EAAA;AAAA,MAAAwF;AAAA,EAAAxF,EAAA,EAAA,MAAAqB,EAAAkH,QAElE/C,IAAAnE,EAAIkH,QACH,gBAAA9H,EAACyC,GAAA,EAAe,WAAA,oBAAyB,OAAA,YAAuB,YAAA,GAC7D7B,UAAAA,EAAIkH,MACP,GACDvI,EAAA,EAAA,IAAAqB,EAAAkH,MAAAvI,QAAAwF,KAAAA,IAAAxF,EAAA,EAAA;AAAA,MAAA0F;AAAA,SAAA1F,EAAA,EAAA,MAAAQ,KAAAR,EAAA,EAAA,MAAAW,KAAAX,EAAA,EAAA,MAAAa,KAAAb,EAAA,EAAA,MAAAsC,KAAAtC,EAAA,EAAA,MAAAuC,KAAAvC,EAAA,EAAA,MAAAwC,KAAAxC,EAAA,EAAA,MAAAsF,KAAAtF,UAAAwF,KA/BHE,sBAACmE,GAAA,EAAW,KAAA,MAAU,MAAA,KAAiB,aAAArJ,GACpCG,UAAAA;AAAAA,IAAAA;AAAAA,IAEAE;AAAAA,IAIDyB;AAAAA,IAIAC;AAAAA,IAICC;AAAAA,IAUA8C;AAAAA,IAEAE;AAAAA,EAAAA,GAKH,GAASxF,QAAAQ,GAAAR,QAAAW,GAAAX,QAAAa,GAAAb,QAAAsC,GAAAtC,QAAAuC,GAAAvC,QAAAwC,GAAAxC,QAAAsF,GAAAtF,QAAAwF,GAAAxF,QAAA0F,KAAAA,IAAA1F,EAAA,EAAA,GAhCT0F;AAgCS,GAQPwf,KAAeplB,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA,GACnB;AAAA,IAAA6jB,KAAAA;AAAAA,EAAAA,IAAgBhkB;AAAM,MAAAU;AAAA,EAAAR,SAAA8jB,KAKTtjB,IAAAqR,CAAAA,MAAA;AACPA,IAAAA,EAAC1M,gBAAAA,GACD2e,EAAGyB,eAAAA;AAAAA,EAAiB,GACrBvlB,OAAA8jB,GAAA9jB,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAaY,QAAAW,IAAAmjB,EAAG0B,cAAAA,IAAH,kBAAA;AAAsD,MAAA3kB;AAAA,EAAAb,SAAAW,KAJnEE,IAAA,gBAAAJ,EAACwO,IAAA,EACK5J,QACI,SAAA,QACF,OAAA,YACK,WAAA1E,GACA,YAAA,uBAAA,CAAsB,GACjCX,OAAAW,GAAAX,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAsC;AAAA,SAAAtC,EAAA,CAAA,MAAAQ,KAAAR,SAAAa,KApBJyB,IAAA,gBAAA7B,EAACuC,KACI,IAAA,UACM,SAAAxC,GAIF,QAAA,WACC,SAAA,QACG,YAAA,UACI,gBAAA,UACH,YAAA,GACN,OAAA,QACC,QAAA,QAEPK,UAAAA,EAAAA,CAOF,GAAMb,OAAAQ,GAAAR,OAAAa,GAAAb,OAAAsC,KAAAA,IAAAtC,EAAA,CAAA,GArBNsC;AAqBM,GAIJ6iB,KAAgBA,MAAA;AAAA,QAAAnlB,IAAAC,EAAA,CAAA;AAAA,MAAAO;AAAA,SAAAR,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KACpBnC,IAAA,gBAAAI,EAACoC,KAAU,OAAA,QAAc,QAAA,QAAgB,UAAA,YAAuB,YAAA,GAC9D,UAAA;AAAA,IAAA,gBAAAvC,EAACuC,GAAA,EAAa,UAAA,YAAgB,MAAA,OAAU,KAAA,KAAW,QAAA,OAAsB,iBAAA,OAAkB,aAAA,gBAAc;AAAA,IACzG,gBAAAvC,EAACuC,GAAA,EAAa,UAAA,YAAgB,MAAA,OAAU,KAAA,OAAY,OAAA,OAAwB,mBAAA,OAAkB,aAAA,eAAA,CAAc;AAAA,EAAA,GAC9G,GAAMhD,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAHNQ;AAGM;AA/EW,SAAAyI,GAAAmY,GAAA;AAAA,SAwBP,gBAAA3gB,EAAC0I,IAAA,EAAgC,SAAA,UAAuB,cAAAiY,EAAKzU,SAAL,QAAiC,WAAA,mBACtFyU,UAAAA,EAAKxK,MAAAA,GADIwK,EAAKxK,KAEjB;AAAQ;AClHb,MAAM6O,KAA4CC,GAAc;AAAA,EACrEhR,WAAW;AAAA,EACXiR,iBAAiB;AACnB,CAAC,GAEYC,KAAUA,MAAA;AAAA,QAAA5lB,IAAAC,EAAA,CAAA;AAAA,MAAAO;AAAA,SAAAR,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAEnBnC,IAAA,gBAAAC,EAAColB,IAAA,EACC,UAAA,gBAAAplB,EAACqlB,IAAA,EAAuBL,SAAAA,IAAsB,aAAA;AAAA,IAAAM,QAAU;AAAA,EAAA,GACrD9c,cAWH,GACF,GAASjJ,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAdTQ;AAcS;AAhBU,SAAAyI,GAAA+c,GAAA;AAAA,SAKb,gBAAAplB,EAAAqlB,GAAA,MAAA,EAAmB,OAAA;AAAA,IAAAtc,IAAM;AAAA,EAAA,GACtBqc,UAAAA;AAAAA,IAAAA,EAAKE,SAAU,YAAY,gBAAAzlB,EAAC0lB,IAAA,EAAa,MAAA,MAAW,OAAA,aAAA,KAAkB,gBAAA1lB,EAAAwlB,GAAA,WAAA,CAAA,CAAA;AAAA,sBACtEjiB,GAAA,EAAU,KAAA,KAAS,MAAA,KAAa,UAAA,QAC9BgiB,UAAAA;AAAAA,MAAAA,EAAKzlB,SAAU,gBAAAE,EAAAwlB,GAAA,OAAA,EAAcD,YAAKzlB,OAAO;AAAA,MACzCylB,EAAKld,eAAgB,gBAAArI,oBAAoBulB,YAAKld,YAAAA,CAAa;AAAA,IAAA,GAC9D;AAAA,IACCkd,EAAKrU,UAAW,gBAAAlR,EAAAwlB,GAAA,eAAA,EAAsBD,UAAAA,EAAKrU,OAAOiF,OAAO;AAAA,IACzDoP,EAAKjH,YAAa,gBAAAte,EAAAwlB,GAAA,cAAA,CAAA,CAAA;AAAA,EAAA,GACrB;AAAa;AClBhB,MAAMG,KAAuBA,CAACC,MAA2B;AAC9D,MAAI,OAAOC,WAAa,IAAa;AAErC,QAAMC,IAAOD,SAASE,iBAChBC,IAAOH,SAASG,MAChBC,IAAWL,MAAU,SAAS,UAAU;AAE9C,aAAWM,KAAM,CAACJ,GAAME,CAAI;AAC1B,IAAKE,MACLA,EAAGrc,UAAUsc,OAAOF,CAAQ,GAC5BC,EAAGrc,UAAUuc,IAAIR,CAAK,GACtBM,EAAGG,aAAa,cAAcT,CAAK,GACnCM,EAAGI,MAAMC,cAAcX;AAE3B,GCZMY,KAAc,oBAEdC,KAAyBC,GAAkD,IAAI,GAaxEC,KAA4BA,MAAM;AAC7C,MAAI,OAAOC,SAAW,IAAa,QAAO;AAE1C,QAAMC,IAASD,OAAOrJ,aAAavB,QAAQwK,EAAW;AACtD,SAAIK,MAAW,UAAUA,MAAW,UAAgBA,IAGlD,OAAOD,OAAOE,cAAe,cAAcF,OAAOE,WAAW,8BAA8B,EAAEC,UAE1E,SAAS;AAChC,GAEaC,KAA0B3nB,CAAAA,MAAA;AAAA,QAAAE,IAAAC,EAAA,EAAA,GACrC;AAAA,IAAAC,UAAAA;AAAAA,IAAAwnB,mBAAAlnB;AAAAA,EAAAA,IAAsEV;AAAM,MAAAa;AAAA,EAAAX,SAAAQ,KAA1DG,IAAAH,MAAA2B,SAAoBilB,GAAAA,IAApB5mB,GAA+CR,OAAAQ,GAAAR,OAAAW,KAAAA,IAAAX,EAAA,CAAA;AAA/C,QAAA0nB,IAAA/mB,GAClB,CAAAgnB,GAAAC,CAAA,IAA8CtkB,GAA0BokB,CAAiB;AAAE,MAAA7mB,GAAAyB;AAAA,EAAAtC,SAAA2nB,KAEjF9mB,IAAAA,MAAA;AACRulB,IAAAA,GAAqBuB,CAAe,GAChC,OAAON,SAAW,OACpBA,OAAMrJ,aAAatB,QAASuK,IAAaU,CAAe;AAAA,EACzD,GACArlB,IAAA,CAACqlB,CAAe,GAAC3nB,OAAA2nB,GAAA3nB,OAAAa,GAAAb,OAAAsC,MAAAzB,IAAAb,EAAA,CAAA,GAAAsC,IAAAtC,EAAA,CAAA,IALpBsN,GAAUzM,GAKPyB,CAAiB;AAAC,MAAAC;AAAA,EAAAvC,EAAA,CAAA,MAAA0C,uBAAAC,IAAA,2BAAA,KAESJ,IAAAA,MAAMqlB,EAAmB3e,EAA8C,GAACjJ,OAAAuC,KAAAA,IAAAvC,EAAA,CAAA;AAAtG,QAAA6nB,IAA8BtlB;AAAyE,MAAAC;AAAA,EAAAxC,SAAA2nB,KAGtEnlB,IAAA;AAAA,IAAAmlB,iBAAAA;AAAAA,IAAAC,oBAAAA;AAAAA,IAAAC,uBAAAA;AAAAA,EAAAA,GAA8D7nB,OAAA2nB,GAAA3nB,OAAAwC,KAAAA,IAAAxC,EAAA,CAAA;AAAA,MAAAsF;AAAA,SAAAtF,EAAA,CAAA,MAAAE,KAAAF,SAAAwC,KAA7F8C,IAAA,gBAAA7E,EAACymB,IAAA,EAA8B,OAAA1kB,GAC5BtC,UAAAA,GACH,GAAyBF,OAAAE,GAAAF,OAAAwC,GAAAxC,QAAAsF,KAAAA,IAAAtF,EAAA,EAAA,GAFzBsF;AAEyB,GAIhBwiB,KAAqBA,MAAA;AAChC,QAAAC,IAAgBC,GAAWd,EAAsB;AAEjD,MAAI,CAACa;AACH,UAAM,IAAIE,MAAM,kEAAkE;AACnF,SAEMF;AAAO;AA3BuB,SAAA9e,GAAAif,GAAA;AAAA,SAW6BA,MAAS,SAAT,UAAA;AAAkC;"}