@uni-design-system/uni-mcp 4.3.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/server/core.ts","../src/data/uni-index.json","../src/server/store.ts","../../core/src/concepts/animation/keyframes.constants.ts","../../core/src/concepts/color/color.records.ts","../../core/src/concepts/color/color.utils.ts","../../core/src/concepts/color/color.helper.ts","../../core/src/concepts/generation/oklch.helper.ts","../../core/src/concepts/generation/palette.factory.ts","../../core/src/concepts/color/color.factory.ts","../../core/src/concepts/elevation/zIndex.ts","../../core/src/concepts/generation/dtcg.emitter.ts","../../core/src/concepts/generation/shadow.generator.ts","../../core/src/concepts/iconography/icon.records.ts","../../core/src/concepts/theme/themes/base.theme.ts","../../core/src/concepts/generation/theme.generator.ts","../../core/src/concepts/generation/theme-file.emitter.ts","../../core/src/concepts/gradient/gradient.helper.ts","../../core/src/concepts/layout/layout.helper.ts","../../core/src/concepts/shadow/shadow.utils.ts","../../core/src/concepts/shadow/shadow.records.ts","../../core/src/concepts/style/inputs.constants.ts","../../core/src/concepts/theme/themes/dark.theme.ts","../../core/src/concepts/theme/themes/light.theme.ts","../../core/src/concepts/theme/theme.records.ts","../../core/src/concepts/typography/typography.records.ts","../../core/src/concepts/typography/typeface.helpers.ts","../../core/src/utils/getValue.ts","../../core/src/utils/debounce.ts","../src/server/generate.ts"],"sourcesContent":["/**\n * Server core — builds a fully-wired `McpServer` (tools + resources) over the\n * in-memory Uni index. Transport-agnostic: `stdio.ts` and `http.ts` both call\n * `createUniServer()`, so local and remote share exactly one implementation.\n */\nimport { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\nimport * as store from './store.js';\nimport { formatGeneratedTheme } from './generate.js';\n\nconst FrameworkArg = z.enum(['angular', 'react']);\n\n/** `{ content: [text] }` — the shape every tool returns. */\nfunction text(body: string) {\n return { content: [{ type: 'text' as const, text: body }] };\n}\n\nfunction notFound(kind: string, id: string) {\n return text(`No ${kind} found with id \\`${id}\\`. Use the matching list/search tool to discover valid ids.`);\n}\n\nexport function createUniServer(): McpServer {\n const server = new McpServer(\n { name: 'uni-design-system', version: store.meta.version },\n {\n instructions:\n 'Authoritative interface to the Uni Design System. Prefer these tools over ' +\n 'recalling component APIs or token values from memory: names, props, and tokens ' +\n 'here match the exact Uni release the developer installed. Start with ' +\n '`list-components` or `search`, then `get-component` / `get-component-examples`. ' +\n 'Use real token ids (via `list-tokens`) instead of raw hex; apply themes with ' +\n '`get-theme-template` (style overrides go through Emotion, component options are props). ' +\n 'To brand an app, call `generate-uni-theme` once and write the returned static ' +\n '`uni-theme.ts`; to change look and feel afterwards (colors, borders, per-component ' +\n 'styling), edit that file\\'s tokens directly — shared tokens propagate everywhere.',\n },\n );\n\n // -- list-components -------------------------------------------------------\n server.registerTool(\n 'list-components',\n {\n title: 'List Uni components',\n description:\n 'Compact inventory of Uni components: id, name, summary, category, and which ' +\n 'frameworks each supports. Filter by framework, category, or status.',\n inputSchema: {\n framework: FrameworkArg.optional(),\n category: z.string().optional().describe('e.g. forms, layout, feedback, data, primitives'),\n status: z.enum(['stable', 'beta', 'deprecated']).optional(),\n },\n },\n async ({ framework, category, status }) =>\n text(store.formatComponentList(store.listComponents({ framework, category, status }))),\n );\n\n // -- get-component ---------------------------------------------------------\n server.registerTool(\n 'get-component',\n {\n title: 'Get a Uni component',\n description:\n 'Full reference for one component: description, per-framework import + selector/tag, ' +\n 'complete API (inputs/outputs or props/events), related tokens, and a sample. ' +\n 'Pass `framework` to scope to Angular or React.',\n inputSchema: { id: z.string().describe('component id, e.g. \"button\"'), framework: FrameworkArg.optional() },\n },\n async ({ id, framework }) => {\n const c = store.getComponent(id);\n return c ? text(store.formatComponent(c, framework)) : notFound('component', id);\n },\n );\n\n // -- get-component-examples ------------------------------------------------\n server.registerTool(\n 'get-component-examples',\n {\n title: 'Get component examples',\n description: 'Working, copy-pasteable code snippets for a component (from Storybook stories), with deep links.',\n inputSchema: { id: z.string(), framework: FrameworkArg.optional() },\n },\n async ({ id, framework }) => {\n const c = store.getComponent(id);\n return c ? text(store.formatExamples(c, framework)) : notFound('component', id);\n },\n );\n\n // -- list-tokens -----------------------------------------------------------\n server.registerTool(\n 'list-tokens',\n {\n title: 'List design tokens',\n description:\n 'Inventory of Uni design tokens. Filter by `type` (color, spacing, radius, shadow, ' +\n 'border, thickness, typography, ...), `kind` (style|behavioral), or `theme`.',\n inputSchema: {\n type: z.string().optional(),\n kind: z.enum(['style', 'behavioral']).optional(),\n theme: z.string().optional(),\n },\n },\n async ({ type, kind, theme }) => text(store.formatTokenList(store.listTokens({ type, kind, theme }))),\n );\n\n // -- get-token -------------------------------------------------------------\n server.registerTool(\n 'get-token',\n {\n title: 'Get a design token',\n description: 'Resolved value, type, style/behavioral classification, alias chain, and per-theme values for one token.',\n inputSchema: { id: z.string().describe('token id, e.g. \"color.primary\" or \"input.behavior.height\"') },\n },\n async ({ id }) => {\n const t = store.getToken(id);\n return t ? text(store.formatToken(t)) : notFound('token', id);\n },\n );\n\n // -- get-guidelines --------------------------------------------------------\n server.registerTool(\n 'get-guidelines',\n {\n title: 'Get component guidelines',\n description: 'Authored when-to-use, do/don\\'t, and accessibility guidance for a component.',\n inputSchema: { id: z.string() },\n },\n async ({ id }) => {\n const c = store.getComponent(id);\n return c ? text(store.formatGuidelines(c)) : notFound('component', id);\n },\n );\n\n // -- list-themes -----------------------------------------------------------\n server.registerTool(\n 'list-themes',\n { title: 'List theme templates', description: 'Available Uni theme templates.', inputSchema: {} },\n async () => text(store.formatThemeList(store.listThemes())),\n );\n\n // -- get-theme-template ----------------------------------------------------\n server.registerTool(\n 'get-theme-template',\n {\n title: 'Get a theme template',\n description:\n 'A theme in two distinct buckets: style overrides (apply via the Emotion theme provider) ' +\n 'and component options (pass as component inputs/props). Kept separate so each is applied correctly.',\n inputSchema: { id: z.string().describe('theme id, e.g. \"LightTheme\"') },\n },\n async ({ id }) => {\n const t = store.getTheme(id);\n return t ? text(store.formatTheme(t)) : notFound('theme', id);\n },\n );\n\n // -- generate-uni-theme ----------------------------------------------------\n server.registerTool(\n 'generate-uni-theme',\n {\n title: 'Generate a Uni brand theme file',\n description:\n 'Generate a complete, WCAG-AA light+dark Uni theme from brand hex color(s) and return ' +\n 'the static `uni-theme.ts` file content (write it to `src/app/uni-theme.ts`), the ' +\n '`UNI_THEMES` provider registration snippet, and a contrast report. The file is plain ' +\n 'editable data and becomes the source of truth: later restyling means editing its ' +\n 'tokens (colors, named border primitives, sparse component overrides) — not calling ' +\n 'this tool again. Never hardcode hex in components; reference theme tokens.',\n inputSchema: {\n brand: z\n .union([z.string(), z.array(z.string()).min(1).max(3)])\n .describe('Brand hex color(s), e.g. \"#0052FF\". 2–3 colors map to primary/secondary/tertiary.'),\n vibe: z\n .enum(['jewel', 'pastel', 'earth', 'neutral', 'florescent'])\n .optional()\n .describe('Tonal character; defaults to a category inferred from the seed chroma.'),\n scheme: z\n .enum(['monochromatic', 'analogous', 'complimentary', 'splitComplimentary', 'triadic'])\n .optional()\n .describe('Hue-wheel relationship for generated roles; auto-classified for multi-color input.'),\n shape: z\n .enum(['sharp', 'modern', 'playful'])\n .optional()\n .describe('Shape language — emits a radii override into the file.'),\n name: z.string().optional().describe('Theme display name, defaults to \"Brand\".'),\n darkMode: z.boolean().optional().describe('Emit the dark theme too. Defaults to true.'),\n },\n },\n async (args) => text(formatGeneratedTheme(args)),\n );\n\n // -- search ----------------------------------------------------------------\n server.registerTool(\n 'search',\n {\n title: 'Search the design system',\n description: 'Keyword search across components, tokens, themes, and guidelines. Narrow with `kind`.',\n inputSchema: {\n query: z.string(),\n kind: z.enum(['component', 'token', 'theme', 'guideline']).optional(),\n },\n },\n async ({ query, kind }) => text(store.formatSearch(query, store.search(query, kind))),\n );\n\n registerResources(server);\n return server;\n}\n\n/** Read-only, addressable content the host can browse or pin. */\nfunction registerResources(server: McpServer): void {\n server.registerResource(\n 'meta',\n 'uni://meta',\n { title: 'Uni index metadata', description: 'Index version, Uni release, framework coverage, counts, build time.', mimeType: 'application/json' },\n async (uri) => ({\n contents: [{ uri: uri.href, mimeType: 'application/json', text: JSON.stringify(store.meta, null, 2) }],\n }),\n );\n\n server.registerResource(\n 'component',\n new ResourceTemplate('uni://components/{id}', {\n list: async () => ({\n resources: store.listComponents().map((c) => ({ uri: `uni://components/${c.id}`, name: c.name, description: c.summary })),\n }),\n }),\n { title: 'Uni component', description: 'A component reference card.', mimeType: 'text/markdown' },\n async (uri, { id }) => {\n const c = store.getComponent(String(id));\n return { contents: [{ uri: uri.href, mimeType: 'text/markdown', text: c ? store.formatComponent(c) : `Unknown component: ${id}` }] };\n },\n );\n\n server.registerResource(\n 'token',\n new ResourceTemplate('uni://tokens/{id}', {\n list: async () => ({\n resources: store.listTokens().map((t) => ({ uri: `uni://tokens/${t.id}`, name: t.id, description: `${t.type} = ${t.value}` })),\n }),\n }),\n { title: 'Uni token', description: 'A design token.', mimeType: 'text/markdown' },\n async (uri, { id }) => {\n const t = store.getToken(String(id));\n return { contents: [{ uri: uri.href, mimeType: 'text/markdown', text: t ? store.formatToken(t) : `Unknown token: ${id}` }] };\n },\n );\n\n server.registerResource(\n 'theme',\n new ResourceTemplate('uni://themes/{id}', {\n list: async () => ({\n resources: store.listThemes().map((t) => ({ uri: `uni://themes/${t.id}`, name: t.name, description: t.description })),\n }),\n }),\n { title: 'Uni theme template', description: 'A theme template (style + component options).', mimeType: 'text/markdown' },\n async (uri, { id }) => {\n const t = store.getTheme(String(id));\n return { contents: [{ uri: uri.href, mimeType: 'text/markdown', text: t ? store.formatTheme(t) : `Unknown theme: ${id}` }] };\n },\n );\n\n server.registerResource(\n 'guidelines',\n new ResourceTemplate('uni://guidelines/{id}', {\n list: async () => ({\n resources: store.listComponents().map((c) => ({ uri: `uni://guidelines/${c.id}`, name: `${c.name} guidelines`, description: c.summary })),\n }),\n }),\n { title: 'Uni guidelines', description: 'Authored usage guidance for a component.', mimeType: 'text/markdown' },\n async (uri, { id }) => {\n const c = store.getComponent(String(id));\n return { contents: [{ uri: uri.href, mimeType: 'text/markdown', text: c ? store.formatGuidelines(c) : `Unknown component: ${id}` }] };\n },\n );\n}\n","{\n \"meta\": {\n \"version\": \"6.0.1\",\n \"builtAt\": \"2026-07-24T15:08:54.365Z\",\n \"frameworks\": [\n \"angular\"\n ],\n \"counts\": {\n \"components\": 70,\n \"tokens\": 296,\n \"themes\": 2,\n \"examples\": 132\n }\n },\n \"components\": [\n {\n \"id\": \"alert\",\n \"name\": \"Alert\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-alert\",\n \"api\": [\n {\n \"name\": \"show\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"iconName\",\n \"kind\": \"input\",\n \"type\": \"IconName | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"\"\n },\n {\n \"name\": \"symbolName\",\n \"kind\": \"input\",\n \"type\": \"string | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"\"\n },\n {\n \"name\": \"useVariant\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"showing\",\n \"kind\": \"output\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<button text-button (click)=\\\"alert.open()\\\">Show Alert</button>\\n<uni-alert #alert ${argsToTemplate(props)}>\\n ${ngContent}\\n</uni-alert>\\n<!-- args:\\n{\\n ngContent: 'This is an alert!',\\n variant: 'tertiary',\\n symbolName: 'privacy_tip',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The Alert is used to communicate a state that affects a system, feature or page.\\nFor instance, alerts can be used to display errors or any unexpected results from a user's action.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": [\n \"alert.behavior.topPosition\",\n \"alert.behavior.borderRadius\",\n \"alert.behavior.transitionSpeed\",\n \"alert.behavior.elevation\"\n ]\n },\n {\n \"id\": \"app-bar\",\n \"name\": \"AppBar\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-app-bar\",\n \"api\": [\n {\n \"name\": \"title\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Bar title; alternatively project your own center content.\"\n },\n {\n \"name\": \"sticky\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Stick the bar to the top of its scroll container.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-app-bar [title]=\\\"title\\\" [sticky]=\\\"sticky\\\">\\n<button leading icon-button symbolName=\\\"menu\\\">Open navigation</button>\\n<button trailing icon-button symbolName=\\\"notifications\\\">Notifications</button>\\n<uni-avatar trailing name=\\\"Grace Hopper\\\" size=\\\"sm\\\" />\\n</uni-app-bar>\\n<!-- args:\\n{ title: 'Console' }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Horizontal application bar for the top of a page or section. Project controls with the\\n`leading` attribute (menu button, logo) and actions with `trailing` (pushed to the far\\nedge); pass `title` or project your own center content. Surface color, height, the\\ndivider rule, title typography and spacing all resolve from the theme's `appBar`\\noptions, and `sticky` pins the bar to the top of its scroll container.\\nPlace it inside your page's `<header>` landmark. It pairs with the Drawer — see the\\nDrawer docs for the full dashboard-shell recipe.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"The bar is a styled container, not a landmark — place it inside your page's `<header>` element.\",\n \"Give leading/trailing icon buttons text content or `ariaLabel` so they announce.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"avatar\",\n \"name\": \"Avatar\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-avatar\",\n \"api\": [\n {\n \"name\": \"src\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Image URL; on load error the avatar falls back to initials/symbol.\"\n },\n {\n \"name\": \"name\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Person's name: drives the initials and the accessible label.\"\n },\n {\n \"name\": \"text\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Verbatim text instead of derived initials (e.g. a group's “+3”).\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Initials\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Initials -->\\n<div row-layout gap=\\\"sm\\\" alignItems=\\\"center\\\">\\n<uni-avatar name=\\\"Ada Lovelace\\\" size=\\\"sm\\\" />\\n<uni-avatar name=\\\"Grace Hopper\\\" size=\\\"md\\\" variant=\\\"secondary\\\" />\\n<uni-avatar name=\\\"Katherine Johnson\\\" size=\\\"lg\\\" variant=\\\"tertiary\\\" />\\n<uni-avatar name=\\\"Annie Easley\\\" size=\\\"xl\\\" variant=\\\"success\\\" />\\n<uni-avatar size=\\\"lg\\\" variant=\\\"quaternary\\\" />\\n</div>\\n<!-- args:\\n{ name: 'Grace Hopper', variant: 'primary', size: 'lg' }\\n-->\"\n },\n {\n \"title\": \"Sizes And Variants\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Sizes And Variants -->\\n<div row-layout gap=\\\"sm\\\" alignItems=\\\"center\\\">\\n<uni-avatar name=\\\"Ada Lovelace\\\" size=\\\"sm\\\" />\\n<uni-avatar name=\\\"Grace Hopper\\\" size=\\\"md\\\" variant=\\\"secondary\\\" />\\n<uni-avatar name=\\\"Katherine Johnson\\\" size=\\\"lg\\\" variant=\\\"tertiary\\\" />\\n<uni-avatar name=\\\"Annie Easley\\\" size=\\\"xl\\\" variant=\\\"success\\\" />\\n<uni-avatar size=\\\"lg\\\" variant=\\\"quaternary\\\" />\\n</div>\"\n },\n {\n \"title\": \"Group\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Group -->\\n<div row-layout gap=\\\"sm\\\" alignItems=\\\"center\\\">\\n<uni-avatar name=\\\"Ada Lovelace\\\" size=\\\"sm\\\" />\\n<uni-avatar name=\\\"Grace Hopper\\\" size=\\\"md\\\" variant=\\\"secondary\\\" />\\n<uni-avatar name=\\\"Katherine Johnson\\\" size=\\\"lg\\\" variant=\\\"tertiary\\\" />\\n<uni-avatar name=\\\"Annie Easley\\\" size=\\\"xl\\\" variant=\\\"success\\\" />\\n<uni-avatar size=\\\"lg\\\" variant=\\\"quaternary\\\" />\\n</div>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Identity avatar with a graceful fallback chain: the image when it loads, initials\\nderived from `name` when it doesn't (or was never given), and a themed symbol as the\\nlast resort. The name doubles as the accessible label; avatars with no name are marked\\ndecorative automatically.\\nVariants color initials from the role's container tokens, so avatars follow the brand\\npalette in light and dark. The corner radius is the theme's `avatar.options.borderRadius`\\ntoken — circles by default, squares under a `sharp` shape language.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"With a `name`, the avatar is `role=\\\"img\\\"` labelled by that name; purely decorative avatars are `aria-hidden`.\",\n \"The group is a `role=\\\"group\\\"`; the \\\"+N\\\" chip reads as text.\"\n ]\n },\n \"relatedTokens\": [\n \"avatar.behavior.borderRadius\",\n \"avatar.behavior.typeface\",\n \"avatar.behavior.fallbackSymbol\"\n ]\n },\n {\n \"id\": \"avatar-group\",\n \"name\": \"AvatarGroup\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-avatar-group\",\n \"api\": [\n {\n \"name\": \"max\",\n \"kind\": \"input\",\n \"type\": \"number | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"Show at most this many avatars; the rest collapse into a “+N” chip.\"\n }\n ]\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"background\",\n \"name\": \"Background\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"primitives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-background\",\n \"api\": [\n {\n \"name\": \"image\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"imagePosition\",\n \"kind\": \"input\",\n \"type\": \"ImagePosition\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"imageSize\",\n \"kind\": \"input\",\n \"type\": \"'cover' | 'contain' | number | string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"height\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"default\": \"'100%'\",\n \"description\": \"\"\n },\n {\n \"name\": \"width\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<!-- args:\\n{\\n image: 'images/phone-zone-illustration.svg',\\n imagePosition: 'center',\\n imageSize: '400px',\\n height: '400px',\\n width: '100%',\\n }\\n-->\"\n },\n {\n \"title\": \"Contain Size\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Contain Size -->\\n<!-- args:\\n{\\n ...Primary.args,\\n imageSize: 'contain',\\n }\\n-->\"\n },\n {\n \"title\": \"Custom Position\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Custom Position -->\\n<!-- args:\\n{\\n ...Primary.args,\\n imagePosition: 'top',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The Background component is a flexible container that allows you to add and control background images in your application.\\nIt provides various options for positioning and sizing the background image while maintaining a clean and responsive layout.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Ensure any text overlaid on the background has sufficient contrast\",\n \"Don't rely on background images to convey important information\",\n \"Consider providing alternative visual styles for users who prefer reduced motion\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"badge\",\n \"name\": \"Badge\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-badge]\",\n \"api\": [\n {\n \"name\": \"color\",\n \"kind\": \"input\",\n \"type\": \"Variant | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"\"\n },\n {\n \"name\": \"useVariant\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"width\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Pass\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Pass -->\\n<div uni-badge color=\\\"${color}\\\" [width]=\\\"${width}\\\">\\n ${ngContent}\\n</div>\\n<!-- args:\\n{\\n color: 'secondary',\\n ngContent: 'Pass',\\n width: 76,\\n }\\n-->\"\n },\n {\n \"title\": \"Fail\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Fail -->\\n<div uni-badge color=\\\"${color}\\\" [width]=\\\"${width}\\\">\\n ${ngContent}\\n</div>\\n<!-- args:\\n{\\n color: 'warn',\\n ngContent: 'Fail',\\n width: 76,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Badges are used to highlight an item's status for quick recognition.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": [\n \"badge.behavior.borderRadius\"\n ]\n },\n {\n \"id\": \"body-render\",\n \"name\": \"BodyRender\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"directives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uniBodyRender]\",\n \"api\": []\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"box\",\n \"name\": \"Box\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-box-layout], [box-layout]\",\n \"api\": [\n {\n \"name\": \"color\",\n \"kind\": \"input\",\n \"type\": \"ContainerColorToken\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"backgroundColor\",\n \"kind\": \"input\",\n \"type\": \"OptionalColor\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderRadius\",\n \"kind\": \"input\",\n \"type\": \"OptionalRadius\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderRadiusLeft\",\n \"kind\": \"input\",\n \"type\": \"OptionalRadius\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderRadiusRight\",\n \"kind\": \"input\",\n \"type\": \"OptionalRadius\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderRadiusTop\",\n \"kind\": \"input\",\n \"type\": \"OptionalRadius\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderRadiusBottom\",\n \"kind\": \"input\",\n \"type\": \"OptionalRadius\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"padding\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingHorizontal\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingVertical\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingLeft\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingRight\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingTop\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingBottom\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"border\",\n \"kind\": \"input\",\n \"type\": \"OptionalBorder\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderTop\",\n \"kind\": \"input\",\n \"type\": \"OptionalBorder\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderBottom\",\n \"kind\": \"input\",\n \"type\": \"OptionalBorder\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderLeft\",\n \"kind\": \"input\",\n \"type\": \"OptionalBorder\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderRight\",\n \"kind\": \"input\",\n \"type\": \"OptionalBorder\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"dashBorder\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"alignSelf\",\n \"kind\": \"input\",\n \"type\": \"OptionalAlignSelf\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"alignItems\",\n \"kind\": \"input\",\n \"type\": \"OptionalAlignItems\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"alignContent\",\n \"kind\": \"input\",\n \"type\": \"OptionalAlignContent\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"justifyContent\",\n \"kind\": \"input\",\n \"type\": \"OptionalJustifyContent\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"grow\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"display\",\n \"kind\": \"input\",\n \"type\": \"OptionalDisplay\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"position\",\n \"kind\": \"input\",\n \"type\": \"OptionalPosition\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"inset\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"height\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"description\": \"Number = px via binding (`[height]=\\\"420\\\"`); string = CSS length (`height=\\\"420px\\\"`).\"\n },\n {\n \"name\": \"minHeight\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"maxHeight\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"width\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"description\": \"Number = px via binding (`[width]=\\\"420\\\"`); string = CSS length (`width=\\\"50%\\\"`).\"\n },\n {\n \"name\": \"minWidth\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"maxWidth\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"ignoreDir\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"\"\n },\n {\n \"name\": \"gridArea\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"gridColumn\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"gridRow\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"overflow\",\n \"kind\": \"input\",\n \"type\": \"OptionalOverflow\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"shadow\",\n \"kind\": \"input\",\n \"type\": \"Shadow\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"gap\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"fullWidth\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"fullHeight\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"flexDirection\",\n \"kind\": \"input\",\n \"type\": \"OptionalFlexDirection\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"textAlign\",\n \"kind\": \"input\",\n \"type\": \"OptionalTextAlign\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"wrapItems\",\n \"kind\": \"input\",\n \"type\": \"OptionalWrap\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"\"\n },\n {\n \"name\": \"zIndex\",\n \"kind\": \"input\",\n \"type\": \"ZIndexableElements\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<div box-layout ${argsToTemplate(props)}>\\n<span uni-text>${ngContent}</span>\\n</div>\\n<!-- args:\\n{\\n color: 'secondary-container',\\n borderRadius: 'md',\\n padding: 'lg',\\n ngContent: 'Box Content.',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Box is the base Layout component. It is highly configurable.\\nEach layout component extends the Box component while providing presets to support their application.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"breadcrumb\",\n \"name\": \"Breadcrumb\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-breadcrumb\",\n \"api\": [\n {\n \"name\": \"items\",\n \"kind\": \"input\",\n \"type\": \"BreadcrumbItem[]\",\n \"required\": true,\n \"description\": \"The trail, root first; the last item is the current page.\"\n },\n {\n \"name\": \"ariaLabel\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"'Breadcrumb'\",\n \"description\": \"Landmark label distinguishing this nav from others on the page.\"\n },\n {\n \"name\": \"itemClicked\",\n \"kind\": \"output\",\n \"type\": \"BreadcrumbItem\",\n \"required\": false,\n \"description\": \"Emits the clicked ancestor item (also fires for `href` links).\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<!-- args:\\n{\\n items: [\\n { label: 'Home', href: '#' },\\n { label: 'Reports', href: '#' },\\n { label: 'Q3 Revenue' },\\n ],\\n }\\n-->\"\n },\n {\n \"title\": \"Router-driven (no hrefs)\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Router-driven (no hrefs) -->\\n<!-- args:\\n{\\n items: [{ label: 'Home' }, { label: 'Settings' }, { label: 'Notifications' }],\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Breadcrumbs show where the current page sits in the hierarchy and give one-click\\npassage back up the trail. The component renders the WAI-ARIA pattern: a labelled\\n`nav` landmark wrapping an ordered list, with the last item marked as the current page\\nand separators hidden from assistive tech.\\nItems with `href` render as real links. For SPA routing, omit `href` and handle\\n`itemClicked` — items render as link-styled buttons instead. Typography, link and\\ncurrent-page colors, the separator symbol, and spacing all resolve from the theme's\\n`breadcrumb` options.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Renders the WAI-ARIA pattern: a labelled `nav` landmark wrapping an ordered list.\",\n \"The last item is `aria-current=\\\"page\\\"` and not a link.\",\n \"Separators are `aria-hidden` — screen readers hear the trail, not the chevrons.\",\n \"Set `ariaLabel` when a page has more than one breadcrumb nav.\"\n ]\n },\n \"relatedTokens\": [\n \"breadcrumb.behavior.typeface\",\n \"breadcrumb.behavior.color\",\n \"breadcrumb.behavior.currentColor\",\n \"breadcrumb.behavior.separatorSymbol\",\n \"breadcrumb.behavior.gap\"\n ]\n },\n {\n \"id\": \"button\",\n \"name\": \"Button\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"primitives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"button[uni-text-button], button[text-button]\",\n \"api\": [\n {\n \"name\": \"disable\",\n \"kind\": \"input\",\n \"type\": \"boolean | undefined\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"loading\",\n \"kind\": \"input\",\n \"type\": \"boolean | undefined\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"fullWidth\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"symbolLeft\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"symbolRight\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<button text-button [variant]=\\\"variant\\\" [size]=\\\"size\\\" ${argsToTemplate(props)}>\\n {{ngContent}}\\n</button>\\n<!-- args:\\n{\\n variant: 'primary',\\n size: 'lg',\\n ngContent: 'Button',\\n }\\n-->\"\n },\n {\n \"title\": \"Secondary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Secondary -->\\n<button text-button [variant]=\\\"variant\\\" [size]=\\\"size\\\" ${argsToTemplate(props)}>\\n {{ngContent}}\\n</button>\\n<!-- args:\\n{\\n size: 'lg',\\n variant: 'secondary',\\n ngContent: 'Secondary Button',\\n }\\n-->\"\n },\n {\n \"title\": \"Tertiary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Tertiary -->\\n<button text-button [variant]=\\\"variant\\\" [size]=\\\"size\\\" ${argsToTemplate(props)}>\\n {{ngContent}}\\n</button>\\n<!-- args:\\n{\\n size: 'lg',\\n variant: 'tertiary',\\n ngContent: 'Tertiary Button',\\n }\\n-->\"\n },\n {\n \"title\": \"Medium\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Medium -->\\n<button text-button [variant]=\\\"variant\\\" [size]=\\\"size\\\" ${argsToTemplate(props)}>\\n {{ngContent}}\\n</button>\\n<!-- args:\\n{\\n size: 'md',\\n ngContent: 'Medium Button',\\n }\\n-->\"\n },\n {\n \"title\": \"Small\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Small -->\\n<button text-button [variant]=\\\"variant\\\" [size]=\\\"size\\\" ${argsToTemplate(props)}>\\n {{ngContent}}\\n</button>\\n<!-- args:\\n{\\n size: 'sm',\\n ngContent: 'Small Button',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Button is a clickable interactive element that triggers a response.\\nYou can place text and icons inside of a button.\\nButtons are often used for form submissions and to toggle elements into view.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"A real `<button>` element — native focus, Enter/Space activation, and `disabled` semantics.\",\n \"`aria-busy` is set while `loading`; the spinner and symbols are decorative.\"\n ]\n },\n \"relatedTokens\": [\n \"button.behavior.borderRadius\",\n \"button.behavior.typeface\"\n ]\n },\n {\n \"id\": \"button-group\",\n \"name\": \"ButtonGroup\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"primitives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-button-group\",\n \"api\": []\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-button-group ${argsToTemplate(props)}>\\n <button icon-button symbolName=\\\"align_horizontal_left\\\" size=\\\"sm\\\"></button>\\n <button icon-button symbolName=\\\"align_horizontal_center\\\" size=\\\"sm\\\"></button>\\n <button icon-button symbolName=\\\"align_horizontal_right\\\" size=\\\"sm\\\"></button>\\n</uni-button-group>\\n<!-- args:\\n{}\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The `ButtonGroup` component is used to group related buttons. It applies some base styling to the nested buttons.\\nIf this is not desirable, consider using the `Row` component.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Group the related actions; each button keeps its own accessible name.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"card\",\n \"name\": \"Card\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-card\",\n \"api\": []\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-card variant=\\\"${variant}\\\">\\n <uni-card-header title=\\\"Card Header\\\"></uni-card-header>\\n <uni-card-content>\\n <span uni-text>${ngContent}</span>\\n </uni-card-content>\\n</uni-card>\\n<!-- args:\\n{\\n variant: 'primary',\\n size: 'lg',\\n ngContent: 'Card content.',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Content container with a themed frame: the border resolves from the **border\\nprimitive named by its variant** (`borders.primary` … `borders.success`), the corner\\nradius from the `card` theme options, and an optional elevation shadow. Compose with\\nCard Header and Card Content for the standard anatomy — or point `options.border` at\\na custom primitive to restyle every card in the theme at once.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": [\n \"card.behavior.borderRadius\"\n ]\n },\n {\n \"id\": \"card-content\",\n \"name\": \"CardContent\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-card-content\",\n \"api\": []\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"card-header\",\n \"name\": \"CardHeader\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-card-header\",\n \"api\": [\n {\n \"name\": \"title\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"''\",\n \"description\": \"\"\n },\n {\n \"name\": \"titleTextRole\",\n \"kind\": \"input\",\n \"type\": \"Typeface\",\n \"required\": false,\n \"default\": \"'title-large'\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"center\",\n \"name\": \"Center\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-center-layout], [center-layout]\",\n \"api\": [\n {\n \"name\": \"display\",\n \"kind\": \"input\",\n \"type\": \"OptionalDisplay\",\n \"required\": false,\n \"default\": \"'flex'\",\n \"description\": \"\"\n },\n {\n \"name\": \"justifyContent\",\n \"kind\": \"input\",\n \"type\": \"OptionalJustifyContent\",\n \"required\": false,\n \"default\": \"'center'\",\n \"description\": \"\"\n },\n {\n \"name\": \"alignItems\",\n \"kind\": \"input\",\n \"type\": \"OptionalAlignItems\",\n \"required\": false,\n \"default\": \"'center'\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<div center-layout ${argsToTemplate(props)}>\\n <span uni-text=\\\"headline-large\\\">${ngContent}</span>\\n</div>\\n<!-- args:\\n{\\n ngContent: 'Centered Content',\\n height: 180,\\n width: '100%',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"`Center` is a layout component that centers its child within itself.\\n`Center` is an extension to the `Box` component and has all the `Box` attributes available to it.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"checkbox\",\n \"name\": \"Checkbox\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-checkbox\",\n \"api\": [\n {\n \"name\": \"checked\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"touched\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"invalid\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"dirty\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"required\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Synced from required() validators by the Signal Forms [field] directive.\"\n },\n {\n \"name\": \"ariaDescribedBy\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Id(s) of external element(s) describing this control — typically your app-rendered error message — exposed as aria-describedby.\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"indeterminate\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Mixed state for \\\"select all\\\"-style parent checkboxes. Cleared automatically on the next user interaction, matching native behavior.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-checkbox ${argsToTemplate(args)}></uni-checkbox>\\n<!-- args:\\n{\\n label: 'Accept terms and conditions',\\n variant: 'primary',\\n disabled: false,\\n checked: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Without Label\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Without Label -->\\n<uni-checkbox ${argsToTemplate(args)}></uni-checkbox>\\n<!-- args:\\n{\\n label: '',\\n variant: 'primary',\\n disabled: false,\\n }\\n-->\"\n },\n {\n \"title\": \"Disabled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Disabled -->\\n<uni-checkbox ${argsToTemplate(args)}></uni-checkbox>\\n<!-- args:\\n{\\n label: 'Disabled checkbox',\\n variant: 'primary',\\n disabled: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Variants\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Variants -->\\n<uni-checkbox ${argsToTemplate(args)}></uni-checkbox>\"\n },\n {\n \"title\": \"With Change Event\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Change Event -->\\n<uni-checkbox ${argsToTemplate(args)}></uni-checkbox>\"\n },\n {\n \"title\": \"Form Signals\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Form Signals -->\\n<uni-checkbox ${argsToTemplate(args)}></uni-checkbox>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Binary choice control for forms: check to opt in, submit to apply. It implements\\n`FormCheckboxControl` for the Signal Forms `[field]` directive (or bind\\n`[(checked)]` directly), exposes `aria-invalid` once touched, and supports an\\n`indeterminate` model for \\\"select all\\\" parents — cleared automatically on the next\\nuser interaction, matching native behavior.\\nThe box color, check stroke (the variant's paired on-color), and size resolve from\\nthe `checkbox` theme options.\",\n \"dos\": [\n \"Use for choices that apply when the form is submitted\"\n ],\n \"donts\": [\n \"Use for instant on/off effects — that is a toggle\"\n ],\n \"accessibility\": [\n \"Semantic `<input type=\\\"checkbox\\\">` + `<label>`; Space toggles.\",\n \"`aria-invalid` reflects the error state once the field was touched or is dirty.\",\n \"The indeterminate visual state is carried by the native `indeterminate` property, announced as \\\"mixed\\\".\"\n ]\n },\n \"relatedTokens\": [\n \"checkbox.behavior.size\",\n \"checkbox.behavior.boxColor\"\n ]\n },\n {\n \"id\": \"confirmation-dialog\",\n \"name\": \"ConfirmationDialog\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-confirmation-dialog\",\n \"api\": [\n {\n \"name\": \"show\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"confirmation\",\n \"kind\": \"input\",\n \"type\": \"Confirmation\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"showing\",\n \"kind\": \"output\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"data-search\",\n \"name\": \"DataSearch\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-data-search\",\n \"api\": [\n {\n \"name\": \"datasource\",\n \"kind\": \"input\",\n \"type\": \"UniDatasource<T>\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"placeholder\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"'Search'\",\n \"description\": \"\"\n },\n {\n \"name\": \"fields\",\n \"kind\": \"input\",\n \"type\": \"string[]\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-data-search ${argsToTemplate(props)} />\\n<div box-layout paddingTop=\\\"md\\\">\\n @for (record of datasource.records(); track record.id) {\\n <div>{{ record.name }} — {{ record.homeworld }}</div>\\n }\\n</div>\\n<!-- args:\\n{\\n datasource: new UniRecordDatasource<any>(starWarsCharacters.slice(0, 10)),\\n placeholder: 'Search characters',\\n }\\n-->\"\n },\n {\n \"title\": \"Field Scoped\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Field Scoped -->\\n<uni-data-search ${argsToTemplate(props)} />\\n<div box-layout paddingTop=\\\"md\\\">\\n @for (record of datasource.records(); track record.id) {\\n <div>{{ record.name }} — {{ record.homeworld }}</div>\\n }\\n</div>\\n<!-- args:\\n{\\n datasource: new UniRecordDatasource<any>(starWarsCharacters.slice(0, 10)),\\n placeholder: 'Search by name only',\\n fields: ['name'],\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The Data Search input filters a `UniDatasource` as the user types. With a client-side\\n`UniRecordDatasource` it applies a predicate over the record's fields; with a\\n`UniServerSideDatasource` it sends a filter object to the data loader. Pass `fields` to\\nrestrict the search to specific columns. A clear button resets the filter.\\nIt pairs with the [Data Table](?path=/docs/components-data-table--docs) — see its\\n\\\"With Search\\\" story.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"data-table\",\n \"name\": \"DataTable\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"data\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-data-table\",\n \"api\": [\n {\n \"name\": \"datasource\",\n \"kind\": \"input\",\n \"type\": \"UniDatasource<T>\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"columns\",\n \"kind\": \"input\",\n \"type\": \"ColumnDefinition<T>[]\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"useMultiSelect\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"useRowClick\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"\"\n },\n {\n \"name\": \"height\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"rowSelect\",\n \"kind\": \"output\",\n \"type\": \"T\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"rowClick\",\n \"kind\": \"output\",\n \"type\": \"T\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<!-- args:\\n{\\n columns: [\\n {\\n columnDef: 'id',\\n header: 'ID',\\n isSticky: true,\\n },\\n {\\n columnDef: 'name',\\n header: 'Name',\\n textAlign: 'left',\\n },\\n {\\n columnDef: 'species',\\n header: 'Species',\\n },\\n {\\n columnDef: 'height',\\n header: 'Height',\\n cell: (element: any) => (element.height ? `${element.height} m` : ''),\\n },\\n {\\n columnDef: 'homeworld',\\n header: 'Home World',\\n },\\n ],\\n datasource: new UniRecordDatasource<any>(starWarsCharacters),\\n }\\n-->\"\n },\n {\n \"title\": \"With Header\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Header -->\\n<!-- args:\\n{\\n height: '300px',\\n columns: [\\n {\\n columnDef: 'id',\\n header: 'ID',\\n },\\n {\\n columnDef: 'name',\\n header: 'Name',\\n textAlign: 'left',\\n },\\n {\\n columnDef: 'homeworld',\\n header: 'Home World',\\n },\\n ],\\n datasource: new UniRecordDatasource<any>(starWarsCharacters),\\n }\\n-->\"\n },\n {\n \"title\": \"With Search\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Search -->\\n<!-- args:\\n{\\n height: '300px',\\n columns: [\\n {\\n columnDef: 'id',\\n header: 'ID',\\n },\\n {\\n columnDef: 'name',\\n header: 'Name',\\n textAlign: 'left',\\n },\\n {\\n columnDef: 'homeworld',\\n header: 'Home World',\\n },\\n ],\\n datasource: new UniRecordDatasource<any>(starWarsCharacters),\\n }\\n-->\"\n },\n {\n \"title\": \"With Detail Row\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Detail Row -->\\n<!-- args:\\n{\\n height: '300px',\\n columns: [\\n {\\n columnDef: 'id',\\n header: 'ID',\\n },\\n {\\n columnDef: 'name',\\n header: 'Name',\\n textAlign: 'left',\\n },\\n {\\n columnDef: 'homeworld',\\n header: 'Home World',\\n },\\n ],\\n datasource: new UniRecordDatasource<any>(starWarsCharacters),\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Data grid for structured records: sortable column headers (Sort Header), paging\\n(Paginator), field-scoped search (Data Search), row interaction, sticky columns,\\nand expandable detail rows — all themed through the `dataTable` options, which\\npoint at shared tokens for surfaces, borders, and typography.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Column headers use `scope=\\\"col\\\"`; sortable headers are real buttons with `aria-sort` on the `<th>`.\",\n \"The loading overlay is a `role=\\\"status\\\"` region and the table is `aria-busy` while loading.\",\n \"Collapsed detail rows are `inert`, out of the accessibility tree until expanded.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"debounce-input\",\n \"name\": \"DebounceInput\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-debounce-input\",\n \"api\": [\n {\n \"name\": \"inputName\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"inputId\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"debounceTime\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"400\",\n \"description\": \"\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible name for the input.\"\n },\n {\n \"name\": \"placeholder\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"''\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"role\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"ariaExpanded\",\n \"kind\": \"input\",\n \"type\": \"boolean | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"\"\n },\n {\n \"name\": \"ariaControls\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"ariaActivedescendant\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"change\",\n \"kind\": \"output\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-debounce-input ${argsToTemplate(props)} (change)=\\\"lastEmitted = $event\\\" #debounce />\\n<div box-layout paddingTop=\\\"md\\\">\\n <div>Live value: {{ debounce.value() }}</div>\\n <div>Debounced value: {{ lastEmitted }}</div>\\n</div>\\n<!-- args:\\n{\\n inputName: 'search',\\n debounceTime: 400,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"A themed text input that emits its `change` output only after the user pauses typing\\n(400&nbsp;ms by default) and only when the value actually changed — a signal-based\\ndebounce with no rxjs involved. The live value is exposed as the `value` signal, and\\n`clear()` empties the field immediately (cancelling any pending emit).\\nIt wears the shared input chrome (color, border, typeface, focus ring) via the input\\nbox, and offers `pre-input` / `post-input` attribute slots for adornments plus ARIA\\npassthrough inputs (`role`, `ariaExpanded`, `ariaControls`, `ariaActivedescendant`)\\nso composite widgets can annotate the real input element.\\nUsed by the [Search Input](?path=/docs/components-forms-search-input--docs), which\\nprojects its magnifier and clear button through the slots and drives the combobox\\nARIA through the passthroughs.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Set `label` — it becomes the accessible name (`aria-label`) of the inner input.\",\n \"The ARIA passthrough inputs (`role`, `ariaExpanded`, `ariaControls`,\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"dialog\",\n \"name\": \"Dialog\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"dialog[uni-dialog]\",\n \"api\": [\n {\n \"name\": \"show\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Two-way bindable open state: [(show)].\"\n },\n {\n \"name\": \"ariaLabel\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible name for dialogs without a DialogHeader. When a DialogHeader is present it labels the dialog automatically via aria-labelledby.\"\n },\n {\n \"name\": \"initialFocus\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"CSS selector for the element to focus when the dialog opens. Defaults to the browser's native behavior (first focusable element).\"\n },\n {\n \"name\": \"defaultCloseButton\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"showing\",\n \"kind\": \"output\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"Emits true once opened and false once the closing animation finishes.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<button text-button (click)=\\\"dialog.open()\\\">Open Dialog</button>\\n<dialog uni-dialog #dialog>\\n <header uni-dialog-header color=\\\"primary\\\">Sample Dialog</header>\\n <div center-layout [width]=\\\"300\\\" [height]=\\\"200\\\">\\n <span uni-text>Dialog</span>\\n </div>\\n <footer dialog-buttons></footer>\\n</dialog>\\n<!-- args:\\n{}\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Enhanced modal dialog that extends the native HTML `<dialog>` element with built-in animations, composition components, and accessibility features.\\n### Features\\n- **Native HTML Dialog**: Built on the standard dialog element with full semantic support\\n- **Smooth Animations**: Automatic fade transitions for open/close states\\n- **Composition Components**: Optional `DialogHeader` and `DialogButtons` for consistent layouts\\n- **Programmatic Control**: Open/close methods plus show property binding\\n- **Backdrop Handling**: Click-outside-to-close with customizable behavior\\n- **Accessibility**: Full keyboard navigation, focus trapping, and screen reader support\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Focus trapping and keyboard navigation (Tab, Escape, Enter)\",\n \"Screen reader announcements\",\n \"Semantic dialog roles\"\n ]\n },\n \"relatedTokens\": [\n \"dialog.behavior.borderRadius\",\n \"dialog.behavior.color\",\n \"dialog.behavior.border\",\n \"dialog.behavior.padding\",\n \"dialog.behavior.elevation\",\n \"dialog.behavior.backdrop\"\n ]\n },\n {\n \"id\": \"dialog-buttons\",\n \"name\": \"DialogButtons\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-dialog-buttons], [dialog-buttons]\",\n \"api\": [\n {\n \"name\": \"confirmButtonText\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"confirmButtonVariant\",\n \"kind\": \"input\",\n \"type\": \"Variant\",\n \"required\": false,\n \"default\": \"'primary'\",\n \"description\": \"\"\n },\n {\n \"name\": \"cancelButtonText\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"disableConfirm\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"padding\",\n \"kind\": \"input\",\n \"type\": \"NullableSize\",\n \"required\": false,\n \"default\": \"'md'\",\n \"description\": \"\"\n },\n {\n \"name\": \"paddingBottom\",\n \"kind\": \"input\",\n \"type\": \"NullableSize\",\n \"required\": false,\n \"default\": \"'lg'\",\n \"description\": \"\"\n },\n {\n \"name\": \"justifyContent\",\n \"kind\": \"input\",\n \"type\": \"JustifyContent\",\n \"required\": false,\n \"default\": \"'center'\",\n \"description\": \"\"\n },\n {\n \"name\": \"confirmed\",\n \"kind\": \"output\",\n \"type\": \"unknown\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"dialog-header\",\n \"name\": \"DialogHeader\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-dialog-header]\",\n \"api\": []\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"divider\",\n \"name\": \"Divider\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-divider\",\n \"api\": [\n {\n \"name\": \"orientation\",\n \"kind\": \"input\",\n \"type\": \"Orientation\",\n \"required\": false,\n \"default\": \"'horizontal'\",\n \"description\": \"\"\n },\n {\n \"name\": \"border\",\n \"kind\": \"input\",\n \"type\": \"Border\",\n \"required\": false,\n \"default\": \"'primary'\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<div center-layout height=\\\"200px\\\">\\n <uni-divider border=\\\"${border}\\\" orientation=\\\"${orientation}\\\" />\\n</div>\\n<!-- args:\\n{\\n orientation: 'horizontal',\\n border: 'primary',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Dividers are used to visually separate content in a list or group.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"drag-and-drop\",\n \"name\": \"DragAndDrop\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"directives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-drag-n-drop], [dragAndDrop]\",\n \"api\": [\n {\n \"name\": \"onFileDropped\",\n \"kind\": \"output\",\n \"type\": \"FileList\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"drawer\",\n \"name\": \"Drawer\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-drawer\",\n \"api\": [\n {\n \"name\": \"open\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Two-way bindable open state: [(open)].\"\n },\n {\n \"name\": \"mode\",\n \"kind\": \"input\",\n \"type\": \"DrawerMode\",\n \"required\": false,\n \"default\": \"'side'\",\n \"description\": \"\"\n },\n {\n \"name\": \"position\",\n \"kind\": \"input\",\n \"type\": \"DrawerPosition\",\n \"required\": false,\n \"default\": \"'start'\",\n \"description\": \"\"\n },\n {\n \"name\": \"ariaLabel\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"'Navigation'\",\n \"description\": \"Accessible name for the overlay mode's dialog.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Dashboard Shell\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Dashboard Shell -->\\n<section stack-layout height=\\\"420px\\\" overflow=\\\"hidden\\\">\\n<uni-app-bar title=\\\"Console\\\">\\n <button leading icon-button symbolName=\\\"menu\\\" (click)=\\\"open = !open\\\">Toggle navigation</button>\\n <button trailing icon-button symbolName=\\\"account_circle\\\">Account</button>\\n</uni-app-bar>\\n<div row-layout [grow]=\\\"1\\\" [minHeight]=\\\"0\\\">\\n <uni-drawer mode=\\\"side\\\" [(open)]=\\\"open\\\">\\n <nav stack-layout gap=\\\"sm\\\" aria-label=\\\"Main\\\">\\n <span uni-text=\\\"title-small\\\" display=\\\"block\\\">Dashboard</span>\\n <span uni-text=\\\"title-small\\\" display=\\\"block\\\">Reports</span>\\n <span uni-text=\\\"title-small\\\" display=\\\"block\\\">Settings</span>\\n </nav>\\n </uni-drawer>\\n <main box-layout [grow]=\\\"1\\\" padding=\\\"md\\\" [minWidth]=\\\"0\\\">\\n <h2 uni-text=\\\"headline-small\\\">Content</h2>\\n <span uni-text=\\\"body-1-long\\\" display=\\\"block\\\">\\n The side drawer pushes this content; toggle it from the app bar.\\n </span>\\n </main>\\n</div>\\n</section>\"\n },\n {\n \"title\": \"Overlay\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Overlay -->\\n<section stack-layout height=\\\"420px\\\" overflow=\\\"hidden\\\">\\n<uni-app-bar title=\\\"Console\\\">\\n <button leading icon-button symbolName=\\\"menu\\\" (click)=\\\"open = !open\\\">Toggle navigation</button>\\n <button trailing icon-button symbolName=\\\"account_circle\\\">Account</button>\\n</uni-app-bar>\\n<div row-layout [grow]=\\\"1\\\" [minHeight]=\\\"0\\\">\\n <uni-drawer mode=\\\"side\\\" [(open)]=\\\"open\\\">\\n <nav stack-layout gap=\\\"sm\\\" aria-label=\\\"Main\\\">\\n <span uni-text=\\\"title-small\\\" display=\\\"block\\\">Dashboard</span>\\n <span uni-text=\\\"title-small\\\" display=\\\"block\\\">Reports</span>\\n <span uni-text=\\\"title-small\\\" display=\\\"block\\\">Settings</span>\\n </nav>\\n </uni-drawer>\\n <main box-layout [grow]=\\\"1\\\" padding=\\\"md\\\" [minWidth]=\\\"0\\\">\\n <h2 uni-text=\\\"headline-small\\\">Content</h2>\\n <span uni-text=\\\"body-1-long\\\" display=\\\"block\\\">\\n The side drawer pushes this content; toggle it from the app bar.\\n </span>\\n </main>\\n</div>\\n</section>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Navigation drawer with two modes sharing one content slot:\\n- **`side`** renders an in-flow `<aside>` that pushes page content — the classic\\n dashboard sidenav. Opening and closing animates its width; a divider border primitive\\n separates it from the content, and it is hidden from assistive tech while closed.\\n- **`over`** renders a native `<dialog>` in the top layer: focus trapping, Escape, and\\n the scrim backdrop come from the platform, and the panel slides in from its edge\\n (`position`: `start` or `end`).\\n`[(open)]` is two-way; Escape and backdrop clicks keep it in sync. Surface, width,\\ndivider, elevation, padding and backdrop all resolve from the theme's `drawer` options.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Overlay mode is a native `<dialog>`: focus is trapped by `showModal()`, Escape closes, and the backdrop click closes — all kept in sync with `[(open)]`.\",\n \"Give the overlay an accessible name via `ariaLabel` (defaults to \\\"Navigation\\\").\",\n \"A closed side drawer is `aria-hidden`, so its links leave the accessibility tree.\"\n ]\n },\n \"relatedTokens\": [\n \"drawer.behavior.color\",\n \"drawer.behavior.width\",\n \"drawer.behavior.divider\",\n \"drawer.behavior.elevation\",\n \"drawer.behavior.padding\",\n \"drawer.behavior.backdrop\"\n ]\n },\n {\n \"id\": \"dropdown\",\n \"name\": \"Dropdown\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-dropdown\",\n \"api\": [\n {\n \"name\": \"trigger\",\n \"kind\": \"input\",\n \"type\": \"HTMLElement\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"placement\",\n \"kind\": \"input\",\n \"type\": \"Placement\",\n \"required\": false,\n \"default\": \"'bottom-start'\",\n \"description\": \"\"\n },\n {\n \"name\": \"offset\",\n \"kind\": \"input\",\n \"type\": \"AnchorOffset\",\n \"required\": false,\n \"default\": \"{ mainAxis: 4, alignmentAxis: 12 }\",\n \"description\": \"\"\n },\n {\n \"name\": \"ariaHasPopup\",\n \"kind\": \"input\",\n \"type\": \"AriaHasPopup | null\",\n \"required\": false,\n \"default\": \"null\",\n \"description\": \"Value for aria-haspopup on the trigger, describing what the popover contains (e.g. 'menu' for Menu, 'dialog' for rich content). When unset, only aria-expanded/aria-controls are managed.\"\n },\n {\n \"name\": \"paddingVertical\",\n \"kind\": \"input\",\n \"type\": \"NullableSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingHorizontal\",\n \"kind\": \"input\",\n \"type\": \"NullableSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"dropdownShowing\",\n \"kind\": \"output\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"dropdownHiding\",\n \"kind\": \"output\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": [\n \"dropdown.behavior.border\",\n \"dropdown.behavior.borderRadius\",\n \"dropdown.behavior.color\",\n \"dropdown.behavior.shadow\"\n ]\n },\n {\n \"id\": \"expand\",\n \"name\": \"Expand\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-expand\",\n \"api\": [\n {\n \"name\": \"collapsed\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-card>\\n<uni-card-header title=\\\"Expandable Card\\\"><uni-expand-toggle #toggle /></uni-card-header>\\n<uni-expand [collapsed]=\\\"toggle.collapsed()\\\">\\n <uni-card-content>\\n <span uni-text>${ngContent}</span>\\n </uni-card-content>\\n</uni-expand>\\n</uni-card>\\n<!-- args:\\n{\\n collapsed: false,\\n ngContent: 'Expandable Content',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Expand is a group of components that can be used in concert to expand/collapse sections of information.\\nThe Expand component is transparent in nature and can nest any element to collapse it out of view.\\nThe Expand Toggle is an optional convenience element that can be used to trigger the expand/collapse animation.\\nIt has been designed to work with the Card Header.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"The toggle carries `aria-expanded` and `aria-controls` for its region (wired automatically inside Expand Area).\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"expand-area\",\n \"name\": \"ExpandArea\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-expand-area\",\n \"api\": [\n {\n \"name\": \"title\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"initCollapsed\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"padding\",\n \"kind\": \"input\",\n \"type\": \"NullableSize\",\n \"required\": false,\n \"default\": \"'md'\",\n \"description\": \"\"\n },\n {\n \"name\": \"collapsed\",\n \"kind\": \"output\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-expand-area title=\\\"${title}\\\" padding=\\\"${padding}\\\" initCollapsed=\\\"${initCollapsed}\\\" #expandArea>\\n <button text-button (click)=\\\"expandArea.toggleExpand()\\\" size=\\\"md\\\" variant=\\\"ghost\\\" symbolLeft=\\\"collapse_all\\\">Collapse area</button>\\n</uni-expand-area>\\n<!-- args:\\n{\\n title: 'Expand Area Title',\\n padding: 'sm',\\n initCollapsed: true,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The batteries-included collapsible: a themed surface with a header row, an Expand\\nToggle, and a content region wired together — `aria-expanded`/`aria-controls`\\nhandled automatically. For custom collapse layouts, compose the lower-level Expand\\nand Expand Toggle directly.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"expand-toggle\",\n \"name\": \"ExpandToggle\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-expand-toggle\",\n \"api\": [\n {\n \"name\": \"collapsed\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"\"\n },\n {\n \"name\": \"ariaControls\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Id of the Expand region this toggle controls (see UniExpandComponent.regionId).\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-expand-toggle [collapsed]=\\\"collapsed\\\" #toggle />\\n<div>Collapsed: {{ toggle.collapsed() }}</div>\\n<!-- args:\\n{\\n collapsed: true,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The Expand Toggle is a chevron icon button that controls collapsed/expanded state. It pairs\\nwith the [Expand](?path=/docs/components-expand--docs) component: bind the toggle's\\n`collapsed` model to the Expand's `collapsed` input to build collapsible sections.\\nThe icon rotates 180° between states and shows an \\\"Expand\\\"/\\\"Collapse\\\" tooltip.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"file-drop-zone\",\n \"name\": \"FileDropZone\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-file-drop-zone\",\n \"api\": [\n {\n \"name\": \"height\",\n \"kind\": \"input\",\n \"type\": \"number | string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderRadius\",\n \"kind\": \"input\",\n \"type\": \"Radius\",\n \"required\": false,\n \"default\": \"'md'\",\n \"description\": \"\"\n },\n {\n \"name\": \"border\",\n \"kind\": \"input\",\n \"type\": \"Variant\",\n \"required\": false,\n \"default\": \"'light'\",\n \"description\": \"\"\n },\n {\n \"name\": \"padding\",\n \"kind\": \"input\",\n \"type\": \"NullableSize\",\n \"required\": false,\n \"default\": \"'lg'\",\n \"description\": \"\"\n },\n {\n \"name\": \"useBrowseButton\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"browseButtonText\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"'Browse for file'\",\n \"description\": \"\"\n },\n {\n \"name\": \"allowedFileExtensions\",\n \"kind\": \"input\",\n \"type\": \"string[]\",\n \"required\": false,\n \"default\": \"[]\",\n \"description\": \"\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"helpTemplate\",\n \"kind\": \"input\",\n \"type\": \"TemplateRef<unknown> | null\",\n \"required\": false,\n \"default\": \"null\",\n \"description\": \"\"\n },\n {\n \"name\": \"helpTemplateContext\",\n \"kind\": \"input\",\n \"type\": \"unknown | null\",\n \"required\": false,\n \"default\": \"null\",\n \"description\": \"\"\n },\n {\n \"name\": \"fileAttached\",\n \"kind\": \"output\",\n \"type\": \"File | undefined\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"fileRemoved\",\n \"kind\": \"output\",\n \"type\": \"unknown\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-file-drop-zone ${argsToTemplate(props)} [helpTemplate]=\\\"myTemplate\\\" />\\n<ng-template #myTemplate>\\n<div stack-layout alignItems=\\\"center\\\">\\n <span uni-text=\\\"title-medium\\\">Title Text</span>\\n <span uni-text=\\\"subtitle-1\\\">Subtitle Text</span>\\n</div>\\n</ng-template>\\n<!-- args:\\n{\\n label: 'Image',\\n browseButtonText: 'Browse for image',\\n allowedFileExtensions: ['png', 'jpg'],\\n }\\n-->\"\n },\n {\n \"title\": \"With Help Template\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Help Template -->\\n<uni-file-drop-zone ${argsToTemplate(props)} [helpTemplate]=\\\"myTemplate\\\" />\\n<ng-template #myTemplate>\\n<div stack-layout alignItems=\\\"center\\\">\\n <span uni-text=\\\"title-medium\\\">Title Text</span>\\n <span uni-text=\\\"subtitle-1\\\">Subtitle Text</span>\\n</div>\\n</ng-template>\\n<!-- args:\\n{\\n label: 'Image',\\n browseButtonText: 'Browse for image',\\n allowedFileExtensions: ['png', 'jpg'],\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The File Drop Zone component is used in uploading files.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Without a browse button, the zone itself is `role=\\\"button\\\"` with `tabindex=\\\"0\\\"` and Enter/Space activation.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"grid\",\n \"name\": \"Grid\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-grid-layout], [grid-layout]\",\n \"api\": [\n {\n \"name\": \"display\",\n \"kind\": \"input\",\n \"type\": \"OptionalDisplay\",\n \"required\": false,\n \"default\": \"'grid'\",\n \"description\": \"\"\n },\n {\n \"name\": \"templateAreas\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"templateColumns\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"templateRows\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"outline\",\n \"kind\": \"input\",\n \"type\": \"Thickness\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"outlineColor\",\n \"kind\": \"input\",\n \"type\": \"Variant\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Simple Grid\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Simple Grid -->\\n<div grid-layout ${argsToTemplate(props)}>\\n <div box-layout gridArea=\\\"nav\\\" color=\\\"quaternary\\\" padding=\\\"md\\\" borderRadius=\\\"sm\\\">\\n <span uni-text>nav</span>\\n </div>\\n <div box-layout gridArea=\\\"a1\\\" color=\\\"primary\\\" padding=\\\"md\\\" borderRadius=\\\"sm\\\">\\n <span uni-text>a1</span>\\n </div>\\n <div box-layout gridArea=\\\"a2\\\" color=\\\"secondary\\\" padding=\\\"md\\\" borderRadius=\\\"sm\\\">\\n <span uni-text>a2</span>\\n </div>\\n <div box-layout gridArea=\\\"b1\\\" color=\\\"tertiary\\\" padding=\\\"md\\\" borderRadius=\\\"sm\\\">\\n <span uni-text>b1</span>\\n </div>\\n <div box-layout gridArea=\\\"b2\\\" color=\\\"warn\\\" padding=\\\"md\\\" borderRadius=\\\"sm\\\">\\n <span uni-text>b2</span>\\n </div>\\n</div>\\n<!-- args:\\n{\\n templateAreas: `'nav a1 a2' 'nav b1 b2'`,\\n gap: 'sm',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Grid is a layout component used for composing elements in a grid-like pattern.\\nLike tables, grid layouts align elements into columns and rows.\\nHowever, grids allow for more control when spanning elements across columns and rows.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"grid-area\",\n \"name\": \"GridArea\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-grid-area-layout], [grid-area-layout]\",\n \"api\": [\n {\n \"name\": \"area\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"icon\",\n \"name\": \"Icon\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"primitives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-icon\",\n \"api\": [\n {\n \"name\": \"color\",\n \"kind\": \"input\",\n \"type\": \"ColorToken\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"name\",\n \"kind\": \"input\",\n \"type\": \"keyof Icons\",\n \"required\": true,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<div box-layout height=\\\"${size}px\\\">\\n <uni-icon name=\\\"${name}\\\" color=\\\"${color}\\\" />\\n </div>\\n<!-- args:\\n{\\n name: 'checkCircle',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Icons are adaptive svg images. Instead of defining a size or color attributes, Icons\\nwill grow to the space allotted to them and use the current color of its parent element.\\nHowever, it is possible to statically set the icon color.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Icons are decorative (`aria-hidden`) — the parent control carries the accessible name.\",\n \"Icons come from the theme's `icons` map (masked with `currentColor`); unknown names render nothing.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"icon-button\",\n \"name\": \"IconButton\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"primitives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"button[uni-icon-button], button[icon-button]\",\n \"api\": [\n {\n \"name\": \"ariaLabel\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible name for the button. Alternative to projecting text content (`<button icon-button>Close</button>`); one of the two is required for an icon-only button to be announced correctly.\"\n },\n {\n \"name\": \"iconName\",\n \"kind\": \"input\",\n \"type\": \"IconName\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"symbolName\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"variant\",\n \"kind\": \"input\",\n \"type\": \"Variant\",\n \"required\": false,\n \"default\": \"'ghost'\",\n \"description\": \"\"\n },\n {\n \"name\": \"size\",\n \"kind\": \"input\",\n \"type\": \"Size\",\n \"required\": false,\n \"default\": \"'lg'\",\n \"description\": \"\"\n },\n {\n \"name\": \"disable\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"loading\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"opticalSize\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"24\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<button icon-button iconName=\\\"${iconName}\\\" variant=\\\"${variant}\\\" size=\\\"${size}\\\" ${argsToTemplate(\\n props\\n)}></button>\\n<!-- args:\\n{\\n iconName: 'search',\\n size: 'lg',\\n variant: 'ghost',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"A square, icon-only button for toolbars, bars, and tight layouts. Renders a real\\n`<button>` around a symbol or icon, with ghost as the default variant so it sits\\nquietly on any surface. Because there is no visible text, the accessible name comes\\nfrom projected (visually hidden) text or `ariaLabel`.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Icon-only buttons need a name: project text (rendered visually hidden) or set `ariaLabel`.\",\n \"The icon/symbol itself is decorative (`aria-hidden`).\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"input\",\n \"name\": \"Input\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-input\",\n \"api\": [\n {\n \"name\": \"value\",\n \"kind\": \"model\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"''\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"touched\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"invalid\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"dirty\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"required\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Synced from required() validators by the Signal Forms [field] directive.\"\n },\n {\n \"name\": \"ariaDescribedBy\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Id(s) of external element(s) describing this control — typically your app-rendered error message — exposed as aria-describedby.\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"placeholder\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"''\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-input ${argsToTemplate(props)}>\\n</uni-input>\\n<!-- args:\\n{\\n label: 'Email Address',\\n placeholder: 'Enter your email',\\n value: '',\\n disabled: false,\\n touched: false,\\n invalid: false,\\n dirty: false,\\n }\\n-->\"\n },\n {\n \"title\": \"With Value\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Value -->\\n<uni-input ${argsToTemplate(props)}>\\n</uni-input>\\n<!-- args:\\n{\\n label: 'Username',\\n placeholder: 'Enter username',\\n value: 'john.doe',\\n disabled: false,\\n touched: true,\\n invalid: false,\\n dirty: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Disabled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Disabled -->\\n<uni-input ${argsToTemplate(props)}>\\n</uni-input>\\n<!-- args:\\n{\\n label: 'Disabled Input',\\n placeholder: 'This input is disabled',\\n value: 'Cannot edit this',\\n disabled: true,\\n touched: false,\\n invalid: false,\\n dirty: false,\\n }\\n-->\"\n },\n {\n \"title\": \"Invalid\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Invalid -->\\n<uni-input ${argsToTemplate(props)}>\\n</uni-input>\\n<!-- args:\\n{\\n label: 'Email Address',\\n placeholder: 'Enter your email',\\n value: 'invalid-email',\\n disabled: false,\\n touched: true,\\n invalid: true,\\n dirty: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Required\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Required -->\\n<uni-input ${argsToTemplate(props)}>\\n</uni-input>\\n<!-- args:\\n{\\n label: 'Full Name',\\n placeholder: 'This field is required',\\n value: '',\\n disabled: false,\\n touched: true,\\n invalid: true,\\n dirty: false,\\n }\\n-->\"\n },\n {\n \"title\": \"Long Label\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Long Label -->\\n<uni-input ${argsToTemplate(props)}>\\n</uni-input>\\n<!-- args:\\n{\\n label: 'A Very Long Label That Demonstrates How The Component Handles Extended Text',\\n placeholder: 'Enter some text',\\n value: '',\\n disabled: false,\\n touched: false,\\n invalid: false,\\n dirty: false,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Single-line text field with the shared input chrome (themed color, border, typeface,\\nfocus ring, error state). It implements `FormValueControl<string>`: bind a Signal\\nForms field with `[field]`, or drive `[(value)]` directly. Errors style the field\\nonly after the user has interacted (touched or dirty), and `required` syncs from\\n`required()` validators automatically.\\nProject adornments with the `pre-input` / `post-input` slots. For multi-line text\\nuse Textarea; for search semantics use Search Input.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"`label` is required and becomes the accessible name (`aria-label`).\",\n \"`aria-invalid` reflects the error state once the field was touched or is dirty.\",\n \"`aria-required` mirrors the `required` state synced from validators.\",\n \"Link external error text with `ariaDescribedBy`.\"\n ]\n },\n \"relatedTokens\": [\n \"input.behavior.typeFace\",\n \"input.behavior.color\",\n \"input.behavior.textColor\",\n \"input.behavior.disabledColor\",\n \"input.behavior.disabledTextColor\",\n \"input.behavior.border\",\n \"input.behavior.borderRadius\",\n \"input.behavior.errorShadow\",\n \"input.behavior.errorBorder\",\n \"input.behavior.height\",\n \"input.behavior.paddingLeft\",\n \"input.behavior.focusOutline\",\n \"input.behavior.focusOutlineOffset\"\n ]\n },\n {\n \"id\": \"input-box\",\n \"name\": \"InputBox\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-input-box\",\n \"api\": [\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"error\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"minWidth\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"'0'\",\n \"description\": \"\"\n },\n {\n \"name\": \"height\",\n \"kind\": \"input\",\n \"type\": \"string | number | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"Override the themed field height, e.g. `'auto'` for multi-line fields.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-input-box ${argsToTemplate(props)}>\\n <input type=\\\"text\\\" placeholder=\\\"Type here...\\\" />\\n</uni-input-box>\\n<!-- args:\\n{\\n disabled: false,\\n error: false,\\n }\\n-->\"\n },\n {\n \"title\": \"Error State\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Error State -->\\n<uni-input-box ${argsToTemplate(props)}>\\n <input type=\\\"text\\\" placeholder=\\\"Type here...\\\" />\\n</uni-input-box>\\n<!-- args:\\n{\\n disabled: false,\\n error: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Disabled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Disabled -->\\n<uni-input-box ${argsToTemplate(props)}>\\n <input type=\\\"text\\\" placeholder=\\\"Type here...\\\" />\\n</uni-input-box>\\n<!-- args:\\n{\\n disabled: true,\\n error: false,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The Input Box is the themed shell shared by all text-like form controls\\n([Input](?path=/docs/components-forms-input--docs),\\n[Select](?path=/docs/components-forms-select--docs), Multi Select Dropdown). It projects any\\nnative `input` or `select` element, strips the platform's default styling, and applies the\\n`input` component theme options: colors, border, radius, focus outline, and the error and\\ndisabled states.\\nUse it directly when composing a custom form control that should match the design system's\\ninput styling.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"json-view\",\n \"name\": \"JsonView\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-json-view\",\n \"api\": [\n {\n \"name\": \"json\",\n \"kind\": \"input\",\n \"type\": \"unknown\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"rows\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"6\",\n \"description\": \"\"\n },\n {\n \"name\": \"fontSize\",\n \"kind\": \"input\",\n \"type\": \"AbsoluteSize | string\",\n \"required\": false,\n \"default\": \"'medium'\",\n \"description\": \"\"\n },\n {\n \"name\": \"width\",\n \"kind\": \"input\",\n \"type\": \"string | number\",\n \"required\": false,\n \"default\": \"'100%'\",\n \"description\": \"\"\n },\n {\n \"name\": \"selectOnClick\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<!-- args:\\n{\\n json: { a: { b: ['c', 'd', 'e', 'f'], g: ['h', 'i'] }, j: 'k' },\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The JSON View component provides a simple way to display JSON data in a formatted, readable manner. It renders the JSON in a textarea element, making it easy for users to view and copy the content. The component automatically formats the JSON with proper indentation for better readability.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"menu\",\n \"name\": \"Menu\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-menu\",\n \"api\": [\n {\n \"name\": \"menuItems\",\n \"kind\": \"input\",\n \"type\": \"MenuItem[]\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"activeItem\",\n \"kind\": \"input\",\n \"type\": \"MenuItem\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"placement\",\n \"kind\": \"input\",\n \"type\": \"Placement\",\n \"required\": false,\n \"default\": \"'bottom-start'\",\n \"description\": \"\"\n },\n {\n \"name\": \"menuItemClicked\",\n \"kind\": \"output\",\n \"type\": \"MenuItem\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<div box-layout color=\\\"primary\\\" padding=\\\"sm\\\">\\n <uni-menu ${argsToTemplate(props)}>\\n <button text-button variant=\\\"ghost\\\" symbolRight=\\\"arrow_drop_down\\\">Menu</button>\\n </uni-menu>\\n</div>\\n<!-- args:\\n{\\n menuItems: [\\n { label: 'Language', symbolName: 'translate' },\\n { label: 'Settings', symbolName: 'settings' },\\n { label: 'Logout', symbolName: 'logout' },\\n ],\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Menus can be linked to any component, but it is recommended to use either the `text-button` or `icon-button` component.\\nMenus are populated by creating an array of Menu Items (`MenuItem[]`) and binding it to the `Menu` component.\\nActions are optional as the `Menu` component also emits the clicked menu item via the `menuItemClicked` output attribute.\\n### Menu Item Interface\\n```\\nMenuItem {\\n label: string;\\n symbolName?: string;\\n action?: () => void;\\n}\\n```\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Full ARIA menu pattern: arrows and Home/End move, first-letter typeahead jumps, Enter/Space activates.\",\n \"ArrowDown/ArrowUp on the trigger opens onto the first/last item; focus returns to the trigger on close.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"menu-item\",\n \"name\": \"MenuItem\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-menu-item], [menu-item]\",\n \"api\": [\n {\n \"name\": \"display\",\n \"kind\": \"input\",\n \"type\": \"OptionalDisplay\",\n \"required\": false,\n \"default\": \"'flex'\",\n \"description\": \"\"\n },\n {\n \"name\": \"flexDirection\",\n \"kind\": \"input\",\n \"type\": \"OptionalFlexDirection\",\n \"required\": false,\n \"default\": \"'row'\",\n \"description\": \"\"\n },\n {\n \"name\": \"alignItems\",\n \"kind\": \"input\",\n \"type\": \"OptionalAlignItems\",\n \"required\": false,\n \"default\": \"'center'\",\n \"description\": \"\"\n },\n {\n \"name\": \"paddingHorizontal\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"default\": \"'md'\",\n \"description\": \"\"\n },\n {\n \"name\": \"gap\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"default\": \"'md'\",\n \"description\": \"\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"template\",\n \"kind\": \"input\",\n \"type\": \"TemplateRef<T>\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"context\",\n \"kind\": \"input\",\n \"type\": \"T\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"symbolName\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"active\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"hoverColor\",\n \"kind\": \"input\",\n \"type\": \"ContainerColorToken\",\n \"required\": false,\n \"default\": \"'primary-container'\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"multi-select\",\n \"name\": \"MultiSelect\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-multi-select\",\n \"api\": [\n {\n \"name\": \"options\",\n \"kind\": \"input\",\n \"type\": \"Option<T>[]\",\n \"required\": false,\n \"default\": \"[]\",\n \"description\": \"\"\n },\n {\n \"name\": \"selections\",\n \"kind\": \"input\",\n \"type\": \"T[] | null | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"\"\n },\n {\n \"name\": \"updates\",\n \"kind\": \"output\",\n \"type\": \"T[] | undefined\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"flexDirection\",\n \"kind\": \"input\",\n \"type\": \"'row' | 'row-reverse' | 'column' | 'column-reverse'\",\n \"required\": false,\n \"default\": \"'column'\",\n \"description\": \"\"\n },\n {\n \"name\": \"checkboxGap\",\n \"kind\": \"input\",\n \"type\": \"NullableSize | undefined\",\n \"required\": false,\n \"default\": \"'sm'\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-multi-select ${argsToTemplate(props)}>\\n</uni-multi-select>\\n<!-- args:\\n{\\n options: [\\n { value: 'option1', label: 'Option 1' },\\n { value: 'option2', label: 'Option 2' },\\n { value: 'option3', label: 'Option 3' },\\n { value: 'option4', label: 'Option 4' },\\n ],\\n selections: ['option1', 'option3'],\\n }\\n-->\"\n },\n {\n \"title\": \"Empty\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Empty -->\\n<uni-multi-select ${argsToTemplate(props)}>\\n</uni-multi-select>\\n<!-- args:\\n{\\n options: [\\n { value: 'option1', label: 'Option 1' },\\n { value: 'option2', label: 'Option 2' },\\n { value: 'option3', label: 'Option 3' },\\n ],\\n selections: undefined,\\n }\\n-->\"\n },\n {\n \"title\": \"Single Selection\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Single Selection -->\\n<uni-multi-select ${argsToTemplate(props)}>\\n</uni-multi-select>\\n<!-- args:\\n{\\n options: [\\n { value: 'red', label: 'Red' },\\n { value: 'green', label: 'Green' },\\n { value: 'blue', label: 'Blue' },\\n ],\\n selections: ['red'],\\n }\\n-->\"\n },\n {\n \"title\": \"Many Options\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Many Options -->\\n<uni-multi-select ${argsToTemplate(props)}>\\n</uni-multi-select>\\n<!-- args:\\n{\\n options: [\\n { value: 'option1', label: 'First Option' },\\n { value: 'option2', label: 'Second Option' },\\n { value: 'option3', label: 'Third Option' },\\n { value: 'option4', label: 'Fourth Option' },\\n { value: 'option5', label: 'Fifth Option' },\\n { value: 'option6', label: 'Sixth Option' },\\n { value: 'option7', label: 'Seventh Option' },\\n { value: 'option8', label: 'Eighth Option' },\\n ],\\n selections: ['option2', 'option4', 'option6'],\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Inline multiple-choice: every option visible as a toggleable item, selection\\nemitted as an array. Reach for it when the option set is small enough to show all\\nat once and seeing the full set helps the choice; when space is tight or options\\nare many, use Multi Select Dropdown instead.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Options are real checkboxes in a labelled group — Space toggles, Tab moves between them.\",\n \"Selection state is announced per option.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"multi-select-dropdown\",\n \"name\": \"MultiSelectDropdown\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-multi-select-dropdown\",\n \"api\": [\n {\n \"name\": \"value\",\n \"kind\": \"model\",\n \"type\": \"T[]\",\n \"required\": false,\n \"default\": \"[]\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"touched\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"invalid\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"dirty\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"required\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Synced from required() validators by the Signal Forms [field] directive.\"\n },\n {\n \"name\": \"ariaDescribedBy\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Id(s) of external element(s) describing this control — typically your app-rendered error message — exposed as aria-describedby.\"\n },\n {\n \"name\": \"options\",\n \"kind\": \"input\",\n \"type\": \"Options<T>\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"placeholder\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"''\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-multi-select-dropdown ${argsToTemplate(props)}>\\n</uni-multi-select-dropdown>\\n<!-- args:\\n{\\n options: [\\n { value: 'option1', label: 'Option 1' },\\n { value: 'option2', label: 'Option 2' },\\n { value: 'option3', label: 'Option 3' },\\n { value: 'option4', label: 'Option 4' },\\n ],\\n value: ['option1', 'option3'],\\n }\\n-->\"\n },\n {\n \"title\": \"Empty\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Empty -->\\n<uni-multi-select-dropdown ${argsToTemplate(props)}>\\n</uni-multi-select-dropdown>\\n<!-- args:\\n{\\n options: [\\n { value: 'option1', label: 'Option 1' },\\n { value: 'option2', label: 'Option 2' },\\n { value: 'option3', label: 'Option 3' },\\n ],\\n value: [],\\n }\\n-->\"\n },\n {\n \"title\": \"Single Selection\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Single Selection -->\\n<uni-multi-select-dropdown ${argsToTemplate(props)}>\\n</uni-multi-select-dropdown>\\n<!-- args:\\n{\\n options: [\\n { value: 'red', label: 'Red' },\\n { value: 'green', label: 'Green' },\\n { value: 'blue', label: 'Blue' },\\n ],\\n value: ['red'],\\n }\\n-->\"\n },\n {\n \"title\": \"Many Options\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Many Options -->\\n<uni-multi-select-dropdown ${argsToTemplate(props)}>\\n</uni-multi-select-dropdown>\\n<!-- args:\\n{\\n options: [\\n { value: 'option1', label: 'First Option' },\\n { value: 'option2', label: 'Second Option' },\\n { value: 'option3', label: 'Third Option' },\\n { value: 'option4', label: 'Fourth Option' },\\n { value: 'option5', label: 'Fifth Option' },\\n { value: 'option6', label: 'Sixth Option' },\\n { value: 'option7', label: 'Seventh Option' },\\n { value: 'option8', label: 'Eighth Option' },\\n ],\\n value: ['option2', 'option4', 'option6'],\\n }\\n-->\"\n },\n {\n \"title\": \"Disabled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Disabled -->\\n<uni-multi-select-dropdown ${argsToTemplate(props)}>\\n</uni-multi-select-dropdown>\\n<!-- args:\\n{\\n options: [\\n { value: 'option1', label: 'Option 1' },\\n { value: 'option2', label: 'Option 2' },\\n { value: 'option3', label: 'Option 3' },\\n ],\\n value: ['option1'],\\n disabled: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Error State\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Error State -->\\n<uni-multi-select-dropdown ${argsToTemplate(props)}>\\n</uni-multi-select-dropdown>\\n<!-- args:\\n{\\n options: [\\n { value: 'option1', label: 'Option 1' },\\n { value: 'option2', label: 'Option 2' },\\n { value: 'option3', label: 'Option 3' },\\n ],\\n value: [],\\n invalid: true,\\n touched: true,\\n }\\n-->\"\n },\n {\n \"title\": \"With Placeholder\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Placeholder -->\\n<uni-multi-select-dropdown ${argsToTemplate(props)}>\\n</uni-multi-select-dropdown>\\n<!-- args:\\n{\\n options: [\\n { value: 'apple', label: 'Apple' },\\n { value: 'banana', label: 'Banana' },\\n { value: 'orange', label: 'Orange' },\\n { value: 'grape', label: 'Grape' },\\n ],\\n value: [],\\n placeholder: 'Choose your favorite fruits...',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Multiple choice behind a compact trigger: a disclosure popover containing a search\\nfield, checkbox options, and a Done action. Implements `FormValueControl` with an\\narray value for Signal Forms, and shows a summarized selection in the trigger.\\nThe popover surface, radius, and elevation resolve from the\\n`multiSelectDropdown` theme options.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"The trigger is a disclosure (`aria-haspopup=\\\"dialog\\\"`, `aria-expanded`); the popover contains native focusables Tab reaches normally.\",\n \"The search input is labelled; options are real checkboxes announced with their state.\",\n \"Escape closes the popover and returns focus to the trigger.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"notification-badge\",\n \"name\": \"NotificationBadge\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-notification-badge\",\n \"api\": [\n {\n \"name\": \"count\",\n \"kind\": \"input\",\n \"type\": \"number | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"\"\n },\n {\n \"name\": \"maxCount\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"99\",\n \"description\": \"\"\n },\n {\n \"name\": \"badgeVariant\",\n \"kind\": \"input\",\n \"type\": \"'dot' | 'count' | 'pill'\",\n \"required\": false,\n \"default\": \"'count'\",\n \"description\": \"\"\n },\n {\n \"name\": \"color\",\n \"kind\": \"input\",\n \"type\": \"Variant | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"\"\n },\n {\n \"name\": \"position\",\n \"kind\": \"input\",\n \"type\": \"'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'\",\n \"required\": false,\n \"default\": \"'top-right'\",\n \"description\": \"\"\n },\n {\n \"name\": \"show\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"\"\n },\n {\n \"name\": \"ariaLabel\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Screen-reader text for the badge (e.g. \\\"5 unread messages\\\"). Without it a sensible default is announced; a bare number or dot carries no meaning.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<div box-layout padding=\\\"md\\\">\\n<uni-notification-badge\\n [count]=\\\"count\\\"\\n [maxCount]=\\\"maxCount\\\"\\n [badgeVariant]=\\\"badgeVariant\\\"\\n [color]=\\\"color\\\"\\n [position]=\\\"position\\\"\\n [show]=\\\"show\\\">\\n <button uni-text-button>\\n Button with Badge\\n </button>\\n</uni-notification-badge>\\n</div>\\n<!-- args:\\n{\\n count: 5,\\n badgeVariant: 'count',\\n color: 'warn',\\n position: 'top-right',\\n show: true,\\n maxCount: 99,\\n }\\n-->\"\n },\n {\n \"title\": \"Dot\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Dot -->\\n<div box-layout padding=\\\"md\\\">\\n<uni-notification-badge\\n [count]=\\\"count\\\"\\n [maxCount]=\\\"maxCount\\\"\\n [badgeVariant]=\\\"badgeVariant\\\"\\n [color]=\\\"color\\\"\\n [position]=\\\"position\\\"\\n [show]=\\\"show\\\">\\n <button uni-text-button>\\n Button with Badge\\n </button>\\n</uni-notification-badge>\\n</div>\\n<!-- args:\\n{\\n badgeVariant: 'dot',\\n color: 'warn',\\n position: 'top-right',\\n show: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Count\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Count -->\\n<div box-layout padding=\\\"md\\\">\\n<uni-notification-badge\\n [count]=\\\"count\\\"\\n [maxCount]=\\\"maxCount\\\"\\n [badgeVariant]=\\\"badgeVariant\\\"\\n [color]=\\\"color\\\"\\n [position]=\\\"position\\\"\\n [show]=\\\"show\\\">\\n <button uni-text-button>\\n Button with Badge\\n </button>\\n</uni-notification-badge>\\n</div>\\n<!-- args:\\n{\\n count: 12,\\n badgeVariant: 'count',\\n color: 'warn',\\n position: 'top-right',\\n show: true,\\n maxCount: 99,\\n }\\n-->\"\n },\n {\n \"title\": \"Pill\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Pill -->\\n<div box-layout padding=\\\"md\\\">\\n<uni-notification-badge\\n [count]=\\\"count\\\"\\n [maxCount]=\\\"maxCount\\\"\\n [badgeVariant]=\\\"badgeVariant\\\"\\n [color]=\\\"color\\\"\\n [position]=\\\"position\\\"\\n [show]=\\\"show\\\">\\n <button uni-text-button>\\n Button with Badge\\n </button>\\n</uni-notification-badge>\\n</div>\\n<!-- args:\\n{\\n count: 1234,\\n badgeVariant: 'pill',\\n color: 'warn',\\n position: 'top-right',\\n show: true,\\n maxCount: 999,\\n }\\n-->\"\n },\n {\n \"title\": \"Large Count\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Large Count -->\\n<div box-layout padding=\\\"md\\\">\\n<uni-notification-badge\\n [count]=\\\"count\\\"\\n [maxCount]=\\\"maxCount\\\"\\n [badgeVariant]=\\\"badgeVariant\\\"\\n [color]=\\\"color\\\"\\n [position]=\\\"position\\\"\\n [show]=\\\"show\\\">\\n <button uni-text-button>\\n Button with Badge\\n </button>\\n</uni-notification-badge>\\n</div>\\n<!-- args:\\n{\\n count: 150,\\n badgeVariant: 'count',\\n color: 'warn',\\n position: 'top-right',\\n show: true,\\n maxCount: 99,\\n }\\n-->\"\n },\n {\n \"title\": \"Different Colors\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Different Colors -->\\n<div box-layout padding=\\\"md\\\">\\n<uni-notification-badge\\n [count]=\\\"count\\\"\\n [maxCount]=\\\"maxCount\\\"\\n [badgeVariant]=\\\"badgeVariant\\\"\\n [color]=\\\"color\\\"\\n [position]=\\\"position\\\"\\n [show]=\\\"show\\\">\\n <button uni-text-button>\\n Button with Badge\\n </button>\\n</uni-notification-badge>\\n</div>\"\n },\n {\n \"title\": \"Different Positions\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Different Positions -->\\n<div box-layout padding=\\\"md\\\">\\n<uni-notification-badge\\n [count]=\\\"count\\\"\\n [maxCount]=\\\"maxCount\\\"\\n [badgeVariant]=\\\"badgeVariant\\\"\\n [color]=\\\"color\\\"\\n [position]=\\\"position\\\"\\n [show]=\\\"show\\\">\\n <button uni-text-button>\\n Button with Badge\\n </button>\\n</uni-notification-badge>\\n</div>\"\n },\n {\n \"title\": \"Variant Comparison\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Variant Comparison -->\\n<div box-layout padding=\\\"md\\\">\\n<uni-notification-badge\\n [count]=\\\"count\\\"\\n [maxCount]=\\\"maxCount\\\"\\n [badgeVariant]=\\\"badgeVariant\\\"\\n [color]=\\\"color\\\"\\n [position]=\\\"position\\\"\\n [show]=\\\"show\\\">\\n <button uni-text-button>\\n Button with Badge\\n </button>\\n</uni-notification-badge>\\n</div>\"\n },\n {\n \"title\": \"With Icons\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Icons -->\\n<div box-layout padding=\\\"md\\\">\\n<uni-notification-badge\\n [count]=\\\"count\\\"\\n [maxCount]=\\\"maxCount\\\"\\n [badgeVariant]=\\\"badgeVariant\\\"\\n [color]=\\\"color\\\"\\n [position]=\\\"position\\\"\\n [show]=\\\"show\\\">\\n <button uni-text-button>\\n Button with Badge\\n </button>\\n</uni-notification-badge>\\n</div>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Attention indicator anchored to whatever it wraps — an icon button, a nav item, an\\navatar. Three shapes: `dot` (something is new), `count` (how many), and `pill`\\n(counts that need room); `maxCount` caps the display (\\\"99+\\\"). Position it on any\\ncorner of the wrapped content.\\nRadius and offset resolve from the `notificationBadge` theme options; the badge\\nwears the active `variant` color.\",\n \"dos\": [],\n \"donts\": [\n \"Convey urgency by color alone — the count/dot shape carries the signal\"\n ],\n \"accessibility\": [\n \"The visual badge is hidden from assistive tech; a visually-hidden text announcement carries the meaning (\\\"3 notifications\\\").\",\n \"Provide `ariaLabel` context when the wrapped control's purpose isn't obvious from its own name.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"notifications\",\n \"name\": \"Notifications\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-notifications\",\n \"api\": []\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"paginator\",\n \"name\": \"Paginator\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"data\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-paginator\",\n \"api\": [\n {\n \"name\": \"datasource\",\n \"kind\": \"input\",\n \"type\": \"UniDatasource<T>\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"initPageSize\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"showPageSize\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"\"\n },\n {\n \"name\": \"showPageJumper\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"\"\n },\n {\n \"name\": \"showPageNumbers\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-paginator ${argsToTemplate(props)} />\\n<div box-layout paddingTop=\\\"md\\\">\\n @for (record of datasource.records(); track record.id) {\\n <div>{{ record.name }}</div>\\n }\\n</div>\\n<!-- args:\\n{\\n datasource: new UniRecordDatasource<any>(starWarsCharacters),\\n initPageSize: 5,\\n showPageSize: true,\\n showPageJumper: true,\\n showPageNumbers: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Page Numbers Only\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Page Numbers Only -->\\n<uni-paginator ${argsToTemplate(props)} />\\n<div box-layout paddingTop=\\\"md\\\">\\n @for (record of datasource.records(); track record.id) {\\n <div>{{ record.name }}</div>\\n }\\n</div>\\n<!-- args:\\n{\\n datasource: new UniRecordDatasource<any>(starWarsCharacters),\\n initPageSize: 5,\\n showPageSize: false,\\n showPageJumper: false,\\n showPageNumbers: true,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The Paginator drives page navigation for any `UniDatasource`: first/previous/next/last\\nbuttons, truncated page numbers, an editable page size, and a page jumper. Each section can\\nbe toggled independently, so it can render as a full control bar or a minimal pager — the\\n[Data Table](?path=/docs/components-data-table--docs) stories use one paginator in the header\\nfor page size and another in the footer for page numbers.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"A `role=\\\"navigation\\\"` landmark; pages are real buttons with `aria-current=\\\"page\\\"` on the active one.\",\n \"The page-number input is labelled.\"\n ]\n },\n \"relatedTokens\": [\n \"paginator.behavior.gap\",\n \"paginator.behavior.textRole\",\n \"paginator.behavior.inputBorder\",\n \"paginator.behavior.inputBorderRadius\",\n \"paginator.behavior.pageBorderRadius\",\n \"paginator.behavior.currentPageBorder\",\n \"paginator.behavior.currentPageBorderRadius\"\n ]\n },\n {\n \"id\": \"popover\",\n \"name\": \"Popover\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-popover\",\n \"api\": [\n {\n \"name\": \"placement\",\n \"kind\": \"input\",\n \"type\": \"Placement\",\n \"required\": false,\n \"default\": \"'bottom'\",\n \"description\": \"\"\n },\n {\n \"name\": \"autoClose\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"Light-dismiss on outside click / Escape (native popover=\\\"auto\\\").\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-popover placement=\\\"${placement}\\\" [autoClose]=\\\"${autoClose}\\\" #popover>\\n <button text-button trigger>Open Popover</button>\\n <div stack-layout gap=\\\"sm\\\">\\n <div>\\n <span uni-text=\\\"title-small\\\" display=\\\"block\\\">\\n This is a Popover.\\n </span>\\n It is possible to add any markup you want to a Popover.\\n </div>\\n <div>\\n <button text-button symbolLeft=\\\"thumb_up\\\" size=\\\"sm\\\" variant=\\\"secondary\\\" (click)=\\\"popover.hidePopover()\\\">OK!</button>\\n </div>\\n </div>\\n</uni-popover>\\n<!-- args:\\n{\\n placement: 'right-start',\\n autoClose: true,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Popover is a non-modal dialog that floats around a trigger.\\nAny type of content can be added inside a popover; however, it is most suitable for short callouts or compact actions.\\n**Note:** It is important to add the `trigger` attribute to the item you want to open and be referenced to the Popover.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"The trigger carries `aria-expanded` and `aria-controls`; light-dismiss comes from the native popover.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"progress-bar\",\n \"name\": \"ProgressBar\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-progress-bar\",\n \"api\": [\n {\n \"name\": \"width\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"560\",\n \"description\": \"\"\n },\n {\n \"name\": \"height\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"24\",\n \"description\": \"\"\n },\n {\n \"name\": \"percent\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"0\",\n \"description\": \"\"\n },\n {\n \"name\": \"ariaLabel\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible name describing what is progressing (e.g. \\\"Upload progress\\\").\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-progress-bar percent=\\\"${percent}\\\" ${argsToTemplate(props)}></uni-progress-bar>\\n<!-- args:\\n{\\n percent: 60,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The progress bar is a graphical way of representing progress to completion.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"`role=\\\"progressbar\\\"` with `aria-valuenow`/`min`/`max`; name it with `ariaLabel`.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"progress-gauge\",\n \"name\": \"ProgressGauge\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-progress-gauge\",\n \"api\": [\n {\n \"name\": \"percent\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"0\",\n \"description\": \"\"\n },\n {\n \"name\": \"ariaLabel\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible name describing what is progressing.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-progress-gauge percent=\\\"${percent}\\\" variant=\\\"${variant}\\\" size=\\\"${size}\\\"></uni-progress-gauge>\\n<!-- args:\\n{\\n percent: 60,\\n size: 'lg',\\n variant: 'primary',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The progress gauge is a graphical way of representing progress to completion as well as scoring or ranking.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"`role=\\\"progressbar\\\"` with `aria-valuenow`/`min`/`max`; name it with `ariaLabel`. The SVG is decorative.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"radio\",\n \"name\": \"Radio\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-radio\",\n \"api\": [\n {\n \"name\": \"value\",\n \"kind\": \"model\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"''\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"touched\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"invalid\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"dirty\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"required\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Synced from required() validators by the Signal Forms [field] directive.\"\n },\n {\n \"name\": \"ariaDescribedBy\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Id(s) of external element(s) describing this control — typically your app-rendered error message — exposed as aria-describedby.\"\n },\n {\n \"name\": \"options\",\n \"kind\": \"input\",\n \"type\": \"UniRadioOption[]\",\n \"required\": false,\n \"default\": \"[]\",\n \"description\": \"\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"name\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"uniqueId('uni-radio-group')\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-radio ${argsToTemplate(args)}></uni-radio>\\n<!-- args:\\n{\\n label: 'Select an option',\\n variant: 'primary',\\n disabled: false,\\n value: 'option1',\\n name: 'radio-group',\\n options: defaultOptions,\\n }\\n-->\"\n },\n {\n \"title\": \"Without Label\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Without Label -->\\n<uni-radio ${argsToTemplate(args)}></uni-radio>\\n<!-- args:\\n{\\n label: '',\\n variant: 'primary',\\n disabled: false,\\n value: '',\\n name: 'radio-group',\\n options: defaultOptions,\\n }\\n-->\"\n },\n {\n \"title\": \"Disabled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Disabled -->\\n<uni-radio ${argsToTemplate(args)}></uni-radio>\\n<!-- args:\\n{\\n label: 'Disabled radio group',\\n variant: 'primary',\\n disabled: true,\\n value: 'option1',\\n name: 'radio-group',\\n options: defaultOptions,\\n }\\n-->\"\n },\n {\n \"title\": \"With Disabled Options\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Disabled Options -->\\n<uni-radio ${argsToTemplate(args)}></uni-radio>\\n<!-- args:\\n{\\n label: 'Some options disabled',\\n variant: 'primary',\\n disabled: false,\\n value: 'option1',\\n name: 'radio-group',\\n options: [\\n { label: 'Available Option', value: 'option1' },\\n { label: 'Disabled Option', value: 'option2', disabled: true },\\n { label: 'Another Available', value: 'option3' },\\n ],\\n }\\n-->\"\n },\n {\n \"title\": \"Variants\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Variants -->\\n<uni-radio ${argsToTemplate(args)}></uni-radio>\"\n },\n {\n \"title\": \"With Change Event\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Change Event -->\\n<uni-radio ${argsToTemplate(args)}></uni-radio>\"\n },\n {\n \"title\": \"Form Signals\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Form Signals -->\\n<uni-radio ${argsToTemplate(args)}></uni-radio>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Single choice among a small set of visible options. The component renders the whole\\ngroup from an `options` array (`{ label, value, disabled? }`), implements\\n`FormValueControl<string>` for Signal Forms, and defaults each group to a unique\\n`name` so multiple groups on a page never collide.\\nRing, fill, and size resolve from the `radio` theme options; the selected dot wears\\nthe active `variant` color.\",\n \"dos\": [\n \"Use for 2–5 mutually exclusive options that should all be visible\"\n ],\n \"donts\": [\n \"Use for long option lists — that is a select\"\n ],\n \"accessibility\": [\n \"`role=\\\"radiogroup\\\"` labelled by the group label via `aria-labelledby`.\",\n \"Native radio inputs: arrow keys move selection within the group, Tab moves out.\",\n \"`aria-invalid` reflects the error state once the group was touched or is dirty.\"\n ]\n },\n \"relatedTokens\": [\n \"radio.behavior.size\",\n \"radio.behavior.ringColor\",\n \"radio.behavior.fillColor\"\n ]\n },\n {\n \"id\": \"ripple\",\n \"name\": \"Ripple\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"directives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uniRipple]\",\n \"api\": []\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"row\",\n \"name\": \"Row\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-row-layout], [row-layout]\",\n \"api\": [\n {\n \"name\": \"display\",\n \"kind\": \"input\",\n \"type\": \"OptionalDisplay\",\n \"required\": false,\n \"default\": \"'flex'\",\n \"description\": \"\"\n },\n {\n \"name\": \"flexDirection\",\n \"kind\": \"input\",\n \"type\": \"OptionalFlexDirection\",\n \"required\": false,\n \"default\": \"'row'\",\n \"description\": \"\"\n },\n {\n \"name\": \"minWidth\",\n \"kind\": \"input\",\n \"type\": \"number | string | undefined\",\n \"required\": false,\n \"default\": \"'fit-content'\",\n \"description\": \"Defaults to `fit-content` (guards content collapse). Set `[minWidth]=\\\"0\\\"` when the row must shrink inside a constrained flex parent (scroll or text truncation containment).\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Button Row\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Button Row -->\\n<div row-layout ${argsToTemplate(props)}>\\n <button text-button>Button 1</button>\\n <button text-button>Button 2</button>\\n <button text-button>Button 3</button>\\n</div>\\n<!-- args:\\n{ gap: 'lg' }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"`Row` is a layout component used to group elements in a horizontal arrangement and applies a uniform space between them.\\n`Row` is an extension to the `Box` component and has all the `Box` attributes available to it.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"scroll-area\",\n \"name\": \"ScrollArea\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-scroll-area], [scroll-area]\",\n \"api\": [\n {\n \"name\": \"color\",\n \"kind\": \"input\",\n \"type\": \"ContainerColorToken\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"borderRadius\",\n \"kind\": \"input\",\n \"type\": \"Radius\",\n \"required\": false,\n \"default\": \"'sm'\",\n \"description\": \"\"\n },\n {\n \"name\": \"padding\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingHorizontal\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingVertical\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingLeft\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingRight\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingTop\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"paddingBottom\",\n \"kind\": \"input\",\n \"type\": \"OptionalSize\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"border\",\n \"kind\": \"input\",\n \"type\": \"Variant\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"height\",\n \"kind\": \"input\",\n \"type\": \"OptionalValue\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"width\",\n \"kind\": \"input\",\n \"type\": \"OptionalValue\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"appearance\",\n \"kind\": \"input\",\n \"type\": \"ScrollbarAppearance\",\n \"required\": false,\n \"default\": \"'compact'\",\n \"description\": \"\"\n },\n {\n \"name\": \"autoHeightDisabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"verticalScrollPadding\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"29\",\n \"description\": \"\"\n },\n {\n \"name\": \"scrollable\",\n \"kind\": \"output\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<div scroll-area ${argsToTemplate(props)} #scrollArea>\\n <button size=\\\"sm\\\" text-button variant=\\\"ghost\\\" symbolLeft=\\\"arrow_downward\\\" (click)=\\\"scrollArea.scrollToBottom()\\\">Scroll to bottom</button>\\n ${ngContent}\\n <button size=\\\"sm\\\" text-button variant=\\\"ghost\\\" symbolLeft=\\\"arrow_upward\\\" (click)=\\\"scrollArea.scrollToTop()\\\">Back to top</button>\\n</div>\\n<!-- args:\\n{\\n border: 'quaternary',\\n color: 'tertiary-surface',\\n height: 200,\\n ngContent: `\\n <span uni-text=\\\"headline-medium\\\">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</span>\\n <span uni-text=\\\"body-1-long\\\">\\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quis facere debitis ullam, quae quidem, impedit\\n culpa nam\\n repellat in voluptatibus esse ab harum, hic? Aliquam nesciunt voluptates repellendus assumenda labore.\\n </p>\\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Porro quos voluptate doloribus. Optio unde\\n inventore, tempore\\n nemo repellat expedita! Quod, accusamus nobis iure. Aliquam quibusdam, nemo explicabo ipsum provident\\n asperiores.</p>\\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quaerat, qui, rem! Debitis cum maiores iste,\\n possimus!\\n Obcaecati accusamus eaque expedita quo soluta quis, repudiandae similique, veritatis repellendus facere\\n suscipit!\\n Et!</p>\\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum doloremque repellat praesentium quae et\\n consectetur\\n iure quos porro, provident voluptates reprehenderit a. Accusamus ut, quaerat asperiores blanditiis\\n voluptate, sint\\n facilis.</p>\\n <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus beatae inventore nobis esse\\n temporibus\\n exercitationem\\n eos illo minima non magnam, provident sit doloribus maiores odio in animi quidem unde. Perferendis.</p>\\n\\n </span>\\n\\n\\n `,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"A scroll container with themed, consistent scrollbars across browsers — thin\\nEmotion-styled WebKit scrollbars with a `scrollbar-width`/`scrollbar-color`\\nfallback. It detects scrollable state via ResizeObserver (the `scrollable` output)\\nand offers `scrollToTop`/`scrollToBottom` for programmatic control.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"search-input\",\n \"name\": \"SearchInput\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-search-input\",\n \"api\": [\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"Accessible name for the field, also the placeholder fallback.\"\n },\n {\n \"name\": \"placeholder\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"width\",\n \"kind\": \"input\",\n \"type\": \"string | number\",\n \"required\": false,\n \"default\": \"'100%'\",\n \"description\": \"\"\n },\n {\n \"name\": \"debounceTime\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"400\",\n \"description\": \"\"\n },\n {\n \"name\": \"suggestions\",\n \"kind\": \"input\",\n \"type\": \"string[]\",\n \"required\": false,\n \"default\": \"[]\",\n \"description\": \"Type-ahead entries. Keep them fresh from `change` emissions; the list shows while the field has focus and entries exist.\"\n },\n {\n \"name\": \"change\",\n \"kind\": \"output\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"search\",\n \"kind\": \"output\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"suggestionSelected\",\n \"kind\": \"output\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<div box-layout maxWidth=\\\"420px\\\">\\n<uni-search-input\\n label=\\\"Search the docs\\\"\\n [debounceTime]=\\\"200\\\"\\n [suggestions]=\\\"suggestions\\\"\\n (change)=\\\"filter($event)\\\"\\n (search)=\\\"log($event)\\\"\\n></uni-search-input>\\n</div>\\n<!-- args:\\n{ label: 'Search' }\\n-->\"\n },\n {\n \"title\": \"Type-ahead\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Type-ahead -->\\n<div box-layout maxWidth=\\\"420px\\\">\\n<uni-search-input\\n label=\\\"Search the docs\\\"\\n [debounceTime]=\\\"200\\\"\\n [suggestions]=\\\"suggestions\\\"\\n (change)=\\\"filter($event)\\\"\\n (search)=\\\"log($event)\\\"\\n></uni-search-input>\\n</div>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Generic search field wearing the shared input chrome: a decorative leading magnifier,\\na clear button while there's a query, and Enter to submit (`search`). `change` emits\\ndebounced as the user types — use it to refresh results or the `suggestions` input.\\nWith `suggestions`, the field becomes an ARIA combobox: entries render in a listbox\\nunder the field, ArrowUp/Down move the highlight, Enter selects (emitting both\\n`suggestionSelected` and `search`), and Escape closes the list first, then clears the\\nquery. The suggestion list's surface, elevation and radius resolve from the theme's\\n`searchInput` options, alongside the search/clear symbols.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"The field is an ARIA combobox: `aria-expanded`, `aria-controls`, and `aria-activedescendant` track the suggestion listbox.\",\n \"ArrowUp/ArrowDown move the active option, Enter selects, Escape closes the list first and clears the query second.\",\n \"The magnifier is decorative; the clear button has an accessible name (\\\"Clear search\\\").\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"select\",\n \"name\": \"Select\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-select\",\n \"api\": [\n {\n \"name\": \"value\",\n \"kind\": \"model\",\n \"type\": \"T | null\",\n \"required\": false,\n \"default\": \"null\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"touched\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"invalid\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"dirty\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"required\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Synced from required() validators by the Signal Forms [field] directive.\"\n },\n {\n \"name\": \"ariaDescribedBy\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Id(s) of external element(s) describing this control — typically your app-rendered error message — exposed as aria-describedby.\"\n },\n {\n \"name\": \"options\",\n \"kind\": \"input\",\n \"type\": \"Options<T>\",\n \"required\": false,\n \"default\": \"[]\",\n \"description\": \"\"\n },\n {\n \"name\": \"placeholder\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"ariaLabel\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Accessible name for the select; a placeholder is not a label.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-select ${argsToTemplate(props)}>\\n</uni-select>\\n<!-- args:\\n{\\n placeholder: 'Select your country...',\\n options: [\\n { value: 'us', label: 'United States' },\\n { value: 'ca', label: 'Canada' },\\n { value: 'uk', label: 'United Kingdom' },\\n { value: 'au', label: 'Australia' },\\n ],\\n value: null,\\n disabled: false,\\n touched: false,\\n invalid: false,\\n dirty: false,\\n }\\n-->\"\n },\n {\n \"title\": \"With Value\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Value -->\\n<uni-select ${argsToTemplate(props)}>\\n</uni-select>\\n<!-- args:\\n{\\n placeholder: 'Select priority...',\\n options: [\\n { value: 'low', label: 'Low Priority' },\\n { value: 'medium', label: 'Medium Priority' },\\n { value: 'high', label: 'High Priority' },\\n { value: 'urgent', label: 'Urgent' },\\n ],\\n value: 'high',\\n disabled: false,\\n touched: true,\\n invalid: false,\\n dirty: false,\\n }\\n-->\"\n },\n {\n \"title\": \"Disabled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Disabled -->\\n<uni-select ${argsToTemplate(props)}>\\n</uni-select>\\n<!-- args:\\n{\\n placeholder: 'Cannot select...',\\n options: [\\n { value: 'option1', label: 'Option 1' },\\n { value: 'option2', label: 'Option 2' },\\n { value: 'option3', label: 'Option 3' },\\n ],\\n value: 'option2',\\n disabled: true,\\n touched: false,\\n invalid: false,\\n dirty: false,\\n }\\n-->\"\n },\n {\n \"title\": \"Invalid\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Invalid -->\\n<uni-select ${argsToTemplate(props)}>\\n</uni-select>\\n<!-- args:\\n{\\n placeholder: 'Please select an option...',\\n options: [\\n { value: 'yes', label: 'Yes' },\\n { value: 'no', label: 'No' },\\n { value: 'maybe', label: 'Maybe' },\\n ],\\n value: null,\\n disabled: false,\\n touched: true,\\n invalid: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Many Options\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Many Options -->\\n<uni-select ${argsToTemplate(props)}>\\n</uni-select>\\n<!-- args:\\n{\\n placeholder: 'Select state or province...',\\n options: [\\n { value: 'al', label: 'Alabama' },\\n { value: 'ak', label: 'Alaska' },\\n { value: 'az', label: 'Arizona' },\\n { value: 'ar', label: 'Arkansas' },\\n { value: 'ca', label: 'California' },\\n { value: 'co', label: 'Colorado' },\\n { value: 'ct', label: 'Connecticut' },\\n { value: 'de', label: 'Delaware' },\\n { value: 'fl', label: 'Florida' },\\n { value: 'ga', label: 'Georgia' },\\n { value: 'hi', label: 'Hawaii' },\\n { value: 'id', label: 'Idaho' },\\n { value: 'il', label: 'Illinois' },\\n { value: 'in', label: 'Indiana' },\\n { value: 'ia', label: 'Iowa' },\\n ],\\n value: 'ca',\\n disabled: false,\\n touched: true,\\n invalid: false,\\n dirty: false,\\n }\\n-->\"\n },\n {\n \"title\": \"Short Options\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Short Options -->\\n<uni-select ${argsToTemplate(props)}>\\n</uni-select>\\n<!-- args:\\n{\\n placeholder: 'Pick a size...',\\n options: [\\n { value: 'xs', label: 'XS' },\\n { value: 's', label: 'S' },\\n { value: 'm', label: 'M' },\\n { value: 'l', label: 'L' },\\n { value: 'xl', label: 'XL' },\\n ],\\n value: 'm',\\n disabled: false,\\n touched: false,\\n invalid: false,\\n dirty: false,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Single choice from a list, on a native `<select>` — platform pickers on mobile,\\nplatform keyboard behavior everywhere. Options are typed generically\\n(`options: T[]` with `optionLabel`/`optionValue` accessors), and the component\\nimplements `FormValueControl` for the Signal Forms `[field]` directive. Errors\\nstyle the field only after interaction, matching Input.\\nFor choosing several, use Multi Select; for type-to-filter over large sets, use\\nSearch Input's type-ahead.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Native `<select>`: platform keyboard interaction and mobile pickers for free.\",\n \"`label` becomes the accessible name; `aria-invalid` reflects the touched error state.\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"skeleton\",\n \"name\": \"Skeleton\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-skeleton\",\n \"api\": [\n {\n \"name\": \"shape\",\n \"kind\": \"input\",\n \"type\": \"SkeletonShape\",\n \"required\": false,\n \"default\": \"'text'\",\n \"description\": \"\"\n },\n {\n \"name\": \"width\",\n \"kind\": \"input\",\n \"type\": \"string | number | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"CSS width; defaults to 100% for text/rect and `height` for circles.\"\n },\n {\n \"name\": \"height\",\n \"kind\": \"input\",\n \"type\": \"string | number | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"CSS height per block; defaults to 1em (text), 96px (rect), 40px (circle).\"\n },\n {\n \"name\": \"lines\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"1\",\n \"description\": \"Number of text lines (text shape only).\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Text Lines\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Text Lines -->\\n<div box-layout maxWidth=\\\"360px\\\">\\n<uni-card>\\n <div row-layout gap=\\\"sm\\\" alignItems=\\\"center\\\" padding=\\\"md\\\">\\n <uni-skeleton shape=\\\"circle\\\" [height]=\\\"40\\\" />\\n <div box-layout [grow]=\\\"1\\\">\\n <uni-skeleton [lines]=\\\"2\\\" />\\n </div>\\n </div>\\n <div box-layout paddingHorizontal=\\\"md\\\" paddingBottom=\\\"md\\\">\\n <uni-skeleton shape=\\\"rect\\\" [height]=\\\"120\\\" />\\n </div>\\n</uni-card>\\n</div>\\n<!-- args:\\n{ shape: 'text', lines: 3 }\\n-->\"\n },\n {\n \"title\": \"Card Placeholder\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Card Placeholder -->\\n<div box-layout maxWidth=\\\"360px\\\">\\n<uni-card>\\n <div row-layout gap=\\\"sm\\\" alignItems=\\\"center\\\" padding=\\\"md\\\">\\n <uni-skeleton shape=\\\"circle\\\" [height]=\\\"40\\\" />\\n <div box-layout [grow]=\\\"1\\\">\\n <uni-skeleton [lines]=\\\"2\\\" />\\n </div>\\n </div>\\n <div box-layout paddingHorizontal=\\\"md\\\" paddingBottom=\\\"md\\\">\\n <uni-skeleton shape=\\\"rect\\\" [height]=\\\"120\\\" />\\n </div>\\n</uni-card>\\n</div>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Loading placeholder that sketches the shape of incoming content: `text` renders one or\\nmore lines (ending on a short line, as real copy would), `rect` stands in for media and\\ncharts, `circle` for avatars. Skeletons paint with the theme's surface tokens so they\\nsit naturally on any brand in both modes, and the shimmer sweep only animates for users\\nwho allow motion — under `prefers-reduced-motion` it degrades to calm static blocks.\\nSkeletons are `aria-hidden`; announce loading on the container (e.g. `aria-busy`)\\nwhere your app knows what is actually loading.\",\n \"dos\": [],\n \"donts\": [\n \"Announce individual skeletons to assistive tech — they are decorative placeholders\"\n ],\n \"accessibility\": [\n \"Skeletons are `aria-hidden` — announce loading on the container (e.g. `aria-busy`) where your app knows what is loading.\",\n \"The shimmer respects `prefers-reduced-motion`, degrading to static blocks.\"\n ]\n },\n \"relatedTokens\": [\n \"skeleton.behavior.color\",\n \"skeleton.behavior.highlightColor\",\n \"skeleton.behavior.borderRadius\",\n \"skeleton.behavior.animation\",\n \"skeleton.behavior.duration\",\n \"skeleton.behavior.gap\"\n ]\n },\n {\n \"id\": \"slider\",\n \"name\": \"Slider\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-slider\",\n \"api\": [\n {\n \"name\": \"value\",\n \"kind\": \"model\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"0\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"touched\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"invalid\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"dirty\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"required\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Synced from required() validators by the Signal Forms [field] directive.\"\n },\n {\n \"name\": \"ariaDescribedBy\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Id(s) of external element(s) describing this control — typically your app-rendered value or error text — exposed as aria-describedby.\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"min\",\n \"kind\": \"input\",\n \"type\": \"number | undefined\",\n \"required\": false,\n \"default\": \"0\",\n \"description\": \"\"\n },\n {\n \"name\": \"max\",\n \"kind\": \"input\",\n \"type\": \"number | undefined\",\n \"required\": false,\n \"default\": \"100\",\n \"description\": \"\"\n },\n {\n \"name\": \"step\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"1\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-slider ${argsToTemplate(props)}></uni-slider>\\n<!-- args:\\n{ label: 'Volume', value: 40 }\\n-->\"\n },\n {\n \"title\": \"Stepped Range\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Stepped Range -->\\n<uni-slider ${argsToTemplate(props)}></uni-slider>\\n<!-- args:\\n{ label: 'Opacity', min: 0, max: 1, step: 0.05, value: 0.6 }\\n-->\"\n },\n {\n \"title\": \"Disabled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Disabled -->\\n<uni-slider ${argsToTemplate(props)}></uni-slider>\\n<!-- args:\\n{ label: 'Brightness', value: 70, disabled: true }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Range slider for picking a number within bounds. It renders a native\\n`<input type=\\\"range\\\">`, so keyboard interaction (arrows, Home/End, Page Up/Down) and\\nthe ARIA slider contract come from the platform. The same Signal Forms contract as\\nInput applies — bind with the `[field]` directive or drive `[(value)]` directly.\\nFill and thumb color, track color, radii and geometry resolve from the theme's\\n`slider` options; the fill level rides a CSS custom property, so dragging never\\nregenerates styles.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Native `<input type=\\\"range\\\">`: arrows, Home/End, and Page Up/Down come from the platform, and the ARIA slider contract (valuenow/min/max) is native.\",\n \"`label` is required and becomes the accessible name.\",\n \"Expose the current value textually nearby and link it with `ariaDescribedBy` when the number matters.\"\n ]\n },\n \"relatedTokens\": [\n \"slider.behavior.color\",\n \"slider.behavior.trackColor\",\n \"slider.behavior.borderRadius\",\n \"slider.behavior.trackHeight\",\n \"slider.behavior.thumbSize\"\n ]\n },\n {\n \"id\": \"snackbar\",\n \"name\": \"Snackbar\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-snackbar\",\n \"api\": [\n {\n \"name\": \"show\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"Two-way bindable open state: [(show)].\"\n },\n {\n \"name\": \"iconName\",\n \"kind\": \"input\",\n \"type\": \"IconName\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"symbolName\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"timeout\",\n \"kind\": \"input\",\n \"type\": \"number | string | 'disabled'\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"actionLabel\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"useVariant\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"action\",\n \"kind\": \"output\",\n \"type\": \"unknown\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"showing\",\n \"kind\": \"output\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<button text-button (click)=\\\"snackbar.open()\\\">Show Snackbar</button>\\n<uni-snackbar #snackbar ${argsToTemplate(props)}>\\n ${ngContent}\\n</uni-snackbar>\\n<!-- args:\\n{\\n ngContent: 'The record has been removed.',\\n variant: 'warn',\\n actionLabel: 'undo',\\n timeout: '5000',\\n symbolName: 'delete_sweep',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The Snackbar component is used to give feedback to users after an action has taken place.\\nIt appears near the bottom center of the screen temporarily and floats above the UI to not affect the application's layout.\\nA side action can be defined (e.g. undoing a process or navigating to the details of a newly created record).\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": [\n \"snackbar.behavior.bottomPosition\",\n \"snackbar.behavior.transitionDelay\",\n \"snackbar.behavior.autoCloseDelay\"\n ]\n },\n {\n \"id\": \"sort-header\",\n \"name\": \"SortHeader\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"data\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-sort-header\",\n \"api\": [\n {\n \"name\": \"column\",\n \"kind\": \"input\",\n \"type\": \"keyof T\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"datasource\",\n \"kind\": \"input\",\n \"type\": \"UniDatasource<T>\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<uni-sort-header [datasource]=\\\"datasource\\\" [column]=\\\"column\\\">\\n <span uni-text=\\\"title-small\\\">Name</span>\\n</uni-sort-header>\\n<div box-layout paddingTop=\\\"md\\\">\\n @for (record of datasource.records().slice(0, 5); track record.id) {\\n <div>{{ record.name }}</div>\\n }\\n</div>\\n<!-- args:\\n{\\n column: 'name',\\n datasource: new UniRecordDatasource<any>(starWarsCharacters),\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The Sort Header wraps a column heading and cycles the bound datasource's sort state\\n(ascending → descending → unsorted) when clicked. An animated arrow indicates the current\\nsort direction. It is used by the [Data Table](?path=/docs/components-data-table--docs)\\nfor sortable columns, but can wrap any header content bound to a `UniDatasource`.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"stack\",\n \"name\": \"Stack\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-stack-layout], [stack-layout]\",\n \"api\": [\n {\n \"name\": \"display\",\n \"kind\": \"input\",\n \"type\": \"OptionalDisplay\",\n \"required\": false,\n \"default\": \"'flex'\",\n \"description\": \"\"\n },\n {\n \"name\": \"flexDirection\",\n \"kind\": \"input\",\n \"type\": \"OptionalFlexDirection\",\n \"required\": false,\n \"default\": \"'column'\",\n \"description\": \"\"\n },\n {\n \"name\": \"minHeight\",\n \"kind\": \"input\",\n \"type\": \"number | string | undefined\",\n \"required\": false,\n \"default\": \"'fit-content'\",\n \"description\": \"Defaults to `fit-content` (guards content collapse). Set `[minHeight]=\\\"0\\\"` when the stack must shrink inside a constrained flex parent (scroll containment).\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Stacked Cards\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Stacked Cards -->\\n<div stack-layout ${argsToTemplate(props)}>\\n <uni-card><uni-card-content><span uni-text>Card 1</span></uni-card-content></uni-card>\\n <uni-card><uni-card-content><span uni-text>Card 2</span></uni-card-content></uni-card>\\n <uni-card><uni-card-content><span uni-text>Card 3</span></uni-card-content></uni-card>\\n <uni-card><uni-card-content><span uni-text>Card 4</span></uni-card-content></uni-card>\\n <uni-card><uni-card-content><span uni-text>Card 5</span></uni-card-content></uni-card>\\n</div>\\n<!-- args:\\n{ gap: 'lg' }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"`Stack` is a layout component used to group elements in a vertical arrangement and applies a uniform space between them.\\n`Stack` is an extension to the `Box` component and has all the `Box` attributes available to it.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"stat\",\n \"name\": \"Stat\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-stat\",\n \"api\": [\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"What is being measured, sentence case.\"\n },\n {\n \"name\": \"value\",\n \"kind\": \"input\",\n \"type\": \"string | number\",\n \"required\": true,\n \"description\": \"The headline number: strings render verbatim, numbers auto-compact.\"\n },\n {\n \"name\": \"delta\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Signed change, e.g. \\\"+12.4%\\\" or \\\"-0.4%\\\". The sign drives the arrow.\"\n },\n {\n \"name\": \"upIsGood\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"true\",\n \"description\": \"Whether an upward movement is good news. Flip for churn, errors, cost.\"\n },\n {\n \"name\": \"caption\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Names the comparison period, e.g. \\\"vs last month\\\".\"\n },\n {\n \"name\": \"trend\",\n \"kind\": \"input\",\n \"type\": \"number[] | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"Recent values for the decorative sparkline (12 points reads best).\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-stat ${argsToTemplate(props)}></uni-stat>\\n<!-- args:\\n{\\n label: 'Monthly recurring revenue',\\n value: '$48.2K',\\n delta: '+12.4%',\\n caption: 'vs last month',\\n trend: [31, 34, 33, 38, 37, 41, 40, 44, 43, 46, 47, 48],\\n }\\n-->\"\n },\n {\n \"title\": \"Down is good (churn)\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Down is good (churn) -->\\n<uni-stat ${argsToTemplate(props)}></uni-stat>\\n<!-- args:\\n{\\n label: 'Churn rate',\\n value: '2.1%',\\n delta: '-0.4%',\\n upIsGood: false,\\n caption: 'vs last month',\\n trend: [3.2, 3.1, 3.0, 2.8, 2.9, 2.7, 2.6, 2.4, 2.5, 2.3, 2.2, 2.1],\\n }\\n-->\"\n },\n {\n \"title\": \"KPI row\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: KPI row -->\\n<uni-stat ${argsToTemplate(props)}></uni-stat>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The KPI tile a dashboard leads with: a muted label, a large headline value (numbers\\nauto-compact — `48234` renders \\\"48.2K\\\"), an optional signed delta, and an optional\\ndecorative sparkline.\\nThe delta's color is decided by **direction × whether up is good**, never direction\\nalone — set `upIsGood` to `false` for measures like churn, errors, or cost, and a\\nfalling number correctly reads as good news. The arrow is accompanied by\\nscreen-reader text (\\\"up\\\"/\\\"down\\\"), so state never relies on color alone, and `caption`\\nnames the comparison period.\\nFrame (surface, border primitive, radius), typography (the type scale's `stat` role\\nfor values), delta inks (the semantic `success`/`error`), and sparkline colors all\\nresolve from the theme's `stat` options.\",\n \"dos\": [],\n \"donts\": [\n \"Rely on delta color alone — the arrow + wording carry direction for everyone\"\n ],\n \"accessibility\": [\n \"The delta arrow is decorative; screen readers hear \\\"up\\\"/\\\"down\\\" in words instead.\",\n \"The sparkline is `aria-hidden` — the value and delta carry the information.\"\n ]\n },\n \"relatedTokens\": [\n \"stat.behavior.labelTypeface\",\n \"stat.behavior.valueTypeface\",\n \"stat.behavior.color\",\n \"stat.behavior.border\",\n \"stat.behavior.borderRadius\",\n \"stat.behavior.positiveColor\",\n \"stat.behavior.negativeColor\",\n \"stat.behavior.trendColor\",\n \"stat.behavior.trendAccent\",\n \"stat.behavior.padding\",\n \"stat.behavior.gap\"\n ]\n },\n {\n \"id\": \"symbol\",\n \"name\": \"Symbol\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"primitives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-symbol\",\n \"api\": [\n {\n \"name\": \"name\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"fill\",\n \"kind\": \"input\",\n \"type\": \"SymbolFill\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"weight\",\n \"kind\": \"input\",\n \"type\": \"SymbolWeight\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"grade\",\n \"kind\": \"input\",\n \"type\": \"SymbolGrade\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"opticalSize\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<!-- args:\\n{\\n name: 'settings',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The Symbol Component integrates the latest [Material Symbols](https://fonts.google.com/icons?icon.platform=web&icon.style=Rounded&icon.set=Material+Symbols&query=les).\\nMaterial Symbols consolidates over 3,275 glyphs (icons) in a single font file with a wide range of design variants.\\nSymbols are available in three styles and four adjustable variable font styles (fill, weight, grade, and optical size).\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"Symbols are decorative (`aria-hidden`) — the parent control carries the accessible name.\"\n ]\n },\n \"relatedTokens\": [\n \"symbol.behavior.fill\",\n \"symbol.behavior.weight\",\n \"symbol.behavior.grade\",\n \"symbol.behavior.opticalSize\"\n ]\n },\n {\n \"id\": \"tab\",\n \"name\": \"Tab\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-tab\",\n \"api\": [\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"tabs\",\n \"name\": \"Tabs\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"components\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-tabs\",\n \"api\": [\n {\n \"name\": \"selectedIndex\",\n \"kind\": \"model\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"0\",\n \"description\": \"Index of the selected tab; two-way bindable.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-tabs [selectedIndex]=\\\"selectedIndex ?? 0\\\">\\n<uni-tab label=\\\"Overview\\\">\\n <span uni-text=\\\"body-1-long\\\">\\n Arrow keys move between tabs (disabled tabs are skipped), Home and End jump\\n to the extremes, and only the selected panel is rendered.\\n </span>\\n</uni-tab>\\n<uni-tab label=\\\"Activity\\\">\\n <span uni-text=\\\"body-1-long\\\">Recent activity would render here.</span>\\n</uni-tab>\\n<uni-tab label=\\\"Settings\\\">\\n <span uni-text=\\\"body-1-long\\\">Settings content, instantiated on selection.</span>\\n</uni-tab>\\n</uni-tabs>\"\n },\n {\n \"title\": \"With Disabled Tab\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Disabled Tab -->\\n<uni-tabs [selectedIndex]=\\\"selectedIndex ?? 0\\\">\\n<uni-tab label=\\\"Overview\\\">\\n <span uni-text=\\\"body-1-long\\\">\\n Arrow keys move between tabs (disabled tabs are skipped), Home and End jump\\n to the extremes, and only the selected panel is rendered.\\n </span>\\n</uni-tab>\\n<uni-tab label=\\\"Activity\\\">\\n <span uni-text=\\\"body-1-long\\\">Recent activity would render here.</span>\\n</uni-tab>\\n<uni-tab label=\\\"Settings\\\">\\n <span uni-text=\\\"body-1-long\\\">Settings content, instantiated on selection.</span>\\n</uni-tab>\\n</uni-tabs>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Tabs organize peer views behind a single switcher. Each `uni-tab` supplies a label and\\nits panel content; only the selected panel is instantiated, so heavy tab content costs\\nnothing until visited.\\nThe default tokens render underline tabs; a theme that sets `borderRadius: 'max'` and\\nan `activeColor` gets segmented pills without any component changes.\",\n \"dos\": [\n \"Use for peer views of the same subject (details, activity, settings)\",\n \"Keep labels to one or two words\"\n ],\n \"donts\": [\n \"Nest tabs inside tabs\",\n \"Use tabs for sequential steps — that is a stepper\"\n ],\n \"accessibility\": [\n \"Full WAI-ARIA tabs pattern: `tablist`/`tab`/`tabpanel` roles with wired\",\n \"Arrow keys move between tabs with selection following focus, wrapping at the ends;\",\n \"Roving tabindex: only the selected tab sits in the tab order; the panel itself is\"\n ]\n },\n \"relatedTokens\": [\n \"tabs.behavior.typeface\",\n \"tabs.behavior.textColor\",\n \"tabs.behavior.activeTextColor\",\n \"tabs.behavior.indicatorColor\",\n \"tabs.behavior.indicatorThickness\",\n \"tabs.behavior.divider\",\n \"tabs.behavior.gap\",\n \"tabs.behavior.borderRadius\",\n \"tabs.behavior.padding\"\n ]\n },\n {\n \"id\": \"tag\",\n \"name\": \"Tag\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"data\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-tag\",\n \"api\": [\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"value\",\n \"kind\": \"input\",\n \"type\": \"string | number\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"close\",\n \"kind\": \"output\",\n \"type\": \"string | number\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<!-- args:\\n{\\n label: 'Primary Tag',\\n value: '1',\\n }\\n-->\"\n },\n {\n \"title\": \"Numeric Value\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Numeric Value -->\\n<!-- args:\\n{\\n label: 'Numeric Tag',\\n value: 42,\\n }\\n-->\"\n },\n {\n \"title\": \"Long Label\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Long Label -->\\n<!-- args:\\n{\\n label: 'This is a very long tag label that might need truncation',\\n value: 'long',\\n }\\n-->\"\n },\n {\n \"title\": \"Without Value\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Without Value -->\\n<!-- args:\\n{\\n label: 'Tag without value',\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Compact label for classifying content — categories, states, filters. Tags are\\ndisplay-only chips that wear the active variant's colors; for removable,\\ntype-to-add chips (a future input variant), see the roadmap.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"text\",\n \"name\": \"Text\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"primitives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-text]\",\n \"api\": [\n {\n \"name\": \"uniText\",\n \"kind\": \"input\",\n \"type\": \"Typeface | ''\",\n \"required\": false,\n \"default\": \"'', { alias: 'uni-text' }\",\n \"description\": \"Typeface via the selector attribute: `uni-text=\\\"headline-large\\\"`.\"\n },\n {\n \"name\": \"typeface\",\n \"kind\": \"input\",\n \"type\": \"Typeface | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"Explicit typeface; the attribute value wins when both are set.\"\n },\n {\n \"name\": \"color\",\n \"kind\": \"input\",\n \"type\": \"ColorKey\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"display\",\n \"kind\": \"input\",\n \"type\": \"OptionalDisplay\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"align\",\n \"kind\": \"input\",\n \"type\": \"OptionalTextAlign\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"nowrap\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"maxWidth\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"description\": \"\"\n },\n {\n \"name\": \"ellipsis\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Value shorthand\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Value shorthand -->\\n<div stack-layout gap=\\\"sm\\\">\\n<span uni-text=\\\"display-small\\\" display=\\\"block\\\">Display small</span>\\n<span uni-text=\\\"headline-medium\\\" display=\\\"block\\\">Headline medium</span>\\n<span uni-text=\\\"body-1-long\\\" display=\\\"block\\\">\\n Body copy set with uni-text=\\\"body-1-long\\\" — the attribute value is the typeface.\\n</span>\\n<span uni-text=\\\"caption\\\" color=\\\"on-background-variant\\\" display=\\\"block\\\">\\n A caption in the muted ink.\\n</span>\\n</div>\"\n },\n {\n \"title\": \"Element-aware defaults\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Element-aware defaults -->\\n<div stack-layout gap=\\\"sm\\\">\\n<span uni-text=\\\"display-small\\\" display=\\\"block\\\">Display small</span>\\n<span uni-text=\\\"headline-medium\\\" display=\\\"block\\\">Headline medium</span>\\n<span uni-text=\\\"body-1-long\\\" display=\\\"block\\\">\\n Body copy set with uni-text=\\\"body-1-long\\\" — the attribute value is the typeface.\\n</span>\\n<span uni-text=\\\"caption\\\" color=\\\"on-background-variant\\\" display=\\\"block\\\">\\n A caption in the muted ink.\\n</span>\\n</div>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"The typography primitive, applied as an **attribute on any element** so your HTML\\nsemantics stay intact. The attribute value is the typeface —\\n`<h1 uni-text=\\\"display-small\\\">` — and `[uni-text]=\\\"role()\\\"` binds it dynamically.\\nWith no value, the typeface is inferred from the host element (`h1` →\\n`headline-large`, `p` → `body-1-long`, `small` → `caption`, `blockquote` → `quote`,\\nfalling back to `title-small`), so plain semantic markup is correctly set with zero\\nconfiguration. `color` takes any theme color token; `align`, `nowrap`, `maxWidth`,\\nand `ellipsis` handle common text layout.\",\n \"dos\": [\n \"Reach for semantic elements first and let the element-aware defaults set the type\"\n ],\n \"donts\": [\n \"Use `span uni-text=\\\"headline-large\\\"` where a real heading belongs\"\n ],\n \"accessibility\": [\n \"Text never replaces your elements — headings stay `h1`–`h6`, paragraphs stay `p`,\",\n \"Type is styling only: pick the element for meaning, the typeface for appearance\"\n ]\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"textarea\",\n \"name\": \"Textarea\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"primitives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-textarea\",\n \"api\": [\n {\n \"name\": \"value\",\n \"kind\": \"model\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"''\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"touched\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"invalid\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"dirty\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"required\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Synced from required() validators by the Signal Forms [field] directive.\"\n },\n {\n \"name\": \"ariaDescribedBy\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Id(s) of external element(s) describing this control — typically your app-rendered error message — exposed as aria-describedby.\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"placeholder\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"default\": \"''\",\n \"description\": \"\"\n },\n {\n \"name\": \"rows\",\n \"kind\": \"input\",\n \"type\": \"number | undefined\",\n \"required\": false,\n \"default\": \"undefined\",\n \"description\": \"Visible text rows. Defaults to the theme's `textarea` options.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-textarea ${argsToTemplate(props)}>\\n</uni-textarea>\\n<!-- args:\\n{ label: 'Message', placeholder: 'Tell us everything…' }\\n-->\"\n },\n {\n \"title\": \"Prefilled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Prefilled -->\\n<uni-textarea ${argsToTemplate(props)}>\\n</uni-textarea>\\n<!-- args:\\n{\\n label: 'Bio',\\n value: 'Design systems engineer.\\\\nOKLCH enthusiast.',\\n rows: 5,\\n }\\n-->\"\n },\n {\n \"title\": \"Invalid\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Invalid -->\\n<uni-textarea ${argsToTemplate(props)}>\\n</uni-textarea>\\n<!-- args:\\n{\\n label: 'Feedback',\\n placeholder: 'Required',\\n invalid: true,\\n touched: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Disabled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Disabled -->\\n<uni-textarea ${argsToTemplate(props)}>\\n</uni-textarea>\\n<!-- args:\\n{ label: 'Notes', value: 'Read-only content', disabled: true }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Multi-line text field with the same Signal Forms contract as Input — use it anywhere\\nfree-form text runs past one line (comments, descriptions, feedback). It shares Input's\\nthemed chrome (color, border, error state, focus outline, typeface) and adds\\ntextarea-specific behavior from the theme's `textarea` options: default `rows` and the\\nCSS `resize` mode. Bind it to a form with the `[field]` directive, or drive `[(value)]`\\ndirectly.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"`label` is required and becomes the accessible name (`aria-label`).\",\n \"Error state is exposed as `aria-invalid` once the field was touched or is dirty; wire your error text with `ariaDescribedBy`.\"\n ]\n },\n \"relatedTokens\": [\n \"textarea.behavior.rows\",\n \"textarea.behavior.resize\"\n ]\n },\n {\n \"id\": \"theme-builder\",\n \"name\": \"ThemeBuilder\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"primitives\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-theme-builder\",\n \"api\": []\n }\n },\n \"examples\": [\n {\n \"title\": \"Builder\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Builder -->\\n<uni-theme-builder />\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n },\n {\n \"id\": \"toggle\",\n \"name\": \"Toggle\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"forms\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-toggle\",\n \"api\": [\n {\n \"name\": \"checked\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"disabled\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"touched\",\n \"kind\": \"model\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"invalid\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"dirty\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"required\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"Synced from required() validators by the Signal Forms [field] directive.\"\n },\n {\n \"name\": \"ariaDescribedBy\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"Id(s) of external element(s) describing this control — typically your app-rendered error message — exposed as aria-describedby.\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": false,\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Default\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Default -->\\n<uni-toggle ${argsToTemplate(args)}></uni-toggle>\\n<!-- args:\\n{\\n label: 'Enable notifications',\\n variant: 'primary',\\n disabled: false,\\n checked: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Without Label\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Without Label -->\\n<uni-toggle ${argsToTemplate(args)}></uni-toggle>\\n<!-- args:\\n{\\n label: '',\\n variant: 'primary',\\n disabled: false,\\n }\\n-->\"\n },\n {\n \"title\": \"Disabled\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Disabled -->\\n<uni-toggle ${argsToTemplate(args)}></uni-toggle>\\n<!-- args:\\n{\\n label: 'Disabled toggle',\\n variant: 'primary',\\n disabled: true,\\n }\\n-->\"\n },\n {\n \"title\": \"Variants\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Variants -->\\n<uni-toggle ${argsToTemplate(args)}></uni-toggle>\"\n },\n {\n \"title\": \"With Change Event\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: With Change Event -->\\n<uni-toggle ${argsToTemplate(args)}></uni-toggle>\"\n },\n {\n \"title\": \"Form Signals\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Form Signals -->\\n<uni-toggle ${argsToTemplate(args)}></uni-toggle>\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"A switch-style control for turning an option on or off with immediate effect —\\nprefer it over a checkbox when the change applies instantly (settings, feature\\nswitches) rather than as part of a submitted form. It implements\\n`FormCheckboxControl`, so it binds with the Signal Forms `[field]` directive or a\\ndirect `[(checked)]` model.\\nTrack, knob, and size resolve from the `toggle` theme options; the checked state\\nwears the active `variant` color.\",\n \"dos\": [\n \"Use for instant on/off effects (settings, feature switches)\"\n ],\n \"donts\": [\n \"Use in submitted forms where nothing happens until save — that is a checkbox\"\n ],\n \"accessibility\": [\n \"Semantic `<input type=\\\"checkbox\\\">` with `role=\\\"switch\\\"`, properly associated with its label.\",\n \"Space toggles; focus indicators are provided for keyboard navigation.\",\n \"Screen readers announce the label and on/off state.\"\n ]\n },\n \"relatedTokens\": [\n \"toggle.behavior.size\",\n \"toggle.behavior.trackColor\",\n \"toggle.behavior.knobColor\"\n ]\n },\n {\n \"id\": \"tooltip\",\n \"name\": \"Tooltip\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"feedback\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"uni-tooltip\",\n \"api\": [\n {\n \"name\": \"hoverDelay\",\n \"kind\": \"input\",\n \"type\": \"number\",\n \"required\": false,\n \"default\": \"500\",\n \"description\": \"\"\n },\n {\n \"name\": \"label\",\n \"kind\": \"input\",\n \"type\": \"string\",\n \"required\": true,\n \"description\": \"\"\n },\n {\n \"name\": \"placement\",\n \"kind\": \"input\",\n \"type\": \"Placement\",\n \"required\": false,\n \"default\": \"'top'\",\n \"description\": \"\"\n },\n {\n \"name\": \"inlineText\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"\"\n },\n {\n \"name\": \"appendToBody\",\n \"kind\": \"input\",\n \"type\": \"boolean\",\n \"required\": false,\n \"default\": \"false\",\n \"description\": \"@deprecated The tooltip renders in the native top layer; ignored.\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\\n<span uni-text>Here is some text with a <uni-tooltip ${argsToTemplate(props)}>tooltip</uni-tooltip> in the middle.\\n</span>\\n<!-- args:\\n{\\n label: 'Bottom-start tooltip',\\n placement: 'bottom-start',\\n inlineText: true,\\n }\\n-->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"A tooltip is a brief, informative message that appears when a user interacts with an element.\\nIf using a tooltip within a body of text, set the `inlineText` option to `true`.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": [\n \"`role=\\\"tooltip\\\"` linked to the trigger via `aria-describedby` (wired once — the bubble is always in the DOM).\",\n \"Shows on keyboard focus, hides on blur and Escape; stays open while hovered (WCAG 1.4.13).\",\n \"Non-focusable triggers get `tabindex=\\\"0\\\"` so keyboard users can reach the tooltip.\"\n ]\n },\n \"relatedTokens\": [\n \"tooltip.behavior.borderRadius\",\n \"tooltip.behavior.shadow\",\n \"tooltip.behavior.color\",\n \"tooltip.behavior.typeface\"\n ]\n },\n {\n \"id\": \"wrap\",\n \"name\": \"Wrap\",\n \"status\": \"stable\",\n \"summary\": \"\",\n \"description\": \"\",\n \"category\": \"layout\",\n \"version\": \"6.0.1\",\n \"bindings\": {\n \"angular\": {\n \"importPath\": \"@uni-design-system/uni-angular\",\n \"selectorOrTag\": \"[uni-wrap-layout], [wrap-layout]\",\n \"api\": [\n {\n \"name\": \"display\",\n \"kind\": \"input\",\n \"type\": \"OptionalDisplay\",\n \"required\": false,\n \"default\": \"'flex'\",\n \"description\": \"\"\n },\n {\n \"name\": \"wrapItems\",\n \"kind\": \"input\",\n \"type\": \"OptionalWrap\",\n \"required\": false,\n \"default\": \"'wrap'\",\n \"description\": \"\"\n }\n ]\n }\n },\n \"examples\": [\n {\n \"title\": \"Primary\",\n \"framework\": \"angular\",\n \"code\": \"<!-- Storybook story: Primary -->\"\n }\n ],\n \"guidelines\": {\n \"whenToUse\": \"Used to add space between elements and wraps automatically if there isn't enough space.\",\n \"dos\": [],\n \"donts\": [],\n \"accessibility\": []\n },\n \"relatedTokens\": []\n }\n ],\n \"tokens\": [\n {\n \"id\": \"color.primary\",\n \"value\": \"#6A6F8F\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#6A6F8F\",\n \"DarkTheme\": \"#AFB5D8\"\n }\n },\n {\n \"id\": \"color.on-primary\",\n \"value\": \"#F9FAFF\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#F9FAFF\",\n \"DarkTheme\": \"#11132C\"\n }\n },\n {\n \"id\": \"color.primary-container\",\n \"value\": \"#DBDDEA\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#DBDDEA\",\n \"DarkTheme\": \"#4A4C57\"\n }\n },\n {\n \"id\": \"color.on-primary-container\",\n \"value\": \"#1A1C37\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#1A1C37\",\n \"DarkTheme\": \"#F9FAFF\"\n }\n },\n {\n \"id\": \"color.on-primary-container-variant\",\n \"value\": \"#5B5D68\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#5B5D68\",\n \"DarkTheme\": \"#BCBECB\"\n }\n },\n {\n \"id\": \"color.on-primary-container-border\",\n \"value\": \"#6A6F8F\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#6A6F8F\",\n \"DarkTheme\": \"#AFB5D8\"\n }\n },\n {\n \"id\": \"color.primary-surface\",\n \"value\": \"#F3F5FD\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#F3F5FD\",\n \"DarkTheme\": \"#22242A\"\n }\n },\n {\n \"id\": \"color.on-primary-surface\",\n \"value\": \"#1E1F25\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#1E1F25\",\n \"DarkTheme\": \"#F9FAFF\"\n }\n },\n {\n \"id\": \"color.on-primary-surface-variant\",\n \"value\": \"#6A6F8F\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#6A6F8F\",\n \"DarkTheme\": \"#AFB5D8\"\n }\n },\n {\n \"id\": \"color.secondary\",\n \"value\": \"#8C685D\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#8C685D\",\n \"DarkTheme\": \"#D5ADA1\"\n }\n },\n {\n \"id\": \"color.on-secondary\",\n \"value\": \"#FFF8F6\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#FFF8F6\",\n \"DarkTheme\": \"#280C05\"\n }\n },\n {\n \"id\": \"color.secondary-container\",\n \"value\": \"#E9DAD6\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#E9DAD6\",\n \"DarkTheme\": \"#564A46\"\n }\n },\n {\n \"id\": \"color.on-secondary-container\",\n \"value\": \"#33160D\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#33160D\",\n \"DarkTheme\": \"#FFF8F7\"\n }\n },\n {\n \"id\": \"color.on-secondary-container-variant\",\n \"value\": \"#675A57\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#675A57\",\n \"DarkTheme\": \"#CABCB7\"\n }\n },\n {\n \"id\": \"color.on-secondary-container-border\",\n \"value\": \"#8C685D\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#8C685D\",\n \"DarkTheme\": \"#D5ADA1\"\n }\n },\n {\n \"id\": \"color.secondary-surface\",\n \"value\": \"#FDF3EF\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#FDF3EF\",\n \"DarkTheme\": \"#292220\"\n }\n },\n {\n \"id\": \"color.on-secondary-surface\",\n \"value\": \"#251D1B\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#251D1B\",\n \"DarkTheme\": \"#FFF8F7\"\n }\n },\n {\n \"id\": \"color.on-secondary-surface-variant\",\n \"value\": \"#8C685D\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#8C685D\",\n \"DarkTheme\": \"#D5ADA1\"\n }\n },\n {\n \"id\": \"color.tertiary\",\n \"value\": \"#597B66\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#597B66\",\n \"DarkTheme\": \"#9EC2AB\"\n }\n },\n {\n \"id\": \"color.on-tertiary\",\n \"value\": \"#F0FFF5\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#F0FFF5\",\n \"DarkTheme\": \"#001C0D\"\n }\n },\n {\n \"id\": \"color.tertiary-container\",\n \"value\": \"#D5E2D9\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#D5E2D9\",\n \"DarkTheme\": \"#465049\"\n }\n },\n {\n \"id\": \"color.on-tertiary-container\",\n \"value\": \"#052615\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#052615\",\n \"DarkTheme\": \"#F0FFF5\"\n }\n },\n {\n \"id\": \"color.on-tertiary-container-variant\",\n \"value\": \"#56615A\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#56615A\",\n \"DarkTheme\": \"#B7C3BB\"\n }\n },\n {\n \"id\": \"color.on-tertiary-container-border\",\n \"value\": \"#597B66\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#597B66\",\n \"DarkTheme\": \"#9EC2AB\"\n }\n },\n {\n \"id\": \"color.tertiary-surface\",\n \"value\": \"#EFF8F2\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#EFF8F2\",\n \"DarkTheme\": \"#1F2622\"\n }\n },\n {\n \"id\": \"color.on-tertiary-surface\",\n \"value\": \"#1B211D\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#1B211D\",\n \"DarkTheme\": \"#F4FDF7\"\n }\n },\n {\n \"id\": \"color.on-tertiary-surface-variant\",\n \"value\": \"#557762\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#557762\",\n \"DarkTheme\": \"#9EC2AB\"\n }\n },\n {\n \"id\": \"color.quaternary\",\n \"value\": \"#61636A\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#61636A\",\n \"DarkTheme\": \"#A2A4AC\"\n }\n },\n {\n \"id\": \"color.on-quaternary\",\n \"value\": \"#F9FAFF\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#F9FAFF\",\n \"DarkTheme\": \"#15161C\"\n }\n },\n {\n \"id\": \"color.quaternary-surface\",\n \"value\": \"#F3F5FD\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#F3F5FD\",\n \"DarkTheme\": \"#22242A\"\n }\n },\n {\n \"id\": \"color.on-quaternary-surface\",\n \"value\": \"#1E1F25\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#1E1F25\",\n \"DarkTheme\": \"#F9FAFF\"\n }\n },\n {\n \"id\": \"color.on-quaternary-surface-variant\",\n \"value\": \"#6A6F8F\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#6A6F8F\",\n \"DarkTheme\": \"#AFB5D8\"\n }\n },\n {\n \"id\": \"color.on-quaternary-container-variant\",\n \"value\": \"#5B5D68\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#5B5D68\",\n \"DarkTheme\": \"#AEB0BD\"\n }\n },\n {\n \"id\": \"color.on-quaternary-container-border\",\n \"value\": \"#61636A\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#61636A\",\n \"DarkTheme\": \"#A2A4AC\"\n }\n },\n {\n \"id\": \"color.error\",\n \"value\": \"#CC2827\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#CC2827\",\n \"DarkTheme\": \"#FF968A\"\n }\n },\n {\n \"id\": \"color.on-error\",\n \"value\": \"#FFF8F7\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#FFF8F7\",\n \"DarkTheme\": \"#290B09\"\n }\n },\n {\n \"id\": \"color.error-container\",\n \"value\": \"#FFD2CC\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#FFD2CC\",\n \"DarkTheme\": \"#69413C\"\n }\n },\n {\n \"id\": \"color.on-error-container\",\n \"value\": \"#331512\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#331512\",\n \"DarkTheme\": \"#FFF8F7\"\n }\n },\n {\n \"id\": \"color.warn\",\n \"value\": \"#AC5700\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#AC5700\",\n \"DarkTheme\": \"#FF9B51\"\n }\n },\n {\n \"id\": \"color.on-warn\",\n \"value\": \"#FFF9F5\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#FFF9F5\",\n \"DarkTheme\": \"#270E00\"\n }\n },\n {\n \"id\": \"color.warn-container\",\n \"value\": \"#FDD5BA\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#FDD5BA\",\n \"DarkTheme\": \"#66442E\"\n }\n },\n {\n \"id\": \"color.on-warn-container\",\n \"value\": \"#311805\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#311805\",\n \"DarkTheme\": \"#FFF9F5\"\n }\n },\n {\n \"id\": \"color.on-warn-container-variant\",\n \"value\": \"#78543C\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#78543C\",\n \"DarkTheme\": \"#DFB69B\"\n }\n },\n {\n \"id\": \"color.on-warn-container-border\",\n \"value\": \"#AC5700\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#AC5700\",\n \"DarkTheme\": \"#FF9B51\"\n }\n },\n {\n \"id\": \"color.success\",\n \"value\": \"#008341\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#008341\",\n \"DarkTheme\": \"#59D483\"\n }\n },\n {\n \"id\": \"color.on-success\",\n \"value\": \"#F1FEF4\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#F1FEF4\",\n \"DarkTheme\": \"#011C0A\"\n }\n },\n {\n \"id\": \"color.success-container\",\n \"value\": \"#C3EACC\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#C3EACC\",\n \"DarkTheme\": \"#34563D\"\n }\n },\n {\n \"id\": \"color.on-success-container\",\n \"value\": \"#092613\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#092613\",\n \"DarkTheme\": \"#F1FEF4\"\n }\n },\n {\n \"id\": \"color.on-success-container-variant\",\n \"value\": \"#43684D\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#43684D\",\n \"DarkTheme\": \"#A3CBAD\"\n }\n },\n {\n \"id\": \"color.on-success-container-border\",\n \"value\": \"#008341\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#008341\",\n \"DarkTheme\": \"#59D483\"\n }\n },\n {\n \"id\": \"color.background\",\n \"value\": \"#FDFDFF\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#FDFDFF\",\n \"DarkTheme\": \"#101117\"\n }\n },\n {\n \"id\": \"color.on-background\",\n \"value\": \"#202127\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#202127\",\n \"DarkTheme\": \"#E5E7F0\"\n }\n },\n {\n \"id\": \"color.on-background-variant\",\n \"value\": \"#5C5D65\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#5C5D65\",\n \"DarkTheme\": \"#AFB0B9\"\n }\n },\n {\n \"id\": \"color.surface\",\n \"value\": \"#F9FAFF\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#F9FAFF\",\n \"DarkTheme\": \"#17181E\"\n }\n },\n {\n \"id\": \"color.on-surface\",\n \"value\": \"#202127\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#202127\",\n \"DarkTheme\": \"#E5E7F0\"\n }\n },\n {\n \"id\": \"color.surface-variant\",\n \"value\": \"#E9EBF3\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#E9EBF3\",\n \"DarkTheme\": \"#313239\"\n }\n },\n {\n \"id\": \"color.on-surface-variant\",\n \"value\": \"#36373E\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#36373E\",\n \"DarkTheme\": \"#AFB0B9\"\n }\n },\n {\n \"id\": \"color.inverse-surface\",\n \"value\": \"#2C2D34\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#2C2D34\",\n \"DarkTheme\": \"#E5E7F0\"\n }\n },\n {\n \"id\": \"color.on-inverse-surface\",\n \"value\": \"#F3F5FD\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#F3F5FD\",\n \"DarkTheme\": \"#202127\"\n }\n },\n {\n \"id\": \"color.on-inverse-surface-primary\",\n \"value\": \"#8D93B4\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#8D93B4\",\n \"DarkTheme\": \"#5F6483\"\n }\n },\n {\n \"id\": \"color.on-inverse-surface-variant\",\n \"value\": \"#8D93B4\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#8D93B4\",\n \"DarkTheme\": \"#5F6483\"\n }\n },\n {\n \"id\": \"color.inverse-container\",\n \"value\": \"#2C2D34\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#2C2D34\",\n \"DarkTheme\": \"#E5E7F0\"\n }\n },\n {\n \"id\": \"color.on-inverse-container\",\n \"value\": \"#F3F5FD\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#F3F5FD\",\n \"DarkTheme\": \"#202127\"\n }\n },\n {\n \"id\": \"color.outline\",\n \"value\": \"#7E8088\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#7E8088\",\n \"DarkTheme\": \"#90929A\"\n }\n },\n {\n \"id\": \"color.shadow\",\n \"value\": \"#000000\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#000000\",\n \"DarkTheme\": \"#000000\"\n }\n },\n {\n \"id\": \"color.scrim\",\n \"value\": \"#000000\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#000000\",\n \"DarkTheme\": \"#000000\"\n }\n },\n {\n \"id\": \"color.surface-tint\",\n \"value\": \"#6A6F8F\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#6A6F8F\",\n \"DarkTheme\": \"#AFB5D8\"\n }\n },\n {\n \"id\": \"color.transparent\",\n \"value\": \"rgba(0,0,0,0)\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(0,0,0,0)\",\n \"DarkTheme\": \"rgba(0,0,0,0)\"\n }\n },\n {\n \"id\": \"color.ghost\",\n \"value\": \"rgba(0,0,0,0)\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(0,0,0,0)\",\n \"DarkTheme\": \"rgba(0,0,0,0)\"\n }\n },\n {\n \"id\": \"color.disabled\",\n \"value\": \"rgba(0,0,0,0.12)\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(0,0,0,0.12)\",\n \"DarkTheme\": \"rgba(255,255,255,0.12)\"\n }\n },\n {\n \"id\": \"color.on-disabled\",\n \"value\": \"rgba(0,0,0,0.38)\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(0,0,0,0.38)\",\n \"DarkTheme\": \"rgba(255,255,255,0.38)\"\n }\n },\n {\n \"id\": \"color.disabled-container\",\n \"value\": \"#EFF1FA\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"#EFF1FA\",\n \"DarkTheme\": \"#2C2D34\"\n }\n },\n {\n \"id\": \"color.on-disabled-container\",\n \"value\": \"rgba(0,0,0,0.38)\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(0,0,0,0.38)\",\n \"DarkTheme\": \"rgba(255,255,255,0.38)\"\n }\n },\n {\n \"id\": \"color.disabled-surface\",\n \"value\": \"rgba(0,0,0,0.12)\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(0,0,0,0.12)\",\n \"DarkTheme\": \"rgba(255,255,255,0.12)\"\n }\n },\n {\n \"id\": \"color.on-disabled-surface\",\n \"value\": \"rgba(0,0,0,0.5)\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(0,0,0,0.5)\",\n \"DarkTheme\": \"rgba(255,255,255,0.5)\"\n }\n },\n {\n \"id\": \"color.on-disabled-surface-variant\",\n \"value\": \"rgba(0,0,0,0.4)\",\n \"type\": \"color\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(0,0,0,0.4)\",\n \"DarkTheme\": \"rgba(255,255,255,0.4)\"\n }\n },\n {\n \"id\": \"radius.none\",\n \"value\": \"none\",\n \"type\": \"radius\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"none\",\n \"DarkTheme\": \"none\"\n }\n },\n {\n \"id\": \"radius.xxs\",\n \"value\": \"4px\",\n \"type\": \"radius\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"4px\",\n \"DarkTheme\": \"4px\"\n }\n },\n {\n \"id\": \"radius.xs\",\n \"value\": \"8px\",\n \"type\": \"radius\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"8px\",\n \"DarkTheme\": \"8px\"\n }\n },\n {\n \"id\": \"radius.sm\",\n \"value\": \"16px\",\n \"type\": \"radius\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"16px\",\n \"DarkTheme\": \"16px\"\n }\n },\n {\n \"id\": \"radius.md\",\n \"value\": \"24px\",\n \"type\": \"radius\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"24px\",\n \"DarkTheme\": \"24px\"\n }\n },\n {\n \"id\": \"radius.lg\",\n \"value\": \"32px\",\n \"type\": \"radius\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"32px\",\n \"DarkTheme\": \"32px\"\n }\n },\n {\n \"id\": \"radius.max\",\n \"value\": \"999px\",\n \"type\": \"radius\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"999px\",\n \"DarkTheme\": \"999px\"\n }\n },\n {\n \"id\": \"spacing.none\",\n \"value\": \"none\",\n \"type\": \"spacing\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"none\",\n \"DarkTheme\": \"none\"\n }\n },\n {\n \"id\": \"spacing.xxs\",\n \"value\": \"2px\",\n \"type\": \"spacing\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"2px\",\n \"DarkTheme\": \"2px\"\n }\n },\n {\n \"id\": \"spacing.xs\",\n \"value\": \"4px\",\n \"type\": \"spacing\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"4px\",\n \"DarkTheme\": \"4px\"\n }\n },\n {\n \"id\": \"spacing.sm\",\n \"value\": \"8px\",\n \"type\": \"spacing\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"8px\",\n \"DarkTheme\": \"8px\"\n }\n },\n {\n \"id\": \"spacing.md\",\n \"value\": \"16px\",\n \"type\": \"spacing\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"16px\",\n \"DarkTheme\": \"16px\"\n }\n },\n {\n \"id\": \"spacing.lg\",\n \"value\": \"32px\",\n \"type\": \"spacing\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"32px\",\n \"DarkTheme\": \"32px\"\n }\n },\n {\n \"id\": \"spacing.xl\",\n \"value\": \"64px\",\n \"type\": \"spacing\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"64px\",\n \"DarkTheme\": \"64px\"\n }\n },\n {\n \"id\": \"border.primary\",\n \"value\": \"1px solid #6A6F8F\",\n \"type\": \"border\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"1px solid #6A6F8F\",\n \"DarkTheme\": \"1px solid #AFB5D8\"\n }\n },\n {\n \"id\": \"border.secondary\",\n \"value\": \"1px solid #8C685D\",\n \"type\": \"border\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"1px solid #8C685D\",\n \"DarkTheme\": \"1px solid #D5ADA1\"\n }\n },\n {\n \"id\": \"border.tertiary\",\n \"value\": \"1px solid #597B66\",\n \"type\": \"border\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"1px solid #597B66\",\n \"DarkTheme\": \"1px solid #9EC2AB\"\n }\n },\n {\n \"id\": \"border.quaternary\",\n \"value\": \"1px solid #61636A\",\n \"type\": \"border\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"1px solid #61636A\",\n \"DarkTheme\": \"1px solid #A2A4AC\"\n }\n },\n {\n \"id\": \"border.warn\",\n \"value\": \"1px solid #AC5700\",\n \"type\": \"border\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"1px solid #AC5700\",\n \"DarkTheme\": \"1px solid #FF9B51\"\n }\n },\n {\n \"id\": \"border.success\",\n \"value\": \"1px solid #008341\",\n \"type\": \"border\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"1px solid #008341\",\n \"DarkTheme\": \"1px solid #59D483\"\n }\n },\n {\n \"id\": \"border.light\",\n \"value\": \"1px solid #7E8088\",\n \"type\": \"border\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"1px solid #7E8088\",\n \"DarkTheme\": \"1px solid #90929A\"\n }\n },\n {\n \"id\": \"border.dark\",\n \"value\": \"1px solid #202127\",\n \"type\": \"border\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"1px solid #202127\",\n \"DarkTheme\": \"1px solid #E5E7F0\"\n }\n },\n {\n \"id\": \"border.dotted\",\n \"value\": \"1px dotted #202127\",\n \"type\": \"border\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"1px dotted #202127\",\n \"DarkTheme\": \"1px dotted #E5E7F0\"\n }\n },\n {\n \"id\": \"shadow.raised\",\n \"value\": \"rgba(23, 25, 43, 0.2) 0px 2px 1px -1px, rgba(23, 25, 43, 0.14) 0px 1px 1px 0px, rgba(23, 25, 43, 0.12) 0px 1px 3px 0px\",\n \"type\": \"shadow\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(23, 25, 43, 0.2) 0px 2px 1px -1px, rgba(23, 25, 43, 0.14) 0px 1px 1px 0px, rgba(23, 25, 43, 0.12) 0px 1px 3px 0px\",\n \"DarkTheme\": \"none\"\n }\n },\n {\n \"id\": \"shadow.menu\",\n \"value\": \"rgba(23, 25, 43, 0.2) 0px 3px 3px -2px, rgba(23, 25, 43, 0.14) 0px 3px 4px 0px, rgba(23, 25, 43, 0.12) 0px 1px 8px 0px\",\n \"type\": \"shadow\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(23, 25, 43, 0.2) 0px 3px 3px -2px, rgba(23, 25, 43, 0.14) 0px 3px 4px 0px, rgba(23, 25, 43, 0.12) 0px 1px 8px 0px\",\n \"DarkTheme\": \"0px 4px 12px rgba(0, 0, 0, 0.45)\"\n }\n },\n {\n \"id\": \"shadow.dialog\",\n \"value\": \"rgba(23, 25, 43, 0.2) 0px 3px 5px -1px, rgba(23, 25, 43, 0.14) 0px 6px 10px 0px, rgba(23, 25, 43, 0.12) 0px 1px 18px 0px\",\n \"type\": \"shadow\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"rgba(23, 25, 43, 0.2) 0px 3px 5px -1px, rgba(23, 25, 43, 0.14) 0px 6px 10px 0px, rgba(23, 25, 43, 0.12) 0px 1px 18px 0px\",\n \"DarkTheme\": \"0px 8px 28px rgba(0, 0, 0, 0.55)\"\n }\n },\n {\n \"id\": \"shadow.warn\",\n \"value\": \"0 0 5px rgba(204, 40, 39, 0.5), inset 0 0 5px rgba(204, 40, 39, 0.3)\",\n \"type\": \"shadow\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"0 0 5px rgba(204, 40, 39, 0.5), inset 0 0 5px rgba(204, 40, 39, 0.3)\",\n \"DarkTheme\": \"0 0 5px rgba(255, 150, 138, 0.55), inset 0 0 5px rgba(255, 150, 138, 0.35)\"\n }\n },\n {\n \"id\": \"thickness.thin\",\n \"value\": 1,\n \"type\": \"thickness\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": 1,\n \"DarkTheme\": 1\n }\n },\n {\n \"id\": \"thickness.standard\",\n \"value\": 2,\n \"type\": \"thickness\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": 2,\n \"DarkTheme\": 2\n }\n },\n {\n \"id\": \"thickness.thick\",\n \"value\": 4,\n \"type\": \"thickness\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": 4,\n \"DarkTheme\": 4\n }\n },\n {\n \"id\": \"typography.display-large\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":57,\\\"lineHeight\\\":64,\\\"fontWeight\\\":\\\"normal\\\",\\\"letterSpacing\\\":-0.25}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":57,\\\"lineHeight\\\":64,\\\"fontWeight\\\":\\\"normal\\\",\\\"letterSpacing\\\":-0.25}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":57,\\\"lineHeight\\\":64,\\\"fontWeight\\\":\\\"normal\\\",\\\"letterSpacing\\\":-0.25}\"\n }\n },\n {\n \"id\": \"typography.display-medium\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":45,\\\"lineHeight\\\":52,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":45,\\\"lineHeight\\\":52,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":45,\\\"lineHeight\\\":52,\\\"fontWeight\\\":\\\"normal\\\"}\"\n }\n },\n {\n \"id\": \"typography.display-small\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":36,\\\"lineHeight\\\":44,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":36,\\\"lineHeight\\\":44,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":36,\\\"lineHeight\\\":44,\\\"fontWeight\\\":\\\"normal\\\"}\"\n }\n },\n {\n \"id\": \"typography.headline-large\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":40,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":40,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":40,\\\"fontWeight\\\":\\\"normal\\\"}\"\n }\n },\n {\n \"id\": \"typography.headline-medium\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":28,\\\"lineHeight\\\":36,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":28,\\\"lineHeight\\\":36,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":28,\\\"lineHeight\\\":36,\\\"fontWeight\\\":\\\"normal\\\"}\"\n }\n },\n {\n \"id\": \"typography.headline-small\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":24,\\\"lineHeight\\\":32,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":24,\\\"lineHeight\\\":32,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":24,\\\"lineHeight\\\":32,\\\"fontWeight\\\":\\\"normal\\\"}\"\n }\n },\n {\n \"id\": \"typography.title-large\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":22,\\\"lineHeight\\\":28,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":22,\\\"lineHeight\\\":28,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":22,\\\"lineHeight\\\":28,\\\"fontWeight\\\":\\\"normal\\\"}\"\n }\n },\n {\n \"id\": \"typography.title-medium\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.15}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.15}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.15}\"\n }\n },\n {\n \"id\": \"typography.title-small\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontWeight\\\":\\\"medium\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"letterSpacing\\\":0.1}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontWeight\\\":\\\"medium\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"letterSpacing\\\":0.1}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontWeight\\\":\\\"medium\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"letterSpacing\\\":0.1}\"\n }\n },\n {\n \"id\": \"typography.body-1-long\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":22}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":22}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":22}\"\n }\n },\n {\n \"id\": \"typography.body-1-short\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\"\n }\n },\n {\n \"id\": \"typography.body-2-long\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":18}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":18}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":18}\"\n }\n },\n {\n \"id\": \"typography.body-2-short\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\"\n }\n },\n {\n \"id\": \"typography.subtitle-1\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"letterSpacing\\\":0.15}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"letterSpacing\\\":0.15}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"letterSpacing\\\":0.15}\"\n }\n },\n {\n \"id\": \"typography.subtitle-2\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.1}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.1}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.1}\"\n }\n },\n {\n \"id\": \"typography.label\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\"\n }\n },\n {\n \"id\": \"typography.button\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"textTransform\\\":\\\"capitalize\\\"}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"textTransform\\\":\\\"capitalize\\\"}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"textTransform\\\":\\\"capitalize\\\"}\"\n }\n },\n {\n \"id\": \"typography.caption\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":12,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":0.4}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":12,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":0.4}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":12,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":0.4}\"\n }\n },\n {\n \"id\": \"typography.overline\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":10,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":1.5,\\\"textTransform\\\":\\\"uppercase\\\"}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":10,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":1.5,\\\"textTransform\\\":\\\"uppercase\\\"}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":10,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":1.5,\\\"textTransform\\\":\\\"uppercase\\\"}\"\n }\n },\n {\n \"id\": \"typography.paragraph\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\"\n }\n },\n {\n \"id\": \"typography.quote\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\"\n }\n },\n {\n \"id\": \"typography.note\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":22,\\\"fontStyle\\\":\\\"italic\\\"}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":22,\\\"fontStyle\\\":\\\"italic\\\"}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":22,\\\"fontStyle\\\":\\\"italic\\\"}\"\n }\n },\n {\n \"id\": \"typography.badge\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\"\n }\n },\n {\n \"id\": \"typography.stat\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":38,\\\"fontWeight\\\":600,\\\"letterSpacing\\\":-0.32}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":38,\\\"fontWeight\\\":600,\\\"letterSpacing\\\":-0.32}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":38,\\\"fontWeight\\\":600,\\\"letterSpacing\\\":-0.32}\"\n }\n },\n {\n \"id\": \"typography.tag\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":15,\\\"lineHeight\\\":20,\\\"fontWeight\\\":600}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":15,\\\"lineHeight\\\":20,\\\"fontWeight\\\":600}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":15,\\\"lineHeight\\\":20,\\\"fontWeight\\\":600}\"\n }\n },\n {\n \"id\": \"typography.input\",\n \"value\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":24}\",\n \"type\": \"typography\",\n \"kind\": \"style\",\n \"target\": \"emotion-css\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":24}\",\n \"DarkTheme\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":24}\"\n }\n },\n {\n \"id\": \"alert.behavior.topPosition\",\n \"value\": 40,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"alert\",\n \"themeValues\": {\n \"LightTheme\": 40,\n \"DarkTheme\": 40\n }\n },\n {\n \"id\": \"alert.behavior.borderRadius\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"alert\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"alert.behavior.transitionSpeed\",\n \"value\": 0.35,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"alert\",\n \"themeValues\": {\n \"LightTheme\": 0.35,\n \"DarkTheme\": 0.35\n }\n },\n {\n \"id\": \"alert.behavior.elevation\",\n \"value\": \"md\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"alert\",\n \"themeValues\": {\n \"LightTheme\": \"md\",\n \"DarkTheme\": \"md\"\n }\n },\n {\n \"id\": \"breadcrumb.behavior.typeface\",\n \"value\": \"label\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"breadcrumb\",\n \"themeValues\": {\n \"LightTheme\": \"label\",\n \"DarkTheme\": \"label\"\n }\n },\n {\n \"id\": \"breadcrumb.behavior.color\",\n \"value\": \"on-background-variant\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"breadcrumb\",\n \"themeValues\": {\n \"LightTheme\": \"on-background-variant\",\n \"DarkTheme\": \"on-background-variant\"\n }\n },\n {\n \"id\": \"breadcrumb.behavior.currentColor\",\n \"value\": \"on-background\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"breadcrumb\",\n \"themeValues\": {\n \"LightTheme\": \"on-background\",\n \"DarkTheme\": \"on-background\"\n }\n },\n {\n \"id\": \"breadcrumb.behavior.separatorSymbol\",\n \"value\": \"chevron_right\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"breadcrumb\",\n \"themeValues\": {\n \"LightTheme\": \"chevron_right\",\n \"DarkTheme\": \"chevron_right\"\n }\n },\n {\n \"id\": \"breadcrumb.behavior.gap\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"breadcrumb\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"appBar.behavior.color\",\n \"value\": \"surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"appBar\",\n \"themeValues\": {\n \"LightTheme\": \"surface\",\n \"DarkTheme\": \"surface\"\n }\n },\n {\n \"id\": \"appBar.behavior.height\",\n \"value\": 56,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"appBar\",\n \"themeValues\": {\n \"LightTheme\": 56,\n \"DarkTheme\": 56\n }\n },\n {\n \"id\": \"appBar.behavior.divider\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"appBar\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"appBar.behavior.typeface\",\n \"value\": \"title-large\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"appBar\",\n \"themeValues\": {\n \"LightTheme\": \"title-large\",\n \"DarkTheme\": \"title-large\"\n }\n },\n {\n \"id\": \"appBar.behavior.padding\",\n \"value\": \"md\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"appBar\",\n \"themeValues\": {\n \"LightTheme\": \"md\",\n \"DarkTheme\": \"md\"\n }\n },\n {\n \"id\": \"appBar.behavior.gap\",\n \"value\": \"md\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"appBar\",\n \"themeValues\": {\n \"LightTheme\": \"md\",\n \"DarkTheme\": \"md\"\n }\n },\n {\n \"id\": \"drawer.behavior.color\",\n \"value\": \"surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"drawer\",\n \"themeValues\": {\n \"LightTheme\": \"surface\",\n \"DarkTheme\": \"surface\"\n }\n },\n {\n \"id\": \"drawer.behavior.width\",\n \"value\": 280,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"drawer\",\n \"themeValues\": {\n \"LightTheme\": 280,\n \"DarkTheme\": 280\n }\n },\n {\n \"id\": \"drawer.behavior.divider\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"drawer\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"drawer.behavior.elevation\",\n \"value\": \"menu\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"drawer\",\n \"themeValues\": {\n \"LightTheme\": \"menu\",\n \"DarkTheme\": \"menu\"\n }\n },\n {\n \"id\": \"drawer.behavior.padding\",\n \"value\": \"md\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"drawer\",\n \"themeValues\": {\n \"LightTheme\": \"md\",\n \"DarkTheme\": \"md\"\n }\n },\n {\n \"id\": \"drawer.behavior.backdrop\",\n \"value\": \"{\\\"background\\\":\\\"rgba(0, 0, 0, 0.4)\\\"}\",\n \"type\": \"object\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"drawer\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"background\\\":\\\"rgba(0, 0, 0, 0.4)\\\"}\",\n \"DarkTheme\": \"{\\\"background\\\":\\\"rgba(0, 0, 0, 0.4)\\\"}\"\n }\n },\n {\n \"id\": \"avatar.behavior.borderRadius\",\n \"value\": \"max\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"avatar\",\n \"themeValues\": {\n \"LightTheme\": \"max\",\n \"DarkTheme\": \"max\"\n }\n },\n {\n \"id\": \"avatar.behavior.typeface\",\n \"value\": \"subtitle-2\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"avatar\",\n \"themeValues\": {\n \"LightTheme\": \"subtitle-2\",\n \"DarkTheme\": \"subtitle-2\"\n }\n },\n {\n \"id\": \"avatar.behavior.fallbackSymbol\",\n \"value\": \"person\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"avatar\",\n \"themeValues\": {\n \"LightTheme\": \"person\",\n \"DarkTheme\": \"person\"\n }\n },\n {\n \"id\": \"avatarGroup.behavior.overlap\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"avatarGroup\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"avatarGroup.behavior.ringColor\",\n \"value\": \"surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"avatarGroup\",\n \"themeValues\": {\n \"LightTheme\": \"surface\",\n \"DarkTheme\": \"surface\"\n }\n },\n {\n \"id\": \"avatarGroup.behavior.ringWidth\",\n \"value\": 2,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"avatarGroup\",\n \"themeValues\": {\n \"LightTheme\": 2,\n \"DarkTheme\": 2\n }\n },\n {\n \"id\": \"searchInput.behavior.searchSymbol\",\n \"value\": \"search\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"searchInput\",\n \"themeValues\": {\n \"LightTheme\": \"search\",\n \"DarkTheme\": \"search\"\n }\n },\n {\n \"id\": \"searchInput.behavior.clearSymbol\",\n \"value\": \"close\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"searchInput\",\n \"themeValues\": {\n \"LightTheme\": \"close\",\n \"DarkTheme\": \"close\"\n }\n },\n {\n \"id\": \"searchInput.behavior.listColor\",\n \"value\": \"primary-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"searchInput\",\n \"themeValues\": {\n \"LightTheme\": \"primary-surface\",\n \"DarkTheme\": \"primary-surface\"\n }\n },\n {\n \"id\": \"searchInput.behavior.listShadow\",\n \"value\": \"menu\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"searchInput\",\n \"themeValues\": {\n \"LightTheme\": \"menu\",\n \"DarkTheme\": \"menu\"\n }\n },\n {\n \"id\": \"searchInput.behavior.listBorderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"searchInput\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"searchInput.behavior.maxSuggestions\",\n \"value\": 8,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"searchInput\",\n \"themeValues\": {\n \"LightTheme\": 8,\n \"DarkTheme\": 8\n }\n },\n {\n \"id\": \"checkbox.behavior.size\",\n \"value\": 20,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"checkbox\",\n \"themeValues\": {\n \"LightTheme\": 20,\n \"DarkTheme\": 20\n }\n },\n {\n \"id\": \"checkbox.behavior.boxColor\",\n \"value\": \"surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"checkbox\",\n \"themeValues\": {\n \"LightTheme\": \"surface\",\n \"DarkTheme\": \"surface\"\n }\n },\n {\n \"id\": \"radio.behavior.size\",\n \"value\": 20,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"radio\",\n \"themeValues\": {\n \"LightTheme\": 20,\n \"DarkTheme\": 20\n }\n },\n {\n \"id\": \"radio.behavior.ringColor\",\n \"value\": \"outline\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"radio\",\n \"themeValues\": {\n \"LightTheme\": \"outline\",\n \"DarkTheme\": \"outline\"\n }\n },\n {\n \"id\": \"radio.behavior.fillColor\",\n \"value\": \"surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"radio\",\n \"themeValues\": {\n \"LightTheme\": \"surface\",\n \"DarkTheme\": \"surface\"\n }\n },\n {\n \"id\": \"dialog.behavior.borderRadius\",\n \"value\": \"lg\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialog\",\n \"themeValues\": {\n \"LightTheme\": \"lg\",\n \"DarkTheme\": \"lg\"\n }\n },\n {\n \"id\": \"dialog.behavior.color\",\n \"value\": \"primary-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialog\",\n \"themeValues\": {\n \"LightTheme\": \"primary-surface\",\n \"DarkTheme\": \"primary-surface\"\n }\n },\n {\n \"id\": \"dialog.behavior.border\",\n \"value\": \"quaternary\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialog\",\n \"themeValues\": {\n \"LightTheme\": \"quaternary\",\n \"DarkTheme\": \"quaternary\"\n }\n },\n {\n \"id\": \"dialog.behavior.padding\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialog\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"dialog.behavior.elevation\",\n \"value\": \"dialog\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialog\",\n \"themeValues\": {\n \"LightTheme\": \"dialog\",\n \"DarkTheme\": \"dialog\"\n }\n },\n {\n \"id\": \"dialog.behavior.backdrop\",\n \"value\": \"{\\\"background\\\":\\\"rgba(255, 255, 255, 0.6)\\\",\\\"backdropFilter\\\":\\\"blur(2px)\\\"}\",\n \"type\": \"object\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialog\",\n \"themeValues\": {\n \"LightTheme\": \"{\\\"background\\\":\\\"rgba(255, 255, 255, 0.6)\\\",\\\"backdropFilter\\\":\\\"blur(2px)\\\"}\",\n \"DarkTheme\": \"{\\\"background\\\":\\\"rgba(255, 255, 255, 0.6)\\\",\\\"backdropFilter\\\":\\\"blur(2px)\\\"}\"\n }\n },\n {\n \"id\": \"dialogHeader.behavior.borderRadius\",\n \"value\": \"max\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialogHeader\",\n \"themeValues\": {\n \"LightTheme\": \"max\",\n \"DarkTheme\": \"max\"\n }\n },\n {\n \"id\": \"dialogHeader.behavior.color\",\n \"value\": \"primary\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialogHeader\",\n \"themeValues\": {\n \"LightTheme\": \"primary\",\n \"DarkTheme\": \"primary\"\n }\n },\n {\n \"id\": \"dialogHeader.behavior.height\",\n \"value\": 48,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialogHeader\",\n \"themeValues\": {\n \"LightTheme\": 48,\n \"DarkTheme\": 48\n }\n },\n {\n \"id\": \"dialogHeader.behavior.textRole\",\n \"value\": \"title-large\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialogHeader\",\n \"themeValues\": {\n \"LightTheme\": \"title-large\",\n \"DarkTheme\": \"title-large\"\n }\n },\n {\n \"id\": \"dialogHeader.behavior.textAlign\",\n \"value\": \"center\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialogHeader\",\n \"themeValues\": {\n \"LightTheme\": \"center\",\n \"DarkTheme\": \"center\"\n }\n },\n {\n \"id\": \"dialogHeader.behavior.closeButtonIcon\",\n \"value\": \"close\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialogHeader\",\n \"themeValues\": {\n \"LightTheme\": \"close\",\n \"DarkTheme\": \"close\"\n }\n },\n {\n \"id\": \"dialogHeader.behavior.closeButtonSize\",\n \"value\": \"md\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dialogHeader\",\n \"themeValues\": {\n \"LightTheme\": \"md\",\n \"DarkTheme\": \"md\"\n }\n },\n {\n \"id\": \"dropdown.behavior.border\",\n \"value\": \"none\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dropdown\",\n \"themeValues\": {\n \"LightTheme\": \"none\",\n \"DarkTheme\": \"none\"\n }\n },\n {\n \"id\": \"dropdown.behavior.borderRadius\",\n \"value\": \"xxs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dropdown\",\n \"themeValues\": {\n \"LightTheme\": \"xxs\",\n \"DarkTheme\": \"xxs\"\n }\n },\n {\n \"id\": \"dropdown.behavior.color\",\n \"value\": \"primary-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dropdown\",\n \"themeValues\": {\n \"LightTheme\": \"primary-surface\",\n \"DarkTheme\": \"primary-surface\"\n }\n },\n {\n \"id\": \"dropdown.behavior.shadow\",\n \"value\": \"menu\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dropdown\",\n \"themeValues\": {\n \"LightTheme\": \"menu\",\n \"DarkTheme\": \"menu\"\n }\n },\n {\n \"id\": \"footer.behavior.height\",\n \"value\": 52,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"footer\",\n \"themeValues\": {\n \"LightTheme\": 52,\n \"DarkTheme\": 52\n }\n },\n {\n \"id\": \"footer.behavior.color\",\n \"value\": \"primary\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"footer\",\n \"themeValues\": {\n \"LightTheme\": \"primary\",\n \"DarkTheme\": \"primary\"\n }\n },\n {\n \"id\": \"footer.behavior.logoHeight\",\n \"value\": 18.6,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"footer\",\n \"themeValues\": {\n \"LightTheme\": 18.6,\n \"DarkTheme\": 18.6\n }\n },\n {\n \"id\": \"footer.behavior.logoPadding\",\n \"value\": \"md\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"footer\",\n \"themeValues\": {\n \"LightTheme\": \"md\",\n \"DarkTheme\": \"md\"\n }\n },\n {\n \"id\": \"input.behavior.typeFace\",\n \"value\": \"input\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"input\",\n \"DarkTheme\": \"input\"\n }\n },\n {\n \"id\": \"input.behavior.color\",\n \"value\": \"primary-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"primary-surface\",\n \"DarkTheme\": \"primary-surface\"\n }\n },\n {\n \"id\": \"input.behavior.textColor\",\n \"value\": \"on-primary-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"on-primary-surface\",\n \"DarkTheme\": \"on-primary-surface\"\n }\n },\n {\n \"id\": \"input.behavior.disabledColor\",\n \"value\": \"disabled-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"disabled-surface\",\n \"DarkTheme\": \"disabled-surface\"\n }\n },\n {\n \"id\": \"input.behavior.disabledTextColor\",\n \"value\": \"on-disabled-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"on-disabled-surface\",\n \"DarkTheme\": \"on-disabled-surface\"\n }\n },\n {\n \"id\": \"input.behavior.border\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"input.behavior.borderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"input.behavior.errorShadow\",\n \"value\": \"warn\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"warn\",\n \"DarkTheme\": \"warn\"\n }\n },\n {\n \"id\": \"input.behavior.errorBorder\",\n \"value\": \"warn\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"warn\",\n \"DarkTheme\": \"warn\"\n }\n },\n {\n \"id\": \"input.behavior.height\",\n \"value\": 32,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": 32,\n \"DarkTheme\": 32\n }\n },\n {\n \"id\": \"input.behavior.paddingLeft\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"input.behavior.focusOutline\",\n \"value\": \"2px solid #6A6F8F\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": \"2px solid #6A6F8F\",\n \"DarkTheme\": \"2px solid #AFB5D8\"\n }\n },\n {\n \"id\": \"input.behavior.focusOutlineOffset\",\n \"value\": 2,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"input\",\n \"themeValues\": {\n \"LightTheme\": 2,\n \"DarkTheme\": 2\n }\n },\n {\n \"id\": \"textarea.behavior.rows\",\n \"value\": 3,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"textarea\",\n \"themeValues\": {\n \"LightTheme\": 3,\n \"DarkTheme\": 3\n }\n },\n {\n \"id\": \"textarea.behavior.resize\",\n \"value\": \"vertical\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"textarea\",\n \"themeValues\": {\n \"LightTheme\": \"vertical\",\n \"DarkTheme\": \"vertical\"\n }\n },\n {\n \"id\": \"tabs.behavior.typeface\",\n \"value\": \"title-small\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tabs\",\n \"themeValues\": {\n \"LightTheme\": \"title-small\",\n \"DarkTheme\": \"title-small\"\n }\n },\n {\n \"id\": \"tabs.behavior.textColor\",\n \"value\": \"on-surface-variant\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tabs\",\n \"themeValues\": {\n \"LightTheme\": \"on-surface-variant\",\n \"DarkTheme\": \"on-surface-variant\"\n }\n },\n {\n \"id\": \"tabs.behavior.activeTextColor\",\n \"value\": \"primary\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tabs\",\n \"themeValues\": {\n \"LightTheme\": \"primary\",\n \"DarkTheme\": \"primary\"\n }\n },\n {\n \"id\": \"tabs.behavior.indicatorColor\",\n \"value\": \"primary\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tabs\",\n \"themeValues\": {\n \"LightTheme\": \"primary\",\n \"DarkTheme\": \"primary\"\n }\n },\n {\n \"id\": \"tabs.behavior.indicatorThickness\",\n \"value\": \"standard\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tabs\",\n \"themeValues\": {\n \"LightTheme\": \"standard\",\n \"DarkTheme\": \"standard\"\n }\n },\n {\n \"id\": \"tabs.behavior.divider\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tabs\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"tabs.behavior.gap\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tabs\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"tabs.behavior.borderRadius\",\n \"value\": \"none\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tabs\",\n \"themeValues\": {\n \"LightTheme\": \"none\",\n \"DarkTheme\": \"none\"\n }\n },\n {\n \"id\": \"tabs.behavior.padding\",\n \"value\": \"md\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tabs\",\n \"themeValues\": {\n \"LightTheme\": \"md\",\n \"DarkTheme\": \"md\"\n }\n },\n {\n \"id\": \"multiSelectDropdown.behavior.textRole\",\n \"value\": \"input\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"multiSelectDropdown\",\n \"themeValues\": {\n \"LightTheme\": \"input\",\n \"DarkTheme\": \"input\"\n }\n },\n {\n \"id\": \"multiSelectDropdown.behavior.textColor\",\n \"value\": \"on-primary-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"multiSelectDropdown\",\n \"themeValues\": {\n \"LightTheme\": \"on-primary-surface\",\n \"DarkTheme\": \"on-primary-surface\"\n }\n },\n {\n \"id\": \"multiSelectDropdown.behavior.dividerBorder\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"multiSelectDropdown\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"multiSelectDropdown.behavior.searchInputBorder\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"multiSelectDropdown\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"multiSelectDropdown.behavior.searchInputBorderRadius\",\n \"value\": \"xxs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"multiSelectDropdown\",\n \"themeValues\": {\n \"LightTheme\": \"xxs\",\n \"DarkTheme\": \"xxs\"\n }\n },\n {\n \"id\": \"multiSelectDropdown.behavior.focusOutline\",\n \"value\": \"2px solid #6A6F8F\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"multiSelectDropdown\",\n \"themeValues\": {\n \"LightTheme\": \"2px solid #6A6F8F\",\n \"DarkTheme\": \"2px solid #AFB5D8\"\n }\n },\n {\n \"id\": \"multiSelectDropdown.behavior.focusOutlineOffset\",\n \"value\": 2,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"multiSelectDropdown\",\n \"themeValues\": {\n \"LightTheme\": 2,\n \"DarkTheme\": 2\n }\n },\n {\n \"id\": \"badge.behavior.borderRadius\",\n \"value\": \"xxs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"badge\",\n \"themeValues\": {\n \"LightTheme\": \"xxs\",\n \"DarkTheme\": \"xxs\"\n }\n },\n {\n \"id\": \"button.behavior.borderRadius\",\n \"value\": \"max\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"button\",\n \"themeValues\": {\n \"LightTheme\": \"max\",\n \"DarkTheme\": \"max\"\n }\n },\n {\n \"id\": \"button.behavior.typeface\",\n \"value\": \"button\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"button\",\n \"themeValues\": {\n \"LightTheme\": \"button\",\n \"DarkTheme\": \"button\"\n }\n },\n {\n \"id\": \"iconButton.behavior.borderRadius\",\n \"value\": \"max\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"iconButton\",\n \"themeValues\": {\n \"LightTheme\": \"max\",\n \"DarkTheme\": \"max\"\n }\n },\n {\n \"id\": \"card.behavior.borderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"card\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"dataSearch.behavior.border\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataSearch\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"dataSearch.behavior.borderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataSearch\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"dataSearch.behavior.color\",\n \"value\": \"primary-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataSearch\",\n \"themeValues\": {\n \"LightTheme\": \"primary-surface\",\n \"DarkTheme\": \"primary-surface\"\n }\n },\n {\n \"id\": \"dataSearch.behavior.placeholderColor\",\n \"value\": \"disabled\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataSearch\",\n \"themeValues\": {\n \"LightTheme\": \"disabled\",\n \"DarkTheme\": \"disabled\"\n }\n },\n {\n \"id\": \"dataTable.behavior.color\",\n \"value\": \"primary-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"primary-surface\",\n \"DarkTheme\": \"primary-surface\"\n }\n },\n {\n \"id\": \"dataTable.behavior.border\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"dataTable.behavior.borderRadius\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"dataTable.behavior.headerPadding\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"dataTable.behavior.footerPadding\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"dataTable.behavior.thTextRole\",\n \"value\": \"headline-small\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"headline-small\",\n \"DarkTheme\": \"headline-small\"\n }\n },\n {\n \"id\": \"dataTable.behavior.thColor\",\n \"value\": \"primary-container\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"primary-container\",\n \"DarkTheme\": \"primary-container\"\n }\n },\n {\n \"id\": \"dataTable.behavior.thVerticalBorder\",\n \"value\": \"dotted\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"dotted\",\n \"DarkTheme\": \"dotted\"\n }\n },\n {\n \"id\": \"dataTable.behavior.thHorizontalBorder\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"dataTable.behavior.thPadding\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"dataTable.behavior.tdTextRole\",\n \"value\": \"title-small\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"title-small\",\n \"DarkTheme\": \"title-small\"\n }\n },\n {\n \"id\": \"dataTable.behavior.tdColor\",\n \"value\": \"primary-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"primary-surface\",\n \"DarkTheme\": \"primary-surface\"\n }\n },\n {\n \"id\": \"dataTable.behavior.tdStickyColor\",\n \"value\": \"primary-container\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"primary-container\",\n \"DarkTheme\": \"primary-container\"\n }\n },\n {\n \"id\": \"dataTable.behavior.tdPadding\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"dataTable.behavior.tdVerticalBorder\",\n \"value\": \"dotted\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"dotted\",\n \"DarkTheme\": \"dotted\"\n }\n },\n {\n \"id\": \"dataTable.behavior.tdHorizontalBorder\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"dataTable.behavior.rowHoverColor\",\n \"value\": \"primary-container\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"primary-container\",\n \"DarkTheme\": \"primary-container\"\n }\n },\n {\n \"id\": \"dataTable.behavior.loadingOverlayColor\",\n \"value\": \"scrim\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"scrim\",\n \"DarkTheme\": \"scrim\"\n }\n },\n {\n \"id\": \"dataTable.behavior.loadingSpinnerColor\",\n \"value\": \"primary\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": \"primary\",\n \"DarkTheme\": \"primary\"\n }\n },\n {\n \"id\": \"dataTable.behavior.loadingSpinnerSize\",\n \"value\": 40,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"dataTable\",\n \"themeValues\": {\n \"LightTheme\": 40,\n \"DarkTheme\": 40\n }\n },\n {\n \"id\": \"notificationBadge.behavior.borderRadius\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"notificationBadge\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"notificationBadge.behavior.offset\",\n \"value\": -10,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"notificationBadge\",\n \"themeValues\": {\n \"LightTheme\": -10,\n \"DarkTheme\": -10\n }\n },\n {\n \"id\": \"paginator.behavior.gap\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"paginator\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"paginator.behavior.textRole\",\n \"value\": \"label\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"paginator\",\n \"themeValues\": {\n \"LightTheme\": \"label\",\n \"DarkTheme\": \"label\"\n }\n },\n {\n \"id\": \"paginator.behavior.inputBorder\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"paginator\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"paginator.behavior.inputBorderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"paginator\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"paginator.behavior.pageBorderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"paginator\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"paginator.behavior.currentPageBorder\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"paginator\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"paginator.behavior.currentPageBorderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"paginator\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"stat.behavior.labelTypeface\",\n \"value\": \"label\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"label\",\n \"DarkTheme\": \"label\"\n }\n },\n {\n \"id\": \"stat.behavior.valueTypeface\",\n \"value\": \"stat\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"stat\",\n \"DarkTheme\": \"stat\"\n }\n },\n {\n \"id\": \"stat.behavior.color\",\n \"value\": \"surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"surface\",\n \"DarkTheme\": \"surface\"\n }\n },\n {\n \"id\": \"stat.behavior.border\",\n \"value\": \"light\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"light\",\n \"DarkTheme\": \"light\"\n }\n },\n {\n \"id\": \"stat.behavior.borderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"stat.behavior.positiveColor\",\n \"value\": \"success\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"success\",\n \"DarkTheme\": \"success\"\n }\n },\n {\n \"id\": \"stat.behavior.negativeColor\",\n \"value\": \"error\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"error\",\n \"DarkTheme\": \"error\"\n }\n },\n {\n \"id\": \"stat.behavior.trendColor\",\n \"value\": \"outline\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"outline\",\n \"DarkTheme\": \"outline\"\n }\n },\n {\n \"id\": \"stat.behavior.trendAccent\",\n \"value\": \"primary\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"primary\",\n \"DarkTheme\": \"primary\"\n }\n },\n {\n \"id\": \"stat.behavior.padding\",\n \"value\": \"md\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"md\",\n \"DarkTheme\": \"md\"\n }\n },\n {\n \"id\": \"stat.behavior.gap\",\n \"value\": \"xxs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"stat\",\n \"themeValues\": {\n \"LightTheme\": \"xxs\",\n \"DarkTheme\": \"xxs\"\n }\n },\n {\n \"id\": \"slider.behavior.color\",\n \"value\": \"primary\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"slider\",\n \"themeValues\": {\n \"LightTheme\": \"primary\",\n \"DarkTheme\": \"primary\"\n }\n },\n {\n \"id\": \"slider.behavior.trackColor\",\n \"value\": \"surface-variant\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"slider\",\n \"themeValues\": {\n \"LightTheme\": \"surface-variant\",\n \"DarkTheme\": \"surface-variant\"\n }\n },\n {\n \"id\": \"slider.behavior.borderRadius\",\n \"value\": \"max\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"slider\",\n \"themeValues\": {\n \"LightTheme\": \"max\",\n \"DarkTheme\": \"max\"\n }\n },\n {\n \"id\": \"slider.behavior.trackHeight\",\n \"value\": 4,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"slider\",\n \"themeValues\": {\n \"LightTheme\": 4,\n \"DarkTheme\": 4\n }\n },\n {\n \"id\": \"slider.behavior.thumbSize\",\n \"value\": 16,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"slider\",\n \"themeValues\": {\n \"LightTheme\": 16,\n \"DarkTheme\": 16\n }\n },\n {\n \"id\": \"skeleton.behavior.color\",\n \"value\": \"surface-variant\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"skeleton\",\n \"themeValues\": {\n \"LightTheme\": \"surface-variant\",\n \"DarkTheme\": \"surface-variant\"\n }\n },\n {\n \"id\": \"skeleton.behavior.highlightColor\",\n \"value\": \"surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"skeleton\",\n \"themeValues\": {\n \"LightTheme\": \"surface\",\n \"DarkTheme\": \"surface\"\n }\n },\n {\n \"id\": \"skeleton.behavior.borderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"skeleton\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"skeleton.behavior.animation\",\n \"value\": \"shimmer\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"skeleton\",\n \"themeValues\": {\n \"LightTheme\": \"shimmer\",\n \"DarkTheme\": \"shimmer\"\n }\n },\n {\n \"id\": \"skeleton.behavior.duration\",\n \"value\": 1.4,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"skeleton\",\n \"themeValues\": {\n \"LightTheme\": 1.4,\n \"DarkTheme\": 1.4\n }\n },\n {\n \"id\": \"skeleton.behavior.gap\",\n \"value\": \"sm\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"skeleton\",\n \"themeValues\": {\n \"LightTheme\": \"sm\",\n \"DarkTheme\": \"sm\"\n }\n },\n {\n \"id\": \"snackbar.behavior.bottomPosition\",\n \"value\": 40,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"snackbar\",\n \"themeValues\": {\n \"LightTheme\": 40,\n \"DarkTheme\": 40\n }\n },\n {\n \"id\": \"snackbar.behavior.transitionDelay\",\n \"value\": \"0.35s\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"snackbar\",\n \"themeValues\": {\n \"LightTheme\": \"0.35s\",\n \"DarkTheme\": \"0.35s\"\n }\n },\n {\n \"id\": \"snackbar.behavior.autoCloseDelay\",\n \"value\": 35000,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"snackbar\",\n \"themeValues\": {\n \"LightTheme\": 35000,\n \"DarkTheme\": 35000\n }\n },\n {\n \"id\": \"symbol.behavior.fill\",\n \"value\": 0,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"symbol\",\n \"themeValues\": {\n \"LightTheme\": 0,\n \"DarkTheme\": 0\n }\n },\n {\n \"id\": \"symbol.behavior.weight\",\n \"value\": 400,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"symbol\",\n \"themeValues\": {\n \"LightTheme\": 400,\n \"DarkTheme\": 400\n }\n },\n {\n \"id\": \"symbol.behavior.grade\",\n \"value\": 0,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"symbol\",\n \"themeValues\": {\n \"LightTheme\": 0,\n \"DarkTheme\": 0\n }\n },\n {\n \"id\": \"symbol.behavior.opticalSize\",\n \"value\": 24,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"symbol\",\n \"themeValues\": {\n \"LightTheme\": 24,\n \"DarkTheme\": 24\n }\n },\n {\n \"id\": \"toggle.behavior.size\",\n \"value\": 20,\n \"type\": \"number\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"toggle\",\n \"themeValues\": {\n \"LightTheme\": 20,\n \"DarkTheme\": 20\n }\n },\n {\n \"id\": \"toggle.behavior.trackColor\",\n \"value\": \"surface-variant\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"toggle\",\n \"themeValues\": {\n \"LightTheme\": \"surface-variant\",\n \"DarkTheme\": \"surface-variant\"\n }\n },\n {\n \"id\": \"toggle.behavior.knobColor\",\n \"value\": \"surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"toggle\",\n \"themeValues\": {\n \"LightTheme\": \"surface\",\n \"DarkTheme\": \"surface\"\n }\n },\n {\n \"id\": \"tooltip.behavior.borderRadius\",\n \"value\": \"xs\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tooltip\",\n \"themeValues\": {\n \"LightTheme\": \"xs\",\n \"DarkTheme\": \"xs\"\n }\n },\n {\n \"id\": \"tooltip.behavior.shadow\",\n \"value\": \"raised\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tooltip\",\n \"themeValues\": {\n \"LightTheme\": \"raised\",\n \"DarkTheme\": \"raised\"\n }\n },\n {\n \"id\": \"tooltip.behavior.color\",\n \"value\": \"inverse-surface\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tooltip\",\n \"themeValues\": {\n \"LightTheme\": \"inverse-surface\",\n \"DarkTheme\": \"inverse-surface\"\n }\n },\n {\n \"id\": \"tooltip.behavior.typeface\",\n \"value\": \"label\",\n \"type\": \"string\",\n \"kind\": \"behavioral\",\n \"target\": \"component-prop\",\n \"appliesTo\": \"tooltip\",\n \"themeValues\": {\n \"LightTheme\": \"label\",\n \"DarkTheme\": \"label\"\n }\n }\n ],\n \"themes\": [\n {\n \"id\": \"LightTheme\",\n \"name\": \"Light Theme\",\n \"description\": \"The Light Theme theme for the Uni Design System.\",\n \"styleOverrides\": {\n \"color.primary\": \"#6A6F8F\",\n \"color.on-primary\": \"#F9FAFF\",\n \"color.primary-container\": \"#DBDDEA\",\n \"color.on-primary-container\": \"#1A1C37\",\n \"color.on-primary-container-variant\": \"#5B5D68\",\n \"color.on-primary-container-border\": \"#6A6F8F\",\n \"color.primary-surface\": \"#F3F5FD\",\n \"color.on-primary-surface\": \"#1E1F25\",\n \"color.on-primary-surface-variant\": \"#6A6F8F\",\n \"color.secondary\": \"#8C685D\",\n \"color.on-secondary\": \"#FFF8F6\",\n \"color.secondary-container\": \"#E9DAD6\",\n \"color.on-secondary-container\": \"#33160D\",\n \"color.on-secondary-container-variant\": \"#675A57\",\n \"color.on-secondary-container-border\": \"#8C685D\",\n \"color.secondary-surface\": \"#FDF3EF\",\n \"color.on-secondary-surface\": \"#251D1B\",\n \"color.on-secondary-surface-variant\": \"#8C685D\",\n \"color.tertiary\": \"#597B66\",\n \"color.on-tertiary\": \"#F0FFF5\",\n \"color.tertiary-container\": \"#D5E2D9\",\n \"color.on-tertiary-container\": \"#052615\",\n \"color.on-tertiary-container-variant\": \"#56615A\",\n \"color.on-tertiary-container-border\": \"#597B66\",\n \"color.tertiary-surface\": \"#EFF8F2\",\n \"color.on-tertiary-surface\": \"#1B211D\",\n \"color.on-tertiary-surface-variant\": \"#557762\",\n \"color.quaternary\": \"#61636A\",\n \"color.on-quaternary\": \"#F9FAFF\",\n \"color.quaternary-surface\": \"#F3F5FD\",\n \"color.on-quaternary-surface\": \"#1E1F25\",\n \"color.on-quaternary-surface-variant\": \"#6A6F8F\",\n \"color.on-quaternary-container-variant\": \"#5B5D68\",\n \"color.on-quaternary-container-border\": \"#61636A\",\n \"color.error\": \"#CC2827\",\n \"color.on-error\": \"#FFF8F7\",\n \"color.error-container\": \"#FFD2CC\",\n \"color.on-error-container\": \"#331512\",\n \"color.warn\": \"#AC5700\",\n \"color.on-warn\": \"#FFF9F5\",\n \"color.warn-container\": \"#FDD5BA\",\n \"color.on-warn-container\": \"#311805\",\n \"color.on-warn-container-variant\": \"#78543C\",\n \"color.on-warn-container-border\": \"#AC5700\",\n \"color.success\": \"#008341\",\n \"color.on-success\": \"#F1FEF4\",\n \"color.success-container\": \"#C3EACC\",\n \"color.on-success-container\": \"#092613\",\n \"color.on-success-container-variant\": \"#43684D\",\n \"color.on-success-container-border\": \"#008341\",\n \"color.background\": \"#FDFDFF\",\n \"color.on-background\": \"#202127\",\n \"color.on-background-variant\": \"#5C5D65\",\n \"color.surface\": \"#F9FAFF\",\n \"color.on-surface\": \"#202127\",\n \"color.surface-variant\": \"#E9EBF3\",\n \"color.on-surface-variant\": \"#36373E\",\n \"color.inverse-surface\": \"#2C2D34\",\n \"color.on-inverse-surface\": \"#F3F5FD\",\n \"color.on-inverse-surface-primary\": \"#8D93B4\",\n \"color.on-inverse-surface-variant\": \"#8D93B4\",\n \"color.inverse-container\": \"#2C2D34\",\n \"color.on-inverse-container\": \"#F3F5FD\",\n \"color.outline\": \"#7E8088\",\n \"color.shadow\": \"#000000\",\n \"color.scrim\": \"#000000\",\n \"color.surface-tint\": \"#6A6F8F\",\n \"color.transparent\": \"rgba(0,0,0,0)\",\n \"color.ghost\": \"rgba(0,0,0,0)\",\n \"color.disabled\": \"rgba(0,0,0,0.12)\",\n \"color.on-disabled\": \"rgba(0,0,0,0.38)\",\n \"color.disabled-container\": \"#EFF1FA\",\n \"color.on-disabled-container\": \"rgba(0,0,0,0.38)\",\n \"color.disabled-surface\": \"rgba(0,0,0,0.12)\",\n \"color.on-disabled-surface\": \"rgba(0,0,0,0.5)\",\n \"color.on-disabled-surface-variant\": \"rgba(0,0,0,0.4)\",\n \"radius.none\": \"none\",\n \"radius.xxs\": \"4px\",\n \"radius.xs\": \"8px\",\n \"radius.sm\": \"16px\",\n \"radius.md\": \"24px\",\n \"radius.lg\": \"32px\",\n \"radius.max\": \"999px\",\n \"spacing.none\": \"none\",\n \"spacing.xxs\": \"2px\",\n \"spacing.xs\": \"4px\",\n \"spacing.sm\": \"8px\",\n \"spacing.md\": \"16px\",\n \"spacing.lg\": \"32px\",\n \"spacing.xl\": \"64px\",\n \"border.primary\": \"1px solid #6A6F8F\",\n \"border.secondary\": \"1px solid #8C685D\",\n \"border.tertiary\": \"1px solid #597B66\",\n \"border.quaternary\": \"1px solid #61636A\",\n \"border.warn\": \"1px solid #AC5700\",\n \"border.success\": \"1px solid #008341\",\n \"border.light\": \"1px solid #7E8088\",\n \"border.dark\": \"1px solid #202127\",\n \"border.dotted\": \"1px dotted #202127\",\n \"shadow.raised\": \"rgba(23, 25, 43, 0.2) 0px 2px 1px -1px, rgba(23, 25, 43, 0.14) 0px 1px 1px 0px, rgba(23, 25, 43, 0.12) 0px 1px 3px 0px\",\n \"shadow.menu\": \"rgba(23, 25, 43, 0.2) 0px 3px 3px -2px, rgba(23, 25, 43, 0.14) 0px 3px 4px 0px, rgba(23, 25, 43, 0.12) 0px 1px 8px 0px\",\n \"shadow.dialog\": \"rgba(23, 25, 43, 0.2) 0px 3px 5px -1px, rgba(23, 25, 43, 0.14) 0px 6px 10px 0px, rgba(23, 25, 43, 0.12) 0px 1px 18px 0px\",\n \"shadow.warn\": \"0 0 5px rgba(204, 40, 39, 0.5), inset 0 0 5px rgba(204, 40, 39, 0.3)\",\n \"thickness.thin\": 1,\n \"thickness.standard\": 2,\n \"thickness.thick\": 4,\n \"typography.display-large\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":57,\\\"lineHeight\\\":64,\\\"fontWeight\\\":\\\"normal\\\",\\\"letterSpacing\\\":-0.25}\",\n \"typography.display-medium\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":45,\\\"lineHeight\\\":52,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.display-small\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":36,\\\"lineHeight\\\":44,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.headline-large\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":40,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.headline-medium\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":28,\\\"lineHeight\\\":36,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.headline-small\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":24,\\\"lineHeight\\\":32,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.title-large\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":22,\\\"lineHeight\\\":28,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.title-medium\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.15}\",\n \"typography.title-small\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontWeight\\\":\\\"medium\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"letterSpacing\\\":0.1}\",\n \"typography.body-1-long\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":22}\",\n \"typography.body-1-short\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"typography.body-2-long\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":18}\",\n \"typography.body-2-short\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\",\n \"typography.subtitle-1\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"letterSpacing\\\":0.15}\",\n \"typography.subtitle-2\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.1}\",\n \"typography.label\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\",\n \"typography.button\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"textTransform\\\":\\\"capitalize\\\"}\",\n \"typography.caption\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":12,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":0.4}\",\n \"typography.overline\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":10,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":1.5,\\\"textTransform\\\":\\\"uppercase\\\"}\",\n \"typography.paragraph\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"typography.quote\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"typography.note\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":22,\\\"fontStyle\\\":\\\"italic\\\"}\",\n \"typography.badge\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"typography.stat\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":38,\\\"fontWeight\\\":600,\\\"letterSpacing\\\":-0.32}\",\n \"typography.tag\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":15,\\\"lineHeight\\\":20,\\\"fontWeight\\\":600}\",\n \"typography.input\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":24}\"\n },\n \"componentOptions\": {\n \"alert\": {\n \"topPosition\": 40,\n \"borderRadius\": \"sm\",\n \"transitionSpeed\": 0.35,\n \"elevation\": \"md\"\n },\n \"breadcrumb\": {\n \"typeface\": \"label\",\n \"color\": \"on-background-variant\",\n \"currentColor\": \"on-background\",\n \"separatorSymbol\": \"chevron_right\",\n \"gap\": \"xs\"\n },\n \"appBar\": {\n \"color\": \"surface\",\n \"height\": 56,\n \"divider\": \"light\",\n \"typeface\": \"title-large\",\n \"padding\": \"md\",\n \"gap\": \"md\"\n },\n \"drawer\": {\n \"color\": \"surface\",\n \"width\": 280,\n \"divider\": \"light\",\n \"elevation\": \"menu\",\n \"padding\": \"md\",\n \"backdrop\": \"{\\\"background\\\":\\\"rgba(0, 0, 0, 0.4)\\\"}\"\n },\n \"avatar\": {\n \"borderRadius\": \"max\",\n \"typeface\": \"subtitle-2\",\n \"fallbackSymbol\": \"person\"\n },\n \"avatarGroup\": {\n \"overlap\": \"sm\",\n \"ringColor\": \"surface\",\n \"ringWidth\": 2\n },\n \"searchInput\": {\n \"searchSymbol\": \"search\",\n \"clearSymbol\": \"close\",\n \"listColor\": \"primary-surface\",\n \"listShadow\": \"menu\",\n \"listBorderRadius\": \"xs\",\n \"maxSuggestions\": 8\n },\n \"checkbox\": {\n \"size\": 20,\n \"boxColor\": \"surface\"\n },\n \"radio\": {\n \"size\": 20,\n \"ringColor\": \"outline\",\n \"fillColor\": \"surface\"\n },\n \"dialog\": {\n \"borderRadius\": \"lg\",\n \"color\": \"primary-surface\",\n \"border\": \"quaternary\",\n \"padding\": \"sm\",\n \"elevation\": \"dialog\",\n \"backdrop\": \"{\\\"background\\\":\\\"rgba(255, 255, 255, 0.6)\\\",\\\"backdropFilter\\\":\\\"blur(2px)\\\"}\"\n },\n \"dialogHeader\": {\n \"borderRadius\": \"max\",\n \"color\": \"primary\",\n \"height\": 48,\n \"textRole\": \"title-large\",\n \"textAlign\": \"center\",\n \"closeButtonIcon\": \"close\",\n \"closeButtonSize\": \"md\"\n },\n \"dropdown\": {\n \"border\": \"none\",\n \"borderRadius\": \"xxs\",\n \"color\": \"primary-surface\",\n \"shadow\": \"menu\"\n },\n \"footer\": {\n \"height\": 52,\n \"color\": \"primary\",\n \"logoHeight\": 18.6,\n \"logoPadding\": \"md\"\n },\n \"input\": {\n \"typeFace\": \"input\",\n \"color\": \"primary-surface\",\n \"textColor\": \"on-primary-surface\",\n \"disabledColor\": \"disabled-surface\",\n \"disabledTextColor\": \"on-disabled-surface\",\n \"border\": \"light\",\n \"borderRadius\": \"xs\",\n \"errorShadow\": \"warn\",\n \"errorBorder\": \"warn\",\n \"height\": 32,\n \"paddingLeft\": \"sm\",\n \"focusOutline\": \"2px solid #6A6F8F\",\n \"focusOutlineOffset\": 2\n },\n \"textarea\": {\n \"rows\": 3,\n \"resize\": \"vertical\"\n },\n \"tabs\": {\n \"typeface\": \"title-small\",\n \"textColor\": \"on-surface-variant\",\n \"activeTextColor\": \"primary\",\n \"indicatorColor\": \"primary\",\n \"indicatorThickness\": \"standard\",\n \"divider\": \"light\",\n \"gap\": \"sm\",\n \"borderRadius\": \"none\",\n \"padding\": \"md\"\n },\n \"multiSelectDropdown\": {\n \"textRole\": \"input\",\n \"textColor\": \"on-primary-surface\",\n \"dividerBorder\": \"light\",\n \"searchInputBorder\": \"light\",\n \"searchInputBorderRadius\": \"xxs\",\n \"focusOutline\": \"2px solid #6A6F8F\",\n \"focusOutlineOffset\": 2\n },\n \"badge\": {\n \"borderRadius\": \"xxs\"\n },\n \"button\": {\n \"borderRadius\": \"max\",\n \"typeface\": \"button\"\n },\n \"iconButton\": {\n \"borderRadius\": \"max\"\n },\n \"card\": {\n \"borderRadius\": \"xs\"\n },\n \"dataSearch\": {\n \"border\": \"light\",\n \"borderRadius\": \"xs\",\n \"color\": \"primary-surface\",\n \"placeholderColor\": \"disabled\"\n },\n \"dataTable\": {\n \"color\": \"primary-surface\",\n \"border\": \"light\",\n \"borderRadius\": \"sm\",\n \"headerPadding\": \"sm\",\n \"footerPadding\": \"sm\",\n \"thTextRole\": \"headline-small\",\n \"thColor\": \"primary-container\",\n \"thVerticalBorder\": \"dotted\",\n \"thHorizontalBorder\": \"light\",\n \"thPadding\": \"sm\",\n \"tdTextRole\": \"title-small\",\n \"tdColor\": \"primary-surface\",\n \"tdStickyColor\": \"primary-container\",\n \"tdPadding\": \"sm\",\n \"tdVerticalBorder\": \"dotted\",\n \"tdHorizontalBorder\": \"light\",\n \"rowHoverColor\": \"primary-container\",\n \"loadingOverlayColor\": \"scrim\",\n \"loadingSpinnerColor\": \"primary\",\n \"loadingSpinnerSize\": 40\n },\n \"notificationBadge\": {\n \"borderRadius\": \"sm\",\n \"offset\": -10\n },\n \"paginator\": {\n \"gap\": \"xs\",\n \"textRole\": \"label\",\n \"inputBorder\": \"light\",\n \"inputBorderRadius\": \"xs\",\n \"pageBorderRadius\": \"xs\",\n \"currentPageBorder\": \"light\",\n \"currentPageBorderRadius\": \"xs\"\n },\n \"stat\": {\n \"labelTypeface\": \"label\",\n \"valueTypeface\": \"stat\",\n \"color\": \"surface\",\n \"border\": \"light\",\n \"borderRadius\": \"xs\",\n \"positiveColor\": \"success\",\n \"negativeColor\": \"error\",\n \"trendColor\": \"outline\",\n \"trendAccent\": \"primary\",\n \"padding\": \"md\",\n \"gap\": \"xxs\"\n },\n \"slider\": {\n \"color\": \"primary\",\n \"trackColor\": \"surface-variant\",\n \"borderRadius\": \"max\",\n \"trackHeight\": 4,\n \"thumbSize\": 16\n },\n \"skeleton\": {\n \"color\": \"surface-variant\",\n \"highlightColor\": \"surface\",\n \"borderRadius\": \"xs\",\n \"animation\": \"shimmer\",\n \"duration\": 1.4,\n \"gap\": \"sm\"\n },\n \"snackbar\": {\n \"bottomPosition\": 40,\n \"transitionDelay\": \"0.35s\",\n \"autoCloseDelay\": 35000\n },\n \"symbol\": {\n \"fill\": 0,\n \"weight\": 400,\n \"grade\": 0,\n \"opticalSize\": 24\n },\n \"toggle\": {\n \"size\": 20,\n \"trackColor\": \"surface-variant\",\n \"knobColor\": \"surface\"\n },\n \"tooltip\": {\n \"borderRadius\": \"xs\",\n \"shadow\": \"raised\",\n \"color\": \"inverse-surface\",\n \"typeface\": \"label\"\n }\n },\n \"usage\": \"Apply style overrides through the Emotion theme provider (the `UniTheme` object), and pass component options as component inputs/props. Import the theme from `@uni-design-system/uni-core` (`LightTheme`).\"\n },\n {\n \"id\": \"DarkTheme\",\n \"name\": \"Dark Theme\",\n \"description\": \"The Dark Theme theme for the Uni Design System.\",\n \"styleOverrides\": {\n \"color.primary\": \"#AFB5D8\",\n \"color.on-primary\": \"#11132C\",\n \"color.primary-container\": \"#4A4C57\",\n \"color.on-primary-container\": \"#F9FAFF\",\n \"color.on-primary-container-variant\": \"#BCBECB\",\n \"color.on-primary-container-border\": \"#AFB5D8\",\n \"color.primary-surface\": \"#22242A\",\n \"color.on-primary-surface\": \"#F9FAFF\",\n \"color.on-primary-surface-variant\": \"#AFB5D8\",\n \"color.secondary\": \"#D5ADA1\",\n \"color.on-secondary\": \"#280C05\",\n \"color.secondary-container\": \"#564A46\",\n \"color.on-secondary-container\": \"#FFF8F7\",\n \"color.on-secondary-container-variant\": \"#CABCB7\",\n \"color.on-secondary-container-border\": \"#D5ADA1\",\n \"color.secondary-surface\": \"#292220\",\n \"color.on-secondary-surface\": \"#FFF8F7\",\n \"color.on-secondary-surface-variant\": \"#D5ADA1\",\n \"color.tertiary\": \"#9EC2AB\",\n \"color.on-tertiary\": \"#001C0D\",\n \"color.tertiary-container\": \"#465049\",\n \"color.on-tertiary-container\": \"#F0FFF5\",\n \"color.on-tertiary-container-variant\": \"#B7C3BB\",\n \"color.on-tertiary-container-border\": \"#9EC2AB\",\n \"color.tertiary-surface\": \"#1F2622\",\n \"color.on-tertiary-surface\": \"#F4FDF7\",\n \"color.on-tertiary-surface-variant\": \"#9EC2AB\",\n \"color.quaternary\": \"#A2A4AC\",\n \"color.on-quaternary\": \"#15161C\",\n \"color.quaternary-surface\": \"#22242A\",\n \"color.on-quaternary-surface\": \"#F9FAFF\",\n \"color.on-quaternary-surface-variant\": \"#AFB5D8\",\n \"color.on-quaternary-container-variant\": \"#AEB0BD\",\n \"color.on-quaternary-container-border\": \"#A2A4AC\",\n \"color.error\": \"#FF968A\",\n \"color.on-error\": \"#290B09\",\n \"color.error-container\": \"#69413C\",\n \"color.on-error-container\": \"#FFF8F7\",\n \"color.warn\": \"#FF9B51\",\n \"color.on-warn\": \"#270E00\",\n \"color.warn-container\": \"#66442E\",\n \"color.on-warn-container\": \"#FFF9F5\",\n \"color.on-warn-container-variant\": \"#DFB69B\",\n \"color.on-warn-container-border\": \"#FF9B51\",\n \"color.success\": \"#59D483\",\n \"color.on-success\": \"#011C0A\",\n \"color.success-container\": \"#34563D\",\n \"color.on-success-container\": \"#F1FEF4\",\n \"color.on-success-container-variant\": \"#A3CBAD\",\n \"color.on-success-container-border\": \"#59D483\",\n \"color.background\": \"#101117\",\n \"color.on-background\": \"#E5E7F0\",\n \"color.on-background-variant\": \"#AFB0B9\",\n \"color.surface\": \"#17181E\",\n \"color.on-surface\": \"#E5E7F0\",\n \"color.surface-variant\": \"#313239\",\n \"color.on-surface-variant\": \"#AFB0B9\",\n \"color.inverse-surface\": \"#E5E7F0\",\n \"color.on-inverse-surface\": \"#202127\",\n \"color.on-inverse-surface-primary\": \"#5F6483\",\n \"color.on-inverse-surface-variant\": \"#5F6483\",\n \"color.inverse-container\": \"#E5E7F0\",\n \"color.on-inverse-container\": \"#202127\",\n \"color.outline\": \"#90929A\",\n \"color.shadow\": \"#000000\",\n \"color.scrim\": \"#000000\",\n \"color.surface-tint\": \"#AFB5D8\",\n \"color.transparent\": \"rgba(0,0,0,0)\",\n \"color.ghost\": \"rgba(0,0,0,0)\",\n \"color.disabled\": \"rgba(255,255,255,0.12)\",\n \"color.on-disabled\": \"rgba(255,255,255,0.38)\",\n \"color.disabled-container\": \"#2C2D34\",\n \"color.on-disabled-container\": \"rgba(255,255,255,0.38)\",\n \"color.disabled-surface\": \"rgba(255,255,255,0.12)\",\n \"color.on-disabled-surface\": \"rgba(255,255,255,0.5)\",\n \"color.on-disabled-surface-variant\": \"rgba(255,255,255,0.4)\",\n \"radius.none\": \"none\",\n \"radius.xxs\": \"4px\",\n \"radius.xs\": \"8px\",\n \"radius.sm\": \"16px\",\n \"radius.md\": \"24px\",\n \"radius.lg\": \"32px\",\n \"radius.max\": \"999px\",\n \"spacing.none\": \"none\",\n \"spacing.xxs\": \"2px\",\n \"spacing.xs\": \"4px\",\n \"spacing.sm\": \"8px\",\n \"spacing.md\": \"16px\",\n \"spacing.lg\": \"32px\",\n \"spacing.xl\": \"64px\",\n \"border.primary\": \"1px solid #AFB5D8\",\n \"border.secondary\": \"1px solid #D5ADA1\",\n \"border.tertiary\": \"1px solid #9EC2AB\",\n \"border.quaternary\": \"1px solid #A2A4AC\",\n \"border.warn\": \"1px solid #FF9B51\",\n \"border.success\": \"1px solid #59D483\",\n \"border.light\": \"1px solid #90929A\",\n \"border.dark\": \"1px solid #E5E7F0\",\n \"border.dotted\": \"1px dotted #E5E7F0\",\n \"shadow.raised\": \"none\",\n \"shadow.menu\": \"0px 4px 12px rgba(0, 0, 0, 0.45)\",\n \"shadow.dialog\": \"0px 8px 28px rgba(0, 0, 0, 0.55)\",\n \"shadow.warn\": \"0 0 5px rgba(255, 150, 138, 0.55), inset 0 0 5px rgba(255, 150, 138, 0.35)\",\n \"thickness.thin\": 1,\n \"thickness.standard\": 2,\n \"thickness.thick\": 4,\n \"typography.display-large\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":57,\\\"lineHeight\\\":64,\\\"fontWeight\\\":\\\"normal\\\",\\\"letterSpacing\\\":-0.25}\",\n \"typography.display-medium\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":45,\\\"lineHeight\\\":52,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.display-small\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":36,\\\"lineHeight\\\":44,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.headline-large\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":40,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.headline-medium\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":28,\\\"lineHeight\\\":36,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.headline-small\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":24,\\\"lineHeight\\\":32,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.title-large\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":22,\\\"lineHeight\\\":28,\\\"fontWeight\\\":\\\"normal\\\"}\",\n \"typography.title-medium\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.15}\",\n \"typography.title-small\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontWeight\\\":\\\"medium\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"letterSpacing\\\":0.1}\",\n \"typography.body-1-long\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":22}\",\n \"typography.body-1-short\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"typography.body-2-long\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":18}\",\n \"typography.body-2-short\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\",\n \"typography.subtitle-1\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24,\\\"letterSpacing\\\":0.15}\",\n \"typography.subtitle-2\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"letterSpacing\\\":0.1}\",\n \"typography.label\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20}\",\n \"typography.button\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":20,\\\"fontWeight\\\":\\\"medium\\\",\\\"textTransform\\\":\\\"capitalize\\\"}\",\n \"typography.caption\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":12,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":0.4}\",\n \"typography.overline\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":10,\\\"lineHeight\\\":18,\\\"letterSpacing\\\":1.5,\\\"textTransform\\\":\\\"uppercase\\\"}\",\n \"typography.paragraph\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"typography.quote\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"typography.note\": \"{\\\"fontFamily\\\":\\\"Roboto\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":22,\\\"fontStyle\\\":\\\"italic\\\"}\",\n \"typography.badge\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":16,\\\"lineHeight\\\":24}\",\n \"typography.stat\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":32,\\\"lineHeight\\\":38,\\\"fontWeight\\\":600,\\\"letterSpacing\\\":-0.32}\",\n \"typography.tag\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":15,\\\"lineHeight\\\":20,\\\"fontWeight\\\":600}\",\n \"typography.input\": \"{\\\"fontFamily\\\":\\\"Red Hat Display\\\",\\\"fontSize\\\":14,\\\"lineHeight\\\":24}\"\n },\n \"componentOptions\": {\n \"alert\": {\n \"topPosition\": 40,\n \"borderRadius\": \"sm\",\n \"transitionSpeed\": 0.35,\n \"elevation\": \"md\"\n },\n \"breadcrumb\": {\n \"typeface\": \"label\",\n \"color\": \"on-background-variant\",\n \"currentColor\": \"on-background\",\n \"separatorSymbol\": \"chevron_right\",\n \"gap\": \"xs\"\n },\n \"appBar\": {\n \"color\": \"surface\",\n \"height\": 56,\n \"divider\": \"light\",\n \"typeface\": \"title-large\",\n \"padding\": \"md\",\n \"gap\": \"md\"\n },\n \"drawer\": {\n \"color\": \"surface\",\n \"width\": 280,\n \"divider\": \"light\",\n \"elevation\": \"menu\",\n \"padding\": \"md\",\n \"backdrop\": \"{\\\"background\\\":\\\"rgba(0, 0, 0, 0.4)\\\"}\"\n },\n \"avatar\": {\n \"borderRadius\": \"max\",\n \"typeface\": \"subtitle-2\",\n \"fallbackSymbol\": \"person\"\n },\n \"avatarGroup\": {\n \"overlap\": \"sm\",\n \"ringColor\": \"surface\",\n \"ringWidth\": 2\n },\n \"searchInput\": {\n \"searchSymbol\": \"search\",\n \"clearSymbol\": \"close\",\n \"listColor\": \"primary-surface\",\n \"listShadow\": \"menu\",\n \"listBorderRadius\": \"xs\",\n \"maxSuggestions\": 8\n },\n \"checkbox\": {\n \"size\": 20,\n \"boxColor\": \"surface\"\n },\n \"radio\": {\n \"size\": 20,\n \"ringColor\": \"outline\",\n \"fillColor\": \"surface\"\n },\n \"dialog\": {\n \"borderRadius\": \"lg\",\n \"color\": \"primary-surface\",\n \"border\": \"quaternary\",\n \"padding\": \"sm\",\n \"elevation\": \"dialog\",\n \"backdrop\": \"{\\\"background\\\":\\\"rgba(255, 255, 255, 0.6)\\\",\\\"backdropFilter\\\":\\\"blur(2px)\\\"}\"\n },\n \"dialogHeader\": {\n \"borderRadius\": \"max\",\n \"color\": \"primary\",\n \"height\": 48,\n \"textRole\": \"title-large\",\n \"textAlign\": \"center\",\n \"closeButtonIcon\": \"close\",\n \"closeButtonSize\": \"md\"\n },\n \"dropdown\": {\n \"border\": \"none\",\n \"borderRadius\": \"xxs\",\n \"color\": \"primary-surface\",\n \"shadow\": \"menu\"\n },\n \"footer\": {\n \"height\": 52,\n \"color\": \"primary\",\n \"logoHeight\": 18.6,\n \"logoPadding\": \"md\"\n },\n \"input\": {\n \"typeFace\": \"input\",\n \"color\": \"primary-surface\",\n \"textColor\": \"on-primary-surface\",\n \"disabledColor\": \"disabled-surface\",\n \"disabledTextColor\": \"on-disabled-surface\",\n \"border\": \"light\",\n \"borderRadius\": \"xs\",\n \"errorShadow\": \"warn\",\n \"errorBorder\": \"warn\",\n \"height\": 32,\n \"paddingLeft\": \"sm\",\n \"focusOutline\": \"2px solid #AFB5D8\",\n \"focusOutlineOffset\": 2\n },\n \"textarea\": {\n \"rows\": 3,\n \"resize\": \"vertical\"\n },\n \"tabs\": {\n \"typeface\": \"title-small\",\n \"textColor\": \"on-surface-variant\",\n \"activeTextColor\": \"primary\",\n \"indicatorColor\": \"primary\",\n \"indicatorThickness\": \"standard\",\n \"divider\": \"light\",\n \"gap\": \"sm\",\n \"borderRadius\": \"none\",\n \"padding\": \"md\"\n },\n \"multiSelectDropdown\": {\n \"textRole\": \"input\",\n \"textColor\": \"on-primary-surface\",\n \"dividerBorder\": \"light\",\n \"searchInputBorder\": \"light\",\n \"searchInputBorderRadius\": \"xxs\",\n \"focusOutline\": \"2px solid #AFB5D8\",\n \"focusOutlineOffset\": 2\n },\n \"badge\": {\n \"borderRadius\": \"xxs\"\n },\n \"button\": {\n \"borderRadius\": \"max\",\n \"typeface\": \"button\"\n },\n \"iconButton\": {\n \"borderRadius\": \"max\"\n },\n \"card\": {\n \"borderRadius\": \"xs\"\n },\n \"dataSearch\": {\n \"border\": \"light\",\n \"borderRadius\": \"xs\",\n \"color\": \"primary-surface\",\n \"placeholderColor\": \"disabled\"\n },\n \"dataTable\": {\n \"color\": \"primary-surface\",\n \"border\": \"light\",\n \"borderRadius\": \"sm\",\n \"headerPadding\": \"sm\",\n \"footerPadding\": \"sm\",\n \"thTextRole\": \"headline-small\",\n \"thColor\": \"primary-container\",\n \"thVerticalBorder\": \"dotted\",\n \"thHorizontalBorder\": \"light\",\n \"thPadding\": \"sm\",\n \"tdTextRole\": \"title-small\",\n \"tdColor\": \"primary-surface\",\n \"tdStickyColor\": \"primary-container\",\n \"tdPadding\": \"sm\",\n \"tdVerticalBorder\": \"dotted\",\n \"tdHorizontalBorder\": \"light\",\n \"rowHoverColor\": \"primary-container\",\n \"loadingOverlayColor\": \"scrim\",\n \"loadingSpinnerColor\": \"primary\",\n \"loadingSpinnerSize\": 40\n },\n \"notificationBadge\": {\n \"borderRadius\": \"sm\",\n \"offset\": -10\n },\n \"paginator\": {\n \"gap\": \"xs\",\n \"textRole\": \"label\",\n \"inputBorder\": \"light\",\n \"inputBorderRadius\": \"xs\",\n \"pageBorderRadius\": \"xs\",\n \"currentPageBorder\": \"light\",\n \"currentPageBorderRadius\": \"xs\"\n },\n \"stat\": {\n \"labelTypeface\": \"label\",\n \"valueTypeface\": \"stat\",\n \"color\": \"surface\",\n \"border\": \"light\",\n \"borderRadius\": \"xs\",\n \"positiveColor\": \"success\",\n \"negativeColor\": \"error\",\n \"trendColor\": \"outline\",\n \"trendAccent\": \"primary\",\n \"padding\": \"md\",\n \"gap\": \"xxs\"\n },\n \"slider\": {\n \"color\": \"primary\",\n \"trackColor\": \"surface-variant\",\n \"borderRadius\": \"max\",\n \"trackHeight\": 4,\n \"thumbSize\": 16\n },\n \"skeleton\": {\n \"color\": \"surface-variant\",\n \"highlightColor\": \"surface\",\n \"borderRadius\": \"xs\",\n \"animation\": \"shimmer\",\n \"duration\": 1.4,\n \"gap\": \"sm\"\n },\n \"snackbar\": {\n \"bottomPosition\": 40,\n \"transitionDelay\": \"0.35s\",\n \"autoCloseDelay\": 35000\n },\n \"symbol\": {\n \"fill\": 0,\n \"weight\": 400,\n \"grade\": 0,\n \"opticalSize\": 24\n },\n \"toggle\": {\n \"size\": 20,\n \"trackColor\": \"surface-variant\",\n \"knobColor\": \"surface\"\n },\n \"tooltip\": {\n \"borderRadius\": \"xs\",\n \"shadow\": \"raised\",\n \"color\": \"inverse-surface\",\n \"typeface\": \"label\"\n }\n },\n \"usage\": \"Apply style overrides through the Emotion theme provider (the `UniTheme` object), and pass component options as component inputs/props. Import the theme from `@uni-design-system/uni-core` (`DarkTheme`).\"\n }\n ]\n}","/**\n * Runtime store - loads the built `uni-index.json` (inlined into the bundle)\n * and exposes typed queries plus AI-optimized markdown formatters. The server\n * layer only calls into here; it never touches raw index shapes.\n */\nimport indexData from '../data/uni-index.json' with { type: 'json' };\nimport type {\n ComponentModel,\n Framework,\n ThemeTemplateModel,\n TokenModel,\n UniIndex,\n} from '../schema.js';\n\nconst index = indexData as unknown as UniIndex;\n\nexport type ComponentFilter = { framework?: Framework; category?: string; status?: string };\nexport type TokenFilter = { type?: string; theme?: string; kind?: string };\n\nexport const meta = index.meta;\n\nexport function frameworksFor(c: ComponentModel): Framework[] {\n return Object.keys(c.bindings) as Framework[];\n}\n\nexport function listComponents(filter: ComponentFilter = {}): ComponentModel[] {\n return index.components.filter((c) => {\n if (filter.framework && !c.bindings[filter.framework]) return false;\n if (filter.category && c.category !== filter.category) return false;\n if (filter.status && c.status !== filter.status) return false;\n return true;\n });\n}\n\nexport function getComponent(id: string): ComponentModel | undefined {\n return index.components.find((c) => c.id === id);\n}\n\nexport function listTokens(filter: TokenFilter = {}): TokenModel[] {\n return index.tokens.filter((t) => {\n if (filter.type && t.type !== filter.type) return false;\n if (filter.kind && t.kind !== filter.kind) return false;\n if (filter.theme && !(t.themeValues && filter.theme in t.themeValues)) return false;\n return true;\n });\n}\n\nexport function getToken(id: string): TokenModel | undefined {\n return index.tokens.find((t) => t.id === id);\n}\n\nexport function listThemes(): ThemeTemplateModel[] {\n return index.themes;\n}\n\nexport function getTheme(id: string): ThemeTemplateModel | undefined {\n return index.themes.find((t) => t.id === id);\n}\n\nexport type SearchKind = 'component' | 'token' | 'theme' | 'guideline';\nexport type SearchHit = { kind: SearchKind; id: string; label: string; snippet: string };\n\n/** Keyword/substring search across the index (semantic is a later drop-in). */\nexport function search(query: string, kind?: SearchKind): SearchHit[] {\n const q = query.toLowerCase().trim();\n if (!q) return [];\n const hits: SearchHit[] = [];\n const match = (...fields: (string | undefined)[]) =>\n fields.some((f) => f?.toLowerCase().includes(q));\n\n if (!kind || kind === 'component') {\n for (const c of index.components) {\n const apiNames = frameworksFor(c).flatMap((f) => c.bindings[f]!.api.map((a) => a.name));\n if (match(c.id, c.name, c.summary, c.description, c.category, ...apiNames)) {\n hits.push({ kind: 'component', id: c.id, label: c.name, snippet: c.summary || c.description.slice(0, 120) });\n }\n }\n }\n if (!kind || kind === 'token') {\n for (const t of index.tokens) {\n if (match(t.id, t.type, t.description, String(t.value))) {\n hits.push({ kind: 'token', id: t.id, label: t.id, snippet: `${t.type} = ${t.value}` });\n }\n }\n }\n if (!kind || kind === 'theme') {\n for (const t of index.themes) {\n if (match(t.id, t.name, t.description)) {\n hits.push({ kind: 'theme', id: t.id, label: t.name, snippet: t.description });\n }\n }\n }\n if (!kind || kind === 'guideline') {\n for (const c of index.components) {\n const g = c.guidelines;\n if (match(g.whenToUse, ...g.dos, ...g.donts, ...g.accessibility)) {\n hits.push({ kind: 'guideline', id: c.id, label: `${c.name} guidelines`, snippet: g.whenToUse.slice(0, 120) });\n }\n }\n }\n return hits;\n}\n\n// ---------------------------------------------------------------------------\n// Markdown formatters - tight cards, not raw dumps, to keep token usage low.\n// ---------------------------------------------------------------------------\n\nexport function formatComponentList(components: ComponentModel[]): string {\n if (!components.length) return 'No components match that filter.';\n const rows = components.map((c) => {\n const fw = frameworksFor(c).join(', ');\n return `- **${c.name}** \\`${c.id}\\` - ${c.summary || '(no summary)'} _(${c.category}; ${fw})_`;\n });\n return `# Uni components (${components.length})\\n\\n${rows.join('\\n')}`;\n}\n\nfunction formatApiTable(members: ComponentModel['bindings'][Framework]): string {\n const api = members?.api ?? [];\n if (!api.length) return '_No documented inputs/props._';\n return api\n .map((m) => {\n const req = m.required ? ' **(required)**' : '';\n const def = m.default ? ` = \\`${m.default}\\`` : '';\n const dep = m.deprecated ? ` (deprecated: ${m.deprecated})` : '';\n const doc = m.description ? ` - ${m.description}` : '';\n return `- \\`${m.name}: ${m.type}\\`${req}${def} _(${m.kind})_${doc}${dep}`;\n })\n .join('\\n');\n}\n\nexport function formatComponent(c: ComponentModel, framework?: Framework): string {\n const frameworks = framework ? [framework] : frameworksFor(c);\n const out: string[] = [`# ${c.name} \\`${c.id}\\``];\n out.push(`_${c.category} · status: ${c.status} · Uni v${c.version}_`);\n if (c.description) out.push(`\\n${c.description}`);\n\n for (const f of frameworks) {\n const b = c.bindings[f];\n if (!b) {\n out.push(`\\n## ${f}\\n_Not yet available for ${f}._`);\n continue;\n }\n out.push(`\\n## ${f}`);\n out.push(`- import: \\`${b.importPath}\\``);\n out.push(`- selector/tag: \\`${b.selectorOrTag}\\``);\n out.push(`\\n**API**\\n${formatApiTable(b)}`);\n }\n\n if (c.relatedTokens.length) out.push(`\\n**Related tokens:** ${c.relatedTokens.map((t) => `\\`${t}\\``).join(', ')}`);\n if (c.examples.length) {\n const ex = c.examples[0];\n out.push(`\\n**Example - ${ex.title} (${ex.framework})**\\n\\`\\`\\`html\\n${ex.code}\\n\\`\\`\\``);\n if (c.examples.length > 1) out.push(`_+${c.examples.length - 1} more via get-component-examples._`);\n }\n return out.join('\\n');\n}\n\nexport function formatExamples(c: ComponentModel, framework?: Framework): string {\n const examples = framework ? c.examples.filter((e) => e.framework === framework) : c.examples;\n if (!examples.length) return `No examples found for \\`${c.id}\\`${framework ? ` (${framework})` : ''}.`;\n const blocks = examples.map((e) => {\n const link = e.storybookUrl ? `\\n[Open in Storybook](${e.storybookUrl})` : '';\n return `### ${e.title} _(${e.framework})_\\n\\`\\`\\`html\\n${e.code}\\n\\`\\`\\`${link}`;\n });\n return `# ${c.name} - examples (${examples.length})\\n\\n${blocks.join('\\n\\n')}`;\n}\n\nexport function formatToken(t: TokenModel): string {\n const out: string[] = [`# Token \\`${t.id}\\``];\n out.push(`- value: \\`${t.value}\\``);\n out.push(`- type: ${t.type}`);\n out.push(`- kind: **${t.kind}** (${t.target})`);\n if (t.appliesTo) out.push(`- applies to component: \\`${t.appliesTo}\\``);\n if (t.aliasOf) out.push(`- alias of: \\`${t.aliasOf}\\``);\n if (t.description) out.push(`\\n${t.description}`);\n if (t.themeValues && Object.keys(t.themeValues).length) {\n out.push('\\n**Per-theme values**');\n for (const [theme, val] of Object.entries(t.themeValues)) out.push(`- ${theme}: \\`${val}\\``);\n }\n const hint =\n t.kind === 'style'\n ? '\\n_Style token - consumed by Emotion to generate CSS. Reference via the theme, not a raw value._'\n : '\\n_Behavioral token - set as a component input/prop, not as CSS._';\n out.push(hint);\n return out.join('\\n');\n}\n\nexport function formatTokenList(tokens: TokenModel[]): string {\n if (!tokens.length) return 'No tokens match that filter.';\n const rows = tokens.map((t) => `- \\`${t.id}\\` - ${t.type} = \\`${t.value}\\` _(${t.kind})_`);\n return `# Uni tokens (${tokens.length})\\n\\n${rows.join('\\n')}`;\n}\n\nexport function formatThemeList(themes: ThemeTemplateModel[]): string {\n if (!themes.length) return 'No theme templates available.';\n const rows = themes.map((t) => `- **${t.name}** \\`${t.id}\\` - ${t.description}`);\n return `# Uni theme templates (${themes.length})\\n\\n${rows.join('\\n')}`;\n}\n\nexport function formatTheme(t: ThemeTemplateModel): string {\n const out: string[] = [`# Theme \\`${t.id}\\` - ${t.name}`];\n if (t.description) out.push(t.description);\n out.push('\\n## Style overrides (-> Emotion CSS)');\n out.push('_Apply through the theme provider. These become CSS._');\n const styleKeys = Object.entries(t.styleOverrides);\n out.push(styleKeys.map(([k, v]) => `- \\`${k}\\`: \\`${v}\\``).join('\\n'));\n\n out.push('\\n## Component options (-> component inputs/props)');\n out.push('_Behavioral preferences. Pass as inputs/props, not CSS._');\n for (const [component, opts] of Object.entries(t.componentOptions)) {\n out.push(`- **${component}**: ${Object.entries(opts).map(([k, v]) => `\\`${k}=${v}\\``).join(', ')}`);\n }\n if (t.usage) out.push(`\\n## How to apply\\n${t.usage}`);\n return out.join('\\n');\n}\n\nexport function formatGuidelines(c: ComponentModel): string {\n const g = c.guidelines;\n const has = g.whenToUse || g.dos.length || g.donts.length || g.accessibility.length;\n if (!has) return `No authored guidelines yet for \\`${c.id}\\`. (Author them in the component's MDX.)`;\n const out: string[] = [`# ${c.name} - guidelines`];\n if (g.whenToUse) out.push(`\\n**When to use**\\n${g.whenToUse}`);\n if (g.dos.length) out.push(`\\n**Do**\\n${g.dos.map((d) => `- ${d}`).join('\\n')}`);\n if (g.donts.length) out.push(`\\n**Don't**\\n${g.donts.map((d) => `- ${d}`).join('\\n')}`);\n if (g.accessibility.length) out.push(`\\n**Accessibility**\\n${g.accessibility.map((a) => `- ${a}`).join('\\n')}`);\n return out.join('\\n');\n}\n\nexport function formatSearch(query: string, hits: SearchHit[]): string {\n if (!hits.length) return `No results for \"${query}\".`;\n const rows = hits.slice(0, 40).map((h) => `- _[${h.kind}]_ **${h.label}** \\`${h.id}\\` - ${h.snippet}`);\n const more = hits.length > 40 ? `\\n\\n_...and ${hits.length - 40} more. Narrow with \\`kind\\`._` : '';\n return `# Search: \"${query}\" (${hits.length})\\n\\n${rows.join('\\n')}${more}`;\n}\n","import type { StyleExpression } from '../style/style.types';\n\nexport type PercentageString = `${number}%`;\nexport type KeyframesExpression = Record<PercentageString, StyleExpression>;\n\nexport const fadeIn: KeyframesExpression = {\n '0%': {\n opacity: 0,\n },\n '100%': {\n opacity: 1,\n },\n};\n\nexport const fadeOut: KeyframesExpression = {\n '0%': {\n opacity: 1,\n },\n '100%': {\n opacity: 0,\n },\n};\n\nexport const expandFadeIn = {\n '0%': {\n gridTemplateRows: '0fr',\n opacity: 0,\n },\n '100%': {\n gridTemplateRows: '1fr',\n opacity: 1,\n },\n};\n\nexport const collapseFadeOut = {\n '0%': {\n gridTemplateRows: '1fr',\n opacity: 1,\n },\n '100%': {\n gridTemplateRows: '0fr',\n opacity: 0,\n },\n};\n","import { Range } from './color.model';\nimport { ColorCategory, ColorRole, UtilityColorRole } from './color.types';\n\n/**\n * @deprecated HSL saturation ranges are superseded by the perceptual OKLCH\n * chroma model inside `concepts/generation` (see `generateThemes`). Kept for\n * legacy callers of `uniColor`; removal follows the changeset major process.\n */\nexport const CategorySaturation: Record<ColorCategory, Range> = {\n jewel: { low: 73, high: 83 },\n pastel: { low: 14, high: 21 },\n earth: { low: 36, high: 41 },\n neutral: { low: 1, high: 10 },\n florescent: { low: 63, high: 100 },\n shades: { low: 0, high: 0 },\n};\n\n/**\n * @deprecated HSL lightness ranges are superseded by the perceptual OKLCH\n * tone slots inside `concepts/generation` (see `generateThemes`).\n */\nexport const CategoryLightness: Record<ColorCategory, Range> = {\n jewel: { low: 56, high: 76 },\n pastel: { low: 89, high: 96 },\n earth: { low: 36, high: 77 },\n neutral: { low: 70, high: 99 },\n florescent: { low: 82, high: 100 },\n shades: { low: 0, high: 100 },\n};\n\nexport const RoleHues: Record<ColorRole | UtilityColorRole, Range> = {\n primary: { low: 73, high: 83, default: 0 },\n secondary: { low: 14, high: 21, default: 0 },\n tertiary: { low: 36, high: 41, default: 0 },\n inverse: { low: 63, high: 100, default: 0 },\n ghost: { low: 0, high: 0, default: 0 },\n warn: { low: 320, high: 20, default: 0 }, // red\n alert: { low: 40, high: 70, default: 60 }, // yellow\n success: { low: 90, high: 150, default: 120 }, // green\n info: { low: 200, high: 260, default: 240 }, // blue\n};\n","import { Range } from './color.model';\nimport type { ColorScheme } from './color.types';\n\n/**\n * @deprecated Randomized generation is superseded by the deterministic OKLCH\n * engine in `concepts/generation` — same input, same theme. Seeded \"surprise\n * me\" behavior belongs in the consumer (playground), not the engine.\n */\nexport const randomRangeValue = ({ low, high }: Range): number => {\n low = Math.ceil(low);\n high = Math.floor(high);\n return Math.floor(Math.random() * (high - low + 1)) + low;\n};\n\nexport const cycle = (angle: number): number => {\n if (angle > 360) return angle - 360;\n if (angle < 0) return angle + 360;\n return angle;\n};\n\nexport const getAnalogousHues = (hue: number): number[] => [cycle(hue + 30), cycle(hue + 60)];\nexport const getComplimentaryHue = (hue: number): number => cycle(hue + 180);\nexport const getTriadicHues = (hue: number): number[] => [cycle(hue + 120), cycle(hue - 120)];\nexport const getSplitComplimentaryHues = (hue: number): number[] => [\n cycle(hue + 150),\n cycle(hue - 150),\n];\n\nexport interface RoleHueSet {\n primary: number;\n secondary: number;\n tertiary: number;\n}\n\n/**\n * Derive the primary/secondary/tertiary hues from a seed hue using the color\n * wheel relationships in {@link ColorScheme}. Pure angle math — works in any\n * hue space (HSL historically, OKLCH in the generation engine).\n */\nexport const schemeHues = (hue: number, scheme: ColorScheme): RoleHueSet => {\n switch (scheme) {\n case 'monochromatic':\n return { primary: hue, secondary: hue, tertiary: hue };\n case 'analogous': {\n const [a, b] = getAnalogousHues(hue);\n return { primary: hue, secondary: a, tertiary: b };\n }\n case 'complimentary': {\n const [a] = getAnalogousHues(hue);\n return { primary: hue, secondary: getComplimentaryHue(hue), tertiary: a };\n }\n case 'splitComplimentary': {\n const [a, b] = getSplitComplimentaryHues(hue);\n return { primary: hue, secondary: a, tertiary: b };\n }\n case 'triadic': {\n const [a, b] = getTriadicHues(hue);\n return { primary: hue, secondary: a, tertiary: b };\n }\n }\n};\n","import { HSL, HSLA, RGB, UniColor } from './color.model';\nimport { CategoryLightness, CategorySaturation, RoleHues } from './color.records';\nimport { randomRangeValue } from './color.utils';\n\nexport function HSLAToString({ hue, saturation, lightness, alpha = 1 }: HSLA): string {\n return `hsla(${hue}, ${saturation}%, ${lightness}%, ${alpha})`;\n}\n\nexport function RGBToString({ red, green, blue }: RGB): string {\n return `rgb(${red}, ${green}, ${blue})`;\n}\n\n/**\n * @deprecated Random HSL generation produces non-deterministic, perceptually\n * uneven colors. Use the OKLCH engine (`generateThemes` in\n * `concepts/generation`) or `generatePalette` instead.\n */\nexport function uniColor({ role, category, alpha = 1 }: UniColor): string {\n const hue = randomRangeValue(RoleHues[role]);\n const saturation = randomRangeValue(CategorySaturation[category]);\n const lightness = randomRangeValue(CategoryLightness[category]);\n\n return HSLAToString({ hue, saturation, lightness, alpha });\n}\n\nexport const RGBToHSL = ({ red, green, blue }: RGB): HSL => {\n red /= 255;\n green /= 255;\n blue /= 255;\n const l = Math.max(red, green, blue);\n const s = l - Math.min(red, green, blue);\n const h = s\n ? l === red\n ? (green - blue) / s\n : l === green\n ? 2 + (blue - red) / s\n : 4 + (red - green) / s\n : 0;\n return {\n hue: 60 * h < 0 ? 60 * h + 360 : 60 * h,\n saturation: 100 * (s ? (l <= 0.5 ? s / (2 * l - s) : s / (2 - (2 * l - s))) : 0),\n lightness: (100 * (2 * l - s)) / 2,\n };\n};\n\n// ── Conversions & contrast (used by the palette factory) ────────────────────\n\nconst clamp = (value: number, min: number, max: number): number =>\n Math.min(max, Math.max(min, value));\n\nconst toHex2 = (value: number): string => clamp(Math.round(value), 0, 255).toString(16).padStart(2, '0');\n\nexport const rgbToHex = ({ red, green, blue }: RGB): string =>\n `#${toHex2(red)}${toHex2(green)}${toHex2(blue)}`.toUpperCase();\n\nexport const hexToRgb = (hex: string): RGB => {\n let h = hex.replace('#', '').trim();\n if (h.length === 3) h = h.split('').map((c) => c + c).join('');\n const int = parseInt(h, 16);\n return { red: (int >> 16) & 255, green: (int >> 8) & 255, blue: int & 255 };\n};\n\nexport const HSLToRGB = ({ hue = 0, saturation = 0, lightness = 0 }: HSL): RGB => {\n const s = clamp(saturation, 0, 100) / 100;\n const l = clamp(lightness, 0, 100) / 100;\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const hp = (((hue % 360) + 360) % 360) / 60;\n const x = c * (1 - Math.abs((hp % 2) - 1));\n const [r1, g1, b1] =\n hp < 1\n ? [c, x, 0]\n : hp < 2\n ? [x, c, 0]\n : hp < 3\n ? [0, c, x]\n : hp < 4\n ? [0, x, c]\n : hp < 5\n ? [x, 0, c]\n : [c, 0, x];\n const m = l - c / 2;\n return {\n red: (r1 + m) * 255,\n green: (g1 + m) * 255,\n blue: (b1 + m) * 255,\n };\n};\n\n/** Build an sRGB hex string straight from HSL channel values. */\nexport const HSLToHex = (hsl: HSL): string => rgbToHex(HSLToRGB(hsl));\n\nexport const hexToHSL = (hex: string): HSL => RGBToHSL(hexToRgb(hex));\n\n/** WCAG relative luminance of an sRGB color (0 = black, 1 = white). */\nexport const relativeLuminance = ({ red, green, blue }: RGB): number => {\n const channel = (value: number): number => {\n const v = value / 255;\n return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\n };\n return 0.2126 * channel(red) + 0.7152 * channel(green) + 0.0722 * channel(blue);\n};\n\n/** WCAG contrast ratio between two colors (1:1 – 21:1). Accepts RGB or hex. */\nexport const contrastRatio = (a: RGB | string, b: RGB | string): number => {\n const la = relativeLuminance(typeof a === 'string' ? hexToRgb(a) : a);\n const lb = relativeLuminance(typeof b === 'string' ? hexToRgb(b) : b);\n const [hi, lo] = la > lb ? [la, lb] : [lb, la];\n return (hi + 0.05) / (lo + 0.05);\n};\n\n// Future Methods - https://codepen.io/jkantner/pen/VVEMRK\n","import type { RGB } from '../color/color.model';\nimport { hexToRgb, rgbToHex } from '../color/color.helper';\n\n/**\n * A color in OKLCH: perceptual lightness `l` (0–1), chroma `c` (0 = grey,\n * ~0.37 = max sRGB vividness) and hue angle `h` in degrees (0–360).\n *\n * Unlike HSL lightness, OKLCH `l` is perceptually uniform — a blue and a\n * yellow at the same `l` *look* equally light — which is what makes derived\n * tonal scales consistent across hues.\n */\nexport interface Oklch {\n l: number;\n c: number;\n h: number;\n}\n\nconst clamp = (value: number, min: number, max: number): number =>\n Math.min(max, Math.max(min, value));\n\n// sRGB transfer function and its inverse (gamma ↔ linear light).\nconst srgbToLinear = (channel: number): number =>\n channel <= 0.04045 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n\nconst linearToSrgb = (channel: number): number =>\n channel <= 0.0031308 ? 12.92 * channel : 1.055 * Math.pow(channel, 1 / 2.4) - 0.055;\n\ninterface LinearRGB {\n r: number;\n g: number;\n b: number;\n}\n\n// OKLab ↔ linear sRGB matrices (Björn Ottosson's reference constants).\nconst linearRgbToOklab = ({ r, g, b }: LinearRGB): { l: number; a: number; b: number } => {\n const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);\n const m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);\n const s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);\n return {\n l: 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,\n a: 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,\n b: 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s,\n };\n};\n\nconst oklabToLinearRgb = (l: number, a: number, b: number): LinearRGB => {\n const l_ = Math.pow(l + 0.3963377774 * a + 0.2158037573 * b, 3);\n const m_ = Math.pow(l - 0.1055613458 * a - 0.0638541728 * b, 3);\n const s_ = Math.pow(l - 0.0894841775 * a - 1.291485548 * b, 3);\n return {\n r: 4.0767416621 * l_ - 3.3077115913 * m_ + 0.2309699292 * s_,\n g: -1.2684380046 * l_ + 2.6097574011 * m_ - 0.3413193965 * s_,\n b: -0.0041960863 * l_ - 0.7034186147 * m_ + 1.707614701 * s_,\n };\n};\n\nconst oklchToLinearRgb = ({ l, c, h }: Oklch): LinearRGB => {\n const rad = (h * Math.PI) / 180;\n return oklabToLinearRgb(l, c * Math.cos(rad), c * Math.sin(rad));\n};\n\nconst GAMUT_EPSILON = 1e-4;\n\nconst inSrgbGamut = ({ r, g, b }: LinearRGB): boolean =>\n r >= -GAMUT_EPSILON &&\n r <= 1 + GAMUT_EPSILON &&\n g >= -GAMUT_EPSILON &&\n g <= 1 + GAMUT_EPSILON &&\n b >= -GAMUT_EPSILON &&\n b <= 1 + GAMUT_EPSILON;\n\n/** Parse a hex color (`#RGB` or `#RRGGBB`) into OKLCH. */\nexport const hexToOklch = (hex: string): Oklch => {\n const { red, green, blue } = hexToRgb(hex);\n const { l, a, b } = linearRgbToOklab({\n r: srgbToLinear(red / 255),\n g: srgbToLinear(green / 255),\n b: srgbToLinear(blue / 255),\n });\n const c = Math.hypot(a, b);\n const h = c < 1e-6 ? 0 : (Math.atan2(b, a) * 180) / Math.PI;\n return { l, c, h: h < 0 ? h + 360 : h };\n};\n\n/**\n * Render OKLCH as an sRGB hex string. Out-of-gamut colors are mapped back\n * into sRGB by reducing chroma only — lightness and hue are preserved, so\n * vivid seeds desaturate gracefully instead of shifting hue or clipping.\n */\nexport const oklchToHex = (color: Oklch): string => {\n const target: Oklch = { l: clamp(color.l, 0, 1), c: Math.max(color.c, 0), h: color.h };\n let rgb = oklchToLinearRgb(target);\n if (!inSrgbGamut(rgb)) {\n let low = 0;\n let high = target.c;\n for (let i = 0; i < 24; i++) {\n const mid = (low + high) / 2;\n if (inSrgbGamut(oklchToLinearRgb({ ...target, c: mid }))) low = mid;\n else high = mid;\n }\n rgb = oklchToLinearRgb({ ...target, c: low });\n }\n // Scale *after* the transfer function: 255 × transfer(channel), rounded once\n // inside rgbToHex. Rounding before scaling collapses every channel to 0/1.\n return rgbToHex(toSrgb255(rgb));\n};\n\nconst toSrgb255 = ({ r, g, b }: LinearRGB): RGB => ({\n red: 255 * linearToSrgb(clamp(r, 0, 1)),\n green: 255 * linearToSrgb(clamp(g, 0, 1)),\n blue: 255 * linearToSrgb(clamp(b, 0, 1)),\n});\n","import type { Colors } from '../theme/theme.model';\nimport type { BrandRole, PaletteConfig } from '../color/color.factory';\nimport type { ColorCategory } from '../color/color.types';\nimport { contrastRatio, hexToRgb, relativeLuminance } from '../color/color.helper';\nimport { schemeHues } from '../color/color.utils';\nimport { hexToOklch, oklchToHex, type Oklch } from './oklch.helper';\nimport type { ContrastCheck } from './generation.types';\n\nexport interface GenerateColorsConfig extends PaletteConfig {\n /**\n * Soft brand anchors, per role: the palette starts from these exact colors\n * but the WCAG guard-rail may adjust lightness (never hue) to reach AA.\n * Contrast-safe counterpart to the hard `brand` pins, which are emitted\n * verbatim even when they fail.\n */\n targets?: Partial<Record<BrandRole, string>>;\n /** Sink for the contrast checks performed while building this palette. */\n checks?: ContrastCheck[];\n}\n\n// ── Tonal architecture ──────────────────────────────────────────────────────\n// Every token maps onto one of these OKLCH lightness slots. Because OKLCH L\n// is perceptually uniform, a slot renders equally light for every hue — the\n// property HSL lacked, and the root fix for muddy derived palettes.\nconst toneMap = (dark: boolean) =>\n dark\n ? {\n accent: 0.78,\n container: 0.42,\n roleSurface: 0.26,\n background: 0.18,\n surface: 0.21,\n surfaceVariant: 0.32,\n outline: 0.66,\n onSurface: 0.93,\n mutedText: 0.76,\n inverse: 0.93,\n onInverse: 0.25,\n onDeep: 0.2,\n onLight: 0.985,\n grey: 0.72,\n disabledContainer: 0.3,\n }\n : {\n accent: 0.55,\n container: 0.9,\n roleSurface: 0.97,\n background: 0.995,\n surface: 0.985,\n surfaceVariant: 0.94,\n outline: 0.6,\n onSurface: 0.25,\n mutedText: 0.48,\n inverse: 0.3,\n onInverse: 0.97,\n onDeep: 0.24,\n onLight: 0.985,\n grey: 0.5,\n disabledContainer: 0.96,\n };\n\n// OKLCH chroma per tonal category — the perceptual successor to the HSL\n// `CategorySaturation` table. Values are accent-level chroma; container and\n// surface chroma are derived fractions.\nexport const CategoryChroma: Record<ColorCategory, number> = {\n jewel: 0.17,\n pastel: 0.055,\n earth: 0.08,\n neutral: 0.03,\n florescent: 0.26,\n shades: 0,\n};\n\n/** Dark-mode accents cap chroma so they don't vibrate on dark surfaces. */\nconst DARK_ACCENT_CHROMA_CAP = 0.16;\n\n// Semantic feedback roles in OKLCH: hue + chroma per role. Chroma differs per\n// role because sRGB gamut room differs by hue at the AA-dark lightness light\n// mode forces on ink tokens: red holds 0.20; amber sits at 55° (not 70° —\n// dark yellow reads brown, dark orange stays lively) with 0.18; green 0.16.\nconst SemanticColors = {\n error: { hue: 27, chroma: 0.2 },\n warn: { hue: 55, chroma: 0.18 },\n success: { hue: 152, chroma: 0.16 },\n} as const;\n\nconst clamp = (value: number, min: number, max: number): number =>\n Math.min(max, Math.max(min, value));\n\n/**\n * Generate a complete {@link Colors} token set in OKLCH. Same contract as\n * `generatePalette` (which delegates here), plus soft brand targets and a\n * contrast-check sink for {@link ContrastReport} consumers.\n */\nexport const generateColors = (config: GenerateColorsConfig): Colors => {\n const {\n seed,\n scheme,\n category,\n mode = 'light',\n accentSaturationFloor = 18,\n brand = {},\n targets = {},\n checks,\n } = config;\n const dark = mode === 'dark';\n const t = toneMap(dark);\n\n // The primary anchor (hard pin > soft target > seed) sets the neutral hue.\n const anchor = hexToOklch(brand.primary ?? targets.primary ?? seed);\n const hues = schemeHues(anchor.h, scheme);\n\n // Chroma model. The floor keeps the brand hue perceptible even for the\n // near-grey `neutral` category (0–100 legacy scale → OKLCH chroma).\n const chromaFloor = (accentSaturationFloor / 100) * 0.28;\n let accentC = Math.max(CategoryChroma[category], chromaFloor);\n if (dark) accentC = Math.min(accentC, DARK_ACCENT_CHROMA_CAP);\n const containerC = Math.max(CategoryChroma[category] * 0.45, accentC * 0.35);\n const surfaceC = Math.min(CategoryChroma[category], 0.012);\n\n const tone = (hue: number, c: number, l: number): string => oklchToHex({ l, c, h: hue });\n\n /**\n * The WCAG guard-rail: walk the foreground's OKLCH lightness away from the\n * background until the pair meets `target` (≤ 50 steps). Hue is never\n * touched; chroma only shrinks as a last resort when L runs out of room.\n */\n const ensureContrast = (fg: Oklch, bg: string, target: number): Oklch => {\n const out: Oklch = { ...fg };\n let hex = oklchToHex(out);\n if (contrastRatio(hex, bg) >= target) return out;\n // Pick the direction that can actually reach the target: each side has a\n // hard ceiling — black tops out at (Ybg + 0.05) / 0.05, white at\n // 1.05 / (Ybg + 0.05) — so staying on the foreground's current side is\n // only right when that side has enough headroom.\n const bgY = relativeLuminance(hexToRgb(bg));\n const darkCeiling = (bgY + 0.05) / 0.05;\n const lightCeiling = 1.05 / (bgY + 0.05);\n let lighten = relativeLuminance(hexToRgb(hex)) >= bgY;\n if (lighten && lightCeiling < target && darkCeiling >= target) lighten = false;\n if (!lighten && darkCeiling < target && lightCeiling >= target) lighten = true;\n const step = lighten ? 0.015 : -0.015;\n for (let i = 0; i < 50 && contrastRatio(hex, bg) < target; i++) {\n if ((step > 0 && out.l < 0.995) || (step < 0 && out.l > 0.02)) {\n out.l = clamp(out.l + step, 0, 1);\n } else {\n out.c = Math.max(0, out.c - 0.02);\n }\n hex = oklchToHex(out);\n }\n return out;\n };\n\n /** Guard-railed token: adjust toward `target` contrast, then record the pair. */\n const contrasted = (fg: Oklch, bgHex: string, target: number): string =>\n oklchToHex(ensureContrast(fg, bgHex, target));\n\n const record = (\n foreground: string,\n background: string,\n foregroundColor: string,\n backgroundColor: string,\n required: number\n ): void => {\n if (!checks) return;\n const ratio = contrastRatio(foregroundColor, backgroundColor);\n checks.push({\n mode,\n foreground,\n background,\n foregroundColor,\n backgroundColor,\n ratio: Math.round(ratio * 100) / 100,\n required,\n pass: ratio >= required,\n level: ratio < required ? 'fail' : ratio >= 7 ? 'AAA' : 'AA',\n });\n };\n\n const background = tone(anchor.h, surfaceC, t.background);\n const surface = tone(anchor.h, surfaceC, t.surface);\n const surfaceVariant = tone(anchor.h, surfaceC, t.surfaceVariant);\n\n // Legible foreground for a given ground: whichever of the tonal near-black /\n // near-white starts closer to AA, then guard-railed the rest of the way.\n const onColor = (hue: number, bg: string, c: number): string => {\n const deep: Oklch = { l: t.onDeep, c: Math.min(c, 0.05), h: hue };\n const light: Oklch = { l: t.onLight, c: Math.min(c, 0.02), h: hue };\n const pick =\n contrastRatio(oklchToHex(deep), bg) >= contrastRatio(oklchToHex(light), bg) ? deep : light;\n return contrasted(pick, bg, 4.5);\n };\n\n // Dark-mode counterpart of a *hard-pinned* brand color: lift lightness only\n // (hue and chroma preserved) until it clears 3:1 on the dark ground.\n const adaptPinForDark = (hex: string): string => {\n const pin = hexToOklch(hex);\n pin.l = Math.max(pin.l, 0.6);\n return oklchToHex(ensureContrast(pin, background, 3));\n };\n\n /**\n * Resolve a role's base color: hard pins are verbatim in light mode and\n * lightness-lifted in dark; soft targets and generated tones are pulled to\n * ≥ 4.5:1 as standalone ink on `background` and `surface` (§3.6).\n */\n const baseFor = (name: BrandRole, hue: number, c: number): string => {\n const pinned = brand[name];\n if (pinned) return dark ? adaptPinForDark(pinned) : pinned;\n const target = targets[name];\n let base: Oklch;\n if (target) {\n // Soft targets keep their own chroma — brand fidelity beats category.\n // Callers that want a vibe cap applied clamp the target before passing\n // it in (see `generateThemes`). Dark mode still decouples chroma.\n base = hexToOklch(target);\n if (dark) {\n base.c = Math.min(base.c, DARK_ACCENT_CHROMA_CAP);\n base.l = Math.max(base.l, t.accent - 0.08);\n }\n } else {\n base = { l: t.accent, c, h: hue };\n }\n return oklchToHex(ensureContrast(ensureContrast(base, background, 4.5), surface, 4.5));\n };\n\n const disabled = dark ? 'rgba(255,255,255,0.12)' : 'rgba(0,0,0,0.12)';\n const onDisabled = dark ? 'rgba(255,255,255,0.38)' : 'rgba(0,0,0,0.38)';\n\n // An accent role's base drives its container/surface/on satellites. Every\n // content satellite passes through the guard-rail and is recorded.\n const role = (name: string, base: string, cC: number = containerC) => {\n const { h, c } = hexToOklch(base);\n const container = tone(h, cC, t.container);\n const roleSurface = tone(h, surfaceC, t.roleSurface);\n const onBase = onColor(h, base, c);\n const onContainer = onColor(h, container, c);\n const onContainerVariant = contrasted({ l: t.mutedText, c: Math.min(cC, 0.06), h }, container, 4.5);\n const border = ensureContrast(ensureContrast(hexToOklch(base), container, 3), surface, 3);\n const borderHex = oklchToHex(border);\n const onRoleSurface = onColor(h, roleSurface, surfaceC);\n const onRoleSurfaceVariant = contrasted(hexToOklch(base), roleSurface, 4.5);\n\n record(`on-${name}`, name, onBase, base, 4.5);\n record(`on-${name}-container`, `${name}-container`, onContainer, container, 4.5);\n record(`on-${name}-container-variant`, `${name}-container`, onContainerVariant, container, 4.5);\n record(`on-${name}-container-border`, `${name}-container`, borderHex, container, 3);\n record(`on-${name}-container-border`, 'surface', borderHex, surface, 3);\n record(`on-${name}-surface`, `${name}-surface`, onRoleSurface, roleSurface, 4.5);\n record(`on-${name}-surface-variant`, `${name}-surface`, onRoleSurfaceVariant, roleSurface, 4.5);\n record(name, 'background', base, background, 4.5);\n record(name, 'surface', base, surface, 4.5);\n\n return {\n [name]: base,\n [`on-${name}`]: onBase,\n [`${name}-container`]: container,\n [`on-${name}-container`]: onContainer,\n [`on-${name}-container-variant`]: onContainerVariant,\n [`on-${name}-container-border`]: borderHex,\n [`${name}-surface`]: roleSurface,\n [`on-${name}-surface`]: onRoleSurface,\n [`on-${name}-surface-variant`]: onRoleSurfaceVariant,\n };\n };\n\n const primaryBase = baseFor('primary', hues.primary, accentC);\n const secondaryBase = baseFor('secondary', hues.secondary, accentC);\n const tertiaryBase = baseFor('tertiary', hues.tertiary, accentC);\n\n // Quaternary is a neutral, near-grey accent tied to the brand hue.\n const quaternaryGrey = brand.quaternary\n ? dark\n ? adaptPinForDark(brand.quaternary)\n : brand.quaternary\n : oklchToHex(ensureContrast({ l: t.grey, c: surfaceC, h: anchor.h }, surface, 3));\n const quaternarySurface = tone(anchor.h, surfaceC, t.roleSurface);\n const onQuaternary = onColor(anchor.h, quaternaryGrey, surfaceC);\n const onQuaternarySurface = onColor(anchor.h, quaternarySurface, surfaceC);\n const onQuaternarySurfaceVariant = contrasted(hexToOklch(primaryBase), quaternarySurface, 4.5);\n const onQuaternaryContainerVariant = contrasted(\n { l: t.mutedText, c: Math.min(containerC, 0.06), h: anchor.h },\n quaternarySurface,\n 4.5\n );\n record('on-quaternary', 'quaternary', onQuaternary, quaternaryGrey, 4.5);\n record('on-quaternary-surface', 'quaternary-surface', onQuaternarySurface, quaternarySurface, 4.5);\n record(\n 'on-quaternary-surface-variant',\n 'quaternary-surface',\n onQuaternarySurfaceVariant,\n quaternarySurface,\n 4.5\n );\n\n // Semantic feedback roles keep colorful, recognizable hues in every category.\n const semantic = (name: 'error' | 'warn' | 'success') => {\n const { hue, chroma } = SemanticColors[name];\n const base = baseFor(name, hue, dark ? Math.min(chroma, DARK_ACCENT_CHROMA_CAP) : chroma);\n const { h } = hexToOklch(base);\n const container = tone(h, containerC + 0.04, t.container);\n const onBase = onColor(h, base, chroma);\n const onContainer = onColor(h, container, chroma);\n record(`on-${name}`, name, onBase, base, 4.5);\n record(`on-${name}-container`, `${name}-container`, onContainer, container, 4.5);\n record(name, 'background', base, background, 4.5);\n record(name, 'surface', base, surface, 4.5);\n return { base, container, onBase, onContainer, h };\n };\n\n const error = semantic('error');\n const warn = semantic('warn');\n const success = semantic('success');\n\n const semanticExtras = (name: 'warn' | 'success', s: ReturnType<typeof semantic>) => {\n const variant = contrasted({ l: t.mutedText, c: 0.06, h: s.h }, s.container, 4.5);\n const border = oklchToHex(\n ensureContrast(ensureContrast(hexToOklch(s.base), s.container, 3), surface, 3)\n );\n record(`on-${name}-container-variant`, `${name}-container`, variant, s.container, 4.5);\n record(`on-${name}-container-border`, `${name}-container`, border, s.container, 3);\n return { variant, border };\n };\n const warnExtras = semanticExtras('warn', warn);\n const successExtras = semanticExtras('success', success);\n\n // Neutral text tokens.\n const onBackground = tone(anchor.h, surfaceC, t.onSurface);\n const onBackgroundVariant = contrasted({ l: t.mutedText, c: surfaceC, h: anchor.h }, background, 4.5);\n const onSurface = tone(anchor.h, surfaceC, t.onSurface);\n const onSurfaceVariant = contrasted(\n { l: dark ? t.mutedText : t.mutedText - 0.14, c: surfaceC, h: anchor.h },\n surfaceVariant,\n 4.5\n );\n record('on-background', 'background', onBackground, background, 4.5);\n record('on-background-variant', 'background', onBackgroundVariant, background, 4.5);\n record('on-surface', 'surface', onSurface, surface, 4.5);\n record('on-surface-variant', 'surface-variant', onSurfaceVariant, surfaceVariant, 4.5);\n\n // Inverse surfaces flip the ground; their accents must stay legible there.\n const inverseSurface = tone(anchor.h, surfaceC, t.inverse);\n const onInverse = tone(anchor.h, surfaceC, t.onInverse);\n const inversePrimary = contrasted(hexToOklch(primaryBase), inverseSurface, 4.5);\n record('on-inverse-surface', 'inverse-surface', onInverse, inverseSurface, 4.5);\n record('on-inverse-surface-primary', 'inverse-surface', inversePrimary, inverseSurface, 4.5);\n record('on-inverse-container', 'inverse-container', onInverse, inverseSurface, 4.5);\n\n const outline = oklchToHex(\n ensureContrast(\n ensureContrast({ l: t.outline, c: Math.min(surfaceC, 0.02), h: hues.primary }, surface, 3),\n background,\n 3\n )\n );\n record('outline', 'surface', outline, surface, 3);\n record('outline', 'background', outline, background, 3);\n\n return {\n ...role('primary', primaryBase),\n ...role('secondary', secondaryBase),\n ...role('tertiary', tertiaryBase),\n\n quaternary: quaternaryGrey,\n 'on-quaternary': onQuaternary,\n 'quaternary-surface': quaternarySurface,\n 'on-quaternary-surface': onQuaternarySurface,\n 'on-quaternary-surface-variant': onQuaternarySurfaceVariant,\n 'on-quaternary-container-variant': onQuaternaryContainerVariant,\n 'on-quaternary-container-border': quaternaryGrey,\n\n // Semantic\n error: error.base,\n 'on-error': error.onBase,\n 'error-container': error.container,\n 'on-error-container': error.onContainer,\n\n warn: warn.base,\n 'on-warn': warn.onBase,\n 'warn-container': warn.container,\n 'on-warn-container': warn.onContainer,\n 'on-warn-container-variant': warnExtras.variant,\n 'on-warn-container-border': warnExtras.border,\n\n success: success.base,\n 'on-success': success.onBase,\n 'success-container': success.container,\n 'on-success-container': success.onContainer,\n 'on-success-container-variant': successExtras.variant,\n 'on-success-container-border': successExtras.border,\n\n // Neutral surfaces\n background,\n 'on-background': onBackground,\n 'on-background-variant': onBackgroundVariant,\n surface,\n 'on-surface': onSurface,\n 'surface-variant': surfaceVariant,\n 'on-surface-variant': onSurfaceVariant,\n\n // Inverse\n 'inverse-surface': inverseSurface,\n 'on-inverse-surface': onInverse,\n 'on-inverse-surface-primary': inversePrimary,\n 'on-inverse-surface-variant': inversePrimary,\n 'inverse-container': inverseSurface,\n 'on-inverse-container': onInverse,\n\n // Utility\n outline,\n shadow: '#000000',\n scrim: '#000000',\n 'surface-tint': primaryBase,\n transparent: 'rgba(0,0,0,0)',\n ghost: 'rgba(0,0,0,0)',\n\n // Disabled (deliberate alpha overlays — excluded from the contrast report)\n disabled,\n 'on-disabled': onDisabled,\n 'disabled-container': tone(hues.primary, surfaceC, t.disabledContainer),\n 'on-disabled-container': onDisabled,\n 'disabled-surface': disabled,\n 'on-disabled-surface': dark ? 'rgba(255,255,255,0.5)' : 'rgba(0,0,0,0.5)',\n 'on-disabled-surface-variant': dark ? 'rgba(255,255,255,0.4)' : 'rgba(0,0,0,0.4)',\n };\n};\n","import type { Colors } from '../theme';\nimport { generateColors, type GenerateColorsConfig } from '../generation/palette.factory';\nimport type { ColorCategory, ColorScheme } from './color.types';\n\n/** Roles whose base color can be pinned to an exact brand hex. */\nexport type BrandRole =\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'quaternary'\n | 'error'\n | 'warn'\n | 'success';\n\nexport interface PaletteConfig {\n /**\n * Seed brand color as a hex string, e.g. '#4F46E5'. Anchors the neutral\n * hue and every role you don't pin via `brand`. When `brand.primary` is\n * set, that color anchors instead.\n */\n seed: string;\n /** How secondary/tertiary hues relate to the anchor, for unpinned roles. */\n scheme: ColorScheme;\n /** Saturation / tonal character of the generated (unpinned) colors. */\n category: ColorCategory;\n /** Light or dark rendering of the same palette. Defaults to 'light'. */\n mode?: 'light' | 'dark';\n /**\n * Minimum accent saturation (0–100 scale) so the brand hue stays perceptible\n * even for the `neutral` category (which is otherwise near-grey). Set to 0\n * to honor the category saturation exactly.\n */\n accentSaturationFloor?: number;\n /**\n * Exact brand colors, pinned per role. A pinned color is emitted verbatim as\n * that role's base token in **light** mode (\"cannot shift\"); in **dark** mode\n * it is lifted in lightness only — hue and chroma preserved — so it stays\n * legible on a dark ground. Its on/container/surface satellites are derived\n * from it. Unpinned roles are generated from the seed + scheme as usual, so an\n * arbitrary brand pair (e.g. forest green + ochre) can be reproduced exactly.\n */\n brand?: Partial<Record<BrandRole, string>>;\n}\n\n/**\n * Generate a complete {@link Colors} token set from a single seed color, a\n * {@link ColorScheme} and a {@link ColorCategory}. Produces a light or dark\n * variant of the same palette; `on-*` colors are driven to WCAG AA contrast\n * so text stays legible for any seed.\n *\n * Delegates to the OKLCH engine in `concepts/generation` — all lightness and\n * chroma math is perceptual, and every derived pair passes through the WCAG\n * guard-rail. Accepts the engine's extended config, so callers may also pass\n * soft `targets` (brand-faithful but guard-railed) and a `checks` sink. Use\n * `generateThemes()` for the light+dark pair plus a {@link ContrastReport}.\n */\nexport const generatePalette = (config: GenerateColorsConfig): Colors => generateColors(config);\n","export type ZIndexableElements =\n | 'dropdown'\n | 'sticky'\n | 'fixed'\n | 'backdrop'\n | 'dialog'\n | 'popover'\n | 'tooltip'\n | 'overlay';\n\nexport const Z_INDEX: Record<ZIndexableElements, number> = {\n dropdown: 1000,\n sticky: 1020,\n fixed: 1030,\n backdrop: 1040,\n dialog: 1050,\n popover: 1060,\n tooltip: 1070,\n overlay: 1080,\n};\n","import type { Colors, Radii, Spacing } from '../theme/theme.model';\n\n/** A single W3C DTCG design token. */\nexport interface DtcgToken {\n $value: string;\n $type: 'color' | 'dimension';\n}\n\n/** DTCG-format token document (Style Dictionary compatible), per PRD §6. */\nexport interface DtcgTokens {\n color: Record<string, DtcgToken>;\n size: {\n radius: Record<string, DtcgToken>;\n spacing: Record<string, DtcgToken>;\n };\n}\n\nconst dimensionEntries = (record: Radii | Spacing | undefined): Record<string, DtcgToken> =>\n Object.fromEntries(\n Object.entries(record ?? {})\n .filter(([, value]) => value !== undefined && value !== 'none')\n .map(([key, value]) => [key, { $value: String(value), $type: 'dimension' as const }])\n );\n\n/**\n * Render one theme mode's tokens as W3C DTCG JSON for external pipelines\n * (Style Dictionary etc.). Token names are exactly Uni's `ColorToken` strings —\n * one vocabulary everywhere. The native `UniTheme` object remains the primary,\n * lossless output; this is the interop layer.\n */\nexport const emitDtcgTokens = (input: {\n colors: Colors;\n radii?: Radii;\n spacing?: Spacing;\n}): DtcgTokens => ({\n color: Object.fromEntries(\n Object.entries(input.colors)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => [key, { $value: value as string, $type: 'color' as const }])\n ),\n size: {\n radius: dimensionEntries(input.radii),\n spacing: dimensionEntries(input.spacing),\n },\n});\n","import type { Colors, Shadows } from '../theme/theme.model';\nimport { hexToRgb } from '../color/color.helper';\nimport { hexToOklch, oklchToHex } from './oklch.helper';\n\nconst rgba = (hex: string, alpha: number): string => {\n const { red, green, blue } = hexToRgb(hex);\n return `rgba(${red}, ${green}, ${blue}, ${alpha})`;\n};\n\n/**\n * Brand-tinted, theme-scoped elevation shadows (PRD §3.5.C).\n *\n * Light mode replaces the dead-neutral black stacks with a shadow ink pulled\n * toward the brand hue — dark and low-chroma enough to read as shadow, tinted\n * enough to kill the grey \"mud\" where shadows meet brand surfaces. Dark mode\n * goes near-zero: elevation is carried by the surface lightness steps, with\n * only a faint veil kept on floating overlays (menus/dialogs genuinely need\n * separation) and the `warn` glow tinted by the theme's own error color.\n */\nexport const generateShadows = (colors: Colors, mode: 'light' | 'dark' = 'light'): Shadows => {\n const error = colors['error'] ?? '#CC2827';\n\n if (mode === 'dark') {\n return {\n raised: 'none',\n menu: `0px 4px 12px ${rgba('#000000', 0.45)}`,\n dialog: `0px 8px 28px ${rgba('#000000', 0.55)}`,\n warn: `0 0 5px ${rgba(error, 0.55)}, inset 0 0 5px ${rgba(error, 0.35)}`,\n };\n }\n\n // Shadow ink: near-black carrying ~6–8% of the brand hue's chroma.\n const { h } = hexToOklch(colors['primary'] ?? '#000000');\n const ink = oklchToHex({ l: 0.22, c: 0.035, h });\n return {\n raised: `${rgba(ink, 0.2)} 0px 2px 1px -1px, ${rgba(ink, 0.14)} 0px 1px 1px 0px, ${rgba(ink, 0.12)} 0px 1px 3px 0px`,\n menu: `${rgba(ink, 0.2)} 0px 3px 3px -2px, ${rgba(ink, 0.14)} 0px 3px 4px 0px, ${rgba(ink, 0.12)} 0px 1px 8px 0px`,\n dialog: `${rgba(ink, 0.2)} 0px 3px 5px -1px, ${rgba(ink, 0.14)} 0px 6px 10px 0px, ${rgba(ink, 0.12)} 0px 1px 18px 0px`,\n warn: `0 0 5px ${rgba(error, 0.5)}, inset 0 0 5px ${rgba(error, 0.3)}`,\n };\n};\n","import type { Icons } from '../theme/theme.model';\n\n/**\n * Default icon primitives shipped with every theme. Each icon is an inline\n * SVG data URI rendered as a CSS mask over `currentColor`, so icons recolor\n * with the theme automatically. `createTheme` merges a theme's own `icons`\n * over this set — add or override under any name; components render them by\n * token via `uni-icon`, never by inlining SVG.\n */\nexport const BaseIcons: Icons = {\n alertCircle:\n \"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath d='M0 0h24v24H0V0z' fill='none'/%3e%3cpath d='M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z'/%3e%3c/svg%3e\",\n calendar:\n \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z'%3E%3C/path%3E%3C/svg%3E\",\n checkCircle:\n \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg%3E%3Cpath d='M32,0A32,32,0,1,0,64,32,32,32,0,0,0,32,0Zm2.0873,41.5-5.4107,5.4106-.02.02L14.1751,32.4492l5.4306-5.4306,9.051,9.0509L46.2861,18.44l5.4305,5.4306Z'/%3E%3C/g%3E%3C/svg%3E\",\n chevronUp:\n \"data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='m296-345-56-56 240-240 240 240-56 56-184-184-184 184Z'/%3E%3C/svg%3E\",\n chevronDown:\n \"data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z'/%3E%3C/svg%3E\",\n chevronLeft:\n \"data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z'/%3E%3C/svg%3E\",\n chevronRight:\n \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z'/%3E%3C/svg%3E\",\n xCircle:\n \"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3e%3cg%3e%3cpath d='M32,0A32,32,0,1,0,64,32,32,32,0,0,0,32,0ZM47.4649,42.3543l-5.4306,5.43L31.68,37.4305,21.3257,47.7848l-5.4306-5.43L26.25,32,15.8951,21.6456l5.4306-5.4305L31.68,26.5694,42.0343,16.2151l5.4306,5.4305L37.1106,32Z'/%3e%3c/g%3e%3c/svg%3e\",\n search:\n \"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3e%3cg%3e%3cpath d='M 21 3 C 11.601563 3 4 10.601563 4 20 C 4 29.398438 11.601563 37 21 37 C 24.355469 37 27.460938 36.015625 30.09375 34.34375 L 42.375 46.625 L 46.625 42.375 L 34.5 30.28125 C 36.679688 27.421875 38 23.878906 38 20 C 38 10.601563 30.398438 3 21 3 Z M 21 7 C 28.199219 7 34 12.800781 34 20 C 34 27.199219 28.199219 33 21 33 C 13.800781 33 8 27.199219 8 20 C 8 12.800781 13.800781 7 21 7 Z'%3e%3c/path%3e%3c/g%3e%3c/svg%3e\",\n close:\n \"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cg%3e%3cpath fill='currentColor' d='M.439,21.44a1.5,1.5,0,0,0,2.122,2.121L11.823,14.3a.25.25,0,0,1,.354,0l9.262,9.263a1.5,1.5,0,1,0,2.122-2.121L14.3,12.177a.25.25,0,0,1,0-.354l9.263-9.262A1.5,1.5,0,0,0,21.439.44L12.177,9.7a.25.25,0,0,1-.354,0L2.561.44A1.5,1.5,0,0,0,.439,2.561L9.7,11.823a.25.25,0,0,1,0,.354Z'%3e%3c/path%3e%3c/g%3e%3c/svg%3e\",\n spinner:\n \"data:image/svg+xml;charset=UTF-8,%3csvg stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3e%3cstyle%3e .oui_spinner %7b transform-origin: center; animation: rotate_360 2s linear infinite;%7d .oui_spinner circle %7b stroke-linecap: round; animation: dash 1.5s ease-in-out infinite;%7d %40keyframes rotate_360 %7b 100%25 %7b transform: rotate(360deg);%7d %7d %40keyframes dash %7b 0%25 %7b stroke-dasharray: 0 150; stroke-dashoffset: 0;%7d 47.5%25 %7b stroke-dasharray: 42 150; stroke-dashoffset: -16;%7d 95%25, 100%25 %7b stroke-dasharray: 42 150; stroke-dashoffset: -59;%7d %7d %3c/style%3e%3cg class='oui_spinner'%3e%3ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3e%3c/circle%3e%3c/g%3e%3c/svg%3e \",\n};\n","import type { ComponentThemes } from '../../component';\nimport { generatePalette, type PaletteConfig } from '../../color';\nimport type { GenerateColorsConfig } from '../../generation/palette.factory';\nimport { generateShadows } from '../../generation/shadow.generator';\nimport { BaseIcons } from '../../iconography/icon.records';\nimport type { TextRole, TextStyle } from '../../typography';\nimport type {\n Borders,\n Colors,\n Icons,\n Radii,\n Shadows,\n Spacing,\n Thicknesses,\n Typography,\n UniTheme,\n} from '../theme.model';\n\n// ==========================================\n// Type scale — the single source of type truth.\n// CSS-ready `typefaces` are derived from this on read (toTypefaces).\n// ==========================================\nconst BaseTypography: Typography = {\n 'display-large': {\n fontFamily: 'Red Hat Display',\n fontSize: 57,\n lineHeight: 64,\n fontWeight: 'normal',\n letterSpacing: -0.25,\n },\n 'display-medium': { fontFamily: 'Red Hat Display', fontSize: 45, lineHeight: 52, fontWeight: 'normal' },\n 'display-small': { fontFamily: 'Red Hat Display', fontSize: 36, lineHeight: 44, fontWeight: 'normal' },\n 'headline-large': { fontFamily: 'Red Hat Display', fontSize: 32, lineHeight: 40, fontWeight: 'normal' },\n 'headline-medium': { fontFamily: 'Red Hat Display', fontSize: 28, lineHeight: 36, fontWeight: 'normal' },\n 'headline-small': { fontFamily: 'Red Hat Display', fontSize: 24, lineHeight: 32, fontWeight: 'normal' },\n 'title-large': { fontFamily: 'Red Hat Display', fontSize: 22, lineHeight: 28, fontWeight: 'normal' },\n 'title-medium': {\n fontFamily: 'Red Hat Display',\n fontSize: 16,\n lineHeight: 24,\n fontWeight: 'medium',\n letterSpacing: 0.15,\n },\n 'title-small': {\n fontFamily: 'Red Hat Display',\n fontWeight: 'medium',\n fontSize: 14,\n lineHeight: 20,\n letterSpacing: 0.1,\n },\n 'body-1-long': { fontFamily: 'Roboto', fontSize: 16, lineHeight: 22 },\n 'body-1-short': { fontFamily: 'Roboto', fontSize: 16, lineHeight: 24 },\n 'body-2-long': { fontFamily: 'Roboto', fontSize: 14, lineHeight: 18 },\n 'body-2-short': { fontFamily: 'Roboto', fontSize: 14, lineHeight: 20 },\n 'subtitle-1': { fontFamily: 'Red Hat Display', fontSize: 16, lineHeight: 24, letterSpacing: 0.15 },\n 'subtitle-2': {\n fontFamily: 'Red Hat Display',\n fontSize: 14,\n lineHeight: 20,\n fontWeight: 'medium',\n letterSpacing: 0.1,\n },\n label: { fontFamily: 'Roboto', fontSize: 14, lineHeight: 20 },\n button: {\n fontFamily: 'Red Hat Display',\n fontSize: 14,\n lineHeight: 20,\n fontWeight: 'medium',\n textTransform: 'capitalize',\n },\n caption: { fontFamily: 'Roboto', fontSize: 12, lineHeight: 18, letterSpacing: 0.4 },\n overline: {\n fontFamily: 'Red Hat Display',\n fontSize: 10,\n lineHeight: 18,\n letterSpacing: 1.5,\n textTransform: 'uppercase',\n },\n paragraph: { fontFamily: 'Roboto', fontSize: 16, lineHeight: 24 },\n quote: { fontFamily: 'Roboto', fontSize: 16, lineHeight: 24 },\n note: { fontFamily: 'Roboto', fontSize: 14, lineHeight: 22, fontStyle: 'italic' },\n // Product-specific extras (were duplicated into `typefaces` before).\n badge: { fontFamily: 'Red Hat Display', fontSize: 16, lineHeight: 24 },\n // Stat-tile value: large, semibold, slightly tightened. Proportional\n // figures on purpose — tabular-nums is for columns, not display numbers.\n stat: {\n fontFamily: 'Red Hat Display',\n fontSize: 32,\n lineHeight: 38,\n fontWeight: 600,\n letterSpacing: -0.32,\n },\n tag: { fontFamily: 'Red Hat Display', fontSize: 15, lineHeight: 20, fontWeight: 600 },\n input: { fontFamily: 'Red Hat Display', fontSize: 14, lineHeight: 24 },\n} as Record<TextRole, TextStyle> & Record<string, TextStyle>;\n\n// ==========================================\n// Shared token scales — theme-agnostic.\n// ==========================================\nconst BaseShadows: Shadows = {\n raised:\n 'rgba(0, 0, 0, 0.2) 0px 2px 1px -1px, rgba(0, 0, 0, 0.14) 0px 1px 1px 0px, rgba(0, 0, 0, 0.12) 0px 1px 3px 0px',\n menu: 'rgba(0, 0, 0, 0.2) 0px 3px 3px -2px, rgba(0, 0, 0, 0.14) 0px 3px 4px 0px, rgba(0, 0, 0, 0.12) 0px 1px 8px 0px;',\n dialog:\n 'rgba(0, 0, 0, 0.2) 0px 3px 5px -1px, rgba(0, 0, 0, 0.14) 0px 6px 10px 0px, rgba(0, 0, 0, 0.12) 0px 1px 18px 0px',\n warn: '0 0 5px rgba(255, 0, 0, 0.5), inset 0 0 5px rgba(255, 0, 0, 0.3)',\n};\n\nconst BaseSpacing: Spacing = {\n none: 'none',\n xxs: '2px',\n xs: '4px',\n sm: '8px',\n md: '16px',\n lg: '32px',\n xl: '64px',\n};\n\nconst BaseThicknesses: Thicknesses = { thin: 1, standard: 2, thick: 4 };\n\nconst BaseRadii: Radii = {\n none: 'none',\n xxs: '4px',\n xs: '8px',\n sm: '16px',\n md: '24px',\n lg: '32px',\n max: '999px',\n};\n\n// ==========================================\n// Color-derived token builders — the reason a custom theme\n// only has to supply `colors`.\n// ==========================================\nconst buildBorders = (c: Colors): Borders => ({\n primary: `1px solid ${c.primary}`,\n secondary: `1px solid ${c.secondary}`,\n tertiary: `1px solid ${c.tertiary}`,\n quaternary: `1px solid ${c.quaternary}`,\n warn: `1px solid ${c.warn}`,\n success: `1px solid ${c.success}`,\n light: `1px solid ${c.outline}`,\n dark: `1px solid ${c['on-background']}`,\n dotted: `1px dotted ${c['on-background']}`,\n});\n\nconst buildComponents = (c: Colors): ComponentThemes => ({\n alert: {\n options: { topPosition: 40, borderRadius: 'sm', transitionSpeed: 0.35, elevation: 'md' },\n },\n // Trail typography, link/current colors, separator symbol and spacing are\n // tokens; the current page reads in the stronger ink.\n breadcrumb: {\n options: {\n typeface: 'label',\n color: 'on-background-variant',\n currentColor: 'on-background',\n separatorSymbol: 'chevron_right',\n gap: 'xs',\n },\n },\n // App shell: bar surface, divider, title type and spacing are all tokens.\n appBar: {\n options: {\n color: 'surface',\n height: 56,\n divider: 'light',\n typeface: 'title-large',\n padding: 'md',\n gap: 'md',\n elevation: undefined,\n },\n },\n // Navigation drawer: shares the dialog's native-<dialog> machinery in\n // 'over' mode (elevation + scrim backdrop); 'side' mode is an in-flow\n // aside separated by the divider border primitive.\n drawer: {\n options: {\n color: 'surface',\n width: 280,\n divider: 'light',\n elevation: 'menu',\n padding: 'md',\n backdrop: { background: 'rgba(0, 0, 0, 0.4)' },\n },\n },\n // Initials/icon avatars color from the role's container tokens; the radius\n // token makes them circles by default and squares under a 'sharp' theme.\n avatar: {\n options: { borderRadius: 'max', typeface: 'subtitle-2', fallbackSymbol: 'person' },\n variants: {\n primary: { backgroundColor: c['primary-container'], color: c['on-primary-container'] },\n secondary: { backgroundColor: c['secondary-container'], color: c['on-secondary-container'] },\n tertiary: { backgroundColor: c['tertiary-container'], color: c['on-tertiary-container'] },\n quaternary: { backgroundColor: c['surface-variant'], color: c['on-surface-variant'] },\n warn: { backgroundColor: c['warn-container'], color: c['on-warn-container'] },\n success: { backgroundColor: c['success-container'], color: c['on-success-container'] },\n },\n sizes: {\n sm: { height: 24, width: 24, fontSize: 10 },\n md: { height: 32, width: 32, fontSize: 13 },\n lg: { height: 40, width: 40, fontSize: 16 },\n xl: { height: 56, width: 56, fontSize: 22 },\n },\n },\n // Overlap is a spacing token; the ring separates stacked avatars using the\n // surface color so groups read on any background.\n avatarGroup: { options: { overlap: 'sm', ringColor: 'surface', ringWidth: 2 } },\n // Search field: chrome comes from the shared `input` options via\n // uni-input-box; these tokens style the affordances and suggestion list.\n searchInput: {\n options: {\n searchSymbol: 'search',\n clearSymbol: 'close',\n listColor: 'primary-surface',\n listShadow: 'menu',\n listBorderRadius: 'xs',\n maxSuggestions: 8,\n },\n },\n // Selection controls: chrome colors are tokens (accent fill/ring follows the\n // component's variant; its on-color pairs are derived in the component).\n checkbox: { options: { size: 20, boxColor: 'surface' } },\n radio: { options: { size: 20, ringColor: 'outline', fillColor: 'surface' } },\n dialog: {\n options: {\n borderRadius: 'lg',\n color: 'primary-surface',\n border: 'quaternary',\n padding: 'sm',\n elevation: 'dialog',\n backdrop: { background: 'rgba(255, 255, 255, 0.6)', backdropFilter: 'blur(2px)' },\n },\n },\n dialogHeader: {\n options: {\n borderRadius: 'max',\n color: 'primary',\n height: 48,\n textRole: 'title-large',\n textAlign: 'center',\n closeButtonIcon: 'close',\n closeButtonSize: 'md',\n },\n },\n dropdown: {\n options: { border: 'none', borderRadius: 'xxs', color: 'primary-surface', shadow: 'menu' },\n },\n footer: { options: { height: 52, color: 'primary', logoHeight: 18.6, logoPadding: 'md' } },\n input: {\n options: {\n typeFace: 'input',\n color: 'primary-surface',\n textColor: 'on-primary-surface',\n disabledColor: 'disabled-surface',\n disabledTextColor: 'on-disabled-surface',\n border: 'light',\n borderRadius: 'xs',\n errorShadow: 'warn',\n errorBorder: 'warn',\n height: 32,\n paddingLeft: 'sm',\n focusOutline: `2px solid ${c.primary}`,\n focusOutlineOffset: 2,\n },\n },\n // Field chrome (color/border/typeface/focus) comes from the shared `input`\n // options via uni-input-box; these are the textarea-specific behaviors.\n textarea: { options: { rows: 3, resize: 'vertical' } },\n // Every visual knob is a token, so a theme can turn the default underline\n // tabs into pills (borderRadius 'max' + activeColor) or restyle the\n // indicator without touching component code.\n tabs: {\n options: {\n typeface: 'title-small',\n textColor: 'on-surface-variant',\n activeTextColor: 'primary',\n indicatorColor: 'primary',\n indicatorThickness: 'standard',\n divider: 'light',\n gap: 'sm',\n borderRadius: 'none',\n padding: 'md',\n activeColor: undefined,\n },\n },\n multiSelectDropdown: {\n options: {\n textRole: 'input',\n textColor: 'on-primary-surface',\n dividerBorder: 'light',\n searchInputBorder: 'light',\n searchInputBorderRadius: 'xxs',\n focusOutline: `2px solid ${c.primary}`,\n focusOutlineOffset: 2,\n },\n },\n badge: { options: { borderRadius: 'xxs' } },\n\n // ---- Buttons: variants are structural archetypes with interaction states ----\n button: {\n // Radius and typeface are tokens, not baked values: `max` renders the\n // classic pill and the type scale's `button` role carries the label\n // typography, so shape languages, custom radii, and typography edits\n // restyle every button by re-pointing or redefining a token.\n options: { borderRadius: 'max', typeface: 'button' },\n fixed: {\n position: 'relative',\n overflow: 'hidden',\n outline: '0',\n border: '0',\n cursor: 'pointer',\n transition: 'all 0.28s ease',\n },\n variants: {\n ghost: {\n backgroundColor: 'transparent',\n color: 'currentcolor',\n '&:hover': { backgroundColor: 'rgba(0,0,0,0.06)' },\n },\n // Solid\n primary: {\n backgroundColor: c.primary,\n color: c['on-primary'],\n border: '0',\n '&:hover': { filter: 'brightness(0.92)' },\n },\n // Hollow\n secondary: {\n backgroundColor: 'transparent',\n color: c.secondary,\n border: `1px solid ${c.secondary}`,\n '&:hover': { backgroundColor: c.secondary, color: c['on-secondary'] },\n },\n // Solid\n tertiary: {\n backgroundColor: c.tertiary,\n color: c['on-tertiary'],\n border: '0',\n '&:hover': { filter: 'brightness(0.92)' },\n },\n warn: {\n backgroundColor: c.warn,\n color: c['on-warn'],\n border: '0',\n '&:hover': { filter: 'brightness(0.92)' },\n },\n success: {\n backgroundColor: c.success,\n color: c['on-success'],\n border: '0',\n '&:hover': { filter: 'brightness(0.92)' },\n },\n disabled: {\n backgroundColor: `${c.disabled} !important`,\n color: `${c['on-disabled']} !important`,\n border: '0',\n },\n },\n // Sizes are geometry only (height/padding/fontSize); families, weights and\n // transforms come from the `typeface` option's type-scale role.\n sizes: {\n sm: { height: 22, fontSize: 12, padding: '0 12px', fontWeight: 600 },\n md: { height: 26, fontSize: 16, padding: '0 16px' },\n lg: { height: 36, fontSize: 18, padding: '0 18px' },\n xl: { height: 48, fontSize: 24, padding: '0 22px' },\n },\n },\n iconButton: {\n options: { borderRadius: 'max' },\n variants: {\n ghost: { backgroundColor: 'transparent', color: 'currentcolor' },\n primary: { backgroundColor: c.primary, color: c['on-primary'] },\n secondary: { backgroundColor: c.secondary, color: c['on-secondary'] },\n tertiary: { backgroundColor: c.tertiary, color: c['on-tertiary'] },\n warn: { backgroundColor: c.warn, color: c['on-warn'] },\n success: { backgroundColor: c.success, color: c['on-success'] },\n disabled: {\n backgroundColor: 'transparent !important',\n color: `${c['on-disabled']} !important`,\n },\n },\n sizes: {\n sm: { height: 22, minHeight: 22, width: 22, minWidth: 22, fontSize: 18 },\n md: { height: 26, minHeight: 26, width: 26, minWidth: 26, fontSize: 22 },\n lg: { height: 36, minHeight: 36, width: 36, minWidth: 36, fontSize: 30 },\n xl: { height: 40, minHeight: 40, width: 40, minWidth: 40, fontSize: 34 },\n },\n },\n progressGauge: {\n fixed: { textFill: c['on-background'] },\n // Track = the role's container token (the palette's soft tint of that\n // role), arc = the role base — so gauges follow any brand palette instead\n // of the fixed pastels they used to hardcode.\n variants: {\n primary: { backgroundColor: c['primary-container'], color: c.primary },\n secondary: { backgroundColor: c['secondary-container'], color: c.secondary },\n tertiary: { backgroundColor: c['tertiary-container'], color: c.tertiary },\n warn: { backgroundColor: c['warn-container'], color: c.warn },\n success: { backgroundColor: c['success-container'], color: c.success },\n },\n sizes: {\n sm: { height: '54px' },\n md: { height: '68px' },\n lg: { height: '82px' },\n xl: { height: '104px' },\n },\n },\n card: {\n // The frame is tokens: the border primitive named by the active variant\n // (borders.primary … borders.success — override with `border` to pin all\n // cards to one primitive, e.g. a custom 'brush-stroke'), the radii scale\n // (`xs` = the classic 8px), and an optional elevation shadow.\n options: { borderRadius: 'xs' },\n fixed: { overflow: 'hidden', backgroundColor: c.background },\n },\n cardHeader: {\n fixed: { padding: '12px 24px' },\n variants: {\n primary: { backgroundColor: c.primary, color: c['on-primary'] },\n secondary: { backgroundColor: c.secondary, color: c['on-secondary'] },\n tertiary: { backgroundColor: c.tertiary, color: c['on-tertiary'] },\n warn: { backgroundColor: c.warn, color: c['on-warn'] },\n success: { backgroundColor: c.success, color: c['on-success'] },\n },\n },\n cardContent: { fixed: { padding: '12px 24px' } },\n dataSearch: {\n options: {\n border: 'light',\n borderRadius: 'xs',\n color: 'primary-surface',\n placeholderColor: 'disabled',\n },\n },\n dataTable: {\n options: {\n color: 'primary-surface',\n border: 'light',\n borderRadius: 'sm',\n elevation: undefined,\n headerPadding: 'sm',\n footerPadding: 'sm',\n thTextRole: 'headline-small',\n thColor: 'primary-container',\n thVerticalBorder: 'dotted',\n thHorizontalBorder: 'light',\n thPadding: 'sm',\n tdTextRole: 'title-small',\n tdColor: 'primary-surface',\n tdStickyColor: 'primary-container',\n tdPadding: 'sm',\n tdVerticalBorder: 'dotted',\n tdHorizontalBorder: 'light',\n rowHoverColor: 'primary-container',\n loadingOverlayColor: 'scrim',\n loadingSpinnerColor: 'primary',\n loadingSpinnerSize: 40,\n },\n },\n notificationBadge: { options: { borderRadius: 'sm', offset: -10 } },\n paginator: {\n options: {\n gap: 'xs',\n textRole: 'label',\n inputBorder: 'light',\n inputBorderRadius: 'xs',\n pageBorderRadius: 'xs',\n currentPageBorder: 'light',\n currentPageBorderRadius: 'xs',\n },\n },\n // KPI tile: card-recipe frame, muted label over a large `stat`-role value;\n // delta inks are the semantic success/error (direction × goodness decided\n // by the component); sparkline in the outline hue, endpoint in the accent.\n stat: {\n options: {\n labelTypeface: 'label',\n valueTypeface: 'stat',\n color: 'surface',\n border: 'light',\n borderRadius: 'xs',\n positiveColor: 'success',\n negativeColor: 'error',\n trendColor: 'outline',\n trendAccent: 'primary',\n padding: 'md',\n gap: 'xxs',\n },\n },\n // Range input: fill/thumb in the accent, track in the muted surface, both\n // radius-tokened — geometry knobs are plain numbers.\n slider: {\n options: {\n color: 'primary',\n trackColor: 'surface-variant',\n borderRadius: 'max',\n trackHeight: 4,\n thumbSize: 16,\n },\n },\n // Loading placeholders paint with surface tokens so they sit naturally on\n // any theme; the shimmer highlight sweeps in the lighter surface color.\n skeleton: {\n options: {\n color: 'surface-variant',\n highlightColor: 'surface',\n borderRadius: 'xs',\n animation: 'shimmer',\n duration: 1.4,\n gap: 'sm',\n },\n },\n snackbar: {\n options: { bottomPosition: 40, transitionDelay: '0.35s', autoCloseDelay: 35000 },\n },\n symbol: { options: { fill: 0, weight: 400, grade: 0, opticalSize: 24 } },\n toggle: { options: { size: 20, trackColor: 'surface-variant', knobColor: 'surface' } },\n tooltip: {\n options: {\n border: undefined,\n borderRadius: 'xs',\n shadow: 'raised',\n color: 'inverse-surface',\n typeface: 'label',\n },\n },\n});\n\n// ==========================================\n// Theme factory. A custom theme = a name + a `colors` map.\n// Everything color-dependent (borders, component variants) is derived;\n// `borders`/`components` overrides deep-merge over the derived defaults, so a\n// theme file can define its own named primitives and rewire per-component\n// options without restating anything it doesn't touch.\n// ==========================================\nexport interface ThemeConfig {\n id: string;\n name: string;\n colors: Colors;\n /**\n * Named icon primitives (inline SVG data URIs, masked with `currentColor`),\n * merged over {@link BaseIcons}. Add or override under any name; components\n * render them by token via the icon component, never by inlining SVG.\n */\n icons?: Icons;\n /** Override the radii scale, e.g. a generated shape-language preset. */\n radii?: Radii;\n /** Override the elevation shadows, e.g. brand-tinted generated stacks. */\n shadows?: Shadows;\n /**\n * Named border primitives, merged over the derived defaults. New tokens may\n * use any name — point component options (or `components` overrides) at\n * them and every consumer of the shared token picks up the change.\n */\n borders?: Borders;\n /**\n * Sparse per-component overrides, deep-merged over the derived component\n * themes: only the sections you provide (fixed/variants/sizes/options keys)\n * are replaced; everything else keeps tracking the library defaults.\n */\n components?: ComponentThemes;\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst deepMerge = <T>(base: T, override: Partial<T> | undefined): T => {\n if (!override) return base;\n const out = { ...base } as Record<string, unknown>;\n for (const [key, value] of Object.entries(override)) {\n out[key] = isRecord(value) && isRecord(out[key]) ? deepMerge(out[key], value) : value;\n }\n return out as T;\n};\n\nexport const createTheme = ({\n id,\n name,\n colors,\n icons = {},\n radii = BaseRadii,\n shadows = BaseShadows,\n borders,\n components,\n}: ThemeConfig): UniTheme => ({\n id,\n name,\n colors,\n typography: BaseTypography,\n borders: deepMerge(buildBorders(colors), borders),\n radii,\n shadows,\n spacing: BaseSpacing,\n thicknesses: BaseThicknesses,\n icons: { ...BaseIcons, ...icons },\n components: deepMerge(buildComponents(colors), components),\n});\n\n/**\n * Build a full {@link UniTheme} straight from a {@link PaletteConfig} — the\n * one-call path a theme builder uses to turn a brand color (or a seed +\n * scheme + category) into a complete, ready-to-apply theme.\n */\nexport const createThemeFromPalette = (\n config: GenerateColorsConfig & { id?: string; name?: string; icons?: Icons; radii?: Radii }\n): UniTheme => {\n const colors = generatePalette(config);\n return createTheme({\n id: config.id ?? 'CustomTheme',\n name: config.name ?? 'Custom Theme',\n colors,\n radii: config.radii,\n shadows: generateShadows(colors, config.mode ?? 'light'),\n icons: config.icons,\n });\n};\n\n/**\n * Seed for the shipped Light/Dark themes. Swap these three values (or call\n * `generatePalette` with your own) to reskin the entire system — every color\n * token is derived, so there is nothing else to hand-author.\n */\nexport const BASE_PALETTE_CONFIG: Pick<PaletteConfig, 'seed' | 'scheme' | 'category'> = {\n seed: '#4F46E5', // indigo\n scheme: 'triadic',\n category: 'neutral',\n};\n\nexport const lightColors: Colors = generatePalette({ ...BASE_PALETTE_CONFIG, mode: 'light' });\n\nexport const BaseTheme: UniTheme = createTheme({\n id: 'BaseTheme',\n name: 'Base Theme',\n colors: lightColors,\n});\n","import type { ColorCategory, ColorScheme } from '../color/color.types';\nimport type { Radii, UniTheme } from '../theme/theme.model';\nimport type { BrandRole } from '../color/color.factory';\nimport { createTheme } from '../theme/themes/base.theme';\nimport { hexToOklch, oklchToHex } from './oklch.helper';\nimport { CategoryChroma, generateColors } from './palette.factory';\nimport { generateShadows } from './shadow.generator';\nimport type {\n ContrastCheck,\n GeneratedThemeConfig,\n GenerationInput,\n ThemeShape,\n} from './generation.types';\n\n/** Radii presets per shape language (PRD §3.5.A). Same keys as `BaseRadii`. */\nexport const ShapeRadii: Record<ThemeShape, Radii> = {\n sharp: { none: 'none', xxs: '0px', xs: '0px', sm: '0px', md: '0px', lg: '0px', max: '0px' },\n modern: { none: 'none', xxs: '4px', xs: '8px', sm: '16px', md: '24px', lg: '32px', max: '999px' },\n playful: { none: 'none', xxs: '8px', xs: '16px', sm: '24px', md: '32px', lg: '48px', max: '9999px' },\n};\n\n/** Shortest angular distance between two hue angles, in degrees (0–180). */\nconst hueDistance = (a: number, b: number): number => {\n const d = Math.abs(a - b) % 360;\n return d > 180 ? 360 - d : d;\n};\n\n/**\n * Classify 2–3 brand hues against {@link ColorScheme} by their angular\n * distances from the primary hue. Heuristic bands, widest match wins.\n */\nexport const classifyScheme = (primaryHue: number, otherHues: number[]): ColorScheme => {\n const distances = otherHues.map((h) => hueDistance(primaryHue, h));\n if (distances.length === 0) return 'analogous';\n if (distances.every((d) => d < 15)) return 'monochromatic';\n if (distances.every((d) => d <= 65)) return 'analogous';\n if (distances.some((d) => d >= 165)) return 'complimentary';\n if (distances.length > 1 && distances.every((d) => d >= 130)) return 'splitComplimentary';\n return 'triadic';\n};\n\n/**\n * Infer a tonal category from the seed's own chroma, so an unstated \"vibe\"\n * preserves the brand's character — vivid stays vivid, muted stays muted.\n */\nexport const inferCategory = (seedHex: string): ColorCategory => {\n const { c } = hexToOklch(seedHex);\n if (c >= 0.13) return 'jewel';\n if (c >= 0.07) return 'earth';\n if (c >= 0.03) return 'pastel';\n return 'neutral';\n};\n\n/**\n * The theme generation engine (PRD §3.3): brand seed(s) in, complete WCAG-AA\n * light+dark {@link Colors} pair out, with a machine-readable contrast report.\n * Pure and deterministic — identical input yields identical output.\n */\nexport const generateThemes = (input: GenerationInput): GeneratedThemeConfig => {\n const seeds = (Array.isArray(input.seed) ? input.seed : [input.seed]).slice(0, 3);\n const [primary, secondary, tertiary] = seeds;\n const scheme =\n input.scheme ??\n (seeds.length > 1\n ? classifyScheme(hexToOklch(primary).h, seeds.slice(1).map((s) => hexToOklch(s).h))\n : 'analogous');\n const category = input.vibe ?? inferCategory(primary);\n\n // Seeds pass through as soft targets with their own chroma (brand fidelity).\n // Only an *explicit* vibe caps them to the category's chroma ceiling.\n const applyVibe = (hex: string): string => {\n if (!input.vibe) return hex;\n const color = hexToOklch(hex);\n return oklchToHex({ ...color, c: Math.min(color.c, CategoryChroma[input.vibe]) });\n };\n const targets: Partial<Record<BrandRole, string>> = { primary: applyVibe(primary) };\n if (secondary) targets.secondary = applyVibe(secondary);\n if (tertiary) targets.tertiary = applyVibe(tertiary);\n\n const checks: ContrastCheck[] = [];\n const base = { seed: primary, scheme, category, targets, checks };\n const lightColors = generateColors({ ...base, mode: 'light' });\n const darkColors = generateColors({ ...base, mode: 'dark' });\n\n const worstRatio = checks.reduce((worst, check) => Math.min(worst, check.ratio), 21);\n return {\n lightColors,\n darkColors,\n radii: input.shape ? ShapeRadii[input.shape] : undefined,\n lightShadows: generateShadows(lightColors, 'light'),\n darkShadows: generateShadows(darkColors, 'dark'),\n report: { checks, worstRatio, pass: checks.every((check) => check.pass) },\n };\n};\n\n/**\n * Convenience wrapper: {@link generateThemes} piped through `createTheme()`,\n * returning a registration-ready light/dark {@link UniTheme} pair.\n */\nexport const generateUniThemes = (input: GenerationInput): { light: UniTheme; dark: UniTheme } => {\n const { lightColors, darkColors, radii, lightShadows, darkShadows } = generateThemes(input);\n const name = input.name ?? 'Brand';\n const id = name.replace(/\\W+/g, '') || 'Brand';\n return {\n light: createTheme({\n id: `${id}Light`,\n name: `${name} Light`,\n colors: lightColors,\n radii,\n shadows: lightShadows,\n }),\n dark: createTheme({\n id: `${id}Dark`,\n name: `${name} Dark`,\n colors: darkColors,\n radii,\n shadows: darkShadows,\n }),\n };\n};\n","import type { Colors, Shadows } from '../theme/theme.model';\nimport { generateThemes } from './theme.generator';\nimport type { ContrastReport, GenerationInput } from './generation.types';\n\nexport interface ThemeFileInput extends GenerationInput {\n /** Emit the dark theme alongside the light one. Defaults to true. */\n darkMode?: boolean;\n}\n\n/** A rendered static theme file plus everything a consumer needs to wire it. */\nexport interface EmittedThemeFile {\n /** TypeScript source for a static `uni-theme.ts` — plain, reviewable data. */\n content: string;\n /** Registration snippet for the consumer's `app.config.ts`. */\n providerSnippet: string;\n report: ContrastReport;\n /** One-line human summary of the contrast report. */\n reportSummary: string;\n}\n\nconst IDENT = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\nconst asKey = (k: string): string => (IDENT.test(k) ? k : `'${k}'`);\n\nconst recordLiteral = (record: Record<string, string | undefined>, indent: string): string =>\n Object.entries(record)\n .map(([k, v]) => `${indent}${asKey(k)}: '${v}',`)\n .join('\\n');\n\n// The derived border primitives, spelled out as template literals over the\n// colors const — visible, editable, and edits to a color propagate. Access is\n// bracket-only: `Colors` carries an index signature, and consumer tsconfigs\n// with `noPropertyAccessFromIndexSignature` (ng new strict default) reject\n// dot access on it.\nconst bordersLiteral = (): string =>\n [\n '/**',\n ' * Named border primitives. These mirror the derived defaults — edit them, or',\n ' * add your own under any token name and point component options (or the',\n ' * `components` overrides below) at it. Every component deriving from a',\n ' * shared token picks up the change.',\n ' */',\n 'const borders = (colors: Colors): Borders => ({',\n \" primary: `1px solid ${colors['primary']}`,\",\n \" secondary: `1px solid ${colors['secondary']}`,\",\n \" tertiary: `1px solid ${colors['tertiary']}`,\",\n \" quaternary: `1px solid ${colors['quaternary']}`,\",\n \" warn: `1px solid ${colors['warn']}`,\",\n \" success: `1px solid ${colors['success']}`,\",\n \" light: `1px solid ${colors['outline']}`,\",\n \" dark: `1px solid ${colors['on-background']}`,\",\n \" dotted: `1px dotted ${colors['on-background']}`,\",\n '});',\n ].join('\\n');\n\nconst themeExport = (\n exportName: string,\n displayName: string,\n colorsConst: string,\n shadowsConst: string,\n radii: boolean\n): string =>\n [\n `export const ${exportName}: UniTheme = createTheme({`,\n ` id: '${exportName}',`,\n ` name: '${displayName}',`,\n ` colors: ${colorsConst},`,\n ` borders: borders(${colorsConst}),`,\n ` components: components(${colorsConst}),`,\n ` shadows: ${shadowsConst},`,\n ' icons,',\n ...(radii ? [' radii,'] : []),\n '});',\n ].join('\\n');\n\n/**\n * Render a static `uni-theme.ts` from a brand seed — the file the `ng add`\n * schematic writes and the MCP `generate_uni_theme` tool returns.\n *\n * The file is the system's **source of truth**: literal colors, the border\n * primitives spelled out, and a sparse `components` override section — so a\n * human (or an AI agent) can retheme by editing tokens in place, with no\n * runtime generation. Deterministic: same input, same file.\n */\nexport const emitThemeFile = (input: ThemeFileInput): EmittedThemeFile => {\n const { darkMode = true, name = 'Brand' } = input;\n const { lightColors, darkColors, radii, lightShadows, darkShadows, report } = generateThemes(input);\n const id = (name.replace(/\\W+/g, '') || 'Brand') as string;\n\n const seeds = Array.isArray(input.seed) ? input.seed : [input.seed];\n const regenerate = [\n `--brand=${seeds.join(',')}`,\n input.vibe && `--vibe=${input.vibe}`,\n input.scheme && `--scheme=${input.scheme}`,\n input.shape && `--shape=${input.shape}`,\n !darkMode && '--dark-mode=false',\n ]\n .filter(Boolean)\n .join(' ');\n\n const reportSummary = `${report.checks.length} contrast pairs checked · worst ${report.worstRatio}:1 · ${\n report.pass ? 'all AA' : `${report.checks.filter((c) => !c.pass).length} failing`\n }`;\n\n const modes: {\n exportName: string;\n displayName: string;\n colorsConst: string;\n colors: Colors;\n shadowsConst: string;\n shadows: Shadows;\n }[] = [\n {\n exportName: `${id}Light`,\n displayName: `${name} Light`,\n colorsConst: 'lightColors',\n colors: lightColors,\n shadowsConst: 'lightShadows',\n shadows: lightShadows,\n },\n ...(darkMode\n ? [\n {\n exportName: `${id}Dark`,\n displayName: `${name} Dark`,\n colorsConst: 'darkColors',\n colors: darkColors,\n shadowsConst: 'darkShadows',\n shadows: darkShadows,\n },\n ]\n : []),\n ];\n\n const content = [\n '/**',\n ` * ${name} theme for Uni — generated data, yours to edit.`,\n ' *',\n ` * Regenerate colors: ng add @uni-design-system/uni-angular ${regenerate}`,\n ' * (or the `generate-uni-theme` MCP tool). Edits are never overwritten silently —',\n ' * regeneration rewrites this file, so commit before regenerating.',\n ` * ${reportSummary}.`,\n ' */',\n 'import {',\n ' createTheme,',\n ' type Borders,',\n ' type Colors,',\n ' type ComponentThemes,',\n ' type Icons,',\n ' type Shadows,',\n ' type UniTheme,',\n \"} from '@uni-design-system/uni-core';\",\n '',\n ...modes.map(({ colorsConst, colors }) => `const ${colorsConst}: Colors = {\\n${recordLiteral(colors as Record<string, string>, ' ')}\\n};\\n`),\n '/** Brand-tinted elevation shadows — theme-scoped, edit freely. */',\n ...modes.map(({ shadowsConst, shadows }) => `const ${shadowsConst}: Shadows = {\\n${recordLiteral(shadows as Record<string, string>, ' ')}\\n};\\n`),\n bordersLiteral(),\n '',\n '/**',\n ' * Sparse component overrides, deep-merged over Uni component defaults: only',\n ' * what you write here changes. Point components at your own primitives, e.g.:',\n \" * button: { variants: { secondary: { border: `2px dashed ${colors['tertiary']}` } } },\",\n \" * input: { options: { borderRadius: 'max' } },\",\n ' */',\n 'const components = (colors: Colors): ComponentThemes => ({});',\n '',\n '/**',\n ' * Icon primitives, merged over the built-in set (close, search, spinner,',\n ' * chevrons, …). Define an icon ONCE here as an inline SVG data URI — it is',\n ' * masked with currentColor, so it recolors with the theme — and render it',\n \" * anywhere via `<uni-icon name='…'/>`. Never inline SVG in components.\",\n \" * Example: logo: \\\"data:image/svg+xml,%3Csvg xmlns='…' viewBox='0 0 24 24'%3E…%3C/svg%3E\\\",\",\n ' */',\n 'const icons: Icons = {};',\n '',\n ...(radii\n ? [`/** Shape language: '${input.shape}'. */`, `const radii = {\\n${recordLiteral(radii as Record<string, string>, ' ')}\\n};`, '']\n : []),\n ...modes.map(\n ({ exportName, displayName, colorsConst, shadowsConst }) =>\n `${themeExport(exportName, displayName, colorsConst, shadowsConst, !!radii)}\\n`\n ),\n '/** First key wins as the default theme when registered via UNI_THEMES. */',\n `export const ${id}Themes = { ${modes.map((m) => m.exportName).join(', ')} };`,\n '',\n ].join('\\n');\n\n const providerSnippet = [\n `import { UNI_THEMES } from '@uni-design-system/uni-angular';`,\n `import { ${id}Themes } from './uni-theme';`,\n '',\n '// app.config.ts → providers:',\n `{ provide: UNI_THEMES, useValue: ${id}Themes },`,\n ].join('\\n');\n\n return { content, providerSnippet, report, reportSummary };\n};\n","import { Gradient } from './gradient.model';\n\nexport function gradient(config: Gradient): string {\n return ``;\n}\n","import { Size } from '../core.types';\nimport { DeviceOrientation } from './layout.types';\n\nexport function getDeviceSize(height: number, width: number): Size {\n if (!height || !width) return 'md';\n\n const max = Math.max(height, width);\n\n if (max <= 600)\n // Small Mobile\n return 'xs';\n\n if (max <= 960)\n // Large Mobile\n return 'sm';\n\n if (max <= 1264)\n // Tablets\n return 'md';\n\n if (max <= 1904)\n // Laptops & Monitors\n return 'lg';\n\n return 'xl'; // Large Monitors\n}\n\nexport function getDeviceOrientation(height: number, width: number): DeviceOrientation {\n if (!height || !width) return 'landscape';\n\n return height > width ? 'portrait' : 'landscape';\n}\n","import { BoxShadow, ShadowDefinition } from './shadow.model';\n\n// box-shadow: none|h-offset v-offset blur spread color\nexport const GetBoxShadow = ({ offset, blur, opacity }: BoxShadow): string => {\n return `0 ${offset}px ${blur}px rgba(0,0,0,0.${opacity})`;\n};\n\nexport const GetBoxShadows = ({ umbra, penumbra }: ShadowDefinition): string => {\n return GetBoxShadow(umbra) + ', ' + GetBoxShadow(penumbra);\n};\n","import { ShadowDefinition } from './shadow.model';\nimport { ShadowElevation } from './shadow.types';\nimport { GetBoxShadows } from './shadow.utils';\n\nexport const ShadowMap: Record<ShadowElevation, ShadowDefinition> = {\n pressed: {\n umbra: {\n offset: 1,\n blur: 2,\n opacity: 24,\n },\n penumbra: {\n offset: 1,\n blur: 3,\n opacity: 12,\n },\n },\n raised: {\n umbra: {\n offset: 3,\n blur: 6,\n opacity: 23,\n },\n penumbra: {\n offset: 3,\n blur: 6,\n opacity: 16,\n },\n },\n focussed: {\n umbra: {\n offset: 6,\n blur: 6,\n opacity: 23,\n },\n penumbra: {\n offset: 10,\n blur: 20,\n opacity: 19,\n },\n },\n navigation: {\n umbra: {\n offset: 10,\n blur: 10,\n opacity: 22,\n },\n penumbra: {\n offset: 14,\n blur: 28,\n opacity: 25,\n },\n },\n modal: {\n umbra: {\n offset: 15,\n blur: 12,\n opacity: 22,\n },\n penumbra: {\n offset: 19,\n blur: 38,\n opacity: 30,\n },\n },\n};\n\nexport const ShadowCssMap: Record<ShadowElevation, string> = {\n pressed: GetBoxShadows(ShadowMap['pressed']),\n raised: GetBoxShadows(ShadowMap['raised']),\n focussed: GetBoxShadows(ShadowMap['focussed']),\n navigation: GetBoxShadows(ShadowMap['navigation']),\n modal: GetBoxShadows(ShadowMap['modal']),\n};\n","import type { StyleExpression } from './style.types';\n\nexport const removeInputPlatformStyling: StyleExpression = {\n appearance: 'none' /* Removes default platform styling */,\n background: 'none' /* Removes default background */,\n border: 'none' /* Removes default gray border */,\n outline: 'none' /* Removes default focus ring */,\n boxShadow: 'none' /* Removes any inner shadows on iOS */,\n padding: 0 /* Resets default spacing */,\n width: '100%' /* Makes it fill the stylized div */,\n};\n","import type { Colors } from '../theme.model';\nimport { generatePalette } from '../../color';\nimport { generateShadows } from '../../generation/shadow.generator';\nimport { BASE_PALETTE_CONFIG, createTheme } from './base.theme';\n\nexport const darkColors: Colors = generatePalette({ ...BASE_PALETTE_CONFIG, mode: 'dark' });\n\nexport const DarkTheme = createTheme({\n id: 'DarkTheme',\n name: 'Dark Theme',\n colors: darkColors,\n shadows: generateShadows(darkColors, 'dark'),\n});\n","import { generateShadows } from '../../generation/shadow.generator';\nimport { createTheme, lightColors } from './base.theme';\n\nexport const LightTheme = createTheme({\n id: 'LightTheme',\n name: 'Light Theme',\n colors: lightColors,\n shadows: generateShadows(lightColors, 'light'),\n});\n","import { type UniTheme } from './theme.model';\nimport { DarkTheme } from './themes/dark.theme';\nimport { LightTheme } from './themes/light.theme';\n\nexport const UniThemes: Record<string, UniTheme> = {\n LightTheme,\n DarkTheme,\n};\n\n// First Theme is default.\nexport const DefaultThemeId = Object.keys(UniThemes)[0];\n","import { FontWeight } from './typography.types';\n\nexport const FontWeightMap: Record<FontWeight, number> = {\n thin: 100,\n 'extra-light': 200,\n light: 200,\n normal: 400,\n medium: 500,\n 'semi-bold': 600,\n bold: 700,\n 'extra-bold': 800,\n black: 900,\n 'extra-black': 950,\n};\n","import type { TextStyle, TypeFaceDefinition } from './text.model';\n\nconst px = (value: number): string => `${value}px`;\n\n/**\n * Converts a TextStyle (numeric, design-token oriented) into a\n * TypeFaceDefinition (CSS-ready) so a theme's `typefaces` map can be\n * derived from its `typography` block instead of being duplicated.\n */\nexport const toTypeface = (style: TextStyle): TypeFaceDefinition => ({\n fontFamily: style.fontFamily,\n fontSize: px(style.fontSize),\n lineHeight: px(style.lineHeight),\n ...(style.letterSpacing !== undefined && { letterSpacing: px(style.letterSpacing) }),\n ...(style.textTransform === 'uppercase' && { textTransform: 'uppercase' as const }),\n ...(style.fontWeight !== undefined && { fontWeight: style.fontWeight }),\n ...(style.fontStyle && { fontStyle: style.fontStyle }),\n});\n\nexport const toTypefaces = (\n typography: Record<string, TextStyle>\n): Record<string, TypeFaceDefinition> =>\n Object.fromEntries(Object.entries(typography).map(([role, style]) => [role, toTypeface(style)]));\n","import { GetFieldType } from './types';\n\nexport function getValue<TData, TPath extends string, TDefault = GetFieldType<TData, TPath>>(\n data: TData,\n path: TPath,\n defaultValue?: TDefault\n): GetFieldType<TData, TPath> | TDefault {\n const value = path\n .split(/[.[\\]]/)\n .filter(Boolean)\n .reduce<GetFieldType<TData, TPath>>((value, key) => (value as any)?.[key], data as any);\n\n return value !== undefined ? value : (defaultValue as TDefault);\n}\n","export const debounce = <T extends (...args: any[]) => ReturnType<T>>(\n callback: T,\n timeout: number\n): ((...args: Parameters<T>) => void) => {\n let timer: ReturnType<typeof setTimeout>;\n\n return (...args: Parameters<T>) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n callback(...args);\n }, timeout);\n };\n};\n","/**\n * `generate-uni-theme` — runs the uni-core OKLCH engine at tool-call time and\n * renders the static `uni-theme.ts` source. The MCP returns *file content*;\n * the calling agent writes it to disk. Per the static-theme-file direction,\n * the generated file is the system's editable source of truth — retheming\n * later means editing that file's tokens, not calling this tool again\n * (regenerate only to re-derive colors from a new brand seed).\n */\nimport { emitThemeFile, type ThemeFileInput } from '@uni-design-system/uni-core';\n\nconst HEX = /^#[0-9a-fA-F]{6}$/;\n\nexport type GenerateThemeArgs = Omit<ThemeFileInput, 'seed'> & { brand: string | string[] };\n\nexport function formatGeneratedTheme(args: GenerateThemeArgs): string {\n const seeds = (Array.isArray(args.brand) ? args.brand : [args.brand]).map((s) =>\n s.startsWith('#') ? s : `#${s}`,\n );\n const invalid = seeds.filter((s) => !HEX.test(s));\n if (invalid.length) {\n return `Invalid brand color(s): ${invalid.join(', ')}. Pass 6-digit hex values, e.g. \"#0052FF\" (1–3 colors: primary, secondary, tertiary).`;\n }\n\n const { content, providerSnippet, reportSummary, report } = emitThemeFile({\n ...args,\n seed: seeds.length === 1 ? seeds[0] : seeds,\n });\n\n const failing = report.checks.filter((c) => !c.pass);\n const failLines = failing.length\n ? `\\n\\nFailing pairs:\\n${failing.map((f) => `- ${f.mode} \\`${f.foreground}\\` on \\`${f.background}\\`: ${f.ratio}:1 (needs ${f.required}:1)`).join('\\n')}`\n : '';\n\n return [\n `# ${args.name ?? 'Brand'} theme — generated`,\n '',\n 'Write this file to `src/app/uni-theme.ts`:',\n '',\n '```ts',\n content.trimEnd(),\n '```',\n '',\n '## Register it (app.config.ts)',\n '',\n '```ts',\n providerSnippet,\n '```',\n '',\n '## Contrast report',\n '',\n `${reportSummary}.${failLines}`,\n '',\n '## Retheming later — edit the file, do not regenerate',\n '',\n 'The file above is the source of truth for the whole look and feel:',\n '- **Colors**: edit any token in the `lightColors`/`darkColors` maps; borders and every',\n ' component deriving from that token update automatically.',\n '- **Borders**: add your own primitive under any name in `borders` (e.g.',\n \" `'brush-stroke': `3px dashed ${colors['tertiary']}``) and reference it from `components`\",\n ' overrides — one edit restyles every component sharing the token. Use bracket access',\n ' on `colors` — dot access fails under `noPropertyAccessFromIndexSignature`.',\n '- **Components**: the `components` function returns sparse overrides deep-merged over',\n ' Uni defaults — set only what you change, e.g.',\n \" `button: { variants: { secondary: { border: borders(colors)['brush-stroke'] } } }`.\",\n '- **Icons**: never inline SVG in components. Define an icon ONCE in the theme file\\'s',\n ' `icons` map as an inline SVG data URI — it is masked with `currentColor`, so it',\n \" recolors with the theme — then render it anywhere with `<uni-icon name='…'/>`.\",\n ' A built-in set (close, search, spinner, chevrons, …) ships with every theme.',\n '- Never hardcode hex values in application components: style through `ThemeService`',\n ' accessors and semantic token names so themes stay swappable.',\n ].join('\\n');\n}\n"],"mappings":";;;AAKA,SAAS,WAAW,wBAAwB;AAC5C,SAAS,SAAS;;;ACNlB;AAAA,EACE,MAAQ;AAAA,IACN,SAAW;AAAA,IACX,SAAW;AAAA,IACX,YAAc;AAAA,MACZ;AAAA,IACF;AAAA,IACA,QAAU;AAAA,MACR,YAAc;AAAA,MACd,QAAU;AAAA,MACV,QAAU;AAAA,MACV,UAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,YAAc;AAAA,IACZ;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO,CAAC;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO,CAAC;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO,CAAC;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO,CAAC;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO;AAAA,UACL;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO,CAAC;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS;AAAA,UACP;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO,CAAC;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO;AAAA,UACL;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO,CAAC;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS;AAAA,UACP;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS;AAAA,UACP;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY,CAAC;AAAA,MACb,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO;AAAA,UACL;AAAA,UACA;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP;AAAA,UACA;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO;AAAA,UACL;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO,CAAC;AAAA,QACV;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO;AAAA,UACL;AAAA,QACF;AAAA,QACA,OAAS;AAAA,UACP;AAAA,QACF;AAAA,QACA,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB;AAAA,UACf;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,MACA,eAAiB;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,SAAW;AAAA,MACX,aAAe;AAAA,MACf,UAAY;AAAA,MACZ,SAAW;AAAA,MACX,UAAY;AAAA,QACV,SAAW;AAAA,UACT,YAAc;AAAA,UACd,eAAiB;AAAA,UACjB,KAAO;AAAA,YACL;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,YACA;AAAA,cACE,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,MAAQ;AAAA,cACR,UAAY;AAAA,cACZ,SAAW;AAAA,cACX,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAY;AAAA,QACV;AAAA,UACE,OAAS;AAAA,UACT,WAAa;AAAA,UACb,MAAQ;AAAA,QACV;AAAA,MACF;AAAA,MACA,YAAc;AAAA,QACZ,WAAa;AAAA,QACb,KAAO,CAAC;AAAA,QACR,OAAS,CAAC;AAAA,QACV,eAAiB,CAAC;AAAA,MACpB;AAAA,MACA,eAAiB,CAAC;AAAA,IACpB;AAAA,EACF;AAAA,EACA,QAAU;AAAA,IACR;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,OAAS;AAAA,MACT,MAAQ;AAAA,MACR,MAAQ;AAAA,MACR,QAAU;AAAA,MACV,WAAa;AAAA,MACb,aAAe;AAAA,QACb,YAAc;AAAA,QACd,WAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AAAA,EACA,QAAU;AAAA,IACR;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,aAAe;AAAA,MACf,gBAAkB;AAAA,QAChB,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,QACpB,2BAA2B;AAAA,QAC3B,8BAA8B;AAAA,QAC9B,sCAAsC;AAAA,QACtC,qCAAqC;AAAA,QACrC,yBAAyB;AAAA,QACzB,4BAA4B;AAAA,QAC5B,oCAAoC;AAAA,QACpC,mBAAmB;AAAA,QACnB,sBAAsB;AAAA,QACtB,6BAA6B;AAAA,QAC7B,gCAAgC;AAAA,QAChC,wCAAwC;AAAA,QACxC,uCAAuC;AAAA,QACvC,2BAA2B;AAAA,QAC3B,8BAA8B;AAAA,QAC9B,sCAAsC;AAAA,QACtC,kBAAkB;AAAA,QAClB,qBAAqB;AAAA,QACrB,4BAA4B;AAAA,QAC5B,+BAA+B;AAAA,QAC/B,uCAAuC;AAAA,QACvC,sCAAsC;AAAA,QACtC,0BAA0B;AAAA,QAC1B,6BAA6B;AAAA,QAC7B,qCAAqC;AAAA,QACrC,oBAAoB;AAAA,QACpB,uBAAuB;AAAA,QACvB,4BAA4B;AAAA,QAC5B,+BAA+B;AAAA,QAC/B,uCAAuC;AAAA,QACvC,yCAAyC;AAAA,QACzC,wCAAwC;AAAA,QACxC,eAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,yBAAyB;AAAA,QACzB,4BAA4B;AAAA,QAC5B,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,wBAAwB;AAAA,QACxB,2BAA2B;AAAA,QAC3B,mCAAmC;AAAA,QACnC,kCAAkC;AAAA,QAClC,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,QACpB,2BAA2B;AAAA,QAC3B,8BAA8B;AAAA,QAC9B,sCAAsC;AAAA,QACtC,qCAAqC;AAAA,QACrC,oBAAoB;AAAA,QACpB,uBAAuB;AAAA,QACvB,+BAA+B;AAAA,QAC/B,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,QACpB,yBAAyB;AAAA,QACzB,4BAA4B;AAAA,QAC5B,yBAAyB;AAAA,QACzB,4BAA4B;AAAA,QAC5B,oCAAoC;AAAA,QACpC,oCAAoC;AAAA,QACpC,2BAA2B;AAAA,QAC3B,8BAA8B;AAAA,QAC9B,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,sBAAsB;AAAA,QACtB,qBAAqB;AAAA,QACrB,eAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,qBAAqB;AAAA,QACrB,4BAA4B;AAAA,QAC5B,+BAA+B;AAAA,QAC/B,0BAA0B;AAAA,QAC1B,6BAA6B;AAAA,QAC7B,qCAAqC;AAAA,QACrC,eAAe;AAAA,QACf,cAAc;AAAA,QACd,aAAa;AAAA,QACb,aAAa;AAAA,QACb,aAAa;AAAA,QACb,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,cAAc;AAAA,QACd,cAAc;AAAA,QACd,cAAc;AAAA,QACd,cAAc;AAAA,QACd,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,eAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,eAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,sBAAsB;AAAA,QACtB,mBAAmB;AAAA,QACnB,4BAA4B;AAAA,QAC5B,6BAA6B;AAAA,QAC7B,4BAA4B;AAAA,QAC5B,6BAA6B;AAAA,QAC7B,8BAA8B;AAAA,QAC9B,6BAA6B;AAAA,QAC7B,0BAA0B;AAAA,QAC1B,2BAA2B;AAAA,QAC3B,0BAA0B;AAAA,QAC1B,0BAA0B;AAAA,QAC1B,2BAA2B;AAAA,QAC3B,0BAA0B;AAAA,QAC1B,2BAA2B;AAAA,QAC3B,yBAAyB;AAAA,QACzB,yBAAyB;AAAA,QACzB,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,QACrB,sBAAsB;AAAA,QACtB,uBAAuB;AAAA,QACvB,wBAAwB;AAAA,QACxB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,kBAAkB;AAAA,QAClB,oBAAoB;AAAA,MACtB;AAAA,MACA,kBAAoB;AAAA,QAClB,OAAS;AAAA,UACP,aAAe;AAAA,UACf,cAAgB;AAAA,UAChB,iBAAmB;AAAA,UACnB,WAAa;AAAA,QACf;AAAA,QACA,YAAc;AAAA,UACZ,UAAY;AAAA,UACZ,OAAS;AAAA,UACT,cAAgB;AAAA,UAChB,iBAAmB;AAAA,UACnB,KAAO;AAAA,QACT;AAAA,QACA,QAAU;AAAA,UACR,OAAS;AAAA,UACT,QAAU;AAAA,UACV,SAAW;AAAA,UACX,UAAY;AAAA,UACZ,SAAW;AAAA,UACX,KAAO;AAAA,QACT;AAAA,QACA,QAAU;AAAA,UACR,OAAS;AAAA,UACT,OAAS;AAAA,UACT,SAAW;AAAA,UACX,WAAa;AAAA,UACb,SAAW;AAAA,UACX,UAAY;AAAA,QACd;AAAA,QACA,QAAU;AAAA,UACR,cAAgB;AAAA,UAChB,UAAY;AAAA,UACZ,gBAAkB;AAAA,QACpB;AAAA,QACA,aAAe;AAAA,UACb,SAAW;AAAA,UACX,WAAa;AAAA,UACb,WAAa;AAAA,QACf;AAAA,QACA,aAAe;AAAA,UACb,cAAgB;AAAA,UAChB,aAAe;AAAA,UACf,WAAa;AAAA,UACb,YAAc;AAAA,UACd,kBAAoB;AAAA,UACpB,gBAAkB;AAAA,QACpB;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,UAAY;AAAA,QACd;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,QACf;AAAA,QACA,QAAU;AAAA,UACR,cAAgB;AAAA,UAChB,OAAS;AAAA,UACT,QAAU;AAAA,UACV,SAAW;AAAA,UACX,WAAa;AAAA,UACb,UAAY;AAAA,QACd;AAAA,QACA,cAAgB;AAAA,UACd,cAAgB;AAAA,UAChB,OAAS;AAAA,UACT,QAAU;AAAA,UACV,UAAY;AAAA,UACZ,WAAa;AAAA,UACb,iBAAmB;AAAA,UACnB,iBAAmB;AAAA,QACrB;AAAA,QACA,UAAY;AAAA,UACV,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,OAAS;AAAA,UACT,QAAU;AAAA,QACZ;AAAA,QACA,QAAU;AAAA,UACR,QAAU;AAAA,UACV,OAAS;AAAA,UACT,YAAc;AAAA,UACd,aAAe;AAAA,QACjB;AAAA,QACA,OAAS;AAAA,UACP,UAAY;AAAA,UACZ,OAAS;AAAA,UACT,WAAa;AAAA,UACb,eAAiB;AAAA,UACjB,mBAAqB;AAAA,UACrB,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,aAAe;AAAA,UACf,aAAe;AAAA,UACf,QAAU;AAAA,UACV,aAAe;AAAA,UACf,cAAgB;AAAA,UAChB,oBAAsB;AAAA,QACxB;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,QAAU;AAAA,QACZ;AAAA,QACA,MAAQ;AAAA,UACN,UAAY;AAAA,UACZ,WAAa;AAAA,UACb,iBAAmB;AAAA,UACnB,gBAAkB;AAAA,UAClB,oBAAsB;AAAA,UACtB,SAAW;AAAA,UACX,KAAO;AAAA,UACP,cAAgB;AAAA,UAChB,SAAW;AAAA,QACb;AAAA,QACA,qBAAuB;AAAA,UACrB,UAAY;AAAA,UACZ,WAAa;AAAA,UACb,eAAiB;AAAA,UACjB,mBAAqB;AAAA,UACrB,yBAA2B;AAAA,UAC3B,cAAgB;AAAA,UAChB,oBAAsB;AAAA,QACxB;AAAA,QACA,OAAS;AAAA,UACP,cAAgB;AAAA,QAClB;AAAA,QACA,QAAU;AAAA,UACR,cAAgB;AAAA,UAChB,UAAY;AAAA,QACd;AAAA,QACA,YAAc;AAAA,UACZ,cAAgB;AAAA,QAClB;AAAA,QACA,MAAQ;AAAA,UACN,cAAgB;AAAA,QAClB;AAAA,QACA,YAAc;AAAA,UACZ,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,OAAS;AAAA,UACT,kBAAoB;AAAA,QACtB;AAAA,QACA,WAAa;AAAA,UACX,OAAS;AAAA,UACT,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,eAAiB;AAAA,UACjB,eAAiB;AAAA,UACjB,YAAc;AAAA,UACd,SAAW;AAAA,UACX,kBAAoB;AAAA,UACpB,oBAAsB;AAAA,UACtB,WAAa;AAAA,UACb,YAAc;AAAA,UACd,SAAW;AAAA,UACX,eAAiB;AAAA,UACjB,WAAa;AAAA,UACb,kBAAoB;AAAA,UACpB,oBAAsB;AAAA,UACtB,eAAiB;AAAA,UACjB,qBAAuB;AAAA,UACvB,qBAAuB;AAAA,UACvB,oBAAsB;AAAA,QACxB;AAAA,QACA,mBAAqB;AAAA,UACnB,cAAgB;AAAA,UAChB,QAAU;AAAA,QACZ;AAAA,QACA,WAAa;AAAA,UACX,KAAO;AAAA,UACP,UAAY;AAAA,UACZ,aAAe;AAAA,UACf,mBAAqB;AAAA,UACrB,kBAAoB;AAAA,UACpB,mBAAqB;AAAA,UACrB,yBAA2B;AAAA,QAC7B;AAAA,QACA,MAAQ;AAAA,UACN,eAAiB;AAAA,UACjB,eAAiB;AAAA,UACjB,OAAS;AAAA,UACT,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,eAAiB;AAAA,UACjB,eAAiB;AAAA,UACjB,YAAc;AAAA,UACd,aAAe;AAAA,UACf,SAAW;AAAA,UACX,KAAO;AAAA,QACT;AAAA,QACA,QAAU;AAAA,UACR,OAAS;AAAA,UACT,YAAc;AAAA,UACd,cAAgB;AAAA,UAChB,aAAe;AAAA,UACf,WAAa;AAAA,QACf;AAAA,QACA,UAAY;AAAA,UACV,OAAS;AAAA,UACT,gBAAkB;AAAA,UAClB,cAAgB;AAAA,UAChB,WAAa;AAAA,UACb,UAAY;AAAA,UACZ,KAAO;AAAA,QACT;AAAA,QACA,UAAY;AAAA,UACV,gBAAkB;AAAA,UAClB,iBAAmB;AAAA,UACnB,gBAAkB;AAAA,QACpB;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,QAAU;AAAA,UACV,OAAS;AAAA,UACT,aAAe;AAAA,QACjB;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,YAAc;AAAA,UACd,WAAa;AAAA,QACf;AAAA,QACA,SAAW;AAAA,UACT,cAAgB;AAAA,UAChB,QAAU;AAAA,UACV,OAAS;AAAA,UACT,UAAY;AAAA,QACd;AAAA,MACF;AAAA,MACA,OAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,aAAe;AAAA,MACf,gBAAkB;AAAA,QAChB,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,QACpB,2BAA2B;AAAA,QAC3B,8BAA8B;AAAA,QAC9B,sCAAsC;AAAA,QACtC,qCAAqC;AAAA,QACrC,yBAAyB;AAAA,QACzB,4BAA4B;AAAA,QAC5B,oCAAoC;AAAA,QACpC,mBAAmB;AAAA,QACnB,sBAAsB;AAAA,QACtB,6BAA6B;AAAA,QAC7B,gCAAgC;AAAA,QAChC,wCAAwC;AAAA,QACxC,uCAAuC;AAAA,QACvC,2BAA2B;AAAA,QAC3B,8BAA8B;AAAA,QAC9B,sCAAsC;AAAA,QACtC,kBAAkB;AAAA,QAClB,qBAAqB;AAAA,QACrB,4BAA4B;AAAA,QAC5B,+BAA+B;AAAA,QAC/B,uCAAuC;AAAA,QACvC,sCAAsC;AAAA,QACtC,0BAA0B;AAAA,QAC1B,6BAA6B;AAAA,QAC7B,qCAAqC;AAAA,QACrC,oBAAoB;AAAA,QACpB,uBAAuB;AAAA,QACvB,4BAA4B;AAAA,QAC5B,+BAA+B;AAAA,QAC/B,uCAAuC;AAAA,QACvC,yCAAyC;AAAA,QACzC,wCAAwC;AAAA,QACxC,eAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,yBAAyB;AAAA,QACzB,4BAA4B;AAAA,QAC5B,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,wBAAwB;AAAA,QACxB,2BAA2B;AAAA,QAC3B,mCAAmC;AAAA,QACnC,kCAAkC;AAAA,QAClC,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,QACpB,2BAA2B;AAAA,QAC3B,8BAA8B;AAAA,QAC9B,sCAAsC;AAAA,QACtC,qCAAqC;AAAA,QACrC,oBAAoB;AAAA,QACpB,uBAAuB;AAAA,QACvB,+BAA+B;AAAA,QAC/B,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,QACpB,yBAAyB;AAAA,QACzB,4BAA4B;AAAA,QAC5B,yBAAyB;AAAA,QACzB,4BAA4B;AAAA,QAC5B,oCAAoC;AAAA,QACpC,oCAAoC;AAAA,QACpC,2BAA2B;AAAA,QAC3B,8BAA8B;AAAA,QAC9B,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,sBAAsB;AAAA,QACtB,qBAAqB;AAAA,QACrB,eAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,qBAAqB;AAAA,QACrB,4BAA4B;AAAA,QAC5B,+BAA+B;AAAA,QAC/B,0BAA0B;AAAA,QAC1B,6BAA6B;AAAA,QAC7B,qCAAqC;AAAA,QACrC,eAAe;AAAA,QACf,cAAc;AAAA,QACd,aAAa;AAAA,QACb,aAAa;AAAA,QACb,aAAa;AAAA,QACb,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,cAAc;AAAA,QACd,cAAc;AAAA,QACd,cAAc;AAAA,QACd,cAAc;AAAA,QACd,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,eAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,eAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,sBAAsB;AAAA,QACtB,mBAAmB;AAAA,QACnB,4BAA4B;AAAA,QAC5B,6BAA6B;AAAA,QAC7B,4BAA4B;AAAA,QAC5B,6BAA6B;AAAA,QAC7B,8BAA8B;AAAA,QAC9B,6BAA6B;AAAA,QAC7B,0BAA0B;AAAA,QAC1B,2BAA2B;AAAA,QAC3B,0BAA0B;AAAA,QAC1B,0BAA0B;AAAA,QAC1B,2BAA2B;AAAA,QAC3B,0BAA0B;AAAA,QAC1B,2BAA2B;AAAA,QAC3B,yBAAyB;AAAA,QACzB,yBAAyB;AAAA,QACzB,oBAAoB;AAAA,QACpB,qBAAqB;AAAA,QACrB,sBAAsB;AAAA,QACtB,uBAAuB;AAAA,QACvB,wBAAwB;AAAA,QACxB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,kBAAkB;AAAA,QAClB,oBAAoB;AAAA,MACtB;AAAA,MACA,kBAAoB;AAAA,QAClB,OAAS;AAAA,UACP,aAAe;AAAA,UACf,cAAgB;AAAA,UAChB,iBAAmB;AAAA,UACnB,WAAa;AAAA,QACf;AAAA,QACA,YAAc;AAAA,UACZ,UAAY;AAAA,UACZ,OAAS;AAAA,UACT,cAAgB;AAAA,UAChB,iBAAmB;AAAA,UACnB,KAAO;AAAA,QACT;AAAA,QACA,QAAU;AAAA,UACR,OAAS;AAAA,UACT,QAAU;AAAA,UACV,SAAW;AAAA,UACX,UAAY;AAAA,UACZ,SAAW;AAAA,UACX,KAAO;AAAA,QACT;AAAA,QACA,QAAU;AAAA,UACR,OAAS;AAAA,UACT,OAAS;AAAA,UACT,SAAW;AAAA,UACX,WAAa;AAAA,UACb,SAAW;AAAA,UACX,UAAY;AAAA,QACd;AAAA,QACA,QAAU;AAAA,UACR,cAAgB;AAAA,UAChB,UAAY;AAAA,UACZ,gBAAkB;AAAA,QACpB;AAAA,QACA,aAAe;AAAA,UACb,SAAW;AAAA,UACX,WAAa;AAAA,UACb,WAAa;AAAA,QACf;AAAA,QACA,aAAe;AAAA,UACb,cAAgB;AAAA,UAChB,aAAe;AAAA,UACf,WAAa;AAAA,UACb,YAAc;AAAA,UACd,kBAAoB;AAAA,UACpB,gBAAkB;AAAA,QACpB;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,UAAY;AAAA,QACd;AAAA,QACA,OAAS;AAAA,UACP,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,WAAa;AAAA,QACf;AAAA,QACA,QAAU;AAAA,UACR,cAAgB;AAAA,UAChB,OAAS;AAAA,UACT,QAAU;AAAA,UACV,SAAW;AAAA,UACX,WAAa;AAAA,UACb,UAAY;AAAA,QACd;AAAA,QACA,cAAgB;AAAA,UACd,cAAgB;AAAA,UAChB,OAAS;AAAA,UACT,QAAU;AAAA,UACV,UAAY;AAAA,UACZ,WAAa;AAAA,UACb,iBAAmB;AAAA,UACnB,iBAAmB;AAAA,QACrB;AAAA,QACA,UAAY;AAAA,UACV,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,OAAS;AAAA,UACT,QAAU;AAAA,QACZ;AAAA,QACA,QAAU;AAAA,UACR,QAAU;AAAA,UACV,OAAS;AAAA,UACT,YAAc;AAAA,UACd,aAAe;AAAA,QACjB;AAAA,QACA,OAAS;AAAA,UACP,UAAY;AAAA,UACZ,OAAS;AAAA,UACT,WAAa;AAAA,UACb,eAAiB;AAAA,UACjB,mBAAqB;AAAA,UACrB,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,aAAe;AAAA,UACf,aAAe;AAAA,UACf,QAAU;AAAA,UACV,aAAe;AAAA,UACf,cAAgB;AAAA,UAChB,oBAAsB;AAAA,QACxB;AAAA,QACA,UAAY;AAAA,UACV,MAAQ;AAAA,UACR,QAAU;AAAA,QACZ;AAAA,QACA,MAAQ;AAAA,UACN,UAAY;AAAA,UACZ,WAAa;AAAA,UACb,iBAAmB;AAAA,UACnB,gBAAkB;AAAA,UAClB,oBAAsB;AAAA,UACtB,SAAW;AAAA,UACX,KAAO;AAAA,UACP,cAAgB;AAAA,UAChB,SAAW;AAAA,QACb;AAAA,QACA,qBAAuB;AAAA,UACrB,UAAY;AAAA,UACZ,WAAa;AAAA,UACb,eAAiB;AAAA,UACjB,mBAAqB;AAAA,UACrB,yBAA2B;AAAA,UAC3B,cAAgB;AAAA,UAChB,oBAAsB;AAAA,QACxB;AAAA,QACA,OAAS;AAAA,UACP,cAAgB;AAAA,QAClB;AAAA,QACA,QAAU;AAAA,UACR,cAAgB;AAAA,UAChB,UAAY;AAAA,QACd;AAAA,QACA,YAAc;AAAA,UACZ,cAAgB;AAAA,QAClB;AAAA,QACA,MAAQ;AAAA,UACN,cAAgB;AAAA,QAClB;AAAA,QACA,YAAc;AAAA,UACZ,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,OAAS;AAAA,UACT,kBAAoB;AAAA,QACtB;AAAA,QACA,WAAa;AAAA,UACX,OAAS;AAAA,UACT,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,eAAiB;AAAA,UACjB,eAAiB;AAAA,UACjB,YAAc;AAAA,UACd,SAAW;AAAA,UACX,kBAAoB;AAAA,UACpB,oBAAsB;AAAA,UACtB,WAAa;AAAA,UACb,YAAc;AAAA,UACd,SAAW;AAAA,UACX,eAAiB;AAAA,UACjB,WAAa;AAAA,UACb,kBAAoB;AAAA,UACpB,oBAAsB;AAAA,UACtB,eAAiB;AAAA,UACjB,qBAAuB;AAAA,UACvB,qBAAuB;AAAA,UACvB,oBAAsB;AAAA,QACxB;AAAA,QACA,mBAAqB;AAAA,UACnB,cAAgB;AAAA,UAChB,QAAU;AAAA,QACZ;AAAA,QACA,WAAa;AAAA,UACX,KAAO;AAAA,UACP,UAAY;AAAA,UACZ,aAAe;AAAA,UACf,mBAAqB;AAAA,UACrB,kBAAoB;AAAA,UACpB,mBAAqB;AAAA,UACrB,yBAA2B;AAAA,QAC7B;AAAA,QACA,MAAQ;AAAA,UACN,eAAiB;AAAA,UACjB,eAAiB;AAAA,UACjB,OAAS;AAAA,UACT,QAAU;AAAA,UACV,cAAgB;AAAA,UAChB,eAAiB;AAAA,UACjB,eAAiB;AAAA,UACjB,YAAc;AAAA,UACd,aAAe;AAAA,UACf,SAAW;AAAA,UACX,KAAO;AAAA,QACT;AAAA,QACA,QAAU;AAAA,UACR,OAAS;AAAA,UACT,YAAc;AAAA,UACd,cAAgB;AAAA,UAChB,aAAe;AAAA,UACf,WAAa;AAAA,QACf;AAAA,QACA,UAAY;AAAA,UACV,OAAS;AAAA,UACT,gBAAkB;AAAA,UAClB,cAAgB;AAAA,UAChB,WAAa;AAAA,UACb,UAAY;AAAA,UACZ,KAAO;AAAA,QACT;AAAA,QACA,UAAY;AAAA,UACV,gBAAkB;AAAA,UAClB,iBAAmB;AAAA,UACnB,gBAAkB;AAAA,QACpB;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,QAAU;AAAA,UACV,OAAS;AAAA,UACT,aAAe;AAAA,QACjB;AAAA,QACA,QAAU;AAAA,UACR,MAAQ;AAAA,UACR,YAAc;AAAA,UACd,WAAa;AAAA,QACf;AAAA,QACA,SAAW;AAAA,UACT,cAAgB;AAAA,UAChB,QAAU;AAAA,UACV,OAAS;AAAA,UACT,UAAY;AAAA,QACd;AAAA,MACF;AAAA,MACA,OAAS;AAAA,IACX;AAAA,EACF;AACF;;;AC77SA,IAAM,QAAQ;AAKP,IAAM,OAAO,MAAM;AAEnB,SAAS,cAAc,GAAgC;AAC5D,SAAO,OAAO,KAAK,EAAE,QAAQ;AAC/B;AAEO,SAAS,eAAe,SAA0B,CAAC,GAAqB;AAC7E,SAAO,MAAM,WAAW,OAAO,CAAC,MAAM;AACpC,QAAI,OAAO,aAAa,CAAC,EAAE,SAAS,OAAO,SAAS,EAAG,QAAO;AAC9D,QAAI,OAAO,YAAY,EAAE,aAAa,OAAO,SAAU,QAAO;AAC9D,QAAI,OAAO,UAAU,EAAE,WAAW,OAAO,OAAQ,QAAO;AACxD,WAAO;AAAA,EACT,CAAC;AACH;AAEO,SAAS,aAAa,IAAwC;AACnE,SAAO,MAAM,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AACjD;AAEO,SAAS,WAAW,SAAsB,CAAC,GAAiB;AACjE,SAAO,MAAM,OAAO,OAAO,CAAC,MAAM;AAChC,QAAI,OAAO,QAAQ,EAAE,SAAS,OAAO,KAAM,QAAO;AAClD,QAAI,OAAO,QAAQ,EAAE,SAAS,OAAO,KAAM,QAAO;AAClD,QAAI,OAAO,SAAS,EAAE,EAAE,eAAe,OAAO,SAAS,EAAE,aAAc,QAAO;AAC9E,WAAO;AAAA,EACT,CAAC;AACH;AAEO,SAAS,SAAS,IAAoC;AAC3D,SAAO,MAAM,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AAC7C;AAEO,SAAS,aAAmC;AACjD,SAAO,MAAM;AACf;AAEO,SAAS,SAAS,IAA4C;AACnE,SAAO,MAAM,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AAC7C;AAMO,SAAS,OAAO,OAAe,MAAgC;AACpE,QAAM,IAAI,MAAM,YAAY,EAAE,KAAK;AACnC,MAAI,CAAC,EAAG,QAAO,CAAC;AAChB,QAAM,OAAoB,CAAC;AAC3B,QAAM,QAAQ,IAAI,WAChB,OAAO,KAAK,CAAC,MAAM,GAAG,YAAY,EAAE,SAAS,CAAC,CAAC;AAEjD,MAAI,CAAC,QAAQ,SAAS,aAAa;AACjC,eAAW,KAAK,MAAM,YAAY;AAChC,YAAM,WAAW,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAG,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtF,UAAI,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,GAAG,QAAQ,GAAG;AAC1E,aAAK,KAAK,EAAE,MAAM,aAAa,IAAI,EAAE,IAAI,OAAO,EAAE,MAAM,SAAS,EAAE,WAAW,EAAE,YAAY,MAAM,GAAG,GAAG,EAAE,CAAC;AAAA,MAC7G;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,QAAQ,SAAS,SAAS;AAC7B,eAAW,KAAK,MAAM,QAAQ;AAC5B,UAAI,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,OAAO,EAAE,KAAK,CAAC,GAAG;AACvD,aAAK,KAAK,EAAE,MAAM,SAAS,IAAI,EAAE,IAAI,OAAO,EAAE,IAAI,SAAS,GAAG,EAAE,IAAI,MAAM,EAAE,KAAK,GAAG,CAAC;AAAA,MACvF;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,QAAQ,SAAS,SAAS;AAC7B,eAAW,KAAK,MAAM,QAAQ;AAC5B,UAAI,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAG;AACtC,aAAK,KAAK,EAAE,MAAM,SAAS,IAAI,EAAE,IAAI,OAAO,EAAE,MAAM,SAAS,EAAE,YAAY,CAAC;AAAA,MAC9E;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,QAAQ,SAAS,aAAa;AACjC,eAAW,KAAK,MAAM,YAAY;AAChC,YAAM,IAAI,EAAE;AACZ,UAAI,MAAM,EAAE,WAAW,GAAG,EAAE,KAAK,GAAG,EAAE,OAAO,GAAG,EAAE,aAAa,GAAG;AAChE,aAAK,KAAK,EAAE,MAAM,aAAa,IAAI,EAAE,IAAI,OAAO,GAAG,EAAE,IAAI,eAAe,SAAS,EAAE,UAAU,MAAM,GAAG,GAAG,EAAE,CAAC;AAAA,MAC9G;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAMO,SAAS,oBAAoB,YAAsC;AACxE,MAAI,CAAC,WAAW,OAAQ,QAAO;AAC/B,QAAM,OAAO,WAAW,IAAI,CAAC,MAAM;AACjC,UAAM,KAAK,cAAc,CAAC,EAAE,KAAK,IAAI;AACrC,WAAO,OAAO,EAAE,IAAI,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,cAAc,MAAM,EAAE,QAAQ,KAAK,EAAE;AAAA,EAC5F,CAAC;AACD,SAAO,qBAAqB,WAAW,MAAM;AAAA;AAAA,EAAQ,KAAK,KAAK,IAAI,CAAC;AACtE;AAEA,SAAS,eAAe,SAAwD;AAC9E,QAAM,MAAM,SAAS,OAAO,CAAC;AAC7B,MAAI,CAAC,IAAI,OAAQ,QAAO;AACxB,SAAO,IACJ,IAAI,CAAC,MAAM;AACV,UAAM,MAAM,EAAE,WAAW,oBAAoB;AAC7C,UAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,OAAO,OAAO;AAChD,UAAM,MAAM,EAAE,aAAa,iBAAiB,EAAE,UAAU,MAAM;AAC9D,UAAM,MAAM,EAAE,cAAc,MAAM,EAAE,WAAW,KAAK;AACpD,WAAO,OAAO,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,GAAG,GAAG,GAAG,MAAM,EAAE,IAAI,KAAK,GAAG,GAAG,GAAG;AAAA,EACzE,CAAC,EACA,KAAK,IAAI;AACd;AAEO,SAAS,gBAAgB,GAAmB,WAA+B;AAChF,QAAM,aAAa,YAAY,CAAC,SAAS,IAAI,cAAc,CAAC;AAC5D,QAAM,MAAgB,CAAC,KAAK,EAAE,IAAI,MAAM,EAAE,EAAE,IAAI;AAChD,MAAI,KAAK,IAAI,EAAE,QAAQ,iBAAc,EAAE,MAAM,cAAW,EAAE,OAAO,GAAG;AACpE,MAAI,EAAE,YAAa,KAAI,KAAK;AAAA,EAAK,EAAE,WAAW,EAAE;AAEhD,aAAW,KAAK,YAAY;AAC1B,UAAM,IAAI,EAAE,SAAS,CAAC;AACtB,QAAI,CAAC,GAAG;AACN,UAAI,KAAK;AAAA,KAAQ,CAAC;AAAA,yBAA4B,CAAC,IAAI;AACnD;AAAA,IACF;AACA,QAAI,KAAK;AAAA,KAAQ,CAAC,EAAE;AACpB,QAAI,KAAK,eAAe,EAAE,UAAU,IAAI;AACxC,QAAI,KAAK,qBAAqB,EAAE,aAAa,IAAI;AACjD,QAAI,KAAK;AAAA;AAAA,EAAc,eAAe,CAAC,CAAC,EAAE;AAAA,EAC5C;AAEA,MAAI,EAAE,cAAc,OAAQ,KAAI,KAAK;AAAA,sBAAyB,EAAE,cAAc,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE;AACjH,MAAI,EAAE,SAAS,QAAQ;AACrB,UAAM,KAAK,EAAE,SAAS,CAAC;AACvB,QAAI,KAAK;AAAA,cAAiB,GAAG,KAAK,KAAK,GAAG,SAAS;AAAA;AAAA,EAAoB,GAAG,IAAI;AAAA,OAAU;AACxF,QAAI,EAAE,SAAS,SAAS,EAAG,KAAI,KAAK,KAAK,EAAE,SAAS,SAAS,CAAC,oCAAoC;AAAA,EACpG;AACA,SAAO,IAAI,KAAK,IAAI;AACtB;AAEO,SAAS,eAAe,GAAmB,WAA+B;AAC/E,QAAM,WAAW,YAAY,EAAE,SAAS,OAAO,CAAC,MAAM,EAAE,cAAc,SAAS,IAAI,EAAE;AACrF,MAAI,CAAC,SAAS,OAAQ,QAAO,2BAA2B,EAAE,EAAE,KAAK,YAAY,KAAK,SAAS,MAAM,EAAE;AACnG,QAAM,SAAS,SAAS,IAAI,CAAC,MAAM;AACjC,UAAM,OAAO,EAAE,eAAe;AAAA,sBAAyB,EAAE,YAAY,MAAM;AAC3E,WAAO,OAAO,EAAE,KAAK,MAAM,EAAE,SAAS;AAAA;AAAA,EAAmB,EAAE,IAAI;AAAA,QAAW,IAAI;AAAA,EAChF,CAAC;AACD,SAAO,KAAK,EAAE,IAAI,gBAAgB,SAAS,MAAM;AAAA;AAAA,EAAQ,OAAO,KAAK,MAAM,CAAC;AAC9E;AAEO,SAAS,YAAY,GAAuB;AACjD,QAAM,MAAgB,CAAC,aAAa,EAAE,EAAE,IAAI;AAC5C,MAAI,KAAK,cAAc,EAAE,KAAK,IAAI;AAClC,MAAI,KAAK,WAAW,EAAE,IAAI,EAAE;AAC5B,MAAI,KAAK,aAAa,EAAE,IAAI,OAAO,EAAE,MAAM,GAAG;AAC9C,MAAI,EAAE,UAAW,KAAI,KAAK,6BAA6B,EAAE,SAAS,IAAI;AACtE,MAAI,EAAE,QAAS,KAAI,KAAK,iBAAiB,EAAE,OAAO,IAAI;AACtD,MAAI,EAAE,YAAa,KAAI,KAAK;AAAA,EAAK,EAAE,WAAW,EAAE;AAChD,MAAI,EAAE,eAAe,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ;AACtD,QAAI,KAAK,wBAAwB;AACjC,eAAW,CAAC,OAAO,GAAG,KAAK,OAAO,QAAQ,EAAE,WAAW,EAAG,KAAI,KAAK,KAAK,KAAK,OAAO,GAAG,IAAI;AAAA,EAC7F;AACA,QAAM,OACJ,EAAE,SAAS,UACP,qGACA;AACN,MAAI,KAAK,IAAI;AACb,SAAO,IAAI,KAAK,IAAI;AACtB;AAEO,SAAS,gBAAgB,QAA8B;AAC5D,MAAI,CAAC,OAAO,OAAQ,QAAO;AAC3B,QAAM,OAAO,OAAO,IAAI,CAAC,MAAM,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,QAAQ,EAAE,KAAK,QAAQ,EAAE,IAAI,IAAI;AACzF,SAAO,iBAAiB,OAAO,MAAM;AAAA;AAAA,EAAQ,KAAK,KAAK,IAAI,CAAC;AAC9D;AAEO,SAAS,gBAAgB,QAAsC;AACpE,MAAI,CAAC,OAAO,OAAQ,QAAO;AAC3B,QAAM,OAAO,OAAO,IAAI,CAAC,MAAM,OAAO,EAAE,IAAI,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;AAC/E,SAAO,0BAA0B,OAAO,MAAM;AAAA;AAAA,EAAQ,KAAK,KAAK,IAAI,CAAC;AACvE;AAEO,SAAS,YAAY,GAA+B;AACzD,QAAM,MAAgB,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;AACxD,MAAI,EAAE,YAAa,KAAI,KAAK,EAAE,WAAW;AACzC,MAAI,KAAK,uCAAuC;AAChD,MAAI,KAAK,uDAAuD;AAChE,QAAM,YAAY,OAAO,QAAQ,EAAE,cAAc;AACjD,MAAI,KAAK,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;AAErE,MAAI,KAAK,oDAAoD;AAC7D,MAAI,KAAK,0DAA0D;AACnE,aAAW,CAAC,WAAW,IAAI,KAAK,OAAO,QAAQ,EAAE,gBAAgB,GAAG;AAClE,QAAI,KAAK,OAAO,SAAS,OAAO,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE;AAAA,EACpG;AACA,MAAI,EAAE,MAAO,KAAI,KAAK;AAAA;AAAA,EAAsB,EAAE,KAAK,EAAE;AACrD,SAAO,IAAI,KAAK,IAAI;AACtB;AAEO,SAAS,iBAAiB,GAA2B;AAC1D,QAAM,IAAI,EAAE;AACZ,QAAM,MAAM,EAAE,aAAa,EAAE,IAAI,UAAU,EAAE,MAAM,UAAU,EAAE,cAAc;AAC7E,MAAI,CAAC,IAAK,QAAO,oCAAoC,EAAE,EAAE;AACzD,QAAM,MAAgB,CAAC,KAAK,EAAE,IAAI,eAAe;AACjD,MAAI,EAAE,UAAW,KAAI,KAAK;AAAA;AAAA,EAAsB,EAAE,SAAS,EAAE;AAC7D,MAAI,EAAE,IAAI,OAAQ,KAAI,KAAK;AAAA;AAAA,EAAa,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;AAC/E,MAAI,EAAE,MAAM,OAAQ,KAAI,KAAK;AAAA;AAAA,EAAgB,EAAE,MAAM,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;AACtF,MAAI,EAAE,cAAc,OAAQ,KAAI,KAAK;AAAA;AAAA,EAAwB,EAAE,cAAc,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;AAC9G,SAAO,IAAI,KAAK,IAAI;AACtB;AAEO,SAAS,aAAa,OAAe,MAA2B;AACrE,MAAI,CAAC,KAAK,OAAQ,QAAO,mBAAmB,KAAK;AACjD,QAAM,OAAO,KAAK,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,OAAO,EAAE,IAAI,QAAQ,EAAE,KAAK,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;AACrG,QAAM,OAAO,KAAK,SAAS,KAAK;AAAA;AAAA,UAAe,KAAK,SAAS,EAAE,kCAAkC;AACjG,SAAO,cAAc,KAAK,MAAM,KAAK,MAAM;AAAA;AAAA,EAAQ,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI;AAC3E;;;AG3NA,IAAa,QAAA,CAAS,UAA0B;AAC9C,MAAI,QAAQ,IAAK,QAAO,QAAQ;AAChC,MAAI,QAAQ,EAAG,QAAO,QAAQ;AAC9B,SAAO;AACT;AAEA,IAAa,mBAAA,CAAoB,QAA0B,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,MAAM,EAAE,CAAC;AAC5F,IAAa,sBAAA,CAAuB,QAAwB,MAAM,MAAM,GAAG;AAC3E,IAAa,iBAAA,CAAkB,QAA0B,CAAC,MAAM,MAAM,GAAG,GAAG,MAAM,MAAM,GAAG,CAAC;AAC5F,IAAa,4BAAA,CAA6B,QAA0B,CAClE,MAAM,MAAM,GAAG,GACf,MAAM,MAAM,GAAG,CACjB;AAaA,IAAa,aAAA,CAAc,KAAa,WAAoC;AAC1E,UAAQ,QAAR;IACE,KAAK;AACH,aAAO;QAAE,SAAS;QAAK,WAAW;QAAK,UAAU;MAAI;IACvD,KAAK,aAAa;AAChB,YAAM,CAAC,GAAG,CAAA,IAAK,iBAAiB,GAAG;AACnC,aAAO;QAAE,SAAS;QAAK,WAAW;QAAG,UAAU;MAAE;IACnD;IACA,KAAK,iBAAiB;AACpB,YAAM,CAAC,CAAA,IAAK,iBAAiB,GAAG;AAChC,aAAO;QAAE,SAAS;QAAK,WAAW,oBAAoB,GAAG;QAAG,UAAU;MAAE;IAC1E;IACA,KAAK,sBAAsB;AACzB,YAAM,CAAC,GAAG,CAAA,IAAK,0BAA0B,GAAG;AAC5C,aAAO;QAAE,SAAS;QAAK,WAAW;QAAG,UAAU;MAAE;IACnD;IACA,KAAK,WAAW;AACd,YAAM,CAAC,GAAG,CAAA,IAAK,eAAe,GAAG;AACjC,aAAO;QAAE,SAAS;QAAK,WAAW;QAAG,UAAU;MAAE;IACnD;EACF;AACF;ACbA,IAAM,UAAA,CAAS,OAAe,KAAa,QACzC,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC;AAEpC,IAAM,SAAA,CAAU,UAA0B,QAAM,KAAK,MAAM,KAAK,GAAG,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAEvG,IAAa,WAAA,CAAY,EAAE,KAAK,OAAO,KAAA,MACrC,IAAI,OAAO,GAAG,CAAA,GAAI,OAAO,KAAK,CAAA,GAAI,OAAO,IAAI,CAAA,GAAI,YAAY;AAE/D,IAAa,WAAA,CAAY,QAAqB;AAC5C,MAAI,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE,KAAK;AAClC,MAAI,EAAE,WAAW,EAAG,KAAI,EAAE,MAAM,EAAE,EAAE,IAAA,CAAK,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE;AAC7D,QAAM,MAAM,SAAS,GAAG,EAAE;AAC1B,SAAO;IAAE,KAAM,OAAO,KAAM;IAAK,OAAQ,OAAO,IAAK;IAAK,MAAM,MAAM;EAAI;AAC5E;AAkCA,IAAa,oBAAA,CAAqB,EAAE,KAAK,OAAO,KAAA,MAAwB;AACtE,QAAM,UAAA,CAAW,UAA0B;AACzC,UAAM,IAAI,QAAQ;AAClB,WAAO,KAAK,UAAU,IAAI,QAAQ,KAAK,KAAK,IAAI,SAAS,OAAO,GAAG;EACrE;AACA,SAAO,SAAS,QAAQ,GAAG,IAAI,SAAS,QAAQ,KAAK,IAAI,SAAS,QAAQ,IAAI;AAChF;AAGA,IAAa,gBAAA,CAAiB,GAAiB,MAA4B;AACzE,QAAM,KAAK,kBAAkB,OAAO,MAAM,WAAW,SAAS,CAAC,IAAI,CAAC;AACpE,QAAM,KAAK,kBAAkB,OAAO,MAAM,WAAW,SAAS,CAAC,IAAI,CAAC;AACpE,QAAM,CAAC,IAAI,EAAA,IAAM,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AAC7C,UAAQ,KAAK,SAAS,KAAK;AAC7B;AC3FA,IAAM,UAAA,CAAS,OAAe,KAAa,QACzC,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC;AAGpC,IAAM,eAAA,CAAgB,YACpB,WAAW,UAAU,UAAU,QAAQ,KAAK,KAAK,UAAU,SAAS,OAAO,GAAG;AAEhF,IAAM,eAAA,CAAgB,YACpB,WAAW,WAAY,QAAQ,UAAU,QAAQ,KAAK,IAAI,SAAS,IAAI,GAAG,IAAI;AAShF,IAAM,mBAAA,CAAoB,EAAE,GAAG,GAAG,EAAA,MAAwD;AACxF,QAAM,IAAI,KAAK,KAAK,eAAe,IAAI,eAAe,IAAI,eAAe,CAAC;AAC1E,QAAM,IAAI,KAAK,KAAK,eAAe,IAAI,eAAe,IAAI,eAAe,CAAC;AAC1E,QAAM,IAAI,KAAK,KAAK,eAAe,IAAI,eAAe,IAAI,eAAe,CAAC;AAC1E,SAAO;IACL,GAAG,eAAe,IAAI,cAAc,IAAI,eAAe;IACvD,GAAG,eAAe,IAAI,cAAc,IAAI,eAAe;IACvD,GAAG,eAAe,IAAI,eAAe,IAAI,cAAc;EACzD;AACF;AAEA,IAAM,mBAAA,CAAoB,GAAW,GAAW,MAAyB;AACvE,QAAM,KAAK,KAAK,IAAI,IAAI,eAAe,IAAI,eAAe,GAAG,CAAC;AAC9D,QAAM,KAAK,KAAK,IAAI,IAAI,eAAe,IAAI,eAAe,GAAG,CAAC;AAC9D,QAAM,KAAK,KAAK,IAAI,IAAI,eAAe,IAAI,cAAc,GAAG,CAAC;AAC7D,SAAO;IACL,GAAG,eAAe,KAAK,eAAe,KAAK,eAAe;IAC1D,GAAG,gBAAgB,KAAK,eAAe,KAAK,eAAe;IAC3D,GAAG,gBAAgB,KAAK,eAAe,KAAK,cAAc;EAC5D;AACF;AAEA,IAAM,mBAAA,CAAoB,EAAE,GAAG,GAAG,EAAA,MAA0B;AAC1D,QAAM,MAAO,IAAI,KAAK,KAAM;AAC5B,SAAO,iBAAiB,GAAG,IAAI,KAAK,IAAI,GAAG,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;AACjE;AAEA,IAAM,gBAAgB;AAEtB,IAAM,cAAA,CAAe,EAAE,GAAG,GAAG,EAAA,MAC3B,KAAK,CAAC,iBACN,KAAK,IAAI,iBACT,KAAK,CAAC,iBACN,KAAK,IAAI,iBACT,KAAK,CAAC,iBACN,KAAK,IAAI;AAGX,IAAa,aAAA,CAAc,QAAuB;AAChD,QAAM,EAAE,KAAK,OAAO,KAAA,IAAS,SAAS,GAAG;AACzC,QAAM,EAAE,GAAG,GAAG,EAAA,IAAM,iBAAiB;IACnC,GAAG,aAAa,MAAM,GAAG;IACzB,GAAG,aAAa,QAAQ,GAAG;IAC3B,GAAG,aAAa,OAAO,GAAG;EAC5B,CAAC;AACD,QAAM,IAAI,KAAK,MAAM,GAAG,CAAC;AACzB,QAAM,IAAI,IAAI,OAAO,IAAK,KAAK,MAAM,GAAG,CAAC,IAAI,MAAO,KAAK;AACzD,SAAO;IAAE;IAAG;IAAG,GAAG,IAAI,IAAI,IAAI,MAAM;EAAE;AACxC;AAOA,IAAa,aAAA,CAAc,UAAyB;AAClD,QAAM,SAAgB;IAAE,GAAG,QAAM,MAAM,GAAG,GAAG,CAAC;IAAG,GAAG,KAAK,IAAI,MAAM,GAAG,CAAC;IAAG,GAAG,MAAM;EAAE;AACrF,MAAI,MAAM,iBAAiB,MAAM;AACjC,MAAI,CAAC,YAAY,GAAG,GAAG;AACrB,QAAI,MAAM;AACV,QAAI,OAAO,OAAO;AAClB,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,YAAM,OAAO,MAAM,QAAQ;AAC3B,UAAI,YAAY,iBAAiB;QAAE,GAAG;QAAQ,GAAG;MAAI,CAAC,CAAC,EAAG,OAAM;UAC3D,QAAO;IACd;AACA,UAAM,iBAAiB;MAAE,GAAG;MAAQ,GAAG;IAAI,CAAC;EAC9C;AAGA,SAAO,SAAS,UAAU,GAAG,CAAC;AAChC;AAEA,IAAM,YAAA,CAAa,EAAE,GAAG,GAAG,EAAA,OAAyB;EAClD,KAAK,MAAM,aAAa,QAAM,GAAG,GAAG,CAAC,CAAC;EACtC,OAAO,MAAM,aAAa,QAAM,GAAG,GAAG,CAAC,CAAC;EACxC,MAAM,MAAM,aAAa,QAAM,GAAG,GAAG,CAAC,CAAC;AACzC;ACvFA,IAAM,UAAA,CAAW,SACf,OACI;EACE,QAAQ;EACR,WAAW;EACX,aAAa;EACb,YAAY;EACZ,SAAS;EACT,gBAAgB;EAChB,SAAS;EACT,WAAW;EACX,WAAW;EACX,SAAS;EACT,WAAW;EACX,QAAQ;EACR,SAAS;EACT,MAAM;EACN,mBAAmB;AACrB,IACA;EACE,QAAQ;EACR,WAAW;EACX,aAAa;EACb,YAAY;EACZ,SAAS;EACT,gBAAgB;EAChB,SAAS;EACT,WAAW;EACX,WAAW;EACX,SAAS;EACT,WAAW;EACX,QAAQ;EACR,SAAS;EACT,MAAM;EACN,mBAAmB;AACrB;AAKN,IAAa,iBAAgD;EAC3D,OAAO;EACP,QAAQ;EACR,OAAO;EACP,SAAS;EACT,YAAY;EACZ,QAAQ;AACV;AAGA,IAAM,yBAAyB;AAM/B,IAAM,iBAAiB;EACrB,OAAO;IAAE,KAAK;IAAI,QAAQ;EAAI;EAC9B,MAAM;IAAE,KAAK;IAAI,QAAQ;EAAK;EAC9B,SAAS;IAAE,KAAK;IAAK,QAAQ;EAAK;AACpC;AAEA,IAAM,QAAA,CAAS,OAAe,KAAa,QACzC,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC;AAOpC,IAAa,iBAAA,CAAkB,WAAyC;AACtE,QAAM,EACJ,MACA,QACA,UACA,OAAO,SACP,wBAAwB,IACxB,QAAQ,CAAC,GACT,UAAU,CAAC,GACX,OAAA,IACE;AACJ,QAAM,OAAO,SAAS;AACtB,QAAM,IAAI,QAAQ,IAAI;AAGtB,QAAM,SAAS,WAAW,MAAM,WAAW,QAAQ,WAAW,IAAI;AAClE,QAAM,OAAO,WAAW,OAAO,GAAG,MAAM;AAIxC,QAAM,cAAe,wBAAwB,MAAO;AACpD,MAAI,UAAU,KAAK,IAAI,eAAe,QAAA,GAAW,WAAW;AAC5D,MAAI,KAAM,WAAU,KAAK,IAAI,SAAS,sBAAsB;AAC5D,QAAM,aAAa,KAAK,IAAI,eAAe,QAAA,IAAY,MAAM,UAAU,IAAI;AAC3E,QAAM,WAAW,KAAK,IAAI,eAAe,QAAA,GAAW,KAAK;AAEzD,QAAM,OAAA,CAAQ,KAAa,GAAW,MAAsB,WAAW;IAAE;IAAG;IAAG,GAAG;EAAI,CAAC;AAOvF,QAAM,iBAAA,CAAkB,IAAW,IAAY,WAA0B;AACvE,UAAM,MAAa,EAAE,GAAG,GAAG;AAC3B,QAAI,MAAM,WAAW,GAAG;AACxB,QAAI,cAAc,KAAK,EAAE,KAAK,OAAQ,QAAO;AAK7C,UAAM,MAAM,kBAAkB,SAAS,EAAE,CAAC;AAC1C,UAAM,eAAe,MAAM,QAAQ;AACnC,UAAM,eAAe,QAAQ,MAAM;AACnC,QAAI,UAAU,kBAAkB,SAAS,GAAG,CAAC,KAAK;AAClD,QAAI,WAAW,eAAe,UAAU,eAAe,OAAQ,WAAU;AACzE,QAAI,CAAC,WAAW,cAAc,UAAU,gBAAgB,OAAQ,WAAU;AAC1E,UAAM,OAAO,UAAU,QAAQ;AAC/B,aAAS,IAAI,GAAG,IAAI,MAAM,cAAc,KAAK,EAAE,IAAI,QAAQ,KAAK;AAC9D,UAAK,OAAO,KAAK,IAAI,IAAI,SAAW,OAAO,KAAK,IAAI,IAAI,KACtD,KAAI,IAAI,MAAM,IAAI,IAAI,MAAM,GAAG,CAAC;UAEhC,KAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI;AAElC,YAAM,WAAW,GAAG;IACtB;AACA,WAAO;EACT;AAGA,QAAM,aAAA,CAAc,IAAW,OAAe,WAC5C,WAAW,eAAe,IAAI,OAAO,MAAM,CAAC;AAE9C,QAAM,SAAA,CACJ,YACAA,aACA,iBACA,iBACA,aACS;AACT,QAAI,CAAC,OAAQ;AACb,UAAM,QAAQ,cAAc,iBAAiB,eAAe;AAC5D,WAAO,KAAK;MACV;MACA;MACA,YAAAA;MACA;MACA;MACA,OAAO,KAAK,MAAM,QAAQ,GAAG,IAAI;MACjC;MACA,MAAM,SAAS;MACf,OAAO,QAAQ,WAAW,SAAS,SAAS,IAAI,QAAQ;IAC1D,CAAC;EACH;AAEA,QAAM,aAAa,KAAK,OAAO,GAAG,UAAU,EAAE,UAAU;AACxD,QAAM,UAAU,KAAK,OAAO,GAAG,UAAU,EAAE,OAAO;AAClD,QAAM,iBAAiB,KAAK,OAAO,GAAG,UAAU,EAAE,cAAc;AAIhE,QAAM,UAAA,CAAW,KAAa,IAAY,MAAsB;AAC9D,UAAM,OAAc;MAAE,GAAG,EAAE;MAAQ,GAAG,KAAK,IAAI,GAAG,IAAI;MAAG,GAAG;IAAI;AAChE,UAAM,QAAe;MAAE,GAAG,EAAE;MAAS,GAAG,KAAK,IAAI,GAAG,IAAI;MAAG,GAAG;IAAI;AAGlE,WAAO,WADL,cAAc,WAAW,IAAI,GAAG,EAAE,KAAK,cAAc,WAAW,KAAK,GAAG,EAAE,IAAI,OAAO,OAC/D,IAAI,GAAG;EACjC;AAIA,QAAM,kBAAA,CAAmB,QAAwB;AAC/C,UAAM,MAAM,WAAW,GAAG;AAC1B,QAAI,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG;AAC3B,WAAO,WAAW,eAAe,KAAK,YAAY,CAAC,CAAC;EACtD;AAOA,QAAM,UAAA,CAAW,MAAiB,KAAa,MAAsB;AACnE,UAAM,SAAS,MAAM,IAAA;AACrB,QAAI,OAAQ,QAAO,OAAO,gBAAgB,MAAM,IAAI;AACpD,UAAM,SAAS,QAAQ,IAAA;AACvB,QAAI;AACJ,QAAI,QAAQ;AAIV,aAAO,WAAW,MAAM;AACxB,UAAI,MAAM;AACR,aAAK,IAAI,KAAK,IAAI,KAAK,GAAG,sBAAsB;AAChD,aAAK,IAAI,KAAK,IAAI,KAAK,GAAG,EAAE,SAAS,IAAI;MAC3C;IACF,MACE,QAAO;MAAE,GAAG,EAAE;MAAQ;MAAG,GAAG;IAAI;AAElC,WAAO,WAAW,eAAe,eAAe,MAAM,YAAY,GAAG,GAAG,SAAS,GAAG,CAAC;EACvF;AAEA,QAAM,WAAW,OAAO,2BAA2B;AACnD,QAAM,aAAa,OAAO,2BAA2B;AAIrD,QAAM,OAAA,CAAQ,MAAc,MAAc,KAAa,eAAe;AACpE,UAAM,EAAE,GAAG,EAAA,IAAM,WAAW,IAAI;AAChC,UAAM,YAAY,KAAK,GAAG,IAAI,EAAE,SAAS;AACzC,UAAM,cAAc,KAAK,GAAG,UAAU,EAAE,WAAW;AACnD,UAAM,SAAS,QAAQ,GAAG,MAAM,CAAC;AACjC,UAAM,cAAc,QAAQ,GAAG,WAAW,CAAC;AAC3C,UAAM,qBAAqB,WAAW;MAAE,GAAG,EAAE;MAAW,GAAG,KAAK,IAAI,IAAI,IAAI;MAAG;IAAE,GAAG,WAAW,GAAG;AAElG,UAAM,YAAY,WADH,eAAe,eAAe,WAAW,IAAI,GAAG,WAAW,CAAC,GAAG,SAAS,CAC1D,CAAM;AACnC,UAAM,gBAAgB,QAAQ,GAAG,aAAa,QAAQ;AACtD,UAAM,uBAAuB,WAAW,WAAW,IAAI,GAAG,aAAa,GAAG;AAE1E,WAAO,MAAM,IAAA,IAAQ,MAAM,QAAQ,MAAM,GAAG;AAC5C,WAAO,MAAM,IAAA,cAAkB,GAAG,IAAA,cAAkB,aAAa,WAAW,GAAG;AAC/E,WAAO,MAAM,IAAA,sBAA0B,GAAG,IAAA,cAAkB,oBAAoB,WAAW,GAAG;AAC9F,WAAO,MAAM,IAAA,qBAAyB,GAAG,IAAA,cAAkB,WAAW,WAAW,CAAC;AAClF,WAAO,MAAM,IAAA,qBAAyB,WAAW,WAAW,SAAS,CAAC;AACtE,WAAO,MAAM,IAAA,YAAgB,GAAG,IAAA,YAAgB,eAAe,aAAa,GAAG;AAC/E,WAAO,MAAM,IAAA,oBAAwB,GAAG,IAAA,YAAgB,sBAAsB,aAAa,GAAG;AAC9F,WAAO,MAAM,cAAc,MAAM,YAAY,GAAG;AAChD,WAAO,MAAM,WAAW,MAAM,SAAS,GAAG;AAE1C,WAAO;OACJ,IAAA,GAAO;OACP,MAAM,IAAA,EAAA,GAAS;OACf,GAAG,IAAA,YAAK,GAAc;OACtB,MAAM,IAAA,YAAK,GAAc;OACzB,MAAM,IAAA,oBAAK,GAAsB;OACjC,MAAM,IAAA,mBAAK,GAAqB;OAChC,GAAG,IAAA,UAAK,GAAY;OACpB,MAAM,IAAA,UAAK,GAAY;OACvB,MAAM,IAAA,kBAAK,GAAoB;IAClC;EACF;AAEA,QAAM,cAAc,QAAQ,WAAW,KAAK,SAAS,OAAO;AAC5D,QAAM,gBAAgB,QAAQ,aAAa,KAAK,WAAW,OAAO;AAClE,QAAM,eAAe,QAAQ,YAAY,KAAK,UAAU,OAAO;AAG/D,QAAM,iBAAiB,MAAM,aACzB,OACE,gBAAgB,MAAM,UAAU,IAChC,MAAM,aACR,WAAW,eAAe;IAAE,GAAG,EAAE;IAAM,GAAG;IAAU,GAAG,OAAO;EAAE,GAAG,SAAS,CAAC,CAAC;AAClF,QAAM,oBAAoB,KAAK,OAAO,GAAG,UAAU,EAAE,WAAW;AAChE,QAAM,eAAe,QAAQ,OAAO,GAAG,gBAAgB,QAAQ;AAC/D,QAAM,sBAAsB,QAAQ,OAAO,GAAG,mBAAmB,QAAQ;AACzE,QAAM,6BAA6B,WAAW,WAAW,WAAW,GAAG,mBAAmB,GAAG;AAC7F,QAAM,+BAA+B,WACnC;IAAE,GAAG,EAAE;IAAW,GAAG,KAAK,IAAI,YAAY,IAAI;IAAG,GAAG,OAAO;EAAE,GAC7D,mBACA,GACF;AACA,SAAO,iBAAiB,cAAc,cAAc,gBAAgB,GAAG;AACvE,SAAO,yBAAyB,sBAAsB,qBAAqB,mBAAmB,GAAG;AACjG,SACE,iCACA,sBACA,4BACA,mBACA,GACF;AAGA,QAAM,WAAA,CAAY,SAAuC;AACvD,UAAM,EAAE,KAAK,OAAA,IAAW,eAAe,IAAA;AACvC,UAAM,OAAO,QAAQ,MAAM,KAAK,OAAO,KAAK,IAAI,QAAQ,sBAAsB,IAAI,MAAM;AACxF,UAAM,EAAE,EAAA,IAAM,WAAW,IAAI;AAC7B,UAAM,YAAY,KAAK,GAAG,aAAa,MAAM,EAAE,SAAS;AACxD,UAAM,SAAS,QAAQ,GAAG,MAAM,MAAM;AACtC,UAAM,cAAc,QAAQ,GAAG,WAAW,MAAM;AAChD,WAAO,MAAM,IAAA,IAAQ,MAAM,QAAQ,MAAM,GAAG;AAC5C,WAAO,MAAM,IAAA,cAAkB,GAAG,IAAA,cAAkB,aAAa,WAAW,GAAG;AAC/E,WAAO,MAAM,cAAc,MAAM,YAAY,GAAG;AAChD,WAAO,MAAM,WAAW,MAAM,SAAS,GAAG;AAC1C,WAAO;MAAE;MAAM;MAAW;MAAQ;MAAa;IAAE;EACnD;AAEA,QAAM,QAAQ,SAAS,OAAO;AAC9B,QAAM,OAAO,SAAS,MAAM;AAC5B,QAAM,UAAU,SAAS,SAAS;AAElC,QAAM,iBAAA,CAAkB,MAA0B,MAAmC;AACnF,UAAM,UAAU,WAAW;MAAE,GAAG,EAAE;MAAW,GAAG;MAAM,GAAG,EAAE;IAAE,GAAG,EAAE,WAAW,GAAG;AAChF,UAAM,SAAS,WACb,eAAe,eAAe,WAAW,EAAE,IAAI,GAAG,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,CAC/E;AACA,WAAO,MAAM,IAAA,sBAA0B,GAAG,IAAA,cAAkB,SAAS,EAAE,WAAW,GAAG;AACrF,WAAO,MAAM,IAAA,qBAAyB,GAAG,IAAA,cAAkB,QAAQ,EAAE,WAAW,CAAC;AACjF,WAAO;MAAE;MAAS;IAAO;EAC3B;AACA,QAAM,aAAa,eAAe,QAAQ,IAAI;AAC9C,QAAM,gBAAgB,eAAe,WAAW,OAAO;AAGvD,QAAM,eAAe,KAAK,OAAO,GAAG,UAAU,EAAE,SAAS;AACzD,QAAM,sBAAsB,WAAW;IAAE,GAAG,EAAE;IAAW,GAAG;IAAU,GAAG,OAAO;EAAE,GAAG,YAAY,GAAG;AACpG,QAAM,YAAY,KAAK,OAAO,GAAG,UAAU,EAAE,SAAS;AACtD,QAAM,mBAAmB,WACvB;IAAE,GAAG,OAAO,EAAE,YAAY,EAAE,YAAY;IAAM,GAAG;IAAU,GAAG,OAAO;EAAE,GACvE,gBACA,GACF;AACA,SAAO,iBAAiB,cAAc,cAAc,YAAY,GAAG;AACnE,SAAO,yBAAyB,cAAc,qBAAqB,YAAY,GAAG;AAClF,SAAO,cAAc,WAAW,WAAW,SAAS,GAAG;AACvD,SAAO,sBAAsB,mBAAmB,kBAAkB,gBAAgB,GAAG;AAGrF,QAAM,iBAAiB,KAAK,OAAO,GAAG,UAAU,EAAE,OAAO;AACzD,QAAM,YAAY,KAAK,OAAO,GAAG,UAAU,EAAE,SAAS;AACtD,QAAM,iBAAiB,WAAW,WAAW,WAAW,GAAG,gBAAgB,GAAG;AAC9E,SAAO,sBAAsB,mBAAmB,WAAW,gBAAgB,GAAG;AAC9E,SAAO,8BAA8B,mBAAmB,gBAAgB,gBAAgB,GAAG;AAC3F,SAAO,wBAAwB,qBAAqB,WAAW,gBAAgB,GAAG;AAElF,QAAM,UAAU,WACd,eACE,eAAe;IAAE,GAAG,EAAE;IAAS,GAAG,KAAK,IAAI,UAAU,IAAI;IAAG,GAAG,KAAK;EAAQ,GAAG,SAAS,CAAC,GACzF,YACA,CACF,CACF;AACA,SAAO,WAAW,WAAW,SAAS,SAAS,CAAC;AAChD,SAAO,WAAW,cAAc,SAAS,YAAY,CAAC;AAEtD,SAAO;IACL,GAAG,KAAK,WAAW,WAAW;IAC9B,GAAG,KAAK,aAAa,aAAa;IAClC,GAAG,KAAK,YAAY,YAAY;IAEhC,YAAY;IACZ,iBAAiB;IACjB,sBAAsB;IACtB,yBAAyB;IACzB,iCAAiC;IACjC,mCAAmC;IACnC,kCAAkC;IAGlC,OAAO,MAAM;IACb,YAAY,MAAM;IAClB,mBAAmB,MAAM;IACzB,sBAAsB,MAAM;IAE5B,MAAM,KAAK;IACX,WAAW,KAAK;IAChB,kBAAkB,KAAK;IACvB,qBAAqB,KAAK;IAC1B,6BAA6B,WAAW;IACxC,4BAA4B,WAAW;IAEvC,SAAS,QAAQ;IACjB,cAAc,QAAQ;IACtB,qBAAqB,QAAQ;IAC7B,wBAAwB,QAAQ;IAChC,gCAAgC,cAAc;IAC9C,+BAA+B,cAAc;IAG7C;IACA,iBAAiB;IACjB,yBAAyB;IACzB;IACA,cAAc;IACd,mBAAmB;IACnB,sBAAsB;IAGtB,mBAAmB;IACnB,sBAAsB;IACtB,8BAA8B;IAC9B,8BAA8B;IAC9B,qBAAqB;IACrB,wBAAwB;IAGxB;IACA,QAAQ;IACR,OAAO;IACP,gBAAgB;IAChB,aAAa;IACb,OAAO;IAGP;IACA,eAAe;IACf,sBAAsB,KAAK,KAAK,SAAS,UAAU,EAAE,iBAAiB;IACtE,yBAAyB;IACzB,oBAAoB;IACpB,uBAAuB,OAAO,0BAA0B;IACxD,+BAA+B,OAAO,0BAA0B;EAClE;AACF;ACjXA,IAAa,kBAAA,CAAmB,WAAyC,eAAe,MAAM;AGpD9F,IAAM,OAAA,CAAQ,KAAa,UAA0B;AACnD,QAAM,EAAE,KAAK,OAAO,KAAA,IAAS,SAAS,GAAG;AACzC,SAAO,QAAQ,GAAA,KAAQ,KAAA,KAAU,IAAA,KAAS,KAAA;AAC5C;AAYA,IAAa,kBAAA,CAAmB,QAAgB,OAAyB,YAAqB;AAC5F,QAAM,QAAQ,OAAO,OAAA,KAAY;AAEjC,MAAI,SAAS,OACX,QAAO;IACL,QAAQ;IACR,MAAM,gBAAgB,KAAK,WAAW,IAAI,CAAA;IAC1C,QAAQ,gBAAgB,KAAK,WAAW,IAAI,CAAA;IAC5C,MAAM,WAAW,KAAK,OAAO,IAAI,CAAA,mBAAoB,KAAK,OAAO,IAAI,CAAA;EACvE;AAIF,QAAM,EAAE,EAAA,IAAM,WAAW,OAAO,SAAA,KAAc,SAAS;AACvD,QAAM,MAAM,WAAW;IAAE,GAAG;IAAM,GAAG;IAAO;EAAE,CAAC;AAC/C,SAAO;IACL,QAAQ,GAAG,KAAK,KAAK,GAAG,CAAA,sBAAuB,KAAK,KAAK,IAAI,CAAA,qBAAsB,KAAK,KAAK,IAAI,CAAA;IACjG,MAAM,GAAG,KAAK,KAAK,GAAG,CAAA,sBAAuB,KAAK,KAAK,IAAI,CAAA,qBAAsB,KAAK,KAAK,IAAI,CAAA;IAC/F,QAAQ,GAAG,KAAK,KAAK,GAAG,CAAA,sBAAuB,KAAK,KAAK,IAAI,CAAA,sBAAuB,KAAK,KAAK,IAAI,CAAA;IAClG,MAAM,WAAW,KAAK,OAAO,GAAG,CAAA,mBAAoB,KAAK,OAAO,GAAG,CAAA;EACrE;AACF;AC/BA,IAAa,YAAmB;EAC9B,aACE;EACF,UACE;EACF,aACE;EACF,WACE;EACF,aACE;EACF,aACE;EACF,cACE;EACF,SACE;EACF,QACE;EACF,OACE;EACF,SACE;AACJ;ACVA,IAAM,iBAA6B;EACjC,iBAAiB;IACf,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,eAAe;EACjB;EACA,kBAAkB;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;IAAI,YAAY;EAAS;EACtG,iBAAiB;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;IAAI,YAAY;EAAS;EACrG,kBAAkB;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;IAAI,YAAY;EAAS;EACtG,mBAAmB;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;IAAI,YAAY;EAAS;EACvG,kBAAkB;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;IAAI,YAAY;EAAS;EACtG,eAAe;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;IAAI,YAAY;EAAS;EACnG,gBAAgB;IACd,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,eAAe;EACjB;EACA,eAAe;IACb,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,eAAe;EACjB;EACA,eAAe;IAAE,YAAY;IAAU,UAAU;IAAI,YAAY;EAAG;EACpE,gBAAgB;IAAE,YAAY;IAAU,UAAU;IAAI,YAAY;EAAG;EACrE,eAAe;IAAE,YAAY;IAAU,UAAU;IAAI,YAAY;EAAG;EACpE,gBAAgB;IAAE,YAAY;IAAU,UAAU;IAAI,YAAY;EAAG;EACrE,cAAc;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;IAAI,eAAe;EAAK;EACjG,cAAc;IACZ,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,eAAe;EACjB;EACA,OAAO;IAAE,YAAY;IAAU,UAAU;IAAI,YAAY;EAAG;EAC5D,QAAQ;IACN,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,eAAe;EACjB;EACA,SAAS;IAAE,YAAY;IAAU,UAAU;IAAI,YAAY;IAAI,eAAe;EAAI;EAClF,UAAU;IACR,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,eAAe;IACf,eAAe;EACjB;EACA,WAAW;IAAE,YAAY;IAAU,UAAU;IAAI,YAAY;EAAG;EAChE,OAAO;IAAE,YAAY;IAAU,UAAU;IAAI,YAAY;EAAG;EAC5D,MAAM;IAAE,YAAY;IAAU,UAAU;IAAI,YAAY;IAAI,WAAW;EAAS;EAEhF,OAAO;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;EAAG;EAGrE,MAAM;IACJ,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,eAAe;EACjB;EACA,KAAK;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;IAAI,YAAY;EAAI;EACpF,OAAO;IAAE,YAAY;IAAmB,UAAU;IAAI,YAAY;EAAG;AACvE;AAKA,IAAM,cAAuB;EAC3B,QACE;EACF,MAAM;EACN,QACE;EACF,MAAM;AACR;AAEA,IAAM,cAAuB;EAC3B,MAAM;EACN,KAAK;EACL,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;AACN;AAEA,IAAM,kBAA+B;EAAE,MAAM;EAAG,UAAU;EAAG,OAAO;AAAE;AAEtE,IAAM,YAAmB;EACvB,MAAM;EACN,KAAK;EACL,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,KAAK;AACP;AAMA,IAAM,eAAA,CAAgB,OAAwB;EAC5C,SAAS,aAAa,EAAE,OAAA;EACxB,WAAW,aAAa,EAAE,SAAA;EAC1B,UAAU,aAAa,EAAE,QAAA;EACzB,YAAY,aAAa,EAAE,UAAA;EAC3B,MAAM,aAAa,EAAE,IAAA;EACrB,SAAS,aAAa,EAAE,OAAA;EACxB,OAAO,aAAa,EAAE,OAAA;EACtB,MAAM,aAAa,EAAE,eAAA,CAAA;EACrB,QAAQ,cAAc,EAAE,eAAA,CAAA;AAC1B;AAEA,IAAM,kBAAA,CAAmB,OAAgC;EACvD,OAAO,EACL,SAAS;IAAE,aAAa;IAAI,cAAc;IAAM,iBAAiB;IAAM,WAAW;EAAK,EACzF;EAGA,YAAY,EACV,SAAS;IACP,UAAU;IACV,OAAO;IACP,cAAc;IACd,iBAAiB;IACjB,KAAK;EACP,EACF;EAEA,QAAQ,EACN,SAAS;IACP,OAAO;IACP,QAAQ;IACR,SAAS;IACT,UAAU;IACV,SAAS;IACT,KAAK;IACL,WAAW;EACb,EACF;EAIA,QAAQ,EACN,SAAS;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,WAAW;IACX,SAAS;IACT,UAAU,EAAE,YAAY,qBAAqB;EAC/C,EACF;EAGA,QAAQ;IACN,SAAS;MAAE,cAAc;MAAO,UAAU;MAAc,gBAAgB;IAAS;IACjF,UAAU;MACR,SAAS;QAAE,iBAAiB,EAAE,mBAAA;QAAsB,OAAO,EAAE,sBAAA;MAAwB;MACrF,WAAW;QAAE,iBAAiB,EAAE,qBAAA;QAAwB,OAAO,EAAE,wBAAA;MAA0B;MAC3F,UAAU;QAAE,iBAAiB,EAAE,oBAAA;QAAuB,OAAO,EAAE,uBAAA;MAAyB;MACxF,YAAY;QAAE,iBAAiB,EAAE,iBAAA;QAAoB,OAAO,EAAE,oBAAA;MAAsB;MACpF,MAAM;QAAE,iBAAiB,EAAE,gBAAA;QAAmB,OAAO,EAAE,mBAAA;MAAqB;MAC5E,SAAS;QAAE,iBAAiB,EAAE,mBAAA;QAAsB,OAAO,EAAE,sBAAA;MAAwB;IACvF;IACA,OAAO;MACL,IAAI;QAAE,QAAQ;QAAI,OAAO;QAAI,UAAU;MAAG;MAC1C,IAAI;QAAE,QAAQ;QAAI,OAAO;QAAI,UAAU;MAAG;MAC1C,IAAI;QAAE,QAAQ;QAAI,OAAO;QAAI,UAAU;MAAG;MAC1C,IAAI;QAAE,QAAQ;QAAI,OAAO;QAAI,UAAU;MAAG;IAC5C;EACF;EAGA,aAAa,EAAE,SAAS;IAAE,SAAS;IAAM,WAAW;IAAW,WAAW;EAAE,EAAE;EAG9E,aAAa,EACX,SAAS;IACP,cAAc;IACd,aAAa;IACb,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;EAClB,EACF;EAGA,UAAU,EAAE,SAAS;IAAE,MAAM;IAAI,UAAU;EAAU,EAAE;EACvD,OAAO,EAAE,SAAS;IAAE,MAAM;IAAI,WAAW;IAAW,WAAW;EAAU,EAAE;EAC3E,QAAQ,EACN,SAAS;IACP,cAAc;IACd,OAAO;IACP,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;MAAE,YAAY;MAA4B,gBAAgB;IAAY;EAClF,EACF;EACA,cAAc,EACZ,SAAS;IACP,cAAc;IACd,OAAO;IACP,QAAQ;IACR,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,iBAAiB;EACnB,EACF;EACA,UAAU,EACR,SAAS;IAAE,QAAQ;IAAQ,cAAc;IAAO,OAAO;IAAmB,QAAQ;EAAO,EAC3F;EACA,QAAQ,EAAE,SAAS;IAAE,QAAQ;IAAI,OAAO;IAAW,YAAY;IAAM,aAAa;EAAK,EAAE;EACzF,OAAO,EACL,SAAS;IACP,UAAU;IACV,OAAO;IACP,WAAW;IACX,eAAe;IACf,mBAAmB;IACnB,QAAQ;IACR,cAAc;IACd,aAAa;IACb,aAAa;IACb,QAAQ;IACR,aAAa;IACb,cAAc,aAAa,EAAE,OAAA;IAC7B,oBAAoB;EACtB,EACF;EAGA,UAAU,EAAE,SAAS;IAAE,MAAM;IAAG,QAAQ;EAAW,EAAE;EAIrD,MAAM,EACJ,SAAS;IACP,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,gBAAgB;IAChB,oBAAoB;IACpB,SAAS;IACT,KAAK;IACL,cAAc;IACd,SAAS;IACT,aAAa;EACf,EACF;EACA,qBAAqB,EACnB,SAAS;IACP,UAAU;IACV,WAAW;IACX,eAAe;IACf,mBAAmB;IACnB,yBAAyB;IACzB,cAAc,aAAa,EAAE,OAAA;IAC7B,oBAAoB;EACtB,EACF;EACA,OAAO,EAAE,SAAS,EAAE,cAAc,MAAM,EAAE;EAG1C,QAAQ;IAKN,SAAS;MAAE,cAAc;MAAO,UAAU;IAAS;IACnD,OAAO;MACL,UAAU;MACV,UAAU;MACV,SAAS;MACT,QAAQ;MACR,QAAQ;MACR,YAAY;IACd;IACA,UAAU;MACR,OAAO;QACL,iBAAiB;QACjB,OAAO;QACP,WAAW,EAAE,iBAAiB,mBAAmB;MACnD;MAEA,SAAS;QACP,iBAAiB,EAAE;QACnB,OAAO,EAAE,YAAA;QACT,QAAQ;QACR,WAAW,EAAE,QAAQ,mBAAmB;MAC1C;MAEA,WAAW;QACT,iBAAiB;QACjB,OAAO,EAAE;QACT,QAAQ,aAAa,EAAE,SAAA;QACvB,WAAW;UAAE,iBAAiB,EAAE;UAAW,OAAO,EAAE,cAAA;QAAgB;MACtE;MAEA,UAAU;QACR,iBAAiB,EAAE;QACnB,OAAO,EAAE,aAAA;QACT,QAAQ;QACR,WAAW,EAAE,QAAQ,mBAAmB;MAC1C;MACA,MAAM;QACJ,iBAAiB,EAAE;QACnB,OAAO,EAAE,SAAA;QACT,QAAQ;QACR,WAAW,EAAE,QAAQ,mBAAmB;MAC1C;MACA,SAAS;QACP,iBAAiB,EAAE;QACnB,OAAO,EAAE,YAAA;QACT,QAAQ;QACR,WAAW,EAAE,QAAQ,mBAAmB;MAC1C;MACA,UAAU;QACR,iBAAiB,GAAG,EAAE,QAAA;QACtB,OAAO,GAAG,EAAE,aAAA,CAAA;QACZ,QAAQ;MACV;IACF;IAGA,OAAO;MACL,IAAI;QAAE,QAAQ;QAAI,UAAU;QAAI,SAAS;QAAU,YAAY;MAAI;MACnE,IAAI;QAAE,QAAQ;QAAI,UAAU;QAAI,SAAS;MAAS;MAClD,IAAI;QAAE,QAAQ;QAAI,UAAU;QAAI,SAAS;MAAS;MAClD,IAAI;QAAE,QAAQ;QAAI,UAAU;QAAI,SAAS;MAAS;IACpD;EACF;EACA,YAAY;IACV,SAAS,EAAE,cAAc,MAAM;IAC/B,UAAU;MACR,OAAO;QAAE,iBAAiB;QAAe,OAAO;MAAe;MAC/D,SAAS;QAAE,iBAAiB,EAAE;QAAS,OAAO,EAAE,YAAA;MAAc;MAC9D,WAAW;QAAE,iBAAiB,EAAE;QAAW,OAAO,EAAE,cAAA;MAAgB;MACpE,UAAU;QAAE,iBAAiB,EAAE;QAAU,OAAO,EAAE,aAAA;MAAe;MACjE,MAAM;QAAE,iBAAiB,EAAE;QAAM,OAAO,EAAE,SAAA;MAAW;MACrD,SAAS;QAAE,iBAAiB,EAAE;QAAS,OAAO,EAAE,YAAA;MAAc;MAC9D,UAAU;QACR,iBAAiB;QACjB,OAAO,GAAG,EAAE,aAAA,CAAA;MACd;IACF;IACA,OAAO;MACL,IAAI;QAAE,QAAQ;QAAI,WAAW;QAAI,OAAO;QAAI,UAAU;QAAI,UAAU;MAAG;MACvE,IAAI;QAAE,QAAQ;QAAI,WAAW;QAAI,OAAO;QAAI,UAAU;QAAI,UAAU;MAAG;MACvE,IAAI;QAAE,QAAQ;QAAI,WAAW;QAAI,OAAO;QAAI,UAAU;QAAI,UAAU;MAAG;MACvE,IAAI;QAAE,QAAQ;QAAI,WAAW;QAAI,OAAO;QAAI,UAAU;QAAI,UAAU;MAAG;IACzE;EACF;EACA,eAAe;IACb,OAAO,EAAE,UAAU,EAAE,eAAA,EAAiB;IAItC,UAAU;MACR,SAAS;QAAE,iBAAiB,EAAE,mBAAA;QAAsB,OAAO,EAAE;MAAQ;MACrE,WAAW;QAAE,iBAAiB,EAAE,qBAAA;QAAwB,OAAO,EAAE;MAAU;MAC3E,UAAU;QAAE,iBAAiB,EAAE,oBAAA;QAAuB,OAAO,EAAE;MAAS;MACxE,MAAM;QAAE,iBAAiB,EAAE,gBAAA;QAAmB,OAAO,EAAE;MAAK;MAC5D,SAAS;QAAE,iBAAiB,EAAE,mBAAA;QAAsB,OAAO,EAAE;MAAQ;IACvE;IACA,OAAO;MACL,IAAI,EAAE,QAAQ,OAAO;MACrB,IAAI,EAAE,QAAQ,OAAO;MACrB,IAAI,EAAE,QAAQ,OAAO;MACrB,IAAI,EAAE,QAAQ,QAAQ;IACxB;EACF;EACA,MAAM;IAKJ,SAAS,EAAE,cAAc,KAAK;IAC9B,OAAO;MAAE,UAAU;MAAU,iBAAiB,EAAE;IAAW;EAC7D;EACA,YAAY;IACV,OAAO,EAAE,SAAS,YAAY;IAC9B,UAAU;MACR,SAAS;QAAE,iBAAiB,EAAE;QAAS,OAAO,EAAE,YAAA;MAAc;MAC9D,WAAW;QAAE,iBAAiB,EAAE;QAAW,OAAO,EAAE,cAAA;MAAgB;MACpE,UAAU;QAAE,iBAAiB,EAAE;QAAU,OAAO,EAAE,aAAA;MAAe;MACjE,MAAM;QAAE,iBAAiB,EAAE;QAAM,OAAO,EAAE,SAAA;MAAW;MACrD,SAAS;QAAE,iBAAiB,EAAE;QAAS,OAAO,EAAE,YAAA;MAAc;IAChE;EACF;EACA,aAAa,EAAE,OAAO,EAAE,SAAS,YAAY,EAAE;EAC/C,YAAY,EACV,SAAS;IACP,QAAQ;IACR,cAAc;IACd,OAAO;IACP,kBAAkB;EACpB,EACF;EACA,WAAW,EACT,SAAS;IACP,OAAO;IACP,QAAQ;IACR,cAAc;IACd,WAAW;IACX,eAAe;IACf,eAAe;IACf,YAAY;IACZ,SAAS;IACT,kBAAkB;IAClB,oBAAoB;IACpB,WAAW;IACX,YAAY;IACZ,SAAS;IACT,eAAe;IACf,WAAW;IACX,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;EACtB,EACF;EACA,mBAAmB,EAAE,SAAS;IAAE,cAAc;IAAM,QAAQ;EAAI,EAAE;EAClE,WAAW,EACT,SAAS;IACP,KAAK;IACL,UAAU;IACV,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,yBAAyB;EAC3B,EACF;EAIA,MAAM,EACJ,SAAS;IACP,eAAe;IACf,eAAe;IACf,OAAO;IACP,QAAQ;IACR,cAAc;IACd,eAAe;IACf,eAAe;IACf,YAAY;IACZ,aAAa;IACb,SAAS;IACT,KAAK;EACP,EACF;EAGA,QAAQ,EACN,SAAS;IACP,OAAO;IACP,YAAY;IACZ,cAAc;IACd,aAAa;IACb,WAAW;EACb,EACF;EAGA,UAAU,EACR,SAAS;IACP,OAAO;IACP,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,UAAU;IACV,KAAK;EACP,EACF;EACA,UAAU,EACR,SAAS;IAAE,gBAAgB;IAAI,iBAAiB;IAAS,gBAAgB;EAAM,EACjF;EACA,QAAQ,EAAE,SAAS;IAAE,MAAM;IAAG,QAAQ;IAAK,OAAO;IAAG,aAAa;EAAG,EAAE;EACvE,QAAQ,EAAE,SAAS;IAAE,MAAM;IAAI,YAAY;IAAmB,WAAW;EAAU,EAAE;EACrF,SAAS,EACP,SAAS;IACP,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,OAAO;IACP,UAAU;EACZ,EACF;AACF;AAqCA,IAAM,WAAA,CAAY,UAChB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAErE,IAAM,YAAA,CAAgB,MAAS,aAAwC;AACrE,MAAI,CAAC,SAAU,QAAO;AACtB,QAAM,MAAM,EAAE,GAAG,KAAK;AACtB,aAAW,CAAC,KAAK,KAAA,KAAU,OAAO,QAAQ,QAAQ,EAChD,KAAI,GAAA,IAAO,SAAS,KAAK,KAAK,SAAS,IAAI,GAAA,CAAI,IAAI,UAAU,IAAI,GAAA,GAAM,KAAK,IAAI;AAElF,SAAO;AACT;AAEA,IAAa,cAAA,CAAe,EAC1B,IACA,MACA,QACA,QAAQ,CAAC,GACT,QAAQ,WACR,UAAU,aACV,SACA,WAAA,OAC4B;EAC5B;EACA;EACA;EACA,YAAY;EACZ,SAAS,UAAU,aAAa,MAAM,GAAG,OAAO;EAChD;EACA;EACA,SAAS;EACT,aAAa;EACb,OAAO;IAAE,GAAG;IAAW,GAAG;EAAM;EAChC,YAAY,UAAU,gBAAgB,MAAM,GAAG,UAAU;AAC3D;AA0BA,IAAa,sBAA2E;EACtF,MAAM;EACN,QAAQ;EACR,UAAU;AACZ;AAEA,IAAa,cAAsB,gBAAgB;EAAE,GAAG;EAAqB,MAAM;AAAQ,CAAC;AAE5F,IAAa,YAAsB,YAAY;EAC7C,IAAI;EACJ,MAAM;EACN,QAAQ;AACV,CAAC;AC5mBD,IAAa,aAAwC;EACnD,OAAO;IAAE,MAAM;IAAQ,KAAK;IAAO,IAAI;IAAO,IAAI;IAAO,IAAI;IAAO,IAAI;IAAO,KAAK;EAAM;EAC1F,QAAQ;IAAE,MAAM;IAAQ,KAAK;IAAO,IAAI;IAAO,IAAI;IAAQ,IAAI;IAAQ,IAAI;IAAQ,KAAK;EAAQ;EAChG,SAAS;IAAE,MAAM;IAAQ,KAAK;IAAO,IAAI;IAAQ,IAAI;IAAQ,IAAI;IAAQ,IAAI;IAAQ,KAAK;EAAS;AACrG;AAGA,IAAM,cAAA,CAAe,GAAW,MAAsB;AACpD,QAAM,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI;AAC5B,SAAO,IAAI,MAAM,MAAM,IAAI;AAC7B;AAMA,IAAa,iBAAA,CAAkB,YAAoB,cAAqC;AACtF,QAAM,YAAY,UAAU,IAAA,CAAK,MAAM,YAAY,YAAY,CAAC,CAAC;AACjE,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,MAAI,UAAU,MAAA,CAAO,MAAM,IAAI,EAAE,EAAG,QAAO;AAC3C,MAAI,UAAU,MAAA,CAAO,MAAM,KAAK,EAAE,EAAG,QAAO;AAC5C,MAAI,UAAU,KAAA,CAAM,MAAM,KAAK,GAAG,EAAG,QAAO;AAC5C,MAAI,UAAU,SAAS,KAAK,UAAU,MAAA,CAAO,MAAM,KAAK,GAAG,EAAG,QAAO;AACrE,SAAO;AACT;AAMA,IAAa,gBAAA,CAAiB,YAAmC;AAC/D,QAAM,EAAE,EAAA,IAAM,WAAW,OAAO;AAChC,MAAI,KAAK,KAAM,QAAO;AACtB,MAAI,KAAK,KAAM,QAAO;AACtB,MAAI,KAAK,KAAM,QAAO;AACtB,SAAO;AACT;AAOA,IAAa,iBAAA,CAAkB,UAAiD;AAC9E,QAAM,SAAS,MAAM,QAAQ,MAAM,IAAI,IAAI,MAAM,OAAO,CAAC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC;AAChF,QAAM,CAAC,SAAS,WAAW,QAAA,IAAY;AACvC,QAAM,SACJ,MAAM,WACL,MAAM,SAAS,IACZ,eAAe,WAAW,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,EAAE,IAAA,CAAK,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC,IAChF;AACN,QAAM,WAAW,MAAM,QAAQ,cAAc,OAAO;AAIpD,QAAM,YAAA,CAAa,QAAwB;AACzC,QAAI,CAAC,MAAM,KAAM,QAAO;AACxB,UAAM,QAAQ,WAAW,GAAG;AAC5B,WAAO,WAAW;MAAE,GAAG;MAAO,GAAG,KAAK,IAAI,MAAM,GAAG,eAAe,MAAM,IAAA,CAAK;IAAE,CAAC;EAClF;AACA,QAAM,UAA8C,EAAE,SAAS,UAAU,OAAO,EAAE;AAClF,MAAI,UAAW,SAAQ,YAAY,UAAU,SAAS;AACtD,MAAI,SAAU,SAAQ,WAAW,UAAU,QAAQ;AAEnD,QAAM,SAA0B,CAAC;AACjC,QAAM,OAAO;IAAE,MAAM;IAAS;IAAQ;IAAU;IAAS;EAAO;AAChE,QAAMC,eAAc,eAAe;IAAE,GAAG;IAAM,MAAM;EAAQ,CAAC;AAC7D,QAAMC,cAAa,eAAe;IAAE,GAAG;IAAM,MAAM;EAAO,CAAC;AAE3D,QAAM,aAAa,OAAO,OAAA,CAAQ,OAAO,UAAU,KAAK,IAAI,OAAO,MAAM,KAAK,GAAG,EAAE;AACnF,SAAO;IACL,aAAAD;IACA,YAAAC;IACA,OAAO,MAAM,QAAQ,WAAW,MAAM,KAAA,IAAS;IAC/C,cAAc,gBAAgBD,cAAa,OAAO;IAClD,aAAa,gBAAgBC,aAAY,MAAM;IAC/C,QAAQ;MAAE;MAAQ;MAAY,MAAM,OAAO,MAAA,CAAO,UAAU,MAAM,IAAI;IAAE;EAC1E;AACF;ACzEA,IAAM,QAAQ;AACd,IAAM,QAAA,CAAS,MAAuB,MAAM,KAAK,CAAC,IAAI,IAAI,IAAI,CAAA;AAE9D,IAAM,gBAAA,CAAiB,QAA4C,WACjE,OAAO,QAAQ,MAAM,EAClB,IAAA,CAAK,CAAC,GAAG,CAAA,MAAO,GAAG,MAAA,GAAS,MAAM,CAAC,CAAA,MAAO,CAAA,IAAK,EAC/C,KAAK,IAAI;AAOd,IAAM,iBAAA,MACJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACF,EAAE,KAAK,IAAI;AAEb,IAAM,cAAA,CACJ,YACA,aACA,aACA,cACA,UAEA;EACE,gBAAgB,UAAA;EAChB,UAAU,UAAA;EACV,YAAY,WAAA;EACZ,aAAa,WAAA;EACb,sBAAsB,WAAA;EACtB,4BAA4B,WAAA;EAC5B,cAAc,YAAA;EACd;EACA,GAAI,QAAQ,CAAC,UAAU,IAAI,CAAC;EAC5B;AACF,EAAE,KAAK,IAAI;AAWb,IAAa,gBAAA,CAAiB,UAA4C;AACxE,QAAM,EAAE,WAAW,MAAM,OAAO,QAAA,IAAY;AAC5C,QAAM,EAAE,aAAAC,cAAa,YAAAC,aAAY,OAAO,cAAc,aAAa,OAAA,IAAW,eAAe,KAAK;AAClG,QAAM,KAAM,KAAK,QAAQ,QAAQ,EAAE,KAAK;AAGxC,QAAM,aAAa;IACjB,YAFY,MAAM,QAAQ,MAAM,IAAI,IAAI,MAAM,OAAO,CAAC,MAAM,IAAI,GAE/C,KAAK,GAAG,CAAA;IACzB,MAAM,QAAQ,UAAU,MAAM,IAAA;IAC9B,MAAM,UAAU,YAAY,MAAM,MAAA;IAClC,MAAM,SAAS,WAAW,MAAM,KAAA;IAChC,CAAC,YAAY;EACf,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,QAAM,gBAAgB,GAAG,OAAO,OAAO,MAAA,sCAAyC,OAAO,UAAA,WACrF,OAAO,OAAO,WAAW,GAAG,OAAO,OAAO,OAAA,CAAQ,MAAM,CAAC,EAAE,IAAI,EAAE,MAAA,UAAO;AAG1E,QAAM,QAOA,CACJ;IACE,YAAY,GAAG,EAAA;IACf,aAAa,GAAG,IAAA;IAChB,aAAa;IACb,QAAQD;IACR,cAAc;IACd,SAAS;EACX,GACA,GAAI,WACA,CACE;IACE,YAAY,GAAG,EAAA;IACf,aAAa,GAAG,IAAA;IAChB,aAAa;IACb,QAAQC;IACR,cAAc;IACd,SAAS;EACX,CACF,IACA,CAAC,CACP;AA+DA,SAAO;IAAE,SA7DO;MACd;MACA,MAAM,IAAA;MACN;MACA,+DAA+D,UAAA;MAC/D;MACA;MACA,MAAM,aAAA;MACN;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,GAAG,MAAM,IAAA,CAAK,EAAE,aAAa,OAAA,MAAa,SAAS,WAAA;EAA4B,cAAc,QAAkC,IAAI,CAAA;;CAAS;MAC5I;MACA,GAAG,MAAM,IAAA,CAAK,EAAE,cAAc,QAAA,MAAc,SAAS,YAAA;EAA8B,cAAc,SAAmC,IAAI,CAAA;;CAAS;MACjJ,eAAe;MACf;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,GAAI,QACA;QAAC,wBAAwB,MAAM,KAAA;QAAc;EAAoB,cAAc,OAAiC,IAAI,CAAA;;QAAS;MAAE,IAC/H,CAAC;MACL,GAAG,MAAM,IAAA,CACN,EAAE,YAAY,aAAa,aAAa,aAAA,MACvC,GAAG,YAAY,YAAY,aAAa,aAAa,cAAc,CAAC,CAAC,KAAK,CAAA;CAC9E;MACA;MACA,gBAAgB,EAAA,cAAgB,MAAM,IAAA,CAAK,MAAM,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;MACxE;IACF,EAAE,KAAK,IAUE;IAAS,iBARM;MACtB;MACA,YAAY,EAAA;MACZ;MACA;MACA,oCAAoC,EAAA;IACtC,EAAE,KAAK,IAEW;IAAiB;IAAQ;EAAc;AAC3D;AGhMA,IAAa,eAAA,CAAgB,EAAE,QAAQ,MAAM,QAAA,MAAiC;AAC5E,SAAO,KAAK,MAAA,MAAY,IAAA,mBAAuB,OAAA;AACjD;AAEA,IAAa,gBAAA,CAAiB,EAAE,OAAO,SAAA,MAAyC;AAC9E,SAAO,aAAa,KAAK,IAAI,OAAO,aAAa,QAAQ;AAC3D;ACLA,IAAa,YAAuD;EAClE,SAAS;IACP,OAAO;MACL,QAAQ;MACR,MAAM;MACN,SAAS;IACX;IACA,UAAU;MACR,QAAQ;MACR,MAAM;MACN,SAAS;IACX;EACF;EACA,QAAQ;IACN,OAAO;MACL,QAAQ;MACR,MAAM;MACN,SAAS;IACX;IACA,UAAU;MACR,QAAQ;MACR,MAAM;MACN,SAAS;IACX;EACF;EACA,UAAU;IACR,OAAO;MACL,QAAQ;MACR,MAAM;MACN,SAAS;IACX;IACA,UAAU;MACR,QAAQ;MACR,MAAM;MACN,SAAS;IACX;EACF;EACA,YAAY;IACV,OAAO;MACL,QAAQ;MACR,MAAM;MACN,SAAS;IACX;IACA,UAAU;MACR,QAAQ;MACR,MAAM;MACN,SAAS;IACX;EACF;EACA,OAAO;IACL,OAAO;MACL,QAAQ;MACR,MAAM;MACN,SAAS;IACX;IACA,UAAU;MACR,QAAQ;MACR,MAAM;MACN,SAAS;IACX;EACF;AACF;AAEA,IAAa,eAAgD;EAC3D,SAAS,cAAc,UAAU,SAAA,CAAU;EAC3C,QAAQ,cAAc,UAAU,QAAA,CAAS;EACzC,UAAU,cAAc,UAAU,UAAA,CAAW;EAC7C,YAAY,cAAc,UAAU,YAAA,CAAa;EACjD,OAAO,cAAc,UAAU,OAAA,CAAQ;AACzC;AEpEA,IAAa,aAAqB,gBAAgB;EAAE,GAAG;EAAqB,MAAM;AAAO,CAAC;AAE1F,IAAa,YAAY,YAAY;EACnC,IAAI;EACJ,MAAM;EACN,QAAQ;EACR,SAAS,gBAAgB,YAAY,MAAM;AAC7C,CAAC;ACTD,IAAa,aAAa,YAAY;EACpC,IAAI;EACJ,MAAM;EACN,QAAQ;EACR,SAAS,gBAAgB,aAAa,OAAO;AAC/C,CAAC;ACJD,IAAa,YAAsC;EACjD;EACA;AACF;AAGA,IAAa,iBAAiB,OAAO,KAAK,SAAS,EAAE,CAAA;;;AKArD,IAAM,MAAM;AAIL,SAAS,qBAAqB,MAAiC;AACpE,QAAM,SAAS,MAAM,QAAQ,KAAK,KAAK,IAAI,KAAK,QAAQ,CAAC,KAAK,KAAK,GAAG;AAAA,IAAI,CAAC,MACzE,EAAE,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC;AAAA,EAC/B;AACA,QAAM,UAAU,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;AAChD,MAAI,QAAQ,QAAQ;AAClB,WAAO,2BAA2B,QAAQ,KAAK,IAAI,CAAC;AAAA,EACtD;AAEA,QAAM,EAAE,SAAS,iBAAiB,eAAe,OAAO,IAAI,cAAc;AAAA,IACxE,GAAG;AAAA,IACH,MAAM,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI;AAAA,EACxC,CAAC;AAED,QAAM,UAAU,OAAO,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI;AACnD,QAAM,YAAY,QAAQ,SACtB;AAAA;AAAA;AAAA,EAAuB,QAAQ,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,EAAE,UAAU,WAAW,EAAE,UAAU,OAAO,EAAE,KAAK,aAAa,EAAE,QAAQ,KAAK,EAAE,KAAK,IAAI,CAAC,KACpJ;AAEJ,SAAO;AAAA,IACL,KAAK,KAAK,QAAQ,OAAO;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,QAAQ;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG,aAAa,IAAI,SAAS;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACb;;;A7B7DA,IAAM,eAAe,EAAE,KAAK,CAAC,WAAW,OAAO,CAAC;AAGhD,SAAS,KAAK,MAAc;AAC1B,SAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAiB,MAAM,KAAK,CAAC,EAAE;AAC5D;AAEA,SAAS,SAAS,MAAc,IAAY;AAC1C,SAAO,KAAK,MAAM,IAAI,oBAAoB,EAAE,8DAA8D;AAC5G;AAEO,SAAS,kBAA6B;AAC3C,QAAM,SAAS,IAAI;AAAA,IACjB,EAAE,MAAM,qBAAqB,SAAe,KAAK,QAAQ;AAAA,IACzD;AAAA,MACE,cACE;AAAA,IASJ;AAAA,EACF;AAGA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAEF,aAAa;AAAA,QACX,WAAW,aAAa,SAAS;AAAA,QACjC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gDAAgD;AAAA,QACzF,QAAQ,EAAE,KAAK,CAAC,UAAU,QAAQ,YAAY,CAAC,EAAE,SAAS;AAAA,MAC5D;AAAA,IACF;AAAA,IACA,OAAO,EAAE,WAAW,UAAU,OAAO,MACnC,KAAW,oBAA0B,eAAe,EAAE,WAAW,UAAU,OAAO,CAAC,CAAC,CAAC;AAAA,EACzF;AAGA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAGF,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,6BAA6B,GAAG,WAAW,aAAa,SAAS,EAAE;AAAA,IAC5G;AAAA,IACA,OAAO,EAAE,IAAI,UAAU,MAAM;AAC3B,YAAM,IAAU,aAAa,EAAE;AAC/B,aAAO,IAAI,KAAW,gBAAgB,GAAG,SAAS,CAAC,IAAI,SAAS,aAAa,EAAE;AAAA,IACjF;AAAA,EACF;AAGA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,WAAW,aAAa,SAAS,EAAE;AAAA,IACpE;AAAA,IACA,OAAO,EAAE,IAAI,UAAU,MAAM;AAC3B,YAAM,IAAU,aAAa,EAAE;AAC/B,aAAO,IAAI,KAAW,eAAe,GAAG,SAAS,CAAC,IAAI,SAAS,aAAa,EAAE;AAAA,IAChF;AAAA,EACF;AAGA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAEF,aAAa;AAAA,QACX,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,QAC1B,MAAM,EAAE,KAAK,CAAC,SAAS,YAAY,CAAC,EAAE,SAAS;AAAA,QAC/C,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,OAAO,EAAE,MAAM,MAAM,MAAM,MAAM,KAAW,gBAAsB,WAAW,EAAE,MAAM,MAAM,MAAM,CAAC,CAAC,CAAC;AAAA,EACtG;AAGA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,2DAA2D,EAAE;AAAA,IACtG;AAAA,IACA,OAAO,EAAE,GAAG,MAAM;AAChB,YAAM,IAAU,SAAS,EAAE;AAC3B,aAAO,IAAI,KAAW,YAAY,CAAC,CAAC,IAAI,SAAS,SAAS,EAAE;AAAA,IAC9D;AAAA,EACF;AAGA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,IAChC;AAAA,IACA,OAAO,EAAE,GAAG,MAAM;AAChB,YAAM,IAAU,aAAa,EAAE;AAC/B,aAAO,IAAI,KAAW,iBAAiB,CAAC,CAAC,IAAI,SAAS,aAAa,EAAE;AAAA,IACvE;AAAA,EACF;AAGA,SAAO;AAAA,IACL;AAAA,IACA,EAAE,OAAO,wBAAwB,aAAa,kCAAkC,aAAa,CAAC,EAAE;AAAA,IAChG,YAAY,KAAW,gBAAsB,WAAW,CAAC,CAAC;AAAA,EAC5D;AAGA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAEF,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,6BAA6B,EAAE;AAAA,IACxE;AAAA,IACA,OAAO,EAAE,GAAG,MAAM;AAChB,YAAM,IAAU,SAAS,EAAE;AAC3B,aAAO,IAAI,KAAW,YAAY,CAAC,CAAC,IAAI,SAAS,SAAS,EAAE;AAAA,IAC9D;AAAA,EACF;AAGA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aACE;AAAA,MAMF,aAAa;AAAA,QACX,OAAO,EACJ,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACrD,SAAS,wFAAmF;AAAA,QAC/F,MAAM,EACH,KAAK,CAAC,SAAS,UAAU,SAAS,WAAW,YAAY,CAAC,EAC1D,SAAS,EACT,SAAS,wEAAwE;AAAA,QACpF,QAAQ,EACL,KAAK,CAAC,iBAAiB,aAAa,iBAAiB,sBAAsB,SAAS,CAAC,EACrF,SAAS,EACT,SAAS,oFAAoF;AAAA,QAChG,OAAO,EACJ,KAAK,CAAC,SAAS,UAAU,SAAS,CAAC,EACnC,SAAS,EACT,SAAS,6DAAwD;AAAA,QACpE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,0CAA0C;AAAA,QAC/E,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAAA,MACxF;AAAA,IACF;AAAA,IACA,OAAO,SAAS,KAAK,qBAAqB,IAAI,CAAC;AAAA,EACjD;AAGA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,aAAa;AAAA,MACb,aAAa;AAAA,QACX,OAAO,EAAE,OAAO;AAAA,QAChB,MAAM,EAAE,KAAK,CAAC,aAAa,SAAS,SAAS,WAAW,CAAC,EAAE,SAAS;AAAA,MACtE;AAAA,IACF;AAAA,IACA,OAAO,EAAE,OAAO,KAAK,MAAM,KAAW,aAAa,OAAa,OAAO,OAAO,IAAI,CAAC,CAAC;AAAA,EACtF;AAEA,oBAAkB,MAAM;AACxB,SAAO;AACT;AAGA,SAAS,kBAAkB,QAAyB;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,EAAE,OAAO,sBAAsB,aAAa,uEAAuE,UAAU,mBAAmB;AAAA,IAChJ,OAAO,SAAS;AAAA,MACd,UAAU,CAAC,EAAE,KAAK,IAAI,MAAM,UAAU,oBAAoB,MAAM,KAAK,UAAgB,MAAM,MAAM,CAAC,EAAE,CAAC;AAAA,IACvG;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,IAAI,iBAAiB,yBAAyB;AAAA,MAC5C,MAAM,aAAa;AAAA,QACjB,WAAiB,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,oBAAoB,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,aAAa,EAAE,QAAQ,EAAE;AAAA,MAC1H;AAAA,IACF,CAAC;AAAA,IACD,EAAE,OAAO,iBAAiB,aAAa,+BAA+B,UAAU,gBAAgB;AAAA,IAChG,OAAO,KAAK,EAAE,GAAG,MAAM;AACrB,YAAM,IAAU,aAAa,OAAO,EAAE,CAAC;AACvC,aAAO,EAAE,UAAU,CAAC,EAAE,KAAK,IAAI,MAAM,UAAU,iBAAiB,MAAM,IAAU,gBAAgB,CAAC,IAAI,sBAAsB,EAAE,GAAG,CAAC,EAAE;AAAA,IACrI;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,IAAI,iBAAiB,qBAAqB;AAAA,MACxC,MAAM,aAAa;AAAA,QACjB,WAAiB,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,gBAAgB,EAAE,EAAE,IAAI,MAAM,EAAE,IAAI,aAAa,GAAG,EAAE,IAAI,MAAM,EAAE,KAAK,GAAG,EAAE;AAAA,MAC/H;AAAA,IACF,CAAC;AAAA,IACD,EAAE,OAAO,aAAa,aAAa,mBAAmB,UAAU,gBAAgB;AAAA,IAChF,OAAO,KAAK,EAAE,GAAG,MAAM;AACrB,YAAM,IAAU,SAAS,OAAO,EAAE,CAAC;AACnC,aAAO,EAAE,UAAU,CAAC,EAAE,KAAK,IAAI,MAAM,UAAU,iBAAiB,MAAM,IAAU,YAAY,CAAC,IAAI,kBAAkB,EAAE,GAAG,CAAC,EAAE;AAAA,IAC7H;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,IAAI,iBAAiB,qBAAqB;AAAA,MACxC,MAAM,aAAa;AAAA,QACjB,WAAiB,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,gBAAgB,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,aAAa,EAAE,YAAY,EAAE;AAAA,MACtH;AAAA,IACF,CAAC;AAAA,IACD,EAAE,OAAO,sBAAsB,aAAa,iDAAiD,UAAU,gBAAgB;AAAA,IACvH,OAAO,KAAK,EAAE,GAAG,MAAM;AACrB,YAAM,IAAU,SAAS,OAAO,EAAE,CAAC;AACnC,aAAO,EAAE,UAAU,CAAC,EAAE,KAAK,IAAI,MAAM,UAAU,iBAAiB,MAAM,IAAU,YAAY,CAAC,IAAI,kBAAkB,EAAE,GAAG,CAAC,EAAE;AAAA,IAC7H;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,IAAI,iBAAiB,yBAAyB;AAAA,MAC5C,MAAM,aAAa;AAAA,QACjB,WAAiB,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,oBAAoB,EAAE,EAAE,IAAI,MAAM,GAAG,EAAE,IAAI,eAAe,aAAa,EAAE,QAAQ,EAAE;AAAA,MAC1I;AAAA,IACF,CAAC;AAAA,IACD,EAAE,OAAO,kBAAkB,aAAa,4CAA4C,UAAU,gBAAgB;AAAA,IAC9G,OAAO,KAAK,EAAE,GAAG,MAAM;AACrB,YAAM,IAAU,aAAa,OAAO,EAAE,CAAC;AACvC,aAAO,EAAE,UAAU,CAAC,EAAE,KAAK,IAAI,MAAM,UAAU,iBAAiB,MAAM,IAAU,iBAAiB,CAAC,IAAI,sBAAsB,EAAE,GAAG,CAAC,EAAE;AAAA,IACtI;AAAA,EACF;AACF;","names":["background","lightColors","darkColors","lightColors","darkColors"]}