blume 2.2.1 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/cli/{chunk-080mfch6.js → chunk-0wt5amrk.js} +15 -15
- package/dist/cli/{chunk-k45sq16q.js → chunk-0xyedh7k.js} +39 -23
- package/dist/cli/{chunk-k45sq16q.js.map → chunk-0xyedh7k.js.map} +3 -3
- package/dist/cli/{chunk-f260jdrn.js → chunk-0ynr0fr7.js} +5 -5
- package/dist/cli/{chunk-e1n41w9m.js → chunk-1ay3hzn0.js} +3 -3
- package/dist/cli/{chunk-b680sv30.js → chunk-2f6btenb.js} +10 -8
- package/dist/cli/chunk-2f6btenb.js.map +13 -0
- package/dist/cli/{chunk-gwy55cx3.js → chunk-426rytg6.js} +2 -2
- package/dist/cli/{chunk-9h8mh2tk.js → chunk-5f96yq2c.js} +1 -1
- package/dist/cli/{chunk-x60e15st.js → chunk-5xq12jz7.js} +17 -17
- package/dist/cli/{chunk-x7bh6d9j.js → chunk-6xag1c83.js} +4 -4
- package/dist/cli/{chunk-487b95qy.js → chunk-88q28zav.js} +41 -25
- package/dist/cli/{chunk-487b95qy.js.map → chunk-88q28zav.js.map} +3 -3
- package/dist/cli/{chunk-yg8ckc3g.js → chunk-88zkpg89.js} +2 -2
- package/dist/cli/{chunk-ppa6mg4d.js → chunk-8fm3b4vm.js} +6 -6
- package/dist/cli/{chunk-rtvgmg2j.js → chunk-8h2t2vyj.js} +2 -2
- package/dist/cli/{chunk-2ssh60qh.js → chunk-982qfeny.js} +6 -6
- package/dist/cli/{chunk-t2h8pwy1.js → chunk-9emfspcp.js} +4 -4
- package/dist/cli/{chunk-9jqmq5hv.js → chunk-akj2p7k1.js} +6 -6
- package/dist/cli/{chunk-beb0z983.js → chunk-b664x65a.js} +16 -16
- package/dist/cli/{chunk-kmswjxj9.js → chunk-b7n58hgj.js} +3 -3
- package/dist/cli/{chunk-fnxgtjeq.js → chunk-c0qddrxr.js} +1 -1
- package/dist/cli/{chunk-p834rkcn.js → chunk-g62vnvaw.js} +5 -5
- package/dist/cli/{chunk-zxd5jrgx.js → chunk-gc7knd2s.js} +76 -34
- package/dist/cli/{chunk-zxd5jrgx.js.map → chunk-gc7knd2s.js.map} +4 -4
- package/dist/cli/{chunk-r5nm9w0c.js → chunk-hwjspffr.js} +105 -36
- package/dist/cli/{chunk-r5nm9w0c.js.map → chunk-hwjspffr.js.map} +11 -10
- package/dist/cli/{chunk-40vk8kgf.js → chunk-p4fe7tax.js} +7 -7
- package/dist/cli/{chunk-34wap3ed.js → chunk-psg2za5z.js} +3 -3
- package/dist/cli/{chunk-hktq4j5r.js → chunk-pxp1y6yz.js} +16 -10
- package/dist/cli/{chunk-hktq4j5r.js.map → chunk-pxp1y6yz.js.map} +4 -4
- package/dist/cli/{chunk-qcyxkj44.js → chunk-qax1aekz.js} +43 -17
- package/dist/cli/chunk-qax1aekz.js.map +15 -0
- package/dist/cli/{chunk-h0qwdbem.js → chunk-r5ajrw1g.js} +2 -2
- package/dist/cli/{chunk-q1wwrxzw.js → chunk-rc2qk3qx.js} +3 -3
- package/dist/cli/chunk-rc2qk3qx.js.map +10 -0
- package/dist/cli/{chunk-69rjf786.js → chunk-ry2ymbxf.js} +5 -5
- package/dist/cli/{chunk-gxhcf2hs.js → chunk-t43g7v22.js} +2 -2
- package/dist/cli/{chunk-ydqzkhjn.js → chunk-x0jqyq1g.js} +6 -6
- package/dist/cli/{chunk-aafhwx74.js → chunk-x25s4gph.js} +1 -1
- package/dist/cli/{chunk-nqna8dzp.js → chunk-xkx216rd.js} +17 -17
- package/dist/cli/{chunk-etckvbrh.js → chunk-xv8nkt56.js} +14 -14
- package/dist/cli/{chunk-hn3g2b89.js → chunk-yrmw5n2b.js} +9 -9
- package/dist/cli/{chunk-4zxh25hc.js → chunk-zgca0vxs.js} +2 -2
- package/dist/cli/{chunk-c5bjxq8v.js → chunk-zj6bcx0n.js} +2 -2
- package/dist/cli/{chunk-1ch3ct3r.js → chunk-zjfwzrvd.js} +14 -14
- package/dist/cli/{chunk-j4nfgn2j.js → chunk-znwhf37a.js} +1 -1
- package/dist/cli/index.js +18 -18
- package/dist/types/ai/ask-context.d.ts +8 -0
- package/dist/types/ai/link-text.d.ts +5 -0
- package/dist/types/ai/relative-links.d.ts +26 -6
- package/dist/types/core/config-input.d.ts +35 -1
- package/dist/types/core/data.d.ts +14 -0
- package/dist/types/core/last-modified.d.ts +33 -18
- package/dist/types/core/links.d.ts +16 -0
- package/dist/types/core/schema.d.ts +16 -1
- package/dist/types/core/types.d.ts +10 -0
- package/dist/types/deploy/sitemap.d.ts +9 -0
- package/dist/types/search/documents.d.ts +3 -1
- package/dist/types/search/fold.d.ts +33 -0
- package/dist/types/search/orama-index.d.ts +4 -4
- package/dist/types/seo/jsonld.d.ts +33 -0
- package/docs/configuration/search.mdx +2 -2
- package/docs/content/frontmatter.mdx +1 -1
- package/docs/content/i18n.mdx +1 -1
- package/docs/content/sources/remote-mdx.mdx +1 -1
- package/docs/discoverability/open-graph.mdx +16 -1
- package/docs/discoverability/sitemap-and-robots.mdx +12 -0
- package/docs/discoverability/structured-data.mdx +44 -0
- package/package.json +1 -1
- package/src/ai/ask-context.ts +52 -14
- package/src/ai/ask-data.ts +4 -1
- package/src/ai/ask-tools.ts +17 -5
- package/src/ai/link-text.ts +6 -0
- package/src/ai/llms.ts +1 -7
- package/src/ai/markdown.ts +8 -4
- package/src/ai/relative-links.ts +155 -48
- package/src/ai/site-skill.ts +1 -4
- package/src/astro/generate.ts +7 -0
- package/src/astro/templates.ts +36 -20
- package/src/components/layout/PageActions.astro +45 -18
- package/src/components/layout/PageLayout.astro +25 -12
- package/src/components/layout/RootLayout.astro +8 -1
- package/src/components/layout/locale-redirect.ts +38 -19
- package/src/components/layout/search/types.ts +12 -4
- package/src/core/config-input.ts +34 -1
- package/src/core/config.ts +5 -2
- package/src/core/data.ts +14 -0
- package/src/core/last-modified.ts +80 -34
- package/src/core/links.ts +43 -2
- package/src/core/manifest.ts +2 -0
- package/src/core/project-graph.ts +83 -43
- package/src/core/schema.ts +47 -9
- package/src/core/types.ts +10 -0
- package/src/deploy/sitemap.ts +127 -49
- package/src/openapi/proxy.ts +5 -1
- package/src/search/documents.ts +34 -11
- package/src/search/fold.ts +175 -0
- package/src/search/orama-index.ts +40 -49
- package/src/seo/jsonld.ts +100 -23
- package/dist/cli/chunk-b680sv30.js.map +0 -13
- package/dist/cli/chunk-q1wwrxzw.js.map +0 -10
- package/dist/cli/chunk-qcyxkj44.js.map +0 -14
- /package/dist/cli/{chunk-080mfch6.js.map → chunk-0wt5amrk.js.map} +0 -0
- /package/dist/cli/{chunk-f260jdrn.js.map → chunk-0ynr0fr7.js.map} +0 -0
- /package/dist/cli/{chunk-e1n41w9m.js.map → chunk-1ay3hzn0.js.map} +0 -0
- /package/dist/cli/{chunk-gwy55cx3.js.map → chunk-426rytg6.js.map} +0 -0
- /package/dist/cli/{chunk-9h8mh2tk.js.map → chunk-5f96yq2c.js.map} +0 -0
- /package/dist/cli/{chunk-x60e15st.js.map → chunk-5xq12jz7.js.map} +0 -0
- /package/dist/cli/{chunk-x7bh6d9j.js.map → chunk-6xag1c83.js.map} +0 -0
- /package/dist/cli/{chunk-yg8ckc3g.js.map → chunk-88zkpg89.js.map} +0 -0
- /package/dist/cli/{chunk-ppa6mg4d.js.map → chunk-8fm3b4vm.js.map} +0 -0
- /package/dist/cli/{chunk-rtvgmg2j.js.map → chunk-8h2t2vyj.js.map} +0 -0
- /package/dist/cli/{chunk-2ssh60qh.js.map → chunk-982qfeny.js.map} +0 -0
- /package/dist/cli/{chunk-t2h8pwy1.js.map → chunk-9emfspcp.js.map} +0 -0
- /package/dist/cli/{chunk-9jqmq5hv.js.map → chunk-akj2p7k1.js.map} +0 -0
- /package/dist/cli/{chunk-beb0z983.js.map → chunk-b664x65a.js.map} +0 -0
- /package/dist/cli/{chunk-kmswjxj9.js.map → chunk-b7n58hgj.js.map} +0 -0
- /package/dist/cli/{chunk-fnxgtjeq.js.map → chunk-c0qddrxr.js.map} +0 -0
- /package/dist/cli/{chunk-p834rkcn.js.map → chunk-g62vnvaw.js.map} +0 -0
- /package/dist/cli/{chunk-40vk8kgf.js.map → chunk-p4fe7tax.js.map} +0 -0
- /package/dist/cli/{chunk-34wap3ed.js.map → chunk-psg2za5z.js.map} +0 -0
- /package/dist/cli/{chunk-h0qwdbem.js.map → chunk-r5ajrw1g.js.map} +0 -0
- /package/dist/cli/{chunk-69rjf786.js.map → chunk-ry2ymbxf.js.map} +0 -0
- /package/dist/cli/{chunk-gxhcf2hs.js.map → chunk-t43g7v22.js.map} +0 -0
- /package/dist/cli/{chunk-ydqzkhjn.js.map → chunk-x0jqyq1g.js.map} +0 -0
- /package/dist/cli/{chunk-aafhwx74.js.map → chunk-x25s4gph.js.map} +0 -0
- /package/dist/cli/{chunk-nqna8dzp.js.map → chunk-xkx216rd.js.map} +0 -0
- /package/dist/cli/{chunk-etckvbrh.js.map → chunk-xv8nkt56.js.map} +0 -0
- /package/dist/cli/{chunk-hn3g2b89.js.map → chunk-yrmw5n2b.js.map} +0 -0
- /package/dist/cli/{chunk-4zxh25hc.js.map → chunk-zgca0vxs.js.map} +0 -0
- /package/dist/cli/{chunk-c5bjxq8v.js.map → chunk-zj6bcx0n.js.map} +0 -0
- /package/dist/cli/{chunk-1ch3ct3r.js.map → chunk-zjfwzrvd.js.map} +0 -0
- /package/dist/cli/{chunk-j4nfgn2j.js.map → chunk-znwhf37a.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/core/ui-packs/ar.ts", "../src/core/ui-packs/bg.ts", "../src/core/ui-packs/bn.ts", "../src/core/ui-packs/ca.ts", "../src/core/ui-packs/cs.ts", "../src/core/ui-packs/da.ts", "../src/core/ui-packs/de.ts", "../src/core/ui-packs/el.ts", "../src/core/ui-packs/es.ts", "../src/core/ui-packs/fa.ts", "../src/core/ui-packs/fi.ts", "../src/core/ui-packs/fr.ts", "../src/core/ui-packs/he.ts", "../src/core/ui-packs/hi.ts", "../src/core/ui-packs/hr.ts", "../src/core/ui-packs/hu.ts", "../src/core/ui-packs/id.ts", "../src/core/ui-packs/it.ts", "../src/core/ui-packs/ja.ts", "../src/core/ui-packs/ko.ts", "../src/core/ui-packs/nl.ts", "../src/core/ui-packs/no.ts", "../src/core/ui-packs/pl.ts", "../src/core/ui-packs/pt-br.ts", "../src/core/ui-packs/pt.ts", "../src/core/ui-packs/ro.ts", "../src/core/ui-packs/ru.ts", "../src/core/ui-packs/sk.ts", "../src/core/ui-packs/sr.ts", "../src/core/ui-packs/sv.ts", "../src/core/ui-packs/th.ts", "../src/core/ui-packs/tr.ts", "../src/core/ui-packs/uk.ts", "../src/core/ui-packs/vi.ts", "../src/core/ui-packs/zh-tw.ts", "../src/core/ui-packs/zh.ts", "../src/core/ui-packs/index.ts", "../src/core/i18n.ts", "../src/openapi/references.ts", "../src/core/sources/collection.ts", "../src/sources/filesystem.ts", "../src/core/adapter.ts", "../src/sources/shared.ts", "../src/core/custom-pages.ts", "../src/core/localizable.ts", "../src/core/changelog-index.ts", "../src/astro/pages.ts", "../src/core/hidden-pages.ts", "../src/core/manifest.ts", "../src/core/links.ts", "../src/core/locale-links.ts", "../src/core/probe.ts", "../src/core/redirect-patterns.ts", "../src/core/relative-files.ts", "../src/core/static-files.ts", "../src/cli/init/scaffold.ts", "../src/core/package-json.ts", "../src/sources/contentful.ts", "../src/sources/github-releases.ts", "../src/sources/mdx-remote.ts", "../src/sources/notion.ts", "../src/sources/obsidian.ts", "../src/sources/payload.ts", "../src/sources/sanity.ts", "../src/sources/strapi.ts", "../src/cli/init/starter-spec.ts", "../src/deploy/platforms/paths.ts", "../src/deploy/platforms/cloudflare.ts", "../src/ai/api/paths.ts", "../src/core/api-name.ts", "../src/ai/api-catalog.ts", "../src/ai/mcp/discovery.ts", "../src/ai/skills.ts", "../src/core/frontmatter.ts", "../src/core/yaml.ts", "../src/ai/tar.ts", "../src/ai/ai-catalog.ts", "../src/ai/link-headers.ts", "../src/ai/markdown.ts", "../src/core/content-assets.ts", "../src/core/code-fences.ts", "../src/core/sources/cache.ts", "../src/core/sources/normalize.ts", "../src/markdown/features.ts", "../src/core/heading-markers.ts", "../src/core/mdx-elements.ts", "../src/core/builtin-tags.ts", "../src/core/navigation.ts", "../src/core/ordering-prefix.ts", "../src/core/pinned-ids.ts", "../src/core/related.ts", "../src/core/schema.ts", "../src/ai/ask.ts", "../src/core/unrecognized-keys.ts", "../src/analytics/schema.ts", "../src/analytics/adobe.ts", "../src/analytics/amplitude.ts", "../src/analytics/inline.ts", "../src/analytics/clarity.ts", "../src/analytics/clearbit.ts", "../src/analytics/clics.ts", "../src/analytics/cloudflare.ts", "../src/analytics/databuddy.ts", "../src/analytics/fathom.ts", "../src/analytics/google-analytics.ts", "../src/analytics/google-tag-manager.ts", "../src/analytics/heap.ts", "../src/analytics/hightouch.ts", "../src/analytics/hotjar.ts", "../src/analytics/logrocket.ts", "../src/analytics/mixpanel.ts", "../src/analytics/one-dollar-stats.ts", "../src/analytics/pirsch.ts", "../src/analytics/plausible.ts", "../src/analytics/posthog.ts", "../src/analytics/script.ts", "../src/analytics/segment.ts", "../src/analytics/vercel.ts", "../src/captcha/schema.ts", "../src/captcha/hcaptcha.ts", "../src/captcha/turnstile.ts", "../src/components/openapi/helpers.ts", "../src/components/openapi/security.ts", "../src/components/content/api-page.ts", "../src/consent/schema.ts", "../src/consent/ethyca.ts", "../src/consent/native.ts", "../src/consent/osano.ts", "../src/deploy/adapters/registry.ts", "../src/deploy/adapters/types.ts", "../src/deploy/adapters/cloudflare.ts", "../src/deploy/adapters/netlify.ts", "../src/deploy/adapters/node.ts", "../src/deploy/adapters/vercel.ts", "../src/narration/provider.ts", "../src/ratelimit/schema.ts", "../src/ratelimit/cloudflare.ts", "../src/ratelimit/memory.ts", "../src/ratelimit/unkey.ts", "../src/ratelimit/upstash.ts", "../src/reference/options.ts", "../src/reference/schema.ts", "../src/reference/asyncapi.ts", "../src/reference/graphql.ts", "../src/reference/openapi.ts", "../src/reference/scalar.ts", "../src/search/adapters/orama.ts", "../src/search/adapters/registry.ts", "../src/search/adapters/algolia.ts", "../src/search/adapters/flexsearch.ts", "../src/search/adapters/mixedbread.ts", "../src/search/adapters/orama-cloud.ts", "../src/search/adapters/pagefind.ts", "../src/search/adapters/typesense.ts", "../src/seo/metatags.ts", "../src/seo/x-handle.ts", "../src/sources/registry.ts", "../src/sources/custom.ts", "../src/theme/fonts.ts", "../src/core/footer.ts", "../src/core/github.ts", "../src/core/i18n-ui.ts", "../src/core/mcp-clients.ts", "../src/core/open-in-chat.ts", "../src/core/page-modes.ts", "../src/core/standard-schema.ts", "../src/core/variables.ts", "../src/core/versions.ts", "../src/core/sources/read.ts", "../src/core/includes.ts", "../src/ai/agent-surface.ts", "../src/core/changelog-list.ts", "../src/ai/changelog-markdown.ts", "../src/ai/component-markdown.ts", "../src/components/content/api-field.ts", "../src/components/content/youtube.ts", "../src/ai/static-expression.ts", "../src/deploy/rss.ts", "../src/ai/relative-links.ts", "../src/components/openapi/snippets.ts", "../src/openapi/model.ts", "../src/openapi/asyncapi.ts", "../src/openapi/overlay.ts", "../src/openapi/checks.ts", "../src/openapi/graphql.ts", "../src/openapi/parse.ts", "../src/core/node-require.ts", "../src/openapi/graphql-build.ts", "../src/openapi/spec-dependency-error.ts", "../src/openapi/render-mdx.ts", "../src/core/safe-links.ts", "../src/core/safe-href.ts", "../src/core/sources/lower.ts", "../src/core/text-width.ts", "../src/openapi/sentence.ts", "../src/openapi/signature.ts", "../src/openapi/source.ts", "../src/ai/changelog-components.ts", "../src/components/openapi/code-samples.ts", "../src/components/openapi/example-panels.ts", "../src/ai/operation-details.ts", "../src/ai/openapi-components.ts", "../src/ai/serializers.ts", "../src/ai/visibility.ts", "../src/ai/llms.ts", "../src/ratelimit/wrangler.ts", "../src/core/sources/json.ts", "../src/core/powered-by.ts", "../src/ai/web-bot-auth.ts", "../src/deploy/headers.ts", "../src/deploy/cloudflare-negotiation.ts", "../src/core/markdown-mirrors.ts", "../src/deploy/redirects.ts", "../src/deploy/platforms/netlify.ts", "../src/deploy/node-headers.ts", "../src/deploy/platforms/node.ts", "../src/deploy/platforms/vercel.ts", "../src/deploy/function-bundle.ts", "../src/deploy/vercel-negotiation.ts", "../src/deploy/platforms/static.ts", "../src/deploy/platforms/index.ts", "../src/core/project.ts", "../src/core/config.ts", "../src/theme/color.ts", "../src/theme/palette.ts", "../src/core/deployment-env.ts", "../src/core/load-module.ts"],
|
|
3
|
+
"sources": ["../src/core/ui-packs/ar.ts", "../src/core/ui-packs/bg.ts", "../src/core/ui-packs/bn.ts", "../src/core/ui-packs/ca.ts", "../src/core/ui-packs/cs.ts", "../src/core/ui-packs/da.ts", "../src/core/ui-packs/de.ts", "../src/core/ui-packs/el.ts", "../src/core/ui-packs/es.ts", "../src/core/ui-packs/fa.ts", "../src/core/ui-packs/fi.ts", "../src/core/ui-packs/fr.ts", "../src/core/ui-packs/he.ts", "../src/core/ui-packs/hi.ts", "../src/core/ui-packs/hr.ts", "../src/core/ui-packs/hu.ts", "../src/core/ui-packs/id.ts", "../src/core/ui-packs/it.ts", "../src/core/ui-packs/ja.ts", "../src/core/ui-packs/ko.ts", "../src/core/ui-packs/nl.ts", "../src/core/ui-packs/no.ts", "../src/core/ui-packs/pl.ts", "../src/core/ui-packs/pt-br.ts", "../src/core/ui-packs/pt.ts", "../src/core/ui-packs/ro.ts", "../src/core/ui-packs/ru.ts", "../src/core/ui-packs/sk.ts", "../src/core/ui-packs/sr.ts", "../src/core/ui-packs/sv.ts", "../src/core/ui-packs/th.ts", "../src/core/ui-packs/tr.ts", "../src/core/ui-packs/uk.ts", "../src/core/ui-packs/vi.ts", "../src/core/ui-packs/zh-tw.ts", "../src/core/ui-packs/zh.ts", "../src/core/ui-packs/index.ts", "../src/core/i18n.ts", "../src/openapi/references.ts", "../src/core/sources/collection.ts", "../src/sources/filesystem.ts", "../src/core/adapter.ts", "../src/sources/shared.ts", "../src/core/custom-pages.ts", "../src/core/localizable.ts", "../src/core/changelog-index.ts", "../src/astro/pages.ts", "../src/core/hidden-pages.ts", "../src/core/manifest.ts", "../src/core/links.ts", "../src/core/locale-links.ts", "../src/core/probe.ts", "../src/core/redirect-patterns.ts", "../src/core/relative-files.ts", "../src/core/static-files.ts", "../src/cli/init/scaffold.ts", "../src/core/package-json.ts", "../src/sources/contentful.ts", "../src/sources/github-releases.ts", "../src/sources/mdx-remote.ts", "../src/sources/notion.ts", "../src/sources/obsidian.ts", "../src/sources/payload.ts", "../src/sources/sanity.ts", "../src/sources/strapi.ts", "../src/cli/init/starter-spec.ts", "../src/deploy/platforms/paths.ts", "../src/deploy/platforms/cloudflare.ts", "../src/ai/api/paths.ts", "../src/core/api-name.ts", "../src/ai/api-catalog.ts", "../src/ai/mcp/discovery.ts", "../src/ai/skills.ts", "../src/core/frontmatter.ts", "../src/core/yaml.ts", "../src/ai/tar.ts", "../src/ai/ai-catalog.ts", "../src/ai/link-headers.ts", "../src/ai/markdown.ts", "../src/core/content-assets.ts", "../src/core/code-fences.ts", "../src/core/sources/cache.ts", "../src/core/sources/normalize.ts", "../src/markdown/features.ts", "../src/core/heading-markers.ts", "../src/core/mdx-elements.ts", "../src/core/builtin-tags.ts", "../src/core/navigation.ts", "../src/core/ordering-prefix.ts", "../src/core/pinned-ids.ts", "../src/core/related.ts", "../src/core/schema.ts", "../src/ai/ask.ts", "../src/core/unrecognized-keys.ts", "../src/analytics/schema.ts", "../src/analytics/adobe.ts", "../src/analytics/amplitude.ts", "../src/analytics/inline.ts", "../src/analytics/clarity.ts", "../src/analytics/clearbit.ts", "../src/analytics/clics.ts", "../src/analytics/cloudflare.ts", "../src/analytics/databuddy.ts", "../src/analytics/fathom.ts", "../src/analytics/google-analytics.ts", "../src/analytics/google-tag-manager.ts", "../src/analytics/heap.ts", "../src/analytics/hightouch.ts", "../src/analytics/hotjar.ts", "../src/analytics/logrocket.ts", "../src/analytics/mixpanel.ts", "../src/analytics/one-dollar-stats.ts", "../src/analytics/pirsch.ts", "../src/analytics/plausible.ts", "../src/analytics/posthog.ts", "../src/analytics/script.ts", "../src/analytics/segment.ts", "../src/analytics/vercel.ts", "../src/captcha/schema.ts", "../src/captcha/hcaptcha.ts", "../src/captcha/turnstile.ts", "../src/components/openapi/helpers.ts", "../src/components/openapi/security.ts", "../src/components/content/api-page.ts", "../src/consent/schema.ts", "../src/consent/ethyca.ts", "../src/consent/native.ts", "../src/consent/osano.ts", "../src/deploy/adapters/registry.ts", "../src/deploy/adapters/types.ts", "../src/deploy/adapters/cloudflare.ts", "../src/deploy/adapters/netlify.ts", "../src/deploy/adapters/node.ts", "../src/deploy/adapters/vercel.ts", "../src/narration/provider.ts", "../src/ratelimit/schema.ts", "../src/ratelimit/cloudflare.ts", "../src/ratelimit/memory.ts", "../src/ratelimit/unkey.ts", "../src/ratelimit/upstash.ts", "../src/reference/options.ts", "../src/reference/schema.ts", "../src/reference/asyncapi.ts", "../src/reference/graphql.ts", "../src/reference/openapi.ts", "../src/reference/scalar.ts", "../src/search/adapters/orama.ts", "../src/search/adapters/registry.ts", "../src/search/adapters/algolia.ts", "../src/search/adapters/flexsearch.ts", "../src/search/adapters/mixedbread.ts", "../src/search/adapters/orama-cloud.ts", "../src/search/adapters/pagefind.ts", "../src/search/adapters/typesense.ts", "../src/seo/metatags.ts", "../src/seo/x-handle.ts", "../src/sources/registry.ts", "../src/sources/custom.ts", "../src/theme/fonts.ts", "../src/core/footer.ts", "../src/core/github.ts", "../src/core/i18n-ui.ts", "../src/core/mcp-clients.ts", "../src/core/open-in-chat.ts", "../src/core/page-modes.ts", "../src/core/standard-schema.ts", "../src/core/variables.ts", "../src/core/versions.ts", "../src/core/sources/read.ts", "../src/core/includes.ts", "../src/ai/agent-surface.ts", "../src/core/changelog-list.ts", "../src/ai/changelog-markdown.ts", "../src/ai/component-markdown.ts", "../src/components/content/api-field.ts", "../src/components/content/youtube.ts", "../src/ai/static-expression.ts", "../src/deploy/rss.ts", "../src/ai/link-text.ts", "../src/ai/relative-links.ts", "../src/components/openapi/snippets.ts", "../src/openapi/model.ts", "../src/openapi/asyncapi.ts", "../src/openapi/overlay.ts", "../src/openapi/checks.ts", "../src/openapi/graphql.ts", "../src/openapi/parse.ts", "../src/core/node-require.ts", "../src/openapi/graphql-build.ts", "../src/openapi/spec-dependency-error.ts", "../src/openapi/render-mdx.ts", "../src/core/safe-links.ts", "../src/core/safe-href.ts", "../src/core/sources/lower.ts", "../src/core/text-width.ts", "../src/openapi/sentence.ts", "../src/openapi/signature.ts", "../src/openapi/source.ts", "../src/ai/changelog-components.ts", "../src/components/openapi/code-samples.ts", "../src/components/openapi/example-panels.ts", "../src/ai/operation-details.ts", "../src/ai/openapi-components.ts", "../src/ai/serializers.ts", "../src/ai/visibility.ts", "../src/ai/llms.ts", "../src/ratelimit/wrangler.ts", "../src/core/sources/json.ts", "../src/core/powered-by.ts", "../src/ai/web-bot-auth.ts", "../src/deploy/headers.ts", "../src/deploy/cloudflare-negotiation.ts", "../src/core/markdown-mirrors.ts", "../src/deploy/redirects.ts", "../src/deploy/platforms/netlify.ts", "../src/deploy/node-headers.ts", "../src/deploy/platforms/node.ts", "../src/deploy/platforms/vercel.ts", "../src/deploy/function-bundle.ts", "../src/deploy/vercel-negotiation.ts", "../src/deploy/platforms/static.ts", "../src/deploy/platforms/index.ts", "../src/core/project.ts", "../src/core/config.ts", "../src/theme/color.ts", "../src/theme/palette.ts", "../src/core/deployment-env.ts", "../src/core/load-module.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { UIStringsOverride } from \"../i18n-ui.ts\";\n\n/** Arabic (ar) UI strings. */\nexport const ar: UIStringsOverride = {\n actions: {\n addToCursor: \"إضافة إلى Cursor\",\n addToVscode: \"إضافة إلى VS Code\",\n askAboutCode: \"اسأل عن هذه الشيفرة\",\n connectMcp: \"الاتصال بـ MCP\",\n copied: \"تم النسخ!\",\n copyClaudeCode: \"نسخ أمر Claude Code\",\n copyCode: \"نسخ الكود\",\n copyCodex: \"نسخ أمر Codex\",\n copyFailed: \"فشل النسخ\",\n copyMarkdown: \"نسخ بصيغة Markdown\",\n copyServerUrl: \"نسخ عنوان URL للخادم\",\n edit: \"التعديل على GitHub\",\n export: \"تصدير\",\n exportEpub: \"التصدير إلى EPUB\",\n exportPdf: \"التصدير إلى PDF\",\n generating: \"جارٍ الإنشاء…\",\n openIn: \"فتح في {name}\",\n openInChat: \"فتح في المحادثة\",\n openInChatPrompt: \"اقرأ {url} حتى أتمكن من طرح أسئلة حول هذه الصفحة.\",\n scrollToTop: \"العودة إلى الأعلى\",\n },\n assistant: {\n ai: \"الذكاء الاصطناعي\",\n clear: \"مسح المحادثة\",\n close: \"إغلاق\",\n copy: \"نسخ المحادثة\",\n empty: \"اطرح سؤالاً حول الوثائق.\",\n error: \"عذراً، حدث خطأ ما.\",\n explainCode: \"اشرح هذه الشيفرة.\",\n label: \"اطرح سؤالاً\",\n open: \"فتح المساعد\",\n placeholder: \"اطرح سؤالاً…\",\n rateLimited: \"لقد طرحت الكثير من الأسئلة. حاول مرة أخرى بعد بضع دقائق.\",\n removeCode: \"إزالة الشيفرة\",\n send: \"إرسال\",\n support: \"تواصل مع الدعم\",\n supportSubject: \"سؤال من التوثيق\",\n tip: \"نصيحة: يمكنك فتح المحادثة وإغلاقها باستخدام\",\n title: \"المساعد\",\n verifyFailed: \"تعذّر التحقق من أنك إنسان. حاول مرة أخرى.\",\n you: \"أنت\",\n },\n banner: { dismiss: \"إغلاق الإعلان\" },\n changelog: {\n description: \"تحديثات المنتج وملاحظات الإصدارات.\",\n empty: \"لا توجد إدخالات في سجل التغييرات بعد.\",\n title: \"سجل التغييرات\",\n },\n consent: {\n accept: \"قبول\",\n decline: \"رفض\",\n label: \"الموافقة على ملفات تعريف الارتباط\",\n message: \"نودّ استخدام ملفات تعريف الارتباط لفهم كيفية استخدام هذا التوثيق.\",\n policy: \"سياسة الخصوصية\",\n settings: \"إعدادات ملفات تعريف الارتباط\",\n },\n content: {\n code: \"الكود\",\n copyColor: \"نسخ اللون {name} {value}\",\n copyPrompt: \"نسخ الموجّه\",\n default: \"الافتراضي\",\n diagramError: \"تعذّر عرض هذا المخطط.\",\n forks: \"التفرعات\",\n preview: \"معاينة\",\n prop: \"الخاصية\",\n selectTab: \"اختيار علامة تبويب\",\n selectView: \"اختيار طريقة العرض\",\n showLess: \"عرض أقل\",\n showMore: \"عرض المزيد\",\n stars: \"النجوم\",\n tab: \"علامة التبويب {n}\",\n type: \"النوع\",\n update: \"تحديث\",\n },\n feedback: {\n comment: \"أخبرنا بالمزيد (اختياري)\",\n no: \"لا\",\n question: \"هل كانت هذه الصفحة مفيدة؟\",\n send: \"إرسال\",\n thanks: \"شكراً على ملاحظاتك!\",\n yes: \"نعم\",\n },\n languageSwitcher: { label: \"اللغة\", untranslated: \"غير مترجم\" },\n narration: {\n cueDanger: \"خطر.\",\n cueInfo: \"معلومة.\",\n cueNote: \"ملاحظة.\",\n cueSection: \"قسم قابل للتوسيع.\",\n cueStep: \"الخطوة {n}.\",\n cueSuccess: \"نجاح.\",\n cueTab: \"علامة التبويب {title}.\",\n cueTip: \"نصيحة.\",\n cueWarning: \"تحذير.\",\n error: \"تعذّر تحميل القراءة الصوتية.\",\n follow: \"متابعة القراءة\",\n label: \"استمع إلى هذه الصفحة\",\n minutes: \"{n} دقيقة\",\n next: \"الجملة التالية\",\n pause: \"إيقاف مؤقت\",\n play: \"تشغيل\",\n previous: \"الجملة السابقة\",\n progress: \"تقدّم القراءة\",\n speed: \"سرعة التشغيل\",\n stop: \"إيقاف الاستماع\",\n },\n nav: {\n back: \"رجوع\",\n breadcrumb: \"مسار التنقل\",\n closeNavigation: \"إغلاق التنقل\",\n deprecated: \"مهمل\",\n featured: \"مميز\",\n githubRepository: \"مستودع GitHub\",\n navigation: \"التنقل\",\n opensInNewTab: \"يفتح في علامة تبويب جديدة\",\n primary: \"رئيسي\",\n sections: \"الأقسام\",\n toggleNavigation: \"تبديل التنقل\",\n toggleTheme: \"تبديل سمة الألوان\",\n },\n notFound: {\n description: \"لم نتمكن من العثور على الصفحة التي تبحث عنها.\",\n home: \"العودة إلى الصفحة الرئيسية\",\n title: \"الصفحة غير موجودة\",\n },\n page: {\n lastUpdated: \"آخر تحديث في\",\n next: \"التالي\",\n pagination: \"ترقيم الصفحات\",\n previous: \"السابق\",\n related: \"صفحات ذات صلة\",\n skipToContent: \"الانتقال إلى المحتوى\",\n },\n search: {\n all: \"الكل\",\n allLanguages: \"جميع اللغات\",\n assistant: \"المساعد\",\n assistantHint: \"احصل على إجابة فورية من الذكاء الاصطناعي\",\n button: \"بحث\",\n devOnly: \"البحث متاح في إصدار الإنتاج.\",\n docs: \"الوثائق\",\n error: \"حدث خطأ ما. يرجى المحاولة مرة أخرى.\",\n label: \"البحث في الوثائق\",\n latest: \"الأحدث\",\n navigate: \"تنقل\",\n noResults: \"لم يتم العثور على نتائج.\",\n open: \"فتح\",\n placeholder: \"البحث في الوثائق…\",\n popular: \"شائع\",\n preview: \"معاينة\",\n results: \"النتائج\",\n },\n toc: { title: \"في هذه الصفحة\" },\n};\n",
|
|
6
6
|
"import type { UIStringsOverride } from \"../i18n-ui.ts\";\n\n/** Bulgarian (bg) UI strings. */\nexport const bg: UIStringsOverride = {\n actions: {\n addToCursor: \"Добави в Cursor\",\n addToVscode: \"Добави във VS Code\",\n askAboutCode: \"Попитай за този код\",\n connectMcp: \"Свържи се с MCP\",\n copied: \"Копирано!\",\n copyClaudeCode: \"Копирай командата на Claude Code\",\n copyCode: \"Копирай кода\",\n copyCodex: \"Копирай командата на Codex\",\n copyFailed: \"Копирането не бе успешно\",\n copyMarkdown: \"Копирай като Markdown\",\n copyServerUrl: \"Копирай URL на сървъра\",\n edit: \"Редактирай в GitHub\",\n export: \"Експортирай\",\n exportEpub: \"Експортирай в EPUB\",\n exportPdf: \"Експортирай в PDF\",\n generating: \"Генериране…\",\n openIn: \"Отвори в {name}\",\n openInChat: \"Отвори в чата\",\n openInChatPrompt:\n \"Прочетете {url}, за да мога да задавам въпроси за тази страница.\",\n scrollToTop: \"Нагоре\",\n },\n assistant: {\n ai: \"ИИ\",\n clear: \"Изчисти разговора\",\n close: \"Затвори\",\n copy: \"Копирай разговора\",\n empty: \"Задайте въпрос за документацията.\",\n error: \"Съжаляваме, нещо се обърка.\",\n explainCode: \"Обясни този код.\",\n label: \"Задайте въпрос\",\n open: \"Отваряне на асистента\",\n placeholder: \"Задайте въпрос…\",\n rateLimited:\n \"Зададохте много въпроси. Опитайте отново след няколко минути.\",\n removeCode: \"Премахни кода\",\n send: \"Изпрати\",\n support: \"Свържете се с поддръжката\",\n supportSubject: \"Въпрос от документацията\",\n tip: \"Съвет: Можете да отваряте и затваряте чата с\",\n title: \"Асистент\",\n verifyFailed: \"Не успяхме да потвърдим, че сте човек. Опитайте отново.\",\n you: \"Вие\",\n },\n banner: { dismiss: \"Затваряне на съобщението\" },\n changelog: {\n description: \"Актуализации на продукта и бележки към изданията.\",\n empty: \"Все още няма записи в дневника на промените.\",\n title: \"Дневник на промените\",\n },\n consent: {\n accept: \"Приемам\",\n decline: \"Отказвам\",\n label: \"Съгласие за бисквитки\",\n message:\n \"Бихме искали да използваме бисквитки, за да разберем как се използва тази документация.\",\n policy: \"Политика за поверителност\",\n settings: \"Настройки за бисквитки\",\n },\n content: {\n code: \"Код\",\n copyColor: \"Копирай цвета {name} {value}\",\n copyPrompt: \"Копирай подканата\",\n default: \"По подразбиране\",\n diagramError: \"Тази диаграма не можа да бъде показана.\",\n forks: \"Разклонения\",\n preview: \"Преглед\",\n prop: \"Свойство\",\n selectTab: \"Избери раздел\",\n selectView: \"Избери изглед\",\n showLess: \"Покажи по-малко\",\n showMore: \"Покажи още\",\n stars: \"Звезди\",\n tab: \"Раздел {n}\",\n type: \"Тип\",\n update: \"Актуализация\",\n },\n feedback: {\n comment: \"Разкажете ни повече (по избор)\",\n no: \"Не\",\n question: \"Беше ли полезна тази страница?\",\n send: \"Изпрати\",\n thanks: \"Благодарим за обратната връзка!\",\n yes: \"Да\",\n },\n languageSwitcher: { label: \"Език\", untranslated: \"Непреведено\" },\n narration: {\n cueDanger: \"Опасност.\",\n cueInfo: \"Информация.\",\n cueNote: \"Бележка.\",\n cueSection: \"Разгъваем раздел.\",\n cueStep: \"Стъпка {n}.\",\n cueSuccess: \"Успех.\",\n cueTab: \"Раздел {title}.\",\n cueTip: \"Съвет.\",\n cueWarning: \"Предупреждение.\",\n error: \"Аудиоверсията не можа да бъде заредена.\",\n follow: \"Следи четенето\",\n label: \"Слушай тази страница\",\n minutes: \"{n} мин\",\n next: \"Следващо изречение\",\n pause: \"Пауза\",\n play: \"Пусни\",\n previous: \"Предишно изречение\",\n progress: \"Напредък на четенето\",\n speed: \"Скорост на възпроизвеждане\",\n stop: \"Спри слушането\",\n },\n nav: {\n back: \"Назад\",\n breadcrumb: \"Навигационна пътека\",\n closeNavigation: \"Затвори навигацията\",\n deprecated: \"остаряло\",\n featured: \"Препоръчано\",\n githubRepository: \"Хранилище в GitHub\",\n navigation: \"Навигация\",\n opensInNewTab: \"Отваря се в нов раздел\",\n primary: \"Основно\",\n sections: \"Раздели\",\n toggleNavigation: \"Превключи навигацията\",\n toggleTheme: \"Превключи цветовата тема\",\n },\n notFound: {\n description: \"Не успяхме да намерим страницата, която търсите.\",\n home: \"Обратно към началната страница\",\n title: \"Страницата не е намерена\",\n },\n page: {\n lastUpdated: \"Последна актуализация\",\n next: \"Напред\",\n pagination: \"Пагинация\",\n previous: \"Назад\",\n related: \"Свързани страници\",\n skipToContent: \"Към съдържанието\",\n },\n search: {\n all: \"Всички\",\n allLanguages: \"Всички езици\",\n assistant: \"Асистент\",\n assistantHint: \"Получете незабавен отговор от ИИ\",\n button: \"Търсене\",\n devOnly: \"Търсенето е достъпно в производствената компилация.\",\n docs: \"Документация\",\n error: \"Нещо се обърка. Моля, опитайте отново.\",\n label: \"Търсене в документацията\",\n latest: \"най-нова\",\n navigate: \"навигация\",\n noResults: \"Няма намерени резултати.\",\n open: \"отвори\",\n placeholder: \"Търсене в документацията…\",\n popular: \"Популярни\",\n preview: \"преглед\",\n results: \"Резултати\",\n },\n toc: { title: \"На тази страница\" },\n};\n",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"import type { UIStrings } from \"./i18n-ui.ts\";\nimport { resolveLocalizable } from \"./localizable.ts\";\nimport type { LocalizableLabel, ResolvedConfig } from \"./schema.ts\";\nimport { sourcesOfKind } from \"./sources/collection.ts\";\nimport type { PageRecord } from \"./types.ts\";\n\n/** Where the changelog timeline index is served. */\nexport const CHANGELOG_INDEX_ROUTE = \"/changelog\";\n\n/**\n * Whether the site serves a changelog index at {@link CHANGELOG_INDEX_ROUTE}:\n * there are visible `type: changelog` entries, or a release-backed source\n * (whose index must resolve even when a fetch fails). Blume generates the\n * timeline there unless a custom or content page already owns the route —\n * either way the route is servable, which is what navigation needs to point a\n * `/changelog` tab at the index rather than its newest entry.\n */\nexport const hasChangelogIndex = (\n pages: Pick<PageRecord, \"contentType\" | \"meta\">[],\n config: ResolvedConfig\n): boolean =>\n pages.some(\n (page) =>\n page.contentType === \"changelog\" &&\n !(page.meta.draft || page.meta.sidebar.hidden)\n ) || sourcesOfKind(config, \"github-releases\").length > 0;\n\n/**\n * A locale's UI strings with the index's title and description taken from\n * the `changelog` config where it sets them (a string, or a per-locale map\n * resolved like a header label), so every surface that reads the\n * `changelog` strings (the page, its OG card, its Markdown mirror) agrees.\n */\nexport const withChangelogIndexText = (\n config: ResolvedConfig,\n ui: UIStrings,\n locale?: string\n): UIStrings => {\n const text = (label: LocalizableLabel | undefined, fallback: string) =>\n label === undefined\n ? fallback\n : resolveLocalizable(label, locale, config.i18n?.defaultLocale);\n return {\n ...ui,\n changelog: {\n ...ui.changelog,\n description: text(\n config.changelog?.description,\n ui.changelog.description\n ),\n title: text(config.changelog?.title, ui.changelog.title),\n },\n };\n};\n",
|
|
51
51
|
"import {\n CHANGELOG_INDEX_ROUTE,\n hasChangelogIndex,\n} from \"../core/changelog-index.ts\";\nimport { staticSegments } from \"../core/custom-pages.ts\";\nimport type { BlumeProject } from \"../core/project-graph.ts\";\nimport { referenceRoutes } from \"../openapi/references.ts\";\nimport type { BlumePageRoute } from \"./integration.ts\";\n\nexport {\n customStaticRoutes,\n discoverPages,\n discoverPagesSync,\n} from \"../core/custom-pages.ts\";\n\n/**\n * Whether the project already owns `route` — through a custom `.astro` page\n * (injected, so matched on `pattern`) or a content page (matched on `route`).\n * Used to skip a generated default page (e.g. `/404`, `/changelog`) so a\n * user-authored page overrides it without a route collision.\n */\nexport const routeIsTaken = (\n pages: { pattern: string }[],\n contentPages: { route: string }[],\n route: string\n): boolean =>\n pages.some((page) => page.pattern === route) ||\n contentPages.some((page) => page.route === route);\n\n/** A custom-page route that should get a generated OG card. */\nexport interface OgCustomRoute {\n /** `og/<slug>.png` path segment; `index` for the site root. */\n slug: string;\n /** Card headline. */\n title: string;\n}\n\n/**\n * Whether the generated `/changelog` index route exists for this project —\n * `generate.ts` (which writes the page) and the sitemap/link validator all\n * share this check: there are visible `type: changelog` entries — or a\n * release-backed changelog source, whose route must resolve even when a fetch\n * fails — and no user content or custom page already owns `/changelog`.\n */\nexport const hasGeneratedChangelog = (\n project: BlumeProject,\n userPages: { pattern: string }[]\n): boolean =>\n hasChangelogIndex(project.graph.pages, project.config) &&\n !routeIsTaken(userPages, project.graph.pages, CHANGELOG_INDEX_ROUTE);\n\n/**\n * Every route a navigation entry (a tab, selector item, featured link, header\n * action, or CTA) may point at: content routes, custom `.astro` pages, the\n * generated changelog, and reference routes (so a tab an author points at one\n * still validates). `generateRuntime` and `blume doctor` both check\n * `validateNavTargets` against it, so they flag the same entries.\n */\nexport const navTargetRoutes = (\n project: BlumeProject,\n userPages: { pattern: string }[]\n): Set<string> => {\n const routes = new Set<string>([\n ...project.graph.routes.keys(),\n ...userPages.map((page) => page.pattern),\n ...referenceRoutes(project.config),\n ]);\n if (hasGeneratedChangelog(project, userPages)) {\n routes.add(CHANGELOG_INDEX_ROUTE);\n }\n return routes;\n};\n\nconst humanizeSegment = (segment: string): string =>\n segment\n .split(/[-_]/u)\n .filter(Boolean)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n\n/**\n * Pick the custom-page routes that should get a generated Open Graph card, with\n * the card's slug and text. OG is otherwise content-route only, so a custom page\n * — most importantly the landing `/`, the most-shared URL — would have no card.\n *\n * Dynamic (`[param]`) routes and private segments (`_partials`, `.well-known`)\n * are skipped: they aren't shareable pages. A `titles` entry (`seo.og.titles`,\n * keyed by route) names a card outright — the only way to say \"CLI\" when the\n * segment humanizes to \"Cli\". Otherwise the home is titled with the site title\n * and a deeper page from its last path segment. The card's brand lockup,\n * description, and footer come from the resolved config at render time.\n */\nexport const customOgRoutes = (\n pages: BlumePageRoute[],\n siteTitle: string,\n titles: Record<string, string> = {}\n): OgCustomRoute[] => {\n // Keys normalized to `/`-joined segments so `cli`, `/cli`, and `/cli/` all\n // address the page served at `/cli` (and `/` addresses the home).\n const overrides = new Map(\n Object.entries(titles).map(([route, title]) => [\n `/${route.split(\"/\").filter(Boolean).join(\"/\")}`,\n title,\n ])\n );\n const seen = new Set<string>();\n const routes: OgCustomRoute[] = [];\n // Extracted so the skip paths become early `return`s (one `continue` budget\n // per loop under the lint rule) instead of `continue` statements.\n const collectRoute = (pattern: string): void => {\n const segments = staticSegments(pattern);\n if (segments === null) {\n return;\n }\n const slug = segments.length === 0 ? \"index\" : segments.join(\"/\");\n if (seen.has(slug)) {\n return;\n }\n seen.add(slug);\n const last = segments.at(-1);\n routes.push({\n slug,\n title:\n overrides.get(`/${segments.join(\"/\")}`) ??\n (last ? humanizeSegment(last) : siteTitle),\n });\n };\n for (const { pattern } of pages) {\n collectRoute(pattern);\n }\n return routes;\n};\n",
|
|
52
52
|
"import type { ContentGraph, NavNode, PageRecord } from \"./types.ts\";\n\n/**\n * Hidden pages: `sidebar.hidden` (or the top-level `hidden` shorthand) takes a\n * page out of the navigation, and so out of everything that lists the site's\n * pages for readers, crawlers, and agents — the sitemap, site search,\n * llms.txt, the site skill, the MCP server, and the JSON API.\n *\n * On a folder's index page the flag only drops the page's own row, the\n * duplicate of the group row above it: the group row still links the page,\n * so it is still in the navigation and stays listed everywhere else. Only a\n * group row counts; a hidden page that an explicit sidebar lists as a page\n * row is a contradiction `BLUME_NAV_HIDDEN_IN_SIDEBAR` reports instead. The\n * home page — a tree's root: `/`, or a locale's `/fr` or a version's `/v1.0`\n * — is the page the root URL serves, so hiding it only drops its row too.\n */\n\n/** Linked routes per graph, collected once and read for every page. */\nconst linkedRoutesByGraph = new WeakMap<ContentGraph, ReadonlySet<string>>();\n\nconst collectGroupRoutes = (nodes: NavNode[], into: Set<string>): void => {\n for (const node of nodes) {\n if (node.kind === \"group\") {\n if (node.route) {\n into.add(node.route);\n }\n collectGroupRoutes(node.children, into);\n }\n }\n};\n\n/**\n * Every route a sidebar group row links to — a generated folder's index page,\n * or an explicit group's `root` — and every tree's root, across the current\n * docs' trees (one per locale under i18n) and every archived version's.\n */\nconst linkedRoutes = (graph: ContentGraph): ReadonlySet<string> => {\n const cached = linkedRoutesByGraph.get(graph);\n if (cached) {\n return cached;\n }\n // A graph assembled outside `buildContentGraph` (a builder under test) may\n // carry pages alone; with no trees, no group row links anything.\n const trees = [\n graph.navigation,\n ...Object.values(graph.navigationByLocale ?? {}),\n ...Object.values(graph.navigationByVersion ?? {}).flatMap((byLocale) =>\n Object.values(byLocale)\n ),\n ];\n const routes = new Set<string>();\n for (const tree of trees) {\n if (tree?.root) {\n routes.add(tree.root);\n }\n collectGroupRoutes(tree?.sidebar ?? [], routes);\n }\n linkedRoutesByGraph.set(graph, routes);\n return routes;\n};\n\n/** Whether a page is hidden from the navigation (see the module comment). */\nexport const isHiddenPage = (page: PageRecord, graph: ContentGraph): boolean =>\n page.meta.sidebar.hidden && !linkedRoutes(graph).has(page.route);\n",
|
|
53
|
-
"import { mountBasePath } from \"./base-path.ts\";\nimport { isHiddenPage } from \"./hidden-pages.ts\";\nimport { localizeRoute, resolveFallbackLocale } from \"./i18n.ts\";\nimport type { ResolvedConfig } from \"./schema.ts\";\nimport type {\n BlumeManifest,\n ContentGraph,\n PageRecord,\n ProjectContext,\n RouteAlternate,\n RouteManifestEntry,\n VersionAlternate,\n} from \"./types.ts\";\nimport { getBlumeVersion } from \"./version.ts\";\n\n/**\n * Key for the same logical page across versions within one locale: the\n * version- and locale-agnostic route plus the locale code. NUL never appears\n * in either part, so the join is unambiguous.\n */\nconst versionAlternateKey = (versionKey: string, locale: string): string =>\n `${versionKey}\\u0000${locale}`;\n\n/**\n * Get-or-create the shared alternate list for a (versionKey, locale) pair.\n * Lists are attached to route entries by reference and mutated as fallback\n * routes materialize, then sorted once at the end — every holder sees the\n * final list.\n */\nconst versionAlternatesFor = (\n byKey: Map<string, VersionAlternate[]>,\n versionKey: string,\n locale: string\n): VersionAlternate[] => {\n const key = versionAlternateKey(versionKey, locale);\n const existing = byKey.get(key);\n if (existing) {\n return existing;\n }\n const list: VersionAlternate[] = [];\n byKey.set(key, list);\n return list;\n};\n\n/** The current manifest schema version. */\nexport const MANIFEST_VERSION = 1;\n\n/**\n * Whether a page may be indexed on its own merits — not author-excluded and not\n * hidden (unless hidden pages are opted in). This is independent of whether the\n * site search provider is enabled, so features like the MCP server can index\n * docs even when on-page search is off.\n */\nexport const contentIndexable = (\n page: PageRecord,\n config: ResolvedConfig,\n graph: ContentGraph\n): boolean =>\n !page.meta.search.exclude &&\n (!isHiddenPage(page, graph) || config.search.indexing.includeHiddenPages);\n\n/**\n * Fallback materialization: render the fallback locale's content at the\n * localized URL for any translation a non-default locale is missing, so static\n * output is fully prerendered (render-fallback, no client redirect). Fallback\n * routes are not indexed and carry no `hreflang` of their own.\n */\n/**\n * The description a page's `<head>` emits — `seo.description` over the front\n * matter `description` — mirrored onto its route so the OG card's subtitle\n * matches the page's `og:description`, and the summary page indexes like\n * `llms.txt` give it.\n */\nexport const metaDescription = (page: PageRecord): string | undefined =>\n page.meta.seo.description ?? page.description;\n\nconst buildFallbackRoutes = (\n graph: ContentGraph,\n i18n: NonNullable<ResolvedConfig[\"i18n\"]>,\n alternatesByKey: Map<string, RouteAlternate[]>,\n basePath: string,\n versionAlternatesByKey: Map<string, VersionAlternate[]> | undefined\n): RouteManifestEntry[] => {\n const fallback = resolveFallbackLocale(i18n);\n if (!fallback) {\n return [];\n }\n // A monolingual page (a GitHub release) publishes in one language only, so it\n // gets no copy at every other locale's URL: those would be duplicates of the\n // same text under a translated chrome.\n const fallbackPages = new Map(\n graph.pages.flatMap((page) =>\n page.locale === fallback && !page.monolingual\n ? [[page.translationKey, page] as const]\n : []\n )\n );\n const routes: RouteManifestEntry[] = [];\n for (const { code } of i18n.locales) {\n if (code === fallback) {\n continue;\n }\n const present = new Set(\n graph.pages.flatMap((page) =>\n page.locale === code ? [page.translationKey] : []\n )\n );\n for (const [key, source] of fallbackPages) {\n if (present.has(key)) {\n continue;\n }\n const path = mountBasePath(basePath, localizeRoute(key, code, i18n));\n // A fallback route is a real prerendered page, so it registers as a\n // version alternate too — the switcher on a sibling version's page\n // lands here instead of bouncing to the version root. Its own path is\n // recorded (not the fallback source's), keeping the target in-locale.\n const versionAlternates: VersionAlternate[] = versionAlternatesByKey\n ? versionAlternatesFor(versionAlternatesByKey, source.versionKey, code)\n : [];\n if (versionAlternatesByKey) {\n versionAlternates.push({ path, version: source.version });\n }\n routes.push({\n alternates: alternatesByKey.get(key) ?? [],\n collection: source.collection ?? \"docs\",\n contentType: source.contentType,\n description: metaDescription(source),\n draft: source.meta.draft,\n editUrl: source.editUrl,\n entryId: source.entryId ?? source.source.ref,\n fallback: true,\n hidden: isHiddenPage(source, graph),\n id: source.id,\n indexable: false,\n lastModified: source.lastModified,\n locale: code,\n monolingual: source.monolingual,\n path,\n source: source.source,\n sourcePath: source.sourcePath,\n title: source.title,\n version: source.version,\n versionAlternates,\n });\n }\n }\n return routes;\n};\n\n/** Build the runtime manifest that bridges core and the generated Astro app. */\nexport const buildManifest = (options: {\n context: ProjectContext;\n config: ResolvedConfig;\n graph: ContentGraph;\n}): BlumeManifest => {\n const { context, config, graph } = options;\n const searchEnabled = config.search.provider.mode !== \"none\";\n const { i18n } = config;\n\n // Real translations per logical page, for `hreflang` and the switcher. Built\n // only under i18n; a single-locale page has no alternates.\n const alternatesByKey = new Map<string, RouteAlternate[]>();\n if (i18n) {\n for (const page of graph.pages) {\n const list = alternatesByKey.get(page.translationKey) ?? [];\n list.push({ locale: page.locale, path: page.route });\n alternatesByKey.set(page.translationKey, list);\n }\n }\n\n // The same logical page across versions, within each locale — for the\n // version switcher and the canonical-to-latest lookup. Built only under\n // versioning; lists are shared by reference and finalized (fallback routes\n // appended, then sorted) before the manifest is returned.\n const versionAlternatesByKey = config.versions\n ? new Map<string, VersionAlternate[]>()\n : undefined;\n if (versionAlternatesByKey) {\n for (const page of graph.pages) {\n versionAlternatesFor(\n versionAlternatesByKey,\n page.versionKey,\n page.locale\n ).push({ path: page.route, version: page.version });\n }\n }\n\n const routes: RouteManifestEntry[] = graph.pages.map((page) => ({\n aiExclude: page.meta.ai.exclude,\n alternates: alternatesByKey.get(page.translationKey) ?? [],\n collection: page.collection ?? \"docs\",\n contentType: page.contentType,\n description: metaDescription(page),\n draft: page.meta.draft,\n editUrl: page.editUrl,\n entryId: page.entryId ?? page.source.ref,\n hidden: isHiddenPage(page, graph),\n id: page.id,\n indexable: searchEnabled && contentIndexable(page, config, graph),\n lastModified: page.lastModified,\n locale: page.locale,\n monolingual: page.monolingual,\n path: page.route,\n source: page.source,\n sourcePath: page.sourcePath,\n title: page.title,\n version: page.version,\n versionAlternates: versionAlternatesByKey\n ? versionAlternatesFor(\n versionAlternatesByKey,\n page.versionKey,\n page.locale\n )\n : [],\n }));\n\n if (i18n) {\n routes.push(\n ...buildFallbackRoutes(\n graph,\n i18n,\n alternatesByKey,\n config.basePath,\n versionAlternatesByKey\n )\n );\n }\n\n // Alternate lists read current-first, then archived versions in configured\n // (switcher) order. Sorted once here — every route holding a list by\n // reference sees the final ordering.\n if (versionAlternatesByKey && config.versions) {\n const rank = new Map<string, number>(\n config.versions.archived.map((version, index) => [version.id, index + 1])\n );\n for (const list of versionAlternatesByKey.values()) {\n list.sort(\n (a, b) => (rank.get(a.version) ?? 0) - (rank.get(b.version) ?? 0)\n );\n }\n }\n\n routes.sort((a, b) => a.path.localeCompare(b.path));\n\n return {\n blumeVersion: getBlumeVersion(),\n contentRoot: context.contentRoot,\n output: config.deployment.options.output,\n projectRoot: context.root,\n routes,\n version: MANIFEST_VERSION,\n };\n};\n",
|
|
54
|
-
"import { existsSync, readFileSync, statSync } from \"node:fs\";\n\nimport { basename, dirname, join, normalize, relative, resolve } from \"pathe\";\n\nimport { isInternalPath, stripBasePath, withBasePath } from \"./base-path.ts\";\nimport { locatePath } from \"./diagnostics.ts\";\nimport type { LocaleRouting } from \"./i18n.ts\";\nimport { localizeLinkPath } from \"./locale-links.ts\";\nimport { gradeExternal, probeAll } from \"./probe.ts\";\nimport {\n destinationPrefix,\n isPatternPath,\n pathsUnderPattern,\n} from \"./redirect-patterns.ts\";\nimport {\n isRelativeImageTarget,\n resolveRelativeFile,\n resolveRelativeImage,\n} from \"./relative-files.ts\";\nimport { staticFileResolver } from \"./static-files.ts\";\nimport type {\n ContentGraph,\n Diagnostic,\n PageLink,\n PageRecord,\n} from \"./types.ts\";\n\nconst HTTP = /^https?:\\/\\//iu;\nconst PROTOCOL_RELATIVE = /^\\/\\//u;\nconst SCHEME = /^[a-z][a-z0-9+.-]*:/iu;\n\n/**\n * Link schemes only one docs platform understands: ReadMe resolves\n * `doc:slug`, `ref:slug`, `page:slug`, `changelog:slug`, and `blog:slug` to\n * its own pages, but no browser or app handles them, so each ships as a dead\n * `href`. A denylist, not an allowlist of web schemes: an app's deep link\n * (`vscode:`, `cursor://`, `slack://`) is as real a link as `mailto:`, and\n * which apps a reader has installed can't be known here.\n */\nconst PLATFORM_SCHEMES = new Set([\n \"blog:\",\n \"changelog:\",\n \"doc:\",\n \"page:\",\n \"ref:\",\n]);\n\n/** Percent-decode a link piece; malformed sequences stay verbatim. */\nconst decodePercent = (value: string): string => {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n};\nconst DOC_EXT = /\\.(?:md|mdx)$/iu;\nconst FILE_EXT = /\\.[a-z0-9]+$/iu;\n\n/** Source position shared by every diagnostic raised for a link. */\ninterface LinkSite {\n column: number;\n file: string;\n line: number;\n}\n\n/**\n * Message context for a link written inside an included partial whose verdict\n * depends on *which* page splices it (relative paths resolve against the\n * including page's route; bare anchors against its headings). Without it the\n * same partial line can be reported broken while being valid from another\n * includer — with no way to tell the reports apart.\n */\nconst includedBySuffix = (link: PageLink, page: PageRecord): string =>\n link.file ? ` (included by ${basename(page.sourcePath ?? page.id)})` : \"\";\n\n/**\n * Invert the include image rebase for display: expansion rewrote a partial's\n * relative image target into the including page's directory so it resolves,\n * but the diagnostic points at the partial — report the path the author\n * actually wrote there, not the rebased one they never typed.\n */\nconst authoredImageTarget = (\n target: string,\n pagePath: string,\n partialPath: string\n): string => {\n const authored = relative(\n dirname(partialPath),\n resolve(dirname(pagePath), target)\n );\n return authored.startsWith(\".\") ? authored : `./${authored}`;\n};\n\n/** An external link occurrence queued for a network probe. */\ninterface ExternalRef extends LinkSite {\n url: string;\n}\n\n/** Lookups derived once from the content graph. */\ninterface LinkContext {\n anchors: Map<string, Set<string>>;\n /** Site-wide route mount point (`\"\"` or `/seg`); routes carry it, assets don't. */\n basePath: string;\n /** The route a root-relative link to a content file (`/guide/new.md`)\n * lands on, when it names one (see `resolveRootFileHref`). */\n rootFileRoute: (href: string) => string | undefined;\n /** Servable routes outside the graph (custom pages, generated routes); their\n * headings are unknown, so anchors there are accepted unchecked. */\n extraRoutes: Set<string>;\n /** Where content files publish, for file links (`./setup.mdx`). */\n fileRoutes: FileRouteIndex;\n /** Locale routing, when the site is multi-locale; drives served-route resolution. */\n i18n: LocaleRouting | null;\n /** Normalized `redirect.from` paths — valid targets that resolve at runtime. */\n redirects: Set<string>;\n /** Pattern `redirect.from`s (`/beta/:slug*`), based like `redirects`. */\n redirectPatterns: string[];\n routes: Set<string>;\n /** Whether a base-less path is a `public/` file (a folder's `index.html`\n * included) or a file Blume generates (see `staticFileResolver`). */\n servesFile: (path: string) => boolean;\n}\n\n/** Outcome of classifying one link target. */\ntype LinkResult = Diagnostic | null;\n\n// Mirrors the ordering-prefix strip in `sources/normalize.ts`: route mapping\n// drops the prefix before recognizing `index`, so `01-index.mdx` is an index.\nconst NUMERIC_PREFIX = /^\\d+[-_.]/u;\n\n/**\n * Whether a page is a directory index (`…/index.md(x)`, ordering prefix\n * ignored). Its route already *is* its directory, so a relative link must\n * resolve against the route itself, not its parent — otherwise `./sibling`\n * from `guides/index.mdx` (route `/guides`) would resolve to `/sibling` and be\n * falsely flagged as broken. Tested against `navPath` — the locale-stripped\n * path — so a dot-parser localized index (`index.fr.mdx`) and a shared\n * locale-agnostic one (`index.$.mdx`) count too, matching how route mapping\n * recognizes them. Only a lowercase `index` counts, as in route mapping:\n * `Index.md` publishes at `…/Index`, a page of its own.\n */\nconst isIndexPage = (page: PageRecord): boolean =>\n /^index\\.[Mm][Dd][Xx]?$/u.test(\n basename(page.navPath).replace(NUMERIC_PREFIX, \"\")\n );\n\n/** Apply one relative-path segment to the accumulated route segments. */\nconst applyRelativePart = (segments: string[], part: string): void => {\n if (part === \"\" || part === \".\") {\n return;\n }\n if (part === \"..\") {\n segments.pop();\n return;\n }\n segments.push(part);\n};\n\n/** Resolve a relative link target against the directory of a page route. */\nconst resolveRelative = (\n pageRoute: string,\n target: string,\n isIndex: boolean\n): string => {\n const segments = pageRoute.split(\"/\").filter(Boolean);\n // Drop a leaf page's own segment so links resolve against its parent\n // directory. An index page's route already is its directory, so keep it.\n if (!isIndex) {\n segments.pop();\n }\n for (const part of target.split(\"/\")) {\n applyRelativePart(segments, part);\n }\n return `/${segments.join(\"/\")}`;\n};\n\n/** Normalize an internal path to its canonical route form. */\nconst toRoute = (path: string): string => {\n let route = path.replace(DOC_EXT, \"\");\n if (route.endsWith(\"/index\")) {\n route = route.slice(0, -\"/index\".length);\n }\n if (route.length > 1 && route.endsWith(\"/\")) {\n route = route.slice(0, -1);\n }\n return route === \"\" ? \"/\" : route;\n};\n\n/** The page a relative link is written on, as the resolver sees it. */\nexport interface RelativeLinkBase {\n /** Whether the page is its folder's index (its route is its directory). */\n isIndex: boolean;\n /** The page's own route, base path included. */\n route: string;\n}\n\n/** A root-relative path, a bare `#fragment` or `?query`, or any scheme. */\nconst NOT_RELATIVE = /^(?:[#?/]|[a-z][a-z0-9+.-]*:)/iu;\n\n/** The same file under the other Markdown extension: `x.md` ↔ `x.mdx`. */\nconst otherDocExtension = (path: string): string =>\n /x$/iu.test(path) ? path.slice(0, -1) : `${path}x`;\n\n/**\n * Where a relative page link written on `from` lands: a root-relative route\n * with the authored `?query#hash` kept — or `undefined` when `href` isn't a\n * relative page link (a root-relative path, a bare `#fragment` or `?query`,\n * an external URL or other scheme, or a relative asset like `./diagram.png`).\n *\n * The one reading `blume validate` checks links against and the Markdown\n * pipeline rewrites them to, so the built `href`, the link check, and the\n * browser agree. Relative paths resolve file-style: a leaf page's links\n * resolve against its parent directory, while an index page's route already is\n * its directory — `./install` on `guides/index.mdx` (`/guides`) lands on\n * `/guides/install`, where a browser reading the slashless URL would go to\n * `/install`. A `.md`/`.mdx` target is a file link: `resolveFile` maps its\n * decoded path, relative to the linking file, to the route that file\n * publishes at, so a target with its own `slug` or an ordering prefix still\n * lands on its page instead of on its raw Markdown source. A file renamed\n * from `.md` to `.mdx`, or back, is found under its other extension first,\n * so a link written before the rename keeps that slug or prefix. Without\n * `resolveFile`, or for a file it doesn't know, the target resolves\n * route-relative with the extension dropped.\n *\n * Any other extension (`./diagram.png`) marks an asset, except where a page\n * publishes at the resolved path: `hasRoute` answers that, so a dotted page\n * name (`./node.js` for `node.js.mdx`, `./v1.2`) is still a page link.\n */\nexport const resolveRelativeHref = (\n href: string,\n from: RelativeLinkBase,\n resolveFile?: (path: string) => string | undefined,\n hasRoute?: (route: string) => boolean\n): string | undefined => {\n if (href === \"\" || NOT_RELATIVE.test(href)) {\n return undefined;\n }\n const suffixAt = href.search(/[?#]/u);\n const path = suffixAt === -1 ? href : href.slice(0, suffixAt);\n const suffix = suffixAt === -1 ? \"\" : href.slice(suffixAt);\n if (FILE_EXT.test(path) && !DOC_EXT.test(path)) {\n const route = toRoute(resolveRelative(from.route, path, from.isIndex));\n return hasRoute?.(decodePercent(route)) ? `${route}${suffix}` : undefined;\n }\n const file = decodePercent(path);\n const fileRoute = DOC_EXT.test(path)\n ? (resolveFile?.(file) ?? resolveFile?.(otherDocExtension(file)))\n : undefined;\n return `${fileRoute ?? toRoute(resolveRelative(from.route, path, from.isIndex))}${suffix}`;\n};\n\n/**\n * Where a root-relative link to a content file (`/guide/new.md`, the way\n * VitePress, Docsify, and TypeDoc write one) lands: the route of the source\n * file it names under the content root, with the authored `?query#hash`\n * kept, or `undefined` when it names no source file (or isn't a root-relative\n * `.md`/`.mdx` link at all). It's read as written from the content root, or,\n * when it starts with `deployment.base`, as including the base (see\n * `withBasePath`). `routeOfFile` maps an absolute source path to the route\n * that file publishes at. A link that names no source file is left alone:\n * `/guide/new.md` is also the URL of a page's Markdown copy, which a link may\n * mean on purpose.\n */\nexport const resolveRootFileHref = (\n href: string,\n options: {\n contentRoot: string;\n deployBase: string;\n routeOfFile: (file: string) => string | undefined;\n }\n): string | undefined => {\n if (!isInternalPath(href)) {\n return undefined;\n }\n const suffixAt = href.search(/[?#]/u);\n const path = suffixAt === -1 ? href : href.slice(0, suffixAt);\n if (!DOC_EXT.test(path)) {\n return undefined;\n }\n const route = options.routeOfFile(\n join(\n options.contentRoot,\n stripBasePath(options.deployBase, decodePercent(path))\n )\n );\n return route === undefined\n ? undefined\n : `${route}${suffixAt === -1 ? \"\" : href.slice(suffixAt)}`;\n};\n\n/**\n * Whether a content file is its folder's index, from its name as written on\n * disk: `index.md(x)` after an ordering prefix, optionally carrying one of\n * `localeTokens` before the extension (`index.fr.mdx` under the `dot` locale\n * parser, `index.$.mdx` for a file shared by every locale). The `index` itself\n * is case-sensitive, as route mapping reads it: `Index.md` is a page named\n * `Index`, not its folder's index.\n */\nexport const isIndexFileName = (\n name: string,\n localeTokens: readonly string[] = []\n): boolean => {\n const stem = basename(name).replace(NUMERIC_PREFIX, \"\");\n const match = /^index(?:\\.(?<token>[^./]+))?\\.[Mm][Dd][Xx]?$/u.exec(stem);\n if (!match) {\n return false;\n }\n const token = match.groups?.token;\n return token === undefined || localeTokens.includes(token);\n};\n\n/** Build a map of route -> set of heading anchor slugs. */\nconst buildAnchorIndex = (pages: PageRecord[]): Map<string, Set<string>> => {\n const anchors = new Map<string, Set<string>>();\n for (const page of pages) {\n anchors.set(\n page.route,\n new Set([\n ...page.headings.map((heading) => heading.slug),\n ...page.anchors,\n ])\n );\n }\n return anchors;\n};\n\n/** Verify a fragment resolves to a heading on the target route. */\nconst checkAnchor = (\n route: string,\n fragment: string,\n site: LinkSite,\n ctx: LinkContext,\n via = \"\"\n): Diagnostic | null => {\n const anchors = ctx.anchors.get(route);\n // Exact first: a `[#custom-id]` pin may contain uppercase, which the\n // lowercase fallback (lenient matching for slugger-generated ids) would miss.\n if (anchors?.has(fragment) || anchors?.has(fragment.toLowerCase())) {\n return null;\n }\n return {\n ...site,\n code: \"BLUME_BROKEN_ANCHOR\",\n message: `No anchor target on ${route} matches #${fragment}${via}.`,\n severity: \"warning\",\n };\n};\n\n/**\n * The route a link on `page` actually lands on. Rendered under a prefixed\n * locale, a root-relative link moves into that locale when the localized route\n * is served — a real translation (whose own headings then answer the anchor\n * check) or a fallback page (accepted unchecked via `extraRoutes`) — exactly as\n * `LocaleLinks.astro` rewrites it at render time. Otherwise the authored route\n * stands.\n */\nconst servedRoute = (\n authored: string,\n page: PageRecord,\n ctx: LinkContext\n): string =>\n ctx.i18n\n ? localizeLinkPath(authored, {\n basePath: ctx.basePath,\n i18n: ctx.i18n,\n locale: page.locale,\n routes: {\n has: (route) => ctx.routes.has(route) || ctx.extraRoutes.has(route),\n },\n })\n : authored;\n\n/**\n * The fix for a relative link to a content file that exists but is a\n * partial: a name starting with `_`, or a file under such a folder, which\n * the default `content.exclude` leaves unpublished. Undefined for any other\n * link, whose file is missing or was left out for another reason.\n */\nconst partialLinkHint = (\n link: PageLink,\n page: PageRecord\n): string | undefined => {\n const path = decodePercent(link.target.split(/[?#]/u)[0] ?? \"\");\n if (\n link.raw ||\n !page.sourcePath ||\n path.startsWith(\"/\") ||\n !DOC_EXT.test(path) ||\n !path.split(\"/\").some((segment) => segment.startsWith(\"_\")) ||\n !existsSync(resolve(dirname(page.sourcePath), path))\n ) {\n return undefined;\n }\n return `${path} exists, but a name starting with \"_\" marks a partial, which isn't published as a page. Splice it in with <include> instead, rename it to publish it, or add \"!**/_*\" to content.exclude to publish every underscore file.`;\n};\n\nconst HTML_EXT = /\\.html?$/iu;\n\n/**\n * The page an `.html` link means, when one is served there: `/guides/setup`\n * for `/guides/setup.html`, `/guides` for `/guides/index.html`. A page is\n * served at its route, never at an `.html` URL (only a `public/` file is),\n * so the link 404s, and this is the route to link instead. Resolved like\n * any page link: based unless raw, then moved into the reader's locale.\n */\nconst htmlPageRoute = (\n resolved: string,\n page: PageRecord,\n link: PageLink,\n ctx: LinkContext\n): string | undefined => {\n if (!HTML_EXT.test(resolved)) {\n return undefined;\n }\n const path = resolved.replace(HTML_EXT, \"\");\n const authored = toRoute(link.raw ? path : withBasePath(ctx.basePath, path));\n const route = servedRoute(authored, page, ctx);\n return ctx.routes.has(route) || ctx.extraRoutes.has(route)\n ? authored\n : undefined;\n};\n\n/**\n * Validate a link to a file (`./spec.pdf`, `/logo.png`, ``) that\n * no route, redirect, or public file answers: an image embed or a link\n * beside the page, or else a missing file.\n */\nconst checkFileLink = (\n resolved: string,\n assetPath: string,\n page: PageRecord,\n link: PageLink,\n site: LinkSite,\n ctx: LinkContext,\n via: string\n): LinkResult => {\n // A colocated image embed (``) is resolved from beside\n // the page source and emitted to `_astro/` by the image pipeline, so it\n // never lands in `public/`. The *raw* target goes through the same\n // resolver that decides what the `/blume-assets/content` endpoint serves,\n // so a reference the rewriter skips (a `?v=2` suffix, a double-encoded\n // name) is reported here, not accepted.\n if (link.image && page.sourcePath && isRelativeImageTarget(link.target)) {\n if (resolveRelativeImage(dirname(page.sourcePath), link.target)) {\n return null;\n }\n // A partial-origin image was rebased into the page's directory for\n // resolution but reports against the partial — cite the path as\n // authored there, so file, path, and \"next to\" agree.\n const authored = link.file\n ? authoredImageTarget(link.target, page.sourcePath, link.file)\n : link.target;\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `Image ${authored} was not found next to ${basename(link.file ?? page.sourcePath)}.`,\n severity: \"warning\",\n suggestion: \"Add the file next to the page source or fix the reference.\",\n };\n }\n // A relative link to any other file beside the page (`./spec.pdf`) is\n // published with it and pointed at its served copy, by the same resolver\n // (see `core/content-assets.ts`); an image embed of one isn't.\n if (\n !link.image &&\n page.sourcePath &&\n resolveRelativeFile(dirname(page.sourcePath), link.target)\n ) {\n return null;\n }\n const pageRoute = htmlPageRoute(resolved, page, link, ctx);\n if (pageRoute !== undefined) {\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `Link ${link.target}${via} points at ${assetPath}, which public/ doesn't have, and pages aren't served at .html URLs.`,\n severity: \"warning\",\n suggestion: `Link the page at ${pageRoute} instead.`,\n };\n }\n // With no `public/` folder at all, the site ships no such file either.\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `Asset ${assetPath} was not found in the public directory.`,\n severity: \"warning\",\n suggestion: `Add the file at public${assetPath} or fix the link.`,\n };\n};\n\n/** Validate a resolved internal path: asset, route, then optional anchor. */\nconst checkPathLink = (\n resolved: string,\n fragment: string,\n page: PageRecord,\n link: PageLink,\n site: LinkSite,\n ctx: LinkContext,\n via = \"\"\n): LinkResult => {\n // Page routes carry the site-wide base; an absolute author path is written\n // as if mounted at root, so base it for the route lookup (idempotent — a\n // relative link already resolved against the based `page.route`). A raw\n // `<a href>` ships unbased, so it's looked up as written. A real route\n // always wins over the asset-extension heuristic, so a dotted route (e.g.\n // `/releases/v1.0`) isn't misread as a missing asset.\n const authoredRoute = toRoute(\n link.raw ? resolved : withBasePath(ctx.basePath, resolved)\n );\n const route = servedRoute(authoredRoute, page, ctx);\n if (ctx.routes.has(route)) {\n return fragment ? checkAnchor(route, fragment, site, ctx, via) : null;\n }\n // A custom `.astro` page or generated route serves this path, but its\n // headings aren't indexed — accept any fragment rather than false-flag it.\n if (ctx.extraRoutes.has(route)) {\n return null;\n }\n // A configured `redirect.from`, or a path a pattern `from` covers, resolves\n // at runtime, so it's a valid target.\n // Its destination (and any anchor there) is validated on its own page, so we\n // don't follow the redirect to check the fragment here.\n if (\n ctx.redirects.has(route) ||\n ctx.redirectPatterns.some(\n (from) => pathsUnderPattern(from, [route]).length > 0\n )\n ) {\n return null;\n }\n\n // Assets live in `public/` at the site root, unaffected by the base, so strip\n // it back off before probing the filesystem. Blume's own generated files\n // (`/llms.txt`, `/sitemap.xml`) sit beside them, and a `public/` folder\n // with an `index.html` is served at its path, as a static host serves it.\n const assetPath = stripBasePath(ctx.basePath, resolved);\n if (ctx.servesFile(assetPath)) {\n return null;\n }\n if (FILE_EXT.test(assetPath) && !DOC_EXT.test(assetPath)) {\n return checkFileLink(resolved, assetPath, page, link, site, ctx, via);\n }\n\n return {\n ...site,\n code: \"BLUME_BROKEN_LINK\",\n message: `Broken link to ${link.target}${via}: no page resolves to ${route}.`,\n severity: \"error\",\n suggestion:\n partialLinkHint(link, page) ??\n \"Check the path, or create the target page.\",\n };\n};\n\n/**\n * Validate a media element's `src` (`<img src>`, `<video src>`), which\n * `resolved` reads the way the browser does: a file the site serves at that\n * URL (in `public/`, or one Blume generates), or a relative path naming a\n * file beside the page, which the build publishes and points the `src` at\n * (see `core/content-assets.ts`). A partial's was rebased onto the page when\n * its file sits beside the partial.\n */\nconst checkSourceLink = (\n rawPath: string,\n resolved: string,\n page: PageRecord,\n link: PageLink,\n site: LinkSite,\n ctx: LinkContext,\n via: string\n): LinkResult => {\n if (ctx.servesFile(resolved)) {\n return null;\n }\n const sourceFile = link.file ?? page.sourcePath;\n if (rawPath.startsWith(\"/\") || sourceFile === undefined) {\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `<${link.src} src=\"${link.target}\">${via} points at ${resolved}, which isn't in the public directory.`,\n severity: \"warning\",\n suggestion: `Add the file at public${resolved} or fix the src.`,\n };\n }\n if (\n page.sourcePath &&\n resolveRelativeFile(dirname(page.sourcePath), link.target)\n ) {\n return null;\n }\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `<${link.src} src=\"${link.target}\">${via} points at ${resolved}, which isn't in the public directory, and there's no ${rawPath} next to ${basename(sourceFile)} either.`,\n severity: \"warning\",\n suggestion: \"Fix the path, or add the file.\",\n };\n};\n\n/** Probe queued external links with bounded concurrency. */\nconst checkExternalLinks = async (\n refs: ExternalRef[]\n): Promise<Diagnostic[]> => {\n const results = await probeAll(refs.map((ref) => ref.url));\n\n const diagnostics: Diagnostic[] = [];\n for (const ref of refs) {\n const result = results.get(ref.url);\n const grade = result ? gradeExternal(result) : null;\n if (grade) {\n diagnostics.push({\n code: \"BLUME_DEAD_LINK\",\n column: ref.column,\n file: ref.file,\n line: ref.line,\n message: `External link ${ref.url} is unreachable (${grade.detail}).`,\n severity: grade.severity,\n });\n }\n }\n return diagnostics;\n};\n\n/** Where content files publish, for resolving file links (`./setup.mdx`). */\nexport interface FileRouteIndex {\n /**\n * Absolute source path → the route that file publishes at. A file shared by\n * every locale publishes once per locale; the default locale's route stands\n * for it (a link from a localized page moves into that locale afterwards,\n * exactly as the rendered link does). Fallback copies render another\n * locale's file, so they never stand for it.\n */\n bySource: Map<string, string>;\n /**\n * A default-locale page's locale-stripped path (`navPath`) → its route. A\n * page in a locale folder that links a sibling not translated yet\n * (`fr/guides/setup.mdx` missing) means the default tree's file\n * (`guides/setup.mdx`), whose route — its own `slug` included — then moves\n * into the reader's locale onto the fallback copy.\n */\n byDefaultNavPath: Map<string, string>;\n /**\n * A staged page's entry id (`<source>/<ref>`) → its route. A remote\n * source's files have no path on disk, so a file link between two of them\n * (`./02-errors.mdx`) resolves by entry id, as the rendered link does.\n */\n byEntryId: Map<string, string>;\n}\n\n/** The linking side of a file link: where the page's source lives. */\nexport interface FileLinkBase {\n navPath: string;\n sourcePath: string;\n}\n\nexport const buildFileRouteIndex = (\n pages: readonly PageRecord[],\n i18n: LocaleRouting | null\n): FileRouteIndex => {\n const bySource = new Map<string, string>();\n const byDefaultNavPath = new Map<string, string>();\n const byEntryId = new Map<string, string>();\n for (const page of pages) {\n const { entryId, sourcePath } = page;\n if (page.fallback) {\n continue;\n }\n const isDefault = page.locale === i18n?.defaultLocale;\n if (entryId && (!byEntryId.has(entryId) || isDefault)) {\n byEntryId.set(entryId, page.route);\n }\n if (!sourcePath) {\n continue;\n }\n if (!bySource.has(sourcePath) || isDefault) {\n bySource.set(sourcePath, page.route);\n }\n if (isDefault) {\n byDefaultNavPath.set(normalize(page.navPath), page.route);\n }\n }\n return { byDefaultNavPath, byEntryId, bySource };\n};\n\n/**\n * The route a file link written on `from` lands on: the linked file's own\n * route, or — when a locale folder doesn't have that file yet — the default\n * tree's file at the same place.\n */\nexport const routeOfLinkedFile = (\n index: FileRouteIndex,\n from: FileLinkBase,\n path: string\n): string | undefined =>\n index.bySource.get(resolve(dirname(from.sourcePath), path)) ??\n index.byDefaultNavPath.get(normalize(join(dirname(from.navPath), path)));\n\n/**\n * The path a relative link on `page` resolves to — the same reading the\n * Markdown pipeline rewrites the rendered `href` to (see\n * {@link resolveRelativeHref}), so what's checked is what ships. A relative\n * asset (`./diagram.png`) isn't a page link; it resolves against the route's\n * directory for the public-dir probe.\n */\nconst relativeTarget = (\n page: PageRecord,\n rawPath: string,\n ctx: LinkContext\n): string => {\n const base = { isIndex: isIndexPage(page), route: page.route };\n const { entryId, navPath, sourcePath } = page;\n let resolveFile: ((path: string) => string | undefined) | undefined;\n if (sourcePath) {\n resolveFile = (path) =>\n routeOfLinkedFile(ctx.fileRoutes, { navPath, sourcePath }, path);\n } else if (entryId) {\n resolveFile = (path) =>\n ctx.fileRoutes.byEntryId.get(normalize(join(dirname(entryId), path)));\n }\n return (\n resolveRelativeHref(rawPath, base, resolveFile, (route) =>\n ctx.routes.has(route)\n ) ?? resolveRelative(page.route, rawPath, base.isIndex)\n );\n};\n\n/** The path a decoded, suffix-less internal link on `page` lands on. */\nconst resolveLinkPath = (\n page: PageRecord,\n link: PageLink,\n rawPath: string,\n ctx: LinkContext\n): string => {\n if (!rawPath.startsWith(\"/\")) {\n // A raw `<a href>` isn't rewritten, so the browser resolves it against\n // the page's slashless URL: its parent directory, even on an index page.\n return link.raw\n ? resolveRelative(page.route, rawPath, false)\n : relativeTarget(page, rawPath, ctx);\n }\n // A root-relative link naming a content file lands on that file's page,\n // as the Markdown pipeline rewrites it; one naming no file stays as\n // written (a page's Markdown copy, say).\n return link.raw || link.image\n ? rawPath\n : (ctx.rootFileRoute(rawPath) ?? rawPath);\n};\n\n/** Classify a single link, queueing external refs via `onExternal`. */\nconst classifyLink = (\n page: PageRecord,\n link: PageLink,\n ctx: LinkContext,\n onExternal: (ref: ExternalRef) => void\n): LinkResult => {\n const { target } = link;\n const site: LinkSite = {\n column: link.column,\n // A link written inside an included partial reports against the partial\n // file, so the author fixes it where it lives.\n file: link.file ?? page.sourcePath ?? page.id,\n line: link.line,\n };\n\n if (HTTP.test(target) || PROTOCOL_RELATIVE.test(target)) {\n onExternal({\n ...site,\n url: PROTOCOL_RELATIVE.test(target) ? `https:${target}` : target,\n });\n return null;\n }\n const scheme = SCHEME.exec(target)?.[0];\n if (scheme !== undefined) {\n // mailto:, tel:, and other non-HTTP schemes are not validated — except a\n // platform's own, which no browser follows.\n return PLATFORM_SCHEMES.has(scheme.toLowerCase())\n ? {\n ...site,\n code: \"BLUME_UNSUPPORTED_LINK_SCHEME\",\n message: `Link ${target} uses ReadMe's ${scheme} scheme, which browsers can't follow, so it ships as a dead link.`,\n severity: \"warning\",\n suggestion: \"Link the page by its path instead, like /guides/setup.\",\n }\n : null;\n }\n\n const hashIndex = target.indexOf(\"#\");\n // Browser-copied links arrive percent-encoded (`/caf%C3%A9`, `#caf%C3%A9`)\n // while routes and anchor slugs are stored decoded — decode before comparing\n // so valid links aren't reported broken.\n const fragment = decodePercent(\n hashIndex === -1 ? \"\" : target.slice(hashIndex + 1)\n );\n let rawPath = hashIndex === -1 ? target : target.slice(0, hashIndex);\n const queryIndex = rawPath.indexOf(\"?\");\n if (queryIndex !== -1) {\n rawPath = rawPath.slice(0, queryIndex);\n }\n rawPath = decodePercent(rawPath);\n\n // A relative path (or a bare anchor) means something different from every\n // including page; an absolute path means the same thing everywhere — so\n // only includer-dependent targets carry the \"included by\" context, and\n // identical absolute-target reports collapse in the final dedupe.\n const via = rawPath.startsWith(\"/\") ? \"\" : includedBySuffix(link, page);\n if (rawPath === \"\") {\n return fragment ? checkAnchor(page.route, fragment, site, ctx, via) : null;\n }\n\n const resolved = resolveLinkPath(page, link, rawPath, ctx);\n if (link.src) {\n return checkSourceLink(rawPath, resolved, page, link, site, ctx, via);\n }\n return checkPathLink(resolved, fragment, page, link, site, ctx, via);\n};\n\n/**\n * Whether an exact redirect target lands somewhere the site serves: a page, a\n * custom or generated route, a `public/` or generated file, or another\n * redirect (a chain, which `blume audit` reports on the built site). `self`\n * is the redirect's own based `from`, which leads nowhere but back.\n */\nconst redirectLands = (\n path: string,\n self: string,\n ctx: LinkContext\n): boolean => {\n const route = toRoute(withBasePath(ctx.basePath, path));\n const redirected =\n ctx.redirects.has(route) ||\n ctx.redirectPatterns.some(\n (from) => pathsUnderPattern(from, [route]).length > 0\n );\n return (\n ctx.routes.has(route) ||\n ctx.extraRoutes.has(route) ||\n (route !== self && redirected) ||\n ctx.servesFile(stripBasePath(ctx.basePath, path))\n );\n};\n\n/**\n * Whether anything the site serves sits under a pattern target's literal\n * start (`/guides/` for `/guides/:slug*`): a page, a custom or generated\n * route, a redirect, or a `public/` folder. Which path a capture fills in\n * can't be known before a request, so the prefix is what's checked.\n */\nconst redirectLandsUnder = (\n prefix: string,\n ctx: LinkContext,\n publicDir: string | null\n): boolean => {\n const based = withBasePath(ctx.basePath, prefix);\n const folder = prefix.slice(0, prefix.lastIndexOf(\"/\") + 1);\n return (\n [...ctx.routes, ...ctx.extraRoutes, ...ctx.redirects].some((route) =>\n `${route}/`.startsWith(based)\n ) ||\n (publicDir !== null &&\n statSync(join(publicDir, folder), {\n throwIfNoEntry: false,\n })?.isDirectory() === true)\n );\n};\n\n/**\n * Warn about each internal redirect `to` that lands nowhere, located at its\n * `to` in the config file when the redirects are written there. `blume audit`\n * follows redirects through the built site; this catches a dead end before\n * the build. External targets aren't checked.\n */\nconst redirectTargetDiagnostics = (\n redirects: readonly { from: string; to: string }[],\n ctx: LinkContext,\n options: { configFile?: string; publicDir: string | null }\n): Diagnostic[] => {\n const { configFile, publicDir } = options;\n let source: string | undefined;\n return redirects.flatMap((redirect, index): Diagnostic[] => {\n if (!isInternalPath(redirect.to)) {\n return [];\n }\n const path = decodePercent(redirect.to.split(/[?#]/u)[0] ?? \"\");\n const prefix = destinationPrefix(path);\n const lands =\n prefix === undefined\n ? redirectLands(\n path,\n toRoute(withBasePath(ctx.basePath, redirect.from)),\n ctx\n )\n : redirectLandsUnder(prefix, ctx, publicDir);\n if (lands) {\n return [];\n }\n if (configFile && source === undefined) {\n source = readFileSync(configFile, \"utf-8\");\n }\n const position = source\n ? locatePath(source, [\"redirects\", index, \"to\"])\n : undefined;\n return [\n {\n code: \"BLUME_BROKEN_REDIRECT\",\n column: position?.column,\n file: configFile,\n line: position?.line,\n message:\n prefix === undefined\n ? `The redirect from ${redirect.from} sends readers to ${redirect.to}, which no page, file, or other redirect serves.`\n : `The redirect from ${redirect.from} sends readers to ${redirect.to}, but nothing is served under ${prefix}.`,\n severity: \"warning\",\n suggestion: \"Point `to` at a page that exists, or remove the redirect.\",\n },\n ];\n });\n};\n\n/**\n * Validate every link discovered in the content graph: internal page links and\n * anchors against the route map, asset links against the public dir, and\n * (opt-in) external links over the network.\n */\nexport const validateLinks = async (\n graph: ContentGraph,\n options: {\n /** Site-wide route mount point (`\"\"` or `/seg`); routes and redirects carry it. */\n basePath?: string;\n /**\n * Servable routes the graph can't know: custom `.astro` pages and generated\n * routes (e.g. the `/changelog` index). Mounted outside `basePath` (they're\n * injected at their pattern), so they are *not* based here — mirroring the\n * full-route-set resolution in `nav-diagnostics.ts`/`generateRuntime`.\n */\n extraRoutes?: string[];\n /**\n * The files the build generates beside `public/` (`/llms.txt`,\n * `/sitemap.xml`; see `deploy/generated-files.ts`), base-less: links to\n * them resolve like links to `public/` files.\n */\n generatedFiles?: string[];\n /** Locale routing when i18n is on; links then resolve into the page's locale. */\n i18n?: LocaleRouting | null;\n /** The project's `public/` folder, or `null` when it has none (and so\n * ships no public files). */\n publicDir: string | null;\n checkExternal?: boolean;\n /** External URLs not to request (`--ignore`). Internal links are always checked. */\n ignore?: (url: string) => boolean;\n /**\n * Configured redirects: their `from` paths count as valid link targets,\n * and an internal `to` must land somewhere the site serves.\n */\n redirects?: { from: string; to: string }[];\n /** The config file the redirects are written in, for their positions. */\n configFile?: string;\n /**\n * The `docs` collection's content root, which a root-relative link to a\n * content file (`/guide/new.md`) is read from.\n */\n contentRoot?: string;\n /** `deployment.base` (`\"\"` or `/seg`), which such a link may start with. */\n deployBase?: string;\n }\n): Promise<Diagnostic[]> => {\n const basePath = options.basePath ?? \"\";\n const fileRoutes = buildFileRouteIndex(graph.pages, options.i18n ?? null);\n const { contentRoot } = options;\n const ctx: LinkContext = {\n anchors: buildAnchorIndex(graph.pages),\n basePath,\n extraRoutes: new Set((options.extraRoutes ?? []).map(toRoute)),\n fileRoutes,\n i18n: options.i18n ?? null,\n redirectPatterns: (options.redirects ?? []).flatMap((redirect) =>\n isPatternPath(redirect.from)\n ? [withBasePath(basePath, redirect.from)]\n : []\n ),\n redirects: new Set(\n (options.redirects ?? []).map((redirect) =>\n toRoute(withBasePath(basePath, redirect.from))\n )\n ),\n rootFileRoute: (href) =>\n contentRoot === undefined\n ? undefined\n : resolveRootFileHref(href, {\n contentRoot,\n deployBase: options.deployBase ?? \"\",\n routeOfFile: (file) => fileRoutes.bySource.get(file),\n }),\n routes: new Set(graph.routes.keys()),\n servesFile: staticFileResolver(options.publicDir, options.generatedFiles),\n };\n const diagnostics: Diagnostic[] = [];\n const external: ExternalRef[] = [];\n\n for (const page of graph.pages) {\n for (const link of page.links) {\n const result = classifyLink(page, link, ctx, (ref) => external.push(ref));\n if (result) {\n diagnostics.push(result);\n }\n }\n }\n diagnostics.push(\n ...redirectTargetDiagnostics(options.redirects ?? [], ctx, {\n configFile: options.configFile,\n publicDir: options.publicDir,\n })\n );\n\n // `--ignore` names URLs that can't be checked from where this runs: a\n // placeholder host, a local server, a site that turns bots away.\n const probed = external.filter((ref) => !options.ignore?.(ref.url));\n if (options.checkExternal && probed.length > 0) {\n diagnostics.push(...(await checkExternalLinks(probed)));\n }\n\n // A partial spliced into several pages (or every locale of one) yields the\n // same diagnostic once per including page record; byte-identical reports\n // add noise without information, so only the first of each survives.\n const seen = new Set<string>();\n return diagnostics.filter((diagnostic) => {\n const key = [\n diagnostic.code,\n diagnostic.file ?? \"\",\n diagnostic.line ?? \"\",\n diagnostic.column ?? \"\",\n diagnostic.message,\n ].join(\"\\n\");\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n};\n",
|
|
53
|
+
"import { mountBasePath } from \"./base-path.ts\";\nimport { isHiddenPage } from \"./hidden-pages.ts\";\nimport { localizeRoute, resolveFallbackLocale } from \"./i18n.ts\";\nimport type { ResolvedConfig } from \"./schema.ts\";\nimport type {\n BlumeManifest,\n ContentGraph,\n PageRecord,\n ProjectContext,\n RouteAlternate,\n RouteManifestEntry,\n VersionAlternate,\n} from \"./types.ts\";\nimport { getBlumeVersion } from \"./version.ts\";\n\n/**\n * Key for the same logical page across versions within one locale: the\n * version- and locale-agnostic route plus the locale code. NUL never appears\n * in either part, so the join is unambiguous.\n */\nconst versionAlternateKey = (versionKey: string, locale: string): string =>\n `${versionKey}\\u0000${locale}`;\n\n/**\n * Get-or-create the shared alternate list for a (versionKey, locale) pair.\n * Lists are attached to route entries by reference and mutated as fallback\n * routes materialize, then sorted once at the end — every holder sees the\n * final list.\n */\nconst versionAlternatesFor = (\n byKey: Map<string, VersionAlternate[]>,\n versionKey: string,\n locale: string\n): VersionAlternate[] => {\n const key = versionAlternateKey(versionKey, locale);\n const existing = byKey.get(key);\n if (existing) {\n return existing;\n }\n const list: VersionAlternate[] = [];\n byKey.set(key, list);\n return list;\n};\n\n/** The current manifest schema version. */\nexport const MANIFEST_VERSION = 1;\n\n/**\n * Whether a page may be indexed on its own merits — not author-excluded and not\n * hidden (unless hidden pages are opted in). This is independent of whether the\n * site search provider is enabled, so features like the MCP server can index\n * docs even when on-page search is off.\n */\nexport const contentIndexable = (\n page: PageRecord,\n config: ResolvedConfig,\n graph: ContentGraph\n): boolean =>\n !page.meta.search.exclude &&\n (!isHiddenPage(page, graph) || config.search.indexing.includeHiddenPages);\n\n/**\n * Fallback materialization: render the fallback locale's content at the\n * localized URL for any translation a non-default locale is missing, so static\n * output is fully prerendered (render-fallback, no client redirect). Fallback\n * routes are not indexed and carry no `hreflang` of their own.\n */\n/**\n * The description a page's `<head>` emits — `seo.description` over the front\n * matter `description` — mirrored onto its route so the OG card's subtitle\n * matches the page's `og:description`, and the summary page indexes like\n * `llms.txt` give it.\n */\nexport const metaDescription = (page: PageRecord): string | undefined =>\n page.meta.seo.description ?? page.description;\n\nconst buildFallbackRoutes = (\n graph: ContentGraph,\n i18n: NonNullable<ResolvedConfig[\"i18n\"]>,\n alternatesByKey: Map<string, RouteAlternate[]>,\n basePath: string,\n versionAlternatesByKey: Map<string, VersionAlternate[]> | undefined\n): RouteManifestEntry[] => {\n const fallback = resolveFallbackLocale(i18n);\n if (!fallback) {\n return [];\n }\n // A monolingual page (a GitHub release) publishes in one language only, so it\n // gets no copy at every other locale's URL: those would be duplicates of the\n // same text under a translated chrome.\n const fallbackPages = new Map(\n graph.pages.flatMap((page) =>\n page.locale === fallback && !page.monolingual\n ? [[page.translationKey, page] as const]\n : []\n )\n );\n const routes: RouteManifestEntry[] = [];\n for (const { code } of i18n.locales) {\n if (code === fallback) {\n continue;\n }\n const present = new Set(\n graph.pages.flatMap((page) =>\n page.locale === code ? [page.translationKey] : []\n )\n );\n for (const [key, source] of fallbackPages) {\n if (present.has(key)) {\n continue;\n }\n const path = mountBasePath(basePath, localizeRoute(key, code, i18n));\n // A fallback route is a real prerendered page, so it registers as a\n // version alternate too — the switcher on a sibling version's page\n // lands here instead of bouncing to the version root. Its own path is\n // recorded (not the fallback source's), keeping the target in-locale.\n const versionAlternates: VersionAlternate[] = versionAlternatesByKey\n ? versionAlternatesFor(versionAlternatesByKey, source.versionKey, code)\n : [];\n if (versionAlternatesByKey) {\n versionAlternates.push({ path, version: source.version });\n }\n routes.push({\n alternates: alternatesByKey.get(key) ?? [],\n collection: source.collection ?? \"docs\",\n contentType: source.contentType,\n description: metaDescription(source),\n draft: source.meta.draft,\n editUrl: source.editUrl,\n entryId: source.entryId ?? source.source.ref,\n fallback: true,\n hidden: isHiddenPage(source, graph),\n id: source.id,\n indexable: false,\n lastModified: source.lastModified,\n locale: code,\n monolingual: source.monolingual,\n path,\n published: source.published,\n source: source.source,\n sourcePath: source.sourcePath,\n title: source.title,\n version: source.version,\n versionAlternates,\n });\n }\n }\n return routes;\n};\n\n/** Build the runtime manifest that bridges core and the generated Astro app. */\nexport const buildManifest = (options: {\n context: ProjectContext;\n config: ResolvedConfig;\n graph: ContentGraph;\n}): BlumeManifest => {\n const { context, config, graph } = options;\n const searchEnabled = config.search.provider.mode !== \"none\";\n const { i18n } = config;\n\n // Real translations per logical page, for `hreflang` and the switcher. Built\n // only under i18n; a single-locale page has no alternates.\n const alternatesByKey = new Map<string, RouteAlternate[]>();\n if (i18n) {\n for (const page of graph.pages) {\n const list = alternatesByKey.get(page.translationKey) ?? [];\n list.push({ locale: page.locale, path: page.route });\n alternatesByKey.set(page.translationKey, list);\n }\n }\n\n // The same logical page across versions, within each locale — for the\n // version switcher and the canonical-to-latest lookup. Built only under\n // versioning; lists are shared by reference and finalized (fallback routes\n // appended, then sorted) before the manifest is returned.\n const versionAlternatesByKey = config.versions\n ? new Map<string, VersionAlternate[]>()\n : undefined;\n if (versionAlternatesByKey) {\n for (const page of graph.pages) {\n versionAlternatesFor(\n versionAlternatesByKey,\n page.versionKey,\n page.locale\n ).push({ path: page.route, version: page.version });\n }\n }\n\n const routes: RouteManifestEntry[] = graph.pages.map((page) => ({\n aiExclude: page.meta.ai.exclude,\n alternates: alternatesByKey.get(page.translationKey) ?? [],\n collection: page.collection ?? \"docs\",\n contentType: page.contentType,\n description: metaDescription(page),\n draft: page.meta.draft,\n editUrl: page.editUrl,\n entryId: page.entryId ?? page.source.ref,\n hidden: isHiddenPage(page, graph),\n id: page.id,\n indexable: searchEnabled && contentIndexable(page, config, graph),\n lastModified: page.lastModified,\n locale: page.locale,\n monolingual: page.monolingual,\n path: page.route,\n published: page.published,\n source: page.source,\n sourcePath: page.sourcePath,\n title: page.title,\n version: page.version,\n versionAlternates: versionAlternatesByKey\n ? versionAlternatesFor(\n versionAlternatesByKey,\n page.versionKey,\n page.locale\n )\n : [],\n }));\n\n if (i18n) {\n routes.push(\n ...buildFallbackRoutes(\n graph,\n i18n,\n alternatesByKey,\n config.basePath,\n versionAlternatesByKey\n )\n );\n }\n\n // Alternate lists read current-first, then archived versions in configured\n // (switcher) order. Sorted once here — every route holding a list by\n // reference sees the final ordering.\n if (versionAlternatesByKey && config.versions) {\n const rank = new Map<string, number>(\n config.versions.archived.map((version, index) => [version.id, index + 1])\n );\n for (const list of versionAlternatesByKey.values()) {\n list.sort(\n (a, b) => (rank.get(a.version) ?? 0) - (rank.get(b.version) ?? 0)\n );\n }\n }\n\n routes.sort((a, b) => a.path.localeCompare(b.path));\n\n return {\n blumeVersion: getBlumeVersion(),\n contentRoot: context.contentRoot,\n output: config.deployment.options.output,\n projectRoot: context.root,\n routes,\n version: MANIFEST_VERSION,\n };\n};\n",
|
|
54
|
+
"import { existsSync, readFileSync, statSync } from \"node:fs\";\n\nimport { basename, dirname, join, normalize, relative, resolve } from \"pathe\";\n\nimport { isInternalPath, stripBasePath, withBasePath } from \"./base-path.ts\";\nimport { locatePath } from \"./diagnostics.ts\";\nimport type { LocaleRouting } from \"./i18n.ts\";\nimport { localizeLinkPath } from \"./locale-links.ts\";\nimport { gradeExternal, probeAll } from \"./probe.ts\";\nimport {\n destinationPrefix,\n isPatternPath,\n pathsUnderPattern,\n} from \"./redirect-patterns.ts\";\nimport {\n isRelativeImageTarget,\n resolveRelativeFile,\n resolveRelativeImage,\n} from \"./relative-files.ts\";\nimport { staticFileResolver } from \"./static-files.ts\";\nimport type {\n ContentGraph,\n Diagnostic,\n PageLink,\n PageRecord,\n} from \"./types.ts\";\n\nconst HTTP = /^https?:\\/\\//iu;\nconst PROTOCOL_RELATIVE = /^\\/\\//u;\nconst SCHEME = /^[a-z][a-z0-9+.-]*:/iu;\n\n/**\n * Link schemes only one docs platform understands: ReadMe resolves\n * `doc:slug`, `ref:slug`, `page:slug`, `changelog:slug`, and `blog:slug` to\n * its own pages, but no browser or app handles them, so each ships as a dead\n * `href`. A denylist, not an allowlist of web schemes: an app's deep link\n * (`vscode:`, `cursor://`, `slack://`) is as real a link as `mailto:`, and\n * which apps a reader has installed can't be known here.\n */\nconst PLATFORM_SCHEMES = new Set([\n \"blog:\",\n \"changelog:\",\n \"doc:\",\n \"page:\",\n \"ref:\",\n]);\n\n/** Percent-decode a link piece; malformed sequences stay verbatim. */\nconst decodePercent = (value: string): string => {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n};\nconst DOC_EXT = /\\.(?:md|mdx)$/iu;\nconst FILE_EXT = /\\.[a-z0-9]+$/iu;\n\n/** Source position shared by every diagnostic raised for a link. */\ninterface LinkSite {\n column: number;\n file: string;\n line: number;\n}\n\n/**\n * Message context for a link written inside an included partial whose verdict\n * depends on *which* page splices it (relative paths resolve against the\n * including page's route; bare anchors against its headings). Without it the\n * same partial line can be reported broken while being valid from another\n * includer — with no way to tell the reports apart.\n */\nconst includedBySuffix = (link: PageLink, page: PageRecord): string =>\n link.file ? ` (included by ${basename(page.sourcePath ?? page.id)})` : \"\";\n\n/**\n * Invert the include image rebase for display: expansion rewrote a partial's\n * relative image target into the including page's directory so it resolves,\n * but the diagnostic points at the partial — report the path the author\n * actually wrote there, not the rebased one they never typed.\n */\nconst authoredImageTarget = (\n target: string,\n pagePath: string,\n partialPath: string\n): string => {\n const authored = relative(\n dirname(partialPath),\n resolve(dirname(pagePath), target)\n );\n return authored.startsWith(\".\") ? authored : `./${authored}`;\n};\n\n/** An external link occurrence queued for a network probe. */\ninterface ExternalRef extends LinkSite {\n url: string;\n}\n\n/** Lookups derived once from the content graph. */\ninterface LinkContext {\n anchors: Map<string, Set<string>>;\n /** Site-wide route mount point (`\"\"` or `/seg`); routes carry it, assets don't. */\n basePath: string;\n /** The route a root-relative link to a content file (`/guide/new.md`)\n * lands on, when it names one (see `resolveRootFileHref`). */\n rootFileRoute: (href: string) => string | undefined;\n /** Servable routes outside the graph (custom pages, generated routes); their\n * headings are unknown, so anchors there are accepted unchecked. */\n extraRoutes: Set<string>;\n /** Where content files publish, for file links (`./setup.mdx`). */\n fileRoutes: FileRouteIndex;\n /** Locale routing, when the site is multi-locale; drives served-route resolution. */\n i18n: LocaleRouting | null;\n /** Normalized `redirect.from` paths — valid targets that resolve at runtime. */\n redirects: Set<string>;\n /** Pattern `redirect.from`s (`/beta/:slug*`), based like `redirects`. */\n redirectPatterns: string[];\n routes: Set<string>;\n /** Whether a base-less path is a `public/` file (a folder's `index.html`\n * included) or a file Blume generates (see `staticFileResolver`). */\n servesFile: (path: string) => boolean;\n}\n\n/** Outcome of classifying one link target. */\ntype LinkResult = Diagnostic | null;\n\n// Mirrors the ordering-prefix strip in `sources/normalize.ts`: route mapping\n// drops the prefix before recognizing `index`, so `01-index.mdx` is an index.\nconst NUMERIC_PREFIX = /^\\d+[-_.]/u;\n\n/**\n * Whether a page is a directory index (`…/index.md(x)`, ordering prefix\n * ignored). Its route already *is* its directory, so a relative link must\n * resolve against the route itself, not its parent — otherwise `./sibling`\n * from `guides/index.mdx` (route `/guides`) would resolve to `/sibling` and be\n * falsely flagged as broken. Tested against `navPath` — the locale-stripped\n * path — so a dot-parser localized index (`index.fr.mdx`) and a shared\n * locale-agnostic one (`index.$.mdx`) count too, matching how route mapping\n * recognizes them. Only a lowercase `index` counts, as in route mapping:\n * `Index.md` publishes at `…/Index`, a page of its own.\n */\nconst isIndexPage = (page: PageRecord): boolean =>\n /^index\\.[Mm][Dd][Xx]?$/u.test(\n basename(page.navPath).replace(NUMERIC_PREFIX, \"\")\n );\n\n/** Apply one relative-path segment to the accumulated route segments. */\nconst applyRelativePart = (segments: string[], part: string): void => {\n if (part === \"\" || part === \".\") {\n return;\n }\n if (part === \"..\") {\n segments.pop();\n return;\n }\n segments.push(part);\n};\n\n/** Resolve a relative link target against the directory of a page route. */\nconst resolveRelative = (\n pageRoute: string,\n target: string,\n isIndex: boolean\n): string => {\n const segments = pageRoute.split(\"/\").filter(Boolean);\n // Drop a leaf page's own segment so links resolve against its parent\n // directory. An index page's route already is its directory, so keep it.\n if (!isIndex) {\n segments.pop();\n }\n for (const part of target.split(\"/\")) {\n applyRelativePart(segments, part);\n }\n return `/${segments.join(\"/\")}`;\n};\n\n/** Normalize an internal path to its canonical route form. */\nconst toRoute = (path: string): string => {\n let route = path.replace(DOC_EXT, \"\");\n if (route.endsWith(\"/index\")) {\n route = route.slice(0, -\"/index\".length);\n }\n if (route.length > 1 && route.endsWith(\"/\")) {\n route = route.slice(0, -1);\n }\n return route === \"\" ? \"/\" : route;\n};\n\n/** The page a relative link is written on, as the resolver sees it. */\nexport interface RelativeLinkBase {\n /** Whether the page is its folder's index (its route is its directory). */\n isIndex: boolean;\n /** The page's own route, base path included. */\n route: string;\n}\n\n/** A root-relative path, a bare `#fragment` or `?query`, or any scheme. */\nconst NOT_RELATIVE = /^(?:[#?/]|[a-z][a-z0-9+.-]*:)/iu;\n\n/** The same file under the other Markdown extension: `x.md` ↔ `x.mdx`. */\nconst otherDocExtension = (path: string): string =>\n /x$/iu.test(path) ? path.slice(0, -1) : `${path}x`;\n\n/**\n * Where a relative page link written on `from` lands: a root-relative route\n * with the authored `?query#hash` kept — or `undefined` when `href` isn't a\n * relative page link (a root-relative path, a bare `#fragment` or `?query`,\n * an external URL or other scheme, or a relative asset like `./diagram.png`).\n *\n * The one reading `blume validate` checks links against and the Markdown\n * pipeline rewrites them to, so the built `href`, the link check, and the\n * browser agree. Relative paths resolve file-style: a leaf page's links\n * resolve against its parent directory, while an index page's route already is\n * its directory — `./install` on `guides/index.mdx` (`/guides`) lands on\n * `/guides/install`, where a browser reading the slashless URL would go to\n * `/install`. A `.md`/`.mdx` target is a file link: `resolveFile` maps its\n * decoded path, relative to the linking file, to the route that file\n * publishes at, so a target with its own `slug` or an ordering prefix still\n * lands on its page instead of on its raw Markdown source. A file renamed\n * from `.md` to `.mdx`, or back, is found under its other extension first,\n * so a link written before the rename keeps that slug or prefix. Without\n * `resolveFile`, or for a file it doesn't know, the target resolves\n * route-relative with the extension dropped.\n *\n * Any other extension (`./diagram.png`) marks an asset, except where a page\n * publishes at the resolved path: `hasRoute` answers that, so a dotted page\n * name (`./node.js` for `node.js.mdx`, `./v1.2`) is still a page link.\n */\nexport const resolveRelativeHref = (\n href: string,\n from: RelativeLinkBase,\n resolveFile?: (path: string) => string | undefined,\n hasRoute?: (route: string) => boolean\n): string | undefined => {\n if (href === \"\" || NOT_RELATIVE.test(href)) {\n return undefined;\n }\n const suffixAt = href.search(/[?#]/u);\n const path = suffixAt === -1 ? href : href.slice(0, suffixAt);\n const suffix = suffixAt === -1 ? \"\" : href.slice(suffixAt);\n if (FILE_EXT.test(path) && !DOC_EXT.test(path)) {\n const route = toRoute(resolveRelative(from.route, path, from.isIndex));\n return hasRoute?.(decodePercent(route)) ? `${route}${suffix}` : undefined;\n }\n const file = decodePercent(path);\n const fileRoute = DOC_EXT.test(path)\n ? (resolveFile?.(file) ?? resolveFile?.(otherDocExtension(file)))\n : undefined;\n return `${fileRoute ?? toRoute(resolveRelative(from.route, path, from.isIndex))}${suffix}`;\n};\n\n/**\n * Where a relative page link in a raw HTML `<a href>` written on `route`\n * lands, with the authored `?query#hash` kept, or `undefined` when `href`\n * isn't a relative page link (see {@link resolveRelativeHref}). The Markdown\n * pipeline leaves a raw element as written, so the browser resolves it\n * against the page's slashless URL, as `blume validate` reads it: its parent\n * directory, even on an index page, and a `.md` target is that path's\n * Markdown copy rather than a file link.\n */\nexport const resolveRawRelativeHref = (\n href: string,\n route: string,\n hasRoute: (route: string) => boolean\n): string | undefined => {\n if (href === \"\" || NOT_RELATIVE.test(href)) {\n return undefined;\n }\n const suffixAt = href.search(/[?#]/u);\n const path = suffixAt === -1 ? href : href.slice(0, suffixAt);\n const resolved = resolveRelative(route, path, false);\n if (\n FILE_EXT.test(path) &&\n !DOC_EXT.test(path) &&\n !hasRoute(decodePercent(resolved))\n ) {\n return undefined;\n }\n return `${resolved}${suffixAt === -1 ? \"\" : href.slice(suffixAt)}`;\n};\n\n/**\n * Where a root-relative link to a content file (`/guide/new.md`, the way\n * VitePress, Docsify, and TypeDoc write one) lands: the route of the source\n * file it names under the content root, with the authored `?query#hash`\n * kept, or `undefined` when it names no source file (or isn't a root-relative\n * `.md`/`.mdx` link at all). It's read as written from the content root, or,\n * when it starts with `deployment.base`, as including the base (see\n * `withBasePath`). `routeOfFile` maps an absolute source path to the route\n * that file publishes at. A link that names no source file is left alone:\n * `/guide/new.md` is also the URL of a page's Markdown copy, which a link may\n * mean on purpose.\n */\nexport const resolveRootFileHref = (\n href: string,\n options: {\n contentRoot: string;\n deployBase: string;\n routeOfFile: (file: string) => string | undefined;\n }\n): string | undefined => {\n if (!isInternalPath(href)) {\n return undefined;\n }\n const suffixAt = href.search(/[?#]/u);\n const path = suffixAt === -1 ? href : href.slice(0, suffixAt);\n if (!DOC_EXT.test(path)) {\n return undefined;\n }\n const route = options.routeOfFile(\n join(\n options.contentRoot,\n stripBasePath(options.deployBase, decodePercent(path))\n )\n );\n return route === undefined\n ? undefined\n : `${route}${suffixAt === -1 ? \"\" : href.slice(suffixAt)}`;\n};\n\n/**\n * Whether a content file is its folder's index, from its name as written on\n * disk: `index.md(x)` after an ordering prefix, optionally carrying one of\n * `localeTokens` before the extension (`index.fr.mdx` under the `dot` locale\n * parser, `index.$.mdx` for a file shared by every locale). The `index` itself\n * is case-sensitive, as route mapping reads it: `Index.md` is a page named\n * `Index`, not its folder's index.\n */\nexport const isIndexFileName = (\n name: string,\n localeTokens: readonly string[] = []\n): boolean => {\n const stem = basename(name).replace(NUMERIC_PREFIX, \"\");\n const match = /^index(?:\\.(?<token>[^./]+))?\\.[Mm][Dd][Xx]?$/u.exec(stem);\n if (!match) {\n return false;\n }\n const token = match.groups?.token;\n return token === undefined || localeTokens.includes(token);\n};\n\n/** Build a map of route -> set of heading anchor slugs. */\nconst buildAnchorIndex = (pages: PageRecord[]): Map<string, Set<string>> => {\n const anchors = new Map<string, Set<string>>();\n for (const page of pages) {\n anchors.set(\n page.route,\n new Set([\n ...page.headings.map((heading) => heading.slug),\n ...page.anchors,\n ])\n );\n }\n return anchors;\n};\n\n/** Verify a fragment resolves to a heading on the target route. */\nconst checkAnchor = (\n route: string,\n fragment: string,\n site: LinkSite,\n ctx: LinkContext,\n via = \"\"\n): Diagnostic | null => {\n const anchors = ctx.anchors.get(route);\n // Exact first: a `[#custom-id]` pin may contain uppercase, which the\n // lowercase fallback (lenient matching for slugger-generated ids) would miss.\n if (anchors?.has(fragment) || anchors?.has(fragment.toLowerCase())) {\n return null;\n }\n return {\n ...site,\n code: \"BLUME_BROKEN_ANCHOR\",\n message: `No anchor target on ${route} matches #${fragment}${via}.`,\n severity: \"warning\",\n };\n};\n\n/**\n * The route a link on `page` actually lands on. Rendered under a prefixed\n * locale, a root-relative link moves into that locale when the localized route\n * is served — a real translation (whose own headings then answer the anchor\n * check) or a fallback page (accepted unchecked via `extraRoutes`) — exactly as\n * `LocaleLinks.astro` rewrites it at render time. Otherwise the authored route\n * stands.\n */\nconst servedRoute = (\n authored: string,\n page: PageRecord,\n ctx: LinkContext\n): string =>\n ctx.i18n\n ? localizeLinkPath(authored, {\n basePath: ctx.basePath,\n i18n: ctx.i18n,\n locale: page.locale,\n routes: {\n has: (route) => ctx.routes.has(route) || ctx.extraRoutes.has(route),\n },\n })\n : authored;\n\n/**\n * The fix for a relative link to a content file that exists but is a\n * partial: a name starting with `_`, or a file under such a folder, which\n * the default `content.exclude` leaves unpublished. Undefined for any other\n * link, whose file is missing or was left out for another reason.\n */\nconst partialLinkHint = (\n link: PageLink,\n page: PageRecord\n): string | undefined => {\n const path = decodePercent(link.target.split(/[?#]/u)[0] ?? \"\");\n if (\n link.raw ||\n !page.sourcePath ||\n path.startsWith(\"/\") ||\n !DOC_EXT.test(path) ||\n !path.split(\"/\").some((segment) => segment.startsWith(\"_\")) ||\n !existsSync(resolve(dirname(page.sourcePath), path))\n ) {\n return undefined;\n }\n return `${path} exists, but a name starting with \"_\" marks a partial, which isn't published as a page. Splice it in with <include> instead, rename it to publish it, or add \"!**/_*\" to content.exclude to publish every underscore file.`;\n};\n\nconst HTML_EXT = /\\.html?$/iu;\n\n/**\n * The page an `.html` link means, when one is served there: `/guides/setup`\n * for `/guides/setup.html`, `/guides` for `/guides/index.html`. A page is\n * served at its route, never at an `.html` URL (only a `public/` file is),\n * so the link 404s, and this is the route to link instead. Resolved like\n * any page link: based unless raw, then moved into the reader's locale.\n */\nconst htmlPageRoute = (\n resolved: string,\n page: PageRecord,\n link: PageLink,\n ctx: LinkContext\n): string | undefined => {\n if (!HTML_EXT.test(resolved)) {\n return undefined;\n }\n const path = resolved.replace(HTML_EXT, \"\");\n const authored = toRoute(link.raw ? path : withBasePath(ctx.basePath, path));\n const route = servedRoute(authored, page, ctx);\n return ctx.routes.has(route) || ctx.extraRoutes.has(route)\n ? authored\n : undefined;\n};\n\n/**\n * Validate a link to a file (`./spec.pdf`, `/logo.png`, ``) that\n * no route, redirect, or public file answers: an image embed or a link\n * beside the page, or else a missing file.\n */\nconst checkFileLink = (\n resolved: string,\n assetPath: string,\n page: PageRecord,\n link: PageLink,\n site: LinkSite,\n ctx: LinkContext,\n via: string\n): LinkResult => {\n // A colocated image embed (``) is resolved from beside\n // the page source and emitted to `_astro/` by the image pipeline, so it\n // never lands in `public/`. The *raw* target goes through the same\n // resolver that decides what the `/blume-assets/content` endpoint serves,\n // so a reference the rewriter skips (a `?v=2` suffix, a double-encoded\n // name) is reported here, not accepted.\n if (link.image && page.sourcePath && isRelativeImageTarget(link.target)) {\n if (resolveRelativeImage(dirname(page.sourcePath), link.target)) {\n return null;\n }\n // A partial-origin image was rebased into the page's directory for\n // resolution but reports against the partial — cite the path as\n // authored there, so file, path, and \"next to\" agree.\n const authored = link.file\n ? authoredImageTarget(link.target, page.sourcePath, link.file)\n : link.target;\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `Image ${authored} was not found next to ${basename(link.file ?? page.sourcePath)}.`,\n severity: \"warning\",\n suggestion: \"Add the file next to the page source or fix the reference.\",\n };\n }\n // A relative link to any other file beside the page (`./spec.pdf`) is\n // published with it and pointed at its served copy, by the same resolver\n // (see `core/content-assets.ts`); an image embed of one isn't.\n if (\n !link.image &&\n page.sourcePath &&\n resolveRelativeFile(dirname(page.sourcePath), link.target)\n ) {\n return null;\n }\n const pageRoute = htmlPageRoute(resolved, page, link, ctx);\n if (pageRoute !== undefined) {\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `Link ${link.target}${via} points at ${assetPath}, which public/ doesn't have, and pages aren't served at .html URLs.`,\n severity: \"warning\",\n suggestion: `Link the page at ${pageRoute} instead.`,\n };\n }\n // With no `public/` folder at all, the site ships no such file either.\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `Asset ${assetPath} was not found in the public directory.`,\n severity: \"warning\",\n suggestion: `Add the file at public${assetPath} or fix the link.`,\n };\n};\n\n/** Validate a resolved internal path: asset, route, then optional anchor. */\nconst checkPathLink = (\n resolved: string,\n fragment: string,\n page: PageRecord,\n link: PageLink,\n site: LinkSite,\n ctx: LinkContext,\n via = \"\"\n): LinkResult => {\n // Page routes carry the site-wide base; an absolute author path is written\n // as if mounted at root, so base it for the route lookup (idempotent — a\n // relative link already resolved against the based `page.route`). A raw\n // `<a href>` ships unbased, so it's looked up as written. A real route\n // always wins over the asset-extension heuristic, so a dotted route (e.g.\n // `/releases/v1.0`) isn't misread as a missing asset.\n const authoredRoute = toRoute(\n link.raw ? resolved : withBasePath(ctx.basePath, resolved)\n );\n const route = servedRoute(authoredRoute, page, ctx);\n if (ctx.routes.has(route)) {\n return fragment ? checkAnchor(route, fragment, site, ctx, via) : null;\n }\n // A custom `.astro` page or generated route serves this path, but its\n // headings aren't indexed — accept any fragment rather than false-flag it.\n if (ctx.extraRoutes.has(route)) {\n return null;\n }\n // A configured `redirect.from`, or a path a pattern `from` covers, resolves\n // at runtime, so it's a valid target.\n // Its destination (and any anchor there) is validated on its own page, so we\n // don't follow the redirect to check the fragment here.\n if (\n ctx.redirects.has(route) ||\n ctx.redirectPatterns.some(\n (from) => pathsUnderPattern(from, [route]).length > 0\n )\n ) {\n return null;\n }\n\n // Assets live in `public/` at the site root, unaffected by the base, so strip\n // it back off before probing the filesystem. Blume's own generated files\n // (`/llms.txt`, `/sitemap.xml`) sit beside them, and a `public/` folder\n // with an `index.html` is served at its path, as a static host serves it.\n const assetPath = stripBasePath(ctx.basePath, resolved);\n if (ctx.servesFile(assetPath)) {\n return null;\n }\n if (FILE_EXT.test(assetPath) && !DOC_EXT.test(assetPath)) {\n return checkFileLink(resolved, assetPath, page, link, site, ctx, via);\n }\n\n return {\n ...site,\n code: \"BLUME_BROKEN_LINK\",\n message: `Broken link to ${link.target}${via}: no page resolves to ${route}.`,\n severity: \"error\",\n suggestion:\n partialLinkHint(link, page) ??\n \"Check the path, or create the target page.\",\n };\n};\n\n/**\n * Validate a media element's `src` (`<img src>`, `<video src>`), which\n * `resolved` reads the way the browser does: a file the site serves at that\n * URL (in `public/`, or one Blume generates), or a relative path naming a\n * file beside the page, which the build publishes and points the `src` at\n * (see `core/content-assets.ts`). A partial's was rebased onto the page when\n * its file sits beside the partial.\n */\nconst checkSourceLink = (\n rawPath: string,\n resolved: string,\n page: PageRecord,\n link: PageLink,\n site: LinkSite,\n ctx: LinkContext,\n via: string\n): LinkResult => {\n if (ctx.servesFile(resolved)) {\n return null;\n }\n const sourceFile = link.file ?? page.sourcePath;\n if (rawPath.startsWith(\"/\") || sourceFile === undefined) {\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `<${link.src} src=\"${link.target}\">${via} points at ${resolved}, which isn't in the public directory.`,\n severity: \"warning\",\n suggestion: `Add the file at public${resolved} or fix the src.`,\n };\n }\n if (\n page.sourcePath &&\n resolveRelativeFile(dirname(page.sourcePath), link.target)\n ) {\n return null;\n }\n return {\n ...site,\n code: \"BLUME_BROKEN_ASSET\",\n message: `<${link.src} src=\"${link.target}\">${via} points at ${resolved}, which isn't in the public directory, and there's no ${rawPath} next to ${basename(sourceFile)} either.`,\n severity: \"warning\",\n suggestion: \"Fix the path, or add the file.\",\n };\n};\n\n/** Probe queued external links with bounded concurrency. */\nconst checkExternalLinks = async (\n refs: ExternalRef[]\n): Promise<Diagnostic[]> => {\n const results = await probeAll(refs.map((ref) => ref.url));\n\n const diagnostics: Diagnostic[] = [];\n for (const ref of refs) {\n const result = results.get(ref.url);\n const grade = result ? gradeExternal(result) : null;\n if (grade) {\n diagnostics.push({\n code: \"BLUME_DEAD_LINK\",\n column: ref.column,\n file: ref.file,\n line: ref.line,\n message: `External link ${ref.url} is unreachable (${grade.detail}).`,\n severity: grade.severity,\n });\n }\n }\n return diagnostics;\n};\n\n/** Where content files publish, for resolving file links (`./setup.mdx`). */\nexport interface FileRouteIndex {\n /**\n * Absolute source path → the route that file publishes at. A file shared by\n * every locale publishes once per locale; the default locale's route stands\n * for it (a link from a localized page moves into that locale afterwards,\n * exactly as the rendered link does). Fallback copies render another\n * locale's file, so they never stand for it.\n */\n bySource: Map<string, string>;\n /**\n * A default-locale page's locale-stripped path (`navPath`) → its route. A\n * page in a locale folder that links a sibling not translated yet\n * (`fr/guides/setup.mdx` missing) means the default tree's file\n * (`guides/setup.mdx`), whose route — its own `slug` included — then moves\n * into the reader's locale onto the fallback copy.\n */\n byDefaultNavPath: Map<string, string>;\n /**\n * A staged page's entry id (`<source>/<ref>`) → its route. A remote\n * source's files have no path on disk, so a file link between two of them\n * (`./02-errors.mdx`) resolves by entry id, as the rendered link does.\n */\n byEntryId: Map<string, string>;\n}\n\n/** The linking side of a file link: where the page's source lives. */\nexport interface FileLinkBase {\n navPath: string;\n sourcePath: string;\n}\n\nexport const buildFileRouteIndex = (\n pages: readonly PageRecord[],\n i18n: LocaleRouting | null\n): FileRouteIndex => {\n const bySource = new Map<string, string>();\n const byDefaultNavPath = new Map<string, string>();\n const byEntryId = new Map<string, string>();\n for (const page of pages) {\n const { entryId, sourcePath } = page;\n if (page.fallback) {\n continue;\n }\n const isDefault = page.locale === i18n?.defaultLocale;\n if (entryId && (!byEntryId.has(entryId) || isDefault)) {\n byEntryId.set(entryId, page.route);\n }\n if (!sourcePath) {\n continue;\n }\n if (!bySource.has(sourcePath) || isDefault) {\n bySource.set(sourcePath, page.route);\n }\n if (isDefault) {\n byDefaultNavPath.set(normalize(page.navPath), page.route);\n }\n }\n return { byDefaultNavPath, byEntryId, bySource };\n};\n\n/**\n * The route a file link written on `from` lands on: the linked file's own\n * route, or — when a locale folder doesn't have that file yet — the default\n * tree's file at the same place.\n */\nexport const routeOfLinkedFile = (\n index: FileRouteIndex,\n from: FileLinkBase,\n path: string\n): string | undefined =>\n index.bySource.get(resolve(dirname(from.sourcePath), path)) ??\n index.byDefaultNavPath.get(normalize(join(dirname(from.navPath), path)));\n\n/**\n * The route a file link written on a staged page lands on: the linked\n * entry's, by its path under the staging dir (`entryId`), as the rendered\n * link resolves it.\n */\nexport const routeOfLinkedEntry = (\n index: FileRouteIndex,\n entryId: string,\n path: string\n): string | undefined =>\n index.byEntryId.get(normalize(join(dirname(entryId), path)));\n\n/**\n * The path a relative link on `page` resolves to — the same reading the\n * Markdown pipeline rewrites the rendered `href` to (see\n * {@link resolveRelativeHref}), so what's checked is what ships. A relative\n * asset (`./diagram.png`) isn't a page link; it resolves against the route's\n * directory for the public-dir probe.\n */\nconst relativeTarget = (\n page: PageRecord,\n rawPath: string,\n ctx: LinkContext\n): string => {\n const base = { isIndex: isIndexPage(page), route: page.route };\n const { entryId, navPath, sourcePath } = page;\n let resolveFile: ((path: string) => string | undefined) | undefined;\n if (sourcePath) {\n resolveFile = (path) =>\n routeOfLinkedFile(ctx.fileRoutes, { navPath, sourcePath }, path);\n } else if (entryId) {\n resolveFile = (path) => routeOfLinkedEntry(ctx.fileRoutes, entryId, path);\n }\n return (\n resolveRelativeHref(rawPath, base, resolveFile, (route) =>\n ctx.routes.has(route)\n ) ?? resolveRelative(page.route, rawPath, base.isIndex)\n );\n};\n\n/** The path a decoded, suffix-less internal link on `page` lands on. */\nconst resolveLinkPath = (\n page: PageRecord,\n link: PageLink,\n rawPath: string,\n ctx: LinkContext\n): string => {\n if (!rawPath.startsWith(\"/\")) {\n // A raw `<a href>` isn't rewritten, so the browser resolves it against\n // the page's slashless URL: its parent directory, even on an index page.\n return link.raw\n ? resolveRelative(page.route, rawPath, false)\n : relativeTarget(page, rawPath, ctx);\n }\n // A root-relative link naming a content file lands on that file's page,\n // as the Markdown pipeline rewrites it; one naming no file stays as\n // written (a page's Markdown copy, say).\n return link.raw || link.image\n ? rawPath\n : (ctx.rootFileRoute(rawPath) ?? rawPath);\n};\n\n/** Classify a single link, queueing external refs via `onExternal`. */\nconst classifyLink = (\n page: PageRecord,\n link: PageLink,\n ctx: LinkContext,\n onExternal: (ref: ExternalRef) => void\n): LinkResult => {\n const { target } = link;\n const site: LinkSite = {\n column: link.column,\n // A link written inside an included partial reports against the partial\n // file, so the author fixes it where it lives.\n file: link.file ?? page.sourcePath ?? page.id,\n line: link.line,\n };\n\n if (HTTP.test(target) || PROTOCOL_RELATIVE.test(target)) {\n onExternal({\n ...site,\n url: PROTOCOL_RELATIVE.test(target) ? `https:${target}` : target,\n });\n return null;\n }\n const scheme = SCHEME.exec(target)?.[0];\n if (scheme !== undefined) {\n // mailto:, tel:, and other non-HTTP schemes are not validated — except a\n // platform's own, which no browser follows.\n return PLATFORM_SCHEMES.has(scheme.toLowerCase())\n ? {\n ...site,\n code: \"BLUME_UNSUPPORTED_LINK_SCHEME\",\n message: `Link ${target} uses ReadMe's ${scheme} scheme, which browsers can't follow, so it ships as a dead link.`,\n severity: \"warning\",\n suggestion: \"Link the page by its path instead, like /guides/setup.\",\n }\n : null;\n }\n\n const hashIndex = target.indexOf(\"#\");\n // Browser-copied links arrive percent-encoded (`/caf%C3%A9`, `#caf%C3%A9`)\n // while routes and anchor slugs are stored decoded — decode before comparing\n // so valid links aren't reported broken.\n const fragment = decodePercent(\n hashIndex === -1 ? \"\" : target.slice(hashIndex + 1)\n );\n let rawPath = hashIndex === -1 ? target : target.slice(0, hashIndex);\n const queryIndex = rawPath.indexOf(\"?\");\n if (queryIndex !== -1) {\n rawPath = rawPath.slice(0, queryIndex);\n }\n rawPath = decodePercent(rawPath);\n\n // A relative path (or a bare anchor) means something different from every\n // including page; an absolute path means the same thing everywhere — so\n // only includer-dependent targets carry the \"included by\" context, and\n // identical absolute-target reports collapse in the final dedupe.\n const via = rawPath.startsWith(\"/\") ? \"\" : includedBySuffix(link, page);\n if (rawPath === \"\") {\n return fragment ? checkAnchor(page.route, fragment, site, ctx, via) : null;\n }\n\n const resolved = resolveLinkPath(page, link, rawPath, ctx);\n if (link.src) {\n return checkSourceLink(rawPath, resolved, page, link, site, ctx, via);\n }\n return checkPathLink(resolved, fragment, page, link, site, ctx, via);\n};\n\n/**\n * Whether an exact redirect target lands somewhere the site serves: a page, a\n * custom or generated route, a `public/` or generated file, or another\n * redirect (a chain, which `blume audit` reports on the built site). `self`\n * is the redirect's own based `from`, which leads nowhere but back.\n */\nconst redirectLands = (\n path: string,\n self: string,\n ctx: LinkContext\n): boolean => {\n const route = toRoute(withBasePath(ctx.basePath, path));\n const redirected =\n ctx.redirects.has(route) ||\n ctx.redirectPatterns.some(\n (from) => pathsUnderPattern(from, [route]).length > 0\n );\n return (\n ctx.routes.has(route) ||\n ctx.extraRoutes.has(route) ||\n (route !== self && redirected) ||\n ctx.servesFile(stripBasePath(ctx.basePath, path))\n );\n};\n\n/**\n * Whether anything the site serves sits under a pattern target's literal\n * start (`/guides/` for `/guides/:slug*`): a page, a custom or generated\n * route, a redirect, or a `public/` folder. Which path a capture fills in\n * can't be known before a request, so the prefix is what's checked.\n */\nconst redirectLandsUnder = (\n prefix: string,\n ctx: LinkContext,\n publicDir: string | null\n): boolean => {\n const based = withBasePath(ctx.basePath, prefix);\n const folder = prefix.slice(0, prefix.lastIndexOf(\"/\") + 1);\n return (\n [...ctx.routes, ...ctx.extraRoutes, ...ctx.redirects].some((route) =>\n `${route}/`.startsWith(based)\n ) ||\n (publicDir !== null &&\n statSync(join(publicDir, folder), {\n throwIfNoEntry: false,\n })?.isDirectory() === true)\n );\n};\n\n/**\n * Warn about each internal redirect `to` that lands nowhere, located at its\n * `to` in the config file when the redirects are written there. `blume audit`\n * follows redirects through the built site; this catches a dead end before\n * the build. External targets aren't checked.\n */\nconst redirectTargetDiagnostics = (\n redirects: readonly { from: string; to: string }[],\n ctx: LinkContext,\n options: { configFile?: string; publicDir: string | null }\n): Diagnostic[] => {\n const { configFile, publicDir } = options;\n let source: string | undefined;\n return redirects.flatMap((redirect, index): Diagnostic[] => {\n if (!isInternalPath(redirect.to)) {\n return [];\n }\n const path = decodePercent(redirect.to.split(/[?#]/u)[0] ?? \"\");\n const prefix = destinationPrefix(path);\n const lands =\n prefix === undefined\n ? redirectLands(\n path,\n toRoute(withBasePath(ctx.basePath, redirect.from)),\n ctx\n )\n : redirectLandsUnder(prefix, ctx, publicDir);\n if (lands) {\n return [];\n }\n if (configFile && source === undefined) {\n source = readFileSync(configFile, \"utf-8\");\n }\n const position = source\n ? locatePath(source, [\"redirects\", index, \"to\"])\n : undefined;\n return [\n {\n code: \"BLUME_BROKEN_REDIRECT\",\n column: position?.column,\n file: configFile,\n line: position?.line,\n message:\n prefix === undefined\n ? `The redirect from ${redirect.from} sends readers to ${redirect.to}, which no page, file, or other redirect serves.`\n : `The redirect from ${redirect.from} sends readers to ${redirect.to}, but nothing is served under ${prefix}.`,\n severity: \"warning\",\n suggestion: \"Point `to` at a page that exists, or remove the redirect.\",\n },\n ];\n });\n};\n\n/**\n * Validate every link discovered in the content graph: internal page links and\n * anchors against the route map, asset links against the public dir, and\n * (opt-in) external links over the network.\n */\nexport const validateLinks = async (\n graph: ContentGraph,\n options: {\n /** Site-wide route mount point (`\"\"` or `/seg`); routes and redirects carry it. */\n basePath?: string;\n /**\n * Servable routes the graph can't know: custom `.astro` pages and generated\n * routes (e.g. the `/changelog` index). Mounted outside `basePath` (they're\n * injected at their pattern), so they are *not* based here — mirroring the\n * full-route-set resolution in `nav-diagnostics.ts`/`generateRuntime`.\n */\n extraRoutes?: string[];\n /**\n * The files the build generates beside `public/` (`/llms.txt`,\n * `/sitemap.xml`; see `deploy/generated-files.ts`), base-less: links to\n * them resolve like links to `public/` files.\n */\n generatedFiles?: string[];\n /** Locale routing when i18n is on; links then resolve into the page's locale. */\n i18n?: LocaleRouting | null;\n /** The project's `public/` folder, or `null` when it has none (and so\n * ships no public files). */\n publicDir: string | null;\n checkExternal?: boolean;\n /** External URLs not to request (`--ignore`). Internal links are always checked. */\n ignore?: (url: string) => boolean;\n /**\n * Configured redirects: their `from` paths count as valid link targets,\n * and an internal `to` must land somewhere the site serves.\n */\n redirects?: { from: string; to: string }[];\n /** The config file the redirects are written in, for their positions. */\n configFile?: string;\n /**\n * The `docs` collection's content root, which a root-relative link to a\n * content file (`/guide/new.md`) is read from.\n */\n contentRoot?: string;\n /** `deployment.base` (`\"\"` or `/seg`), which such a link may start with. */\n deployBase?: string;\n }\n): Promise<Diagnostic[]> => {\n const basePath = options.basePath ?? \"\";\n const fileRoutes = buildFileRouteIndex(graph.pages, options.i18n ?? null);\n const { contentRoot } = options;\n const ctx: LinkContext = {\n anchors: buildAnchorIndex(graph.pages),\n basePath,\n extraRoutes: new Set((options.extraRoutes ?? []).map(toRoute)),\n fileRoutes,\n i18n: options.i18n ?? null,\n redirectPatterns: (options.redirects ?? []).flatMap((redirect) =>\n isPatternPath(redirect.from)\n ? [withBasePath(basePath, redirect.from)]\n : []\n ),\n redirects: new Set(\n (options.redirects ?? []).map((redirect) =>\n toRoute(withBasePath(basePath, redirect.from))\n )\n ),\n rootFileRoute: (href) =>\n contentRoot === undefined\n ? undefined\n : resolveRootFileHref(href, {\n contentRoot,\n deployBase: options.deployBase ?? \"\",\n routeOfFile: (file) => fileRoutes.bySource.get(file),\n }),\n routes: new Set(graph.routes.keys()),\n servesFile: staticFileResolver(options.publicDir, options.generatedFiles),\n };\n const diagnostics: Diagnostic[] = [];\n const external: ExternalRef[] = [];\n\n for (const page of graph.pages) {\n for (const link of page.links) {\n const result = classifyLink(page, link, ctx, (ref) => external.push(ref));\n if (result) {\n diagnostics.push(result);\n }\n }\n }\n diagnostics.push(\n ...redirectTargetDiagnostics(options.redirects ?? [], ctx, {\n configFile: options.configFile,\n publicDir: options.publicDir,\n })\n );\n\n // `--ignore` names URLs that can't be checked from where this runs: a\n // placeholder host, a local server, a site that turns bots away.\n const probed = external.filter((ref) => !options.ignore?.(ref.url));\n if (options.checkExternal && probed.length > 0) {\n diagnostics.push(...(await checkExternalLinks(probed)));\n }\n\n // A partial spliced into several pages (or every locale of one) yields the\n // same diagnostic once per including page record; byte-identical reports\n // add noise without information, so only the first of each survives.\n const seen = new Set<string>();\n return diagnostics.filter((diagnostic) => {\n const key = [\n diagnostic.code,\n diagnostic.file ?? \"\",\n diagnostic.line ?? \"\",\n diagnostic.column ?? \"\",\n diagnostic.message,\n ].join(\"\\n\");\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n};\n",
|
|
55
55
|
"import {\n isInternalPath,\n mountBasePath,\n normalizePath,\n stripBasePath,\n withBasePath,\n} from \"./base-path.ts\";\nimport { localePrefix, localizeRoute } from \"./i18n.ts\";\nimport type { LocaleRouting } from \"./i18n.ts\";\n\n/**\n * Locale-aware resolution of content links.\n *\n * Authors write internal links as if mounted at the default locale's root\n * (`[x](/guide)`, `<Card href=\"/guide\">`), and translated pages are usually\n * copies of the source with the same links — so read on `/fr/…`, a link would\n * otherwise drop the reader back into the default language. These helpers move\n * such a link to the reader's locale (`/fr/guide`) when that route is served\n * (a real translation or a materialized fallback page), and leave it alone\n * otherwise: an explicit cross-locale link (`/de/guide`), a custom `.astro`\n * page or generated route that has no per-locale variant, or a missing\n * translation on a site with fallbacks disabled all keep their authored\n * target rather than pointing at a 404.\n *\n * The rewrite runs at render time (`components/layout/LocaleLinks.astro`)\n * because content is compiled once per file but served per route: a fallback\n * route renders the fallback locale's file under the missing locale's URL, and\n * a shared `page.$.mdx` renders under every locale. The link checker applies\n * the same resolution so anchors are validated against the page a reader lands\n * on.\n */\n\n/** A route set, as the runtime (`Set`) or the checker (a predicate) sees it. */\nexport interface RouteSet {\n has: (route: string) => boolean;\n}\n\nexport interface LocalizeLinkOptions {\n /** Site-wide route mount point (`\"\"` or `/seg`); routes carry it. */\n basePath: string;\n i18n: LocaleRouting;\n /** Locale of the page the link is rendered on. */\n locale: string;\n /** Every served route, base-prefixed like `path` (no `deployment.base`). */\n routes: RouteSet;\n}\n\n/** Decode a percent-encoded path for a route lookup; leave junk as-is. */\nconst decodePercent = (value: string): string => {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n};\n\n/**\n * Whether `routes` serves `route` (base-prefixed, fragment-less). Routes are\n * stored decoded, so a browser-copied `/caf%C3%A9` still finds its page.\n */\nexport const servesRoute = (routes: RouteSet, route: string): boolean =>\n routes.has(route) || routes.has(decodePercent(route));\n\n/** Whether `path` (base-stripped) already sits under some locale's prefix. */\nconst hasLocalePrefix = (path: string, i18n: LocaleRouting): boolean =>\n i18n.locales.some((locale) => {\n const prefix = localePrefix(locale.code, i18n);\n return prefix !== \"\" && (path === prefix || path.startsWith(`${prefix}/`));\n });\n\n/**\n * Move a base-prefixed, fragment-less internal path into `locale` when that\n * route is served, else return it unchanged. Idempotent: a path already under\n * any configured locale prefix is never re-prefixed.\n */\nexport const localizeLinkPath = (\n path: string,\n options: LocalizeLinkOptions\n): string => {\n const { basePath, i18n, locale, routes } = options;\n if (localePrefix(locale, i18n) === \"\") {\n return path;\n }\n const rest = normalizePath(stripBasePath(basePath, path));\n if (hasLocalePrefix(rest, i18n)) {\n return path;\n }\n const localized = withBasePath(basePath, localizeRoute(rest, locale, i18n));\n // A browser-copied `/caf%C3%A9` must still find its translation, but the\n // emitted href keeps the author's encoding.\n return servesRoute(routes, localized) ? localized : path;\n};\n\nexport interface LocalizeHrefOptions extends LocalizeLinkOptions {\n /** `deployment.base` (Astro's `BASE_URL`), layered over `basePath` in hrefs. */\n deployBase: string;\n}\n\n/**\n * Localize a rendered `href`: external URLs, relative paths, and bare\n * fragments pass through; a root-relative page link keeps its `?query` and\n * `#fragment` and its `deployment.base` layer around the localized path.\n *\n * Asset links (`/logo.png`, a raw `.md` twin) pass through too, because no\n * page is served at their localized path — the same served-route test the\n * link checker applies. A file extension alone doesn't mark an asset: a\n * dotted page route (`/releases/v1.2`) is localized like any other page.\n */\nexport const localizeHref = (\n href: string,\n options: LocalizeHrefOptions\n): string => {\n if (!isInternalPath(href)) {\n return href;\n }\n const suffixAt = href.search(/[#?]/u);\n const path = suffixAt === -1 ? href : href.slice(0, suffixAt);\n const suffix = suffixAt === -1 ? \"\" : href.slice(suffixAt);\n const based = stripBasePath(options.deployBase, path);\n const localized = localizeLinkPath(based, options);\n if (localized === based) {\n return href;\n }\n // The base came off above, so it goes back on unconditionally: a localized\n // path that starts with the base's own name (`/ja/…` under base `/ja`) is\n // still served under it.\n return `${mountBasePath(options.deployBase, localized)}${suffix}`;\n};\n\n/** Every `<a …>` opening tag; `\\s` keeps `<abbr>`/`<astro-island>` out. */\nconst ANCHOR_TAG = /<a\\s[^>]*>/giu;\n/** The tag's `href` attribute, double- or single-quoted. */\nconst HREF_ATTR = /(?<attr>\\shref=)(?:\"(?<dq>[^\"]*)\"|'(?<sq>[^']*)')/iu;\n\n/**\n * Rewrite every `<a href>` in rendered content HTML through `rewrite`. Code\n * blocks are HTML-escaped (`<a`), and island props live on\n * `<astro-island>`, so neither is touched.\n */\nexport const localizeContentLinks = (\n html: string,\n rewrite: (href: string) => string\n): string =>\n html.replace(ANCHOR_TAG, (tag) =>\n tag.replace(HREF_ATTR, (_match, attr: string, dq?: string, sq?: string) => {\n const quote = dq === undefined ? \"'\" : '\"';\n return `${attr}${quote}${rewrite(dq ?? sq ?? \"\")}${quote}`;\n })\n );\n\n/**\n * The served route set for `blume:data`'s routes, built once per routes array\n * (the virtual module is evaluated once, so every page render shares it).\n */\nconst routeSets = new WeakMap<readonly { path: string }[], Set<string>>();\n\nexport const routeSetFor = (\n routes: readonly { path: string }[]\n): Set<string> => {\n const cached = routeSets.get(routes);\n if (cached) {\n return cached;\n }\n const built = new Set(routes.map((route) => route.path));\n routeSets.set(routes, built);\n return built;\n};\n",
|
|
56
56
|
"import pMap from \"p-map\";\n\nimport type { DiagnosticSeverity } from \"./types.ts\";\n\nexport const PROBE_CONCURRENCY = 8;\nexport const PROBE_TIMEOUT_MS = 10_000;\n\nconst STATUS_NOT_FOUND = 404;\nconst STATUS_GONE = 410;\nconst STATUS_METHOD_NOT_ALLOWED = 405;\nconst STATUS_NOT_IMPLEMENTED = 501;\n\n/** The outcome of a single HTTP probe, with failures normalized rather than thrown. */\nexport interface ProbeResult {\n ok: boolean;\n status?: number;\n timedOut?: boolean;\n error?: string;\n /** The system error code behind a request that got no response (`ENOTFOUND`). */\n code?: string;\n /** Whether the request was redirected before landing on `status`. */\n redirected?: boolean;\n /** The URL finally landed on, after following redirects. */\n finalUrl?: string;\n /** `Content-Encoding` of the response, when the server set one. */\n encoding?: string | null;\n /** Wall-clock milliseconds for the request. */\n ms?: number;\n /** `X-Robots-Tag` of the response, when the server set one. */\n robotsTag?: string | null;\n}\n\n/**\n * The reason a request got no response. Node's fetch rejects with a bare\n * \"fetch failed\" and puts the system error (`getaddrinfo ENOTFOUND …`, with\n * its `code`) on `cause`; Bun's rejects with the system error itself.\n */\nconst failure = (error: Error): Pick<ProbeResult, \"code\" | \"error\"> => {\n const reason = error.cause instanceof Error ? error.cause : error;\n return \"code\" in reason\n ? { code: String(reason.code), error: reason.message }\n : { error: reason.message };\n};\n\n/** Probe a URL with the given method, normalizing failures to a result. */\nconst request = async (\n url: string,\n method: \"GET\" | \"HEAD\",\n timeoutMs: number\n): Promise<ProbeResult> => {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n const started = performance.now();\n try {\n const response = await fetch(url, {\n method,\n redirect: \"follow\",\n signal: controller.signal,\n });\n return {\n encoding: response.headers.get(\"content-encoding\"),\n finalUrl: response.url,\n ms: Math.round(performance.now() - started),\n ok: response.ok,\n redirected: response.redirected,\n robotsTag: response.headers.get(\"x-robots-tag\"),\n status: response.status,\n };\n } catch (error) {\n if (error instanceof Error && error.name === \"AbortError\") {\n return { ok: false, timedOut: true };\n }\n const reason =\n error instanceof Error ? failure(error) : { error: String(error) };\n return { ...reason, ok: false };\n } finally {\n clearTimeout(timer);\n }\n};\n\n/**\n * Probe a single URL: HEAD first, falling back to GET.\n *\n * Plenty of servers reject HEAD outright (405/501) or drop the connection, so a\n * HEAD-only probe would report healthy pages as dead.\n */\nexport const probe = async (\n url: string,\n options: { timeoutMs?: number } = {}\n): Promise<ProbeResult> => {\n const timeoutMs = options.timeoutMs ?? PROBE_TIMEOUT_MS;\n const head = await request(url, \"HEAD\", timeoutMs);\n const unreachable = !head.ok && head.status === undefined && !head.timedOut;\n const retry =\n head.status === STATUS_METHOD_NOT_ALLOWED ||\n head.status === STATUS_NOT_IMPLEMENTED ||\n unreachable;\n return retry ? await request(url, \"GET\", timeoutMs) : head;\n};\n\n/** Grade a probe result into a severity + detail, or null when the URL is fine. */\nexport const gradeExternal = (\n result: ProbeResult\n): { severity: DiagnosticSeverity; detail: string } | null => {\n if (result.ok) {\n return null;\n }\n if (result.timedOut) {\n return { detail: \"request timed out\", severity: \"warning\" };\n }\n // No response at all. A host name that doesn't resolve is as dead as a 404;\n // a refused, reset, or failed connection is more often someone else's outage\n // or the runner's own network, so it's graded like a timeout.\n if (result.status === undefined) {\n return {\n detail: result.error ?? \"unreachable\",\n severity: result.code === \"ENOTFOUND\" ? \"error\" : \"warning\",\n };\n }\n // A 404/410 is definitively dead. Any other status — a 401/403 from a site\n // that turns bots away, a 429, a 5xx — may well be rate limiting or a\n // transient blip, which is not the author's bug to fix.\n if (result.status === STATUS_NOT_FOUND || result.status === STATUS_GONE) {\n return { detail: `HTTP ${result.status}`, severity: \"error\" };\n }\n return { detail: `HTTP ${result.status}`, severity: \"warning\" };\n};\n\n/**\n * Probe many URLs with bounded concurrency, deduplicating first. Returns a map\n * from URL to its result — the caller decides what each one means.\n */\nexport const probeAll = async (\n urls: readonly string[],\n options: { concurrency?: number; timeoutMs?: number } = {}\n): Promise<Map<string, ProbeResult>> => {\n const unique = [...new Set(urls)];\n const entries = await pMap(\n unique,\n async (url) => [url, await probe(url, options)] as const,\n { concurrency: Math.max(1, options.concurrency ?? PROBE_CONCURRENCY) }\n );\n return new Map(entries);\n};\n",
|
|
57
57
|
"/**\n * Pattern redirects: a `from` that covers many paths, written the way\n * Mintlify and `vercel.json` write them.\n *\n * - `:name` matches one whole segment: `/blog/:slug` → `/articles/:slug`.\n * - `:name*` as the last segment matches the rest of the path, any number of\n * segments: `/beta/:slug*` → `/v2/:slug*` sends `/beta/a/b` to `/v2/a/b`\n * and `/beta` itself to `/v2`. A last segment of `*` does the same.\n * - `*` ending a segment matches the rest of the path from there:\n * `/articles/concepts-*` → `/overview`, or `/old/article-*` →\n * `/new/article-*` to carry what it matched (`/new/article-:splat`, as\n * `_redirects` spells it, reads the same capture).\n *\n * `to` reads a capture as a whole segment (`/:name`, `/:name*`, `/*`) or, for\n * `*`, wherever it stands. Hosts disagree on the rest of the syntax, so each\n * gets its own translation from {@link expandRedirect}: `_redirects` splats,\n * `vercel.json` sources, and the regular expressions Vercel's routing config,\n * the Node and Cloudflare wrappers, and the dev server match with. A capture\n * that may be empty is expanded into two rules first, so `/beta` lands on\n * `/v2` rather than `/v2/` on every host.\n */\n\nimport { normalizePath } from \"./base-path.ts\";\n\n/** The name `*` captures under, which `_redirects` reads as `:splat`. */\nexport const SPLAT = \"splat\";\n\n/** A piece of a parsed `from`, or of a rule it expands to. */\ntype Part =\n | { kind: \"text\"; text: string }\n /** `:name`: one whole segment. */\n | { kind: \"param\"; name: string }\n /** `/:name*` or `/*` ending the path: zero or more segments. */\n | { kind: \"rest\"; name: string }\n /** A rest in an expanded rule: one or more characters after its `/`. */\n | { kind: \"tail\"; name: string }\n /** `*` ending a segment: any characters, none included. */\n | { kind: \"splat\" };\n\n/** A piece of an expanded rule, where a rest has become a tail. */\ntype RulePart = Exclude<Part, { kind: \"rest\" }>;\n\n/** A redirect's two ends, as configured or based. */\ninterface RedirectEnds {\n from: string;\n status: number;\n to: string;\n}\n\n/** One rule a redirect expands to. */\nexport interface RedirectRule {\n parts: RulePart[];\n status: number;\n to: string;\n}\n\nconst PARAM = /^:(?<name>[A-Za-z_]\\w*)(?<rest>\\*)?$/u;\nconst PARAM_START = /^:[A-Za-z_]/u;\n\n/**\n * A capture read in `to`: a whole segment (`/:name`, `/:name*`, `/*`), which\n * an empty value drops along with its slash, or a `*` anywhere.\n */\nconst REFERENCE = /\\/(?::(?<name>[A-Za-z_]\\w*)\\*?|\\*)(?=[/?#]|$)|\\*/gu;\n\n/** Parsed pieces, or why they can't be parsed. */\ntype Parsed = { parts: Part[] } | { error: string };\n\nconst text = (value: string): Part[] =>\n value ? [{ kind: \"text\", text: value }] : [];\n\n/** The pieces of one `from` segment after the ones before it. */\nconst segmentParts = (\n segment: string,\n last: boolean,\n names: Set<string>\n): Parsed => {\n const param = PARAM.exec(segment)?.groups;\n if (param?.name) {\n const { name } = param;\n if (name === SPLAT) {\n return {\n error:\n \"`:splat` is the name `*` captures under; name the segment something else.\",\n };\n }\n if (names.has(name)) {\n return {\n error: `\\`:${name}\\` appears twice; give each segment its own name.`,\n };\n }\n names.add(name);\n if (!param.rest) {\n return {\n parts: [\n { kind: \"text\", text: \"/\" },\n { kind: \"param\", name },\n ],\n };\n }\n return last\n ? { parts: [{ kind: \"rest\", name }] }\n : {\n error: `\\`:${name}*\\` matches the rest of the path, so it must be the last segment.`,\n };\n }\n if (PARAM_START.test(segment)) {\n return {\n error: `\\`${segment}\\` isn't a whole-segment \\`:param\\`; write \\`/:name\\` or \\`/:name*\\`.`,\n };\n }\n const star = segment.indexOf(\"*\");\n if (star === -1) {\n return { parts: text(`/${segment}`) };\n }\n if (!last || star !== segment.length - 1) {\n return {\n error: \"`*` matches the rest of the path, so it can only end it.\",\n };\n }\n names.add(SPLAT);\n return segment === \"*\"\n ? { parts: [{ kind: \"rest\", name: SPLAT }] }\n : { parts: [...text(`/${segment.slice(0, -1)}`), { kind: \"splat\" }] };\n};\n\n/** Merge neighboring text pieces, so each format sees one run of literal path. */\nconst joinText = <Piece extends Part>(parts: readonly Piece[]): Piece[] => {\n const joined: Piece[] = [];\n for (const part of parts) {\n const previous = joined.at(-1);\n if (part.kind === \"text\" && previous?.kind === \"text\") {\n // A fresh piece: the one before may be shared with another rule.\n joined[joined.length - 1] = {\n ...previous,\n text: previous.text + part.text,\n };\n } else {\n joined.push(part);\n }\n }\n return joined;\n};\n\n/** Parse a `from` path into literal and captured pieces. */\nconst parseFrom = (from: string): Parsed => {\n const segments = from.split(\"/\").slice(1);\n const names = new Set<string>();\n const parts: Part[] = [];\n for (const [index, segment] of segments.entries()) {\n const next = segmentParts(segment, index === segments.length - 1, names);\n if (\"error\" in next) {\n return next;\n }\n parts.push(...next.parts);\n }\n return { parts: joinText(parts) };\n};\n\n/** The names a `from` captures. */\nconst capturedNames = (parts: readonly Part[]): Set<string> =>\n new Set(\n parts.flatMap((part) => {\n if (part.kind === \"param\" || part.kind === \"rest\") {\n return [part.name];\n }\n return part.kind === \"splat\" ? [SPLAT] : [];\n })\n );\n\n/** The capture a `to` reference reads: `*` and `/*` read the splat. */\nconst referenceName = (name: string | undefined): string => name ?? SPLAT;\n\n/**\n * `to` with each capture reference replaced: `replace` gets the name and\n * whether the reference is a whole segment (its slash included in what it\n * replaces).\n */\nconst replaceReferences = (\n to: string,\n replace: (name: string, segment: boolean) => string\n): string =>\n to.replaceAll(REFERENCE, (match, name: string | undefined) =>\n replace(referenceName(name), match.startsWith(\"/\"))\n );\n\n/**\n * The literal start of a `to` that reads a capture, up to its first\n * reference: `/guides/` for `/guides/:slug*`, `/new/article-` for\n * `/new/article-*`. `undefined` for a `to` that reads none, which is one\n * exact path.\n */\nexport const destinationPrefix = (to: string): string | undefined => {\n const at = to.search(REFERENCE);\n if (at === -1) {\n return undefined;\n }\n // A whole-segment reference starts at its slash, which the prefix keeps.\n return to.slice(0, to[at] === \"/\" ? at + 1 : at);\n};\n\n/** Whether a path is a pattern, rather than one exact path. */\nexport const isPatternPath = (path: string): boolean => {\n const parsed = parseFrom(path);\n return \"error\" in parsed || parsed.parts.some((part) => part.kind !== \"text\");\n};\n\n/** Why a redirect's ends can't work, and which end to fix. */\nexport interface RedirectPatternError {\n end: \"from\" | \"to\";\n message: string;\n}\n\n/**\n * Why a redirect's ends can't work as a pattern, or `null` when they can:\n * `from` has a malformed capture, or `to` reads one `from` doesn't make.\n */\nexport const redirectPatternError = (\n from: string,\n to: string\n): RedirectPatternError | null => {\n const parsed = parseFrom(from);\n if (\"error\" in parsed) {\n return { end: \"from\", message: parsed.error };\n }\n const names = capturedNames(parsed.parts);\n const unknown: string[] = [];\n replaceReferences(to, (name) => {\n if (!names.has(name)) {\n unknown.push(name);\n }\n return \"\";\n });\n const [first] = unknown;\n if (first === undefined) {\n return null;\n }\n const spelled = first === SPLAT ? \"`*`\" : `\\`:${first}\\``;\n return {\n end: \"to\",\n message: `\\`to\\` reads ${spelled}, which \\`from\\` doesn't capture.`,\n };\n};\n\n/**\n * `to` with a rest's capture filled with nothing, its references dropped\n * along with their slashes. Any other reference is to a one-segment\n * `:param` (a `from` holds one rest or `*` at most), so it stays.\n */\nconst dropCapture = (to: string, dropped: string): string => {\n const filled = replaceReferences(to, (name) =>\n name === dropped ? \"\" : `/:${name}`\n );\n return /^(?:[?#]|$)/u.test(filled) ? `/${filled}` : filled;\n};\n\n/** The pieces of a rule: a parsed `from` holds its rest last, if at all. */\nconst ruleParts = (parts: readonly Part[]): RulePart[] =>\n parts.filter((part): part is RulePart => part.kind !== \"rest\");\n\n/**\n * The rules a redirect expands to, in the order to try them. A `from` ending\n * in a rest (`/:name*`, `/*`) becomes two: the bare path, its references\n * dropped, and the path with at least one more segment. Only a pattern has\n * rules; an exact redirect gets none.\n */\nexport const expandRedirect = (redirect: RedirectEnds): RedirectRule[] => {\n const parsed = parseFrom(redirect.from);\n if (\"error\" in parsed) {\n return [];\n }\n const { parts } = parsed;\n const last = parts.at(-1);\n if (last?.kind !== \"rest\") {\n const fixed = ruleParts(parts);\n return fixed.some((part) => part.kind !== \"text\")\n ? [{ parts: fixed, status: redirect.status, to: redirect.to }]\n : [];\n }\n const head = ruleParts(parts.slice(0, -1));\n const tail = joinText<RulePart>([...head, { kind: \"text\", text: \"/\" }]);\n return [\n {\n parts: head.length > 0 ? head : [{ kind: \"text\", text: \"/\" }],\n status: redirect.status,\n to: dropCapture(redirect.to, last.name),\n },\n {\n parts: [...tail, { kind: \"tail\", name: last.name }],\n status: redirect.status,\n to: redirect.to,\n },\n ];\n};\n\n/**\n * The bare path a pattern ending in a rest also matches, as the exact\n * redirect every host is given for it: `/beta/:slug*` (or `/beta/*`) to\n * `/v2/:slug*` sends `/beta` itself to `/v2`. Null for an exact redirect,\n * a pattern with no rest, and one whose bare path still holds a capture\n * (`/:lang/*`), which names no single path.\n */\nexport const bareRedirect = (\n redirect: RedirectEnds\n): { from: string; to: string } | null => {\n // A rest expands to two rules, the bare path first (see `expandRedirect`).\n const rules = expandRedirect(redirect);\n const [bare] = rules;\n if (rules.length !== 2 || bare === undefined) {\n return null;\n }\n let from = \"\";\n for (const part of bare.parts) {\n if (part.kind !== \"text\") {\n return null;\n }\n from += part.text;\n }\n return { from, to: bare.to };\n};\n\n/** Put exact redirects ahead of patterns, which hosts try in order. */\nexport const exactFirst = <Redirect extends { from: string }>(\n redirects: readonly Redirect[]\n): Redirect[] => [\n ...redirects.filter((redirect) => !isPatternPath(redirect.from)),\n ...redirects.filter((redirect) => isPatternPath(redirect.from)),\n];\n\n// ---------------------------------------------------------------------------\n// Formats\n// ---------------------------------------------------------------------------\n\n/** The captures a rule makes, in order, by name. */\nconst captureNames = (parts: readonly RulePart[]): string[] =>\n parts.flatMap((part) => {\n if (part.kind === \"param\" || part.kind === \"tail\") {\n return [part.name];\n }\n return part.kind === \"splat\" ? [SPLAT] : [];\n });\n\n/** A rule's path in `_redirects` syntax (Netlify, Cloudflare). */\nconst underscorePath = (parts: readonly RulePart[]): string =>\n parts\n .map((part) => {\n if (part.kind === \"text\") {\n return part.text;\n }\n return part.kind === \"param\" ? `:${part.name}` : \"*\";\n })\n .join(\"\");\n\n/** A rule as a `_redirects` `from` and `to`: rests and `*` are its splat. */\nexport const underscoreRedirect = (rule: RedirectRule) => {\n const splats = new Set(\n rule.parts.flatMap((part) => {\n if (part.kind === \"tail\") {\n return [part.name];\n }\n return part.kind === \"splat\" ? [SPLAT] : [];\n })\n );\n return {\n from: underscorePath(rule.parts),\n to: replaceReferences(rule.to, (name, segment) => {\n const spelled = splats.has(name) ? \":splat\" : `:${name}`;\n return segment ? `/${spelled}` : spelled;\n }),\n };\n};\n\n/**\n * A rule as a `vercel.json` `source` and `destination` (`path-to-regexp`),\n * each literal run escaped by `escape` so it matches only itself.\n */\nexport const vercelRedirect = (\n rule: RedirectRule,\n escape: (path: string) => string\n) => {\n const tails = new Set(\n rule.parts.flatMap((part) => (part.kind === \"tail\" ? [part.name] : []))\n );\n const source = rule.parts\n .map((part) => {\n if (part.kind === \"text\") {\n return escape(part.text);\n }\n if (part.kind === \"param\") {\n return `:${part.name}`;\n }\n return part.kind === \"tail\" ? `:${part.name}+` : `:${SPLAT}(.*)`;\n })\n .join(\"\");\n return {\n destination: replaceReferences(rule.to, (name, segment) => {\n const spelled = tails.has(name) ? `:${name}+` : `:${name}`;\n return segment ? `/${spelled}` : spelled;\n }),\n source,\n };\n};\n\nconst REGEX_SYNTAX = /[$()*+.?[\\\\\\]^{|}]/gu;\n\n/**\n * A rule as a regular expression source over the decoded path (JavaScript\n * and PCRE alike), a trailing slash optional, and its `to` with each capture\n * a numbered `$n`. What Vercel's routing config and the server wrappers\n * match with.\n */\nexport const regexRedirect = (rule: RedirectRule) => {\n const lastIndex = rule.parts.length - 1;\n const body = rule.parts\n .map((part, index) => {\n if (part.kind === \"text\") {\n // The optional trailing slash is added once, below.\n const literal =\n index === lastIndex && index > 0\n ? part.text.replace(/\\/$/u, \"\")\n : part.text;\n return literal.replaceAll(REGEX_SYNTAX, String.raw`\\$&`);\n }\n if (part.kind === \"param\") {\n return \"([^/]+)\";\n }\n return part.kind === \"tail\" ? \"(.+?)\" : \"(.*?)\";\n })\n .join(\"\");\n const names = captureNames(rule.parts);\n return {\n location: replaceReferences(rule.to, (name, segment) => {\n const reference = `$${names.indexOf(name) + 1}`;\n return segment ? `/${reference}` : reference;\n }),\n source: body === \"/\" ? \"^/$\" : `^${body}/?$`,\n };\n};\n\n/** A pattern redirect as the server wrappers carry it: regex source, `Location` template, status. */\nexport type CompiledRedirect = [\n source: string,\n location: string,\n status: number,\n];\n\n/** One rule, compiled (see {@link compileRedirects}). */\nconst compileRule = (rule: RedirectRule): CompiledRedirect => {\n const { location, source } = regexRedirect(rule);\n return [source, encodeURI(location), rule.status];\n};\n\n/**\n * The pattern redirects among `redirects`, compiled for the server wrappers\n * and Vercel's routing config, in the order to try them. The `Location`\n * template is percent-encoded as the header needs; a capture is encoded when\n * it's filled (see {@link fillLocation}).\n */\nexport const compileRedirects = (\n redirects: readonly RedirectEnds[]\n): CompiledRedirect[] => redirects.flatMap(expandRedirect).map(compileRule);\n\n/**\n * Every redirect among `redirects` compiled, exact paths first: a pattern as\n * {@link compileRedirects} compiles it, an exact path as a rule matching\n * just that path, a trailing slash optional. What the dev server answers\n * with, where Astro's own handler would send an exact redirect to a page\n * served by `[...slug]` as a `301` whatever its status.\n */\nexport const compileEveryRedirect = (\n redirects: readonly RedirectEnds[]\n): CompiledRedirect[] =>\n exactFirst(redirects)\n .flatMap((redirect) => {\n const rules = expandRedirect(redirect);\n return rules.length > 0\n ? rules\n : [\n {\n parts: [{ kind: \"text\", text: normalizePath(redirect.from) }],\n status: redirect.status,\n to: redirect.to,\n } satisfies RedirectRule,\n ];\n })\n .map(compileRule);\n\n/** A captured value, encoded for a `Location` header that must not grow a query or fragment. */\nexport const encodeCapture = (value: string): string =>\n encodeURI(value).replaceAll(\"?\", \"%3F\").replaceAll(\"#\", \"%23\");\n\n/** A `Location` template with its `$n` references filled from `match`. */\nexport const fillLocation = (\n location: string,\n match: RegExpExecArray\n): string =>\n location.replaceAll(/\\$(?<index>\\d+)/gu, (_reference, index: string) =>\n encodeCapture(match[Number(index)] ?? \"\")\n );\n\n/**\n * The `Location` and status the first compiled redirect matching a decoded\n * path answers with, or `null` when none does.\n */\nexport const matchCompiledRedirect = (\n compiled: readonly CompiledRedirect[],\n path: string\n): [location: string, status: number] | null => {\n for (const [source, location, status] of compiled) {\n const match = new RegExp(source, \"u\").exec(path);\n if (match) {\n return [fillLocation(location, match), status];\n }\n }\n return null;\n};\n\n/** A request URL's path, decoded; a malformed escape leaves it as sent. */\nexport const requestPath = (url: string): string => {\n const [path = \"\"] = url.split(/[?#]/u, 1);\n try {\n return decodeURIComponent(path);\n } catch {\n return path;\n }\n};\n\n/**\n * Where a pattern redirect sends a decoded path, unencoded, or `undefined`\n * when none matches: what the link checks follow.\n */\nexport const patternDestination = (\n redirects: readonly RedirectEnds[],\n path: string\n): string | undefined => {\n for (const rule of redirects.flatMap(expandRedirect)) {\n const { location, source } = regexRedirect(rule);\n const match = new RegExp(source, \"u\").exec(path);\n if (match) {\n return location.replaceAll(\n /\\$(?<index>\\d+)/gu,\n (_reference, index: string) => match[Number(index)] ?? \"\"\n );\n }\n }\n return undefined;\n};\n\n/**\n * The paths a pattern `from` matches, of those given; none for an exact\n * `from`. Only the match matters here, so the rules' destinations are moot.\n */\nexport const pathsUnderPattern = (\n from: string,\n paths: readonly string[]\n): string[] => {\n const sources = expandRedirect({ from, status: 0, to: \"/\" }).map(\n (rule) => new RegExp(regexRedirect(rule).source, \"u\")\n );\n return paths.filter((path) => sources.some((source) => source.test(path)));\n};\n",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"import { gzipSync } from \"node:zlib\";\n\nimport { createTar } from \"nanotar\";\n\n/**\n * `.tar.gz` writer for agent-skill archives, on nanotar's ustar writer.\n * Deterministic by construction — fixed mtime/uid/gid/owner attrs,\n * caller-ordered entries, and Node's gzip header carries no timestamp — so a\n * skill's archive digest only changes when its content does. That holds per\n * machine: the tar bytes are portable, but zlib's compressed stream differs\n * across architectures, so gzip-layer digests are not comparable across\n * platforms.\n */\n\n/** One regular file to archive. Paths are `/`-separated, relative, no `..`. */\nexport interface TarEntry {\n /** Raw file bytes. */\n content: Uint8Array;\n /** Preserve the owner-execute bit (e.g. a skill's scripts). */\n executable?: boolean;\n /** Archive-relative path, e.g. `SKILL.md` or `references/FORMS.md`. */\n path: string;\n}\n\n/** ustar `name` field capacity. */\nconst NAME_MAX = 100;\n/** ustar `prefix` field capacity; `prefix/name` reaches 255 bytes. */\nconst PREFIX_MAX = 155;\n\n/** ustar header byte offsets nanotar leaves for us to patch. */\nconst CHECKSUM_OFFSET = 148;\nconst CHECKSUM_SIZE = 8;\nconst TYPEFLAG_OFFSET = 156;\nconst PREFIX_OFFSET = 345;\nconst BLOCK_SIZE = 512;\n\n/** The two zero blocks that mark the end of an archive. */\nconst END_OF_ARCHIVE = 2 * BLOCK_SIZE;\n/** tar's default record size (20 blocks), which the archive is padded to. */\nconst RECORD_SIZE = 20 * BLOCK_SIZE;\n\n/** The PAX extended-header typeflag (`x`). */\nconst PAX_TYPEFLAG = 0x78;\n\nconst encoder = new TextEncoder();\n\nconst byteLength = (value: string): number => encoder.encode(value).byteLength;\n\n/** `value` cut to at most `max` UTF-8 bytes, on a character boundary. */\nconst truncateBytes = (value: string, max: number): string =>\n value.slice(0, encoder.encodeInto(value, new Uint8Array(max)).read);\n\n/** One header nanotar writes, plus the fields it cannot. */\ninterface Block {\n content: Uint8Array;\n mode: string;\n name: string;\n /** The PAX extended header ahead of an over-long path. */\n pax?: boolean;\n /** ustar `prefix`, joined to `name` with a `/` by readers. */\n prefix?: string;\n}\n\n/**\n * Split a path over the `name` field at a `/` so the head fits `prefix` and\n * the tail fits `name`. The longest head that fits leaves the shortest tail,\n * so if that tail is still too long no split works.\n */\nconst splitUstar = (\n path: string\n): { name: string; prefix: string } | undefined => {\n let slash = path.lastIndexOf(\"/\");\n while (slash > 0 && byteLength(path.slice(0, slash)) > PREFIX_MAX) {\n slash = path.lastIndexOf(\"/\", slash - 1);\n }\n const name = path.slice(slash + 1);\n if (slash <= 0 || byteLength(name) > NAME_MAX) {\n return undefined;\n }\n return { name, prefix: path.slice(0, slash) };\n};\n\n/**\n * A PAX `path` record: `\"<length> path=<value>\\n\"`, where the decimal length\n * counts the whole record including its own digits.\n */\nconst paxPathRecord = (path: string): Uint8Array => {\n const body = ` path=${path}\\n`;\n const size = byteLength(body);\n const length = size + String(size + String(size).length).length;\n return encoder.encode(`${length}${body}`);\n};\n\n/**\n * The header blocks for one entry. A path that fits `name` is written as is;\n * up to 255 bytes it splits across `prefix` and `name`; beyond that (or with\n * no usable split) a PAX extended header carries the full path and the ustar\n * `name` holds a truncated fallback for readers that ignore PAX.\n */\nconst entryBlocks = (entry: TarEntry): Block[] => {\n const mode = entry.executable ? \"755\" : \"644\";\n const file = { content: entry.content, mode };\n if (byteLength(entry.path) <= NAME_MAX) {\n return [{ ...file, name: entry.path }];\n }\n const split = splitUstar(entry.path);\n if (split) {\n return [{ ...file, ...split }];\n }\n const base = entry.path.slice(entry.path.lastIndexOf(\"/\") + 1);\n return [\n {\n content: paxPathRecord(entry.path),\n mode: \"644\",\n name: truncateBytes(`PaxHeader/${base}`, NAME_MAX),\n pax: true,\n },\n { ...file, name: truncateBytes(base, NAME_MAX) },\n ];\n};\n\n/** Recompute a patched header's checksum (nanotar's octal format). */\nconst writeChecksum = (header: Uint8Array): void => {\n header.fill(0x20, CHECKSUM_OFFSET, CHECKSUM_OFFSET + CHECKSUM_SIZE);\n const sum = header.reduce((total, byte) => total + byte, 0);\n header.fill(0, CHECKSUM_OFFSET, CHECKSUM_OFFSET + CHECKSUM_SIZE);\n encoder.encodeInto(\n sum.toString(8),\n header.subarray(CHECKSUM_OFFSET, CHECKSUM_OFFSET + CHECKSUM_SIZE)\n );\n};\n\n/**\n * Build a gzipped ustar archive of the given files, in the given order. Paths\n * escaping the archive root throw to surface a programming error.\n */\nexport const buildTarGz = (entries: readonly TarEntry[]): Uint8Array => {\n for (const entry of entries) {\n if (entry.path.startsWith(\"/\") || entry.path.split(\"/\").includes(\"..\")) {\n throw new Error(`tar path must be archive-relative: ${entry.path}`);\n }\n }\n const blocks = entries.flatMap(entryBlocks);\n const tar = createTar(\n blocks.map((block) => ({\n // Root-owned, epoch-mtime, empty owner names: every field a rebuild\n // could vary is pinned so the archive bytes are a function of content.\n attrs: {\n gid: 0,\n group: \"\",\n mode: block.mode,\n mtime: 0,\n uid: 0,\n user: \"\",\n },\n data: block.content,\n name: block.name,\n }))\n );\n // nanotar writes neither `prefix` nor the PAX typeflag, so patch those\n // headers in place and re-sum them.\n let offset = 0;\n for (const block of blocks) {\n const header = tar.subarray(offset, offset + BLOCK_SIZE);\n if (block.prefix) {\n encoder.encodeInto(\n block.prefix,\n header.subarray(PREFIX_OFFSET, PREFIX_OFFSET + PREFIX_MAX)\n );\n writeChecksum(header);\n }\n if (block.pax) {\n header[TYPEFLAG_OFFSET] = PAX_TYPEFLAG;\n writeChecksum(header);\n }\n offset +=\n BLOCK_SIZE * (1 + Math.ceil(block.content.byteLength / BLOCK_SIZE));\n }\n // nanotar pads the entries to a whole record but writes no end-of-archive\n // marker, so entries ending within two blocks of a record boundary leave\n // fewer than the two zero blocks readers expect (GNU tar warns \"A lone zero\n // block\"). Pad to the first record that fits both; for every other archive\n // that is the size nanotar already wrote, so its bytes are unchanged.\n const archive = new Uint8Array(\n Math.ceil((offset + END_OF_ARCHIVE) / RECORD_SIZE) * RECORD_SIZE\n );\n archive.set(tar.subarray(0, offset));\n // Sync gzip with a pinned level; Node writes no timestamp into the header.\n return new Uint8Array(gzipSync(archive, { level: 9 }));\n};\n",
|
|
81
81
|
"import { apiNamePhrase } from \"../core/api-name.ts\";\nimport {\n mountBasePath,\n normalizeBasePath,\n withBasePath,\n} from \"../core/base-path.ts\";\nimport type { ResolvedConfig } from \"../core/schema.ts\";\nimport { absoluteUrl } from \"../core/site-url.ts\";\nimport { resolveReferences } from \"../openapi/references.ts\";\nimport { API_CATALOG_PATH, hasApiCatalog } from \"./api-catalog.ts\";\nimport { OPENAPI_PATH } from \"./api/paths.ts\";\nimport { asciiSlugify } from \"./mcp/discovery.ts\";\nimport { AGENT_SKILLS_DIR, servesSkillsIndex } from \"./skills.ts\";\nimport type { SkillArtifact } from \"./skills.ts\";\n\n/**\n * The AI Catalog (Agent-Card/ai-catalog data model, `specVersion` 1.0) at\n * `/.well-known/ai-catalog.json`, which is also the Agentic Resource\n * Discovery (ARD) manifest: one entry per agent-facing resource the site\n * publishes, each an `urn:air:<host>:<namespace>:<name>` identifier, a\n * display name, the artifact's media type, a URL, and the\n * `representativeQueries` registries embed for semantic search. Like the\n * RFC 9727 catalog next to it, everything is derived from `blume.config.ts`\n * and the build's published skills — nothing is hand-written.\n *\n * ARD v0.91 moved its manifest to `/.well-known/ard.json` and calls\n * `ai-catalog.json` the predecessor path that consumers only *may* consult,\n * while the ai-catalog spec and today's agent-readiness scanners key on\n * `ai-catalog.json`. The ARD manifest is just an `entries` array (other\n * members are ignored), so the one document is written to both paths.\n *\n * Served as plain `application/json`: the `.json` extension gets it from\n * every static host with no header rule, and the scanners that gate on the\n * file ask for exactly that type. The registered `application/ai-catalog+json`\n * is what the `Link`/`<link>` advertisements declare the document to be.\n */\n\nexport const AI_CATALOG_PATH = \"/.well-known/ai-catalog.json\";\nexport const ARD_MANIFEST_PATH = \"/.well-known/ard.json\";\nexport const AI_CATALOG_TYPE = \"application/ai-catalog+json\";\nconst SPEC_VERSION = \"1.0\";\n\n/** One catalog entry, restricted to the terms Blume emits. */\ninterface CatalogEntry {\n identifier: string;\n displayName: string;\n type: string;\n url: string;\n description?: string;\n capabilities?: string[];\n representativeQueries: string[];\n}\n\n/** An entry before its identifier and queries are resolved against the host. */\ninterface EntrySeed {\n /** `<namespace>:<name>` — the identifier's tail and the `queries` key. */\n key: string;\n displayName: string;\n type: string;\n url: string;\n description?: string;\n capabilities?: string[];\n /** Generated queries, replaced wholesale by a configured `queries[key]`. */\n queries: string[];\n}\n\nconst REFERENCE_KIND_LABEL = {\n asyncapi: \"AsyncAPI\",\n graphql: \"GraphQL\",\n openapi: \"OpenAPI\",\n scalar: \"API\",\n} as const;\n\n/** The `urn:air` publisher: the configured site's hostname. */\nconst publisherHost = (site: string): string => new URL(site).hostname;\n\n/**\n * Whether the site publishes a catalog: the feature is on, a `deployment.site`\n * anchors the identifiers, and at least one entry exists. Every entry source\n * is a config flag, so the answer needs no build output — the same gate the\n * header rules, the `Link` header, and the head links read.\n */\nexport const hasAiCatalog = (config: ResolvedConfig): boolean =>\n config.agents.catalog.enabled &&\n Boolean(config.deployment.options.site) &&\n (config.agents.mcp.enabled ||\n config.agents.api ||\n config.agents.llmsTxt.enabled ||\n servesSkillsIndex(config) ||\n resolveReferences(config).length > 0);\n\n/**\n * The `.well-known` documents agent registries fetch cross-origin (browser\n * agents, hosted registries reading through a page). Each needs\n * `Access-Control-Allow-Origin: *` on the static surface; the MCP endpoint\n * itself already sets it at runtime.\n */\nexport const crossOriginDiscoveryPaths = (config: ResolvedConfig): string[] => {\n const paths: string[] = [];\n if (hasAiCatalog(config)) {\n paths.push(AI_CATALOG_PATH, ARD_MANIFEST_PATH);\n }\n if (hasApiCatalog(config)) {\n paths.push(API_CATALOG_PATH);\n }\n if (config.agents.mcp.enabled) {\n paths.push(\"/.well-known/mcp.json\", \"/.well-known/mcp/server-card.json\");\n }\n return paths;\n};\n\n/** A site title that already names its docs: \"Acme Docs\", \"Acme Documentation\". */\nconst NAMES_DOCS = /\\b(?:docs|documentation)$/iu;\n\n/**\n * The docs as \"the ___\" in generated prose: the title followed by `noun`,\n * unless the title already ends in \"Docs\" or \"Documentation\" — so \"Acme\"\n * reads \"the Acme documentation\" and \"Acme Docs\" reads \"the Acme Docs\", not\n * \"the Acme Docs docs\".\n */\nexport const docsPhrase = (\n title: string,\n noun: \"docs\" | \"documentation\"\n): string =>\n NAMES_DOCS.test(title.trim()) ? `the ${title}` : `the ${title} ${noun}`;\n\nconst entrySeeds = (\n config: ResolvedConfig,\n skills: readonly SkillArtifact[],\n abs: (path: string) => string\n): EntrySeed[] => {\n const { title } = config;\n const documentation = docsPhrase(title, \"documentation\");\n const docs = docsPhrase(title, \"docs\");\n const seeds: EntrySeed[] = [];\n\n if (config.agents.mcp.enabled) {\n const name = config.agents.mcp.name ?? title;\n seeds.push({\n capabilities: [\"search_docs\", \"get_page\", \"list_pages\", \"get_navigation\"],\n description:\n config.agents.mcp.instructions ??\n `Model Context Protocol server over ${documentation}: full-text search, page Markdown, the page index, and the navigation tree.`,\n displayName: name,\n key: `mcp:${asciiSlugify(name) || \"docs\"}`,\n queries: [\n `search ${documentation}`,\n `get a page of ${docs} as Markdown`,\n `list every page in ${docs}`,\n ],\n type: \"application/mcp-server-card+json\",\n url: abs(\"/.well-known/mcp/server-card.json\"),\n });\n }\n\n for (const skill of skills) {\n seeds.push({\n description: skill.description,\n displayName: skill.name,\n key: `skill:${skill.name}`,\n queries: [\n `load the ${skill.name} agent skill`,\n `how do I use ${skill.name}`,\n ],\n type:\n skill.type === \"archive\"\n ? \"application/agent-skills+gzip\"\n : \"application/agent-skills+md\",\n url: abs(`${AGENT_SKILLS_DIR}/${skill.path}`),\n });\n }\n\n if (config.agents.api) {\n seeds.push({\n description: `REST API over ${documentation}: the page index, each page as JSON or Markdown, and the navigation tree, described by this OpenAPI document.`,\n displayName: NAMES_DOCS.test(title.trim())\n ? `${title} API`\n : `${title} docs API`,\n key: \"api:docs\",\n queries: [\n `fetch a page of ${docs} as JSON`,\n `list the pages in ${docs}`,\n `get the navigation tree of ${docs}`,\n ],\n type: \"application/vnd.oai.openapi+json\",\n url: abs(OPENAPI_PATH),\n });\n }\n\n for (const reference of resolveReferences(config)) {\n // Blume-rendered pages mount under `basePath`; Scalar pages stay at the\n // raw route (see `referenceRoutes`). The rendered reference is the\n // resource this publisher owns — the spec itself is catalogued by URL in\n // the RFC 9727 linkset.\n const docRoute =\n reference.kind === \"scalar\"\n ? reference.route\n : withBasePath(reference.basePath, reference.route);\n seeds.push({\n description: `${reference.label}: rendered ${REFERENCE_KIND_LABEL[reference.kind]} reference in ${documentation}.`,\n displayName: reference.label,\n key: `reference:${reference.slug}`,\n queries: [\n `what operations does the ${apiNamePhrase(reference.label)} expose`,\n `how do I call the ${apiNamePhrase(reference.label)}`,\n ],\n type: \"text/html\",\n url: abs(docRoute),\n });\n }\n\n if (config.agents.llmsTxt.enabled) {\n seeds.push({\n description: `llms.txt index of ${documentation}: every page with a one-line summary, plus the agent-facing resources on this site.`,\n displayName: `${title} llms.txt`,\n key: \"docs:llms-txt\",\n queries: [`what is ${title}`, `overview of ${documentation}`],\n type: \"text/plain\",\n url: abs(\"/llms.txt\"),\n });\n }\n\n return seeds;\n};\n\n/** The catalog document, or null when the site publishes none. */\nexport const buildAiCatalog = (\n config: ResolvedConfig,\n skills: readonly SkillArtifact[]\n): string | null => {\n const site = config.deployment.options.site ?? null;\n if (!(site && hasAiCatalog(config))) {\n return null;\n }\n const deployBase = normalizeBasePath(config.deployment.options.base);\n const abs = (path: string): string =>\n absoluteUrl(site, mountBasePath(deployBase, path));\n const host = publisherHost(site);\n const entries = entrySeeds(config, skills, abs).map((seed): CatalogEntry => {\n const entry: CatalogEntry = {\n displayName: seed.displayName,\n identifier: `urn:air:${host}:${seed.key}`,\n representativeQueries:\n config.agents.catalog.queries[seed.key] ?? seed.queries,\n type: seed.type,\n url: seed.url,\n };\n if (seed.description) {\n entry.description = seed.description;\n }\n if (seed.capabilities) {\n entry.capabilities = seed.capabilities;\n }\n return entry;\n });\n const catalog = {\n entries,\n host: {\n displayName: config.title,\n documentationUrl: abs(\"/\"),\n identifier: `did:web:${host}`,\n },\n specVersion: SPEC_VERSION,\n };\n return `${JSON.stringify(catalog, null, 2)}\\n`;\n};\n",
|
|
82
82
|
"import { normalizeBasePath } from \"../core/base-path.ts\";\nimport type { ResolvedConfig } from \"../core/schema.ts\";\nimport {\n AI_CATALOG_PATH,\n AI_CATALOG_TYPE,\n hasAiCatalog,\n} from \"./ai-catalog.ts\";\nimport {\n API_CATALOG_PATH,\n API_CATALOG_TYPE,\n hasApiCatalog,\n} from \"./api-catalog.ts\";\nimport { OPENAPI_PATH } from \"./api/paths.ts\";\n\n/**\n * The homepage `Link` response header (RFC 8288) — agent discovery for the\n * machine-readable surface Blume already publishes. Agents probing a site read\n * this header off `GET /` to find the resources without scraping HTML:\n * `agent-readability.json` and `llms.txt` as `rel=\"describedby\"`, the OpenAPI\n * description of the JSON docs API as `rel=\"service-desc\"`, and the\n * homepage's raw-Markdown mirror as `rel=\"alternate\"` (only when the home\n * route is a content page — a user landing page has no mirror). Every rel\n * value is IANA-registered, which agent-readiness checkers require.\n *\n * The header is homepage-only by design: the root response is what agents\n * probe, and `agent-readability.json` indexes the rest of the surface (the\n * per-route Markdown pattern, MCP, feeds) far better than per-page headers\n * could. An agent that enters on a deep page (a search result, a shared link)\n * never sees this header at all — that path is covered in the HTML instead:\n * every page's `<head>` carries the same `describedby` links plus its own\n * Markdown mirror as an `alternate` (the `DiscoveryLinks.astro` partial every\n * layout renders), which also reaches hosts where Blume can't set response\n * headers. Targets are\n * root-relative under `deployment.base` — RFC 8288 resolves them against the\n * request URL. Returns null when nothing is advertisable.\n *\n * `surface` is where the header is sent. A deployed site (`\"build\"`) serves\n * every target. The dev server (`\"dev\"`) serves the routes — the JSON API's\n * OpenAPI document and the Markdown mirror — but not the files `blume build`\n * writes after the build (the API and AI catalogs, `agent-readability.json`,\n * `llms.txt`), so its header leaves those out rather than point agents at\n * 404s.\n */\nexport const buildHomeLinkHeader = (\n config: ResolvedConfig,\n routePaths: readonly string[],\n surface: \"build\" | \"dev\" = \"build\"\n): string | null => {\n const deployBase = normalizeBasePath(config.deployment.options.base);\n const artifacts = surface === \"build\";\n const links: string[] = [];\n // RFC 9727 §3: the api-catalog relation is how a homepage advertises the\n // well-known catalog. Its type carries the RFC 9727 profile, whose quotes\n // are escaped inside the quoted `type` value (RFC 8288 quoted-string).\n if (artifacts && hasApiCatalog(config)) {\n links.push(\n `<${deployBase}${API_CATALOG_PATH}>; rel=\"api-catalog\"; type=\"${API_CATALOG_TYPE.replaceAll('\"', String.raw`\\\"`)}\"`\n );\n }\n // The ai-catalog spec's own relation for its well-known document, the\n // header form of the `<link rel=\"ai-catalog\">` every page carries.\n if (artifacts && hasAiCatalog(config)) {\n links.push(\n `<${deployBase}${AI_CATALOG_PATH}>; rel=\"ai-catalog\"; type=\"${AI_CATALOG_TYPE}\"`\n );\n }\n // RFC 8631: `service-desc` is the relation for a machine-readable\n // description of the service — the JSON docs API's OpenAPI document.\n if (config.agents.api) {\n links.push(\n `<${deployBase}${OPENAPI_PATH}>; rel=\"service-desc\"; type=\"application/json\"`\n );\n }\n if (artifacts && config.agents.agentReadability) {\n links.push(\n `<${deployBase}/agent-readability.json>; rel=\"describedby\"; type=\"application/json\"`\n );\n }\n if (artifacts && config.agents.llmsTxt.enabled) {\n links.push(\n `<${deployBase}/llms.txt>; rel=\"describedby\"; type=\"text/plain\"`\n );\n }\n // Same route list as the negotiation surfaces (`markdownRoutePaths`): \"/\"\n // always has a mirror — the page's own source when the home route is a\n // content page, the synthesized llms.txt fallback otherwise — so callers\n // passing that list always advertise `/index.md` here.\n if (routePaths.includes(\"/\")) {\n links.push(\n `<${deployBase}/index.md>; rel=\"alternate\"; type=\"text/markdown\"`\n );\n }\n return links.length > 0 ? links.join(\", \") : null;\n};\n",
|
|
83
|
-
"import { readFile } from \"node:fs/promises\";\n\nimport { hasGeneratedChangelog } from \"../astro/pages.ts\";\nimport { CHANGELOG_INDEX_ROUTE } from \"../core/changelog-index.ts\";\nimport { rewriteRelativeAssets } from \"../core/content-assets.ts\";\nimport { discoverPages, discoverPagesSync } from \"../core/custom-pages.ts\";\nimport matter from \"../core/frontmatter.ts\";\nimport type { BlumeProject } from \"../core/project-graph.ts\";\nimport { readExpandedEntryText } from \"../core/sources/read.ts\";\nimport type { RouteManifestEntry } from \"../core/types.ts\";\nimport { advertisedConfig, servesMcp } from \"./agent-surface.ts\";\nimport { buildChangelogIndexMarkdown } from \"./changelog-markdown.ts\";\nimport { downlevelComponents } from \"./component-markdown.ts\";\nimport { buildLlmsIndex } from \"./llms.ts\";\nimport { relativeLinkRewriter } from \"./relative-links.ts\";\nimport { projectComponentSerializers } from \"./serializers.ts\";\nimport { servesSkillsIndex } from \"./skills.ts\";\nimport { applyAgentVisibility } from \"./visibility.ts\";\n\n/** One route's raw-Markdown variants. */\nexport interface RawMarkdownEntry {\n /**\n * The agent-facing Markdown served at `/<route>.md`: supported components\n * downleveled to plain Markdown (`<TypeTable>` → table, `<Callout>` →\n * blockquote, …). Present only when downleveling changed something, so\n * component-free pages aren't stored twice.\n */\n md?: string;\n /** The original source, served verbatim at `/<route>.mdx`. */\n mdx: string;\n}\n\n/** The Markdown an agent should read for a route. */\nexport const agentMarkdown = (entry: RawMarkdownEntry): string =>\n entry.md ?? entry.mdx;\n\n/**\n * Estimated token count of a Markdown document, for the `x-markdown-tokens`\n * response header (the convention Cloudflare's Markdown for Agents ships; the\n * tokenizer is unspecified there too, so this is the common ~4-characters-\n * per-token estimate). Kept in sync with the inline computation in\n * `rawMarkdownEndpointTemplate`, which can't import build-time code.\n */\nexport const markdownTokenCount = (text: string): number =>\n Math.ceil(text.length / 4);\n\n/**\n * Map every route to its raw source Markdown. Powers the `<route>.md` and\n * `<route>.mdx` endpoints: `.mdx` serves the original source so tools can see\n * exactly what the author wrote, while `.md` downlevels supported components\n * to plain Markdown for consumers that can't interpret JSX. `<Visibility>`\n * audiences are resolved for agents in both variants: web-only content is\n * removed, agents-only unwrapped. Relative image references are rewritten to\n * their served `/blume-assets/content/…` URLs in both variants too — an agent\n * fetches these endpoints by URL, where a colocated `./diagram.png` resolves\n * to nothing — and relative page links to the routes they mean, as the\n * rendered page's are (see `relative-links.ts`).\n */\nexport const buildRawMarkdown = async (\n project: BlumeProject\n): Promise<Record<string, RawMarkdownEntry>> => {\n const pageById = new Map(project.graph.pages.map((page) => [page.id, page]));\n\n const components = projectComponentSerializers(project);\n const rewriteLinks = relativeLinkRewriter(project);\n\n const readRoute = async (route: RouteManifestEntry): Promise<string> => {\n
|
|
83
|
+
"import { readFile } from \"node:fs/promises\";\n\nimport { hasGeneratedChangelog } from \"../astro/pages.ts\";\nimport { CHANGELOG_INDEX_ROUTE } from \"../core/changelog-index.ts\";\nimport { rewriteRelativeAssets } from \"../core/content-assets.ts\";\nimport { discoverPages, discoverPagesSync } from \"../core/custom-pages.ts\";\nimport matter from \"../core/frontmatter.ts\";\nimport type { BlumeProject } from \"../core/project-graph.ts\";\nimport { readExpandedEntryText } from \"../core/sources/read.ts\";\nimport type { PageRecord, RouteManifestEntry } from \"../core/types.ts\";\nimport { advertisedConfig, servesMcp } from \"./agent-surface.ts\";\nimport { buildChangelogIndexMarkdown } from \"./changelog-markdown.ts\";\nimport { downlevelComponents } from \"./component-markdown.ts\";\nimport { buildLlmsIndex } from \"./llms.ts\";\nimport { relativeLinkRewriter } from \"./relative-links.ts\";\nimport { projectComponentSerializers } from \"./serializers.ts\";\nimport { servesSkillsIndex } from \"./skills.ts\";\nimport { applyAgentVisibility } from \"./visibility.ts\";\n\n/** One route's raw-Markdown variants. */\nexport interface RawMarkdownEntry {\n /**\n * The agent-facing Markdown served at `/<route>.md`: supported components\n * downleveled to plain Markdown (`<TypeTable>` → table, `<Callout>` →\n * blockquote, …). Present only when downleveling changed something, so\n * component-free pages aren't stored twice.\n */\n md?: string;\n /** The original source, served verbatim at `/<route>.mdx`. */\n mdx: string;\n}\n\n/** The Markdown an agent should read for a route. */\nexport const agentMarkdown = (entry: RawMarkdownEntry): string =>\n entry.md ?? entry.mdx;\n\n/**\n * Estimated token count of a Markdown document, for the `x-markdown-tokens`\n * response header (the convention Cloudflare's Markdown for Agents ships; the\n * tokenizer is unspecified there too, so this is the common ~4-characters-\n * per-token estimate). Kept in sync with the inline computation in\n * `rawMarkdownEndpointTemplate`, which can't import build-time code.\n */\nexport const markdownTokenCount = (text: string): number =>\n Math.ceil(text.length / 4);\n\n/**\n * Map every route to its raw source Markdown. Powers the `<route>.md` and\n * `<route>.mdx` endpoints: `.mdx` serves the original source so tools can see\n * exactly what the author wrote, while `.md` downlevels supported components\n * to plain Markdown for consumers that can't interpret JSX. `<Visibility>`\n * audiences are resolved for agents in both variants: web-only content is\n * removed, agents-only unwrapped. Relative image references are rewritten to\n * their served `/blume-assets/content/…` URLs in both variants too — an agent\n * fetches these endpoints by URL, where a colocated `./diagram.png` resolves\n * to nothing — and relative page links to the routes they mean, as the\n * rendered page's are (see `relative-links.ts`).\n */\nexport const buildRawMarkdown = async (\n project: BlumeProject\n): Promise<Record<string, RawMarkdownEntry>> => {\n const pageById = new Map(project.graph.pages.map((page) => [page.id, page]));\n\n const components = projectComponentSerializers(project);\n const rewriteLinks = relativeLinkRewriter(project);\n\n const readRoute = async (\n route: RouteManifestEntry,\n page: PageRecord | undefined\n ): Promise<string> => {\n if (page) {\n return await readExpandedEntryText(project, page);\n }\n return route.sourcePath ? await readFile(route.sourcePath, \"utf-8\") : \"\";\n };\n\n const entries = await Promise.all(\n project.manifest.routes.map(async (route) => {\n const page = pageById.get(route.id);\n let text = await readRoute(route, page);\n if (route.sourcePath) {\n text = rewriteRelativeAssets({\n deployBase: project.config.deployment.options.base,\n projectRoot: project.context.root,\n source: text,\n sourcePath: route.sourcePath,\n });\n }\n // `./install` means the page's sibling, not whatever the `.md` URL an\n // agent fetched resolves it to, and `/install` gains the base and the\n // page's locale the rendered link has — remote content included.\n text = rewriteLinks(text, {\n entryId: page?.entryId,\n route: route.path,\n sourcePath: route.sourcePath,\n });\n const source = applyAgentVisibility(text);\n // The `.md` variant keeps the front-matter block in the output, but its\n // data must also be in scope for `prop={frontmatter.*}` expressions.\n const md = downlevelComponents(source, components, matter(source).data);\n const entry: RawMarkdownEntry =\n md === source ? { mdx: source } : { md, mdx: source };\n return [route.path, entry] as const;\n })\n );\n const map = Object.fromEntries(entries);\n const userPages = project.context.pagesRoot\n ? await discoverPages(project.context.pagesRoot)\n : [];\n // A landing-page homepage (user `.astro` page, or no home route at all) has\n // no Markdown source, but agents negotiating `Accept: text/markdown` on `/`\n // still expect a Markdown answer. The llms.txt index — the machine-readable\n // representation of the site a landing page fronts — becomes its mirror, so\n // `/index.md` always exists (see `markdownRoutePaths`). Like llms.txt, it\n // leaves out an MCP server a page's route kept from being generated.\n if (!map[\"/\"]) {\n map[\"/\"] = {\n mdx: buildLlmsIndex({\n ...project,\n config: advertisedConfig(project.config, {\n mcp: servesMcp(project, userPages),\n // Skills are collected at the end of the build, after this runs.\n skills: servesSkillsIndex(project.config),\n }),\n }),\n };\n }\n // The generated changelog index has no source either; its release list is\n // its mirror, so `/changelog.md` and `get_page` answer as the page does.\n if (hasGeneratedChangelog(project, userPages)) {\n map[CHANGELOG_INDEX_ROUTE] = { mdx: buildChangelogIndexMarkdown(project) };\n }\n return map;\n};\n\n/**\n * Every route path with a raw-Markdown mirror: the manifest routes, plus the\n * homepage when its mirror is the synthesized llms.txt fallback and the\n * generated changelog index (see `buildRawMarkdown`). This is the route list the negotiation surfaces (dev\n * middleware, Vercel routing config) and the homepage `Link` header build\n * from, so `Accept: text/markdown` on `/` resolves even when the homepage is\n * a landing page.\n */\nexport const markdownRoutePaths = (project: BlumeProject): string[] => {\n const paths = project.manifest.routes.map((route) => route.path);\n if (!paths.includes(\"/\")) {\n paths.push(\"/\");\n }\n const userPages = project.context.pagesRoot\n ? discoverPagesSync(project.context.pagesRoot)\n : [];\n if (hasGeneratedChangelog(project, userPages)) {\n paths.push(CHANGELOG_INDEX_ROUTE);\n }\n return paths;\n};\n",
|
|
84
84
|
"import { readFile } from \"node:fs/promises\";\n\nimport { dirname, extname, relative } from \"pathe\";\n\nimport { normalizeBasePath } from \"./base-path.ts\";\nimport { nextFenceState } from \"./code-fences.ts\";\nimport type { FenceState } from \"./code-fences.ts\";\nimport { resolveRelativeFile, resolveRelativeImage } from \"./relative-files.ts\";\nimport { hashText } from \"./sources/cache.ts\";\nimport {\n isLinkElementUrl,\n rewriteCardImages,\n rewriteElementUrls,\n rewriteImageTargets,\n rewriteLinkTargets,\n} from \"./sources/normalize.ts\";\nimport { readExpandedEntryText } from \"./sources/read.ts\";\nimport type { ContentSource } from \"./sources/types.ts\";\nimport type { PageRecord } from \"./types.ts\";\n\n/**\n * Colocated content images — `` next to the page that\n * references it. The HTML render optimizes these through `astro:assets` into\n * hashed `_astro/` files, but that mapping doesn't exist yet when the raw\n * agent-facing Markdown (`/<route>.md`, llms-full.txt, MCP) is snapshotted at\n * generate time — so a verbatim relative path would 404 for every agent\n * fetching the page by URL. Instead, the originals are served at\n * `/blume-assets/content/<project-relative path>` by a generated endpoint (see\n * `contentAssetsEndpointTemplate`), and these helpers rewrite the relative\n * references in agent-facing output to that URL.\n *\n * Other files beside a page are published the same way: a link to one\n * (`[spec](./spec.pdf)`, a reference definition), a raw HTML or `.mdx`\n * element's `src` (`<img src=\"./diagram.png\">`, `<video>`, `<source>`,\n * `<audio>`), and an `<a>`'s or a component's `href`. Nothing else serves\n * them, so the HTML render points those at the same URLs (see\n * `markdown/content-assets.ts`).\n */\n\n/** The endpoint route prefix colocated content files are served under. */\nexport const CONTENT_ASSETS_PREFIX = \"/blume-assets/content\";\n\n/**\n * The endpoint param a colocated image is served under: its project-relative\n * path (readable, collision-free — it mirrors the source tree). A file outside\n * the project root can't be addressed that way (`..` segments don't survive a\n * URL), so it falls back to a content-addressed name.\n */\nexport const contentAssetParam = (\n projectRoot: string,\n absPath: string\n): string => {\n const rel = relative(projectRoot, absPath);\n if (rel.startsWith(\"..\")) {\n return `_/${hashText(absPath)}${extname(absPath)}`;\n }\n return rel;\n};\n\n/**\n * The URL a colocated image's endpoint param is served at, under\n * `deployment.base` when set, encoded for a Markdown or HTML URL with its `/`\n * separators kept.\n */\nexport const contentAssetUrl = (param: string, deployBase?: string): string =>\n `${normalizeBasePath(deployBase)}${CONTENT_ASSETS_PREFIX}/${param\n .split(\"/\")\n .map(encodeURIComponent)\n .join(\"/\")}`;\n\n// Where a link (`[spec](./spec.pdf)`, `[spec]: ./spec.pdf`) or an element's\n// `href`/`src` could name a file beside the page: a destination or value not\n// written as a root path or a fragment, which `resolveRelativeFile` never\n// resolves. They're read in the text as it stands, code included, so a page\n// without one, like a page that links only to routes and anchors, has\n// nothing to rewrite and skips the passes that mask its code to look.\nconst RELATIVE_DESTINATION = /\\][(:][ \\t]*(?![/#\\s])/u;\nconst RELATIVE_ELEMENT_URL = /(?:href|src)=[\"'](?![/#])/u;\n\n/**\n * Rewrite a page's relative image references, and its links and element\n * URLs naming other files beside it, to their served\n * `/blume-assets/content/…` URLs (under `deployment.base` when set). Fenced\n * code blocks and inline code are skipped; only references whose file actually\n * exists next to the source are touched. `register` observes each rewritten\n * asset so a caller can accumulate the files the endpoint must serve.\n */\nexport const rewriteRelativeAssets = (options: {\n source: string;\n sourcePath: string;\n projectRoot: string;\n deployBase?: string;\n register?: (param: string, absPath: string) => void;\n}): string => {\n const { source, sourcePath, projectRoot, deployBase, register } = options;\n const sourceDir = dirname(sourcePath);\n const served = (abs: string): string => {\n const param = contentAssetParam(projectRoot, abs);\n register?.(param, abs);\n return contentAssetUrl(param, deployBase);\n };\n const toUrl = (target: string): string | null => {\n const abs = resolveRelativeImage(sourceDir, target);\n return abs === null ? null : served(abs);\n };\n const toFileUrl = (target: string): string | null => {\n const file = resolveRelativeFile(sourceDir, target);\n return file === null ? null : `${served(file.path)}${file.suffix}`;\n };\n\n let fence: FenceState = null;\n const lines = source.split(\"\\n\").map((line) => {\n const next = nextFenceState(line, fence);\n const inFence = fence !== null || next !== null;\n fence = next;\n // Inline code is skipped too: a `` `` `` span is syntax\n // being shown, not an image.\n return inFence ? line : rewriteImageTargets(line, toUrl);\n });\n // A `<Card img>` is an image embed too: its file is served and its value\n // pointed there, which the HTML render reads back (see\n // `markdown/content-assets.ts`), as are links and element URLs naming any\n // other file beside the page.\n const withCards = rewriteCardImages(lines.join(\"\\n\"), toUrl);\n const withLinks = RELATIVE_DESTINATION.test(withCards)\n ? rewriteLinkTargets(withCards, toFileUrl)\n : withCards;\n return RELATIVE_ELEMENT_URL.test(withLinks)\n ? rewriteElementUrls(withLinks, (url) =>\n isLinkElementUrl(url) ? toFileUrl(url.value) : null\n )\n : withLinks;\n};\n\n/**\n * Every colocated file the project's pages reference, keyed by endpoint param.\n * Serialized to `generated/content-assets.json`, which the\n * `/blume-assets/[...asset]` endpoint reads to serve the original files. Runs\n * the same rewrite the agent-Markdown builders apply — over the same\n * include-expanded text, so a partial's colocated images (rebased into the\n * including page by the expander) are served too — keeping the served set and\n * the rewritten URLs from drifting apart.\n */\nexport const collectContentAssets = async (project: {\n context: { root: string };\n manifest: { routes: { id: string; sourcePath?: string }[] };\n graph: { pages: PageRecord[] };\n sources?: ContentSource[];\n}): Promise<Record<string, string>> => {\n const pageById = new Map(project.graph.pages.map((page) => [page.id, page]));\n const files: Record<string, string> = {};\n await Promise.all(\n project.manifest.routes.map(async (route) => {\n if (!route.sourcePath) {\n return;\n }\n const page = pageById.get(route.id);\n let source: string;\n try {\n source = page\n ? await readExpandedEntryText(project, page)\n : await readFile(route.sourcePath, \"utf-8\");\n } catch {\n return;\n }\n rewriteRelativeAssets({\n projectRoot: project.context.root,\n register: (param, abs) => {\n files[param] = abs;\n },\n source,\n sourcePath: route.sourcePath,\n });\n })\n );\n return files;\n};\n",
|
|
85
85
|
"/**\n * Fenced-code state for line scanners. Kept free of imports so request-time\n * code (the assistant's grounding excerpts) can share it with the build-time source\n * scanners without pulling the filesystem and schema modules along.\n *\n * CommonMark allows backtick *and* tilde fences, three or more characters\n * long. The scanners track which delimiter opened the current fence and how\n * long its run was (`null` when outside one), so a ``` line inside a ~~~\n * block — or inside a ````-delimited block (the wrapper `codeBlockLines`\n * emits around code that contains its own ``` fence) — is content, not a\n * toggle.\n */\nconst CODE_FENCE = /^(?<run>`{3,}|~{3,})/u;\n\n// One block-quote marker. A fence inside a quote (`> ```ts`) is written after\n// one marker per level of nesting, and so is every line of its code.\nconst QUOTE_MARKER = /^[ \\t]*>/u;\n\n/**\n * The open fence's delimiter char, its run length, and the block-quote depth\n * it opened at, or null outside one.\n */\nexport type FenceState = {\n delimiter: \"`\" | \"~\";\n length: number;\n quotes: number;\n} | null;\n\n/** Strip up to `max` leading block-quote markers from `line`. */\nconst stripQuotes = (line: string, max: number) => {\n let rest = line;\n let depth = 0;\n while (depth < max) {\n const marker = QUOTE_MARKER.exec(rest);\n if (!marker) {\n break;\n }\n rest = rest.slice(marker[0].length);\n depth += 1;\n }\n return { depth, rest };\n};\n\n/**\n * Advance the fenced-code state for one line: an opening fence records its\n * delimiter and run length, only a bare run of the same character at least as\n * long closes it (CommonMark), and any other line leaves the state untouched.\n * A fence inside block quotes is read past the quote markers it opened under,\n * and a line without them ends the quote, and the fence with it: code takes\n * no lazy continuation lines (CommonMark).\n */\nexport const nextFenceState = (line: string, fence: FenceState): FenceState => {\n const { depth, rest } = stripQuotes(\n line,\n fence === null ? Number.POSITIVE_INFINITY : fence.quotes\n );\n if (fence !== null && depth < fence.quotes) {\n return nextFenceState(line, null);\n }\n const trimmed = rest.trimStart();\n const run = trimmed.match(CODE_FENCE)?.groups?.run;\n if (run === undefined) {\n return fence;\n }\n const info = trimmed.slice(run.length);\n const delimiter = run.startsWith(\"`\") ? (\"`\" as const) : (\"~\" as const);\n if (fence === null) {\n // A backtick fence's info string cannot itself contain a backtick\n // (CommonMark) — a line-leading ```inline``` span is a paragraph, and\n // opening a phantom fence on it would swallow every heading and link\n // after it. Tilde fences carry no such rule.\n if (delimiter === \"`\" && info.includes(\"`\")) {\n return fence;\n }\n return { delimiter, length: run.length, quotes: depth };\n }\n // A closing fence may be followed only by whitespace: a same-length\n // ```js line inside an open ``` block is content, not a closer.\n return fence.delimiter === delimiter &&\n run.length >= fence.length &&\n info.trim() === \"\"\n ? null\n : fence;\n};\n",
|
|
86
86
|
"import { createHash } from \"node:crypto\";\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\n\nimport { join } from \"pathe\";\n\nimport { BlumeError } from \"../diagnostics.ts\";\nimport type { Diagnostic } from \"../types.ts\";\nimport type { SourceEntry, SourceLoadResult } from \"./types.ts\";\n\n/**\n * Small, stable content hash for cache/HMR bookkeeping — and for staged asset\n * *filenames* (see sources/assets.ts and content-assets.ts), where a collision\n * silently serves the wrong file. 64 bits of SHA-256 keeps those names\n * collision-safe at any realistic asset count; the old 31-bit DJB2 hash had a\n * ~46k-item birthday bound.\n */\nexport const hashText = (text: string): string =>\n createHash(\"sha256\").update(text).digest(\"hex\").slice(0, 16);\n\n/** A stable digest of a source's entries, for change detection while polling. */\nexport const entriesDigest = (entries: SourceEntry[]): string =>\n hashText(\n entries\n .map((entry) => `${entry.ref}:${entry.hash ?? hashText(entry.body.text)}`)\n .join(\"|\")\n );\n\n/**\n * Build an opt-in polling watcher for a remote source: re-`load()` on an\n * interval and fire `onChange` only when the entry digest changes, so a remote\n * source can hot-reload in dev without refetching the world on every keystroke.\n *\n * `load` must fetch fresh (bypassing the cache-first dev path) — polling the\n * cache-first loader would serve the identical snapshot on every tick and\n * never observe a remote change. `seed` (the source's regular, cache-first\n * loader) establishes the baseline digest from what dev actually served, so a\n * remote change landing before the first tick still fires.\n */\nexport const pollingWatch =\n (\n load: () => Promise<SourceLoadResult>,\n intervalSeconds: number,\n seed?: () => Promise<SourceLoadResult>\n ): ((onChange: () => void) => () => void) =>\n (onChange) => {\n let last = \"\";\n if (seed) {\n const seedBaseline = async (): Promise<void> => {\n try {\n const { entries } = await seed();\n last ||= entriesDigest(entries);\n } catch {\n // Fall back to first-tick seeding.\n }\n };\n void seedBaseline();\n }\n const tick = async (): Promise<void> => {\n try {\n const { entries } = await load();\n const next = entriesDigest(entries);\n if (last && next !== last) {\n onChange();\n }\n last = next;\n } catch {\n // Ignore transient poll failures; the cache keeps serving last-known-good.\n }\n };\n const timer = setInterval(() => {\n void tick();\n }, intervalSeconds * 1000);\n return () => clearInterval(timer);\n };\n\n/** A per-source snapshot of the last successful fetch, for offline tolerance. */\nexport interface SnapshotCache {\n read: () => Promise<SourceEntry[]>;\n write: (entries: SourceEntry[]) => Promise<void>;\n}\n\n/** Build a JSON snapshot cache under `<cacheDir>/entries.json`. */\nexport const snapshotCache = (cacheDir: string): SnapshotCache => {\n const file = join(cacheDir, \"entries.json\");\n return {\n read: async () => {\n try {\n // SAFETY: the snapshot file is only ever written by `write` below, from\n // a `SourceEntry[]` via JSON.stringify; a corrupt file lands in the\n // catch and reads as empty.\n return JSON.parse(await readFile(file, \"utf-8\")) as SourceEntry[];\n } catch {\n return [];\n }\n },\n write: async (entries) => {\n try {\n await mkdir(cacheDir, { recursive: true });\n await writeFile(file, `${JSON.stringify(entries)}\\n`, \"utf-8\");\n } catch {\n // Cache is best-effort; a write failure must not fail the build.\n }\n },\n };\n};\n\n/**\n * Run a remote `fetchEntries`, caching the result. When `refresh` is false and a\n * snapshot exists, serve it without fetching (cache-first dev). On fetch failure,\n * serve the last-known-good snapshot with a warning so a CMS/network outage\n * doesn't fail the build; if there is no snapshot either, surface a hard error.\n * A `BlumeError` from the source (a missing SDK or token, checked before any\n * request, or a misconfiguration) already names its cause, so without a\n * snapshot it surfaces as itself rather than as a fetch failure.\n */\nexport const loadWithCache = async (\n name: string,\n cache: SnapshotCache,\n fetchEntries: () => Promise<SourceEntry[]>,\n refresh = true\n): Promise<SourceLoadResult> => {\n if (!refresh) {\n const cached = await cache.read();\n if (cached.length > 0) {\n return { diagnostics: [], entries: cached };\n }\n }\n try {\n const entries = await fetchEntries();\n await cache.write(entries);\n return { diagnostics: [], entries };\n } catch (error) {\n const fallback = await cache.read();\n if (fallback.length > 0) {\n // SAFETY: everything thrown on this path is an Error — fetch rejects\n // with a TypeError and the source adapters throw Error instances.\n const diagnostic: Diagnostic = {\n code: \"BLUME_SOURCE_OFFLINE\",\n message: `Source \"${name}\" could not be fetched (${(error as Error).message}); served ${fallback.length} cached entries.`,\n severity: \"warning\",\n };\n return { diagnostics: [diagnostic], entries: fallback };\n }\n if (error instanceof BlumeError) {\n throw error;\n }\n // SAFETY: same invariant as above — `fetchEntries` failures are Errors.\n throw new BlumeError({\n code: \"BLUME_SOURCE_FETCH_FAILED\",\n message: `Source \"${name}\" failed to load and no cache is available: ${(error as Error).message}`,\n severity: \"error\",\n });\n }\n};\n",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"/**\n * A file or folder name's ordering prefix: digits, then a `-`, `_`, or `.`\n * separator (`01-intro`, `2_setup`). It sorts the generated sidebar and is\n * dropped from the route.\n */\nconst ORDERING_PREFIX = /^(?<order>\\d+)[-_.]/u;\n\n/**\n * Digit-led names that are names, not orders, and stay whole: a version\n * (`1.2.0`, `2.0`), which a `1.` prefix would split into `2.0`, and an ISO date\n * (`2024-01-05`, `2024-01-05-first-post`), whose year would sort the sidebar\n * and leave only `01-05…` of the route.\n */\nconst VERSION_OR_ISO_DATE = /^(?:\\d+\\.\\d|\\d{4}-\\d{2}-\\d{2}(?:[-_.]|$))/u;\n\n/**\n * The other dates a name can start with, kept whole the same way: day or\n * month first with a four-digit year last (`12-05-2022`, `1-5-2022-launch`),\n * and a year and month (`2024-01`, `2024-01-recap`). Blume once read their\n * first number as an ordering prefix, so these names routed as `05-2022` and\n * `01`; {@link formerRouteName} still knows those routes, so they redirect.\n */\nconst DATE_NAME =\n /^(?:(?:0?[1-9]|[12]\\d|3[01])-(?:0?[1-9]|[12]\\d|3[01])-\\d{4}|\\d{4}-(?:0[1-9]|1[0-2]))(?:[-_.]|$)/u;\n\n/** The digits of `name`'s ordering prefix (`01` of `01-intro`), if it has one. */\nexport const orderingPrefix = (name: string): string | undefined =>\n VERSION_OR_ISO_DATE.test(name) || DATE_NAME.test(name)\n ? undefined\n : name.match(ORDERING_PREFIX)?.groups?.order;\n\n/** `name` without its ordering prefix (`01-intro` -> `intro`). */\nexport const stripOrderingPrefix = (name: string): string => {\n const order = orderingPrefix(name);\n // The prefix is the digits plus their one-character separator.\n return order === undefined ? name : name.slice(order.length + 1);\n};\n\n/**\n * The name an earlier Blume routed `name` as, when it differs from today's:\n * a {@link DATE_NAME} lost its first number as an ordering prefix\n * (`12-05-2022` routed as `05-2022`, `2024-01` as `01`).\n */\nexport const formerRouteName = (name: string): string | undefined =>\n DATE_NAME.test(name) && !VERSION_OR_ISO_DATE.test(name)\n ? name.slice(name.indexOf(\"-\") + 1)\n : undefined;\n",
|
|
94
94
|
"/**\n * A pinned heading id (`## Heading [#a--b]`, `{#a--b}`) is used verbatim, but\n * the parse that reads it applies smart punctuation (Astro's `smartypants`,\n * on by default) to the whole heading first: `--` became `–`, `...` became\n * `…`, and quotes curled, so the id rendered as `a–b` while every link\n * written to it says `#a--b`. Smart punctuation leaves a backslash-escaped\n * character alone, so before a source is parsed, the punctuation in each\n * heading's trailing markers is escaped where the author wrote it, and the\n * parse reads the id as typed. An id with a typed `–` keeps it.\n *\n * The page render, each `<include>` splice, and the scan-time heading reader\n * all escape their source this way, so the rendered id and the anchor index\n * `blume validate` checks against agree.\n */\n\nimport type { Heading, Nodes } from \"mdast\";\nimport { markdownToMdast, mdxToMdast } from \"satteri\";\nimport type { SourceFormat } from \"satteri\";\n\nimport {\n MARKDOWN_BODY_FEATURES,\n MDX_BODY_FEATURES,\n} from \"../markdown/features.ts\";\nimport { parseHeadingMarkers } from \"./heading-markers.ts\";\n\n/** What smart punctuation rewrites: dashes, an ellipsis, and quotes. */\nconst SMART_INPUT = /--|\\.\\.\\.|['\"]/u;\n\n/**\n * A run that opens a pinned id, up to whitespace or a closing bracket. The\n * runs never overlap, so finding them all stays linear.\n */\nconst PIN_RUN = /[[{]#[^\\s\\]}]*/gu;\n\n/** A backslash escape (kept as is), or a character smart punctuation reads. */\nconst PUNCTUATION = /\\\\[\\s\\S]|[-.'\"]/gu;\n\nconst escapePunctuation = (text: string): string =>\n text.replaceAll(PUNCTUATION, (match) =>\n match.length === 1 ? `\\\\${match}` : match\n );\n\n/** Whether any pinned id in the source holds something smart punctuation rewrites. */\nconst hasPunctuatedPin = (source: string): boolean => {\n for (const [run] of source.matchAll(PIN_RUN)) {\n if (SMART_INPUT.test(run)) {\n return true;\n }\n }\n return false;\n};\n\n/** One replacement in the source: `text` in place of `from`…`end`. */\ninterface Edit {\n end: number;\n from: number;\n text: string;\n}\n\n/**\n * The escape a heading's trailing markers need, if any. Markers only count at\n * the end of a heading's last text node (see `markdown/heading-anchors.ts`),\n * and a heading that is nothing but markers keeps them as literal text, so\n * neither is touched here either.\n */\nconst pinEdit = (heading: Heading, source: string): Edit | undefined => {\n const last = heading.children.at(-1);\n const start = last?.position?.start.offset;\n const end = last?.position?.end.offset;\n if (last?.type !== \"text\" || start === undefined || end === undefined) {\n return undefined;\n }\n const parsed = parseHeadingMarkers(last.value);\n if (\n parsed.id === undefined ||\n (parsed.text === \"\" && heading.children.length === 1)\n ) {\n return undefined;\n }\n // The same markers, read where the author wrote them.\n const written = parseHeadingMarkers(source.slice(start, end));\n const from = start + written.text.length;\n const markers = source.slice(from, end);\n if (written.id === undefined || !SMART_INPUT.test(markers)) {\n return undefined;\n }\n return { end, from, text: escapePunctuation(markers) };\n};\n\n/** Collect the edits for every heading under `node`, in source order. */\nconst collectEdits = (node: Nodes, source: string, edits: Edit[]): void => {\n if (node.type === \"heading\") {\n const edit = pinEdit(node, source);\n if (edit) {\n edits.push(edit);\n }\n return;\n }\n if (\"children\" in node) {\n for (const child of node.children) {\n collectEdits(child, source, edits);\n }\n }\n};\n\nconst parse = (source: string, format: SourceFormat): Nodes | undefined => {\n try {\n return format === \"mdx\"\n ? mdxToMdast(source, { features: MDX_BODY_FEATURES })\n : markdownToMdast(source, { features: MARKDOWN_BODY_FEATURES });\n } catch {\n // A source MDX can't parse fails its own render, with its own error.\n return undefined;\n }\n};\n\n/**\n * `source` with the smart-punctuation characters in each heading's pinned id\n * backslash-escaped, so a parse with smart punctuation reads the id as\n * written. `source` must be the whole text the parse will read, link\n * definitions included: they decide which brackets are links. A source\n * without such a pin is returned as is, unparsed.\n */\nexport const escapePinnedIds = (\n source: string,\n format: SourceFormat\n): string => {\n const tree = hasPunctuatedPin(source) ? parse(source, format) : undefined;\n if (!tree) {\n return source;\n }\n const edits: Edit[] = [];\n collectEdits(tree, source, edits);\n let escaped = \"\";\n let at = 0;\n for (const edit of edits) {\n escaped += source.slice(at, edit.from) + edit.text;\n at = edit.end;\n }\n return escaped + source.slice(at);\n};\n",
|
|
95
95
|
"/**\n * Related pages: the `related` frontmatter list a page ends with, as Mintlify\n * writes it. Each entry is a root-relative path to another page, an absolute\n * URL, or a one-key `{ Title: link }` object that names the link itself. A\n * page link resolves to the served route, in the reader's locale when that\n * page is translated, and takes the page's own title and description; an\n * internal path that matches no page is left out here and reported by the\n * link checker, which sees every entry as one of the page's links.\n */\nimport { isExternalUrl, normalizeRoute, withBasePath } from \"./base-path.ts\";\nimport type { LocaleRouting } from \"./i18n.ts\";\nimport { localizeLinkPath, routeSetFor } from \"./locale-links.ts\";\nimport type { PageLink } from \"./types.ts\";\n\n/** The most entries a page lists, as on Mintlify. */\nexport const MAX_RELATED = 10;\n\n/** A `{ Title: link }` entry: the one key is the title, its value the link. */\nexport interface TitledRelatedEntry {\n [title: string]: string;\n}\n\n/** One `related` frontmatter entry. */\nexport type RelatedEntry = string | TitledRelatedEntry;\n\n/** A resolved entry, ready to render. */\nexport interface RelatedLink {\n description?: string;\n external: boolean;\n /** A page's route (`basePath` included, deployment base not), or a URL. */\n href: string;\n title: string;\n}\n\n/** A served route, as the data snapshot lists it. */\nexport interface RelatedRoute {\n description: string | null;\n path: string;\n title: string;\n}\n\n/** What resolving needs from the site. */\nexport interface RelatedContext {\n basePath: string;\n /** The site's locales, when it has more than one. */\n i18n?: LocaleRouting | null;\n /** The locale of the page being rendered. */\n locale: string;\n routes: readonly RelatedRoute[];\n}\n\n/** An entry's link and, for a titled entry, its title. */\ninterface EntryParts {\n link: string;\n title?: string;\n}\n\nconst isPath = (entry: RelatedEntry): entry is string =>\n typeof entry === \"string\";\n\nconst partsOf = (entry: RelatedEntry): EntryParts | undefined => {\n if (isPath(entry)) {\n return { link: entry };\n }\n const [first] = Object.entries(entry);\n return first ? { link: first[1], title: first[0] } : undefined;\n};\n\n/** The links a page's `related` entries name, in the order written. */\nexport const relatedLinks = (\n entries: readonly RelatedEntry[] | false | undefined,\n context: RelatedContext\n): RelatedLink[] => {\n if (!entries) {\n return [];\n }\n const served = routeSetFor(context.routes);\n return entries.flatMap((entry): RelatedLink[] => {\n const parts = partsOf(entry);\n if (!parts) {\n return [];\n }\n if (isExternalUrl(parts.link)) {\n return [\n {\n external: true,\n href: parts.link,\n title: parts.title ?? new URL(parts.link, \"https://x\").hostname,\n },\n ];\n }\n const at = parts.link.search(/[#?]/u);\n const path = at === -1 ? parts.link : parts.link.slice(0, at);\n const suffix = at === -1 ? \"\" : parts.link.slice(at);\n const authored = withBasePath(context.basePath, normalizeRoute(path));\n const route = context.i18n\n ? localizeLinkPath(authored, {\n basePath: context.basePath,\n i18n: context.i18n,\n locale: context.locale,\n routes: served,\n })\n : authored;\n const page = context.routes.find((candidate) => candidate.path === route);\n if (!page) {\n return [];\n }\n return [\n {\n description: page.description ?? undefined,\n external: false,\n href: `${route}${suffix}`,\n title: parts.title ?? page.title,\n },\n ];\n });\n};\n\n/**\n * A page's `related` page links, as links the checker validates like any in\n * its body. Front matter has no line map, so they point at its first line.\n */\nexport const relatedPageLinks = (\n entries?: readonly RelatedEntry[] | false\n): PageLink[] =>\n (entries || []).flatMap((entry) => {\n const link = partsOf(entry)?.link;\n return link && !isExternalUrl(link)\n ? [{ column: 1, line: 1, target: link }]\n : [];\n });\n",
|
|
96
|
-
"import type { AstroIntegration } from \"astro\";\nimport { z } from \"zod\";\n\nimport {\n assistantAdapterSchema,\n assistantMovedFieldsHint,\n DEFAULT_ASSISTANT_PROVIDER,\n} from \"../ai/ask.ts\";\nimport type { ComponentMarkdown } from \"../ai/component-markdown.ts\";\nimport { analyticsConfigSchema } from \"../analytics/schema.ts\";\nimport { captchaAdapterSchema } from \"../captcha/schema.ts\";\nimport {\n API_ENDPOINT,\n AUTH_METHODS,\n PLAYGROUND_MODES,\n} from \"../components/content/api-page.ts\";\nimport { consentConfigSchema } from \"../consent/schema.ts\";\nimport { resolvedDeploymentSchema } from \"../deploy/adapters/registry.ts\";\nimport type { CodeTheme } from \"../markdown/themes.ts\";\nimport { narrationProviderSchema } from \"../narration/provider.ts\";\nimport { normalizeRoute } from \"../openapi/references.ts\";\nimport { rateLimitConfigSchema } from \"../ratelimit/schema.ts\";\nimport { playgroundSchema } from \"../reference/options.ts\";\nimport {\n referenceConfigSchema,\n removedReferenceKeysHint,\n} from \"../reference/schema.ts\";\nimport { orama } from \"../search/adapters/orama.ts\";\nimport {\n NONE_SEARCH_ADAPTER,\n resolvedSearchAdapterSchema,\n} from \"../search/adapters/registry.ts\";\nimport type { SearchAdapterInput } from \"../search/adapters/registry.ts\";\nimport { ownedMetatag } from \"../seo/metatags.ts\";\nimport { normalizeXHandle } from \"../seo/x-handle.ts\";\nimport { filesystem } from \"../sources/filesystem.ts\";\nimport {\n contentSourcesSchema,\n resolvedSourceAdapterSchema,\n} from \"../sources/registry.ts\";\nimport { FONT_SLUGS, isFontSlug } from \"../theme/fonts.ts\";\nimport { isExternalUrl, normalizeBasePath } from \"./base-path.ts\";\nimport { FOOTER_SOCIALS } from \"./footer.ts\";\nimport { PUBLIC_HOST_URL } from \"./github.ts\";\nimport { uiLocaleOverridesSchema } from \"./i18n-ui.ts\";\nimport { isBuiltInMcpClient, mcpClients } from \"./mcp-clients.ts\";\nimport { openInChatProviders } from \"./open-in-chat.ts\";\nimport { PAGE_MODES } from \"./page-modes.ts\";\nimport { redirectPatternError } from \"./redirect-patterns.ts\";\nimport { MAX_RELATED } from \"./related.ts\";\nimport { isStandardSchema } from \"./standard-schema.ts\";\nimport type { StandardSchema } from \"./standard-schema.ts\";\nimport { trimEnd } from \"./trim.ts\";\nimport { unrecognizedKeysMessage } from \"./unrecognized-keys.ts\";\nimport { VARIABLE_NAME } from \"./variables.ts\";\n\n/**\n * An absolute HTTP(S) URL, for any field that lands verbatim in an `href` —\n * the header repo mark, the GitHub instance origin. Zod's bare `z.url()` also\n * admits `javascript:` and `data:`, which would render as a script link on\n * every page.\n */\nconst httpUrlSchema = z.url({ protocol: /^https?$/u });\n\n/**\n * Public Blume schemas.\n *\n * These are exported from `blume/schema` so migration tools, editor\n * integrations, and the runtime share a single source of validation truth.\n */\n\n// ---------------------------------------------------------------------------\n// Shared primitives\n// ---------------------------------------------------------------------------\n\n// `typeof` checks live in named predicates (the form the oxlint anti-slop\n// config sanctions); generic so each site keeps its own union narrowing.\nconst isString = <Value>(value: Value): value is Value & string =>\n typeof value === \"string\";\n\nconst isBoolean = <Value>(value: Value): value is Value & boolean =>\n typeof value === \"boolean\";\n\nconst isObjectLike = <Value>(value: Value): value is Value & object =>\n typeof value === \"object\" && value !== null;\n\n/** Icon inputs in serializable contexts (frontmatter, meta files). */\nconst iconName = z.string().min(1);\n\n/**\n * Error params for a strict object whose keys were removed or moved in a\n * major release. A config still carrying one of `hints`' keys fails with\n * the message that names its replacement, instead of Zod's bare\n * \"Unrecognized key\"; any other unknown key keeps the default message.\n */\nconst removedKeysHint = (hints: Record<string, string>) => ({\n error: (issue: z.core.$ZodRawIssue): string | undefined => {\n if (issue.code !== \"unrecognized_keys\") {\n return;\n }\n const messages = issue.keys.flatMap((key) =>\n Object.hasOwn(hints, key) ? [hints[key]] : []\n );\n if (messages.length === 0) {\n return;\n }\n // A hinted key beside a plain unknown one: keep Zod's wording for the\n // latter so it isn't silently dropped from the diagnostic.\n const others = issue.keys.filter((key) => !Object.hasOwn(hints, key));\n if (others.length > 0) {\n messages.push(unrecognizedKeysMessage(others));\n }\n return messages.join(\" \");\n },\n});\n\n/** Default include glob for filesystem-backed content sources. */\nconst hydrationMode = z.enum([\"load\", \"idle\", \"visible\", \"media\", \"only\"]);\nexport type HydrationMode = z.infer<typeof hydrationMode>;\n\n/**\n * A publish date in frontmatter. YAML auto-parses an unquoted `2026-01-01` into\n * a `Date`, so accept either form and normalize to an ISO string.\n */\nconst dateSchema = z\n .union([z.string(), z.date()])\n .transform((value) => (value instanceof Date ? value.toISOString() : value));\n\n/**\n * How a sidebar group renders:\n * - `flat`: a non-collapsible header with its items listed beneath (default).\n * - `group`: a collapsible `<details>` disclosure.\n * - `page`: a single row that drills into a sub-panel showing only this group's\n * items, with a back arrow at the top.\n */\nconst sidebarDisplaySchema = z.enum([\"flat\", \"group\", \"page\"]);\nexport type SidebarDisplay = z.infer<typeof sidebarDisplaySchema>;\n\n/**\n * How a group's own page lists the group's other pages below its content:\n * `card` a grid of cards, `accordion` a list with each subgroup collapsible,\n * `none` no listing (the default). A group without its own page has nowhere\n * to show one. Nested groups inherit the nearest setting above them.\n */\nconst directoryModeSchema = z.enum([\"accordion\", \"card\", \"none\"]);\nexport type DirectoryMode = z.infer<typeof directoryModeSchema>;\n\n// ---------------------------------------------------------------------------\n// Page frontmatter\n// ---------------------------------------------------------------------------\n\nconst sidebarMetaSchema = z.strictObject({\n badge: z.string().optional(),\n /**\n * Render mode for this page's folder group. Only meaningful on a folder's\n * `index` page — it configures the group, not the page. Overrides the\n * folder's `meta.ts` `display` and the global `navigation.sidebar.display`.\n */\n display: sidebarDisplaySchema.optional(),\n hidden: z.boolean().default(false),\n icon: iconName.optional(),\n label: z.string().optional(),\n order: z.number().optional(),\n});\n\n/**\n * An X handle, normalized to a leading `@` — `twitter:site`/`twitter:creator`\n * require it, and a handle configured without one is the obvious typo to absorb\n * rather than reject. The layouts normalize again on the way out, since a page's\n * `seo.x.creator` reaches them straight from unvalidated frontmatter.\n */\nconst xHandleSchema = z.string().transform(normalizeXHandle).optional();\n\nconst seoMetaSchema = z.strictObject({\n canonical: z.url().optional(),\n description: z.string().optional(),\n image: z.string().optional(),\n noindex: z.boolean().default(false),\n title: z.string().optional(),\n /** Per-page X attribution — a guest post credits its own author. */\n x: z.strictObject({ creator: xHandleSchema }).optional(),\n});\n\nconst searchMetaSchema = z.strictObject({\n /**\n * Multiply the page's search relevance: above 1 ranks it higher, below 1\n * lower. Keep it to a few key pages, and under 10: a large boost floats a\n * page over better matches.\n */\n boost: z.number().positive().optional(),\n exclude: z.boolean().default(false),\n /** Extra terms the page is found by, beyond its own text. */\n keywords: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n});\n\nconst aiMetaSchema = z.strictObject({\n /** Exclude this page from llms.txt and llms-full.txt. */\n exclude: z.boolean().default(false),\n});\n\nconst changelogMetaSchema = z.strictObject({\n category: z.string().optional(),\n date: dateSchema.optional(),\n version: z.string().optional(),\n});\n\n/**\n * A post author: a bare name/handle, or an object with a name plus optional\n * avatar/URL. The object is passthrough so richer author metadata (social\n * handles, roles) survives untouched — Blume doesn't render authors yet, so\n * this exists to preserve the field (common on blog/changelog pages) rather\n * than have a strict scan reject it.\n */\nconst authorSchema = z.union([\n z.string(),\n z\n .object({\n avatar: z.string().optional(),\n image: z.string().optional(),\n name: z.string(),\n url: z.string().optional(),\n })\n .catchall(z.unknown()),\n]);\n\n// Shorthand defaults use `.prefault()`, not `.default()`, wherever the value\n// must still be parsed — Zod 4's `.default()` returns the value as-is, so a\n// `.default({})` on an object with inner defaults (or a transform) would\n// resolve to a bare `{}` instead of the fully-defaulted shape.\n\n/** A `related` link: a root-relative page path or an absolute URL. */\nconst relatedLinkSchema = z\n .string()\n .refine((link) => link.startsWith(\"/\") || isExternalUrl(link), {\n message:\n 'A related link is a root-relative path (\"/guides/setup\") or an absolute URL.',\n });\n\n/** Frontmatter accepted on any content page. */\nconst pageMetaBaseSchema = z.strictObject({\n ai: aiMetaSchema.prefault({}),\n /**\n * A hand-written endpoint: an HTTP method and a path or full URL\n * (`POST /v1/users`). The page's `<ParamField>`s build its playground and\n * request samples.\n */\n api: z\n .string()\n .refine((value) => API_ENDPOINT.test(value.trim()), {\n message:\n 'api takes an HTTP method and a path or URL, like \"POST /v1/users\" or \"GET https://api.acme.com/v1/users/{id}\".',\n })\n .optional(),\n /** How this page's endpoint authenticates, over the site's `api.auth`. */\n authMethod: z.enum(AUTH_METHODS).optional(),\n /** Post author(s) for blog/changelog content; preserved, not yet rendered. */\n authors: z.union([authorSchema, z.array(authorSchema)]).optional(),\n changelog: changelogMetaSchema.optional(),\n /** Publish date for feed-backed content like blog/changelog. */\n date: dateSchema.optional(),\n deprecated: z.boolean().default(false),\n description: z.string().optional(),\n draft: z.boolean().default(false),\n hidden: z.boolean().default(false),\n icon: iconName.optional(),\n /** Overrides the git-derived last-modified date when `lastModified` is on. */\n lastModified: dateSchema.optional(),\n /** What the page shows around its content (see `core/page-modes.ts`). */\n mode: z.enum(PAGE_MODES).optional(),\n /** `false` keeps the \"Listen to this page\" player off this page. */\n narration: z.boolean().default(true),\n noindex: z.boolean().default(false),\n /** `false` drops the previous/next links at the foot of this page. */\n pagination: z.boolean().default(true),\n /** What an `api` page's playground shows: `interactive`, `simple` (samples only), or `none`. */\n playground: z.enum(PLAYGROUND_MODES).optional(),\n /**\n * Pages to suggest at the foot of this one: root-relative paths, absolute\n * URLs, or `{ Title: link }` to name a link. `false` lists none.\n */\n related: z\n .union([\n z.literal(false),\n z\n .array(\n z.union([\n relatedLinkSchema,\n z\n .record(z.string().min(1), relatedLinkSchema)\n .refine((entry) => Object.keys(entry).length === 1, {\n message:\n 'A titled related entry has one title and one link: { \"Title\": \"/path\" }.',\n }),\n ])\n )\n .max(MAX_RELATED),\n ])\n .optional(),\n search: searchMetaSchema.prefault({}),\n seo: seoMetaSchema.prefault({}),\n sidebar: sidebarMetaSchema.prefault({}),\n slug: z.string().optional(),\n title: z.string().optional(),\n // No default: an absent `type` must fall through to `content.defaultType`.\n type: z.string().optional(),\n});\n\nexport type PageMeta = z.infer<typeof pageMetaBaseSchema>;\nexport type PageMetaInput = z.input<typeof pageMetaBaseSchema>;\n\n/**\n * Fold the top-level `hidden`/`noindex` shorthands into the nested fields\n * every consumer reads (`sidebar.hidden`, `seo.noindex`). It runs inside both\n * page schemas, so the scan's `PageMeta` (the sitemap, llms.txt, search) and\n * the content collections' `entry.data` (the page's robots tag) can't\n * disagree about a page that uses the shorthand.\n */\nconst foldShorthands = <Meta extends PageMeta>(meta: Meta): Meta => ({\n ...meta,\n seo: { ...meta.seo, noindex: meta.seo.noindex || meta.noindex },\n sidebar: { ...meta.sidebar, hidden: meta.sidebar.hidden || meta.hidden },\n});\n\nexport const pageMetaSchema = pageMetaBaseSchema.transform(foldShorthands);\n\n/** The fully-defaulted front matter of a page that declares nothing. */\nconst EMPTY_PAGE_META: PageMeta = pageMetaBaseSchema.parse({});\n\n/**\n * The page schema as the generated content collections declare it, so\n * `entry.data` is typed and normalized (dates as ISO strings, X handles with\n * their `@`) the same way the scan's `PageMeta` is. Two deliberate loosenings\n * over {@link pageMetaSchema}: custom keys (`frontmatter.extend`, per-type\n * maps) pass through instead of failing the strict parse, and a page the\n * strict parse rejects resolves to the empty defaults instead of throwing.\n * The scan has already dropped such a page with a `BLUME_FRONTMATTER_INVALID`\n * diagnostic — Blume continues without it unless `--strict` — so the\n * collection must not turn that dropped page into a failed content sync.\n */\nexport const pageCollectionSchema = pageMetaBaseSchema\n .loose()\n .transform(foldShorthands)\n // oxlint-disable-next-line promise/prefer-await-to-then -- zod's catch, not a promise\n .catch(() => EMPTY_PAGE_META);\n\n/** Built-in page frontmatter keys; custom keys must never redeclare one. */\nexport const BUILT_IN_PAGE_META_KEYS: ReadonlySet<string> = new Set<string>(\n pageMetaBaseSchema.keyof().options\n);\n\n/**\n * A map of custom frontmatter keys to user-supplied validation schemas,\n * consumed through the Standard Schema `~standard` contract — never Zod's own\n * API — so the consumer's zod (any version), Valibot, or ArkType all work\n * (see `standard-schema.ts`). Shared by the site-wide `frontmatter.extend`\n * and the per-type `content.types.<type>.frontmatter` maps. Built-in\n * frontmatter fields can't be redeclared — they're load-bearing (routing,\n * sidebar, SEO), and shadowing one would silently change its semantics.\n */\nconst customKeySchemaRecord = (where: string) =>\n z\n .record(\n z.string(),\n z.custom<StandardSchema>(isStandardSchema, {\n message:\n \"Expected a Standard Schema (e.g. a Zod schema — any Zod version works).\",\n })\n )\n .default({})\n .superRefine((value, ctx) => {\n for (const key of Object.keys(value)) {\n if (BUILT_IN_PAGE_META_KEYS.has(key)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `\"${key}\" is a built-in frontmatter field and cannot be redeclared via ${where}.`,\n path: [key],\n });\n }\n }\n });\n\n// ---------------------------------------------------------------------------\n// Folder meta (meta.ts)\n// ---------------------------------------------------------------------------\n\nexport const folderMetaSchema = z.strictObject({\n collapsed: z.boolean().optional(),\n /** List the group's pages on its index page; inherited by nested folders. */\n directory: directoryModeSchema.optional(),\n /** Render mode for this group; overrides `navigation.sidebar.display`. */\n display: sidebarDisplaySchema.optional(),\n icon: iconName.optional(),\n order: z.number().optional(),\n /** Explicit child ordering by slug segment (without numeric prefix). */\n pages: z.array(z.string()).optional(),\n title: z.string().optional(),\n});\n\nexport type FolderMeta = z.infer<typeof folderMetaSchema>;\n\n// ---------------------------------------------------------------------------\n// Project config (blume.config.ts)\n// ---------------------------------------------------------------------------\n\n/** The logo mark: a single image path/URL, or light/dark variants with alt text. */\nconst logoImageSchema = z.union([\n z.string(),\n z.strictObject({\n alt: z.string().optional(),\n dark: z.string().optional(),\n light: z.string().optional(),\n }),\n]);\n\n/**\n * Site logo. A bare string is the image shorthand. The object form splits the\n * brand into an optional `image` mark and optional wordmark `text` so a site can\n * show an image-only logo (a mark with the wordmark baked in), a text-only logo,\n * or both. Omit `text` to fall back to the site title; set `text: \"\"` to render\n * the mark alone. `href` overrides the brand link (defaults to `/`).\n */\nconst logoConfigSchema = z.union([\n z.string(),\n z.strictObject({\n href: z.string().optional(),\n image: logoImageSchema.optional(),\n text: z.string().optional(),\n }),\n]);\n\n/**\n * A label that may localize (header tabs and links, the banner, the footer):\n * a plain string, or a map of locale code to label (`{ en: \"Docs\", ja: \"ドキュメント\" }`).\n * Resolved per locale by `core/localizable.ts` — the active locale's entry\n * wins, then the default locale's, then the map's first entry — so a\n * single-locale site can keep plain strings and an i18n site can translate\n * its labels without forking the config.\n */\nconst localizableLabelSchema = z.union([\n z.string(),\n z\n .record(z.string(), z.string())\n .refine((value) => Object.keys(value).length > 0, {\n message: \"Provide at least one locale's label.\",\n }),\n]);\n\nexport type LocalizableLabel = z.infer<typeof localizableLabelSchema>;\n\n/**\n * Site-wide announcement banner: a string, or text with an optional link. The\n * object form's `content` and link `text` may be per-locale maps.\n */\nconst bannerConfigSchema = z.union([\n z.string(),\n z.strictObject({\n content: localizableLabelSchema,\n /** Show a dismiss button; the choice is remembered per visitor. */\n dismissible: z.boolean().default(false),\n /**\n * Stable key for remembering dismissal; defaults to the content (the\n * default locale's, for a per-locale map).\n */\n id: z.string().optional(),\n link: z\n .strictObject({ href: z.string(), text: localizableLabelSchema })\n .optional(),\n }),\n]);\n\n/**\n * Defaults for hand-written endpoint pages (`api` frontmatter): the server a\n * path joins, how requests authenticate, and the playground, which takes an\n * OpenAPI reference's `playground` option.\n */\nconst apiConfigSchema = z.strictObject({\n auth: z\n .strictObject({\n method: z.enum(AUTH_METHODS),\n /** The header an API key goes in. Defaults to `x-api-key`. */\n name: z.string().optional(),\n })\n .optional(),\n playground: playgroundSchema,\n /** The base URL an `api` path joins (`https://api.acme.com/v1`). */\n server: z.string().optional(),\n});\n\n/**\n * The site footer: a copyright line, a row of links, and social profile\n * icons. Unset, the site has no footer (a `components.ts` `Footer` still\n * renders).\n */\nconst footerConfigSchema = z.strictObject({\n /** A line of plain text between the links and the icons (`© 2026 Acme, Inc.`). */\n copyright: localizableLabelSchema.optional(),\n /** Links in one row, in the order written. */\n links: z\n .array(z.strictObject({ href: z.string(), label: localizableLabelSchema }))\n .default([]),\n /** Social profiles, platform to URL, shown as icons in the order written. */\n socials: z.partialRecord(z.enum(FOOTER_SOCIALS), z.string()).default({}),\n});\n\n/**\n * The generated `/changelog` index. Its title and description may be\n * per-locale maps; unset, they're the `changelog` UI strings `i18n.ui`\n * translates.\n */\nconst changelogConfigSchema = z.strictObject({\n description: localizableLabelSchema.optional(),\n title: localizableLabelSchema.optional(),\n});\n\n/** A validated `content.sources` entry: an adapter descriptor from `blume/sources`. */\nexport type { ContentSourceAdapter } from \"../sources/registry.ts\";\n\n/**\n * Per-type content definition. An object (rather than a bare frontmatter map)\n * so type-scoped concerns added later — search facets, templates — have a\n * home without a breaking config change.\n */\nconst contentTypeConfigSchema = z.strictObject({\n /**\n * Custom frontmatter keys whose values become filterable facets for pages\n * of this type — surfaced in search documents and filterable through the\n * MCP tools' `filters` input. Each name must be a custom key declared for\n * the type (in its `frontmatter` map or the site-wide `frontmatter.extend`),\n * checked at the config level where both maps are visible. Only string\n * (or number/boolean, stringified) values ever facet.\n */\n facets: z.array(z.string()).default([]),\n /**\n * Custom frontmatter keys for pages of this type, layered on top of the\n * site-wide `frontmatter.extend`. Every declared key is validated on every\n * page of the type — absent ones included — so a required schema enforces\n * the key type-wide while leaving other types untouched.\n */\n frontmatter: customKeySchemaRecord(\"content.types\"),\n});\n\n/** The top-level fields that are shorthand for a single `filesystem()` source. */\nconst FILESYSTEM_SHORTHAND_KEYS = [\"exclude\", \"include\", \"root\"] as const;\n\n/**\n * `content`: where pages come from. `sources` lists adapters from\n * `blume/sources`; the top-level `root`/`include`/`exclude` are zero-config\n * shorthand that desugars to exactly one `filesystem()` entry when `sources`\n * is absent, and are rejected beside it — so after parse, `sources` is the\n * one source of truth and nothing downstream picks between the two.\n */\nconst contentConfigSchema = z\n .strictObject({\n defaultType: z.string().default(\"doc\"),\n exclude: z.array(z.string()).optional(),\n include: z.array(z.string()).optional(),\n pages: z.string().default(\"pages\"),\n root: z.string().optional(),\n sources: contentSourcesSchema.optional(),\n /**\n * Per-type content definitions, keyed by the frontmatter `type` they apply\n * to (including `defaultType`, for pages that set none).\n */\n types: z.record(z.string(), contentTypeConfigSchema).default({}),\n })\n .superRefine(\n (value, ctx) => {\n if (!value.sources) {\n return;\n }\n for (const key of FILESYSTEM_SHORTHAND_KEYS) {\n if (value[key] !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `content.${key} is shorthand for a single filesystem() source and can't be combined with content.sources — move it into a filesystem({ ${key} }) entry in content.sources.`,\n path: [key],\n });\n }\n }\n },\n // Zod skips a refinement once a field has failed, so without this a\n // Blume 1 config (`{ type: \"filesystem\" }` sources beside `content.root`)\n // would only learn about the shorthand after fixing every source entry.\n // Any object gets the check; a non-object already failed on its own.\n { when: (payload) => isObjectLike(payload.value) }\n )\n .transform(({ exclude, include, root, sources, ...rest }) => ({\n ...rest,\n sources: sources ?? [\n // The shorthand's defaults are the adapter's own, applied by its schema.\n resolvedSourceAdapterSchema.parse(filesystem({ exclude, include, root })),\n ],\n }));\n\nconst navTabSchema = z.strictObject({\n // Rejected empty rather than accepted: an empty `href` would render a link to\n // nowhere, and it can't mean \"resolve it for me\" either — that's what\n // omitting the field does.\n href: z.string().min(1).optional(),\n icon: iconName.optional(),\n items: z\n .array(\n z.strictObject({\n description: z.string().optional(),\n icon: iconName.optional(),\n label: localizableLabelSchema,\n path: z.string(),\n tag: z.string().optional(),\n })\n )\n .optional(),\n label: localizableLabelSchema,\n // Canonical like the routes it's matched against — one leading slash, no\n // trailing one — so `/guides/` still marks its pages' tab and scopes their\n // sidebar, and `api` links to `/api` rather than resolving relative to the\n // current page.\n path: z.string().transform(normalizeRoute),\n});\n\nconst navSelectorItemSchema = z.strictObject({\n description: z.string().optional(),\n icon: iconName.optional(),\n label: z.string(),\n path: z.string(),\n tag: z.string().optional(),\n});\n\nconst navSelectorSchema = z.strictObject({\n items: z.array(navSelectorItemSchema).default([]),\n kind: z.enum([\"dropdown\", \"language\", \"product\", \"version\"]),\n label: z.string(),\n});\n\n/** A node in an explicit sidebar config: a page reference or a group/link. */\nexport type SidebarItemConfig =\n | string\n | {\n label: string;\n badge?: string;\n directory?: DirectoryMode;\n display?: SidebarDisplay;\n href?: string;\n icon?: string;\n collapsed?: boolean;\n items?: SidebarItemConfig[];\n root?: string;\n };\n\n// Zod 4's `ZodType` defaults its Input parameter to `unknown` (it no longer\n// mirrors Output), so the recursive annotation names both — otherwise\n// `z.input` of anything containing this schema degrades to `unknown`.\nconst sidebarItemSchema: z.ZodType<SidebarItemConfig, SidebarItemConfig> =\n z.lazy(() =>\n z.union([\n z.string(),\n z.strictObject({\n badge: z.string().optional(),\n collapsed: z.boolean().optional(),\n directory: directoryModeSchema.optional(),\n display: sidebarDisplaySchema.optional(),\n href: z.string().optional(),\n icon: iconName.optional(),\n items: z.array(sidebarItemSchema).optional(),\n label: z.string(),\n root: z.string().optional(),\n }),\n ])\n );\n\nconst fontFallbackSchema = z.enum([\"sans\", \"serif\", \"mono\"]);\n\n/** Any family from a zero-config Astro provider, by name. */\nconst remoteFontSchema = z.strictObject({\n fallback: fontFallbackSchema.optional(),\n name: z.string().min(1),\n provider: z\n .enum([\"google\", \"fontsource\", \"bunny\", \"fontshare\"])\n .default(\"google\"),\n /** Character subsets to load; defaults to `latin` plus the locales' scripts. */\n subsets: z.array(z.string().min(1)).nonempty().optional(),\n weights: z\n .array(\n z.union([z.number().int().positive(), z.string().regex(/^\\d+\\.\\.\\d+$/u)])\n )\n .nonempty()\n .optional(),\n});\n\n/** One local `@font-face`: a file plus optional weight/style (else inferred). */\nconst localFontVariantSchema = z.strictObject({\n src: z.string().min(1),\n style: z.enum([\"normal\", \"italic\", \"oblique\"]).optional(),\n weight: z\n .union([\n z.number().int().positive(),\n z.string().regex(/^\\d+(?:\\.\\.\\d+)?$/u),\n ])\n .optional(),\n});\n\n/** A self-hosted family loaded from font files in the project. */\nconst localFontSchema = z.strictObject({\n fallback: fontFallbackSchema.optional(),\n name: z.string().min(1),\n variants: z.array(localFontVariantSchema).nonempty(),\n});\n\n/**\n * A role's font: a curated Google Font slug (see `theme/fonts.ts`), a\n * remote-provider family, or local font files. Bare strings must be curated\n * slugs so a typo fails with the supported list instead of a provider error.\n */\nconst fontValueSchema = z\n .union([z.string(), remoteFontSchema, localFontSchema])\n .superRefine((value, ctx) => {\n if (isString(value) && !isFontSlug(value)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Unknown font \"${value}\". Supported fonts: ${FONT_SLUGS.join(\", \")}. For any other family, use the object form: { name: \"...\" } (remote provider) or { name: \"...\", variants: [...] } (local files).`,\n });\n }\n });\n\n/**\n * An optional per-mode theme value: a string applies to both color modes; a\n * `{ light, dark }` object sets each mode individually (either may be\n * omitted to override a single mode).\n */\nconst perModeValueSchema = z\n .union([\n z.string(),\n z.strictObject({\n dark: z.string().optional(),\n light: z.string().optional(),\n }),\n ])\n .optional()\n .transform((value) =>\n isString(value) ? { dark: value, light: value } : value\n );\n\nconst themeConfigFields = {\n accent: z\n .union([\n z.string(),\n z.strictObject({ dark: z.string(), light: z.string() }),\n ])\n .default(\"blue\")\n .transform((value) =>\n isString(value) ? { dark: value, light: value } : value\n ),\n action: z.string().optional(),\n background: perModeValueSchema,\n backgroundImage: perModeValueSchema,\n fonts: z\n .strictObject({\n body: fontValueSchema.default(\"inter\"),\n display: fontValueSchema.default(\"inter\"),\n mono: fontValueSchema.default(\"ibm-plex-mono\"),\n })\n .prefault({}),\n mode: z.enum([\"system\", \"light\", \"dark\"]).default(\"system\"),\n radius: z.enum([\"none\", \"sm\", \"md\", \"lg\"]).default(\"md\"),\n};\n\nconst themeConfigSchema = z.strictObject(\n themeConfigFields,\n removedKeysHint({\n layout:\n \"theme.layout was removed: the sidebar layout is the only one, so delete the field.\",\n })\n);\n\n/** Curated link for the search dialog empty state (internal route or external URL). */\nconst searchPopularLinkSchema = z.strictObject({\n href: z.string(),\n icon: iconName.optional(),\n label: z.string(),\n});\n\n/**\n * The search backend: an adapter descriptor from `blume/search` (`algolia({…})`,\n * `orama()`, …) or `false` to disable search. Resolves to a descriptor either\n * way — `false` becomes the `none` adapter — so consumers read `kind`,\n * `runtimeDeps`, and `requiredSecrets` without a special case.\n */\nconst searchProviderSchema = z\n .custom<false | SearchAdapterInput>(\n // A 1.x provider name (`\"algolia\"`, `\"none\"`) fails here with the adapter\n // that replaces it, rather than the pipe's bare \"expected object\".\n (value) => value === false || isObjectLike(value),\n {\n message:\n 'search.provider takes an adapter from \"blume/search\" — algolia({…}), pagefind(), … — not a provider name. The 1.x provider string was removed, and \"none\" is now `search: false`.',\n }\n )\n .transform((value) => (value === false ? NONE_SEARCH_ADAPTER : value))\n .pipe(resolvedSearchAdapterSchema);\n\n/** Indexing behavior shared by every source-built index. */\nconst searchIndexingSchema = z\n .strictObject({\n includeCodeBlocks: z.boolean().default(false),\n includeHiddenPages: z.boolean().default(false),\n })\n .prefault({});\n\n/** What the search dialog's analytics events carry. */\nconst searchAnalyticsSchema = z\n .strictObject({\n queries: z.boolean().default(true),\n })\n .prefault({});\n\n/** The object form of `search`: the adapter plus its adapter-independent settings. */\nconst searchOptionsSchema = z.strictObject(\n {\n analytics: searchAnalyticsSchema,\n indexing: searchIndexingSchema,\n /** Curated links for the Cmd+K empty state; defaults to the first sidebar pages. */\n popular: z.array(searchPopularLinkSchema).default([]),\n provider: searchProviderSchema.default(() => orama()),\n },\n // The 1.x credential blocks, each now its adapter's options.\n removedKeysHint({\n algolia:\n 'search.algolia moved into its adapter: `search: algolia({ appId, indexName, apiKey })` from \"blume/search\", where the 1.x `searchApiKey` is now `apiKey`.',\n mixedbread:\n 'search.mixedbread moved into its adapter: `search: mixedbread({ storeId })` from \"blume/search\".',\n oramaCloud:\n 'search.oramaCloud moved into its adapter: `search: oramaCloud({ endpoint, apiKey, indexId })` from \"blume/search\".',\n typesense:\n 'search.typesense moved into its adapter: `search: typesense({ host, collection, apiKey })` from \"blume/search\", where the 1.x `searchApiKey` is now `apiKey`.',\n })\n);\n\ntype SearchOptionsInput = z.input<typeof searchOptionsSchema>;\n\n/** What `search` accepts: an adapter (or `false`) directly, or the object form. */\ntype SearchConfigInput = false | SearchAdapterInput | SearchOptionsInput;\n\n/**\n * `search` takes an adapter directly (`search: algolia({…})`, or `false`) as\n * shorthand for the object form (`search: { provider: algolia({…}), popular,\n * indexing }`). The shorthand is lifted into `provider` before the object\n * schema validates, rather than through a union: a union reports whichever\n * branch fails \"softest\", which for a descriptor missing an option is the\n * object form's \"unrecognized keys\" — pointing at the wrong problem. A\n * descriptor is recognized by its `kind`; the object form never has one.\n */\nconst searchConfigSchema = z\n .custom<SearchConfigInput>(\n // Anything else (a 1.x provider string, null, true) must become a\n // diagnostic here: the `in` check below would throw a TypeError on it.\n (value) => value === false || isObjectLike(value),\n {\n message:\n 'search must be an adapter from \"blume/search\" (orama(), algolia({…}), …), false, or { provider, popular, indexing }. The 1.x provider string was removed.',\n }\n )\n .transform((value): SearchOptionsInput =>\n value === false || \"kind\" in value ? { provider: value } : value\n )\n .pipe(searchOptionsSchema);\n\n/**\n * JWK parameters that carry private or secret key material (RFC 7518): the\n * private exponent/scalar, the RSA CRT parameters, and the symmetric key.\n * A directory is public by definition, so any of these in a configured key is\n * a leaked credential, not a config style choice — reject loudly.\n */\nconst PRIVATE_JWK_PARAMS = [\"d\", \"p\", \"q\", \"dp\", \"dq\", \"qi\", \"oth\", \"k\"];\n\n/**\n * A public JWK for the Web Bot Auth signature directory. Shape is left to the\n * signing setup (Ed25519 `OKP` keys in current deployments) — validation only\n * requires the mandatory `kty` and refuses private key material.\n */\nconst publicJwkSchema = z\n .record(z.string(), z.unknown())\n .superRefine((jwk, ctx) => {\n if (!isString(jwk.kty) || jwk.kty.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'A JWK must declare its key type (\"kty\").',\n });\n }\n const leaked = PRIVATE_JWK_PARAMS.filter((param) => param in jwk);\n if (leaked.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The JWK contains private key material (\"${leaked.join('\", \"')}\") — the signatures directory is public, so list only public keys and keep the private key where the signing agent runs.`,\n });\n }\n });\n\n// The label is the row button's only accessible name (its icon is\n// decorative), so unlike a header link's it can't be blank in any locale.\nconst mcpClientLabelSchema = z.union(\n [\n z.string().trim().min(1),\n z\n .record(z.string(), z.string().trim().min(1))\n .refine((value) => Object.keys(value).length > 0, {\n message: \"Provide at least one locale's label.\",\n }),\n ],\n { error: \"Expected a label, or a map of locale code to label\" }\n);\n\n// A \"Connect to MCP\" row for a client Blume doesn't ship: its `command` is\n// copied with `{name}` and `{url}` filled in.\nconst mcpCustomClientSchema = z.strictObject({\n command: z.string().trim().min(1),\n icon: iconName.optional(),\n label: mcpClientLabelSchema,\n});\n\nconst ACCEPTED_MCP_CLIENTS = `${mcpClients.map((key) => `\"${key}\"`).join(\", \")}, or a custom client { label, command, icon? }`;\n\n/** A union's issue: every member failed, each with issues of its own. */\nconst isUnionIssue = (\n issue: z.core.$ZodIssue\n): issue is z.core.$ZodIssueInvalidUnion => issue.code === \"invalid_union\";\n\n// A bad entry fails the list member of `clients`, which zod reports as a bare\n// \"Invalid input\" on the whole list; that union issue is all this map sees.\n// The entries' issues ride along in `errors`. The culprit is an entry that\n// matches neither a built-in key nor a custom client, which fails as a union\n// at its index (a blank field or an unknown key elsewhere doesn't fail the\n// list on its own). Name that entry, and for a custom client its bad field.\nconst mcpClientsError = (issue: z.core.$ZodRawIssue): string => {\n const entryIssue = (issue.code === \"invalid_union\" ? issue.errors : [])\n .flat()\n .filter(isUnionIssue)\n .find((nested) => Number.isInteger(nested.path[0]));\n if (!entryIssue) {\n return `agents.mcp.clients takes true, false, or a list whose entries are each ${ACCEPTED_MCP_CLIENTS}.`;\n }\n const index = Number(entryIssue.path[0]);\n const at = `agents.mcp.clients.${String(index)}`;\n const entry = Array.isArray(issue.input) ? issue.input[index] : null;\n if (isString(entry)) {\n return `${at} is \"${entry}\", which isn't a built-in client. Use ${ACCEPTED_MCP_CLIENTS}.`;\n }\n const fieldIssue = entryIssue.errors\n .flat()\n .find((nested) => nested.path.length > 0);\n return fieldIssue\n ? `${at}.${fieldIssue.path.map(String).join(\".\")}: ${fieldIssue.message}. A custom client is { label, command, icon? }.`\n : `${at} isn't ${ACCEPTED_MCP_CLIENTS}.`;\n};\n\nconst mcpConfigSchema = z.strictObject({\n /**\n * The \"Connect to MCP\" page action's clients. `true` (the default) lists\n * every built-in client, `false` none (the menu keeps \"Copy server URL\"),\n * and an array picks built-in clients by key and adds custom ones, in the\n * given order. Normalized to the list so consumers read a plain array.\n */\n clients: z\n .union(\n [\n z.boolean(),\n z.array(z.union([z.enum(mcpClients), mcpCustomClientSchema])).refine(\n (value) => {\n const keys = value.filter(isBuiltInMcpClient);\n return new Set(keys).size === keys.length;\n },\n { message: \"agents.mcp.clients must not repeat a built-in client.\" }\n ),\n ],\n { error: mcpClientsError }\n )\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return value ? [...mcpClients] : [];\n }\n return value;\n }),\n enabled: z.boolean().default(false),\n /** Optional system hint passed to connecting agents. */\n instructions: z.string().optional(),\n /** Server name shown to clients; defaults to the site title. */\n name: z.string().optional(),\n /**\n * Normalized like `openapi.route`: a slash-less value would otherwise be\n * string-concatenated onto the site origin (`https://acme.comdocs-mcp`).\n */\n route: z.string().default(\"/mcp\").transform(normalizeRoute),\n});\n\nconst assistantEndpointSchema = z\n .string()\n .trim()\n .min(1)\n .refine(\n (value) => {\n if (value.startsWith(\"/\") && !value.startsWith(\"//\")) {\n return true;\n }\n try {\n const url = new URL(value);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n },\n {\n message:\n \"ai.assistant.endpoint must be an HTTP(S) URL or a root-relative path.\",\n }\n );\n\n/** The object form of `agents.llmsTxt`; a bare boolean normalizes onto it. */\nconst llmsTxtObjectSchema = z.strictObject({\n /**\n * Markdown inserted after the title and summary, before the page sections:\n * the llms.txt spec's \"details\" slot. The place to tell agents when to use\n * the product and how to call it; trimmed, and dropped when blank.\n */\n details: z.string().trim().min(1).optional(),\n enabled: z.boolean().default(true),\n openapi: z.boolean().default(true),\n});\n\ntype LlmsTxtResolved = z.output<typeof llmsTxtObjectSchema>;\n\n/** The object form of `agents.catalog`; a bare boolean normalizes onto it. */\nconst aiCatalogObjectSchema = z.strictObject({\n enabled: z.boolean().default(true),\n /**\n * Representative queries per catalog entry, keyed by the entry's\n * `<namespace>:<name>` (the identifier minus its `urn:air:<host>:` prefix,\n * e.g. `mcp:docs`, `skill:blume`, `api:docs`). Replaces the generated\n * defaults for that entry; 2–5 short natural-language questions the\n * resource can answer, which registries embed for semantic search.\n */\n queries: z\n .record(z.string().min(1), z.array(z.string().trim().min(1)).min(1))\n .default({}),\n});\n\ntype AiCatalogResolved = z.output<typeof aiCatalogObjectSchema>;\n\n/**\n * The keys that moved from `ai` to `agents`: `ai` now holds only what faces a\n * model at read time (the assistant, Open in chat), and the machine-readable surface\n * agents consume lives under `agents`.\n */\nconst MOVED_TO_AGENTS = [\n \"api\",\n \"catalog\",\n \"llmsTxt\",\n \"markdownComponents\",\n \"mcp\",\n \"skills\",\n \"webBotAuth\",\n \"webmcp\",\n] as const;\n\nconst movedToAgentsHints = (from: string): Record<string, string> =>\n Object.fromEntries(\n MOVED_TO_AGENTS.map((key) => [\n key,\n `${from}.${key} moved to agents.${key}.`,\n ])\n );\n\n/** Model-facing config: the assistant and the \"Open in chat\" action. */\nconst aiConfigFields = {\n assistant: z\n .strictObject(\n {\n // Origins allowed to call the generated `/api/ask` from another site (a\n // marketing page that embeds an ask box, say), or `\"*\"` for every\n // origin. Each URL is reduced to its origin so a trailing slash or path\n // can't defeat the exact match the route performs. Read by the\n // generated route only; an external `endpoint` owns its own CORS.\n // A bot check from `blume/captcha`: the panel sends a token with each\n // question and the generated route verifies it before the model runs.\n captcha: captchaAdapterSchema.optional(),\n cors: z\n .array(\n z.union([\n z.literal(\"*\"),\n z\n .url({ protocol: /^https?$/u })\n .transform((value) => new URL(value).origin),\n ])\n )\n .optional(),\n enabled: z.boolean().default(false),\n // Optional external endpoint for projects that keep their docs static\n // and host the assistant in an existing backend. Absolute URLs and root-relative\n // paths are both valid; the built-in request/stream contract is unchanged.\n endpoint: assistantEndpointSchema.optional(),\n // Extra system-prompt text (identity, language, tone) appended to the\n // built-in instructions, so the grounding contract — answer from the\n // retrieved excerpts, cite pages as Markdown links — stays intact.\n instructions: z.string().trim().min(1).optional(),\n // The adapter descriptor a `gateway()`/`openrouter()`/... factory\n // returns; each adapter validates its own options (model, key env var,\n // reasoning mapping, `providerOptions` passthrough) in `ai/ask.ts`.\n // Unset means the gateway with its default model, so the zero-config assistant\n // is unchanged.\n provider: assistantAdapterSchema.prefault(DEFAULT_ASSISTANT_PROVIDER),\n // How much documentation each question carries. Injected characters are\n // the dominant term in time-to-first-token on a self-hosted backend, so\n // these trade recall for latency. No zod defaults here: only what the\n // user set reaches the generated (and ejected) endpoint, so omitted\n // fields keep tracking the installed package's built-in defaults in\n // `ai/ask-context.ts` instead of pinning today's numbers as literals.\n retrieval: z\n .strictObject({\n contextBudget: z.number().int().positive().optional(),\n excerptChars: z.number().int().positive().optional(),\n maxResults: z.number().int().positive().optional(),\n })\n .optional(),\n // Empty-state prompts shown before the first question. Each renders as a\n // clickable suggestion; `icon` is an optional Lucide name beside it.\n suggestions: z\n .array(\n z.strictObject({\n icon: iconName.optional(),\n label: z.string().min(1),\n })\n )\n .default([]),\n // Where the panel's Contact support link goes: an email address\n // (`mailto:`, which starts an email with the conversation), a URL,\n // or a root-relative page (which get the conversation's `thread` id).\n support: z\n .string()\n .refine(\n (link) =>\n link.startsWith(\"mailto:\") ||\n link.startsWith(\"/\") ||\n isExternalUrl(link),\n {\n message:\n 'ai.assistant.support is a mailto: address, a URL, or a root-relative path, like \"mailto:help@example.com\".',\n }\n )\n .optional(),\n // Search and read-page tools the model can call over several steps.\n // No default here: unset follows the adapter (`toolsByDefault` in\n // `ai/ask.ts`), on for the hosted catalogs and off for an\n // OpenAI-compatible backend that may not speak tool calling.\n tools: z.boolean().optional(),\n },\n assistantMovedFieldsHint\n )\n .superRefine((value, ctx) => {\n // `cors` configures the generated route, which an external `endpoint`\n // replaces; accepting both would silently do nothing.\n if (value.cors && value.endpoint) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n \"ai.assistant.cors only applies to the generated route; with ai.assistant.endpoint, CORS is that backend's job.\",\n path: [\"cors\"],\n });\n }\n })\n .optional(),\n /**\n * The \"Open in chat\" page action. `true` (the default) lists every\n * provider, `false` hides the action entirely, and an array of provider\n * keys shows just that subset, in the given order. Normalized to the\n * provider list so consumers read a plain array.\n */\n openInChat: z\n .union([\n z.boolean(),\n z\n .array(z.enum(openInChatProviders))\n .refine((value) => new Set(value).size === value.length, {\n message: \"ai.openInChat must not repeat a provider.\",\n }),\n ])\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return value ? [...openInChatProviders] : [];\n }\n return value;\n }),\n};\n\nconst aiConfigSchema = z.strictObject(\n aiConfigFields,\n removedKeysHint({\n ...movedToAgentsHints(\"ai\"),\n ask: \"ai.ask was renamed to ai.assistant.\",\n })\n);\n\n/**\n * A pinned link rendered above the sidebar sections — a blog, changelog, or\n * contact page that should always be reachable, regardless of the active tab.\n * `href` may be an external URL or an internal route.\n */\nconst featuredLinkSchema = z.strictObject({\n href: z.string(),\n icon: iconName.optional(),\n label: localizableLabelSchema,\n});\n\n/**\n * A header link: a plain one (`Log in`, `Status`), or the single call to\n * action. Same shape as a featured link minus the icon — the header row is\n * text, not iconography.\n */\nconst headerActionSchema = z.strictObject({\n href: z.string(),\n label: localizableLabelSchema,\n});\n\nconst navigationConfigSchema = z.strictObject({\n /** Plain links in the header, left of the icon buttons. */\n actions: z.array(headerActionSchema).default([]),\n /**\n * The one primary call to action in the header, as a filled button.\n *\n * Singular on purpose: a docs header has room for exactly one thing a\n * reader is being asked to do, a row of buttons asks for nothing, and\n * `featured` already takes the secondary links.\n */\n cta: headerActionSchema.optional(),\n /** Pinned links shown above the generated sidebar sections. */\n featured: z.array(featuredLinkSchema).default([]),\n /**\n * The GitHub link in the footer. `true` derives it from `github`, `false`\n * hides it, and an absolute URL points it anywhere on GitHub — an\n * organization, say, when the docs repo itself is private and `github` has\n * to stay unset. The mark stays the GitHub one, so a URL elsewhere belongs in\n * `actions`.\n */\n repo: z.union([z.boolean(), httpUrlSchema]).default(true),\n selectors: z.array(navSelectorSchema).default([]),\n /**\n * Sidebar behavior. `display` sets how every group renders (a group in an\n * explicit `items` config may still override it); `items` is an explicit\n * sidebar — when omitted the sidebar is generated from the content tree.\n * A bare array is shorthand for `{ items }`.\n */\n sidebar: z\n .union([\n z.array(sidebarItemSchema),\n z.strictObject({\n display: sidebarDisplaySchema.default(\"flat\"),\n items: z.array(sidebarItemSchema).optional(),\n }),\n ])\n .prefault({})\n .transform((value) =>\n Array.isArray(value) ? { display: \"flat\" as const, items: value } : value\n ),\n tabs: z.array(navTabSchema).default([]),\n});\n\nexport { assistantReasoningLevels } from \"../ai/ask.ts\";\nexport type { AssistantReasoning } from \"../ai/ask.ts\";\nexport type AssistantConfig = NonNullable<\n z.infer<typeof aiConfigSchema>[\"assistant\"]\n>;\nexport { openInChatProviders } from \"./open-in-chat.ts\";\nexport type { OpenInChatProvider } from \"./open-in-chat.ts\";\nexport { mcpClients } from \"./mcp-clients.ts\";\nexport type { McpClient, McpCustomClient } from \"./mcp-clients.ts\";\n\n// Reader-facing \"Export\" page action (PDF via print, EPUB via client-side\n// generation). Off by default. Accepts a shorthand boolean to toggle both\n// formats, or an object to enable them individually; both normalize to\n// `{ epub, pdf }` so consumers read plain booleans.\nconst exportConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n epub: z.boolean().default(false),\n pdf: z.boolean().default(false),\n }),\n ])\n .transform((value) =>\n isBoolean(value) ? { epub: value, pdf: value } : value\n );\n\n// The \"Was this page helpful?\" rating, on by default. `comments: true` adds a\n// box after the rating where the reader can say more, sent through the\n// analytics adapters as a `feedback_comment` event. Both forms normalize to\n// `{ enabled, comments }`.\nconst feedbackConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n comments: z.boolean().default(false),\n enabled: z.boolean().default(true),\n }),\n ])\n // With the rating off there is nothing to comment on.\n .transform((value) =>\n isBoolean(value)\n ? { comments: false, enabled: value }\n : { comments: value.enabled && value.comments, enabled: value.enabled }\n );\n\n// \"Listen to this page\". Off by default. `true` reads pages aloud with the\n// reader's browser voices, which needs no key and works on any host; an object\n// with a `provider` (`gateway()` or `openai()` from `blume/ai`) generates\n// neural audio at build instead, one cached clip per sentence, and falls back\n// to the browser's voices where no clips exist (`blume dev`, a build without\n// the key). Both normalize to `{ enabled, provider }`.\nconst narrationConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n enabled: z.boolean().default(true),\n provider: narrationProviderSchema.optional(),\n }),\n ])\n .transform((value) =>\n isBoolean(value)\n ? { enabled: value, provider: null }\n : { enabled: value.enabled, provider: value.provider ?? null }\n );\n\n/** A configured locale: ISO-ish code plus display metadata for the switcher. */\nconst localeSchema = z.strictObject({\n code: z.string().min(1),\n /** Text direction; drives `<html dir>` and a future RTL pass. */\n dir: z.enum([\"ltr\", \"rtl\"]).default(\"ltr\"),\n label: z.string(),\n /**\n * Freeform style guidance for `blume translate`, e.g. \"Brazilian\n * Portuguese, informal você\". Pins register and dialect from the first\n * translation and wins over an existing translation's style on reruns.\n */\n style: z.string().optional(),\n});\n\n/**\n * Internationalization. Opt-in: when absent, Blume is single-locale and behaves\n * exactly as before. The default locale lives at the content root; other locales\n * are top-level directories named by `code` (the `dir` parser).\n */\nconst i18nConfigSchema = z\n .strictObject({\n defaultLocale: z.string().default(\"en\"),\n /** Locale rendered for a missing translation; `null` disables fallback. */\n fallbackLocale: z.string().nullable().optional(),\n /** Drop the URL prefix for the default locale (`/`, `/fr/…`). Static-safe. */\n hideDefaultLocalePrefix: z.boolean().default(true),\n locales: z.array(localeSchema).min(1),\n /** `\"dir\"`: locale directories (`fr/page.mdx`). `\"dot\"`: filename suffix (`page.fr.mdx`). */\n parser: z.enum([\"dir\", \"dot\"]).default(\"dir\"),\n /**\n * Send a visitor who lands on the default language's home page to the\n * home page in their browser's preferred language, until they pick a\n * language with the switcher. Off by default.\n */\n routeByBrowserLanguage: z.boolean().default(false),\n /** Per-locale UI string overrides: `{ fr: { search: { button: \"…\" } } }`. */\n ui: uiLocaleOverridesSchema.optional(),\n })\n .superRefine((value, ctx) => {\n const codes = new Set(value.locales.map((locale) => locale.code));\n if (!codes.has(value.defaultLocale)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `i18n.defaultLocale \"${value.defaultLocale}\" must match one of i18n.locales.`,\n path: [\"defaultLocale\"],\n });\n }\n if (\n value.fallbackLocale !== null &&\n value.fallbackLocale !== undefined &&\n !codes.has(value.fallbackLocale)\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `i18n.fallbackLocale \"${value.fallbackLocale}\" must match one of i18n.locales.`,\n path: [\"fallbackLocale\"],\n });\n }\n });\n\n/**\n * Version ids must start with a letter (`v1.0`, not `1.0`): the id doubles as\n * the snapshot directory name, and a leading digit would collide with the\n * numeric-prefix ordering convention (`01-intro.mdx`), which strips `1.0/` to\n * `0/`. The rest allows word characters, dots, and hyphens — URL-safe as-is.\n */\nexport const VERSION_ID = /^[A-Za-z][\\w.-]*$/u;\n\n/** A frozen documentation snapshot: a directory under the content root. */\nconst archivedVersionSchema = z.strictObject({\n /**\n * The \"you're viewing an old version\" notice: `true` for the built-in\n * message, a string for custom copy, `false` to hide it.\n */\n banner: z.union([z.boolean(), z.string()]).default(true),\n /**\n * Where this version's pages point their canonical URL: `latest` targets the\n * same page in the current docs when it still exists (self otherwise), so\n * search engines treat the live page as authoritative without deindexing\n * version-only content. `self` keeps every page authoritative.\n */\n canonical: z.enum([\"latest\", \"self\"]).default(\"latest\"),\n /** Directory name under the content root, and the URL segment. */\n id: z\n .string()\n .regex(\n VERSION_ID,\n 'Version ids must start with a letter (e.g. \"v1.0\") and contain only letters, digits, dots, hyphens, and underscores.'\n ),\n /** Switcher label; defaults to the id. */\n label: z.string().optional(),\n /** Emit `noindex` on every page of this version. */\n noindex: z.boolean().default(false),\n});\n\n/**\n * Docs versioning. Opt-in: the latest docs live at the content root with\n * unprefixed URLs, and each archived version is a frozen snapshot directory\n * (`content/docs/<id>/`) cut with `blume version <id>`. Archived means frozen:\n * snapshots carry their own translations and are never retranslated.\n */\nconst versionsConfigSchema = z\n .strictObject({\n /** Frozen snapshots, newest first — this order is the switcher order. */\n archived: z.array(archivedVersionSchema).default([]),\n /** Labels the unprefixed tree (the latest docs) in the switcher. */\n current: z.strictObject({\n /** Small tag rendered next to the label (e.g. `Latest`). */\n badge: z.string().optional(),\n label: z.string(),\n }),\n switcher: z\n .strictObject({\n /**\n * Where switching lands when the page has no equivalent in the target\n * version: `same-page` goes to the equivalent when it exists (version\n * root otherwise); `root` always goes to the version root.\n */\n redirect: z.enum([\"same-page\", \"root\"]).default(\"same-page\"),\n })\n .prefault({}),\n })\n .superRefine((value, ctx) => {\n const seen = new Set<string>();\n for (const [position, version] of value.archived.entries()) {\n if (seen.has(version.id)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `versions.archived declares \"${version.id}\" more than once.`,\n path: [\"archived\", position, \"id\"],\n });\n }\n seen.add(version.id);\n }\n });\n\nconst URL_ORIGIN = /^[a-z][\\d+.a-z-]*:\\/\\/[^/]*/iu;\n\n/**\n * The shape each end must start with: `from` is always a path on this site,\n * `to` may also leave it. A path without its leading slash would never gain\n * `basePath` or the deployment base, and hosts read it relative to nothing.\n */\nconst REDIRECT_START = {\n from: {\n allows: (path: string) => path.startsWith(\"/\"),\n message:\n \"redirects take root-relative paths: `from` must start with `/` (`/old-page`, not `old-page`).\",\n },\n to: {\n allows: (path: string) => path.startsWith(\"/\") || URL_ORIGIN.test(path),\n message:\n \"redirects take root-relative paths or full URLs: `to` must start with `/` (`/new-page`, not `new-page`) or be an absolute URL (`https://…`).\",\n },\n};\n\nconst redirectPath = (end: \"from\" | \"to\") =>\n z.string().refine(REDIRECT_START[end].allows, {\n message: REDIRECT_START[end].message,\n });\n\n/**\n * A redirect: an exact path, or a pattern (`/beta/:slug*`, `/old/*`) whose\n * captures `to` may read (see `core/redirect-patterns.ts`).\n */\nconst redirectSchema = z\n .strictObject({\n from: redirectPath(\"from\"),\n status: z\n .union([z.literal(301), z.literal(302), z.literal(307), z.literal(308)])\n .default(301),\n to: redirectPath(\"to\"),\n })\n .superRefine((redirect, ctx) => {\n const error = redirectPatternError(redirect.from, redirect.to);\n if (error) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: error.message,\n path: [error.end],\n });\n }\n });\n\n/**\n * One authorized remote image source, passed through to Astro's\n * `image.remotePatterns`. Wildcards follow Astro's rules: `hostname` accepts\n * `**.example.com` (any depth) or `*.example.com` (one level), `pathname`\n * accepts `/dir/**` or `/dir/*` the same way.\n */\nconst imageRemotePatternSchema = z.strictObject({\n hostname: z.string().optional(),\n pathname: z.string().optional(),\n port: z.string().optional(),\n protocol: z.string().optional(),\n});\n\n/**\n * Image optimization (`image`). Local images referenced by relative path\n * (``) are optimized at build time automatically —\n * compressed, converted to WebP, and stamped with intrinsic dimensions.\n * Remote images are only optimized when their host is authorized here;\n * both fields map directly onto Astro's `image` config.\n */\nconst imageConfigSchema = z.strictObject({\n /** Hosts whose remote images may be optimized, e.g. `[\"cdn.example.com\"]`. */\n domains: z.array(z.string()).default([]),\n /** Pattern-based host authorization, for wildcards `domains` can't express. */\n remotePatterns: z.array(imageRemotePatternSchema).default([]),\n});\n\n/**\n * X (Twitter) attribution. The account fields feed `twitter:site` (the site's\n * account) and `twitter:creator` (the author's), which is the one piece of X\n * card metadata with no Open Graph equivalent to fall back to — everything else\n * on the card is read from `og:*`.\n */\nconst xConfigSchema = z.strictObject({\n /** The author's account, overridable per page via `seo.x.creator`. */\n creator: xHandleSchema,\n /** The site's own account, e.g. `@blume`. */\n handle: xHandleSchema,\n});\n\n/**\n * Any CSS color. Takumi parses the full grammar, so this stays unvalidated\n * here and a bad value fails the OG prerender with a parse error naming it —\n * the same fail-fast the card's accent relies on. Validating hex-only here\n * would reject `oklch(…)`, which `theme.accent` (the card's default accent)\n * already accepts.\n */\nconst ogColorSchema = z.string();\n\nconst ogPaletteSchema = z.strictObject({\n accent: ogColorSchema.optional(),\n background: ogColorSchema.optional(),\n border: ogColorSchema.optional(),\n foreground: ogColorSchema.optional(),\n muted: ogColorSchema.optional(),\n});\n\n/**\n * A font to load into the OG card renderer. A bare string is a Google Fonts\n * family name; the name-only object form pins the weight (a number, a list, or\n * a variable range like `\"100..900\"`) and style, fetched from Google Fonts at\n * build. The `src` form reads a local font file from the project instead.\n * Either way Takumi does per-glyph fallback, so a family covering a script\n * (e.g. Noto Sans JP for CJK) fixes tofu without touching how Latin renders.\n */\nconst ogFontWeightSchema = z.union([\n z.number().int().positive(),\n z.array(z.number().int().positive()),\n z.string().regex(/^\\d+\\.\\.\\d+$/u),\n]);\nconst ogFontStyleSchema = z.enum([\"normal\", \"italic\"]);\nconst ogFontSchema = z.union([\n z.string(),\n z.strictObject({\n name: z.string(),\n style: z.union([ogFontStyleSchema, z.array(ogFontStyleSchema)]).optional(),\n weight: ogFontWeightSchema.optional(),\n }),\n /** A local font file, read from the project at build. */\n z.strictObject({\n name: z.string(),\n src: z.string().min(1),\n style: ogFontStyleSchema.optional(),\n weight: z.number().int().positive().optional(),\n }),\n]);\n\nconst ogConfigSchema = z.strictObject({\n /**\n * Site-wide card subtitle, shown on pages without their own description.\n * Defaults to the site description; a string overrides it, `false` renders\n * every card without a subtitle (page descriptions included).\n */\n description: z.union([z.string(), z.literal(false)]).optional(),\n /**\n * Generate a per-page Open Graph image. Defaults to on once a deployment\n * site URL is known (set or auto-detected) and off otherwise, since\n * `og:image` must be absolute to be useful to crawlers — resolved in\n * `loadConfig`. An explicit value here always wins.\n */\n enabled: z.boolean().optional(),\n /**\n * Fonts for the generated card, replacing the default stack (Takumi's\n * Latin-only built-in font plus a Noto fallback per script). Google\n * families are fetched from Google Fonts at build.\n */\n fonts: z.array(ogFontSchema).optional(),\n /**\n * Local SVG used in the generated card instead of the site logo; `false`\n * renders the card without any brand mark.\n */\n logo: z.union([z.string(), z.literal(false)]).optional(),\n /** Optional generated-card colors. */\n palette: ogPaletteSchema.optional(),\n /**\n * Footer site text. Defaults to the deployment site's host plus\n * `deployment.base` (`docs.acme.com`, `user.github.io/repo`); a string\n * overrides it, `false` hides it.\n */\n site: z.union([z.string(), z.literal(false)]).optional(),\n /**\n * Card headlines for custom `.astro` pages, keyed by route (`\"/\"`, `\"/cli\"`).\n * A custom page has no frontmatter to read, so its card is otherwise titled\n * by humanizing its last URL segment (`/cli` → \"Cli\"); an entry here wins.\n * Content pages always take their card headline from the page title.\n */\n titles: z.record(z.string(), z.string()).optional(),\n});\n\nconst rssConfigSchema = z.strictObject({\n enabled: z.boolean().default(true),\n /** Max items per feed, newest first. */\n limit: z.number().int().positive().default(50),\n /** Content types that each get a feed at `/<type>/rss.xml`. */\n types: z.array(z.string()).default([\"blog\", \"changelog\"]),\n});\n\n/**\n * robots.txt `Content-Signal` preferences — the emerging content-usage\n * declaration for how crawlers may reuse the site. Each field maps to one\n * signal:\n * - `search` → `search` (traditional and AI search indexing)\n * - `aiInput` → `ai-input` (grounding / RAG use at answer time)\n * - `aiTrain` → `ai-train` (model training)\n */\nconst contentSignalsObjectSchema = z.strictObject({\n aiInput: z.boolean().default(true),\n aiTrain: z.boolean().default(true),\n search: z.boolean().default(true),\n});\n\n/**\n * Content signals accept a boolean shorthand or a per-signal object, and\n * normalize to `{ search, aiInput, aiTrain }` — or `null` when disabled, so\n * robots.txt omits the declaration entirely. On by default (`true`): Blume\n * declares the docs open to search and agents. `false` opts out; an object\n * restricts individual signals (unset signals stay `yes`).\n */\nconst contentSignalsSchema = z\n .union([z.boolean(), contentSignalsObjectSchema])\n .transform((value) => {\n if (value === true) {\n return contentSignalsObjectSchema.parse({});\n }\n if (value === false) {\n return null;\n }\n return value;\n });\n\n/** A schema.org `PostalAddress`, any part of which may be given. */\nconst postalAddressSchema = z.strictObject({\n addressCountry: z.string().optional(),\n addressLocality: z.string().optional(),\n addressRegion: z.string().optional(),\n postalCode: z.string().optional(),\n streetAddress: z.string().optional(),\n});\n\n/**\n * `seo.organization`: the organization behind the site, emitted on every page\n * as a schema.org `Organization` node (see `seo/jsonld.ts`). Name and URL\n * default to the site's; contact details become a `ContactPoint`, the address\n * a `PostalAddress` — what agents check to verify a business.\n */\nconst organizationConfigSchema = z.strictObject({\n address: postalAddressSchema.optional(),\n contactType: z.string().default(\"customer support\"),\n email: z.email().optional(),\n logo: z.string().optional(),\n name: z.string().optional(),\n sameAs: z.array(z.url()).default([]),\n telephone: z.string().optional(),\n url: z.url().optional(),\n});\n\n/**\n * `seo.software`: the product the site documents, emitted on the homepage as\n * a schema.org `SoftwareApplication` node. `true` takes every default (name\n * and description from the site, category `DeveloperApplication`).\n */\nconst softwareConfigSchema = z.strictObject({\n applicationCategory: z.string().default(\"DeveloperApplication\"),\n description: z.string().optional(),\n license: z.string().optional(),\n name: z.string().optional(),\n operatingSystem: z.string().optional(),\n price: z.union([z.number().nonnegative(), z.string()]).optional(),\n priceCurrency: z.string().default(\"USD\"),\n sameAs: z.array(z.url()).default([]),\n});\n\ntype SoftwareResolved = z.output<typeof softwareConfigSchema>;\n\n/** Discoverability features: OG images, feeds, sitemap, structured data. */\nconst seoConfigFields = {\n /**\n * Meta tags written into every page's head, name to content: site\n * verification, `theme-color`, and anything else Blume has no setting for.\n * A tag Blume writes itself is refused with the setting that controls it.\n */\n metatags: z\n .record(z.string().min(1), z.string())\n .optional()\n .superRefine((tags, ctx) => {\n for (const name of Object.keys(tags ?? {})) {\n const owner = ownedMetatag(name);\n if (owner) {\n ctx.addIssue({\n code: \"custom\",\n message: `seo.metatags can't set \"${name}\": Blume writes that tag. Set it with ${owner}.`,\n path: [name],\n });\n }\n }\n }),\n og: ogConfigSchema.default({}),\n /** The organization behind the site, as an `Organization` JSON-LD node. */\n organization: organizationConfigSchema.optional(),\n /** Generate robots.txt (with a Sitemap reference when available). */\n robots: z.boolean().default(true),\n rss: rssConfigSchema.prefault({}),\n /** Generate sitemap.xml (requires deployment.site). */\n sitemap: z.boolean().default(true),\n /** The documented product, as a homepage `SoftwareApplication` node. */\n software: z\n .union([z.boolean(), softwareConfigSchema])\n .optional()\n .transform((value): SoftwareResolved | undefined => {\n if (value === true) {\n return softwareConfigSchema.parse({});\n }\n return value === false ? undefined : value;\n }),\n /** Emit schema.org JSON-LD in each page's <head>. */\n structuredData: z.boolean().default(true),\n /** X (Twitter) account attribution for share cards. */\n x: xConfigSchema.default({}),\n};\n\nconst seoConfigSchema = z.strictObject(\n seoConfigFields,\n removedKeysHint({\n agentReadability: \"seo.agentReadability moved to agents.agentReadability.\",\n contentSignals: \"seo.contentSignals moved to agents.contentSignals.\",\n })\n);\n\n/**\n * The machine-readable surface agents consume: the JSON API, `llms.txt`, the\n * MCP server, published skills, discovery manifests, and the robots.txt\n * usage policy. Everything reader-facing that talks to a model (the assistant, Open\n * in chat) stays under `ai`.\n */\nconst agentsConfigSchema = z.strictObject({\n /**\n * Emit `agent-readability.json` at the site root: a manifest that indexes\n * the agent-facing surface (llms.txt, Markdown mirrors, MCP server, feeds)\n * so agents can discover it without scraping HTML.\n */\n agentReadability: z.boolean().default(true),\n /**\n * The JSON docs API: the page index, per-page JSON, and navigation under\n * `/api/docs/` (prerendered, so a static site serves them from files), the\n * live search endpoint on server output, and the OpenAPI description of\n * the whole machine-readable surface at `/openapi.json`. On by default.\n */\n api: z.boolean().default(true),\n /**\n * The AI Catalog / ARD manifest at `/.well-known/ai-catalog.json` (mirrored\n * at `/.well-known/ard.json`): one entry per agent-facing resource the site\n * publishes — the MCP server card, each agent skill, the JSON docs API's\n * OpenAPI document, each rendered API reference, and llms.txt — so agent\n * registries can index the site from its domain alone. Needs a\n * `deployment.site` (identifiers are domain-anchored URNs). On by default;\n * the object form overrides the generated representative queries.\n */\n catalog: z\n .union([z.boolean(), aiCatalogObjectSchema])\n .default(true)\n .transform((value): AiCatalogResolved =>\n isBoolean(value) ? { enabled: value, queries: {} } : value\n ),\n /** robots.txt `Content-Signal` usage declaration (on by default). */\n contentSignals: contentSignalsSchema.prefault(true),\n /**\n * `llms.txt`/`llms-full.txt` emission. A bare boolean toggles it; the object\n * form adds `openapi: false` to keep generated API reference pages out of\n * both files (e.g. when the configured spec is example content) and\n * `details`, free-form Markdown placed after the summary — the llms.txt\n * spec's details block, where a site tells agents when to reach for it.\n */\n llmsTxt: z\n .union([z.boolean(), llmsTxtObjectSchema])\n .default(true)\n .transform((value): LlmsTxtResolved =>\n isBoolean(value) ? { enabled: value, openapi: true } : value\n ),\n // Serializers for the agent-facing Markdown downlevel (the `.md` mirror,\n // llms-full.txt, MCP get_page), keyed by JSX name. Functions live here —\n // not in components.tsx — because the config file is executed at build\n // time while the components file is only statically analyzed. A same-name\n // entry replaces the built-in serializer.\n // Two-argument `z.record` — the single-argument form throws at\n // schema-construction time under Zod 4 (see uiStringsOverrideSchema).\n markdownComponents: z\n .record(\n z.string(),\n z.custom<ComponentMarkdown>(\n (value): value is ComponentMarkdown => typeof value === \"function\",\n {\n message: \"Expected a serializer function.\",\n }\n )\n )\n .default({}),\n /** Expose the docs as an MCP server for connecting agents. */\n mcp: mcpConfigSchema.prefault({}),\n /**\n * Generate the site's own agent skill: a `SKILL.md` named after the site,\n * built from its navigation, page descriptions, and agent surfaces, served\n * at `/skill.md` and in the skills discovery index. Needs a\n * `deployment.site`. A skill in `agents.skills` with the same name replaces\n * it. On by default.\n */\n skillMd: z.boolean().default(true),\n /**\n * Publish Agent Skills for discovery: a directory (resolved against the\n * project root) whose subdirectories each hold a `SKILL.md`. The build\n * copies each skill under `/.well-known/agent-skills/` — a lone `SKILL.md`\n * verbatim, a skill with supporting files as a `.tar.gz` — and emits the\n * discovery index (`index.json`) with SHA-256 digests per the Agent Skills\n * Discovery RFC.\n */\n skills: z.string().min(1).optional(),\n /**\n * Web Bot Auth (IETF `webbotauth`): publish the org's HTTP Message\n * Signature public keys at `/.well-known/http-message-signatures-directory`\n * so sites receiving requests from the org's agents can verify them.\n * Opt-in and public-keys-only — the private keys live wherever the signing\n * agents run, never in the site.\n */\n webBotAuth: z\n .strictObject({\n keys: z.array(publicJwkSchema).default([]),\n })\n .prefault({}),\n /**\n * WebMCP: register in-page tools (search, page Markdown, the docs index)\n * on the browser's model context so agentic browsers can drive the docs\n * without a separate MCP connection. A tiny script that no-ops in browsers\n * without the API; on by default.\n */\n webmcp: z.boolean().default(true),\n});\n\n/**\n * The GitHub instance's origin, normalized. Repo, edit, and API URLs are all\n * built by appending to this, so it is reduced to a bare origin: a trailing\n * slash would double the separator, and a path, query, fragment, or embedded\n * credentials would land in the middle of every generated link.\n */\nconst githubOriginSchema = httpUrlSchema.transform(\n (value) => new URL(value).origin\n);\n\n/**\n * A REST API base: an origin plus an optional path, since Enterprise Server\n * serves the API from `/api/v3`. Anything past the path is dropped for the same\n * reason the host is reduced — `/repos/{owner}/{repo}` is appended as a string,\n * so a query would swallow the route and a fragment would strip it from the\n * request entirely, leaving a lookup that silently returns the wrong thing.\n */\nconst githubApiSchema = httpUrlSchema.transform((value) => {\n const { origin, pathname } = new URL(value);\n return trimEnd(`${origin}${pathname}`, \"/\");\n});\n\nconst githubConfigSchema = z.strictObject({\n /** REST API base. Derived from `host` when unset. */\n api: githubApiSchema.optional(),\n branch: z.string().default(\"main\"),\n /** Path from the repo root to the project root (for monorepos). */\n dir: z.string().optional(),\n /** Origin of the GitHub instance, for Enterprise installations. */\n host: githubOriginSchema.default(PUBLIC_HOST_URL),\n owner: z.string(),\n repo: z.string(),\n});\n\n/** The theme fields the structural code-theme check inspects. */\ninterface CodeThemeFields {\n colors?: unknown;\n settings?: unknown;\n tokenColors?: unknown;\n}\n\n/** A non-null, non-array object — the floor for a theme and its `colors` map. */\nconst isThemeObject = <Value>(value: Value): value is Value & CodeThemeFields =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst codeThemeSchema = z.custom<CodeTheme>((value) => {\n if (isString(value)) {\n return true;\n }\n if (!isThemeObject(value)) {\n return false;\n }\n // Token rules live in `settings` (Shiki's canonical field, also the TextMate\n // form themes like createCssVariablesTheme() produce) or `tokenColors` (the\n // VS Code spelling Shiki falls back to). A colors-only theme (editor fg/bg,\n // no token rules) is also valid — Shiki renders it from `colors` alone. Each\n // field present must have the right shape, and at least one must be present.\n const settingsValid =\n value.settings === undefined || Array.isArray(value.settings);\n const tokenColorsValid =\n value.tokenColors === undefined || Array.isArray(value.tokenColors);\n const colorsValid = value.colors === undefined || isThemeObject(value.colors);\n const hasContent =\n value.settings !== undefined ||\n value.tokenColors !== undefined ||\n value.colors !== undefined;\n return settingsValid && tokenColorsValid && colorsValid && hasContent;\n}, \"Expected a Shiki theme name or custom theme object\");\n\nconst codeBlockThemeSchema = z.strictObject({\n dark: codeThemeSchema.default(\"github-dark\"),\n light: codeThemeSchema.default(\"github-light\"),\n});\n\n/**\n * `<Component />` example previews. A string is shorthand for `{ source }`:\n * where examples live, relative to the project root (default `examples`).\n * `source` may be a glob (anything with `*`/`?`/`[]`/`{}`/`!`), in which case\n * only matching files are discovered and each `<Component path>` key is\n * relative to the glob's static prefix — use this for a registry layout that\n * colocates component sources with their examples\n * (`registry/<pkg>/**\\/examples/*`), leaving the sources (which have no\n * default export to wrap) out.\n *\n * `css` names a stylesheet (relative to the project root) injected into every\n * preview frame after Blume's default tokens. Previews render in an isolated\n * iframe that the site's docs styles never reach, so this is where design\n * tokens for the previewed components live — e.g. shadcn variables and\n * `@theme` mappings. Tailwind itself is already provided; the file should\n * hold tokens and custom styles, not another `@import \"tailwindcss\"`.\n */\nconst examplesConfigSchema = z\n .union([\n z.string(),\n z.strictObject({\n css: z.string().optional(),\n source: z.string().default(\"examples\"),\n }),\n ])\n .transform((value): { css?: string; source: string } =>\n isString(value) ? { source: value } : value\n );\n\n/**\n * \"Last updated\" timestamps for content pages. `false` (default) disables the\n * feature; `\"git\"` derives each page's date from the repository history;\n * `\"frontmatter\"` never runs git and reads only the page's own field. A page's\n * `lastModified` frontmatter always wins. The 1.x `true` and `{ type }` forms\n * fail with the hint below.\n */\nconst lastModifiedConfigSchema = z.union(\n [z.literal(false), z.enum([\"git\", \"frontmatter\"])],\n {\n error: (issue) =>\n issue.code === \"invalid_union\"\n ? 'lastModified takes false, \"git\", or \"frontmatter\": `true` became \"git\" and `{ type: \"…\" }` became the bare string.'\n : undefined,\n }\n);\n\n/**\n * How the \"last updated\" stamp and the changelog timeline render their dates —\n * a curated pass-through to `Intl.DateTimeFormat`, shared by both surfaces so\n * they read alike. Defaults to `{ dateStyle: \"long\" }`. Both stamps format in\n * UTC unless a `timeZone` is given, so a date reads the same regardless of the\n * build machine's zone. `dateStyle` is a preset that can't be combined with the\n * individual component fields (`year`, `month`, …), matching `Intl`'s own rule.\n */\n/** The `dateFormat` fields that choose the date's shape (length, components). */\nconst DATE_FORM_FIELDS = [\n \"dateStyle\",\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n] as const;\n\n/**\n * Whether `Intl` knows a time zone. An unknown one (`Asia/Tokio`) throws a\n * RangeError the first time a date is formatted, deep in a page render, so it\n * is caught here where the error can point at `dateFormat.timeZone`.\n */\nconst isKnownTimeZone = (timeZone: string): boolean => {\n try {\n Intl.DateTimeFormat(\"en\", { timeZone });\n return true;\n } catch {\n return false;\n }\n};\n\nconst dateFormatConfigSchema = z\n .strictObject({\n /** Calendar system (e.g. `japanese`, `buddhist`). */\n calendar: z.string().optional(),\n /** Preset date length; mutually exclusive with the component fields. */\n dateStyle: z.enum([\"full\", \"long\", \"medium\", \"short\"]).optional(),\n /** Day representation. */\n day: z.enum([\"numeric\", \"2-digit\"]).optional(),\n /** Era representation (e.g. the Japanese imperial era). */\n era: z.enum([\"long\", \"short\", \"narrow\"]).optional(),\n /** Month representation. */\n month: z.enum([\"numeric\", \"2-digit\", \"long\", \"short\", \"narrow\"]).optional(),\n /** Numbering system (e.g. `latn`, `arab`). */\n numberingSystem: z.string().optional(),\n /** IANA time zone (e.g. `Asia/Tokyo`). Defaults to `UTC`. */\n timeZone: z\n .string()\n .refine(isKnownTimeZone, {\n message:\n 'Unknown time zone; use an IANA name like \"Asia/Tokyo\" or \"UTC\".',\n })\n .optional(),\n /** Weekday representation. */\n weekday: z.enum([\"long\", \"short\", \"narrow\"]).optional(),\n /** Year representation. */\n year: z.enum([\"numeric\", \"2-digit\"]).optional(),\n })\n .refine(\n (value) =>\n value.dateStyle === undefined ||\n (value.weekday === undefined &&\n value.era === undefined &&\n value.year === undefined &&\n value.month === undefined &&\n value.day === undefined),\n {\n message:\n \"dateFormat.dateStyle can't be combined with weekday/era/year/month/day; use one or the other.\",\n }\n )\n // `timeZone`, `calendar`, and `numberingSystem` don't pick a shape, so a\n // format that sets only those keeps the long default instead of falling to\n // Intl's bare numeric date (`7/21/2026`).\n .transform((value) =>\n DATE_FORM_FIELDS.some((field) => value[field] !== undefined)\n ? value\n : { ...value, dateStyle: \"long\" as const }\n );\n\n/** Code rendering options (`markdown.code`). */\nconst codeConfigSchema = z.strictObject({\n /**\n * Show a brand language icon in the code-block header (TypeScript, Python,\n * …). On by default; recognized languages only.\n */\n icons: z.boolean().default(true),\n /**\n * Light/dark Shiki themes for every code surface: fenced blocks, inline\n * `` `code`{:lang} ``, `<CodeBlock>`, and `<Diff>`.\n */\n theme: codeBlockThemeSchema.prefault({}),\n /**\n * Wrap long lines instead of scrolling horizontally. Off by default, so\n * code keeps its original line breaks and overflows into a scroll area.\n */\n wrap: z.boolean().default(false),\n});\n\nconst markdownConfigFields = {\n /** Code rendering: language icons, syntax themes, and line wrapping. */\n code: codeConfigSchema.prefault({}),\n /**\n * Open external Markdown links (absolute `http(s)://` and `//host` URLs) in\n * a new tab, like Blume's own header and sidebar links: `target=\"_blank\"`,\n * `rel=\"noreferrer\"`, an arrow icon, and a screen-reader \"Opens in a new\n * tab\" hint. Off by default; site routes, fragments, and `mailto:`/`tel:`\n * links are never affected.\n */\n externalLinks: z.boolean().default(false),\n /**\n * Wrap each `##`–`######` heading in a link to its own anchor so readers can\n * click to copy, bookmark, or share a permalink to that section. On by\n * default; set to `false` to render plain headings.\n */\n headingAnchors: z.boolean().default(true),\n /**\n * Make content images click-to-zoom (open in a lightbox). On by default;\n * opt a single image out with `data-no-zoom`.\n */\n imageZoom: z.boolean().default(true),\n};\n\nconst markdownConfigSchema = z.strictObject(\n markdownConfigFields,\n removedKeysHint({\n codeBlocks:\n \"markdown.codeBlocks was merged into markdown.code: move theme: { light, dark } under markdown.code.\",\n })\n);\n\n/** React island behavior (`react`). */\nconst reactConfigSchema = z.strictObject({\n /**\n * Auto-memoize React components/hooks with the React Compiler\n * (`oxc-transform-react`). On by default whenever React is enabled\n * (a project `.tsx`/`.jsx`, a React island/example/override, or the assistant); set\n * to `false` to skip the compiler pass.\n */\n compiler: z.boolean().default(true),\n});\n\n/**\n * Opt-in custom frontmatter keys. `extend` maps each extra key a project's\n * pages may carry (e.g. `owner`, `reviewedAt`) to a validation schema; the\n * page schema stays strict for everything else, so typo-catching is preserved.\n * Schemas are consumed through the Standard Schema `~standard` contract —\n * never Zod's own API — so the consumer's zod (any version), Valibot, or\n * ArkType all work (see `standard-schema.ts`). Every declared key is validated\n * on every page, absent ones included, so a required schema enforces the key\n * site-wide; mark it `.optional()` to validate only when present. Built-in\n * frontmatter fields can't be redeclared — they're load-bearing (routing,\n * sidebar, SEO), and shadowing one would silently change its semantics.\n */\nconst frontmatterConfigSchema = z.strictObject({\n extend: customKeySchemaRecord(\"frontmatter.extend\"),\n});\n\n/** Full user-facing config schema. All fields optional with defaults. */\n/**\n * Table-of-contents config. `true`/`false` toggles it; an object narrows the\n * heading range. Normalized to `{ enabled, minLevel, maxLevel }` (default: on,\n * H2–H3, matching the historical hardcoded range).\n */\nconst tocConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n maxHeadingLevel: z.number().int().min(1).max(6).optional(),\n minHeadingLevel: z.number().int().min(1).max(6).optional(),\n }),\n ])\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return { enabled: value, maxLevel: 3, minLevel: 2 };\n }\n return {\n enabled: true,\n maxLevel: value.maxHeadingLevel ?? 3,\n minLevel: value.minHeadingLevel ?? 2,\n };\n })\n // Checked after defaults apply, so `{ minHeadingLevel: 5 }` (default max 3)\n // is caught too — an inverted range would silently render an empty TOC.\n .refine((value) => value.minLevel <= value.maxLevel, {\n message:\n \"toc.minHeadingLevel must be less than or equal to toc.maxHeadingLevel.\",\n });\n\nexport const blumeConfigSchema = z\n .strictObject(\n {\n agents: agentsConfigSchema.prefault({}),\n ai: aiConfigSchema.prefault({}),\n // Adapters from `blume/analytics`, each a serializable descriptor.\n analytics: analyticsConfigSchema,\n api: apiConfigSchema.prefault({}),\n banner: bannerConfigSchema.optional(),\n /**\n * Site-wide mount point prepended to every generated route (e.g. `/docs`),\n * while staying invisible to the sidebar/nav tree. Distinct from a per-source\n * `prefix` (which creates a group) and from `deployment.base` (Astro's\n * host-subdirectory base); the two compose. Normalized to `\"\"` or `/seg`.\n */\n basePath: z\n .string()\n // Normalizing would turn a URL into `/https:/docs.example.com/docs`\n // and keep a query or fragment inside every route.\n .refine((value) => !URL_ORIGIN.test(value) && !/[#?]/u.test(value), {\n message:\n 'basePath takes a path like \"/docs\", not a URL: no scheme, host, query, or fragment. The site\\'s origin goes in deployment.site.',\n })\n .optional()\n .transform((value) => normalizeBasePath(value)),\n changelog: changelogConfigSchema.optional(),\n // An adapter from `blume/consent`; analytics waits for the reader.\n consent: consentConfigSchema,\n content: contentConfigSchema.prefault({}),\n /**\n * Date presentation for the \"last updated\" stamp and the changelog timeline.\n * Pass-through `Intl.DateTimeFormat` options; defaults to `{ dateStyle: \"long\" }`.\n */\n dateFormat: dateFormatConfigSchema.default({ dateStyle: \"long\" }),\n /**\n * A host adapter from `blume/deploy` (`vercel()`, `netlify()`,\n * `cloudflare()`, `node()`) for a server build on that host, or the plain\n * `{ site, base }` form for a static build anywhere. Resolves to the\n * adapter's descriptor with `output` filled in; `static` when unset.\n */\n deployment: resolvedDeploymentSchema.prefault({}),\n description: z.string().optional(),\n /**\n * Where `<Component path>` resolves live previews and their source from.\n * A string is shorthand for `{ source }` — the directory (or glob, for\n * colocated registry layouts) under the project root that holds example\n * files. The object form adds `css`: a stylesheet injected into every\n * preview frame (design tokens, shadcn variables, `@theme` mappings).\n */\n examples: examplesConfigSchema.prefault(\"examples\"),\n export: exportConfigSchema.prefault(false),\n feedback: feedbackConfigSchema.prefault(true),\n footer: footerConfigSchema.optional(),\n /** Opt-in custom frontmatter keys, validated by user-supplied schemas. */\n frontmatter: frontmatterConfigSchema.prefault({}),\n github: githubConfigSchema.optional(),\n i18n: i18nConfigSchema.optional(),\n image: imageConfigSchema.prefault({}),\n integrations: z.array(z.custom<AstroIntegration>()).default([]),\n lastModified: lastModifiedConfigSchema.default(false),\n logo: logoConfigSchema.optional(),\n markdown: markdownConfigSchema.prefault({}),\n narration: narrationConfigSchema.prefault(false),\n navigation: navigationConfigSchema.prefault({}),\n poweredBy: z.boolean().default(true),\n // An adapter from `blume/ratelimit`, `memory()` by default; `false` is off.\n rateLimit: rateLimitConfigSchema,\n react: reactConfigSchema.prefault({}),\n redirects: z.array(redirectSchema).default([]),\n /** API references: adapters from `blume/reference`, each a serializable descriptor. */\n reference: referenceConfigSchema,\n search: searchConfigSchema.prefault({}),\n seo: seoConfigSchema.prefault({}),\n theme: themeConfigSchema.prefault({}),\n title: z.string().default(\"Documentation\"),\n toc: tocConfigSchema,\n /**\n * Content variables: `{{name}}` in a page body reads the value (see\n * `core/variables.ts`). Names take letters, digits, `_`, and `-`;\n * values are one line, so a substitution never moves the lines a\n * diagnostic points at.\n */\n variables: z\n .record(\n z.string().regex(VARIABLE_NAME, {\n message:\n \"Variable names take letters, digits, `_`, and `-`, like `version` or `api-url`.\",\n }),\n z.string().refine((value) => !/[\\r\\n]/u.test(value), {\n message: \"A variable's value must fit on one line.\",\n })\n )\n .default({}),\n versions: versionsConfigSchema.optional(),\n },\n {\n // The 1.x `openapi`/`asyncapi`/`graphql` blocks name the `reference` list\n // that replaced them, alongside every other issue in the config.\n error: (issue) =>\n issue.code === \"unrecognized_keys\"\n ? removedReferenceKeysHint(issue.keys)\n : undefined,\n }\n )\n .superRefine((config, ctx) => {\n // A version id that is also a configured locale code would make a leading\n // `<id>/` directory ambiguous between the two axes — refuse it outright so\n // detection order (version first, then locale) never has to guess.\n if (config.versions && config.i18n) {\n const localeCodes = new Set(\n config.i18n.locales.map((locale) => locale.code.toLowerCase())\n );\n for (const [position, version] of config.versions.archived.entries()) {\n if (localeCodes.has(version.id.toLowerCase())) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Version id \"${version.id}\" is also a configured locale code — rename the version (e.g. \"v${version.id}\").`,\n path: [\"versions\", \"archived\", position, \"id\"],\n });\n }\n }\n }\n // A custom key is declared site-wide (`frontmatter.extend`) or per-type\n // (`content.types`), never both — two schemas for one key would make\n // precedence on pages of that type ambiguous.\n for (const [typeName, typeConfig] of Object.entries(config.content.types)) {\n for (const key of Object.keys(typeConfig.frontmatter)) {\n if (Object.hasOwn(config.frontmatter.extend, key)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `\"${key}\" is already declared in frontmatter.extend and cannot be redeclared for type \"${typeName}\".`,\n path: [\"content\", \"types\", typeName, \"frontmatter\", key],\n });\n }\n }\n // A facet with no declared key could never carry a value — pages can't\n // even set the key — so it's a config mistake, caught here where both\n // the per-type map and the site-wide extend are visible.\n for (const [position, facet] of typeConfig.facets.entries()) {\n if (\n !(\n Object.hasOwn(typeConfig.frontmatter, facet) ||\n Object.hasOwn(config.frontmatter.extend, facet)\n )\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Facet \"${facet}\" for type \"${typeName}\" is not a declared custom frontmatter key — add it to the type's frontmatter map or frontmatter.extend.`,\n path: [\"content\", \"types\", typeName, \"facets\", position],\n });\n }\n }\n }\n // Cloudflare's rate limiting is a Worker binding, which only a Cloudflare\n // deployment has.\n if (\n config.rateLimit?.kind === \"cloudflare\" &&\n config.deployment.kind !== \"cloudflare\"\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'rateLimit: cloudflare() counts with a Workers binding, so it needs `deployment: cloudflare()` from \"blume/deploy\". On another host, use upstash(), unkey(), or memory() from \"blume/ratelimit\".',\n path: [\"rateLimit\"],\n });\n }\n });\n\n/** Resolved config: every field present after defaults are applied. */\nexport type ResolvedConfig = z.infer<typeof blumeConfigSchema>;\n/** Resolved `dateFormat`: the `Intl.DateTimeFormat` options both date stamps share. */\nexport type ResolvedDateFormat = z.infer<typeof dateFormatConfigSchema>;\n/** Resolved `frontmatter.extend`: custom key → user-supplied schema. */\nexport type FrontmatterExtend = Record<string, StandardSchema>;\n/** Resolved i18n block (present only when the project opts into i18n). */\nexport type ResolvedI18nConfig = z.infer<typeof i18nConfigSchema>;\n/** A configured locale with display metadata. */\nexport type LocaleConfig = z.infer<typeof localeSchema>;\n/** Resolved versions block (present only when the project opts into versioning). */\nexport type ResolvedVersionsConfig = z.infer<typeof versionsConfigSchema>;\n/** A configured archived (frozen) version. */\nexport type ArchivedVersionConfig = z.infer<typeof archivedVersionSchema>;\n/**\n * User-authored config, straight off the schema. The public, hand-documented\n * authoring type is `BlumeConfig` in `./config-input.ts`, which a compile-time\n * guard keeps structurally identical to this.\n */\nexport type BlumeConfigInput = z.input<typeof blumeConfigSchema>;\n/** The resolved search backend: an adapter descriptor, or `none`. */\nexport type { ResolvedSearchAdapter } from \"../search/adapters/registry.ts\";\n/** Resolved robots.txt `Content-Signal` preferences (`null` when disabled). */\nexport type ContentSignals = z.infer<typeof contentSignalsSchema>;\n/** The resolved per-signal policy object (present when signals are enabled). */\nexport type ContentSignalPolicy = NonNullable<ContentSignals>;\n",
|
|
96
|
+
"import type { AstroIntegration } from \"astro\";\nimport { z } from \"zod\";\n\nimport {\n assistantAdapterSchema,\n assistantMovedFieldsHint,\n DEFAULT_ASSISTANT_PROVIDER,\n} from \"../ai/ask.ts\";\nimport type { ComponentMarkdown } from \"../ai/component-markdown.ts\";\nimport { analyticsConfigSchema } from \"../analytics/schema.ts\";\nimport { captchaAdapterSchema } from \"../captcha/schema.ts\";\nimport {\n API_ENDPOINT,\n AUTH_METHODS,\n PLAYGROUND_MODES,\n} from \"../components/content/api-page.ts\";\nimport { consentConfigSchema } from \"../consent/schema.ts\";\nimport { resolvedDeploymentSchema } from \"../deploy/adapters/registry.ts\";\nimport type { CodeTheme } from \"../markdown/themes.ts\";\nimport { narrationProviderSchema } from \"../narration/provider.ts\";\nimport { normalizeRoute } from \"../openapi/references.ts\";\nimport { rateLimitConfigSchema } from \"../ratelimit/schema.ts\";\nimport { playgroundSchema } from \"../reference/options.ts\";\nimport {\n referenceConfigSchema,\n removedReferenceKeysHint,\n} from \"../reference/schema.ts\";\nimport { orama } from \"../search/adapters/orama.ts\";\nimport {\n NONE_SEARCH_ADAPTER,\n resolvedSearchAdapterSchema,\n} from \"../search/adapters/registry.ts\";\nimport type { SearchAdapterInput } from \"../search/adapters/registry.ts\";\nimport { ownedMetatag } from \"../seo/metatags.ts\";\nimport { normalizeXHandle } from \"../seo/x-handle.ts\";\nimport { filesystem } from \"../sources/filesystem.ts\";\nimport {\n contentSourcesSchema,\n resolvedSourceAdapterSchema,\n} from \"../sources/registry.ts\";\nimport { FONT_SLUGS, isFontSlug } from \"../theme/fonts.ts\";\nimport { isExternalUrl, normalizeBasePath } from \"./base-path.ts\";\nimport { FOOTER_SOCIALS } from \"./footer.ts\";\nimport { PUBLIC_HOST_URL } from \"./github.ts\";\nimport { uiLocaleOverridesSchema } from \"./i18n-ui.ts\";\nimport { isBuiltInMcpClient, mcpClients } from \"./mcp-clients.ts\";\nimport { openInChatProviders } from \"./open-in-chat.ts\";\nimport { PAGE_MODES } from \"./page-modes.ts\";\nimport { redirectPatternError } from \"./redirect-patterns.ts\";\nimport { MAX_RELATED } from \"./related.ts\";\nimport { isStandardSchema } from \"./standard-schema.ts\";\nimport type { StandardSchema } from \"./standard-schema.ts\";\nimport { trimEnd } from \"./trim.ts\";\nimport { unrecognizedKeysMessage } from \"./unrecognized-keys.ts\";\nimport { VARIABLE_NAME } from \"./variables.ts\";\n\n/**\n * An absolute HTTP(S) URL, for any field that lands verbatim in an `href` —\n * the header repo mark, the GitHub instance origin. Zod's bare `z.url()` also\n * admits `javascript:` and `data:`, which would render as a script link on\n * every page.\n */\nconst httpUrlSchema = z.url({ protocol: /^https?$/u });\n\n/**\n * Public Blume schemas.\n *\n * These are exported from `blume/schema` so migration tools, editor\n * integrations, and the runtime share a single source of validation truth.\n */\n\n// ---------------------------------------------------------------------------\n// Shared primitives\n// ---------------------------------------------------------------------------\n\n// `typeof` checks live in named predicates (the form the oxlint anti-slop\n// config sanctions); generic so each site keeps its own union narrowing.\nconst isString = <Value>(value: Value): value is Value & string =>\n typeof value === \"string\";\n\nconst isBoolean = <Value>(value: Value): value is Value & boolean =>\n typeof value === \"boolean\";\n\nconst isObjectLike = <Value>(value: Value): value is Value & object =>\n typeof value === \"object\" && value !== null;\n\n/** Icon inputs in serializable contexts (frontmatter, meta files). */\nconst iconName = z.string().min(1);\n\n/**\n * Error params for a strict object whose keys were removed or moved in a\n * major release. A config still carrying one of `hints`' keys fails with\n * the message that names its replacement, instead of Zod's bare\n * \"Unrecognized key\"; any other unknown key keeps the default message.\n */\nconst removedKeysHint = (hints: Record<string, string>) => ({\n error: (issue: z.core.$ZodRawIssue): string | undefined => {\n if (issue.code !== \"unrecognized_keys\") {\n return;\n }\n const messages = issue.keys.flatMap((key) =>\n Object.hasOwn(hints, key) ? [hints[key]] : []\n );\n if (messages.length === 0) {\n return;\n }\n // A hinted key beside a plain unknown one: keep Zod's wording for the\n // latter so it isn't silently dropped from the diagnostic.\n const others = issue.keys.filter((key) => !Object.hasOwn(hints, key));\n if (others.length > 0) {\n messages.push(unrecognizedKeysMessage(others));\n }\n return messages.join(\" \");\n },\n});\n\n/** Default include glob for filesystem-backed content sources. */\nconst hydrationMode = z.enum([\"load\", \"idle\", \"visible\", \"media\", \"only\"]);\nexport type HydrationMode = z.infer<typeof hydrationMode>;\n\n/**\n * A publish date in frontmatter. YAML auto-parses an unquoted `2026-01-01` into\n * a `Date`, so accept either form and normalize to an ISO string.\n */\nconst dateSchema = z\n .union([z.string(), z.date()])\n .transform((value) => (value instanceof Date ? value.toISOString() : value));\n\n/**\n * How a sidebar group renders:\n * - `flat`: a non-collapsible header with its items listed beneath (default).\n * - `group`: a collapsible `<details>` disclosure.\n * - `page`: a single row that drills into a sub-panel showing only this group's\n * items, with a back arrow at the top.\n */\nconst sidebarDisplaySchema = z.enum([\"flat\", \"group\", \"page\"]);\nexport type SidebarDisplay = z.infer<typeof sidebarDisplaySchema>;\n\n/**\n * How a group's own page lists the group's other pages below its content:\n * `card` a grid of cards, `accordion` a list with each subgroup collapsible,\n * `none` no listing (the default). A group without its own page has nowhere\n * to show one. Nested groups inherit the nearest setting above them.\n */\nconst directoryModeSchema = z.enum([\"accordion\", \"card\", \"none\"]);\nexport type DirectoryMode = z.infer<typeof directoryModeSchema>;\n\n// ---------------------------------------------------------------------------\n// Page frontmatter\n// ---------------------------------------------------------------------------\n\nconst sidebarMetaSchema = z.strictObject({\n badge: z.string().optional(),\n /**\n * Render mode for this page's folder group. Only meaningful on a folder's\n * `index` page — it configures the group, not the page. Overrides the\n * folder's `meta.ts` `display` and the global `navigation.sidebar.display`.\n */\n display: sidebarDisplaySchema.optional(),\n hidden: z.boolean().default(false),\n icon: iconName.optional(),\n label: z.string().optional(),\n order: z.number().optional(),\n});\n\n/**\n * An X handle, normalized to a leading `@` — `twitter:site`/`twitter:creator`\n * require it, and a handle configured without one is the obvious typo to absorb\n * rather than reject. The layouts normalize again on the way out, since a page's\n * `seo.x.creator` reaches them straight from unvalidated frontmatter.\n */\nconst xHandleSchema = z.string().transform(normalizeXHandle).optional();\n\nconst seoMetaSchema = z.strictObject({\n canonical: z.url().optional(),\n description: z.string().optional(),\n image: z.string().optional(),\n noindex: z.boolean().default(false),\n title: z.string().optional(),\n /** Per-page X attribution — a guest post credits its own author. */\n x: z.strictObject({ creator: xHandleSchema }).optional(),\n});\n\nconst searchMetaSchema = z.strictObject({\n /**\n * Multiply the page's search relevance: above 1 ranks it higher, below 1\n * lower. Keep it to a few key pages, and under 10: a large boost floats a\n * page over better matches.\n */\n boost: z.number().positive().optional(),\n exclude: z.boolean().default(false),\n /** Extra terms the page is found by, beyond its own text. */\n keywords: z.array(z.string()).optional(),\n tags: z.array(z.string()).optional(),\n});\n\nconst aiMetaSchema = z.strictObject({\n /** Exclude this page from llms.txt and llms-full.txt. */\n exclude: z.boolean().default(false),\n});\n\nconst changelogMetaSchema = z.strictObject({\n category: z.string().optional(),\n date: dateSchema.optional(),\n version: z.string().optional(),\n});\n\n/**\n * A post author: a bare name/handle, or an object with a name plus optional\n * avatar/URL. Blume credits the name and URL in the page's JSON-LD; the object\n * is passthrough so richer author metadata (social handles, roles) survives\n * untouched rather than have a strict scan reject it.\n */\nconst authorSchema = z.union([\n z.string(),\n z\n .object({\n avatar: z.string().optional(),\n image: z.string().optional(),\n name: z.string(),\n url: z.string().optional(),\n })\n .catchall(z.unknown()),\n]);\n\n// Shorthand defaults use `.prefault()`, not `.default()`, wherever the value\n// must still be parsed — Zod 4's `.default()` returns the value as-is, so a\n// `.default({})` on an object with inner defaults (or a transform) would\n// resolve to a bare `{}` instead of the fully-defaulted shape.\n\n/** A `related` link: a root-relative page path or an absolute URL. */\nconst relatedLinkSchema = z\n .string()\n .refine((link) => link.startsWith(\"/\") || isExternalUrl(link), {\n message:\n 'A related link is a root-relative path (\"/guides/setup\") or an absolute URL.',\n });\n\n/** Frontmatter accepted on any content page. */\nconst pageMetaBaseSchema = z.strictObject({\n ai: aiMetaSchema.prefault({}),\n /**\n * A hand-written endpoint: an HTTP method and a path or full URL\n * (`POST /v1/users`). The page's `<ParamField>`s build its playground and\n * request samples.\n */\n api: z\n .string()\n .refine((value) => API_ENDPOINT.test(value.trim()), {\n message:\n 'api takes an HTTP method and a path or URL, like \"POST /v1/users\" or \"GET https://api.acme.com/v1/users/{id}\".',\n })\n .optional(),\n /** How this page's endpoint authenticates, over the site's `api.auth`. */\n authMethod: z.enum(AUTH_METHODS).optional(),\n /** Post author(s) for blog/changelog content, credited in JSON-LD. */\n authors: z.union([authorSchema, z.array(authorSchema)]).optional(),\n changelog: changelogMetaSchema.optional(),\n /** Publish date for feed-backed content like blog/changelog. */\n date: dateSchema.optional(),\n deprecated: z.boolean().default(false),\n description: z.string().optional(),\n draft: z.boolean().default(false),\n hidden: z.boolean().default(false),\n icon: iconName.optional(),\n /** Overrides the git-derived last-modified date when `lastModified` is on. */\n lastModified: dateSchema.optional(),\n /** What the page shows around its content (see `core/page-modes.ts`). */\n mode: z.enum(PAGE_MODES).optional(),\n /** `false` keeps the \"Listen to this page\" player off this page. */\n narration: z.boolean().default(true),\n noindex: z.boolean().default(false),\n /** `false` drops the previous/next links at the foot of this page. */\n pagination: z.boolean().default(true),\n /** What an `api` page's playground shows: `interactive`, `simple` (samples only), or `none`. */\n playground: z.enum(PLAYGROUND_MODES).optional(),\n /**\n * Pages to suggest at the foot of this one: root-relative paths, absolute\n * URLs, or `{ Title: link }` to name a link. `false` lists none.\n */\n related: z\n .union([\n z.literal(false),\n z\n .array(\n z.union([\n relatedLinkSchema,\n z\n .record(z.string().min(1), relatedLinkSchema)\n .refine((entry) => Object.keys(entry).length === 1, {\n message:\n 'A titled related entry has one title and one link: { \"Title\": \"/path\" }.',\n }),\n ])\n )\n .max(MAX_RELATED),\n ])\n .optional(),\n search: searchMetaSchema.prefault({}),\n seo: seoMetaSchema.prefault({}),\n sidebar: sidebarMetaSchema.prefault({}),\n slug: z.string().optional(),\n title: z.string().optional(),\n // No default: an absent `type` must fall through to `content.defaultType`.\n type: z.string().optional(),\n});\n\nexport type PageMeta = z.infer<typeof pageMetaBaseSchema>;\nexport type PageMetaInput = z.input<typeof pageMetaBaseSchema>;\n\n/**\n * Fold the top-level `hidden`/`noindex` shorthands into the nested fields\n * every consumer reads (`sidebar.hidden`, `seo.noindex`). It runs inside both\n * page schemas, so the scan's `PageMeta` (the sitemap, llms.txt, search) and\n * the content collections' `entry.data` (the page's robots tag) can't\n * disagree about a page that uses the shorthand.\n */\nconst foldShorthands = <Meta extends PageMeta>(meta: Meta): Meta => ({\n ...meta,\n seo: { ...meta.seo, noindex: meta.seo.noindex || meta.noindex },\n sidebar: { ...meta.sidebar, hidden: meta.sidebar.hidden || meta.hidden },\n});\n\nexport const pageMetaSchema = pageMetaBaseSchema.transform(foldShorthands);\n\n/** The fully-defaulted front matter of a page that declares nothing. */\nconst EMPTY_PAGE_META: PageMeta = pageMetaBaseSchema.parse({});\n\n/**\n * The page schema as the generated content collections declare it, so\n * `entry.data` is typed and normalized (dates as ISO strings, X handles with\n * their `@`) the same way the scan's `PageMeta` is. Two deliberate loosenings\n * over {@link pageMetaSchema}: custom keys (`frontmatter.extend`, per-type\n * maps) pass through instead of failing the strict parse, and a page the\n * strict parse rejects resolves to the empty defaults instead of throwing.\n * The scan has already dropped such a page with a `BLUME_FRONTMATTER_INVALID`\n * diagnostic — Blume continues without it unless `--strict` — so the\n * collection must not turn that dropped page into a failed content sync.\n */\nexport const pageCollectionSchema = pageMetaBaseSchema\n .loose()\n .transform(foldShorthands)\n // oxlint-disable-next-line promise/prefer-await-to-then -- zod's catch, not a promise\n .catch(() => EMPTY_PAGE_META);\n\n/** Built-in page frontmatter keys; custom keys must never redeclare one. */\nexport const BUILT_IN_PAGE_META_KEYS: ReadonlySet<string> = new Set<string>(\n pageMetaBaseSchema.keyof().options\n);\n\n/**\n * A map of custom frontmatter keys to user-supplied validation schemas,\n * consumed through the Standard Schema `~standard` contract — never Zod's own\n * API — so the consumer's zod (any version), Valibot, or ArkType all work\n * (see `standard-schema.ts`). Shared by the site-wide `frontmatter.extend`\n * and the per-type `content.types.<type>.frontmatter` maps. Built-in\n * frontmatter fields can't be redeclared — they're load-bearing (routing,\n * sidebar, SEO), and shadowing one would silently change its semantics.\n */\nconst customKeySchemaRecord = (where: string) =>\n z\n .record(\n z.string(),\n z.custom<StandardSchema>(isStandardSchema, {\n message:\n \"Expected a Standard Schema (e.g. a Zod schema — any Zod version works).\",\n })\n )\n .default({})\n .superRefine((value, ctx) => {\n for (const key of Object.keys(value)) {\n if (BUILT_IN_PAGE_META_KEYS.has(key)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `\"${key}\" is a built-in frontmatter field and cannot be redeclared via ${where}.`,\n path: [key],\n });\n }\n }\n });\n\n// ---------------------------------------------------------------------------\n// Folder meta (meta.ts)\n// ---------------------------------------------------------------------------\n\nexport const folderMetaSchema = z.strictObject({\n collapsed: z.boolean().optional(),\n /** List the group's pages on its index page; inherited by nested folders. */\n directory: directoryModeSchema.optional(),\n /** Render mode for this group; overrides `navigation.sidebar.display`. */\n display: sidebarDisplaySchema.optional(),\n icon: iconName.optional(),\n order: z.number().optional(),\n /** Explicit child ordering by slug segment (without numeric prefix). */\n pages: z.array(z.string()).optional(),\n title: z.string().optional(),\n});\n\nexport type FolderMeta = z.infer<typeof folderMetaSchema>;\n\n// ---------------------------------------------------------------------------\n// Project config (blume.config.ts)\n// ---------------------------------------------------------------------------\n\n/** The logo mark: a single image path/URL, or light/dark variants with alt text. */\nconst logoImageSchema = z.union([\n z.string(),\n z.strictObject({\n alt: z.string().optional(),\n dark: z.string().optional(),\n light: z.string().optional(),\n }),\n]);\n\n/**\n * Site logo. A bare string is the image shorthand. The object form splits the\n * brand into an optional `image` mark and optional wordmark `text` so a site can\n * show an image-only logo (a mark with the wordmark baked in), a text-only logo,\n * or both. Omit `text` to fall back to the site title; set `text: \"\"` to render\n * the mark alone. `href` overrides the brand link (defaults to `/`).\n */\nconst logoConfigSchema = z.union([\n z.string(),\n z.strictObject({\n href: z.string().optional(),\n image: logoImageSchema.optional(),\n text: z.string().optional(),\n }),\n]);\n\n/**\n * A label that may localize (header tabs and links, the banner, the footer):\n * a plain string, or a map of locale code to label (`{ en: \"Docs\", ja: \"ドキュメント\" }`).\n * Resolved per locale by `core/localizable.ts` — the active locale's entry\n * wins, then the default locale's, then the map's first entry — so a\n * single-locale site can keep plain strings and an i18n site can translate\n * its labels without forking the config.\n */\nconst localizableLabelSchema = z.union([\n z.string(),\n z\n .record(z.string(), z.string())\n .refine((value) => Object.keys(value).length > 0, {\n message: \"Provide at least one locale's label.\",\n }),\n]);\n\nexport type LocalizableLabel = z.infer<typeof localizableLabelSchema>;\n\n/**\n * Site-wide announcement banner: a string, or text with an optional link. The\n * object form's `content` and link `text` may be per-locale maps.\n */\nconst bannerConfigSchema = z.union([\n z.string(),\n z.strictObject({\n content: localizableLabelSchema,\n /** Show a dismiss button; the choice is remembered per visitor. */\n dismissible: z.boolean().default(false),\n /**\n * Stable key for remembering dismissal; defaults to the content (the\n * default locale's, for a per-locale map).\n */\n id: z.string().optional(),\n link: z\n .strictObject({ href: z.string(), text: localizableLabelSchema })\n .optional(),\n }),\n]);\n\n/**\n * Defaults for hand-written endpoint pages (`api` frontmatter): the server a\n * path joins, how requests authenticate, and the playground, which takes an\n * OpenAPI reference's `playground` option.\n */\nconst apiConfigSchema = z.strictObject({\n auth: z\n .strictObject({\n method: z.enum(AUTH_METHODS),\n /** The header an API key goes in. Defaults to `x-api-key`. */\n name: z.string().optional(),\n })\n .optional(),\n playground: playgroundSchema,\n /** The base URL an `api` path joins (`https://api.acme.com/v1`). */\n server: z.string().optional(),\n});\n\n/**\n * The site footer: a copyright line, a row of links, and social profile\n * icons. Unset, the site has no footer (a `components.ts` `Footer` still\n * renders).\n */\nconst footerConfigSchema = z.strictObject({\n /** A line of plain text between the links and the icons (`© 2026 Acme, Inc.`). */\n copyright: localizableLabelSchema.optional(),\n /** Links in one row, in the order written. */\n links: z\n .array(z.strictObject({ href: z.string(), label: localizableLabelSchema }))\n .default([]),\n /** Social profiles, platform to URL, shown as icons in the order written. */\n socials: z.partialRecord(z.enum(FOOTER_SOCIALS), z.string()).default({}),\n});\n\n/**\n * The generated `/changelog` index. Its title and description may be\n * per-locale maps; unset, they're the `changelog` UI strings `i18n.ui`\n * translates.\n */\nconst changelogConfigSchema = z.strictObject({\n description: localizableLabelSchema.optional(),\n title: localizableLabelSchema.optional(),\n});\n\n/** A validated `content.sources` entry: an adapter descriptor from `blume/sources`. */\nexport type { ContentSourceAdapter } from \"../sources/registry.ts\";\n\n/**\n * Per-type content definition. An object (rather than a bare frontmatter map)\n * so type-scoped concerns added later — search facets, templates — have a\n * home without a breaking config change.\n */\nconst contentTypeConfigSchema = z.strictObject({\n /**\n * Custom frontmatter keys whose values become filterable facets for pages\n * of this type — surfaced in search documents and filterable through the\n * MCP tools' `filters` input. Each name must be a custom key declared for\n * the type (in its `frontmatter` map or the site-wide `frontmatter.extend`),\n * checked at the config level where both maps are visible. Only string\n * (or number/boolean, stringified) values ever facet.\n */\n facets: z.array(z.string()).default([]),\n /**\n * Custom frontmatter keys for pages of this type, layered on top of the\n * site-wide `frontmatter.extend`. Every declared key is validated on every\n * page of the type — absent ones included — so a required schema enforces\n * the key type-wide while leaving other types untouched.\n */\n frontmatter: customKeySchemaRecord(\"content.types\"),\n});\n\n/** The top-level fields that are shorthand for a single `filesystem()` source. */\nconst FILESYSTEM_SHORTHAND_KEYS = [\"exclude\", \"include\", \"root\"] as const;\n\n/**\n * `content`: where pages come from. `sources` lists adapters from\n * `blume/sources`; the top-level `root`/`include`/`exclude` are zero-config\n * shorthand that desugars to exactly one `filesystem()` entry when `sources`\n * is absent, and are rejected beside it — so after parse, `sources` is the\n * one source of truth and nothing downstream picks between the two.\n */\nconst contentConfigSchema = z\n .strictObject({\n defaultType: z.string().default(\"doc\"),\n exclude: z.array(z.string()).optional(),\n include: z.array(z.string()).optional(),\n pages: z.string().default(\"pages\"),\n root: z.string().optional(),\n sources: contentSourcesSchema.optional(),\n /**\n * Per-type content definitions, keyed by the frontmatter `type` they apply\n * to (including `defaultType`, for pages that set none).\n */\n types: z.record(z.string(), contentTypeConfigSchema).default({}),\n })\n .superRefine(\n (value, ctx) => {\n if (!value.sources) {\n return;\n }\n for (const key of FILESYSTEM_SHORTHAND_KEYS) {\n if (value[key] !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `content.${key} is shorthand for a single filesystem() source and can't be combined with content.sources — move it into a filesystem({ ${key} }) entry in content.sources.`,\n path: [key],\n });\n }\n }\n },\n // Zod skips a refinement once a field has failed, so without this a\n // Blume 1 config (`{ type: \"filesystem\" }` sources beside `content.root`)\n // would only learn about the shorthand after fixing every source entry.\n // Any object gets the check; a non-object already failed on its own.\n { when: (payload) => isObjectLike(payload.value) }\n )\n .transform(({ exclude, include, root, sources, ...rest }) => ({\n ...rest,\n sources: sources ?? [\n // The shorthand's defaults are the adapter's own, applied by its schema.\n resolvedSourceAdapterSchema.parse(filesystem({ exclude, include, root })),\n ],\n }));\n\nconst navTabSchema = z.strictObject({\n // Rejected empty rather than accepted: an empty `href` would render a link to\n // nowhere, and it can't mean \"resolve it for me\" either — that's what\n // omitting the field does.\n href: z.string().min(1).optional(),\n icon: iconName.optional(),\n items: z\n .array(\n z.strictObject({\n description: z.string().optional(),\n icon: iconName.optional(),\n label: localizableLabelSchema,\n path: z.string(),\n tag: z.string().optional(),\n })\n )\n .optional(),\n label: localizableLabelSchema,\n // Canonical like the routes it's matched against — one leading slash, no\n // trailing one — so `/guides/` still marks its pages' tab and scopes their\n // sidebar, and `api` links to `/api` rather than resolving relative to the\n // current page.\n path: z.string().transform(normalizeRoute),\n});\n\nconst navSelectorItemSchema = z.strictObject({\n description: z.string().optional(),\n icon: iconName.optional(),\n label: z.string(),\n path: z.string(),\n tag: z.string().optional(),\n});\n\nconst navSelectorSchema = z.strictObject({\n items: z.array(navSelectorItemSchema).default([]),\n kind: z.enum([\"dropdown\", \"language\", \"product\", \"version\"]),\n label: z.string(),\n});\n\n/** A node in an explicit sidebar config: a page reference or a group/link. */\nexport type SidebarItemConfig =\n | string\n | {\n label: string;\n badge?: string;\n directory?: DirectoryMode;\n display?: SidebarDisplay;\n href?: string;\n icon?: string;\n collapsed?: boolean;\n items?: SidebarItemConfig[];\n root?: string;\n };\n\n// Zod 4's `ZodType` defaults its Input parameter to `unknown` (it no longer\n// mirrors Output), so the recursive annotation names both — otherwise\n// `z.input` of anything containing this schema degrades to `unknown`.\nconst sidebarItemSchema: z.ZodType<SidebarItemConfig, SidebarItemConfig> =\n z.lazy(() =>\n z.union([\n z.string(),\n z.strictObject({\n badge: z.string().optional(),\n collapsed: z.boolean().optional(),\n directory: directoryModeSchema.optional(),\n display: sidebarDisplaySchema.optional(),\n href: z.string().optional(),\n icon: iconName.optional(),\n items: z.array(sidebarItemSchema).optional(),\n label: z.string(),\n root: z.string().optional(),\n }),\n ])\n );\n\nconst fontFallbackSchema = z.enum([\"sans\", \"serif\", \"mono\"]);\n\n/** Any family from a zero-config Astro provider, by name. */\nconst remoteFontSchema = z.strictObject({\n fallback: fontFallbackSchema.optional(),\n name: z.string().min(1),\n provider: z\n .enum([\"google\", \"fontsource\", \"bunny\", \"fontshare\"])\n .default(\"google\"),\n /** Character subsets to load; defaults to `latin` plus the locales' scripts. */\n subsets: z.array(z.string().min(1)).nonempty().optional(),\n weights: z\n .array(\n z.union([z.number().int().positive(), z.string().regex(/^\\d+\\.\\.\\d+$/u)])\n )\n .nonempty()\n .optional(),\n});\n\n/** One local `@font-face`: a file plus optional weight/style (else inferred). */\nconst localFontVariantSchema = z.strictObject({\n src: z.string().min(1),\n style: z.enum([\"normal\", \"italic\", \"oblique\"]).optional(),\n weight: z\n .union([\n z.number().int().positive(),\n z.string().regex(/^\\d+(?:\\.\\.\\d+)?$/u),\n ])\n .optional(),\n});\n\n/** A self-hosted family loaded from font files in the project. */\nconst localFontSchema = z.strictObject({\n fallback: fontFallbackSchema.optional(),\n name: z.string().min(1),\n variants: z.array(localFontVariantSchema).nonempty(),\n});\n\n/**\n * A role's font: a curated Google Font slug (see `theme/fonts.ts`), a\n * remote-provider family, or local font files. Bare strings must be curated\n * slugs so a typo fails with the supported list instead of a provider error.\n */\nconst fontValueSchema = z\n .union([z.string(), remoteFontSchema, localFontSchema])\n .superRefine((value, ctx) => {\n if (isString(value) && !isFontSlug(value)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Unknown font \"${value}\". Supported fonts: ${FONT_SLUGS.join(\", \")}. For any other family, use the object form: { name: \"...\" } (remote provider) or { name: \"...\", variants: [...] } (local files).`,\n });\n }\n });\n\n/**\n * An optional per-mode theme value: a string applies to both color modes; a\n * `{ light, dark }` object sets each mode individually (either may be\n * omitted to override a single mode).\n */\nconst perModeValueSchema = z\n .union([\n z.string(),\n z.strictObject({\n dark: z.string().optional(),\n light: z.string().optional(),\n }),\n ])\n .optional()\n .transform((value) =>\n isString(value) ? { dark: value, light: value } : value\n );\n\nconst themeConfigFields = {\n accent: z\n .union([\n z.string(),\n z.strictObject({ dark: z.string(), light: z.string() }),\n ])\n .default(\"blue\")\n .transform((value) =>\n isString(value) ? { dark: value, light: value } : value\n ),\n action: z.string().optional(),\n background: perModeValueSchema,\n backgroundImage: perModeValueSchema,\n fonts: z\n .strictObject({\n body: fontValueSchema.default(\"inter\"),\n display: fontValueSchema.default(\"inter\"),\n mono: fontValueSchema.default(\"ibm-plex-mono\"),\n })\n .prefault({}),\n mode: z.enum([\"system\", \"light\", \"dark\"]).default(\"system\"),\n radius: z.enum([\"none\", \"sm\", \"md\", \"lg\"]).default(\"md\"),\n};\n\nconst themeConfigSchema = z.strictObject(\n themeConfigFields,\n removedKeysHint({\n layout:\n \"theme.layout was removed: the sidebar layout is the only one, so delete the field.\",\n })\n);\n\n/** Curated link for the search dialog empty state (internal route or external URL). */\nconst searchPopularLinkSchema = z.strictObject({\n href: z.string(),\n icon: iconName.optional(),\n label: z.string(),\n});\n\n/**\n * The search backend: an adapter descriptor from `blume/search` (`algolia({…})`,\n * `orama()`, …) or `false` to disable search. Resolves to a descriptor either\n * way — `false` becomes the `none` adapter — so consumers read `kind`,\n * `runtimeDeps`, and `requiredSecrets` without a special case.\n */\nconst searchProviderSchema = z\n .custom<false | SearchAdapterInput>(\n // A 1.x provider name (`\"algolia\"`, `\"none\"`) fails here with the adapter\n // that replaces it, rather than the pipe's bare \"expected object\".\n (value) => value === false || isObjectLike(value),\n {\n message:\n 'search.provider takes an adapter from \"blume/search\" — algolia({…}), pagefind(), … — not a provider name. The 1.x provider string was removed, and \"none\" is now `search: false`.',\n }\n )\n .transform((value) => (value === false ? NONE_SEARCH_ADAPTER : value))\n .pipe(resolvedSearchAdapterSchema);\n\n/** Indexing behavior shared by every source-built index. */\nconst searchIndexingSchema = z\n .strictObject({\n includeCodeBlocks: z.boolean().default(false),\n includeHiddenPages: z.boolean().default(false),\n })\n .prefault({});\n\n/** What the search dialog's analytics events carry. */\nconst searchAnalyticsSchema = z\n .strictObject({\n queries: z.boolean().default(true),\n })\n .prefault({});\n\n/** The object form of `search`: the adapter plus its adapter-independent settings. */\nconst searchOptionsSchema = z.strictObject(\n {\n analytics: searchAnalyticsSchema,\n indexing: searchIndexingSchema,\n /** Curated links for the Cmd+K empty state; defaults to the first sidebar pages. */\n popular: z.array(searchPopularLinkSchema).default([]),\n provider: searchProviderSchema.default(() => orama()),\n },\n // The 1.x credential blocks, each now its adapter's options.\n removedKeysHint({\n algolia:\n 'search.algolia moved into its adapter: `search: algolia({ appId, indexName, apiKey })` from \"blume/search\", where the 1.x `searchApiKey` is now `apiKey`.',\n mixedbread:\n 'search.mixedbread moved into its adapter: `search: mixedbread({ storeId })` from \"blume/search\".',\n oramaCloud:\n 'search.oramaCloud moved into its adapter: `search: oramaCloud({ endpoint, apiKey, indexId })` from \"blume/search\".',\n typesense:\n 'search.typesense moved into its adapter: `search: typesense({ host, collection, apiKey })` from \"blume/search\", where the 1.x `searchApiKey` is now `apiKey`.',\n })\n);\n\ntype SearchOptionsInput = z.input<typeof searchOptionsSchema>;\n\n/** What `search` accepts: an adapter (or `false`) directly, or the object form. */\ntype SearchConfigInput = false | SearchAdapterInput | SearchOptionsInput;\n\n/**\n * `search` takes an adapter directly (`search: algolia({…})`, or `false`) as\n * shorthand for the object form (`search: { provider: algolia({…}), popular,\n * indexing }`). The shorthand is lifted into `provider` before the object\n * schema validates, rather than through a union: a union reports whichever\n * branch fails \"softest\", which for a descriptor missing an option is the\n * object form's \"unrecognized keys\" — pointing at the wrong problem. A\n * descriptor is recognized by its `kind`; the object form never has one.\n */\nconst searchConfigSchema = z\n .custom<SearchConfigInput>(\n // Anything else (a 1.x provider string, null, true) must become a\n // diagnostic here: the `in` check below would throw a TypeError on it.\n (value) => value === false || isObjectLike(value),\n {\n message:\n 'search must be an adapter from \"blume/search\" (orama(), algolia({…}), …), false, or { provider, popular, indexing }. The 1.x provider string was removed.',\n }\n )\n .transform((value): SearchOptionsInput =>\n value === false || \"kind\" in value ? { provider: value } : value\n )\n .pipe(searchOptionsSchema);\n\n/**\n * JWK parameters that carry private or secret key material (RFC 7518): the\n * private exponent/scalar, the RSA CRT parameters, and the symmetric key.\n * A directory is public by definition, so any of these in a configured key is\n * a leaked credential, not a config style choice — reject loudly.\n */\nconst PRIVATE_JWK_PARAMS = [\"d\", \"p\", \"q\", \"dp\", \"dq\", \"qi\", \"oth\", \"k\"];\n\n/**\n * A public JWK for the Web Bot Auth signature directory. Shape is left to the\n * signing setup (Ed25519 `OKP` keys in current deployments) — validation only\n * requires the mandatory `kty` and refuses private key material.\n */\nconst publicJwkSchema = z\n .record(z.string(), z.unknown())\n .superRefine((jwk, ctx) => {\n if (!isString(jwk.kty) || jwk.kty.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'A JWK must declare its key type (\"kty\").',\n });\n }\n const leaked = PRIVATE_JWK_PARAMS.filter((param) => param in jwk);\n if (leaked.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The JWK contains private key material (\"${leaked.join('\", \"')}\") — the signatures directory is public, so list only public keys and keep the private key where the signing agent runs.`,\n });\n }\n });\n\n// The label is the row button's only accessible name (its icon is\n// decorative), so unlike a header link's it can't be blank in any locale.\nconst mcpClientLabelSchema = z.union(\n [\n z.string().trim().min(1),\n z\n .record(z.string(), z.string().trim().min(1))\n .refine((value) => Object.keys(value).length > 0, {\n message: \"Provide at least one locale's label.\",\n }),\n ],\n { error: \"Expected a label, or a map of locale code to label\" }\n);\n\n// A \"Connect to MCP\" row for a client Blume doesn't ship: its `command` is\n// copied with `{name}` and `{url}` filled in.\nconst mcpCustomClientSchema = z.strictObject({\n command: z.string().trim().min(1),\n icon: iconName.optional(),\n label: mcpClientLabelSchema,\n});\n\nconst ACCEPTED_MCP_CLIENTS = `${mcpClients.map((key) => `\"${key}\"`).join(\", \")}, or a custom client { label, command, icon? }`;\n\n/** A union's issue: every member failed, each with issues of its own. */\nconst isUnionIssue = (\n issue: z.core.$ZodIssue\n): issue is z.core.$ZodIssueInvalidUnion => issue.code === \"invalid_union\";\n\n// A bad entry fails the list member of `clients`, which zod reports as a bare\n// \"Invalid input\" on the whole list; that union issue is all this map sees.\n// The entries' issues ride along in `errors`. The culprit is an entry that\n// matches neither a built-in key nor a custom client, which fails as a union\n// at its index (a blank field or an unknown key elsewhere doesn't fail the\n// list on its own). Name that entry, and for a custom client its bad field.\nconst mcpClientsError = (issue: z.core.$ZodRawIssue): string => {\n const entryIssue = (issue.code === \"invalid_union\" ? issue.errors : [])\n .flat()\n .filter(isUnionIssue)\n .find((nested) => Number.isInteger(nested.path[0]));\n if (!entryIssue) {\n return `agents.mcp.clients takes true, false, or a list whose entries are each ${ACCEPTED_MCP_CLIENTS}.`;\n }\n const index = Number(entryIssue.path[0]);\n const at = `agents.mcp.clients.${String(index)}`;\n const entry = Array.isArray(issue.input) ? issue.input[index] : null;\n if (isString(entry)) {\n return `${at} is \"${entry}\", which isn't a built-in client. Use ${ACCEPTED_MCP_CLIENTS}.`;\n }\n const fieldIssue = entryIssue.errors\n .flat()\n .find((nested) => nested.path.length > 0);\n return fieldIssue\n ? `${at}.${fieldIssue.path.map(String).join(\".\")}: ${fieldIssue.message}. A custom client is { label, command, icon? }.`\n : `${at} isn't ${ACCEPTED_MCP_CLIENTS}.`;\n};\n\nconst mcpConfigSchema = z.strictObject({\n /**\n * The \"Connect to MCP\" page action's clients. `true` (the default) lists\n * every built-in client, `false` none (the menu keeps \"Copy server URL\"),\n * and an array picks built-in clients by key and adds custom ones, in the\n * given order. Normalized to the list so consumers read a plain array.\n */\n clients: z\n .union(\n [\n z.boolean(),\n z.array(z.union([z.enum(mcpClients), mcpCustomClientSchema])).refine(\n (value) => {\n const keys = value.filter(isBuiltInMcpClient);\n return new Set(keys).size === keys.length;\n },\n { message: \"agents.mcp.clients must not repeat a built-in client.\" }\n ),\n ],\n { error: mcpClientsError }\n )\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return value ? [...mcpClients] : [];\n }\n return value;\n }),\n enabled: z.boolean().default(false),\n /** Optional system hint passed to connecting agents. */\n instructions: z.string().optional(),\n /** Server name shown to clients; defaults to the site title. */\n name: z.string().optional(),\n /**\n * Normalized like `openapi.route`: a slash-less value would otherwise be\n * string-concatenated onto the site origin (`https://acme.comdocs-mcp`).\n */\n route: z.string().default(\"/mcp\").transform(normalizeRoute),\n});\n\nconst assistantEndpointSchema = z\n .string()\n .trim()\n .min(1)\n .refine(\n (value) => {\n if (value.startsWith(\"/\") && !value.startsWith(\"//\")) {\n return true;\n }\n try {\n const url = new URL(value);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n },\n {\n message:\n \"ai.assistant.endpoint must be an HTTP(S) URL or a root-relative path.\",\n }\n );\n\n/** The object form of `agents.llmsTxt`; a bare boolean normalizes onto it. */\nconst llmsTxtObjectSchema = z.strictObject({\n /**\n * Markdown inserted after the title and summary, before the page sections:\n * the llms.txt spec's \"details\" slot. The place to tell agents when to use\n * the product and how to call it; trimmed, and dropped when blank.\n */\n details: z.string().trim().min(1).optional(),\n enabled: z.boolean().default(true),\n openapi: z.boolean().default(true),\n});\n\ntype LlmsTxtResolved = z.output<typeof llmsTxtObjectSchema>;\n\n/** The object form of `agents.catalog`; a bare boolean normalizes onto it. */\nconst aiCatalogObjectSchema = z.strictObject({\n enabled: z.boolean().default(true),\n /**\n * Representative queries per catalog entry, keyed by the entry's\n * `<namespace>:<name>` (the identifier minus its `urn:air:<host>:` prefix,\n * e.g. `mcp:docs`, `skill:blume`, `api:docs`). Replaces the generated\n * defaults for that entry; 2–5 short natural-language questions the\n * resource can answer, which registries embed for semantic search.\n */\n queries: z\n .record(z.string().min(1), z.array(z.string().trim().min(1)).min(1))\n .default({}),\n});\n\ntype AiCatalogResolved = z.output<typeof aiCatalogObjectSchema>;\n\n/**\n * The keys that moved from `ai` to `agents`: `ai` now holds only what faces a\n * model at read time (the assistant, Open in chat), and the machine-readable surface\n * agents consume lives under `agents`.\n */\nconst MOVED_TO_AGENTS = [\n \"api\",\n \"catalog\",\n \"llmsTxt\",\n \"markdownComponents\",\n \"mcp\",\n \"skills\",\n \"webBotAuth\",\n \"webmcp\",\n] as const;\n\nconst movedToAgentsHints = (from: string): Record<string, string> =>\n Object.fromEntries(\n MOVED_TO_AGENTS.map((key) => [\n key,\n `${from}.${key} moved to agents.${key}.`,\n ])\n );\n\n/** Model-facing config: the assistant and the \"Open in chat\" action. */\nconst aiConfigFields = {\n assistant: z\n .strictObject(\n {\n // Origins allowed to call the generated `/api/ask` from another site (a\n // marketing page that embeds an ask box, say), or `\"*\"` for every\n // origin. Each URL is reduced to its origin so a trailing slash or path\n // can't defeat the exact match the route performs. Read by the\n // generated route only; an external `endpoint` owns its own CORS.\n // A bot check from `blume/captcha`: the panel sends a token with each\n // question and the generated route verifies it before the model runs.\n captcha: captchaAdapterSchema.optional(),\n cors: z\n .array(\n z.union([\n z.literal(\"*\"),\n z\n .url({ protocol: /^https?$/u })\n .transform((value) => new URL(value).origin),\n ])\n )\n .optional(),\n enabled: z.boolean().default(false),\n // Optional external endpoint for projects that keep their docs static\n // and host the assistant in an existing backend. Absolute URLs and root-relative\n // paths are both valid; the built-in request/stream contract is unchanged.\n endpoint: assistantEndpointSchema.optional(),\n // Extra system-prompt text (identity, language, tone) appended to the\n // built-in instructions, so the grounding contract — answer from the\n // retrieved excerpts, cite pages as Markdown links — stays intact.\n instructions: z.string().trim().min(1).optional(),\n // The adapter descriptor a `gateway()`/`openrouter()`/... factory\n // returns; each adapter validates its own options (model, key env var,\n // reasoning mapping, `providerOptions` passthrough) in `ai/ask.ts`.\n // Unset means the gateway with its default model, so the zero-config assistant\n // is unchanged.\n provider: assistantAdapterSchema.prefault(DEFAULT_ASSISTANT_PROVIDER),\n // How much documentation each question carries. Injected characters are\n // the dominant term in time-to-first-token on a self-hosted backend, so\n // these trade recall for latency. No zod defaults here: only what the\n // user set reaches the generated (and ejected) endpoint, so omitted\n // fields keep tracking the installed package's built-in defaults in\n // `ai/ask-context.ts` instead of pinning today's numbers as literals.\n retrieval: z\n .strictObject({\n contextBudget: z.number().int().positive().optional(),\n excerptChars: z.number().int().positive().optional(),\n maxResults: z.number().int().positive().optional(),\n })\n .optional(),\n // Empty-state prompts shown before the first question. Each renders as a\n // clickable suggestion; `icon` is an optional Lucide name beside it.\n suggestions: z\n .array(\n z.strictObject({\n icon: iconName.optional(),\n label: z.string().min(1),\n })\n )\n .default([]),\n // Where the panel's Contact support link goes: an email address\n // (`mailto:`, which starts an email with the conversation), a URL,\n // or a root-relative page (which get the conversation's `thread` id).\n support: z\n .string()\n .refine(\n (link) =>\n link.startsWith(\"mailto:\") ||\n link.startsWith(\"/\") ||\n isExternalUrl(link),\n {\n message:\n 'ai.assistant.support is a mailto: address, a URL, or a root-relative path, like \"mailto:help@example.com\".',\n }\n )\n .optional(),\n // Search and read-page tools the model can call over several steps.\n // No default here: unset follows the adapter (`toolsByDefault` in\n // `ai/ask.ts`), on for the hosted catalogs and off for an\n // OpenAI-compatible backend that may not speak tool calling.\n tools: z.boolean().optional(),\n },\n assistantMovedFieldsHint\n )\n .superRefine((value, ctx) => {\n // `cors` configures the generated route, which an external `endpoint`\n // replaces; accepting both would silently do nothing.\n if (value.cors && value.endpoint) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n \"ai.assistant.cors only applies to the generated route; with ai.assistant.endpoint, CORS is that backend's job.\",\n path: [\"cors\"],\n });\n }\n })\n .optional(),\n /**\n * The \"Open in chat\" page action. `true` (the default) lists every\n * provider, `false` hides the action entirely, and an array of provider\n * keys shows just that subset, in the given order. Normalized to the\n * provider list so consumers read a plain array.\n */\n openInChat: z\n .union([\n z.boolean(),\n z\n .array(z.enum(openInChatProviders))\n .refine((value) => new Set(value).size === value.length, {\n message: \"ai.openInChat must not repeat a provider.\",\n }),\n ])\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return value ? [...openInChatProviders] : [];\n }\n return value;\n }),\n};\n\nconst aiConfigSchema = z.strictObject(\n aiConfigFields,\n removedKeysHint({\n ...movedToAgentsHints(\"ai\"),\n ask: \"ai.ask was renamed to ai.assistant.\",\n })\n);\n\n/**\n * A pinned link rendered above the sidebar sections — a blog, changelog, or\n * contact page that should always be reachable, regardless of the active tab.\n * `href` may be an external URL or an internal route.\n */\nconst featuredLinkSchema = z.strictObject({\n href: z.string(),\n icon: iconName.optional(),\n label: localizableLabelSchema,\n});\n\n/**\n * A header link: a plain one (`Log in`, `Status`), or the single call to\n * action. Same shape as a featured link minus the icon — the header row is\n * text, not iconography.\n */\nconst headerActionSchema = z.strictObject({\n href: z.string(),\n label: localizableLabelSchema,\n});\n\nconst navigationConfigSchema = z.strictObject({\n /** Plain links in the header, left of the icon buttons. */\n actions: z.array(headerActionSchema).default([]),\n /**\n * The one primary call to action in the header, as a filled button.\n *\n * Singular on purpose: a docs header has room for exactly one thing a\n * reader is being asked to do, a row of buttons asks for nothing, and\n * `featured` already takes the secondary links.\n */\n cta: headerActionSchema.optional(),\n /** Pinned links shown above the generated sidebar sections. */\n featured: z.array(featuredLinkSchema).default([]),\n /**\n * The GitHub link in the footer. `true` derives it from `github`, `false`\n * hides it, and an absolute URL points it anywhere on GitHub — an\n * organization, say, when the docs repo itself is private and `github` has\n * to stay unset. The mark stays the GitHub one, so a URL elsewhere belongs in\n * `actions`.\n */\n repo: z.union([z.boolean(), httpUrlSchema]).default(true),\n selectors: z.array(navSelectorSchema).default([]),\n /**\n * Sidebar behavior. `display` sets how every group renders (a group in an\n * explicit `items` config may still override it); `items` is an explicit\n * sidebar — when omitted the sidebar is generated from the content tree.\n * A bare array is shorthand for `{ items }`.\n */\n sidebar: z\n .union([\n z.array(sidebarItemSchema),\n z.strictObject({\n display: sidebarDisplaySchema.default(\"flat\"),\n items: z.array(sidebarItemSchema).optional(),\n }),\n ])\n .prefault({})\n .transform((value) =>\n Array.isArray(value) ? { display: \"flat\" as const, items: value } : value\n ),\n tabs: z.array(navTabSchema).default([]),\n});\n\nexport { assistantReasoningLevels } from \"../ai/ask.ts\";\nexport type { AssistantReasoning } from \"../ai/ask.ts\";\nexport type AssistantConfig = NonNullable<\n z.infer<typeof aiConfigSchema>[\"assistant\"]\n>;\nexport { openInChatProviders } from \"./open-in-chat.ts\";\nexport type { OpenInChatProvider } from \"./open-in-chat.ts\";\nexport { mcpClients } from \"./mcp-clients.ts\";\nexport type { McpClient, McpCustomClient } from \"./mcp-clients.ts\";\n\n// Reader-facing \"Export\" page action (PDF via print, EPUB via client-side\n// generation). Off by default. Accepts a shorthand boolean to toggle both\n// formats, or an object to enable them individually; both normalize to\n// `{ epub, pdf }` so consumers read plain booleans.\nconst exportConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n epub: z.boolean().default(false),\n pdf: z.boolean().default(false),\n }),\n ])\n .transform((value) =>\n isBoolean(value) ? { epub: value, pdf: value } : value\n );\n\n// The \"Was this page helpful?\" rating, on by default. `comments: true` adds a\n// box after the rating where the reader can say more, sent through the\n// analytics adapters as a `feedback_comment` event. Both forms normalize to\n// `{ enabled, comments }`.\nconst feedbackConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n comments: z.boolean().default(false),\n enabled: z.boolean().default(true),\n }),\n ])\n // With the rating off there is nothing to comment on.\n .transform((value) =>\n isBoolean(value)\n ? { comments: false, enabled: value }\n : { comments: value.enabled && value.comments, enabled: value.enabled }\n );\n\n// \"Listen to this page\". Off by default. `true` reads pages aloud with the\n// reader's browser voices, which needs no key and works on any host; an object\n// with a `provider` (`gateway()` or `openai()` from `blume/ai`) generates\n// neural audio at build instead, one cached clip per sentence, and falls back\n// to the browser's voices where no clips exist (`blume dev`, a build without\n// the key). Both normalize to `{ enabled, provider }`.\nconst narrationConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n enabled: z.boolean().default(true),\n provider: narrationProviderSchema.optional(),\n }),\n ])\n .transform((value) =>\n isBoolean(value)\n ? { enabled: value, provider: null }\n : { enabled: value.enabled, provider: value.provider ?? null }\n );\n\n/** A configured locale: ISO-ish code plus display metadata for the switcher. */\nconst localeSchema = z.strictObject({\n code: z.string().min(1),\n /** Text direction; drives `<html dir>` and a future RTL pass. */\n dir: z.enum([\"ltr\", \"rtl\"]).default(\"ltr\"),\n label: z.string(),\n /**\n * Freeform style guidance for `blume translate`, e.g. \"Brazilian\n * Portuguese, informal você\". Pins register and dialect from the first\n * translation and wins over an existing translation's style on reruns.\n */\n style: z.string().optional(),\n});\n\n/**\n * Internationalization. Opt-in: when absent, Blume is single-locale and behaves\n * exactly as before. The default locale lives at the content root; other locales\n * are top-level directories named by `code` (the `dir` parser).\n */\nconst i18nConfigSchema = z\n .strictObject({\n defaultLocale: z.string().default(\"en\"),\n /** Locale rendered for a missing translation; `null` disables fallback. */\n fallbackLocale: z.string().nullable().optional(),\n /** Drop the URL prefix for the default locale (`/`, `/fr/…`). Static-safe. */\n hideDefaultLocalePrefix: z.boolean().default(true),\n locales: z.array(localeSchema).min(1),\n /** `\"dir\"`: locale directories (`fr/page.mdx`). `\"dot\"`: filename suffix (`page.fr.mdx`). */\n parser: z.enum([\"dir\", \"dot\"]).default(\"dir\"),\n /**\n * Send a visitor who lands on the default language's home page to the\n * home page in their browser's preferred language, until they pick a\n * language with the switcher. Off by default.\n */\n routeByBrowserLanguage: z.boolean().default(false),\n /** Per-locale UI string overrides: `{ fr: { search: { button: \"…\" } } }`. */\n ui: uiLocaleOverridesSchema.optional(),\n })\n .superRefine((value, ctx) => {\n const codes = new Set(value.locales.map((locale) => locale.code));\n if (!codes.has(value.defaultLocale)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `i18n.defaultLocale \"${value.defaultLocale}\" must match one of i18n.locales.`,\n path: [\"defaultLocale\"],\n });\n }\n if (\n value.fallbackLocale !== null &&\n value.fallbackLocale !== undefined &&\n !codes.has(value.fallbackLocale)\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `i18n.fallbackLocale \"${value.fallbackLocale}\" must match one of i18n.locales.`,\n path: [\"fallbackLocale\"],\n });\n }\n });\n\n/**\n * Version ids must start with a letter (`v1.0`, not `1.0`): the id doubles as\n * the snapshot directory name, and a leading digit would collide with the\n * numeric-prefix ordering convention (`01-intro.mdx`), which strips `1.0/` to\n * `0/`. The rest allows word characters, dots, and hyphens — URL-safe as-is.\n */\nexport const VERSION_ID = /^[A-Za-z][\\w.-]*$/u;\n\n/** A frozen documentation snapshot: a directory under the content root. */\nconst archivedVersionSchema = z.strictObject({\n /**\n * The \"you're viewing an old version\" notice: `true` for the built-in\n * message, a string for custom copy, `false` to hide it.\n */\n banner: z.union([z.boolean(), z.string()]).default(true),\n /**\n * Where this version's pages point their canonical URL: `latest` targets the\n * same page in the current docs when it still exists (self otherwise), so\n * search engines treat the live page as authoritative without deindexing\n * version-only content. `self` keeps every page authoritative.\n */\n canonical: z.enum([\"latest\", \"self\"]).default(\"latest\"),\n /** Directory name under the content root, and the URL segment. */\n id: z\n .string()\n .regex(\n VERSION_ID,\n 'Version ids must start with a letter (e.g. \"v1.0\") and contain only letters, digits, dots, hyphens, and underscores.'\n ),\n /** Switcher label; defaults to the id. */\n label: z.string().optional(),\n /** Emit `noindex` on every page of this version. */\n noindex: z.boolean().default(false),\n});\n\n/**\n * Docs versioning. Opt-in: the latest docs live at the content root with\n * unprefixed URLs, and each archived version is a frozen snapshot directory\n * (`content/docs/<id>/`) cut with `blume version <id>`. Archived means frozen:\n * snapshots carry their own translations and are never retranslated.\n */\nconst versionsConfigSchema = z\n .strictObject({\n /** Frozen snapshots, newest first — this order is the switcher order. */\n archived: z.array(archivedVersionSchema).default([]),\n /** Labels the unprefixed tree (the latest docs) in the switcher. */\n current: z.strictObject({\n /** Small tag rendered next to the label (e.g. `Latest`). */\n badge: z.string().optional(),\n label: z.string(),\n }),\n switcher: z\n .strictObject({\n /**\n * Where switching lands when the page has no equivalent in the target\n * version: `same-page` goes to the equivalent when it exists (version\n * root otherwise); `root` always goes to the version root.\n */\n redirect: z.enum([\"same-page\", \"root\"]).default(\"same-page\"),\n })\n .prefault({}),\n })\n .superRefine((value, ctx) => {\n const seen = new Set<string>();\n for (const [position, version] of value.archived.entries()) {\n if (seen.has(version.id)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `versions.archived declares \"${version.id}\" more than once.`,\n path: [\"archived\", position, \"id\"],\n });\n }\n seen.add(version.id);\n }\n });\n\nconst URL_ORIGIN = /^[a-z][\\d+.a-z-]*:\\/\\/[^/]*/iu;\n\n/**\n * The shape each end must start with: `from` is always a path on this site,\n * `to` may also leave it. A path without its leading slash would never gain\n * `basePath` or the deployment base, and hosts read it relative to nothing.\n */\nconst REDIRECT_START = {\n from: {\n allows: (path: string) => path.startsWith(\"/\"),\n message:\n \"redirects take root-relative paths: `from` must start with `/` (`/old-page`, not `old-page`).\",\n },\n to: {\n allows: (path: string) => path.startsWith(\"/\") || URL_ORIGIN.test(path),\n message:\n \"redirects take root-relative paths or full URLs: `to` must start with `/` (`/new-page`, not `new-page`) or be an absolute URL (`https://…`).\",\n },\n};\n\nconst redirectPath = (end: \"from\" | \"to\") =>\n z.string().refine(REDIRECT_START[end].allows, {\n message: REDIRECT_START[end].message,\n });\n\n/**\n * A redirect: an exact path, or a pattern (`/beta/:slug*`, `/old/*`) whose\n * captures `to` may read (see `core/redirect-patterns.ts`).\n */\nconst redirectSchema = z\n .strictObject({\n from: redirectPath(\"from\"),\n status: z\n .union([z.literal(301), z.literal(302), z.literal(307), z.literal(308)])\n .default(301),\n to: redirectPath(\"to\"),\n })\n .superRefine((redirect, ctx) => {\n const error = redirectPatternError(redirect.from, redirect.to);\n if (error) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: error.message,\n path: [error.end],\n });\n }\n });\n\n/**\n * One authorized remote image source, passed through to Astro's\n * `image.remotePatterns`. Wildcards follow Astro's rules: `hostname` accepts\n * `**.example.com` (any depth) or `*.example.com` (one level), `pathname`\n * accepts `/dir/**` or `/dir/*` the same way.\n */\nconst imageRemotePatternSchema = z.strictObject({\n hostname: z.string().optional(),\n pathname: z.string().optional(),\n port: z.string().optional(),\n protocol: z.string().optional(),\n});\n\n/**\n * Image optimization (`image`). Local images referenced by relative path\n * (``) are optimized at build time automatically —\n * compressed, converted to WebP, and stamped with intrinsic dimensions.\n * Remote images are only optimized when their host is authorized here;\n * both fields map directly onto Astro's `image` config.\n */\nconst imageConfigSchema = z.strictObject({\n /** Hosts whose remote images may be optimized, e.g. `[\"cdn.example.com\"]`. */\n domains: z.array(z.string()).default([]),\n /** Pattern-based host authorization, for wildcards `domains` can't express. */\n remotePatterns: z.array(imageRemotePatternSchema).default([]),\n});\n\n/**\n * X (Twitter) attribution. The account fields feed `twitter:site` (the site's\n * account) and `twitter:creator` (the author's), which is the one piece of X\n * card metadata with no Open Graph equivalent to fall back to — everything else\n * on the card is read from `og:*`.\n */\nconst xConfigSchema = z.strictObject({\n /** The author's account, overridable per page via `seo.x.creator`. */\n creator: xHandleSchema,\n /** The site's own account, e.g. `@blume`. */\n handle: xHandleSchema,\n});\n\n/**\n * Any CSS color. Takumi parses the full grammar, so this stays unvalidated\n * here and a bad value fails the OG prerender with a parse error naming it —\n * the same fail-fast the card's accent relies on. Validating hex-only here\n * would reject `oklch(…)`, which `theme.accent` (the card's default accent)\n * already accepts.\n */\nconst ogColorSchema = z.string();\n\nconst ogPaletteSchema = z.strictObject({\n accent: ogColorSchema.optional(),\n background: ogColorSchema.optional(),\n border: ogColorSchema.optional(),\n foreground: ogColorSchema.optional(),\n muted: ogColorSchema.optional(),\n});\n\n/**\n * A font to load into the OG card renderer. A bare string is a Google Fonts\n * family name; the name-only object form pins the weight (a number, a list, or\n * a variable range like `\"100..900\"`) and style, fetched from Google Fonts at\n * build. The `src` form reads a local font file from the project instead.\n * Either way Takumi does per-glyph fallback, so a family covering a script\n * (e.g. Noto Sans JP for CJK) fixes tofu without touching how Latin renders.\n */\nconst ogFontWeightSchema = z.union([\n z.number().int().positive(),\n z.array(z.number().int().positive()),\n z.string().regex(/^\\d+\\.\\.\\d+$/u),\n]);\nconst ogFontStyleSchema = z.enum([\"normal\", \"italic\"]);\nconst ogFontSchema = z.union([\n z.string(),\n z.strictObject({\n name: z.string(),\n style: z.union([ogFontStyleSchema, z.array(ogFontStyleSchema)]).optional(),\n weight: ogFontWeightSchema.optional(),\n }),\n /** A local font file, read from the project at build. */\n z.strictObject({\n name: z.string(),\n src: z.string().min(1),\n style: ogFontStyleSchema.optional(),\n weight: z.number().int().positive().optional(),\n }),\n]);\n\nconst ogConfigSchema = z.strictObject({\n /**\n * Site-wide card subtitle, shown on pages without their own description.\n * Defaults to the site description; a string overrides it, `false` renders\n * every card without a subtitle (page descriptions included).\n */\n description: z.union([z.string(), z.literal(false)]).optional(),\n /**\n * Generate a per-page Open Graph image. Defaults to on once a deployment\n * site URL is known (set or auto-detected) and off otherwise, since\n * `og:image` must be absolute to be useful to crawlers, and off when `image`\n * sets a default every page would show instead — resolved in `loadConfig`.\n * An explicit value here always wins.\n */\n enabled: z.boolean().optional(),\n /**\n * Fonts for the generated card, replacing the default stack (Takumi's\n * Latin-only built-in font plus a Noto fallback per script). Google\n * families are fetched from Google Fonts at build.\n */\n fonts: z.array(ogFontSchema).optional(),\n /**\n * Default social image for pages without their own `seo.image`, in place of\n * the generated card: one path or URL, or one per locale (resolved like any\n * localizable label). A root-relative path is served under the deployment\n * base.\n */\n image: localizableLabelSchema.optional(),\n /**\n * Local SVG used in the generated card instead of the site logo; `false`\n * renders the card without any brand mark.\n */\n logo: z.union([z.string(), z.literal(false)]).optional(),\n /** Optional generated-card colors. */\n palette: ogPaletteSchema.optional(),\n /**\n * Footer site text. Defaults to the deployment site's host plus\n * `deployment.base` (`docs.acme.com`, `user.github.io/repo`); a string\n * overrides it, `false` hides it.\n */\n site: z.union([z.string(), z.literal(false)]).optional(),\n /**\n * Card headlines for custom `.astro` pages, keyed by route (`\"/\"`, `\"/cli\"`).\n * A custom page has no frontmatter to read, so its card is otherwise titled\n * by humanizing its last URL segment (`/cli` → \"Cli\"); an entry here wins.\n * Content pages always take their card headline from the page title.\n */\n titles: z.record(z.string(), z.string()).optional(),\n});\n\nconst rssConfigSchema = z.strictObject({\n enabled: z.boolean().default(true),\n /** Max items per feed, newest first. */\n limit: z.number().int().positive().default(50),\n /** Content types that each get a feed at `/<type>/rss.xml`. */\n types: z.array(z.string()).default([\"blog\", \"changelog\"]),\n});\n\n/**\n * robots.txt `Content-Signal` preferences — the emerging content-usage\n * declaration for how crawlers may reuse the site. Each field maps to one\n * signal:\n * - `search` → `search` (traditional and AI search indexing)\n * - `aiInput` → `ai-input` (grounding / RAG use at answer time)\n * - `aiTrain` → `ai-train` (model training)\n */\nconst contentSignalsObjectSchema = z.strictObject({\n aiInput: z.boolean().default(true),\n aiTrain: z.boolean().default(true),\n search: z.boolean().default(true),\n});\n\n/**\n * Content signals accept a boolean shorthand or a per-signal object, and\n * normalize to `{ search, aiInput, aiTrain }` — or `null` when disabled, so\n * robots.txt omits the declaration entirely. On by default (`true`): Blume\n * declares the docs open to search and agents. `false` opts out; an object\n * restricts individual signals (unset signals stay `yes`).\n */\nconst contentSignalsSchema = z\n .union([z.boolean(), contentSignalsObjectSchema])\n .transform((value) => {\n if (value === true) {\n return contentSignalsObjectSchema.parse({});\n }\n if (value === false) {\n return null;\n }\n return value;\n });\n\n/** A schema.org `PostalAddress`, any part of which may be given. */\nconst postalAddressSchema = z.strictObject({\n addressCountry: z.string().optional(),\n addressLocality: z.string().optional(),\n addressRegion: z.string().optional(),\n postalCode: z.string().optional(),\n streetAddress: z.string().optional(),\n});\n\n/**\n * `seo.organization`: the organization behind the site, emitted on every page\n * as a schema.org `Organization` node (see `seo/jsonld.ts`). Name and URL\n * default to the site's; contact details become a `ContactPoint`, the address\n * a `PostalAddress` — what agents check to verify a business.\n */\nconst organizationConfigSchema = z.strictObject({\n address: postalAddressSchema.optional(),\n contactType: z.string().default(\"customer support\"),\n email: z.email().optional(),\n logo: z.string().optional(),\n name: z.string().optional(),\n sameAs: z.array(z.url()).default([]),\n telephone: z.string().optional(),\n url: z.url().optional(),\n});\n\n/**\n * `seo.software`: the product the site documents, emitted on the homepage as\n * a schema.org `SoftwareApplication` node. `true` takes every default (name\n * and description from the site, category `DeveloperApplication`).\n */\nconst softwareConfigSchema = z.strictObject({\n applicationCategory: z.string().default(\"DeveloperApplication\"),\n description: z.string().optional(),\n license: z.string().optional(),\n name: z.string().optional(),\n operatingSystem: z.string().optional(),\n price: z.union([z.number().nonnegative(), z.string()]).optional(),\n priceCurrency: z.string().default(\"USD\"),\n sameAs: z.array(z.url()).default([]),\n});\n\ntype SoftwareResolved = z.output<typeof softwareConfigSchema>;\n\n/** Discoverability features: OG images, feeds, sitemap, structured data. */\nconst seoConfigFields = {\n /**\n * Date pages without a front matter `date` by the git commit that added\n * their source file, following exact renames. Off by default.\n */\n datePublished: z.union([z.literal(false), z.literal(\"git\")]).default(false),\n /**\n * Structured-data entities shared with a parent site (`example.com/docs`),\n * referenced by absolute `@id` instead of defined again (see `seo/jsonld.ts`).\n */\n jsonLd: z\n .strictObject({\n /** Credited on pages without their own `authors`. */\n author: z.strictObject({ \"@id\": z.url() }).optional(),\n /** The Organization's `@id`; `seo.organization` still adds its details. */\n organizationId: z.url().optional(),\n /** Every page's publisher, over the Organization. */\n publisher: z.strictObject({ \"@id\": z.url() }).optional(),\n /** Emit the WebSite node. Defaults to true unless `websiteId` is set. */\n website: z.boolean().optional(),\n /** The WebSite's `@id`, which every page names as `isPartOf`. */\n websiteId: z.url().optional(),\n })\n .prefault({}),\n /**\n * Meta tags written into every page's head, name to content: site\n * verification, `theme-color`, and anything else Blume has no setting for.\n * A tag Blume writes itself is refused with the setting that controls it.\n */\n metatags: z\n .record(z.string().min(1), z.string())\n .optional()\n .superRefine((tags, ctx) => {\n for (const name of Object.keys(tags ?? {})) {\n const owner = ownedMetatag(name);\n if (owner) {\n ctx.addIssue({\n code: \"custom\",\n message: `seo.metatags can't set \"${name}\": Blume writes that tag. Set it with ${owner}.`,\n path: [name],\n });\n }\n }\n }),\n og: ogConfigSchema.default({}),\n /** The organization behind the site, as an `Organization` JSON-LD node. */\n organization: organizationConfigSchema.optional(),\n /** Generate robots.txt (with a Sitemap reference when available). */\n robots: z.boolean().default(true),\n rss: rssConfigSchema.prefault({}),\n /**\n * Generate sitemap.xml (requires deployment.site). `{ alternates: true }`\n * also lists each page's translations as hreflang links.\n */\n sitemap: z\n .union([\n z.boolean(),\n z.strictObject({ alternates: z.boolean().default(false) }),\n ])\n .default(true),\n /** The documented product, as a homepage `SoftwareApplication` node. */\n software: z\n .union([z.boolean(), softwareConfigSchema])\n .optional()\n .transform((value): SoftwareResolved | undefined => {\n if (value === true) {\n return softwareConfigSchema.parse({});\n }\n return value === false ? undefined : value;\n }),\n /** Emit schema.org JSON-LD in each page's <head>. */\n structuredData: z.boolean().default(true),\n /** X (Twitter) account attribution for share cards. */\n x: xConfigSchema.default({}),\n};\n\nconst seoConfigSchema = z.strictObject(\n seoConfigFields,\n removedKeysHint({\n agentReadability: \"seo.agentReadability moved to agents.agentReadability.\",\n contentSignals: \"seo.contentSignals moved to agents.contentSignals.\",\n })\n);\n\n/**\n * The machine-readable surface agents consume: the JSON API, `llms.txt`, the\n * MCP server, published skills, discovery manifests, and the robots.txt\n * usage policy. Everything reader-facing that talks to a model (the assistant, Open\n * in chat) stays under `ai`.\n */\nconst agentsConfigSchema = z.strictObject({\n /**\n * Emit `agent-readability.json` at the site root: a manifest that indexes\n * the agent-facing surface (llms.txt, Markdown mirrors, MCP server, feeds)\n * so agents can discover it without scraping HTML.\n */\n agentReadability: z.boolean().default(true),\n /**\n * The JSON docs API: the page index, per-page JSON, and navigation under\n * `/api/docs/` (prerendered, so a static site serves them from files), the\n * live search endpoint on server output, and the OpenAPI description of\n * the whole machine-readable surface at `/openapi.json`. On by default.\n */\n api: z.boolean().default(true),\n /**\n * The AI Catalog / ARD manifest at `/.well-known/ai-catalog.json` (mirrored\n * at `/.well-known/ard.json`): one entry per agent-facing resource the site\n * publishes — the MCP server card, each agent skill, the JSON docs API's\n * OpenAPI document, each rendered API reference, and llms.txt — so agent\n * registries can index the site from its domain alone. Needs a\n * `deployment.site` (identifiers are domain-anchored URNs). On by default;\n * the object form overrides the generated representative queries.\n */\n catalog: z\n .union([z.boolean(), aiCatalogObjectSchema])\n .default(true)\n .transform((value): AiCatalogResolved =>\n isBoolean(value) ? { enabled: value, queries: {} } : value\n ),\n /** robots.txt `Content-Signal` usage declaration (on by default). */\n contentSignals: contentSignalsSchema.prefault(true),\n /**\n * `llms.txt`/`llms-full.txt` emission. A bare boolean toggles it; the object\n * form adds `openapi: false` to keep generated API reference pages out of\n * both files (e.g. when the configured spec is example content) and\n * `details`, free-form Markdown placed after the summary — the llms.txt\n * spec's details block, where a site tells agents when to reach for it.\n */\n llmsTxt: z\n .union([z.boolean(), llmsTxtObjectSchema])\n .default(true)\n .transform((value): LlmsTxtResolved =>\n isBoolean(value) ? { enabled: value, openapi: true } : value\n ),\n // Serializers for the agent-facing Markdown downlevel (the `.md` mirror,\n // llms-full.txt, MCP get_page), keyed by JSX name. Functions live here —\n // not in components.tsx — because the config file is executed at build\n // time while the components file is only statically analyzed. A same-name\n // entry replaces the built-in serializer.\n // Two-argument `z.record` — the single-argument form throws at\n // schema-construction time under Zod 4 (see uiStringsOverrideSchema).\n markdownComponents: z\n .record(\n z.string(),\n z.custom<ComponentMarkdown>(\n (value): value is ComponentMarkdown => typeof value === \"function\",\n {\n message: \"Expected a serializer function.\",\n }\n )\n )\n .default({}),\n /** Expose the docs as an MCP server for connecting agents. */\n mcp: mcpConfigSchema.prefault({}),\n /**\n * Generate the site's own agent skill: a `SKILL.md` named after the site,\n * built from its navigation, page descriptions, and agent surfaces, served\n * at `/skill.md` and in the skills discovery index. Needs a\n * `deployment.site`. A skill in `agents.skills` with the same name replaces\n * it. On by default.\n */\n skillMd: z.boolean().default(true),\n /**\n * Publish Agent Skills for discovery: a directory (resolved against the\n * project root) whose subdirectories each hold a `SKILL.md`. The build\n * copies each skill under `/.well-known/agent-skills/` — a lone `SKILL.md`\n * verbatim, a skill with supporting files as a `.tar.gz` — and emits the\n * discovery index (`index.json`) with SHA-256 digests per the Agent Skills\n * Discovery RFC.\n */\n skills: z.string().min(1).optional(),\n /**\n * Web Bot Auth (IETF `webbotauth`): publish the org's HTTP Message\n * Signature public keys at `/.well-known/http-message-signatures-directory`\n * so sites receiving requests from the org's agents can verify them.\n * Opt-in and public-keys-only — the private keys live wherever the signing\n * agents run, never in the site.\n */\n webBotAuth: z\n .strictObject({\n keys: z.array(publicJwkSchema).default([]),\n })\n .prefault({}),\n /**\n * WebMCP: register in-page tools (search, page Markdown, the docs index)\n * on the browser's model context so agentic browsers can drive the docs\n * without a separate MCP connection. A tiny script that no-ops in browsers\n * without the API; on by default.\n */\n webmcp: z.boolean().default(true),\n});\n\n/**\n * The GitHub instance's origin, normalized. Repo, edit, and API URLs are all\n * built by appending to this, so it is reduced to a bare origin: a trailing\n * slash would double the separator, and a path, query, fragment, or embedded\n * credentials would land in the middle of every generated link.\n */\nconst githubOriginSchema = httpUrlSchema.transform(\n (value) => new URL(value).origin\n);\n\n/**\n * A REST API base: an origin plus an optional path, since Enterprise Server\n * serves the API from `/api/v3`. Anything past the path is dropped for the same\n * reason the host is reduced — `/repos/{owner}/{repo}` is appended as a string,\n * so a query would swallow the route and a fragment would strip it from the\n * request entirely, leaving a lookup that silently returns the wrong thing.\n */\nconst githubApiSchema = httpUrlSchema.transform((value) => {\n const { origin, pathname } = new URL(value);\n return trimEnd(`${origin}${pathname}`, \"/\");\n});\n\nconst githubConfigSchema = z.strictObject({\n /** REST API base. Derived from `host` when unset. */\n api: githubApiSchema.optional(),\n branch: z.string().default(\"main\"),\n /** Path from the repo root to the project root (for monorepos). */\n dir: z.string().optional(),\n /** Origin of the GitHub instance, for Enterprise installations. */\n host: githubOriginSchema.default(PUBLIC_HOST_URL),\n owner: z.string(),\n repo: z.string(),\n});\n\n/** The theme fields the structural code-theme check inspects. */\ninterface CodeThemeFields {\n colors?: unknown;\n settings?: unknown;\n tokenColors?: unknown;\n}\n\n/** A non-null, non-array object — the floor for a theme and its `colors` map. */\nconst isThemeObject = <Value>(value: Value): value is Value & CodeThemeFields =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst codeThemeSchema = z.custom<CodeTheme>((value) => {\n if (isString(value)) {\n return true;\n }\n if (!isThemeObject(value)) {\n return false;\n }\n // Token rules live in `settings` (Shiki's canonical field, also the TextMate\n // form themes like createCssVariablesTheme() produce) or `tokenColors` (the\n // VS Code spelling Shiki falls back to). A colors-only theme (editor fg/bg,\n // no token rules) is also valid — Shiki renders it from `colors` alone. Each\n // field present must have the right shape, and at least one must be present.\n const settingsValid =\n value.settings === undefined || Array.isArray(value.settings);\n const tokenColorsValid =\n value.tokenColors === undefined || Array.isArray(value.tokenColors);\n const colorsValid = value.colors === undefined || isThemeObject(value.colors);\n const hasContent =\n value.settings !== undefined ||\n value.tokenColors !== undefined ||\n value.colors !== undefined;\n return settingsValid && tokenColorsValid && colorsValid && hasContent;\n}, \"Expected a Shiki theme name or custom theme object\");\n\nconst codeBlockThemeSchema = z.strictObject({\n dark: codeThemeSchema.default(\"github-dark\"),\n light: codeThemeSchema.default(\"github-light\"),\n});\n\n/**\n * `<Component />` example previews. A string is shorthand for `{ source }`:\n * where examples live, relative to the project root (default `examples`).\n * `source` may be a glob (anything with `*`/`?`/`[]`/`{}`/`!`), in which case\n * only matching files are discovered and each `<Component path>` key is\n * relative to the glob's static prefix — use this for a registry layout that\n * colocates component sources with their examples\n * (`registry/<pkg>/**\\/examples/*`), leaving the sources (which have no\n * default export to wrap) out.\n *\n * `css` names a stylesheet (relative to the project root) injected into every\n * preview frame after Blume's default tokens. Previews render in an isolated\n * iframe that the site's docs styles never reach, so this is where design\n * tokens for the previewed components live — e.g. shadcn variables and\n * `@theme` mappings. Tailwind itself is already provided; the file should\n * hold tokens and custom styles, not another `@import \"tailwindcss\"`.\n */\nconst examplesConfigSchema = z\n .union([\n z.string(),\n z.strictObject({\n css: z.string().optional(),\n source: z.string().default(\"examples\"),\n }),\n ])\n .transform((value): { css?: string; source: string } =>\n isString(value) ? { source: value } : value\n );\n\n/**\n * \"Last updated\" timestamps for content pages. `false` (default) disables the\n * feature; `\"git\"` derives each page's date from the repository history;\n * `\"frontmatter\"` never runs git and reads only the page's own field. A page's\n * `lastModified` frontmatter always wins. The 1.x `true` and `{ type }` forms\n * fail with the hint below.\n */\nconst lastModifiedConfigSchema = z.union(\n [z.literal(false), z.enum([\"git\", \"frontmatter\"])],\n {\n error: (issue) =>\n issue.code === \"invalid_union\"\n ? 'lastModified takes false, \"git\", or \"frontmatter\": `true` became \"git\" and `{ type: \"…\" }` became the bare string.'\n : undefined,\n }\n);\n\n/**\n * How the \"last updated\" stamp and the changelog timeline render their dates —\n * a curated pass-through to `Intl.DateTimeFormat`, shared by both surfaces so\n * they read alike. Defaults to `{ dateStyle: \"long\" }`. Both stamps format in\n * UTC unless a `timeZone` is given, so a date reads the same regardless of the\n * build machine's zone. `dateStyle` is a preset that can't be combined with the\n * individual component fields (`year`, `month`, …), matching `Intl`'s own rule.\n */\n/** The `dateFormat` fields that choose the date's shape (length, components). */\nconst DATE_FORM_FIELDS = [\n \"dateStyle\",\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n] as const;\n\n/**\n * Whether `Intl` knows a time zone. An unknown one (`Asia/Tokio`) throws a\n * RangeError the first time a date is formatted, deep in a page render, so it\n * is caught here where the error can point at `dateFormat.timeZone`.\n */\nconst isKnownTimeZone = (timeZone: string): boolean => {\n try {\n Intl.DateTimeFormat(\"en\", { timeZone });\n return true;\n } catch {\n return false;\n }\n};\n\nconst dateFormatConfigSchema = z\n .strictObject({\n /** Calendar system (e.g. `japanese`, `buddhist`). */\n calendar: z.string().optional(),\n /** Preset date length; mutually exclusive with the component fields. */\n dateStyle: z.enum([\"full\", \"long\", \"medium\", \"short\"]).optional(),\n /** Day representation. */\n day: z.enum([\"numeric\", \"2-digit\"]).optional(),\n /** Era representation (e.g. the Japanese imperial era). */\n era: z.enum([\"long\", \"short\", \"narrow\"]).optional(),\n /** Month representation. */\n month: z.enum([\"numeric\", \"2-digit\", \"long\", \"short\", \"narrow\"]).optional(),\n /** Numbering system (e.g. `latn`, `arab`). */\n numberingSystem: z.string().optional(),\n /** IANA time zone (e.g. `Asia/Tokyo`). Defaults to `UTC`. */\n timeZone: z\n .string()\n .refine(isKnownTimeZone, {\n message:\n 'Unknown time zone; use an IANA name like \"Asia/Tokyo\" or \"UTC\".',\n })\n .optional(),\n /** Weekday representation. */\n weekday: z.enum([\"long\", \"short\", \"narrow\"]).optional(),\n /** Year representation. */\n year: z.enum([\"numeric\", \"2-digit\"]).optional(),\n })\n .refine(\n (value) =>\n value.dateStyle === undefined ||\n (value.weekday === undefined &&\n value.era === undefined &&\n value.year === undefined &&\n value.month === undefined &&\n value.day === undefined),\n {\n message:\n \"dateFormat.dateStyle can't be combined with weekday/era/year/month/day; use one or the other.\",\n }\n )\n // `timeZone`, `calendar`, and `numberingSystem` don't pick a shape, so a\n // format that sets only those keeps the long default instead of falling to\n // Intl's bare numeric date (`7/21/2026`).\n .transform((value) =>\n DATE_FORM_FIELDS.some((field) => value[field] !== undefined)\n ? value\n : { ...value, dateStyle: \"long\" as const }\n );\n\n/** Code rendering options (`markdown.code`). */\nconst codeConfigSchema = z.strictObject({\n /**\n * Show a brand language icon in the code-block header (TypeScript, Python,\n * …). On by default; recognized languages only.\n */\n icons: z.boolean().default(true),\n /**\n * Light/dark Shiki themes for every code surface: fenced blocks, inline\n * `` `code`{:lang} ``, `<CodeBlock>`, and `<Diff>`.\n */\n theme: codeBlockThemeSchema.prefault({}),\n /**\n * Wrap long lines instead of scrolling horizontally. Off by default, so\n * code keeps its original line breaks and overflows into a scroll area.\n */\n wrap: z.boolean().default(false),\n});\n\nconst markdownConfigFields = {\n /** Code rendering: language icons, syntax themes, and line wrapping. */\n code: codeConfigSchema.prefault({}),\n /**\n * Open external Markdown links (absolute `http(s)://` and `//host` URLs) in\n * a new tab, like Blume's own header and sidebar links: `target=\"_blank\"`,\n * `rel=\"noreferrer\"`, an arrow icon, and a screen-reader \"Opens in a new\n * tab\" hint. Off by default; site routes, fragments, and `mailto:`/`tel:`\n * links are never affected.\n */\n externalLinks: z.boolean().default(false),\n /**\n * Wrap each `##`–`######` heading in a link to its own anchor so readers can\n * click to copy, bookmark, or share a permalink to that section. On by\n * default; set to `false` to render plain headings.\n */\n headingAnchors: z.boolean().default(true),\n /**\n * Make content images click-to-zoom (open in a lightbox). On by default;\n * opt a single image out with `data-no-zoom`.\n */\n imageZoom: z.boolean().default(true),\n};\n\nconst markdownConfigSchema = z.strictObject(\n markdownConfigFields,\n removedKeysHint({\n codeBlocks:\n \"markdown.codeBlocks was merged into markdown.code: move theme: { light, dark } under markdown.code.\",\n })\n);\n\n/** React island behavior (`react`). */\nconst reactConfigSchema = z.strictObject({\n /**\n * Auto-memoize React components/hooks with the React Compiler\n * (`oxc-transform-react`). On by default whenever React is enabled\n * (a project `.tsx`/`.jsx`, a React island/example/override, or the assistant); set\n * to `false` to skip the compiler pass.\n */\n compiler: z.boolean().default(true),\n});\n\n/**\n * Opt-in custom frontmatter keys. `extend` maps each extra key a project's\n * pages may carry (e.g. `owner`, `reviewedAt`) to a validation schema; the\n * page schema stays strict for everything else, so typo-catching is preserved.\n * Schemas are consumed through the Standard Schema `~standard` contract —\n * never Zod's own API — so the consumer's zod (any version), Valibot, or\n * ArkType all work (see `standard-schema.ts`). Every declared key is validated\n * on every page, absent ones included, so a required schema enforces the key\n * site-wide; mark it `.optional()` to validate only when present. Built-in\n * frontmatter fields can't be redeclared — they're load-bearing (routing,\n * sidebar, SEO), and shadowing one would silently change its semantics.\n */\nconst frontmatterConfigSchema = z.strictObject({\n extend: customKeySchemaRecord(\"frontmatter.extend\"),\n});\n\n/** Full user-facing config schema. All fields optional with defaults. */\n/**\n * Table-of-contents config. `true`/`false` toggles it; an object narrows the\n * heading range. Normalized to `{ enabled, minLevel, maxLevel }` (default: on,\n * H2–H3, matching the historical hardcoded range).\n */\nconst tocConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n maxHeadingLevel: z.number().int().min(1).max(6).optional(),\n minHeadingLevel: z.number().int().min(1).max(6).optional(),\n }),\n ])\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return { enabled: value, maxLevel: 3, minLevel: 2 };\n }\n return {\n enabled: true,\n maxLevel: value.maxHeadingLevel ?? 3,\n minLevel: value.minHeadingLevel ?? 2,\n };\n })\n // Checked after defaults apply, so `{ minHeadingLevel: 5 }` (default max 3)\n // is caught too — an inverted range would silently render an empty TOC.\n .refine((value) => value.minLevel <= value.maxLevel, {\n message:\n \"toc.minHeadingLevel must be less than or equal to toc.maxHeadingLevel.\",\n });\n\nexport const blumeConfigSchema = z\n .strictObject(\n {\n agents: agentsConfigSchema.prefault({}),\n ai: aiConfigSchema.prefault({}),\n // Adapters from `blume/analytics`, each a serializable descriptor.\n analytics: analyticsConfigSchema,\n api: apiConfigSchema.prefault({}),\n banner: bannerConfigSchema.optional(),\n /**\n * Site-wide mount point prepended to every generated route (e.g. `/docs`),\n * while staying invisible to the sidebar/nav tree. Distinct from a per-source\n * `prefix` (which creates a group) and from `deployment.base` (Astro's\n * host-subdirectory base); the two compose. Normalized to `\"\"` or `/seg`.\n */\n basePath: z\n .string()\n // Normalizing would turn a URL into `/https:/docs.example.com/docs`\n // and keep a query or fragment inside every route.\n .refine((value) => !URL_ORIGIN.test(value) && !/[#?]/u.test(value), {\n message:\n 'basePath takes a path like \"/docs\", not a URL: no scheme, host, query, or fragment. The site\\'s origin goes in deployment.site.',\n })\n .optional()\n .transform((value) => normalizeBasePath(value)),\n changelog: changelogConfigSchema.optional(),\n // An adapter from `blume/consent`; analytics waits for the reader.\n consent: consentConfigSchema,\n content: contentConfigSchema.prefault({}),\n /**\n * Date presentation for the \"last updated\" stamp and the changelog timeline.\n * Pass-through `Intl.DateTimeFormat` options; defaults to `{ dateStyle: \"long\" }`.\n */\n dateFormat: dateFormatConfigSchema.default({ dateStyle: \"long\" }),\n /**\n * A host adapter from `blume/deploy` (`vercel()`, `netlify()`,\n * `cloudflare()`, `node()`) for a server build on that host, or the plain\n * `{ site, base }` form for a static build anywhere. Resolves to the\n * adapter's descriptor with `output` filled in; `static` when unset.\n */\n deployment: resolvedDeploymentSchema.prefault({}),\n description: z.string().optional(),\n /**\n * Where `<Component path>` resolves live previews and their source from.\n * A string is shorthand for `{ source }` — the directory (or glob, for\n * colocated registry layouts) under the project root that holds example\n * files. The object form adds `css`: a stylesheet injected into every\n * preview frame (design tokens, shadcn variables, `@theme` mappings).\n */\n examples: examplesConfigSchema.prefault(\"examples\"),\n export: exportConfigSchema.prefault(false),\n feedback: feedbackConfigSchema.prefault(true),\n footer: footerConfigSchema.optional(),\n /** Opt-in custom frontmatter keys, validated by user-supplied schemas. */\n frontmatter: frontmatterConfigSchema.prefault({}),\n github: githubConfigSchema.optional(),\n i18n: i18nConfigSchema.optional(),\n image: imageConfigSchema.prefault({}),\n integrations: z.array(z.custom<AstroIntegration>()).default([]),\n lastModified: lastModifiedConfigSchema.default(false),\n logo: logoConfigSchema.optional(),\n markdown: markdownConfigSchema.prefault({}),\n narration: narrationConfigSchema.prefault(false),\n navigation: navigationConfigSchema.prefault({}),\n poweredBy: z.boolean().default(true),\n // An adapter from `blume/ratelimit`, `memory()` by default; `false` is off.\n rateLimit: rateLimitConfigSchema,\n react: reactConfigSchema.prefault({}),\n redirects: z.array(redirectSchema).default([]),\n /** API references: adapters from `blume/reference`, each a serializable descriptor. */\n reference: referenceConfigSchema,\n search: searchConfigSchema.prefault({}),\n seo: seoConfigSchema.prefault({}),\n theme: themeConfigSchema.prefault({}),\n title: z.string().default(\"Documentation\"),\n toc: tocConfigSchema,\n /**\n * Content variables: `{{name}}` in a page body reads the value (see\n * `core/variables.ts`). Names take letters, digits, `_`, and `-`;\n * values are one line, so a substitution never moves the lines a\n * diagnostic points at.\n */\n variables: z\n .record(\n z.string().regex(VARIABLE_NAME, {\n message:\n \"Variable names take letters, digits, `_`, and `-`, like `version` or `api-url`.\",\n }),\n z.string().refine((value) => !/[\\r\\n]/u.test(value), {\n message: \"A variable's value must fit on one line.\",\n })\n )\n .default({}),\n versions: versionsConfigSchema.optional(),\n },\n {\n // The 1.x `openapi`/`asyncapi`/`graphql` blocks name the `reference` list\n // that replaced them, alongside every other issue in the config.\n error: (issue) =>\n issue.code === \"unrecognized_keys\"\n ? removedReferenceKeysHint(issue.keys)\n : undefined,\n }\n )\n .superRefine((config, ctx) => {\n // A version id that is also a configured locale code would make a leading\n // `<id>/` directory ambiguous between the two axes — refuse it outright so\n // detection order (version first, then locale) never has to guess.\n if (config.versions && config.i18n) {\n const localeCodes = new Set(\n config.i18n.locales.map((locale) => locale.code.toLowerCase())\n );\n for (const [position, version] of config.versions.archived.entries()) {\n if (localeCodes.has(version.id.toLowerCase())) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Version id \"${version.id}\" is also a configured locale code — rename the version (e.g. \"v${version.id}\").`,\n path: [\"versions\", \"archived\", position, \"id\"],\n });\n }\n }\n }\n // A custom key is declared site-wide (`frontmatter.extend`) or per-type\n // (`content.types`), never both — two schemas for one key would make\n // precedence on pages of that type ambiguous.\n for (const [typeName, typeConfig] of Object.entries(config.content.types)) {\n for (const key of Object.keys(typeConfig.frontmatter)) {\n if (Object.hasOwn(config.frontmatter.extend, key)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `\"${key}\" is already declared in frontmatter.extend and cannot be redeclared for type \"${typeName}\".`,\n path: [\"content\", \"types\", typeName, \"frontmatter\", key],\n });\n }\n }\n // A facet with no declared key could never carry a value — pages can't\n // even set the key — so it's a config mistake, caught here where both\n // the per-type map and the site-wide extend are visible.\n for (const [position, facet] of typeConfig.facets.entries()) {\n if (\n !(\n Object.hasOwn(typeConfig.frontmatter, facet) ||\n Object.hasOwn(config.frontmatter.extend, facet)\n )\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Facet \"${facet}\" for type \"${typeName}\" is not a declared custom frontmatter key — add it to the type's frontmatter map or frontmatter.extend.`,\n path: [\"content\", \"types\", typeName, \"facets\", position],\n });\n }\n }\n }\n // Cloudflare's rate limiting is a Worker binding, which only a Cloudflare\n // deployment has.\n if (\n config.rateLimit?.kind === \"cloudflare\" &&\n config.deployment.kind !== \"cloudflare\"\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'rateLimit: cloudflare() counts with a Workers binding, so it needs `deployment: cloudflare()` from \"blume/deploy\". On another host, use upstash(), unkey(), or memory() from \"blume/ratelimit\".',\n path: [\"rateLimit\"],\n });\n }\n });\n\n/** Resolved config: every field present after defaults are applied. */\nexport type ResolvedConfig = z.infer<typeof blumeConfigSchema>;\n/** Resolved `dateFormat`: the `Intl.DateTimeFormat` options both date stamps share. */\nexport type ResolvedDateFormat = z.infer<typeof dateFormatConfigSchema>;\n/** Resolved `frontmatter.extend`: custom key → user-supplied schema. */\nexport type FrontmatterExtend = Record<string, StandardSchema>;\n/** Resolved i18n block (present only when the project opts into i18n). */\nexport type ResolvedI18nConfig = z.infer<typeof i18nConfigSchema>;\n/** A configured locale with display metadata. */\nexport type LocaleConfig = z.infer<typeof localeSchema>;\n/** Resolved versions block (present only when the project opts into versioning). */\nexport type ResolvedVersionsConfig = z.infer<typeof versionsConfigSchema>;\n/** A configured archived (frozen) version. */\nexport type ArchivedVersionConfig = z.infer<typeof archivedVersionSchema>;\n/**\n * User-authored config, straight off the schema. The public, hand-documented\n * authoring type is `BlumeConfig` in `./config-input.ts`, which a compile-time\n * guard keeps structurally identical to this.\n */\nexport type BlumeConfigInput = z.input<typeof blumeConfigSchema>;\n/** The resolved search backend: an adapter descriptor, or `none`. */\nexport type { ResolvedSearchAdapter } from \"../search/adapters/registry.ts\";\n/** Resolved robots.txt `Content-Signal` preferences (`null` when disabled). */\nexport type ContentSignals = z.infer<typeof contentSignalsSchema>;\n/** The resolved per-signal policy object (present when signals are enabled). */\nexport type ContentSignalPolicy = NonNullable<ContentSignals>;\n",
|
|
97
97
|
"import { z } from \"zod\";\n\nimport type { AdapterDescriptor, JsonValue } from \"../core/adapter.ts\";\nimport { adapterDescriptorSchema } from \"../core/adapter.ts\";\nimport { unrecognizedKeysMessage } from \"../core/unrecognized-keys.ts\";\n\n/**\n * The `reasoning` levels the adapters accept: the AI SDK's top-level\n * `reasoning` values minus `provider-default`, which is what omitting the\n * option means.\n */\nexport const assistantReasoningLevels = [\n \"none\",\n \"minimal\",\n \"low\",\n \"medium\",\n \"high\",\n \"xhigh\",\n] as const;\n\n/** How much the model reasons before answering (an adapter's `reasoning`). */\nexport type AssistantReasoning = (typeof assistantReasoningLevels)[number];\n\n/**\n * The AI SDK's `providerOptions` shape, forwarded to `streamText` verbatim:\n * `{ [provider]: { [option]: value } }`. The escape hatch for model controls\n * Blume doesn't name, so a new provider knob never needs a Blume field.\n */\nexport type AssistantProviderOptions = Record<\n string,\n Record<string, JsonValue>\n>;\n\n/** The AI SDK provider package the OpenAI-compatible adapters install. */\nconst OPENAI_COMPATIBLE_DEP = \"@ai-sdk/openai-compatible\";\n\n/**\n * The AI SDK packages for the providers Blume calls directly: the package and\n * the provider factory the route imports from it.\n */\nconst OPENAI_SDK = { factory: \"createOpenAI\", pkg: \"@ai-sdk/openai\" };\nconst ANTHROPIC_SDK = { factory: \"createAnthropic\", pkg: \"@ai-sdk/anthropic\" };\nconst GEMINI_SDK = { factory: \"createGoogle\", pkg: \"@ai-sdk/google\" };\nconst GROK_SDK = { factory: \"createXai\", pkg: \"@ai-sdk/xai\" };\n\n// ---------------------------------------------------------------------------\n// Shared options\n// ---------------------------------------------------------------------------\n\n/** The options every assistant adapter accepts. */\nexport interface AssistantAdapterOptions {\n /**\n * Name of the env var holding the provider's API key. Each adapter has its\n * own default; set this only to point at a different variable.\n */\n apiKeyEnv?: string;\n /**\n * Static request headers sent to the provider on every call — a\n * caller-identifying header for a shared backend, for example. Values are\n * written into the generated route as literals, so keep secrets in\n * `apiKeyEnv` rather than here.\n */\n headers?: Record<string, string>;\n /**\n * Options passed to `streamText` as its `providerOptions`, untouched, in the\n * AI SDK's own shape (`{ openai: { textVerbosity: \"low\" } }`, say).\n */\n providerOptions?: AssistantProviderOptions;\n}\n\n/**\n * `providerOptions`, forwarded to `streamText` verbatim. JSON-only, because\n * the generated and ejected routes inline it as a literal.\n */\nconst providerOptionsSchema = z.record(\n z.string(),\n z.record(z.string(), z.json())\n);\n\n/** The shared option schema, with the adapter's own key env var default. */\nexport const sharedOptions = (apiKeyEnv: string) => ({\n apiKeyEnv: z.string().min(1).default(apiKeyEnv),\n headers: z.record(z.string(), z.string()).optional(),\n providerOptions: providerOptionsSchema.optional(),\n});\n\nconst reasoningOption = z.enum(assistantReasoningLevels).optional();\n\n// ---------------------------------------------------------------------------\n// gateway()\n// ---------------------------------------------------------------------------\n\nexport const GATEWAY_API_KEY_ENV = \"AI_GATEWAY_API_KEY\";\n/** The model the gateway adapter uses when none is configured. */\nconst DEFAULT_GATEWAY_MODEL = \"openai/gpt-5.5\";\n\n/** Options for {@link gateway}. */\nexport interface AssistantGatewayOptions extends AssistantAdapterOptions {\n /**\n * Narration only: how the voice should sound, for speech models that take\n * instructions (\"Read calmly, like a teacher\").\n */\n instructions?: string;\n /**\n * A `provider/model` id routed by the gateway. Defaults to `openai/gpt-5.5`\n * for the assistant and `openai/tts-1-hd` for narration.\n */\n model?: string;\n /**\n * How much the model reasons before answering. Sent as the AI SDK's\n * top-level `reasoning` option, which the gateway maps to the model's own\n * control (OpenAI's `reasoning_effort`, for example); the model has to\n * offer the level you pick. Omitted keeps the model's default. Assistant\n * only.\n */\n reasoning?: AssistantReasoning;\n /** Narration only: the speech model's voice. Defaults to `alloy`. */\n voice?: string;\n}\n\nconst gatewayOptionsSchema = z.strictObject({\n ...sharedOptions(GATEWAY_API_KEY_ENV),\n model: z.string().min(1).default(DEFAULT_GATEWAY_MODEL),\n reasoning: reasoningOption,\n});\n\nexport type AssistantGatewayAdapter = AdapterDescriptor<\n \"gateway\",\n AssistantGatewayOptions\n>;\n\nexport const gatewayAdapterSchema = adapterDescriptorSchema(\n \"gateway\",\n gatewayOptionsSchema\n);\n\n/**\n * Route the assistant through the Vercel AI Gateway (the default), or generate\n * narration audio with one of its speech models. `model` is a\n * `provider/model` string; the key is `AI_GATEWAY_API_KEY`, or Vercel's OIDC\n * token when deployed there. Needs no provider SDK beyond the `ai` package\n * Blume ships.\n */\nexport const gateway = (\n options: AssistantGatewayOptions = {}\n): AssistantGatewayAdapter => ({\n kind: \"gateway\",\n options,\n requiredSecrets: [options.apiKeyEnv ?? GATEWAY_API_KEY_ENV],\n runtimeDeps: [],\n});\n\n// ---------------------------------------------------------------------------\n// openai()\n// ---------------------------------------------------------------------------\n\nexport const OPENAI_API_KEY_ENV = \"OPENAI_API_KEY\";\n\n/** Options for {@link openai}. */\nexport interface AssistantOpenAIOptions extends AssistantAdapterOptions {\n /**\n * Name of the env var holding the key. Defaults to `OPENAI_API_KEY`, except\n * for narration with a `baseUrl`, which sends only a key named here.\n */\n apiKeyEnv?: string;\n /**\n * An OpenAI-compatible endpoint to call instead of OpenAI\n * (`https://llm.internal.example.com/v1`): a self-hosted model or an\n * internal gateway. The route then talks Chat Completions through\n * `@ai-sdk/openai-compatible`, and the docs tools are off unless\n * `ai.assistant.tools` turns them on, since the model may not call tools.\n * For narration, a server with OpenAI's speech API (`/audio/speech`),\n * called through `@ai-sdk/openai` and sent only the key `apiKeyEnv` names,\n * if any.\n */\n baseUrl?: string;\n /**\n * Narration only: how the voice should sound, for speech models that take\n * instructions (\"Read calmly, like a teacher\").\n */\n instructions?: string;\n /** The model id (`gpt-5.5`, or a speech model like `gpt-4o-mini-tts`). */\n model: string;\n /**\n * The provider name the AI SDK reports, which a custom endpoint also reads\n * its `providerOptions` under. Defaults to `openai`, or `openai-compatible`\n * with a `baseUrl`. Assistant only.\n */\n name?: string;\n /**\n * How much the model reasons before answering, sent as `reasoning_effort`;\n * with a `baseUrl`, the endpoint has to accept that parameter. Omitted\n * keeps the model's default. Assistant only.\n */\n reasoning?: AssistantReasoning;\n /** Narration only: the speech model's voice. Defaults to `alloy`. */\n voice?: string;\n}\n\nconst openaiOptionsSchema = z.strictObject({\n ...sharedOptions(OPENAI_API_KEY_ENV),\n baseUrl: z.url().optional(),\n model: z.string().min(1),\n name: z.string().min(1).optional(),\n reasoning: reasoningOption,\n});\n\nexport type AssistantOpenAIAdapter = AdapterDescriptor<\n \"openai\",\n AssistantOpenAIOptions\n>;\n\nexport const openaiAdapterSchema = adapterDescriptorSchema(\n \"openai\",\n openaiOptionsSchema\n);\n\n/**\n * Route the assistant to OpenAI, or to any OpenAI-compatible endpoint with\n * `baseUrl`. Reads `OPENAI_API_KEY` and needs `@ai-sdk/openai` installed; a\n * custom endpoint needs `@ai-sdk/openai-compatible` instead, since most\n * don't serve OpenAI's Responses API. Narration generates audio with it\n * through `@ai-sdk/openai` either way, and with a `baseUrl` sends only the key\n * `apiKeyEnv` names.\n */\nexport const openai = (\n options: AssistantOpenAIOptions\n): AssistantOpenAIAdapter => ({\n kind: \"openai\",\n options,\n requiredSecrets: [options.apiKeyEnv ?? OPENAI_API_KEY_ENV],\n runtimeDeps: [options.baseUrl ? OPENAI_COMPATIBLE_DEP : OPENAI_SDK.pkg],\n});\n\n/**\n * Options for the deprecated {@link openaiCompatible}: {@link openai}'s, with\n * the endpoint and its key env var required.\n *\n * @deprecated Use {@link AssistantOpenAIOptions}.\n */\nexport interface AssistantOpenAICompatibleOptions extends AssistantOpenAIOptions {\n apiKeyEnv: string;\n baseUrl: string;\n}\n\n/** @deprecated Use {@link AssistantOpenAIAdapter}. */\nexport type AssistantOpenAICompatibleAdapter = AssistantOpenAIAdapter;\n\n/**\n * Route the assistant through an OpenAI-compatible endpoint.\n *\n * @deprecated Use `openai({ baseUrl, model, apiKeyEnv })`, which this calls.\n */\nexport const openaiCompatible = (\n options: AssistantOpenAICompatibleOptions\n): AssistantOpenAIAdapter => openai(options);\n\n// ---------------------------------------------------------------------------\n// anthropic()\n// ---------------------------------------------------------------------------\n\nconst ANTHROPIC_API_KEY_ENV = \"ANTHROPIC_API_KEY\";\n\n/** Options for {@link anthropic}. */\nexport interface AssistantAnthropicOptions extends AssistantAdapterOptions {\n /** The Claude model id (`claude-sonnet-5`). */\n model: string;\n /**\n * How much the model reasons before answering. The Anthropic provider\n * maps the level to the model's thinking: an effort on models with\n * adaptive thinking, a thinking budget on older ones, and thinking off for\n * `\"none\"`. Omitted keeps the model's default.\n */\n reasoning?: AssistantReasoning;\n}\n\nconst anthropicOptionsSchema = z.strictObject({\n ...sharedOptions(ANTHROPIC_API_KEY_ENV),\n model: z.string().min(1),\n reasoning: reasoningOption,\n});\n\nexport type AssistantAnthropicAdapter = AdapterDescriptor<\n \"anthropic\",\n AssistantAnthropicOptions\n>;\n\nexport const anthropicAdapterSchema = adapterDescriptorSchema(\n \"anthropic\",\n anthropicOptionsSchema\n);\n\n/**\n * Route the assistant to Anthropic's Claude API. Reads `ANTHROPIC_API_KEY`\n * and needs `@ai-sdk/anthropic` installed.\n */\nexport const anthropic = (\n options: AssistantAnthropicOptions\n): AssistantAnthropicAdapter => ({\n kind: \"anthropic\",\n options,\n requiredSecrets: [options.apiKeyEnv ?? ANTHROPIC_API_KEY_ENV],\n runtimeDeps: [ANTHROPIC_SDK.pkg],\n});\n\n// ---------------------------------------------------------------------------\n// gemini()\n// ---------------------------------------------------------------------------\n\nconst GEMINI_API_KEY_ENV = \"GEMINI_API_KEY\";\n\n/** Options for {@link gemini}. */\nexport interface AssistantGeminiOptions extends AssistantAdapterOptions {\n /** The Gemini model id (`gemini-3.5-flash`). */\n model: string;\n /**\n * How much the model reasons before answering. The Google provider maps\n * the level to the model's thinking level, or to a thinking budget on\n * models that take one. Omitted keeps the model's default.\n */\n reasoning?: AssistantReasoning;\n}\n\nconst geminiOptionsSchema = z.strictObject({\n ...sharedOptions(GEMINI_API_KEY_ENV),\n model: z.string().min(1),\n reasoning: reasoningOption,\n});\n\nexport type AssistantGeminiAdapter = AdapterDescriptor<\n \"gemini\",\n AssistantGeminiOptions\n>;\n\nexport const geminiAdapterSchema = adapterDescriptorSchema(\n \"gemini\",\n geminiOptionsSchema\n);\n\n/**\n * Route the assistant to Google's Gemini API. Reads `GEMINI_API_KEY` and\n * needs `@ai-sdk/google` installed.\n */\nexport const gemini = (\n options: AssistantGeminiOptions\n): AssistantGeminiAdapter => ({\n kind: \"gemini\",\n options,\n requiredSecrets: [options.apiKeyEnv ?? GEMINI_API_KEY_ENV],\n runtimeDeps: [GEMINI_SDK.pkg],\n});\n\n// ---------------------------------------------------------------------------\n// grok()\n// ---------------------------------------------------------------------------\n\nconst GROK_API_KEY_ENV = \"XAI_API_KEY\";\n\n/** Options for {@link grok}. */\nexport interface AssistantGrokOptions extends AssistantAdapterOptions {\n /** The Grok model id (`grok-4.7`). */\n model: string;\n /**\n * How much the model reasons before answering, sent as xAI's reasoning\n * effort on the models that take one. Omitted keeps the model's default.\n */\n reasoning?: AssistantReasoning;\n}\n\nconst grokOptionsSchema = z.strictObject({\n ...sharedOptions(GROK_API_KEY_ENV),\n model: z.string().min(1),\n reasoning: reasoningOption,\n});\n\nexport type AssistantGrokAdapter = AdapterDescriptor<\n \"grok\",\n AssistantGrokOptions\n>;\n\nexport const grokAdapterSchema = adapterDescriptorSchema(\n \"grok\",\n grokOptionsSchema\n);\n\n/**\n * Route the assistant to xAI's Grok models. Reads `XAI_API_KEY` and needs\n * `@ai-sdk/xai` installed.\n */\nexport const grok = (options: AssistantGrokOptions): AssistantGrokAdapter => ({\n kind: \"grok\",\n options,\n requiredSecrets: [options.apiKeyEnv ?? GROK_API_KEY_ENV],\n runtimeDeps: [GROK_SDK.pkg],\n});\n\n// ---------------------------------------------------------------------------\n// openrouter()\n// ---------------------------------------------------------------------------\n\nconst OPENROUTER_API_KEY_ENV = \"OPENROUTER_API_KEY\";\n\n/** Options for {@link openrouter}. */\nexport interface AssistantOpenRouterOptions extends AssistantAdapterOptions {\n /** The OpenRouter model id (`anthropic/claude-sonnet-4-5`). */\n model: string;\n /**\n * How much the model reasons before answering. Set on the model as\n * OpenRouter's `reasoning.effort`, because its provider ignores the AI\n * SDK's call-level option. Omitted keeps the model's default.\n */\n reasoning?: AssistantReasoning;\n}\n\nconst openrouterOptionsSchema = z.strictObject({\n ...sharedOptions(OPENROUTER_API_KEY_ENV),\n model: z.string().min(1),\n reasoning: reasoningOption,\n});\n\nexport type AssistantOpenRouterAdapter = AdapterDescriptor<\n \"openrouter\",\n AssistantOpenRouterOptions\n>;\n\nexport const openrouterAdapterSchema = adapterDescriptorSchema(\n \"openrouter\",\n openrouterOptionsSchema\n);\n\n/**\n * Route the assistant through OpenRouter. Reads `OPENROUTER_API_KEY` and needs\n * `@openrouter/ai-sdk-provider` installed in the project.\n */\nexport const openrouter = (\n options: AssistantOpenRouterOptions\n): AssistantOpenRouterAdapter => ({\n kind: \"openrouter\",\n options,\n requiredSecrets: [options.apiKeyEnv ?? OPENROUTER_API_KEY_ENV],\n runtimeDeps: [\"@openrouter/ai-sdk-provider\"],\n});\n\n// ---------------------------------------------------------------------------\n// llmgateway()\n// ---------------------------------------------------------------------------\n\nconst LLMGATEWAY_API_KEY_ENV = \"LLMGATEWAY_API_KEY\";\n\n/** Options for {@link llmgateway}. */\nexport interface AssistantLlmGatewayOptions extends AssistantAdapterOptions {\n /** Overrides the preset endpoint (`https://api.llmgateway.io/v1`). */\n baseUrl?: string;\n /** The model id LLMGateway serves. */\n model: string;\n /**\n * How much the model reasons before answering, sent in the request as\n * `reasoning_effort`. Omitted keeps the model's default.\n */\n reasoning?: AssistantReasoning;\n}\n\nconst llmgatewayOptionsSchema = z.strictObject({\n ...sharedOptions(LLMGATEWAY_API_KEY_ENV),\n baseUrl: z.url().default(\"https://api.llmgateway.io/v1\"),\n model: z.string().min(1),\n reasoning: reasoningOption,\n});\n\nexport type AssistantLlmGatewayAdapter = AdapterDescriptor<\n \"llmgateway\",\n AssistantLlmGatewayOptions\n>;\n\nexport const llmgatewayAdapterSchema = adapterDescriptorSchema(\n \"llmgateway\",\n llmgatewayOptionsSchema\n);\n\n/**\n * Route the assistant through LLMGateway's OpenAI-compatible endpoint. Reads\n * `LLMGATEWAY_API_KEY` and needs `@ai-sdk/openai-compatible` installed.\n */\nexport const llmgateway = (\n options: AssistantLlmGatewayOptions\n): AssistantLlmGatewayAdapter => ({\n kind: \"llmgateway\",\n options,\n requiredSecrets: [options.apiKeyEnv ?? LLMGATEWAY_API_KEY_ENV],\n runtimeDeps: [OPENAI_COMPATIBLE_DEP],\n});\n\n// ---------------------------------------------------------------------------\n// inkeep()\n// ---------------------------------------------------------------------------\n\nconst INKEEP_API_KEY_ENV = \"INKEEP_API_KEY\";\n\n/**\n * Options for {@link inkeep}. No `reasoning`: Inkeep runs its own QA pipeline\n * behind an OpenAI-compatible endpoint with no reasoning control.\n */\nexport interface AssistantInkeepOptions extends AssistantAdapterOptions {\n /** Overrides the preset endpoint (`https://api.inkeep.com/v1`). */\n baseUrl?: string;\n /** The Inkeep QA model id. */\n model: string;\n}\n\nconst inkeepOptionsSchema = z.strictObject({\n ...sharedOptions(INKEEP_API_KEY_ENV),\n baseUrl: z.url().default(\"https://api.inkeep.com/v1\"),\n model: z.string().min(1),\n});\n\nexport type AssistantInkeepAdapter = AdapterDescriptor<\n \"inkeep\",\n AssistantInkeepOptions\n>;\n\nexport const inkeepAdapterSchema = adapterDescriptorSchema(\n \"inkeep\",\n inkeepOptionsSchema\n);\n\n/**\n * Answer with Inkeep, which retrieves from the content indexed in its own\n * dashboard, so Blume leaves it ungrounded and it takes no `reasoning`.\n * Reads `INKEEP_API_KEY` and needs `@ai-sdk/openai-compatible` installed.\n */\nexport const inkeep = (\n options: AssistantInkeepOptions\n): AssistantInkeepAdapter => ({\n kind: \"inkeep\",\n options,\n requiredSecrets: [options.apiKeyEnv ?? INKEEP_API_KEY_ENV],\n runtimeDeps: [OPENAI_COMPATIBLE_DEP],\n});\n\n// ---------------------------------------------------------------------------\n// The `ai.assistant.provider` schema\n// ---------------------------------------------------------------------------\n\n/** Which backend answers the assistant: the value of `gateway()`, `openai()`, … */\nexport type AssistantAdapter =\n | AssistantGatewayAdapter\n | AssistantOpenAIAdapter\n | AssistantAnthropicAdapter\n | AssistantGeminiAdapter\n | AssistantGrokAdapter\n | AssistantOpenRouterAdapter\n | AssistantLlmGatewayAdapter\n | AssistantInkeepAdapter;\n\n// ---------------------------------------------------------------------------\n// Blume 1 hints\n// ---------------------------------------------------------------------------\n\n/**\n * The adapters' `kind`s and the 1.x `ai.ask.provider` names, each with the\n * `blume/ai` factory that takes its place.\n */\nconst FACTORY_BY_PROVIDER = new Map([\n [\"anthropic\", \"anthropic\"],\n [\"gateway\", \"gateway\"],\n [\"gemini\", \"gemini\"],\n [\"grok\", \"grok\"],\n [\"inkeep\", \"inkeep\"],\n [\"llmgateway\", \"llmgateway\"],\n [\"openai\", \"openai\"],\n // 1.x only: an OpenAI-compatible endpoint is `openai()` with a `baseUrl`.\n [\"openai-compatible\", \"openai\"],\n [\"openrouter\", \"openrouter\"],\n]);\n\n/** The 1.x flat `ai.ask` fields: each is now an option of the provider adapter. */\nconst MOVED_TO_PROVIDER: ReadonlySet<string> = new Set([\n \"apiKeyEnv\",\n \"baseUrl\",\n \"headers\",\n \"model\",\n \"reasoning\",\n]);\n\n/** The provider an `ai.assistant` object names: a 1.x string or a descriptor's `kind`. */\nconst assistantProviderNameProbe = z.looseObject({\n provider: z.union([\n z.string(),\n z.looseObject({ kind: z.string() }).transform(({ kind }) => kind),\n ]),\n});\n\n/** The factory a failing `ai.assistant` object's provider names, or the gateway. */\nconst providerFactory = (issue: z.core.$ZodRawIssue): string => {\n const probe = assistantProviderNameProbe.safeParse(issue.input);\n return (\n (probe.success && FACTORY_BY_PROVIDER.get(probe.data.provider)) || \"gateway\"\n );\n};\n\n/**\n * Error params for `ai.assistant`: a 1.x flat provider field (`model`, `apiKeyEnv`,\n * `baseUrl`, `headers`, `reasoning`) names the adapter call it moves into —\n * the one the object's `provider` picks, 1.x string or descriptor — instead\n * of Zod's bare \"Unrecognized key\"; any other unknown key keeps its wording.\n */\nexport const assistantMovedFieldsHint = {\n error: (issue: z.core.$ZodRawIssue): string | undefined => {\n if (issue.code !== \"unrecognized_keys\") {\n return;\n }\n const moved = issue.keys.filter((key) => MOVED_TO_PROVIDER.has(key));\n if (moved.length === 0) {\n return;\n }\n const fields = moved.map((key) => `ai.assistant.${key}`).join(\", \");\n const hint = `${fields} moved into the provider adapter: \\`provider: ${providerFactory(issue)}({ ${moved.join(\", \")} })\\`, imported from \"blume/ai\".`;\n const others = issue.keys.filter((key) => !MOVED_TO_PROVIDER.has(key));\n return others.length > 0\n ? `${hint} ${unrecognizedKeysMessage(others)}`\n : hint;\n },\n};\n\n/** A value that is a 1.x provider name, for the `ai.assistant.provider` hint. */\nconst providerNameProbe = z.string();\n\n/**\n * The message for an `ai.assistant.provider` that isn't a descriptor: a 1.x\n * provider name names the factory that replaced it; anything else lists them.\n */\nconst providerNotAdapterMessage = (issue: z.core.$ZodRawIssue): string => {\n const name = providerNameProbe.safeParse(issue.input);\n const factory = name.success ? FACTORY_BY_PROVIDER.get(name.data) : undefined;\n return factory\n ? `ai.assistant.provider takes an adapter from \"blume/ai\", not a provider name: \\`provider: ${factory}({ model })\\`. The 1.x model, apiKeyEnv, baseUrl, headers, and reasoning fields move into the call.`\n : 'ai.assistant.provider takes an adapter from \"blume/ai\": openai(), anthropic(), gemini(), grok(), gateway(), openrouter(), llmgateway(), or inkeep().';\n};\n\n/**\n * `ai.assistant.provider`: the descriptor an adapter factory returned, validated\n * against that adapter's own option schema. A value that isn't a descriptor\n * at all (a 1.x provider name) names the factory that replaced it.\n */\nexport const assistantAdapterSchema = z.discriminatedUnion(\n \"kind\",\n [\n gatewayAdapterSchema,\n openaiAdapterSchema,\n anthropicAdapterSchema,\n geminiAdapterSchema,\n grokAdapterSchema,\n openrouterAdapterSchema,\n llmgatewayAdapterSchema,\n inkeepAdapterSchema,\n ],\n {\n // A non-object (a 1.x provider name) fails before any discriminator is\n // read — `invalid_type` at runtime, though Zod types the union's own\n // issues as `invalid_union` only; a bad `kind` keeps Zod's message.\n error: (issue) =>\n issue.code === \"invalid_union\"\n ? undefined\n : providerNotAdapterMessage(issue),\n }\n);\n\n/** A resolved (post-defaults) `ai.assistant.provider` descriptor. */\nexport type AssistantAdapterConfig = z.output<typeof assistantAdapterSchema>;\nexport type AssistantAdapterKind = AssistantAdapterConfig[\"kind\"];\n\n/** The provider when `ai.assistant.provider` is unset: the gateway with its defaults. */\nexport const DEFAULT_ASSISTANT_PROVIDER: AssistantAdapter = gateway();\n\n// ---------------------------------------------------------------------------\n// Resolved backend\n// ---------------------------------------------------------------------------\n\n/** The route fragments an adapter contributes to `askEndpointTemplate`. */\nexport interface AskBackendTemplate {\n /**\n * Extra `streamText` fields as `key: value` source lines: the adapter's\n * reasoning mapping (when it is a call option) and `providerOptions`.\n */\n fields: string[];\n /** Import lines after the shared `astro` and `astro:env/server` ones. */\n imports: string[];\n /**\n * The up-front credential guard: a statement that returns a 503, since the\n * endpoint exists but can't answer until the deployment sets its key.\n */\n keyCheck: string;\n /** The `model:` expression passed to `streamText`. */\n model: string;\n /** Module-level provider setup (the provider factory call). */\n setup: string;\n}\n\n/**\n * What the endpoint template and the diagnostics read from an adapter beyond\n * the descriptor itself (`kind`, `requiredSecrets`, `runtimeDeps` travel on\n * the descriptor; `generate`, `eject`, the required-secrets check, and the\n * runtime-dependency manifest read those directly).\n */\nexport interface AskBackend {\n /** Whether Blume grounds answers in the docs (Inkeep retrieves itself). */\n grounded: boolean;\n /**\n * Whether the docs tools are on when `ai.assistant.tools` is unset: yes for\n * the hosted model catalogs, whose models call tools, and no for an\n * OpenAI-compatible backend, which may be a local model that can't.\n */\n toolsByDefault: boolean;\n kind: AssistantAdapterKind;\n /** Human-readable adapter name for diagnostics (\"AI Gateway\"). */\n label: string;\n /** Appended to the missing-secret warning (an alternative credential, say). */\n secretNote?: string;\n template: AskBackendTemplate;\n}\n\nconst secretExpr = (env: string): string => `getSecret(${JSON.stringify(env)})`;\n\n/**\n * The `headers` line of a provider factory call. Every provider Blume\n * generates against takes the same option; the OpenAI-compatible provider\n * applies it after the `Authorization` header it derives from the API key, so\n * a custom header can't displace auth. An empty map is dropped so the route\n * only carries `headers` when there is something to send.\n */\nconst headersLine = (headers?: Record<string, string>): string =>\n headers && Object.keys(headers).length > 0\n ? `\\n headers: ${JSON.stringify(headers)},`\n : \"\";\n\n/** Refuse a request up front when the adapter's key env var is unset. */\nconst keyCheck = (env: string): string => ` if (!${secretExpr(env)}) {\n return new Response(\n ${JSON.stringify(`The assistant is not configured: set ${env}.`)},\n { status: 503 }\n );\n }`;\n\n/**\n * The `streamText` fields shared by the adapters that take `reasoning` as the\n * AI SDK's top-level call option, plus the verbatim `providerOptions`.\n */\nconst callFields = (options: {\n providerOptions?: z.output<typeof providerOptionsSchema>;\n reasoning?: AssistantReasoning;\n}): string[] => {\n const fields: string[] = [];\n if (options.reasoning) {\n fields.push(`reasoning: ${JSON.stringify(options.reasoning)}`);\n }\n if (options.providerOptions) {\n fields.push(`providerOptions: ${JSON.stringify(options.providerOptions)}`);\n }\n return fields;\n};\n\nconst gatewayBackend = (\n options: z.output<typeof gatewayOptionsSchema>\n): AskBackend => ({\n grounded: true,\n kind: \"gateway\",\n label: \"AI Gateway\",\n secretNote: \"on Vercel the gateway can also authenticate via OIDC\",\n template: {\n // The gateway maps the AI SDK's top-level `reasoning` to the model's own\n // control (OpenAI's `reasoning_effort`, say).\n fields: callFields(options),\n // The gateway provider reads the key (or Vercel's OIDC token) from the\n // environment itself; passing the key explicitly lets a binding-backed\n // secret store reach it too.\n imports: [\n 'import { createGateway, createTextStreamResponse, streamText, toTextStream } from \"ai\";',\n ],\n keyCheck: ` // The AI Gateway authenticates with an API key or Vercel's OIDC token.\n if (!(${secretExpr(options.apiKeyEnv)} || getSecret(\"VERCEL_OIDC_TOKEN\"))) {\n return new Response(\n ${JSON.stringify(`The assistant is not configured: set ${options.apiKeyEnv} (or deploy on Vercel with OIDC).`)},\n { status: 503 }\n );\n }`,\n model: `gateway(${JSON.stringify(options.model)})`,\n setup: `\\nconst gateway = createGateway({\n apiKey: ${secretExpr(options.apiKeyEnv)},${headersLine(options.headers)}\n});\\n`,\n },\n toolsByDefault: true,\n});\n\nconst openrouterBackend = (\n options: z.output<typeof openrouterOptionsSchema>\n): AskBackend => {\n // The OpenRouter provider ignores the AI SDK's top-level `reasoning` call\n // option and only reads its own model-level setting, so the level rides on\n // the model as `reasoning.effort` and nowhere else.\n const settings = options.reasoning\n ? `, { reasoning: { effort: ${JSON.stringify(options.reasoning)} } }`\n : \"\";\n return {\n grounded: true,\n kind: \"openrouter\",\n label: \"OpenRouter\",\n template: {\n fields: callFields({ providerOptions: options.providerOptions }),\n imports: [\n 'import { createTextStreamResponse, streamText, toTextStream } from \"ai\";',\n 'import { createOpenRouter } from \"@openrouter/ai-sdk-provider\";',\n ],\n keyCheck: keyCheck(options.apiKeyEnv),\n model: `openrouter(${JSON.stringify(options.model)}${settings})`,\n setup: `\\nconst openrouter = createOpenRouter({\n apiKey: ${secretExpr(options.apiKeyEnv)},${headersLine(options.headers)}\n});\\n`,\n },\n toolsByDefault: true,\n };\n};\n\n/**\n * The backend shared by the adapters that stream through the AI SDK's\n * OpenAI-compatible provider, which sends the top-level `reasoning` call\n * option as `reasoning_effort`.\n */\nconst openaiCompatibleBackend = (\n kind: AssistantAdapterKind,\n label: string,\n grounded: boolean,\n toolsByDefault: boolean,\n options: {\n apiKeyEnv: string;\n baseUrl: string;\n headers?: Record<string, string>;\n model: string;\n name: string;\n providerOptions?: z.output<typeof providerOptionsSchema>;\n reasoning?: AssistantReasoning;\n }\n): AskBackend => ({\n grounded,\n kind,\n label,\n template: {\n fields: callFields(options),\n imports: [\n 'import { createTextStreamResponse, streamText, toTextStream } from \"ai\";',\n 'import { createOpenAICompatible } from \"@ai-sdk/openai-compatible\";',\n ],\n keyCheck: keyCheck(options.apiKeyEnv),\n model: `provider(${JSON.stringify(options.model)})`,\n // `headers` sits between the key and the name so the API key's\n // `Authorization` header is applied first.\n setup: `\\nconst provider = createOpenAICompatible({\n apiKey: ${secretExpr(options.apiKeyEnv)},\n baseURL: ${JSON.stringify(options.baseUrl)},${headersLine(options.headers)}\n name: ${JSON.stringify(options.name)},\n});\\n`,\n },\n toolsByDefault,\n});\n\n/**\n * The backend for a provider Blume calls directly, through that provider's\n * own AI SDK package, which maps the top-level `reasoning` call option to the\n * model's control itself. Their models all call tools.\n */\nconst directBackend = (\n kind: AssistantAdapterKind,\n label: string,\n sdk: { factory: string; pkg: string },\n options: {\n apiKeyEnv: string;\n headers?: Record<string, string>;\n model: string;\n name?: string;\n providerOptions?: z.output<typeof providerOptionsSchema>;\n reasoning?: AssistantReasoning;\n }\n): AskBackend => ({\n grounded: true,\n kind,\n label,\n template: {\n fields: callFields(options),\n imports: [\n 'import { createTextStreamResponse, streamText, toTextStream } from \"ai\";',\n `import { ${sdk.factory} } from ${JSON.stringify(sdk.pkg)};`,\n ],\n keyCheck: keyCheck(options.apiKeyEnv),\n model: `provider(${JSON.stringify(options.model)})`,\n setup: `\\nconst provider = ${sdk.factory}({\n apiKey: ${secretExpr(options.apiKeyEnv)},${headersLine(options.headers)}${\n options.name ? `\\n name: ${JSON.stringify(options.name)},` : \"\"\n }\n});\\n`,\n },\n toolsByDefault: true,\n});\n\n/**\n * `openai()`: OpenAI itself through its own SDK, or, with a `baseUrl`, a\n * generic endpoint through the OpenAI-compatible provider — Chat Completions,\n * which most such endpoints serve where the Responses API isn't — with the\n * tools off by default, since a self-hosted model may not call them.\n */\nconst openaiBackend = (\n options: z.output<typeof openaiOptionsSchema>\n): AskBackend => {\n const { baseUrl } = options;\n return baseUrl\n ? openaiCompatibleBackend(\"openai\", \"OpenAI-compatible\", true, false, {\n ...options,\n baseUrl,\n name: options.name ?? \"openai-compatible\",\n })\n : directBackend(\"openai\", \"OpenAI\", OPENAI_SDK, options);\n};\n\n/** Resolve a parsed `ai.assistant.provider` descriptor into its backend. */\nexport const resolveAskBackend = (\n provider: AssistantAdapterConfig = assistantAdapterSchema.parse(\n DEFAULT_ASSISTANT_PROVIDER\n )\n): AskBackend => {\n switch (provider.kind) {\n case \"gateway\": {\n return gatewayBackend(provider.options);\n }\n case \"anthropic\": {\n return directBackend(\n \"anthropic\",\n \"Anthropic\",\n ANTHROPIC_SDK,\n provider.options\n );\n }\n case \"gemini\": {\n return directBackend(\"gemini\", \"Gemini\", GEMINI_SDK, provider.options);\n }\n case \"grok\": {\n return directBackend(\"grok\", \"Grok\", GROK_SDK, provider.options);\n }\n case \"openrouter\": {\n return openrouterBackend(provider.options);\n }\n case \"llmgateway\": {\n return openaiCompatibleBackend(\"llmgateway\", \"LLMGateway\", true, true, {\n ...provider.options,\n name: \"llmgateway\",\n });\n }\n case \"inkeep\": {\n // Inkeep answers from the content indexed in its dashboard, so injected\n // excerpts would conflict with its own retrieval.\n return openaiCompatibleBackend(\"inkeep\", \"Inkeep\", false, false, {\n ...provider.options,\n name: \"inkeep\",\n });\n }\n default: {\n return openaiBackend(provider.options);\n }\n }\n};\n",
|
|
98
98
|
"/**\n * Zod's own wording for unknown keys no removed-key hint covers, appended to\n * a hint so an unrelated typo isn't silently dropped from the diagnostic\n * beside it. Shared by every config object that names a removed field's\n * replacement (the root config, `ai.assistant`, `openapi()`/`asyncapi()`, …).\n */\nexport const unrecognizedKeysMessage = (keys: string[]): string =>\n `Unrecognized key${keys.length > 1 ? \"s\" : \"\"}: ${keys\n .map((key) => JSON.stringify(key))\n .join(\", \")}`;\n",
|
|
99
99
|
"import { z } from \"zod\";\n\nimport { adobeAdapterSchema } from \"./adobe.ts\";\nimport { amplitudeAdapterSchema } from \"./amplitude.ts\";\nimport { clarityAdapterSchema } from \"./clarity.ts\";\nimport { clearbitAdapterSchema } from \"./clearbit.ts\";\nimport { clicsAdapterSchema } from \"./clics.ts\";\nimport { cloudflareAdapterSchema } from \"./cloudflare.ts\";\nimport { databuddyAdapterSchema } from \"./databuddy.ts\";\nimport { fathomAdapterSchema } from \"./fathom.ts\";\nimport { googleAnalyticsAdapterSchema } from \"./google-analytics.ts\";\nimport { googleTagManagerAdapterSchema } from \"./google-tag-manager.ts\";\nimport { heapAdapterSchema } from \"./heap.ts\";\nimport { hightouchAdapterSchema } from \"./hightouch.ts\";\nimport { hotjarAdapterSchema } from \"./hotjar.ts\";\nimport { logrocketAdapterSchema } from \"./logrocket.ts\";\nimport { mixpanelAdapterSchema } from \"./mixpanel.ts\";\nimport { oneDollarStatsAdapterSchema } from \"./one-dollar-stats.ts\";\nimport { pirschAdapterSchema } from \"./pirsch.ts\";\nimport { plausibleAdapterSchema } from \"./plausible.ts\";\nimport { posthogAdapterSchema } from \"./posthog.ts\";\nimport { scriptAdapterSchema } from \"./script.ts\";\nimport { segmentAdapterSchema } from \"./segment.ts\";\nimport { vercelAdapterSchema } from \"./vercel.ts\";\n\n/** One configured analytics adapter, as its factory returned it. */\nexport const analyticsAdapterSchema = z.discriminatedUnion(\"kind\", [\n adobeAdapterSchema,\n amplitudeAdapterSchema,\n clarityAdapterSchema,\n clearbitAdapterSchema,\n clicsAdapterSchema,\n cloudflareAdapterSchema,\n databuddyAdapterSchema,\n fathomAdapterSchema,\n googleAnalyticsAdapterSchema,\n googleTagManagerAdapterSchema,\n heapAdapterSchema,\n hightouchAdapterSchema,\n hotjarAdapterSchema,\n logrocketAdapterSchema,\n mixpanelAdapterSchema,\n oneDollarStatsAdapterSchema,\n pirschAdapterSchema,\n plausibleAdapterSchema,\n posthogAdapterSchema,\n scriptAdapterSchema,\n segmentAdapterSchema,\n vercelAdapterSchema,\n]);\n\nexport type AnalyticsAdapter = z.output<typeof analyticsAdapterSchema>;\n\nconst ARRAY_HINT =\n 'analytics is a list of adapters — e.g. `analytics: [posthog({ key }), vercel(), plausible({ domain }), script({ src })]`, imported from \"blume/analytics\".';\n\n/**\n * `blume.config.analytics`: the adapters to emit, in order. Unset means none.\n * A non-array (the pre-adapter object form, say) fails with the list hint;\n * element errors keep their own messages.\n */\nexport const analyticsConfigSchema = z\n .array(analyticsAdapterSchema, {\n error: (issue) => (issue.code === \"invalid_type\" ? ARRAY_HINT : undefined),\n })\n .default([]);\n",
|
|
@@ -180,7 +180,8 @@
|
|
|
180
180
|
"/**\n * Helpers for the `<YouTube>` content component. Kept in a sibling `.ts` (like\n * `diff.ts`/`github-info.ts`) so the id parsing and embed-URL building are pure,\n * unit-testable functions — the `.astro` file stays a thin presentational shell.\n */\n\n// A YouTube video id is 11 characters of [A-Za-z0-9_-].\nconst BARE_ID = /^[\\w-]{11}$/u;\n\n// Pull the id out of any common YouTube URL: youtu.be/<id>, watch?v=<id>,\n// /embed/<id>, /shorts/<id>, /live/<id>. A playlist embed's\n// `/embed/videoseries` is 11 characters too, but it names no video.\nconst URL_ID =\n /(?:youtu\\.be\\/|\\/embed\\/(?!videoseries\\b)|\\/shorts\\/|\\/live\\/|[?&]v=)(?<id>[\\w-]{11})/u;\n\n// A playlist URL: the embed form, `/embed/videoseries?list=<id>`, or the\n// playlist page, `/playlist?list=<id>`.\nconst PLAYLIST =\n /\\/(?:embed\\/videoseries|playlist)\\?(?:[^#]*&)?list=(?<list>[\\w-]+)/u;\n\n/**\n * Resolve a YouTube video id from either a bare id or a full URL. Returns `null`\n * when nothing that looks like an id can be found, so the component can render\n * nothing rather than a broken embed.\n */\nexport const parseYouTubeId = (input: string): string | null => {\n const value = input.trim();\n if (!value) {\n return null;\n }\n if (BARE_ID.test(value)) {\n return value;\n }\n return URL_ID.exec(value)?.groups?.id ?? null;\n};\n\n/**\n * The playlist id of a YouTube playlist URL (`/embed/videoseries?list=…` or\n * `/playlist?list=…`), or `null` for anything else — a video URL that also\n * carries a `list` (`watch?v=…&list=…`) is that video.\n */\nexport const parseYouTubePlaylist = (input: string): string | null =>\n PLAYLIST.exec(input.trim())?.groups?.list ?? null;\n\n/** The query a `start` time adds to an embed URL, or nothing. */\nconst startParam = (start: number | undefined): Record<string, string> =>\n start && start > 0 ? { start: String(Math.floor(start)) } : {};\n\n/**\n * Build a privacy-enhanced (`youtube-nocookie.com`) embed URL, optionally\n * starting at `start` seconds.\n */\nexport const youtubeEmbedUrl = (\n id: string,\n options: { start?: number } = {}\n): string => {\n const base = `https://www.youtube-nocookie.com/embed/${id}`;\n const params = new URLSearchParams(startParam(options.start));\n return params.size > 0 ? `${base}?${params.toString()}` : base;\n};\n\n/**\n * The privacy-enhanced embed URL for a playlist, optionally starting its\n * first video at `start` seconds.\n */\nexport const youtubePlaylistEmbedUrl = (\n list: string,\n options: { start?: number } = {}\n): string => {\n const params = new URLSearchParams({ list, ...startParam(options.start) });\n return `https://www.youtube-nocookie.com/embed/videoseries?${params.toString()}`;\n};\n\n/**\n * The embed URL for a `<YouTube>`'s `id` or `url`: a video, else a playlist,\n * else `null` when the input names neither.\n */\nexport const youtubeEmbedSrc = (\n input: string,\n options: { start?: number } = {}\n): string | null => {\n const id = parseYouTubeId(input);\n if (id) {\n return youtubeEmbedUrl(id, options);\n }\n const list = parseYouTubePlaylist(input);\n return list ? youtubePlaylistEmbedUrl(list, options) : null;\n};\n",
|
|
181
181
|
"import type { EvaluatedValue } from \"./component-markdown.ts\";\n\n/**\n * Read an MDX attribute expression (`prop={...}`) as literal data, without\n * running it. The agent Markdown downleveler converts components on every\n * page it is handed — plain `.md` pages Astro never executes, and content a\n * CMS or a release feed supplies — so an expression is parsed, never\n * evaluated: only data a reader could see by looking at it is recovered.\n *\n * Accepted: string, number, boolean, `null`, and `undefined` literals; array\n * and object literals, nested; unary minus on a number; template literals\n * whose substitutions are themselves accepted; and `frontmatter.<path>`\n * member access (dot steps, or bracketed string and number literals),\n * resolved against the page's front matter the way `prop={frontmatter.status}`\n * resolves when Astro renders the page. Comments are skipped. Anything else —\n * a call, an operator, a spread, a shorthand property, any other name — is\n * not static, and the caller keeps the component's JSX as written.\n */\n\n/** The outcome of reading an expression: its value, or `ok: false`. */\nexport interface StaticExpressionResult {\n ok: boolean;\n value: EvaluatedValue;\n}\n\n/**\n * Stop reading: the expression isn't literal data. The throw unwinds the\n * recursive descent to {@link readStaticExpression}, which reports it.\n */\nconst notStatic = (): never => {\n throw new Error(\"not a static expression\");\n};\n\nconst isText = (value: EvaluatedValue): value is string =>\n typeof value === \"string\";\n\nconst isNumber = (value: EvaluatedValue): value is number =>\n typeof value === \"number\";\n\n/** A nested map of values: an object literal or a front-matter mapping. */\nconst isValueMap = (\n value: EvaluatedValue\n): value is { [key: string]: EvaluatedValue } =>\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value) &&\n !(value instanceof Date);\n\n/** Whitespace, a line comment, or a block comment. */\nconst SPACE = /\\s+|\\/\\/[^\\n\\r]*|\\/\\*[\\s\\S]*?\\*\\//uy;\n\n/** An IdentifierName (ASCII): object keys, member names, keywords. */\nconst IDENTIFIER = /[$A-Z_a-z][\\w$]*/uy;\n\n/**\n * A numeric literal: hex, octal, and binary forms, or a decimal with an\n * optional fraction and exponent, `_` separators allowed between digits. A\n * legacy octal (`017`) matches only its leading `0`, and the check on the\n * following character rejects it, as strict-mode JavaScript does.\n */\nconst NUMBER =\n /0[Xx][\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0[Oo][0-7](?:_?[0-7])*|0[Bb][01](?:_?[01])*|(?:(?:0|[1-9](?:_?\\d)*)(?:\\.(?:\\d(?:_?\\d)*)?)?|\\.\\d(?:_?\\d)*)(?:[Ee][+-]?\\d(?:_?\\d)*)?/uy;\n\n/** A character that may not directly follow a number (`1n`, `1px`, `017`). */\nconst AFTER_NUMBER = /[\\w$.]/u;\n\nconst DIGIT = /\\d/u;\nconst HEX_DIGITS = /^[\\dA-Fa-f]+$/u;\n\n/** A canonical array index: `0`, `12`, never `01`. */\nconst INDEX = /^(?:0|[1-9]\\d*)$/u;\n\n/** The largest Unicode code point, the cap on a `\\u{…}` escape. */\nconst MAX_CODE_POINT = 0x10_ff_ff;\n\n/** U+2028 and U+2029, the line terminators outside ASCII. */\nconst LINE_SEPARATORS = new Set([\n String.fromCodePoint(0x20_28),\n String.fromCodePoint(0x20_29),\n]);\n\nconst SIMPLE_ESCAPES = new Map([\n [\"b\", \"\\b\"],\n [\"f\", \"\\f\"],\n [\"n\", \"\\n\"],\n [\"r\", \"\\r\"],\n [\"t\", \"\\t\"],\n [\"v\", \"\\v\"],\n]);\n\n/** A key that, set through a literal, would replace the object's prototype. */\nconst PROTO_KEY = \"__proto__\";\n\n/**\n * `base[key]` on a front-matter value, own data only: a missing key reads as\n * `undefined` (as it does at render time), stepping into `null` or\n * `undefined` is not static (it would throw), and inherited members —\n * methods, `constructor` — are never reached.\n */\nconst member = (base: EvaluatedValue, key: string): EvaluatedValue => {\n if (base === null || base === undefined) {\n return notStatic();\n }\n if (isText(base) || Array.isArray(base)) {\n if (key === \"length\") {\n return base.length;\n }\n return INDEX.test(key) ? base[Number(key)] : undefined;\n }\n return isValueMap(base) && Object.hasOwn(base, key) ? base[key] : undefined;\n};\n\n/** A recursive-descent reader over one expression's source. */\nclass Reader {\n readonly frontmatter: Record<string, EvaluatedValue> | undefined;\n pos = 0;\n readonly source: string;\n\n constructor(\n source: string,\n frontmatter: Record<string, EvaluatedValue> | undefined\n ) {\n this.source = source;\n this.frontmatter = frontmatter;\n }\n\n /** The character under the cursor (`\"\"` at the end). */\n get char(): string {\n return this.source.charAt(this.pos);\n }\n\n get done(): boolean {\n return this.pos >= this.source.length;\n }\n\n /** Match a sticky pattern at the cursor and consume it. */\n match(pattern: RegExp): string | undefined {\n pattern.lastIndex = this.pos;\n const found = pattern.exec(this.source)?.[0];\n if (found !== undefined) {\n this.pos += found.length;\n }\n return found;\n }\n\n /** Skip whitespace and comments. */\n space(): void {\n let skipped = this.match(SPACE);\n while (skipped !== undefined) {\n skipped = this.match(SPACE);\n }\n }\n\n /** Consume `expected` (after any space), or stop. */\n expect(expected: string): void {\n this.space();\n if (!this.source.startsWith(expected, this.pos)) {\n notStatic();\n }\n this.pos += expected.length;\n }\n\n value(): EvaluatedValue {\n this.space();\n const { char } = this;\n if (char === \"{\") {\n return this.object();\n }\n if (char === \"[\") {\n return this.array();\n }\n if (char === '\"' || char === \"'\") {\n return this.string(char);\n }\n if (char === \"`\") {\n return this.template();\n }\n if (char === \"-\") {\n this.pos += 1;\n // `--1` is a decrement, not two negations.\n const operand = this.char === \"-\" ? notStatic() : this.value();\n return isNumber(operand) ? -operand : notStatic();\n }\n return this.number() ?? this.name();\n }\n\n number(): number | undefined {\n const text = this.match(NUMBER);\n if (text === undefined) {\n return;\n }\n if (\n AFTER_NUMBER.test(this.char) ||\n (text === \"0\" && DIGIT.test(this.char))\n ) {\n return notStatic();\n }\n return Number(text.replaceAll(\"_\", \"\"));\n }\n\n /** A keyword literal, or `frontmatter` and its member steps. */\n name(): EvaluatedValue {\n const name = this.match(IDENTIFIER);\n if (name === \"true\") {\n return true;\n }\n if (name === \"false\") {\n return false;\n }\n if (name === \"null\") {\n return null;\n }\n if (name === \"undefined\") {\n return undefined;\n }\n if (name !== \"frontmatter\") {\n return notStatic();\n }\n let current: EvaluatedValue = this.frontmatter;\n for (;;) {\n this.space();\n if (this.char === \".\") {\n this.pos += 1;\n this.space();\n current = member(current, this.match(IDENTIFIER) ?? notStatic());\n } else if (this.char === \"[\") {\n this.pos += 1;\n const key = this.value();\n this.expect(\"]\");\n current = member(\n current,\n isText(key) || isNumber(key) ? String(key) : notStatic()\n );\n } else {\n return current;\n }\n }\n }\n\n object(): EvaluatedValue {\n this.pos += 1;\n const out: { [key: string]: EvaluatedValue } = {};\n for (;;) {\n this.space();\n if (this.char === \"}\") {\n this.pos += 1;\n return out;\n }\n const key = this.key();\n this.expect(\":\");\n out[key] = this.value();\n this.space();\n if (this.char === \",\") {\n this.pos += 1;\n } else if (this.char !== \"}\") {\n return notStatic();\n }\n }\n }\n\n /** An object key: a name, a string, or a number (as its canonical string). */\n key(): string {\n const { char } = this;\n let key: string;\n if (char === '\"' || char === \"'\") {\n key = this.string(char);\n } else {\n const number = this.number();\n key =\n number === undefined\n ? (this.match(IDENTIFIER) ?? notStatic())\n : String(number);\n }\n // `{ __proto__: … }` sets the prototype rather than a property.\n return key === PROTO_KEY ? notStatic() : key;\n }\n\n array(): EvaluatedValue[] {\n this.pos += 1;\n const out: EvaluatedValue[] = [];\n for (;;) {\n this.space();\n if (this.char === \"]\") {\n this.pos += 1;\n return out;\n }\n out.push(this.value());\n this.space();\n if (this.char === \",\") {\n this.pos += 1;\n } else if (this.char !== \"]\") {\n return notStatic();\n }\n }\n }\n\n string(quote: string): string {\n this.pos += 1;\n let out = \"\";\n for (;;) {\n const { char } = this;\n if (this.done || char === \"\\n\" || char === \"\\r\") {\n return notStatic();\n }\n this.pos += 1;\n if (char === quote) {\n return out;\n }\n out += char === \"\\\\\" ? this.escape() : char;\n }\n }\n\n template(): string {\n this.pos += 1;\n let out = \"\";\n for (;;) {\n if (this.done) {\n return notStatic();\n }\n const { char } = this;\n this.pos += 1;\n if (char === \"`\") {\n return out;\n }\n if (char === \"\\\\\") {\n out += this.escape();\n } else if (char === \"$\" && this.char === \"{\") {\n this.pos += 1;\n out += String(this.value());\n this.expect(\"}\");\n } else if (char === \"\\r\") {\n // A raw line break in a template reads as `\\n`, `\\r\\n` included.\n if (this.char === \"\\n\") {\n this.pos += 1;\n }\n out += \"\\n\";\n } else {\n out += char;\n }\n }\n }\n\n /** What an escape after `\\` stands for, under strict-mode rules. */\n escape(): string {\n if (this.done) {\n return notStatic();\n }\n const { char } = this;\n this.pos += 1;\n if (DIGIT.test(char)) {\n // `\\0` is NUL; octal escapes, `\\8`, and `\\9` are errors in strict code.\n return char === \"0\" && !DIGIT.test(this.char) ? \"\\0\" : notStatic();\n }\n if (char === \"x\") {\n return String.fromCodePoint(this.hex(2));\n }\n if (char === \"u\") {\n return String.fromCodePoint(\n this.char === \"{\" ? this.codePoint() : this.hex(4)\n );\n }\n if (char === \"\\r\") {\n // A line continuation: `\\` and the line break stand for nothing.\n if (this.char === \"\\n\") {\n this.pos += 1;\n }\n return \"\";\n }\n if (char === \"\\n\" || LINE_SEPARATORS.has(char)) {\n return \"\";\n }\n return SIMPLE_ESCAPES.get(char) ?? char;\n }\n\n /** Exactly `length` hex digits, as a code point. */\n hex(length: number): number {\n const digits = this.source.slice(this.pos, this.pos + length);\n if (digits.length !== length || !HEX_DIGITS.test(digits)) {\n return notStatic();\n }\n this.pos += length;\n return Number.parseInt(digits, 16);\n }\n\n /** A braced `\\u{…}` code point, the cursor on its `{`. */\n codePoint(): number {\n const end = this.source.indexOf(\"}\", this.pos);\n const digits = end === -1 ? \"\" : this.source.slice(this.pos + 1, end);\n const code = HEX_DIGITS.test(digits) ? Number.parseInt(digits, 16) : -1;\n if (code < 0 || code > MAX_CODE_POINT) {\n return notStatic();\n }\n this.pos = end + 1;\n return code;\n }\n}\n\n/**\n * Read `raw` — an attribute expression's source — as static data, with\n * `frontmatter` (the page's front matter, when the caller has it) behind\n * `frontmatter.<path>` references. Never executes anything.\n */\nexport const readStaticExpression = (\n raw: string,\n frontmatter?: Record<string, EvaluatedValue>\n): StaticExpressionResult => {\n const reader = new Reader(raw, frontmatter);\n try {\n const value = reader.value();\n reader.space();\n return reader.done ? { ok: true, value } : { ok: false, value: undefined };\n } catch {\n // Not literal data (or nested past the stack): keep the JSX as written.\n return { ok: false, value: undefined };\n }\n};\n",
|
|
182
182
|
"// html-escaper's five-entity table is XML-safe: `'` becomes the numeric\n// `'` reference rather than `'`, which XML accepts equally.\nimport { escape as escapeXml } from \"html-escaper\";\n\nimport { mountBasePath, normalizeBasePath } from \"../core/base-path.ts\";\nimport type { BlumeProject } from \"../core/project-graph.ts\";\nimport { siteRoot } from \"../core/site-url.ts\";\nimport type { PageRecord } from \"../core/types.ts\";\n\n/** A single feed entry derived from a content page. */\nexport interface RssItem {\n title: string;\n /** Absolute item URL. */\n link: string;\n description?: string;\n /** Publish date, when the page declares one. */\n date?: Date;\n}\n\n/** A resolved RSS feed for one content type. */\nexport interface RssFeed {\n /** Content type the feed covers, e.g. `blog`. */\n type: string;\n /** Feed URL path, e.g. `/blog/rss.xml`. */\n path: string;\n /** Channel title, e.g. `Blume — Blog`. */\n title: string;\n /** Absolute site link. */\n link: string;\n description?: string;\n items: RssItem[];\n}\n\nconst capitalize = (value: string): string =>\n value.charAt(0).toUpperCase() + value.slice(1);\n\n/** Publish date for a page: top-level `date`, else `changelog.date`. */\nconst pageDate = (page: PageRecord): Date | undefined => {\n const raw = page.meta.date ?? page.meta.changelog?.date;\n if (!raw) {\n return;\n }\n const date = new Date(raw);\n return Number.isNaN(date.getTime()) ? undefined : date;\n};\n\n/**\n * Build an RSS feed per configured content type that has publishable pages.\n * Returns an empty list when RSS is disabled or no `deployment.site` is set —\n * absolute URLs are required for a valid feed, mirroring `buildSitemap`.\n */\nexport const buildRssFeeds = (project: BlumeProject): RssFeed[] => {\n const { config } = project;\n const { rss } = config.seo;\n const { site } = config.deployment.options;\n if (!(rss.enabled && site)) {\n return [];\n }\n const base = siteRoot(site);\n // Routes carry `basePath`; a `deployment.base` subdirectory is mounted on top\n // of every one, even a route whose first segment matches it (see sitemap.ts).\n // The feed's own `link`/self URL points at the docs root under that base, while\n // `path` stays base-less (it's also the on-disk output location).\n const deployBase = normalizeBasePath(config.deployment.options.base);\n const rootLink = `${base}${deployBase}`;\n\n const feeds: RssFeed[] = [];\n for (const type of rss.types) {\n const pages = project.graph.pages.filter(\n (page) =>\n page.contentType === type &&\n !(page.meta.draft || page.meta.sidebar.hidden)\n );\n if (pages.length === 0) {\n continue;\n }\n\n const items: RssItem[] = pages\n .map((page) => ({\n date: pageDate(page),\n // A page with only a meta description (a GitHub release, whose\n // summary goes in `seo.description`) still describes its item.\n description: page.description ?? page.meta.seo.description,\n // Encode like the sitemap does: a route with spaces or non-ASCII\n // must still yield a valid <link>/<guid> URL after XML decoding.\n link: encodeURI(`${base}${mountBasePath(deployBase, page.route)}`),\n title: page.title,\n }))\n .toSorted((a, b) => (b.date?.getTime() ?? 0) - (a.date?.getTime() ?? 0))\n .slice(0, rss.limit);\n\n feeds.push({\n description: config.description,\n items,\n link: rootLink,\n path: `/${type}/rss.xml`,\n title: `${config.title} — ${capitalize(type)}`,\n type,\n });\n }\n return feeds;\n};\n\nconst renderItem = (item: RssItem): string => {\n const parts = [\n ` <title>${escapeXml(item.title)}</title>`,\n ` <link>${escapeXml(item.link)}</link>`,\n ` <guid isPermaLink=\"true\">${escapeXml(item.link)}</guid>`,\n ];\n if (item.description) {\n parts.push(` <description>${escapeXml(item.description)}</description>`);\n }\n if (item.date) {\n parts.push(` <pubDate>${item.date.toUTCString()}</pubDate>`);\n }\n return ` <item>\\n${parts.join(\"\\n\")}\\n </item>`;\n};\n\n/** Serialize a resolved feed into an RSS 2.0 XML document. */\nexport const renderRssFeed = (feed: RssFeed): string => {\n const feedSelfHref = `${feed.link}${feed.path}`;\n const channel = [\n ` <title>${escapeXml(feed.title)}</title>`,\n ` <link>${escapeXml(feed.link)}</link>`,\n ` <description>${escapeXml(feed.description ?? feed.title)}</description>`,\n ` <atom:link href=\"${escapeXml(feedSelfHref)}\" rel=\"self\" type=\"application/rss+xml\" />`,\n ];\n const items = feed.items.map(renderItem).join(\"\\n\");\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n<channel>\n${channel.join(\"\\n\")}\n${items}\n</channel>\n</rss>\n`;\n};\n",
|
|
183
|
-
"import { basename } from \"pathe\";\n\nimport {\n isInternalPath,\n mountBasePath,\n normalizeBasePath,\n withAuthoredBasePath,\n withBasePath,\n} from \"../core/base-path.ts\";\nimport { localePrefix } from \"../core/i18n.ts\";\nimport {\n buildFileRouteIndex,\n isIndexFileName,\n resolveRelativeHref,\n resolveRootFileHref,\n routeOfLinkedFile,\n} from \"../core/links.ts\";\nimport type { RelativeLinkBase } from \"../core/links.ts\";\nimport { localizeHref, servesRoute } from \"../core/locale-links.ts\";\nimport type { BlumeProject } from \"../core/project-graph.ts\";\nimport { resolveDocsCollection } from \"../core/sources/collection.ts\";\nimport { extractLinks } from \"../core/sources/normalize.ts\";\n\n/**\n * Page links on the agent surfaces — the `.md`/`.mdx` mirrors,\n * llms-full.txt, MCP `get_page` and `resources/read`. An agent resolves\n * `[Install](./install)` against the URL it fetched (`/guides.md`), so the\n * link lands on `/install`; the rendered page rewrites it to the route it\n * means (`markdown/relative-links.ts`), and the Markdown an agent reads gets\n * the same rewrite from the same resolver (`resolveRelativeHref`), so both\n * point at one page. Root-relative links (`[x](/guide)`,\n * `<Card href=\"/guide\">`, ``) get what the rendered page\n * gives them too (`markdown/base-links.ts`,\n * `components/content/base-href.ts`): a page link the `deployment.base` +\n * `basePath` prefix, a public file (`/spec.pdf`) or image the\n * `deployment.base` alone, and, on a page in a prefixed locale, a page link\n * that locale's copy of the route when it is served\n * (`components/layout/LocaleLinks.astro`). A root-relative link to a content\n * file (`/guide/new.md`) lands on that file's page, as on the rendered page\n * (`resolveRootFileHref`). Inline links, images, component\n * `href`s, and reference definitions are rewritten; fenced and inline code,\n * relative images and asset links, and external URLs are left as written.\n */\n\n/** The page a Markdown text was written for. */\nexport interface LinkedPage {\n route: string;\n sourcePath?: string;\n}\n\n/** Rewrite a page's relative page links to the routes they mean. */\nexport type RelativeLinkRewriter = (text: string, page: LinkedPage) => string;\n\n/**\n * Whether a text could hold a relative page link at all: an inline link, a\n * reference definition, or a component `href` whose target isn't a URL with\n * a scheme, a root path, or a fragment. Most pages hold none, and those skip\n * the link parse and the line-by-line fence scan entirely.\n */\nconst MAYBE_RELATIVE =\n /\\]\\([\\t ]*<?(?![a-z][\\d+.a-z-]*:|\\/|#)|^ {0,3}\\[[^\\]\\n]+\\]:[\\t ]*<?(?![a-z][\\d+.a-z-]*:|\\/|#)|\\shref=[\"'](?![a-z][\\d+.a-z-]*:|\\/|#)/imu;\n\n/**\n * {@link MAYBE_RELATIVE}, or a root-relative target (`/x`, never `//host`):\n * the gate when root-relative links are rewritten too — a base or basePath is\n * set, or the page sits under a locale prefix.\n */\nconst MAYBE_PAGE_LINK =\n /\\]\\([\\t ]*<?(?![a-z][\\d+.a-z-]*:|\\/\\/|#)|^ {0,3}\\[[^\\]\\n]+\\]:[\\t ]*<?(?![a-z][\\d+.a-z-]*:|\\/\\/|#)|\\shref=[\"'](?![a-z][\\d+.a-z-]*:|\\/\\/|#)/imu;\n\n/**\n * Whether a text could hold a root-relative link to a Markdown file\n * (`[x](/guide/new.md)`), which lands on that file's page whatever the base.\n */\nconst MAYBE_ROOT_FILE =\n /(?:\\]\\(|\\]:|\\shref=[\"'])[\\t ]*<?\\/(?!\\/)[^\\s\"'()<>]*\\.mdx?\\b/imu;\n\ninterface Splice {\n column: number;\n length: number;\n text: string;\n}\n\n/** Apply same-line splices, right to left so earlier columns stay valid. */\nconst spliceLine = (line: string, splices: readonly Splice[]): string => {\n let out = line;\n for (const splice of splices.toSorted((a, b) => b.column - a.column)) {\n out =\n out.slice(0, splice.column) +\n splice.text +\n out.slice(splice.column + splice.length);\n }\n return out;\n};\n\n/**\n * Every routed splice in `text`, by 0-based line: links, images, and\n * reference definitions, as `extractLinks` finds them. An image target goes\n * through `imaged`, everything else through `routed`, told whether it's a\n * raw HTML element's.\n */\nconst collectSplices = (\n text: string,\n routed: (target: string, raw: boolean) => string | undefined,\n imaged: (target: string) => string | undefined\n): Map<number, Splice[]> => {\n const splices = new Map<number, Splice[]>();\n const add = (index: number, splice: Splice): void => {\n splices.set(index, [...(splices.get(index) ?? []), splice]);\n };\n for (const link of extractLinks(text)) {\n const route = link.image\n ? imaged(link.target)\n : routed(link.target, link.raw === true);\n if (route !== undefined) {\n add(link.line - 1, {\n column: link.column - 1,\n length: link.sourceLength ?? link.target.length,\n text: route,\n });\n }\n }\n return splices;\n};\n\n/**\n * Build the rewriter for a project: the file → route lookup a `.md`/`.mdx`\n * link resolves through is built once. A file shared by every locale\n * publishes once per locale, and the default locale's route stands for it;\n * fallback copies render another locale's file, so they never stand for one.\n */\nexport const relativeLinkRewriter = (\n project: BlumeProject\n): RelativeLinkRewriter => {\n const { basePath, deployment, i18n } = project.config;\n const deployBase = normalizeBasePath(deployment.options.base);\n const contentRoot = resolveDocsCollection(\n project.config,\n project.context.root\n ).base;\n const localeTokens = i18n\n ? [\"$\", ...i18n.locales.map((locale) => locale.code)]\n : [];\n const fileRoutes = buildFileRouteIndex(project.graph.pages, i18n ?? null);\n const navPathBySource = new Map(\n project.graph.pages.map((graphPage) => [\n graphPage.sourcePath,\n graphPage.navPath,\n ])\n );\n const routes = new Set(project.manifest.routes.map((route) => route.path));\n const localeByRoute = new Map(\n project.manifest.routes.map((route) => [route.path, route.locale])\n );\n\n /**\n * A page's relative-link resolver; `undefined` when the page has no file\n * to resolve its links from.\n */\n const relativeRoute = (\n page: LinkedPage\n ): ((target: string) => string | undefined) | undefined => {\n const { sourcePath } = page;\n if (!sourcePath) {\n return;\n }\n const from: RelativeLinkBase = {\n isIndex: isIndexFileName(basename(sourcePath), localeTokens),\n route: page.route,\n };\n const navPath = navPathBySource.get(sourcePath) ?? basename(sourcePath);\n const resolveFile = (path: string): string | undefined =>\n routeOfLinkedFile(fileRoutes, { navPath, sourcePath }, path);\n // A resolved route is one Blume serves, so the deployment base goes on\n // unconditionally — even over a route that starts with the base's name.\n return (target) => {\n const route = resolveRelativeHref(target, from, resolveFile, (path) =>\n routes.has(path)\n );\n return route === undefined ? undefined : mountBasePath(deployBase, route);\n };\n };\n\n /** Whether a page is served at a based, fragment-less path. */\n const servesPage = (route: string): boolean => servesRoute(routes, route);\n\n return (text, page) => {\n const locale = localeByRoute.get(page.route);\n // The page's locale moves root links only when it has a URL prefix.\n const localize =\n i18n && locale !== undefined && localePrefix(locale, i18n) !== \"\"\n ? { basePath, deployBase, i18n, locale, routes }\n : undefined;\n // A root-relative link only changes when the site is mounted under a\n // prefix or the page reads in a prefixed locale.\n const rootLinks =\n deployBase !== \"\" || basePath !== \"\" || localize !== undefined;\n if (\n !(page.sourcePath || rootLinks) ||\n !(\n (rootLinks ? MAYBE_PAGE_LINK : MAYBE_RELATIVE).test(text) ||\n MAYBE_ROOT_FILE.test(text)\n )\n ) {\n return text;\n }\n const relative = relativeRoute(page);\n // What the rendered page makes of `/guide`: based (a public file like\n // `/spec.pdf` under the deployment base alone), then moved into the\n // page's locale when that route is served.\n const rooted = (target: string): string | undefined => {\n const based = withAuthoredBasePath(\n deployBase,\n basePath,\n target,\n servesPage\n );\n const href = localize ? localizeHref(based, localize) : based;\n return href === target ? undefined : href;\n };\n // A root-relative link naming a content file (`/guide/new.md`) means\n // that file's page, as a relative one does; a raw `<a href>` keeps it,\n // as the rendered page's does.\n const rootFile = (target: string): string | undefined => {\n const route = resolveRootFileHref(target, {\n contentRoot,\n deployBase,\n routeOfFile: (file) => fileRoutes.bySource.get(file),\n });\n if (route === undefined) {\n return undefined;\n }\n const based = mountBasePath(deployBase, route);\n return localize ? localizeHref(based, localize) : based;\n };\n const routed = (target: string, raw: boolean): string | undefined => {\n if (!isInternalPath(target)) {\n return relative?.(target);\n }\n return (raw ? undefined : rootFile(target)) ?? rooted(target);\n };\n // An image is always a file: `public/` (or a generated asset endpoint),\n // served under the deployment base but never `basePath`. A relative one\n // is left to `core/content-assets.ts`.\n const imaged = (target: string): string | undefined => {\n const based = withBasePath(deployBase, target);\n return based === target ? undefined : based;\n };\n\n const lines = text.split(\"\\n\");\n const splices = collectSplices(text, routed, imaged);\n\n return lines\n .map((line, index) => {\n const lineSplices = splices.get(index);\n return lineSplices ? spliceLine(line, lineSplices) : line;\n })\n .join(\"\\n\");\n };\n};\n",
|
|
183
|
+
"/**\n * A title as Markdown link text. An unescaped bracket in it — `[Beta] Webhooks`\n * — closes or nests the text early, and the line stops being a link.\n */\nexport const linkText = (title: string): string =>\n title.replaceAll(/[\\\\[\\]]/gu, String.raw`\\$&`);\n",
|
|
184
|
+
"import { basename } from \"pathe\";\n\nimport {\n isInternalPath,\n mountBasePath,\n normalizeBasePath,\n withAuthoredBasePath,\n withBasePath,\n} from \"../core/base-path.ts\";\nimport { localePrefix } from \"../core/i18n.ts\";\nimport {\n buildFileRouteIndex,\n isIndexFileName,\n resolveRawRelativeHref,\n resolveRelativeHref,\n resolveRootFileHref,\n routeOfLinkedEntry,\n routeOfLinkedFile,\n} from \"../core/links.ts\";\nimport type { FileRouteIndex, RelativeLinkBase } from \"../core/links.ts\";\nimport { localizeHref, servesRoute } from \"../core/locale-links.ts\";\nimport type { LocalizeHrefOptions } from \"../core/locale-links.ts\";\nimport type { BlumeProject } from \"../core/project-graph.ts\";\nimport { resolveDocsCollection } from \"../core/sources/collection.ts\";\nimport { extractLinks } from \"../core/sources/normalize.ts\";\n\n/**\n * Page links on the agent surfaces — the `.md`/`.mdx` mirrors,\n * llms-full.txt, MCP `get_page` and `resources/read`. An agent resolves\n * `[Install](./install)` against the URL it fetched (`/guides.md`), so the\n * link lands on `/install`; the rendered page rewrites it to the route it\n * means (`markdown/relative-links.ts`), and the Markdown an agent reads gets\n * the same rewrite from the same resolver (`resolveRelativeHref`), so both\n * point at one page. A raw HTML `<a href>` ships as written, so a relative\n * one lands where the browser takes it from the page's URL\n * (`resolveRawRelativeHref`). Root-relative links (`[x](/guide)`,\n * `<Card href=\"/guide\">`, ``) get what the rendered page\n * gives them too (`markdown/base-links.ts`,\n * `components/content/base-href.ts`): a page link the `deployment.base` +\n * `basePath` prefix, a public file (`/spec.pdf`) or image the\n * `deployment.base` alone, and, on a page in a prefixed locale, a page link\n * that locale's copy of the route when it is served\n * (`components/layout/LocaleLinks.astro`). A root-relative link to a content\n * file (`/guide/new.md`) lands on that file's page, as on the rendered page\n * (`resolveRootFileHref`). Inline links, images, component\n * `href`s, and reference definitions are rewritten; fenced and inline code,\n * relative images and asset links, and external URLs are left as written.\n * The assistant's snapshot takes the links that name a page by its path or\n * file alone, as the routes it keys pages by (`assistant`).\n */\n\n/** The page a Markdown text was written for. */\nexport interface LinkedPage {\n /**\n * A staged page's path under its staging dir, which its links resolve from\n * when it has no `sourcePath` (a remote or CMS source).\n */\n entryId?: string;\n route: string;\n sourcePath?: string;\n}\n\n/** Rewrite a page's relative page links to the routes they mean. */\nexport type RelativeLinkRewriter = (text: string, page: LinkedPage) => string;\n\n/** Who reads the rewritten links. */\nexport interface RelativeLinkOptions {\n /**\n * The assistant's snapshot, rather than a page an agent fetches by URL.\n * Only a link that names a page by its relative path or its content file\n * changes, to the route the snapshot keys that page by: without the\n * `deployment.base`, since the chat panel mounts every link it renders\n * under it, and a locale's fallback copy as the page it renders, since the\n * snapshot holds that page instead. Root page links and images stay as\n * written.\n */\n assistant?: boolean;\n}\n\n/**\n * Whether a text could hold a relative page link at all: an inline link, a\n * reference definition, or a component `href` whose target isn't a URL with\n * a scheme, a root path, or a fragment. Most pages hold none, and those skip\n * the link parse and the line-by-line fence scan entirely.\n */\nconst MAYBE_RELATIVE =\n /\\]\\([\\t ]*<?(?![a-z][\\d+.a-z-]*:|\\/|#)|^ {0,3}\\[[^\\]\\n]+\\]:[\\t ]*<?(?![a-z][\\d+.a-z-]*:|\\/|#)|\\shref=[\"'](?![a-z][\\d+.a-z-]*:|\\/|#)/imu;\n\n/**\n * {@link MAYBE_RELATIVE}, or a root-relative target (`/x`, never `//host`):\n * the gate when root-relative links are rewritten too — a base or basePath is\n * set, or the page sits under a locale prefix.\n */\nconst MAYBE_PAGE_LINK =\n /\\]\\([\\t ]*<?(?![a-z][\\d+.a-z-]*:|\\/\\/|#)|^ {0,3}\\[[^\\]\\n]+\\]:[\\t ]*<?(?![a-z][\\d+.a-z-]*:|\\/\\/|#)|\\shref=[\"'](?![a-z][\\d+.a-z-]*:|\\/\\/|#)/imu;\n\n/**\n * Whether a text could hold a root-relative link to a Markdown file\n * (`[x](/guide/new.md)`), which lands on that file's page whatever the base.\n */\nconst MAYBE_ROOT_FILE =\n /(?:\\]\\(|\\]:|\\shref=[\"'])[\\t ]*<?\\/(?!\\/)[^\\s\"'()<>]*\\.mdx?\\b/imu;\n\ninterface Splice {\n column: number;\n length: number;\n text: string;\n}\n\n/** Apply same-line splices, right to left so earlier columns stay valid. */\nconst spliceLine = (line: string, splices: readonly Splice[]): string => {\n let out = line;\n for (const splice of splices.toSorted((a, b) => b.column - a.column)) {\n out =\n out.slice(0, splice.column) +\n splice.text +\n out.slice(splice.column + splice.length);\n }\n return out;\n};\n\n/**\n * Every routed splice in `text`, by 0-based line: links, images, and\n * reference definitions, as `extractLinks` finds them. An image target goes\n * through `imaged`, everything else through `routed`, told whether it's a\n * raw HTML element's.\n */\nconst collectSplices = (\n text: string,\n routed: (target: string, raw: boolean) => string | undefined,\n imaged: (target: string) => string | undefined\n): Map<number, Splice[]> => {\n const splices = new Map<number, Splice[]>();\n const add = (index: number, splice: Splice): void => {\n splices.set(index, [...(splices.get(index) ?? []), splice]);\n };\n for (const link of extractLinks(text)) {\n const route = link.image\n ? imaged(link.target)\n : routed(link.target, link.raw === true);\n if (route !== undefined) {\n add(link.line - 1, {\n column: link.column - 1,\n length: link.sourceLength ?? link.target.length,\n text: route,\n });\n }\n }\n return splices;\n};\n\n/** What a project's links resolve through, whoever reads them. */\ninterface LinkIndex {\n fileRoutes: FileRouteIndex;\n localeByRoute: Map<string, string>;\n navPathBySource: Map<string | undefined, string>;\n routes: Set<string>;\n}\n\n// The mirrors, llms-full.txt and the assistant's snapshot each build a\n// rewriter for the same project, so the lookups behind them are built once.\nconst linkIndexes = new WeakMap<BlumeProject, LinkIndex>();\n\n/**\n * The file → route lookup a `.md`/`.mdx` link resolves through, and the\n * routes a link can land on. A file shared by every locale publishes once\n * per locale, and the default locale's route stands for it; fallback copies\n * render another locale's file, so they never stand for one.\n */\nconst linkIndex = (project: BlumeProject): LinkIndex => {\n let index = linkIndexes.get(project);\n if (!index) {\n const { config, graph, manifest } = project;\n index = {\n fileRoutes: buildFileRouteIndex(graph.pages, config.i18n ?? null),\n localeByRoute: new Map(\n manifest.routes.map((route) => [route.path, route.locale])\n ),\n navPathBySource: new Map(\n graph.pages.map((page) => [page.sourcePath, page.navPath])\n ),\n routes: new Set(manifest.routes.map((route) => route.path)),\n };\n linkIndexes.set(project, index);\n }\n return index;\n};\n\n/**\n * A resolved route as the assistant's snapshot keys it. A locale's fallback\n * copy (`/fr/guides/install` with no French page there) renders another\n * locale's page, which the snapshot holds in its place, so the route becomes\n * that page's; every other route is kept, `?query#hash` and all.\n */\nconst snapshotRoute = (project: BlumeProject): ((route: string) => string) => {\n const pageRoutes = new Map(\n project.graph.pages.map((page) => [page.id, page.route])\n );\n const rendered = new Map<string, string>();\n for (const route of project.manifest.routes) {\n const page = route.fallback ? pageRoutes.get(route.id) : undefined;\n if (page !== undefined) {\n rendered.set(route.path, page);\n }\n }\n return (route) => {\n const suffixAt = route.search(/[?#]/u);\n const path = suffixAt === -1 ? route : route.slice(0, suffixAt);\n const page = rendered.get(path);\n return page === undefined ? route : `${page}${route.slice(path.length)}`;\n };\n};\n\n/**\n * Build the rewriter for a project, for an agent reading a page by URL or,\n * with `assistant`, for the assistant's snapshot.\n */\nexport const relativeLinkRewriter = (\n project: BlumeProject,\n options: RelativeLinkOptions = {}\n): RelativeLinkRewriter => {\n const { basePath, deployment, i18n } = project.config;\n // Links are read under the real deployment base whoever reads them, so a\n // root link to a content file that carries it is still recognized.\n const deployBase = normalizeBasePath(deployment.options.base);\n const contentRoot = resolveDocsCollection(\n project.config,\n project.context.root\n ).base;\n const localeTokens = i18n\n ? [\"$\", ...i18n.locales.map((locale) => locale.code)]\n : [];\n const { fileRoutes, localeByRoute, navPathBySource, routes } =\n linkIndex(project);\n const hasRoute = (path: string): boolean => routes.has(path);\n\n // Where a resolved route lands for its reader. A route Blume serves takes\n // the deployment base unconditionally — even over a route that starts with\n // the base's name — except in the assistant's snapshot.\n const land = options.assistant\n ? snapshotRoute(project)\n : (route: string): string => mountBasePath(deployBase, route);\n\n /**\n * How a page's root-relative links change, if they do: when the site is\n * mounted under a prefix, or the page reads in a prefixed locale, whose\n * copy of a route they move to. The assistant's snapshot keeps them as\n * written.\n */\n const rootLinksOf = (\n route: string\n ): { localize?: LocalizeHrefOptions } | undefined => {\n if (options.assistant) {\n return undefined;\n }\n const locale = localeByRoute.get(route);\n const localize =\n i18n && locale !== undefined && localePrefix(locale, i18n) !== \"\"\n ? { basePath, deployBase, i18n, locale, routes }\n : undefined;\n return deployBase !== \"\" || basePath !== \"\" || localize !== undefined\n ? { localize }\n : undefined;\n };\n\n /**\n * A page's relative-link resolver; `undefined` when the page has no file\n * to resolve its links from.\n */\n const relativeRoute = (\n page: LinkedPage\n ): ((target: string) => string | undefined) | undefined => {\n const { entryId, sourcePath } = page;\n const file = sourcePath ?? entryId;\n if (!file) {\n return;\n }\n const from: RelativeLinkBase = {\n isIndex: isIndexFileName(basename(file), localeTokens),\n route: page.route,\n };\n // A staged page (a remote or CMS source) has no file on disk: it\n // resolves a sibling by its entry id, as `blume validate` does.\n let resolveFile: (path: string) => string | undefined;\n if (sourcePath) {\n const navPath = navPathBySource.get(sourcePath) ?? basename(sourcePath);\n resolveFile = (path) =>\n routeOfLinkedFile(fileRoutes, { navPath, sourcePath }, path);\n } else {\n resolveFile = (path) => routeOfLinkedEntry(fileRoutes, file, path);\n }\n return (target) => resolveRelativeHref(target, from, resolveFile, hasRoute);\n };\n\n /** Whether a page is served at a based, fragment-less path. */\n const servesPage = (route: string): boolean => servesRoute(routes, route);\n\n return (text, page) => {\n const rootLinks = rootLinksOf(page.route);\n const localize = rootLinks?.localize;\n if (\n !(page.sourcePath || page.entryId || rootLinks) ||\n !(\n (rootLinks ? MAYBE_PAGE_LINK : MAYBE_RELATIVE).test(text) ||\n MAYBE_ROOT_FILE.test(text)\n )\n ) {\n return text;\n }\n const relative = relativeRoute(page);\n // What the rendered page makes of `/guide`: based (a public file like\n // `/spec.pdf` under the deployment base alone), then moved into the\n // page's locale when that route is served.\n const rooted = (target: string): string | undefined => {\n const based = withAuthoredBasePath(\n deployBase,\n basePath,\n target,\n servesPage\n );\n const href = localize ? localizeHref(based, localize) : based;\n return href === target ? undefined : href;\n };\n // A root-relative link naming a content file (`/guide/new.md`) means\n // that file's page, as a relative one does; a raw `<a href>` keeps it,\n // as the rendered page's does.\n const rootFile = (target: string): string | undefined => {\n const route = resolveRootFileHref(target, {\n contentRoot,\n deployBase,\n routeOfFile: (file) => fileRoutes.bySource.get(file),\n });\n if (route === undefined) {\n return undefined;\n }\n const landed = land(route);\n return localize ? localizeHref(landed, localize) : landed;\n };\n const routed = (target: string, raw: boolean): string | undefined => {\n if (!isInternalPath(target)) {\n const route = raw\n ? resolveRawRelativeHref(target, page.route, hasRoute)\n : relative?.(target);\n return route === undefined ? undefined : land(route);\n }\n const file = raw ? undefined : rootFile(target);\n return file ?? (rootLinks ? rooted(target) : undefined);\n };\n // An image is always a file: `public/` (or a generated asset endpoint),\n // served under the deployment base but never `basePath`. A relative one\n // is left to `core/content-assets.ts`.\n const imaged = (target: string): string | undefined => {\n const based = rootLinks ? withBasePath(deployBase, target) : target;\n return based === target ? undefined : based;\n };\n\n const lines = text.split(\"\\n\");\n const splices = collectSplices(text, routed, imaged);\n\n return lines\n .map((line, index) => {\n const lineSplices = splices.get(index);\n return lineSplices ? spliceLine(line, lineSplices) : line;\n })\n .join(\"\\n\");\n };\n};\n",
|
|
184
185
|
"/**\n * Code-sample generation for an operation. Deliberately dependency-free: the\n * playground client renders samples live in the browser, so this module must\n * stay out of the server-only dependency graph (no helpers.ts, no\n * openapi-sampler). Requests are assembled once by `buildRequest` in\n * `request.ts`; the builders here only render a finished `RequestSample` as\n * simple, copy-pasteable starter code — not an exhaustive SDK.\n */\n\nexport interface RequestSample {\n method: string;\n url: string;\n headers: Record<string, string>;\n /**\n * The request body as sent, when the operation takes one: JSON text,\n * form-urlencoded pairs, or a raw media type's text.\n */\n body?: string;\n bodyValue?: unknown;\n /**\n * A `multipart/form-data` body's parts as `[name, value]` pairs, set\n * instead of `body`. The request carries no Content-Type of its own for\n * them: the client writes one with the parts' boundary.\n */\n formData?: [string, string][];\n}\n\nconst headerLines = (\n headers: Record<string, string>,\n format: (key: string, value: string) => string\n): string[] =>\n Object.entries(headers).map(([key, value]) => format(key, value));\n\n/**\n * A single-quoted POSIX shell word. Nothing expands inside single quotes — no\n * `$`, backtick, `!`, or `\\` — so a value reaches curl byte for byte; a\n * literal `'` closes the quote, adds an escaped one, and reopens it.\n */\nconst shellQuote = (value: string): string =>\n `'${value.replaceAll(\"'\", String.raw`'\\''`)}'`;\n\n/**\n * A double-quoted string literal for the JavaScript and Python samples. JSON's\n * string escapes are a subset of both languages' — a quote in a header value\n * (`If-Match: \"33a64df5\"`) or a backslash becomes an escape rather than\n * ending the literal early.\n */\nconst stringLiteral = (value: string): string => JSON.stringify(value);\n\nconst curlSnippet = (sample: RequestSample): string => {\n const lines = [\n // `-X HEAD` sends a HEAD but still waits for the body the response\n // announces, so the command hangs; `--head` knows there is none.\n sample.method === \"HEAD\"\n ? `curl --head ${shellQuote(sample.url)}`\n : `curl -X ${sample.method} ${shellQuote(sample.url)}`,\n ...headerLines(\n sample.headers,\n (key, value) => ` -H ${shellQuote(`${key}: ${value}`)}`\n ),\n ];\n if (sample.body) {\n lines.push(` -d ${shellQuote(sample.body)}`);\n }\n // `--form-string`, not `-F`: `-F` reads a value starting with `@` or `<` as\n // a file to upload.\n for (const [name, value] of sample.formData ?? []) {\n lines.push(` --form-string ${shellQuote(`${name}=${value}`)}`);\n }\n return lines.join(\" \\\\\\n\");\n};\n\n/**\n * Whether fetch refuses to send `method` (an upper-case HTTP method). TRACE is\n * one of the Fetch standard's forbidden methods, and the only one an OpenAPI\n * spec can declare: browsers and Node's fetch alike throw a TypeError before\n * any request goes out.\n */\nexport const fetchRefusesMethod = (method: string): boolean =>\n method === \"TRACE\";\n\n/**\n * The JavaScript sample for a method fetch refuses: a note in place of a call\n * that could only throw.\n */\nconst FETCH_REFUSED_NOTE = [\n \"// fetch() refuses the TRACE method: browsers and Node both throw before\",\n \"// sending, so there's no fetch sample for this operation. Send it with\",\n \"// curl or another HTTP client instead.\",\n].join(\"\\n\");\n\nconst fetchCall = (sample: RequestSample, declaration: string): string => {\n if (fetchRefusesMethod(sample.method)) {\n return FETCH_REFUSED_NOTE;\n }\n const options = [` method: ${stringLiteral(sample.method)}`];\n if (Object.keys(sample.headers).length > 0) {\n const headers = headerLines(\n sample.headers,\n (key, value) => ` ${stringLiteral(key)}: ${stringLiteral(value)}`\n ).join(\",\\n\");\n options.push(` headers: {\\n${headers}\\n }`);\n }\n if (sample.body) {\n // Always the raw editor text as a string literal, never re-read as a JS\n // expression: the sample must send byte-for-byte what the live request\n // sends, and an object literal doesn't round-trip every valid JSON\n // document — `{\"__proto__\":{\"x\":1}}` sets a prototype instead of a key,\n // and an id past 2^53 loses digits through a JS number. The string\n // literal also stays syntactically valid while the editor holds mid-edit\n // text that isn't JSON yet.\n options.push(` body: ${stringLiteral(sample.body)}`);\n }\n // A FormData body: fetch writes the multipart Content-Type and boundary.\n let form = \"\";\n if (sample.formData) {\n form = [\n \"const form = new FormData();\\n\",\n ...sample.formData.map(\n ([name, value]) =>\n `form.append(${stringLiteral(name)}, ${stringLiteral(value)});\\n`\n ),\n \"\\n\",\n ].join(\"\");\n options.push(\" body: form\");\n }\n return `${form}const ${declaration} = await fetch(${stringLiteral(sample.url)}, {\\n${options.join(\n \",\\n\"\n )}\\n});`;\n};\n\nconst fetchSnippet = (sample: RequestSample): string =>\n fetchCall(sample, \"response\");\n\nconst typescriptSnippet = (sample: RequestSample): string =>\n fetchCall(sample, \"response: Response\");\n\n/** The methods `requests` has a module-level helper for. */\nconst PYTHON_METHODS = new Set([\n \"delete\",\n \"get\",\n \"head\",\n \"options\",\n \"patch\",\n \"post\",\n \"put\",\n]);\n\nconst pythonSnippet = (sample: RequestSample): string => {\n const args = [` ${stringLiteral(sample.url)}`];\n if (Object.keys(sample.headers).length > 0) {\n const headers = headerLines(\n sample.headers,\n (key, value) => ` ${stringLiteral(key)}: ${stringLiteral(value)}`\n ).join(\",\\n\");\n args.push(` headers={\\n${headers}\\n }`);\n }\n if (sample.body) {\n // Same rule as the fetch snippet: the raw text travels as a string via\n // `data=` rather than a `json=` dict — a Python literal re-serializes\n // `1e400` as `Infinity` and would otherwise diverge from the live send.\n args.push(` data=${stringLiteral(sample.body)}`);\n }\n if (sample.formData) {\n // `files=` is what makes requests encode multipart; a `(None, value)`\n // tuple is a plain field rather than an upload.\n const parts = sample.formData.map(\n ([name, value]) =>\n ` (${stringLiteral(name)}, (None, ${stringLiteral(value)})),\\n`\n );\n args.push(` files=[\\n${parts.join(\"\")} ]`);\n }\n // requests has a helper per common method; anything else (TRACE) goes\n // through `requests.request` with the method named.\n const method = sample.method.toLowerCase();\n let call = `requests.${method}`;\n if (!PYTHON_METHODS.has(method)) {\n call = \"requests.request\";\n args.unshift(` ${stringLiteral(sample.method)}`);\n }\n return `import requests\\n\\nresponse = ${call}(\\n${args.join(\",\\n\")},\\n)`;\n};\n\n// ---------------------------------------------------------------------------\n// Shared helpers for the compiled and scripting languages below\n// ---------------------------------------------------------------------------\n\nconst hex = (code: number, width: number): string =>\n code.toString(16).padStart(width, \"0\");\n\n/**\n * A string literal for a language with C-style escapes: the delimiter and\n * `\\` escaped, newline, carriage return, and tab by name, any other control\n * character through `control` (each language spells a code point\n * differently, and some reject JSON's `\\uXXXX`), and each character in\n * `sigils` backslash-escaped so it can't start an interpolation (`$` in\n * Kotlin and Dart, `#` in Ruby).\n */\nconst quoted = (\n value: string,\n control: (code: number) => string,\n sigils = \"\",\n delimiter = '\"'\n): string => {\n let out = delimiter;\n for (const char of value) {\n const code = char.codePointAt(0) ?? 0;\n if (char === delimiter || char === \"\\\\\" || sigils.includes(char)) {\n out += `\\\\${char}`;\n } else if (char === \"\\n\") {\n out += String.raw`\\n`;\n } else if (char === \"\\r\") {\n out += String.raw`\\r`;\n } else if (char === \"\\t\") {\n out += String.raw`\\t`;\n } else if (code < 0x20 || code === 0x7f) {\n out += control(code);\n } else {\n out += char;\n }\n }\n return `${out}${delimiter}`;\n};\n\nconst goString = (value: string): string =>\n quoted(value, (code) => `\\\\x${hex(code, 2)}`);\n// Java decodes `\\uXXXX` before it tokenizes, which is safe for a control\n// character inside a string literal (only a line break isn't, and those are\n// spelled `\\n` and `\\r`).\nconst javaString = (value: string): string =>\n quoted(value, (code) => `\\\\u${hex(code, 4)}`);\nconst csharpString = javaString;\n// C and C++ reject a `\\u` escape below U+00A0; octal always works. A `?`\n// before another is escaped too, so no `??=`-style trigraph can form (strict\n// C modes still translate them).\nconst cString = (value: string): string =>\n quoted(value, (code) => `\\\\${code.toString(8).padStart(3, \"0\")}`).replaceAll(\n /\\?(?=\\?)/gu,\n \"?\\\\\"\n );\nconst braceString = (value: string): string =>\n quoted(value, (code) => `\\\\u{${hex(code, 1)}}`);\nconst kotlinString = (value: string): string =>\n quoted(value, (code) => `\\\\u${hex(code, 4)}`, \"$\");\nconst rubyString = (value: string): string =>\n quoted(value, (code) => `\\\\u${hex(code, 4)}`, \"#\");\nconst dartString = (value: string): string =>\n quoted(value, (code) => `\\\\x${hex(code, 2)}`, \"$\", \"'\");\n\n/**\n * A single-quoted PHP string: nothing interpolates, and only `\\` and `'`\n * need escaping.\n */\nconst phpString = (value: string): string =>\n `'${value.replaceAll(\"\\\\\", \"\\\\\\\\\").replaceAll(\"'\", String.raw`\\'`)}'`;\n\n/**\n * A single-quoted PowerShell string: nothing expands, and a quote is doubled.\n * PowerShell also closes a string on the typographic single quotes, so those\n * are doubled too.\n */\nconst powershellString = (value: string): string =>\n `'${value.replaceAll(/['‘’‚‛]/gu, (quote) => quote + quote)}'`;\n\n/** A request's `Content-Type` apart from its other headers. */\ninterface ContentTypeSplit {\n contentType: string | undefined;\n rest: [string, string][];\n}\n\n/** The request's `Content-Type`, and its other headers without it. */\nconst splitContentType = (\n headers: Record<string, string>\n): ContentTypeSplit => {\n const entries = Object.entries(headers);\n const match = entries.find(([key]) => key.toLowerCase() === \"content-type\");\n return {\n contentType: match?.[1],\n rest: entries.filter(([key]) => key.toLowerCase() !== \"content-type\"),\n };\n};\n\n/**\n * The boundary for a multipart body written out by hand, for clients with no\n * form builder of their own (Java's and Swift's).\n */\nconst MULTIPART_BOUNDARY = \"BlumeFormBoundary7MA4YWxkTrZu0gW\";\n\n/** A `multipart/form-data` body for `parts`, as the bytes on the wire. */\nconst multipartBody = (parts: [string, string][]): string =>\n [\n ...parts.map(\n ([name, value]) =>\n `--${MULTIPART_BOUNDARY}\\r\\nContent-Disposition: form-data; name=\"${name\n .replaceAll('\"', \"%22\")\n .replaceAll(\"\\r\", \"%0D\")\n .replaceAll(\"\\n\", \"%0A\")}\"\\r\\n\\r\\n${value}\\r\\n`\n ),\n `--${MULTIPART_BOUNDARY}--\\r\\n`,\n ].join(\"\");\n\n/** A note in place of a sample whose client can't send `method`. */\nconst unsupportedMethod = (\n comment: string,\n client: string,\n method: string\n): string =>\n `${comment} ${client} has no ${method} method, so there's no sample for this\\n${comment} operation here. Send it with curl or another HTTP client instead.`;\n\n// ---------------------------------------------------------------------------\n// Node.js (axios)\n// ---------------------------------------------------------------------------\n\nconst nodeSnippet = (sample: RequestSample): string => {\n const config = [\n ` method: ${stringLiteral(sample.method)}`,\n ` url: ${stringLiteral(sample.url)}`,\n ];\n if (Object.keys(sample.headers).length > 0) {\n const headers = headerLines(\n sample.headers,\n (key, value) => ` ${stringLiteral(key)}: ${stringLiteral(value)}`\n ).join(\",\\n\");\n config.push(` headers: {\\n${headers}\\n }`);\n }\n if (sample.body) {\n config.push(` data: ${stringLiteral(sample.body)}`);\n }\n let form = \"\";\n if (sample.formData) {\n form = [\n \"const form = new FormData();\\n\",\n ...sample.formData.map(\n ([name, value]) =>\n `form.append(${stringLiteral(name)}, ${stringLiteral(value)});\\n`\n ),\n \"\\n\",\n ].join(\"\");\n config.push(\" data: form\");\n }\n return `import axios from \"axios\";\\n\\n${form}const response = await axios.request({\\n${config.join(\",\\n\")}\\n});`;\n};\n\n// ---------------------------------------------------------------------------\n// PHP (the curl extension)\n// ---------------------------------------------------------------------------\n\nconst phpSnippet = (sample: RequestSample): string => {\n const options = [\n ` CURLOPT_URL => ${phpString(sample.url)}`,\n \" CURLOPT_RETURNTRANSFER => true\",\n // As with `curl --head`: a HEAD request expects no body.\n sample.method === \"HEAD\"\n ? \" CURLOPT_NOBODY => true\"\n : ` CURLOPT_CUSTOMREQUEST => ${phpString(sample.method)}`,\n ];\n const headers = Object.entries(sample.headers);\n if (headers.length > 0) {\n const lines = headers.map(\n ([key, value]) => ` ${phpString(`${key}: ${value}`)},\\n`\n );\n options.push(` CURLOPT_HTTPHEADER => [\\n${lines.join(\"\")} ]`);\n }\n if (sample.body) {\n options.push(` CURLOPT_POSTFIELDS => ${phpString(sample.body)}`);\n }\n if (sample.formData) {\n // An array (rather than a string) makes curl send multipart/form-data.\n const fields = sample.formData.map(\n ([name, value]) => ` ${phpString(name)} => ${phpString(value)},\\n`\n );\n options.push(` CURLOPT_POSTFIELDS => [\\n${fields.join(\"\")} ]`);\n }\n return `<?php\\n\\n$curl = curl_init();\\n\\ncurl_setopt_array($curl, [\\n${options.join(\",\\n\")},\\n]);\\n\\n$response = curl_exec($curl);`;\n};\n\n// ---------------------------------------------------------------------------\n// Go (net/http)\n// ---------------------------------------------------------------------------\n\nconst goSnippet = (sample: RequestSample): string => {\n const imports = new Set([\"fmt\", \"io\", \"net/http\"]);\n const lines: string[] = [];\n let body = \"nil\";\n if (sample.formData) {\n imports.add(\"bytes\");\n imports.add(\"mime/multipart\");\n lines.push(\n \"\\tvar body bytes.Buffer\",\n \"\\tform := multipart.NewWriter(&body)\",\n ...sample.formData.map(\n ([name, value]) =>\n `\\tform.WriteField(${goString(name)}, ${goString(value)})`\n ),\n \"\\tform.Close()\",\n \"\"\n );\n body = \"&body\";\n } else if (sample.body) {\n imports.add(\"strings\");\n lines.push(`\\tbody := strings.NewReader(${goString(sample.body)})`);\n body = \"body\";\n }\n lines.push(\n `\\treq, err := http.NewRequest(${goString(sample.method)}, ${goString(sample.url)}, ${body})`,\n \"\\tif err != nil {\",\n \"\\t\\tpanic(err)\",\n \"\\t}\"\n );\n for (const [key, value] of Object.entries(sample.headers)) {\n lines.push(`\\treq.Header.Set(${goString(key)}, ${goString(value)})`);\n }\n if (sample.formData) {\n lines.push('\\treq.Header.Set(\"Content-Type\", form.FormDataContentType())');\n }\n lines.push(\n \"\",\n \"\\tres, err := http.DefaultClient.Do(req)\",\n \"\\tif err != nil {\",\n \"\\t\\tpanic(err)\",\n \"\\t}\",\n \"\\tdefer res.Body.Close()\",\n \"\",\n \"\\tdata, _ := io.ReadAll(res.Body)\",\n \"\\tfmt.Println(string(data))\"\n );\n const importBlock = [...imports]\n .toSorted()\n .map((path) => `\\t\"${path}\"`)\n .join(\"\\n\");\n return `package main\\n\\nimport (\\n${importBlock}\\n)\\n\\nfunc main() {\\n${lines.join(\"\\n\")}\\n}`;\n};\n\n// ---------------------------------------------------------------------------\n// Java (java.net.http)\n// ---------------------------------------------------------------------------\n\nconst javaSnippet = (sample: RequestSample): string => {\n const builder = [` .uri(URI.create(${javaString(sample.url)}))`];\n for (const [key, value] of Object.entries(sample.headers)) {\n builder.push(` .header(${javaString(key)}, ${javaString(value)})`);\n }\n let body = \"HttpRequest.BodyPublishers.noBody()\";\n if (sample.formData) {\n builder.push(\n ` .header(\"Content-Type\", ${javaString(`multipart/form-data; boundary=${MULTIPART_BOUNDARY}`)})`\n );\n body = `HttpRequest.BodyPublishers.ofString(${javaString(multipartBody(sample.formData))})`;\n } else if (sample.body) {\n body = `HttpRequest.BodyPublishers.ofString(${javaString(sample.body)})`;\n }\n builder.push(\n ` .method(${javaString(sample.method)}, ${body})`,\n \" .build();\"\n );\n return [\n \"import java.net.URI;\",\n \"import java.net.http.HttpClient;\",\n \"import java.net.http.HttpRequest;\",\n \"import java.net.http.HttpResponse;\",\n \"\",\n \"HttpRequest request = HttpRequest.newBuilder()\",\n ...builder,\n \"HttpResponse<String> response = HttpClient.newHttpClient()\",\n \" .send(request, HttpResponse.BodyHandlers.ofString());\",\n ].join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// Ruby (net/http)\n// ---------------------------------------------------------------------------\n\n/** The `Net::HTTP` request class for each method it names. */\nconst RUBY_METHODS = new Map([\n [\"DELETE\", \"Delete\"],\n [\"GET\", \"Get\"],\n [\"HEAD\", \"Head\"],\n [\"OPTIONS\", \"Options\"],\n [\"PATCH\", \"Patch\"],\n [\"POST\", \"Post\"],\n [\"PUT\", \"Put\"],\n [\"TRACE\", \"Trace\"],\n]);\n\nconst rubySnippet = (sample: RequestSample): string => {\n const known = RUBY_METHODS.get(sample.method);\n const lines = [\n 'require \"net/http\"',\n \"\",\n `uri = URI(${rubyString(sample.url)})`,\n known\n ? `request = Net::HTTP::${known}.new(uri)`\n : `request = Net::HTTPGenericRequest.new(${rubyString(sample.method)}, true, true, uri)`,\n ];\n for (const [key, value] of Object.entries(sample.headers)) {\n lines.push(`request[${rubyString(key)}] = ${rubyString(value)}`);\n }\n if (sample.body) {\n lines.push(`request.body = ${rubyString(sample.body)}`);\n }\n if (sample.formData) {\n const fields = sample.formData\n .map(([name, value]) => `[${rubyString(name)}, ${rubyString(value)}]`)\n .join(\", \");\n lines.push(`request.set_form([${fields}], \"multipart/form-data\")`);\n }\n lines.push(\n \"\",\n 'response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == \"https\") do |http|',\n \" http.request(request)\",\n \"end\"\n );\n return lines.join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// PowerShell (Invoke-RestMethod)\n// ---------------------------------------------------------------------------\n\n/** The methods `Invoke-RestMethod -Method` names; others take `-CustomMethod`. */\nconst POWERSHELL_METHODS = new Set([\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n \"TRACE\",\n]);\n\nconst powershellSnippet = (sample: RequestSample): string => {\n const { contentType, rest } = splitContentType(sample.headers);\n const lines: string[] = [];\n const args = [\n `-Uri ${powershellString(sample.url)}`,\n POWERSHELL_METHODS.has(sample.method)\n ? `-Method ${sample.method}`\n : `-CustomMethod ${powershellString(sample.method)}`,\n ];\n if (rest.length > 0) {\n lines.push(\n \"$headers = @{\",\n ...rest.map(\n ([key, value]) =>\n ` ${powershellString(key)} = ${powershellString(value)}`\n ),\n \"}\"\n );\n args.push(\"-Headers $headers\");\n }\n // Invoke-RestMethod takes the body's type as a parameter, not a header.\n if (contentType) {\n args.push(`-ContentType ${powershellString(contentType)}`);\n }\n if (sample.body) {\n args.push(`-Body ${powershellString(sample.body)}`);\n }\n if (sample.formData) {\n lines.push(\n \"$form = @{\",\n ...sample.formData.map(\n ([name, value]) =>\n ` ${powershellString(name)} = ${powershellString(value)}`\n ),\n \"}\"\n );\n args.push(\"-Form $form\");\n }\n lines.push(`$response = Invoke-RestMethod ${args.join(\" \")}`);\n return lines.join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// Swift (URLSession)\n// ---------------------------------------------------------------------------\n\nconst swiftSnippet = (sample: RequestSample): string => {\n const lines = [\n \"import Foundation\",\n \"\",\n `var request = URLRequest(url: URL(string: ${braceString(sample.url)})!)`,\n `request.httpMethod = ${braceString(sample.method)}`,\n ];\n for (const [key, value] of Object.entries(sample.headers)) {\n lines.push(\n `request.setValue(${braceString(value)}, forHTTPHeaderField: ${braceString(key)})`\n );\n }\n if (sample.formData) {\n lines.push(\n `request.setValue(${braceString(`multipart/form-data; boundary=${MULTIPART_BOUNDARY}`)}, forHTTPHeaderField: \"Content-Type\")`,\n `request.httpBody = Data(${braceString(multipartBody(sample.formData))}.utf8)`\n );\n } else if (sample.body) {\n lines.push(`request.httpBody = Data(${braceString(sample.body)}.utf8)`);\n }\n lines.push(\n \"\",\n \"let (data, response) = try await URLSession.shared.data(for: request)\"\n );\n return lines.join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// C# (HttpClient)\n// ---------------------------------------------------------------------------\n\nconst csharpSnippet = (sample: RequestSample): string => {\n const { contentType, rest } = splitContentType(sample.headers);\n const lines = [\n \"using System.Net.Http;\",\n \"using System.Net.Http.Headers;\",\n \"\",\n \"using var client = new HttpClient();\",\n `var request = new HttpRequestMessage(new HttpMethod(${csharpString(sample.method)}), ${csharpString(sample.url)});`,\n ];\n // Without validation, so a header .NET would reformat is sent as written.\n for (const [key, value] of rest) {\n lines.push(\n `request.Headers.TryAddWithoutValidation(${csharpString(key)}, ${csharpString(value)});`\n );\n }\n if (sample.body) {\n lines.push(\n `request.Content = new StringContent(${csharpString(sample.body)});`\n );\n // The body's type is a content header in .NET, not a request header.\n if (contentType) {\n lines.push(\n `request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(${csharpString(contentType)});`\n );\n }\n }\n if (sample.formData) {\n lines.push(\n \"var form = new MultipartFormDataContent();\",\n ...sample.formData.map(\n ([name, value]) =>\n `form.Add(new StringContent(${csharpString(value)}), ${csharpString(name)});`\n ),\n \"request.Content = form;\"\n );\n }\n lines.push(\n \"\",\n \"var response = await client.SendAsync(request);\",\n \"var body = await response.Content.ReadAsStringAsync();\"\n );\n return lines.join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// .NET (RestSharp)\n// ---------------------------------------------------------------------------\n\n/** RestSharp's `Method` members, by HTTP method. */\nconst RESTSHARP_METHODS = new Map([\n [\"DELETE\", \"Delete\"],\n [\"GET\", \"Get\"],\n [\"HEAD\", \"Head\"],\n [\"OPTIONS\", \"Options\"],\n [\"PATCH\", \"Patch\"],\n [\"POST\", \"Post\"],\n [\"PUT\", \"Put\"],\n]);\n\nconst dotnetSnippet = (sample: RequestSample): string => {\n const method = RESTSHARP_METHODS.get(sample.method);\n if (!method) {\n return unsupportedMethod(\"//\", \"RestSharp\", sample.method);\n }\n const { contentType, rest } = splitContentType(sample.headers);\n const lines = [\n \"using RestSharp;\",\n \"\",\n \"var client = new RestClient();\",\n `var request = new RestRequest(${csharpString(sample.url)}, Method.${method});`,\n ];\n for (const [key, value] of rest) {\n lines.push(\n `request.AddHeader(${csharpString(key)}, ${csharpString(value)});`\n );\n }\n if (sample.body) {\n // The body carries its own type; a Content-Type header would be ignored.\n lines.push(\n `request.AddStringBody(${csharpString(sample.body)}, ${csharpString(contentType ?? \"text/plain\")});`\n );\n }\n if (sample.formData) {\n lines.push(\n \"request.AlwaysMultipartFormData = true;\",\n ...sample.formData.map(\n ([name, value]) =>\n `request.AddParameter(${csharpString(name)}, ${csharpString(value)});`\n )\n );\n }\n lines.push(\"\", \"var response = await client.ExecuteAsync(request);\");\n return lines.join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// C (libcurl)\n// ---------------------------------------------------------------------------\n\nconst cSnippet = (sample: RequestSample): string => {\n const lines = [\n \"#include <curl/curl.h>\",\n \"\",\n \"int main(void) {\",\n \" CURL *curl = curl_easy_init();\",\n ];\n const headers = Object.entries(sample.headers);\n if (headers.length > 0) {\n lines.push(\" struct curl_slist *headers = NULL;\");\n for (const [key, value] of headers) {\n lines.push(\n ` headers = curl_slist_append(headers, ${cString(`${key}: ${value}`)});`\n );\n }\n }\n lines.push(\n \"\",\n ` curl_easy_setopt(curl, CURLOPT_URL, ${cString(sample.url)});`,\n // As with `curl --head`: a HEAD request expects no body.\n sample.method === \"HEAD\"\n ? \" curl_easy_setopt(curl, CURLOPT_NOBODY, 1L);\"\n : ` curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, ${cString(sample.method)});`\n );\n if (headers.length > 0) {\n lines.push(\" curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);\");\n }\n if (sample.body) {\n lines.push(\n ` curl_easy_setopt(curl, CURLOPT_POSTFIELDS, ${cString(sample.body)});`\n );\n }\n if (sample.formData) {\n lines.push(\n \"\",\n \" curl_mime *form = curl_mime_init(curl);\",\n \" curl_mimepart *part;\"\n );\n for (const [name, value] of sample.formData) {\n lines.push(\n \" part = curl_mime_addpart(form);\",\n ` curl_mime_name(part, ${cString(name)});`,\n ` curl_mime_data(part, ${cString(value)}, CURL_ZERO_TERMINATED);`\n );\n }\n lines.push(\" curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);\");\n }\n lines.push(\"\", \" CURLcode result = curl_easy_perform(curl);\", \"\");\n if (sample.formData) {\n lines.push(\" curl_mime_free(form);\");\n }\n if (headers.length > 0) {\n lines.push(\" curl_slist_free_all(headers);\");\n }\n lines.push(\n \" curl_easy_cleanup(curl);\",\n \" return result == CURLE_OK ? 0 : 1;\",\n \"}\"\n );\n return lines.join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// C++ (cpr)\n// ---------------------------------------------------------------------------\n\n/** cpr's request functions, by HTTP method. */\nconst CPR_METHODS = new Map([\n [\"DELETE\", \"Delete\"],\n [\"GET\", \"Get\"],\n [\"HEAD\", \"Head\"],\n [\"OPTIONS\", \"Options\"],\n [\"PATCH\", \"Patch\"],\n [\"POST\", \"Post\"],\n [\"PUT\", \"Put\"],\n]);\n\nconst cppSnippet = (sample: RequestSample): string => {\n const method = CPR_METHODS.get(sample.method);\n if (!method) {\n return unsupportedMethod(\"//\", \"cpr\", sample.method);\n }\n const args = [` cpr::Url{${cString(sample.url)}}`];\n const headers = Object.entries(sample.headers);\n if (headers.length > 0) {\n const pairs = headers\n .map(([key, value]) => `{${cString(key)}, ${cString(value)}}`)\n .join(\", \");\n args.push(` cpr::Header{${pairs}}`);\n }\n if (sample.body) {\n args.push(` cpr::Body{${cString(sample.body)}}`);\n }\n if (sample.formData) {\n const parts = sample.formData\n .map(([name, value]) => `{${cString(name)}, ${cString(value)}}`)\n .join(\", \");\n args.push(` cpr::Multipart{${parts}}`);\n }\n return [\n \"#include <cpr/cpr.h>\",\n \"\",\n \"int main() {\",\n ` cpr::Response response = cpr::${method}(`,\n `${args.join(\",\\n\")});`,\n \"}\",\n ].join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// Kotlin (OkHttp)\n// ---------------------------------------------------------------------------\n\n/** Methods OkHttp refuses to send a body with, and ones it requires one for. */\nconst OKHTTP_NO_BODY = new Set([\"GET\", \"HEAD\"]);\nconst OKHTTP_NEEDS_BODY = new Set([\"PATCH\", \"POST\", \"PUT\"]);\n\nconst kotlinSnippet = (sample: RequestSample): string => {\n const { contentType, rest } = splitContentType(sample.headers);\n const imports = new Set([\"okhttp3.OkHttpClient\", \"okhttp3.Request\"]);\n let body = \"null\";\n if (sample.formData) {\n imports.add(\"okhttp3.MultipartBody\");\n const parts = sample.formData\n .map(\n ([name, value]) =>\n `\\n .addFormDataPart(${kotlinString(name)}, ${kotlinString(value)})`\n )\n .join(\"\");\n body = `MultipartBody.Builder()\\n .setType(MultipartBody.FORM)${parts}\\n .build()`;\n } else if (sample.body && !OKHTTP_NO_BODY.has(sample.method)) {\n imports.add(\"okhttp3.RequestBody.Companion.toRequestBody\");\n // OkHttp takes the body's type from the body, not from a header.\n let mediaType = \"\";\n if (contentType) {\n imports.add(\"okhttp3.MediaType.Companion.toMediaType\");\n mediaType = `${kotlinString(contentType)}.toMediaType()`;\n }\n body = `${kotlinString(sample.body)}.toRequestBody(${mediaType})`;\n } else if (OKHTTP_NEEDS_BODY.has(sample.method)) {\n imports.add(\"okhttp3.RequestBody.Companion.toRequestBody\");\n body = '\"\".toRequestBody()';\n }\n const builder = [` .url(${kotlinString(sample.url)})`];\n builder.push(\n ` .method(${kotlinString(sample.method)}, ${body.replaceAll(\"\\n\", \"\\n \")})`\n );\n for (const [key, value] of rest) {\n builder.push(` .addHeader(${kotlinString(key)}, ${kotlinString(value)})`);\n }\n builder.push(\" .build()\");\n const importLines = [...imports]\n .toSorted()\n .map((name) => `import ${name}`)\n .join(\"\\n\");\n return [\n importLines,\n \"\",\n \"val client = OkHttpClient()\",\n \"\",\n \"val request = Request.Builder()\",\n ...builder,\n \"\",\n \"client.newCall(request).execute().use { response ->\",\n \" println(response.body?.string())\",\n \"}\",\n ].join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// Rust (reqwest)\n// ---------------------------------------------------------------------------\n\n/** The methods `reqwest::Method` has a constant for. */\nconst RUST_METHODS = new Set([\n \"CONNECT\",\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n \"TRACE\",\n]);\n\nconst rustSnippet = (sample: RequestSample): string => {\n const method = RUST_METHODS.has(sample.method)\n ? `reqwest::Method::${sample.method}`\n : `reqwest::Method::from_bytes(${braceString(sample.method)}.as_bytes()).unwrap()`;\n const chain = [` .request(${method}, ${braceString(sample.url)})`];\n for (const [key, value] of Object.entries(sample.headers)) {\n chain.push(` .header(${braceString(key)}, ${braceString(value)})`);\n }\n if (sample.body) {\n chain.push(` .body(${braceString(sample.body)})`);\n }\n const lines = [\n \"#[tokio::main]\",\n \"async fn main() -> Result<(), reqwest::Error> {\",\n ];\n if (sample.formData) {\n // Needs reqwest's `multipart` feature.\n const parts = sample.formData\n .map(\n ([name, value]) =>\n `\\n .text(${braceString(name)}, ${braceString(value)})`\n )\n .join(\"\");\n lines.push(` let form = reqwest::multipart::Form::new()${parts};`, \"\");\n chain.push(\" .multipart(form)\");\n }\n lines.push(\n \" let response = reqwest::Client::new()\",\n ...chain,\n \" .send()\",\n \" .await?;\",\n \"\",\n ' println!(\"{}\", response.text().await?);',\n \" Ok(())\",\n \"}\"\n );\n return lines.join(\"\\n\");\n};\n\n// ---------------------------------------------------------------------------\n// Dart (package:http)\n// ---------------------------------------------------------------------------\n\nconst dartSnippet = (sample: RequestSample): string => {\n const lines = [\"import 'package:http/http.dart' as http;\", \"\"];\n const target = `${dartString(sample.method)}, Uri.parse(${dartString(sample.url)})`;\n if (sample.formData) {\n lines.push(`final request = http.MultipartRequest(${target});`);\n for (const [name, value] of sample.formData) {\n lines.push(`request.fields[${dartString(name)}] = ${dartString(value)};`);\n }\n } else {\n lines.push(`final request = http.Request(${target});`);\n }\n const headers = Object.entries(sample.headers);\n if (headers.length > 0) {\n lines.push(\n \"request.headers.addAll({\",\n ...headers.map(\n ([key, value]) => ` ${dartString(key)}: ${dartString(value)},`\n ),\n \"});\"\n );\n }\n if (sample.body) {\n lines.push(`request.body = ${dartString(sample.body)};`);\n }\n lines.push(\n \"\",\n \"final response = await request.send();\",\n \"print(await response.stream.bytesToString());\"\n );\n return lines.join(\"\\n\");\n};\n\n/** A code-sample language: config id -> label, Shiki lang, and builder. */\nexport interface SampleLanguage {\n id: string;\n label: string;\n lang: string;\n build: (sample: RequestSample) => string;\n}\n\nconst LANGUAGES: SampleLanguage[] = [\n { build: curlSnippet, id: \"curl\", label: \"cURL\", lang: \"bash\" },\n { build: pythonSnippet, id: \"python\", label: \"Python\", lang: \"python\" },\n { build: fetchSnippet, id: \"js\", label: \"JavaScript\", lang: \"js\" },\n { build: nodeSnippet, id: \"node\", label: \"Node.js\", lang: \"js\" },\n {\n build: typescriptSnippet,\n id: \"typescript\",\n label: \"TypeScript\",\n lang: \"ts\",\n },\n { build: phpSnippet, id: \"php\", label: \"PHP\", lang: \"php\" },\n { build: goSnippet, id: \"go\", label: \"Go\", lang: \"go\" },\n { build: javaSnippet, id: \"java\", label: \"Java\", lang: \"java\" },\n { build: rubySnippet, id: \"ruby\", label: \"Ruby\", lang: \"ruby\" },\n {\n build: powershellSnippet,\n id: \"powershell\",\n label: \"PowerShell\",\n lang: \"powershell\",\n },\n { build: swiftSnippet, id: \"swift\", label: \"Swift\", lang: \"swift\" },\n { build: csharpSnippet, id: \"csharp\", label: \"C#\", lang: \"csharp\" },\n { build: dotnetSnippet, id: \"dotnet\", label: \".NET\", lang: \"csharp\" },\n { build: cSnippet, id: \"c\", label: \"C\", lang: \"c\" },\n { build: cppSnippet, id: \"cpp\", label: \"C++\", lang: \"cpp\" },\n { build: kotlinSnippet, id: \"kotlin\", label: \"Kotlin\", lang: \"kotlin\" },\n { build: rustSnippet, id: \"rust\", label: \"Rust\", lang: \"rust\" },\n { build: dartSnippet, id: \"dart\", label: \"Dart\", lang: \"dart\" },\n];\n\n/** Every id `codeSamples` accepts for a generated sample. */\nexport const SAMPLE_LANGUAGE_IDS = LANGUAGES.map((language) => language.id);\n\n/**\n * Other spellings of the ids, including every alias Mintlify accepts and\n * ReadMe's ids for the languages Blume generates (`cplusplus`).\n */\nconst ALIASES = new Map([\n [\".net\", \"dotnet\"],\n [\"bash\", \"curl\"],\n [\"c#\", \"csharp\"],\n [\"c++\", \"cpp\"],\n [\"cplusplus\", \"cpp\"],\n [\"cs\", \"csharp\"],\n [\"dot-net\", \"dotnet\"],\n [\"flutter\", \"dart\"],\n [\"golang\", \"go\"],\n [\"javascript\", \"js\"],\n [\"kt\", \"kotlin\"],\n [\"node.js\", \"node\"],\n [\"nodejs\", \"node\"],\n [\"ps1\", \"powershell\"],\n [\"py\", \"python\"],\n [\"rb\", \"ruby\"],\n [\"rs\", \"rust\"],\n [\"sh\", \"curl\"],\n [\"shell\", \"curl\"],\n [\"ts\", \"typescript\"],\n]);\n\n/** A configured id or alias, as the id it names (lowercased). */\nexport const sampleLanguageId = (raw: string): string => {\n const lower = raw.toLowerCase();\n return ALIASES.get(lower) ?? lower;\n};\n\n/** A language's display name and the Shiki language that highlights it. */\nexport interface SampleLanguageInfo {\n label: string;\n lang: string;\n}\n\n/**\n * The display name and Shiki language of a language id or alias, or `null`\n * when Blume doesn't generate that language.\n */\nexport const sampleLanguageInfo = (raw: string): SampleLanguageInfo | null => {\n const id = sampleLanguageId(raw);\n const language = LANGUAGES.find((entry) => entry.id === id);\n return language ? { label: language.label, lang: language.lang } : null;\n};\n\n/** `openapi()`'s default `codeSamples`, which hand-written endpoint pages always use. */\nexport const DEFAULT_SAMPLE_LANGUAGES = [\"curl\", \"js\", \"python\"];\n\n/**\n * The configured ids Blume generates no sample for, as written: the ones\n * {@link sampleLanguages} drops, which the reference source warns about.\n */\nexport const unknownSampleLanguages = (ids: string[] | false): string[] =>\n ids === false ? [] : ids.filter((raw) => sampleLanguageInfo(raw) === null);\n\n/**\n * The sample languages to render, resolved from config ids (unknown ids\n * dropped, with a warning from the reference source), in order. `false` and\n * an empty list both render none.\n */\nexport const sampleLanguages = (ids: string[] | false): SampleLanguage[] => {\n if (ids === false) {\n return [];\n }\n const byId = new Map(LANGUAGES.map((entry) => [entry.id, entry]));\n const out: SampleLanguage[] = [];\n const seen = new Set<string>();\n for (const raw of ids) {\n const id = sampleLanguageId(raw);\n const language = byId.get(id);\n if (language && !seen.has(id)) {\n seen.add(id);\n out.push(language);\n }\n }\n return out;\n};\n",
|
|
185
186
|
"import type { Document, OperationObject } from \"@scalar/openapi-types/3.2\";\n\nimport type { GraphqlAuthOptions } from \"../reference/options.ts\";\nimport type {\n AsyncApiAction,\n AsyncApiDocument,\n AsyncApiSpecValue,\n} from \"./asyncapi.ts\";\n// Type-only, so the import can't cycle at runtime (checks.ts and graphql.ts\n// import from here).\nimport type { SpecIssue } from \"./checks.ts\";\nimport type { GraphqlDocument, GraphqlMember } from \"./graphql.ts\";\nimport type { ReferenceKind } from \"./references.ts\";\nimport { slugify } from \"./references.ts\";\n\n// The slug rules live with the reference resolver so operation routes and\n// reference-source tokens can never drift apart; re-exported for existing\n// importers.\nexport { slugify } from \"./references.ts\";\n\n/**\n * Blume's own API reference model, shared by both spec kinds. OpenAPI specs\n * are parsed and upgraded to 3.1, AsyncAPI specs normalized to 3.x (see\n * `parse.ts`), with internal `$ref`s left intact — the document stays\n * JSON-serializable (a fully dereferenced graph can be circular), and the schema\n * components resolve refs against `document.components.schemas` at render time.\n * Each operation is flattened into an {@link ApiOperationRef} with a real,\n * per-operation route so it becomes a first-class Blume page.\n */\n\n/**\n * A normalized OpenAPI document, internal `$ref`s intact. Typed as 3.2, which\n * is backward compatible with 3.1, so one type covers both the upgraded 3.1\n * documents and the 3.2 ones read as written.\n */\nexport type ApiDocument = Document;\n\n/**\n * The HTTP methods an OpenAPI path item may declare, in spec order. `query`\n * is OpenAPI 3.2's (the QUERY method: a safe request that carries a body); a\n * 3.1 path item can't declare it, so listing it changes nothing there.\n */\nexport const HTTP_METHODS = [\n \"get\",\n \"put\",\n \"post\",\n \"delete\",\n \"options\",\n \"head\",\n \"patch\",\n \"trace\",\n \"query\",\n] as const;\n\nexport type HttpMethod = (typeof HTTP_METHODS)[number];\n\n/** Group used for operations that declare no tag. */\nconst UNTAGGED = \"Operations\";\n\n/** Group used for webhooks that declare no tag. */\nconst UNTAGGED_WEBHOOKS = \"Webhooks\";\n\n/** A lower-case letter or digit followed by a capital: `addPet`, `v2List`. */\nconst CASE_BOUNDARY = /(?<before>[\\p{Ll}\\p{N}])(?<capital>\\p{Lu})/gu;\n/** The last capital of an acronym before a capitalized word: `HTTPResponse`. */\nconst ACRONYM_BOUNDARY = /(?<acronym>\\p{Lu})(?<word>\\p{Lu}\\p{Ll})/gu;\n\n/**\n * Hyphenate an identifier's word boundaries before slugifying, so a camelCase\n * `operationId` keeps its words in the URL (`getHTTPResponse` ->\n * `get-http-response`) instead of collapsing once `slugify` lowercases it.\n * OpenAPI generators reuse operation ids as SDK method names, so camelCase is\n * the norm there; GraphQL field and type names and AsyncAPI operation ids go\n * through the same rule so every spec kind derives routes alike. An id that\n * is already kebab-case has no boundaries to split and passes through as is.\n */\nconst splitIdentifier = (identifier: string): string =>\n identifier\n .replace(CASE_BOUNDARY, \"$<before>-$<capital>\")\n .replace(ACRONYM_BOUNDARY, \"$<acronym>-$<word>\");\n\n/** A stable, URL-safe key for an operation: its `operationId`, else method+path. */\nexport const operationKey = (\n method: string,\n path: string,\n operationId?: string\n): string => {\n const fromId = operationId ? slugify(splitIdentifier(operationId)) : \"\";\n return fromId || slugify(`${method}-${path}`);\n};\n\n/** One operation, flattened out of its document and mapped to a route. */\nexport interface ApiOperationRef {\n /** Stable key, unique within a spec; matches the MDX `<Operation id>`. */\n key: string;\n /**\n * HTTP method (OpenAPI), `send`/`receive` action (AsyncAPI), or the member\n * kind — a root-field operation kind or a named-type kind (GraphQL).\n */\n method: HttpMethod | AsyncApiAction | GraphqlMember;\n /**\n * Templated path, e.g. `/pets/{id}` — the channel address (AsyncAPI), or\n * the root field / type name (GraphQL).\n */\n path: string;\n /** Full site route for this operation's page, e.g. `/reference/pet/add-pet`. */\n route: string;\n /** Display tag name (first tag; `Operations` or the channel address when untagged). */\n tag: string;\n tagSlug: string;\n summary: string;\n description: string;\n /** The `operationId` (OpenAPI) or the `operations` map key (AsyncAPI). */\n operationId?: string;\n deprecated: boolean;\n /** The channel the operation acts on (AsyncAPI only). */\n channelId?: string;\n /**\n * An OpenAPI 3.1 webhook: a request the API sends to the reader's endpoint\n * rather than one it serves. `path` then holds the webhook's name, the key\n * it has under the document's `webhooks`.\n */\n webhook?: true;\n}\n\n/**\n * A tag/section: the spec's declared tags in their declared order, then any\n * undeclared tag an operation uses, in first-seen order.\n */\nexport interface ApiTagRef {\n slug: string;\n name: string;\n description: string;\n}\n\n/** Everything the runtime needs for one spec, serialized into `blume:openapi`. */\nexport interface ApiSpecData {\n /** Which front-end parsed the spec (and which components render it). */\n kind: ReferenceKind;\n /** Unique token used as the `<Operation source>` and the data-module key. */\n slug: string;\n /** Base route the spec's operations hang off, e.g. `/reference`. */\n route: string;\n label: string;\n title: string;\n version: string;\n description: string;\n document: ApiDocument | AsyncApiDocument | GraphqlDocument;\n /**\n * URL of the live GraphQL endpoint the playground and code samples target\n * (GraphQL only; OpenAPI documents carry their servers in the document).\n */\n endpoint?: string;\n /** How the GraphQL endpoint authenticates (GraphQL only). */\n auth?: GraphqlAuthOptions;\n /** Operations keyed by {@link ApiOperationRef.key}. */\n operations: Record<string, ApiOperationRef>;\n tags: ApiTagRef[];\n /** Code-sample languages to render per operation; `false` for none. */\n codeSamples: string[] | false;\n /** Whether nested schema rows start expanded. */\n expandSchemas: boolean;\n /**\n * The \"Try it\" playground: whether operation pages render it, and the\n * resolved proxy the Send button targets — `false` for direct requests, a\n * URL string otherwise (the built-in `/_api-proxy` route already carries\n * the site `basePath`).\n */\n playground: { enabled: boolean; proxy: string | false };\n}\n\n/** The generated `blume:openapi` module: specs keyed by {@link ApiSpecData.slug}. */\nexport type OpenApiData = Record<string, ApiSpecData>;\n\n/**\n * The spec a `<Operation source>` / `<ApiOverview source>` names, or nothing.\n * `blume:openapi` crosses a JSON boundary as a plain object, so a lookup must\n * be an own-property one: `source=\"toString\"` would otherwise resolve to the\n * inherited function, which is truthy and carries no `operations`, and every\n * consumer would throw where it means to decline. Shared by the components\n * and the agent-surface serializers so they miss the same way.\n */\nexport const specOf = (\n specs: OpenApiData,\n source: string\n): ApiSpecData | undefined =>\n Object.hasOwn(specs, source) ? specs[source] : undefined;\n\n/** The operation an `<Operation id>` names within its spec, or nothing. */\nexport const operationOf = (\n spec: ApiSpecData,\n id: string\n): ApiOperationRef | undefined =>\n Object.hasOwn(spec.operations, id) ? spec.operations[id] : undefined;\n\n/** The addresses an API overview lists, and what to call them. */\nexport interface SpecAddresses {\n /** `Base URL` (OpenAPI), `Servers` (AsyncAPI) or `Endpoint` (GraphQL). */\n label: string;\n addresses: string[];\n}\n\n/**\n * Where the API lives, flattened into one list for the overview page. OpenAPI\n * declares `servers` as an array of URLs; AsyncAPI as a named map of\n * host/protocol/pathname; a GraphQL schema names no server, so its configured\n * live endpoint stands in.\n */\nexport const specAddresses = (spec: ApiSpecData): SpecAddresses => {\n const addresses: string[] = [];\n if (spec.kind === \"graphql\") {\n if (spec.endpoint) {\n addresses.push(spec.endpoint);\n }\n return { addresses, label: \"Endpoint\" };\n }\n if (spec.kind === \"asyncapi\") {\n // SAFETY: an `asyncapi` spec's document is the AsyncAPI shape (`parse.ts`\n // routes each kind to its own parser).\n const servers = (spec.document as AsyncApiDocument).servers ?? {};\n for (const server of Object.values(servers)) {\n if (server?.host) {\n addresses.push(\n `${server.protocol ? `${server.protocol}://` : \"\"}${server.host}${server.pathname ?? \"\"}`\n );\n }\n }\n return { addresses, label: \"Servers\" };\n }\n // Hand-written specs sometimes declare `servers` as a bare object; degrade\n // to no addresses instead of throwing mid-build.\n // SAFETY: the remaining kind is OpenAPI, whose document declares `servers`\n // as an array of server objects; the array check below guards a spec that\n // wrote something else there.\n const declared = (spec.document as { servers?: { url?: string }[] }).servers;\n for (const server of Array.isArray(declared) ? declared : []) {\n if (server.url) {\n addresses.push(server.url);\n }\n }\n return { addresses, label: \"Base URL\" };\n};\n\nconst SERVER_VARIABLE = /\\{(?<name>[^{}]+)\\}/gu;\n\nconst isDocumentObject = (\n value: AsyncApiSpecValue\n): value is Record<string, AsyncApiSpecValue> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\n// YAML reads an unquoted `default: 8443` as a number; it is still the port.\nconst isVariableDefault = (\n value: AsyncApiSpecValue\n): value is string | number =>\n typeof value === \"string\" || typeof value === \"number\";\n\n/**\n * A server URL template — an OpenAPI `servers[].url`, an AsyncAPI server's\n * `host` or `pathname` — with each `{variable}` replaced by the `default` its\n * `variables` map declares. Code samples, the playground's Send, and the\n * proxy allowlist all need a real address, and\n * `https://{region}.api.example.com` is not one. A variable the map doesn't\n * define with a default (invalid per both specs) stays templated.\n */\nexport const withServerDefaults = (\n template: string,\n variables: AsyncApiSpecValue\n): string =>\n template.replaceAll(SERVER_VARIABLE, (match, name: string) => {\n const variable =\n isDocumentObject(variables) && Object.hasOwn(variables, name)\n ? variables[name]\n : undefined;\n const value = isDocumentObject(variable) ? variable.default : undefined;\n return isVariableDefault(value) ? String(value) : match;\n });\n\n// The runtime object check stands guard because the document was parsed from\n// arbitrary YAML/JSON: a spec can put a scalar where the type promises an\n// operation object.\nconst isOperation = (\n value: OperationObject | undefined\n): value is OperationObject => typeof value === \"object\" && value !== null;\n\n/** Whether a spec value is text YAML may have read as a number. */\nconst isText = <Value>(value: Value): value is Value & (string | number) =>\n typeof value === \"string\" || typeof value === \"number\";\n\n/**\n * A spec field that names something, as a string. YAML reads an unquoted\n * `operationId: 404` or `tags: [2024]` as a number, which still names the\n * operation or tag; anything else a hand-written spec puts there counts as\n * absent.\n */\nconst specText = <Value>(value: Value): string | undefined =>\n isText(value) ? String(value) : undefined;\n\n/**\n * A tag's slug before collisions are resolved, its word boundaries hyphenated\n * the way an operation id's are (`InboxesThreads` -> `inboxes-threads`).\n */\nconst wordSlug = (name: string): string => slugify(splitIdentifier(name));\n\n/**\n * Assign each distinct tag name a unique slug. `slugify` can collapse\n * different names onto one value — any two punctuation-only tags (`!!!`,\n * `???`) both fall through to the `operations` fallback — and a shared slug\n * silently merges the tags' routes, sidebar groups, and overview sections.\n * Collisions gain `-2`, `-3`, … in first-seen order. Shared with the AsyncAPI\n * extractor (`asyncapi.ts`), whose untagged fallback groups are channel\n * addresses. `slug` is the rule before collisions: the collector also runs\n * the one earlier releases used (`slugify` alone, so `InboxesThreads` ->\n * `inboxesthreads`) to redirect the routes they gave.\n */\nexport const tagSlugger = (\n slug: (name: string) => string = wordSlug\n): ((name: string) => string) => {\n const assigned = new Map<string, string>();\n const taken = new Set<string>();\n return (name) => {\n const existing = assigned.get(name);\n if (existing) {\n return existing;\n }\n const base = slug(name) || \"operations\";\n let unique = base;\n for (let suffix = 2; taken.has(unique); suffix += 1) {\n unique = `${base}-${suffix}`;\n }\n taken.add(unique);\n assigned.set(name, unique);\n return unique;\n };\n};\n\n/**\n * How a warning names an operation: `GET /pets`, or a webhook by its name\n * (`Webhook \"newPet\" (POST)`), since a webhook has no path.\n */\nexport const operationLabel = (\n name: string,\n method: string,\n webhook: boolean\n): string =>\n webhook\n ? `Webhook \"${name}\" (${method.toUpperCase()})`\n : `${method.toUpperCase()} ${name}`;\n\n/** One entry of a document's `paths` or `webhooks` map. */\ntype PathItemEntry =\n | NonNullable<ApiDocument[\"paths\"]>[string]\n | NonNullable<ApiDocument[\"webhooks\"]>[string];\n\n/** An operation before the collector assigns its unique key and route. */\ntype CollectedOperation = Omit<ApiOperationRef, \"route\" | \"tagSlug\">;\n\n/** What a spec's `tags` list says about one tag. */\nexport interface ApiTagMeta {\n description: string;\n /**\n * The tag's label, in place of its name, from Redocly's `x-displayName`\n * extension. Only the label changes: the tag's slug, and so its routes,\n * still come from its name.\n */\n displayName?: string;\n}\n\n/**\n * A route an earlier release gave an operation's page, and the route the\n * page has now: the source turns each into a redirect, so links to the old\n * URL keep working.\n */\nexport interface MovedRoute {\n from: string;\n to: string;\n}\n\n/** The flattened output both extractors produce. */\nexport interface CollectedOperations {\n operations: ApiOperationRef[];\n tags: ApiTagRef[];\n /** Operation routes that moved from what earlier slug rules gave them. */\n moved: MovedRoute[];\n}\n\n/** The collector handle: feed operations in, read the flattened output out. */\nexport interface OperationCollector {\n /** Add an operation, returning it with its key and route assigned. */\n add: (entry: CollectedOperation) => ApiOperationRef;\n finish: () => CollectedOperations;\n}\n\n/** {@link CollectedOperations} plus anything the extractor had to skip. */\nexport interface ExtractedOperations extends CollectedOperations {\n warnings: string[];\n}\n\n/**\n * The collector behind both extractors (OpenAPI here, AsyncAPI in\n * `asyncapi.ts`): declared-then-first-seen tag ordering, key de-duplication\n * (a repeated key gains its method/action as a suffix), and the shared route\n * template — so URL shape and slug rules can never drift between the two spec\n * kinds.\n *\n * A key is unique across the spec, since it names the operation in\n * `<Operation id>`. Its page's URL only has to be unique within its tag's\n * folder, so the last route segment de-duplicates per tag: `list` in two\n * tags is `/pets/list` and `/stores/list`, not `/stores/list-get`. Earlier\n * releases de-duplicated the route like the key, and slugged tags without\n * splitting their words; each route those rules gave differently is\n * reported in `moved`.\n */\nexport const operationCollector = (\n baseRoute: string,\n tagMeta: ReadonlyMap<string, ApiTagMeta>\n): OperationCollector => {\n const operations: ApiOperationRef[] = [];\n const moved: MovedRoute[] = [];\n const tagOrder: string[] = [];\n const tagsSeen = new Set<string>();\n const seen = new Set<string>();\n // Tag slug -> the route segments its operations took.\n const segments = new Map<string, Set<string>>();\n const slugForTag = tagSlugger();\n const legacySlugForTag = tagSlugger(slugify);\n // A root-mounted reference (`route: \"/\"`) must not emit `//tag/key`.\n const base = baseRoute === \"/\" ? \"\" : baseRoute;\n const label = (name: string): string =>\n tagMeta.get(name)?.displayName ?? name;\n\n const add = (entry: CollectedOperation): ApiOperationRef => {\n const tagSlug = slugForTag(entry.tag);\n if (!tagsSeen.has(entry.tag)) {\n tagsSeen.add(entry.tag);\n tagOrder.push(entry.tag);\n }\n let { key } = entry;\n while (seen.has(key)) {\n key = `${key}-${entry.method}`;\n }\n seen.add(key);\n const taken = segments.get(tagSlug) ?? new Set<string>();\n segments.set(tagSlug, taken);\n let segment = entry.key;\n while (taken.has(segment)) {\n segment = `${segment}-${entry.method}`;\n }\n taken.add(segment);\n const route = `${base}/${tagSlug}/${segment}`;\n const legacy = `${base}/${legacySlugForTag(entry.tag)}/${key}`;\n if (legacy !== route) {\n moved.push({ from: legacy, to: route });\n }\n const operation: ApiOperationRef = {\n ...entry,\n key,\n route,\n tag: label(entry.tag),\n tagSlug,\n };\n operations.push(operation);\n return operation;\n };\n\n // Declared tags in the order the spec's `tags` list gives them, then any\n // tag an operation uses without declaring it, in first-use order. The\n // declared order is the author's section order, not an accident of which\n // path happens to come first.\n const declared = [...tagMeta.keys()];\n const rank = (name: string): number => {\n const index = declared.indexOf(name);\n return index === -1 ? declared.length : index;\n };\n\n const finish = (): CollectedOperations => ({\n moved,\n operations,\n tags: tagOrder\n .toSorted((a, b) => rank(a) - rank(b))\n .map((name) => ({\n description: tagMeta.get(name)?.description ?? \"\",\n name: label(name),\n // The same slugger instance, so every tag resolves to the slug its\n // operations were routed under.\n slug: slugForTag(name),\n })),\n });\n\n return { add, finish };\n};\n\n/** {@link ExtractedOperations} plus the spec mistakes extraction noticed. */\nexport interface ExtractedApiOperations extends ExtractedOperations {\n issues: SpecIssue[];\n}\n\n/** A spec's `tags` as the collector reads them: name -> description and label. */\nconst declaredTags = (document: ApiDocument): Map<string, ApiTagMeta> =>\n new Map(\n (document.tags ?? []).flatMap((tag): [string, ApiTagMeta][] => {\n const name = specText(tag.name);\n if (name === undefined) {\n return [];\n }\n const meta: ApiTagMeta = { description: tag.description ?? \"\" };\n const displayName = specText(tag[\"x-displayName\"]);\n if (displayName) {\n meta.displayName = displayName;\n }\n return [[name, meta]];\n })\n );\n\n/**\n * Flatten a 3.1 document into a route-mapped operation list and its ordered\n * tags, webhooks included. Operations inherit the first tag they declare; keys\n * are de-duplicated so a repeated `operationId` still yields distinct routes,\n * with an issue naming both operations. `warnings` reports anything skipped (a\n * `$ref` path item), so missing operations aren't silent.\n *\n * Operations come out in the spec's order: paths as listed, and each path's\n * methods as written. They're keyed in the method order earlier releases\n * walked (`HTTP_METHODS`), so a repeated id resolves to the same key, and\n * the same route, it always did.\n */\nexport const extractOperations = (\n document: ApiDocument,\n baseRoute: string\n): ExtractedApiOperations => {\n const warnings: string[] = [];\n const issues: SpecIssue[] = [];\n const collector = operationCollector(baseRoute, declaredTags(document));\n // Each operation's place in the spec, and the first operation to declare\n // each operationId.\n const position = new Map<ApiOperationRef, number>();\n const firstWithId = new Map<string, string>();\n let cursor = 0;\n\n // A path item's operations, filed under `name`: a path for `paths`, the\n // webhook's key for `webhooks`.\n const addPathItem = (\n name: string,\n item: PathItemEntry,\n webhook: boolean\n ): void => {\n // A parsed spec can carry a null path item despite the type; skip it.\n if (!item) {\n return;\n }\n if (\"$ref\" in item) {\n warnings.push(\n webhook\n ? `Webhook \"${name}\" is a $ref to a shared path item; referenced path items are not resolved, so it is missing from the reference. Inline the path item under \"webhooks\" to render it.`\n : `Path \"${name}\" is a $ref to a shared path item; referenced path items are not resolved, so its operations are missing from the reference. Inline the path item under \"paths\" to render it.`\n );\n return;\n }\n const written = Object.keys(item);\n const offset = cursor;\n cursor += written.length;\n for (const method of HTTP_METHODS) {\n const operation = item[method];\n if (!isOperation(operation)) {\n continue;\n }\n const operationId = specText(operation.operationId);\n const entry: CollectedOperation = {\n deprecated: operation.deprecated ?? false,\n description: specText(operation.description) ?? \"\",\n // A webhook without an operationId is keyed by its name, which is\n // already an identifier (`newPet` -> `new-pet`).\n key: operationKey(\n method,\n name,\n operationId ?? (webhook ? name : undefined)\n ),\n method,\n operationId,\n path: name,\n summary: specText(operation.summary) ?? \"\",\n tag:\n specText(operation.tags?.[0]) ??\n (webhook ? UNTAGGED_WEBHOOKS : UNTAGGED),\n };\n const added = collector.add(\n webhook ? { ...entry, webhook: true } : entry\n );\n position.set(added, offset + written.indexOf(method));\n if (operationId === undefined) {\n continue;\n }\n const label = operationLabel(name, method, webhook);\n const first = firstWithId.get(operationId);\n if (first === undefined) {\n firstWithId.set(operationId, label);\n continue;\n }\n // The key always gains a suffix; the URL only when the two share a tag.\n const url = added.route.endsWith(`/${entry.key}`)\n ? \"\"\n : ` and serves its page at ${added.route}`;\n issues.push({\n code: \"BLUME_OPENAPI_DUPLICATE_OPERATION_ID\",\n message: `${first} and ${label} share the operationId \"${operationId}\", which must be unique in a spec, so Blume names the second one \"${added.key}\" in \\`<Operation id>\\`${url}.`,\n suggestion: `Give each operation its own operationId.`,\n });\n }\n };\n\n for (const [path, item] of Object.entries(document.paths ?? {})) {\n addPathItem(path, item, false);\n }\n // OpenAPI 3.1 webhooks: requests the API sends rather than serves. They\n // follow the paths, so an untagged webhook group sits after the endpoints.\n for (const [name, item] of Object.entries(document.webhooks ?? {})) {\n addPathItem(name, item, true);\n }\n\n const collected = collector.finish();\n return {\n ...collected,\n issues,\n // `position` holds every operation the collector added.\n operations: collected.operations.toSorted(\n (a, b) => (position.get(a) ?? 0) - (position.get(b) ?? 0)\n ),\n warnings,\n };\n};\n\n/** Resolve the operation object for a ref out of its (OpenAPI) document. */\nexport const operationObject = (\n spec: ApiSpecData,\n ref: ApiOperationRef\n): OperationObject | undefined => {\n // Only OpenAPI refs carry HTTP methods; the AsyncAPI counterpart is\n // `asyncApiOperationObject` in `asyncapi.ts`.\n const method = HTTP_METHODS.find((candidate) => candidate === ref.method);\n // SAFETY: only OpenAPI specs route their refs through this resolver\n // (AsyncAPI documents go to `asyncApiOperationObject`), so the spec's\n // document is the OpenAPI shape.\n const document = spec.document as ApiDocument;\n const item = ref.webhook\n ? document.webhooks?.[ref.path]\n : document.paths?.[ref.path];\n const operation = method === undefined ? undefined : item?.[method];\n return isOperation(operation) ? operation : undefined;\n};\n",
|
|
186
187
|
"import type {\n ApiOperationRef,\n ApiTagMeta,\n CollectedOperations,\n} from \"./model.ts\";\nimport { operationCollector, operationKey } from \"./model.ts\";\n\n/**\n * Blume's own AsyncAPI model — the second front-end of the API reference\n * pipeline. Specs are normalized to AsyncAPI 3.x at parse time (see\n * `parseAsyncApiSpec` in `parse.ts`), so this module only handles one shape:\n * top-level `operations` with `action: send | receive` pointing at `channels`.\n * Internal `$ref`s are deliberately left in place, mirroring `model.ts` — the\n * components resolve them lazily, which keeps circular schemas serializable\n * and lets type labels keep their `#/components/schemas/<name>` names.\n * Browser-safe: no Node imports (the components import from here).\n */\n\n/** The two AsyncAPI 3.x operation actions, from the application's perspective. */\nexport const ASYNCAPI_ACTIONS = [\"send\", \"receive\"] as const;\n\nexport type AsyncApiAction = (typeof ASYNCAPI_ACTIONS)[number];\n\n/**\n * A value carried by a parsed spec document: JSON-compatible data whose exact\n * position in the document is not modeled (extension fields, bindings,\n * protocol-specific extras). `undefined` covers absent optional members.\n */\nexport type AsyncApiSpecValue =\n | string\n | number\n | boolean\n | null\n | undefined\n | AsyncApiSpecValue[]\n | { [key: string]: AsyncApiSpecValue };\n\n/** A permissive view of an AsyncAPI reference object. */\nexport interface AsyncApiRefLike {\n $ref?: string;\n [key: string]: AsyncApiSpecValue;\n}\n\n/** A permissive view of an AsyncAPI 3.x channel — only the fields we render. */\nexport interface AsyncApiChannelObject {\n address?: string | null;\n title?: string;\n summary?: string;\n description?: string;\n messages?: Record<string, AsyncApiRefLike>;\n parameters?: Record<string, AsyncApiRefLike>;\n servers?: AsyncApiRefLike[];\n /** Protocol-keyed binding objects, or a `$ref` to a components entry. */\n bindings?: Record<string, AsyncApiSpecValue>;\n [key: string]: AsyncApiSpecValue;\n}\n\n/** A permissive view of an AsyncAPI 3.x operation — only the fields we render. */\nexport interface AsyncApiOperationObject {\n action?: string;\n channel?: AsyncApiRefLike;\n title?: string;\n summary?: string;\n description?: string;\n deprecated?: boolean;\n tags?: { name?: string; description?: string }[];\n security?: AsyncApiRefLike[];\n messages?: AsyncApiRefLike[];\n /** Protocol-keyed binding objects, or a `$ref` to a components entry. */\n bindings?: Record<string, AsyncApiSpecValue>;\n [key: string]: AsyncApiSpecValue;\n}\n\n/** A permissive view of an AsyncAPI 3.x server object. */\nexport interface AsyncApiServerObject {\n host?: string;\n protocol?: string;\n pathname?: string;\n description?: string;\n security?: AsyncApiRefLike[];\n [key: string]: AsyncApiSpecValue;\n}\n\n/** A normalized AsyncAPI 3.x document, internal `$ref`s intact. */\nexport interface AsyncApiDocument {\n asyncapi?: string;\n info?: {\n title?: string;\n version?: string;\n description?: string;\n tags?: { name?: string; description?: string }[];\n [key: string]: AsyncApiSpecValue;\n };\n defaultContentType?: string;\n servers?: Record<string, AsyncApiServerObject>;\n channels?: Record<string, AsyncApiChannelObject>;\n operations?: Record<string, AsyncApiOperationObject>;\n components?: Record<string, Record<string, AsyncApiSpecValue>>;\n [key: string]: AsyncApiSpecValue;\n}\n\n/** Decode a JSON-pointer token: `user~1signedup` -> `user/signedup`. */\nconst unescapePointer = (token: string): string =>\n token.replaceAll(\"~1\", \"/\").replaceAll(\"~0\", \"~\");\n\nconst CHANNEL_REF = /^#\\/channels\\/(?<id>.+)$/u;\n\nconst isString = (value: AsyncApiSpecValue): value is string =>\n typeof value === \"string\";\n\n/** The channel id an operation's `channel.$ref` points at, if resolvable. */\nexport const channelIdOf = (channel?: AsyncApiRefLike): string | undefined => {\n const id = CHANNEL_REF.exec(channel?.$ref ?? \"\")?.groups?.id;\n return id === undefined ? undefined : unescapePointer(id);\n};\n\n/**\n * A channel's display address. AsyncAPI 3.x allows `address: null` (unknown at\n * design time) — fall back to the channel id so the operation still shows\n * where it lives.\n */\nexport const channelAddress = (\n channelId: string,\n channel?: AsyncApiChannelObject\n): string => {\n const address = channel?.address;\n return isString(address) && address !== \"\" ? address : channelId;\n};\n\nconst isObject = (\n value: AsyncApiSpecValue\n): value is Record<string, AsyncApiSpecValue> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst COMPONENT_SECTION_REF =\n /^#\\/components\\/(?<section>channels|operations)\\/(?<name>[^/]+)$/u;\n\n/**\n * Inline top-level `channels`/`operations` entries declared as Reference\n * Objects (`{ $ref: \"#/components/channels/…\" }` — the spec's reuse pattern)\n * by replacing them with their components target. Runs before trait merging\n * so an inlined operation's traits merge exactly like an inline one's.\n * Unresolvable refs stay in place; the extractor reports them.\n */\nconst inlineComponentRefs = (document: AsyncApiDocument): void => {\n const maps: [Record<string, AsyncApiSpecValue> | undefined, string][] = [\n [document.channels, \"channels\"],\n [document.operations, \"operations\"],\n ];\n for (const [map, section] of maps) {\n if (!isObject(map)) {\n continue;\n }\n const table = document.components?.[section];\n for (const [id, entry] of Object.entries(map)) {\n if (!isObject(entry) || !isString(entry.$ref)) {\n continue;\n }\n const groups = COMPONENT_SECTION_REF.exec(entry.$ref)?.groups;\n if (groups?.section !== section) {\n continue;\n }\n const resolved = isObject(table)\n ? table[unescapePointer(groups.name ?? \"\")]\n : undefined;\n // A shallow copy per alias: trait merging mutates its node in place\n // (fields written, `traits` deleted), and two entries pointing at the\n // same component — or the component table itself — must not share it.\n if (isObject(resolved) && !isString(resolved.$ref)) {\n map[id] = { ...resolved };\n }\n }\n }\n};\n\nconst TRAIT_REF =\n /^#\\/components\\/(?<section>operationTraits|messageTraits)\\/(?<name>[^/]+)$/u;\n\n/**\n * Merge `traits` into their operation/message objects, in declaration order,\n * with the object's own properties taking precedence (the spec's merge rule;\n * applied shallowly, which covers the fields traits carry in practice —\n * bindings, security, tags, headers). Runs once at parse time so the\n * serialized document and every downstream consumer are trait-free; the\n * `traits` key itself is dropped. Unresolvable trait `$ref`s are skipped.\n */\nexport const applyAsyncApiTraits = (\n document: AsyncApiDocument\n): AsyncApiDocument => {\n const resolveTrait = (\n trait: AsyncApiSpecValue\n ): Record<string, AsyncApiSpecValue> | undefined => {\n if (!isObject(trait)) {\n return undefined;\n }\n if (!isString(trait.$ref)) {\n return trait;\n }\n const groups = TRAIT_REF.exec(trait.$ref)?.groups;\n const section = groups?.section\n ? document.components?.[groups.section]\n : undefined;\n const resolved = section?.[groups?.name ?? \"\"];\n return isObject(resolved) ? resolved : undefined;\n };\n\n const mergeTraits = (node: Record<string, AsyncApiSpecValue>): void => {\n const { traits } = node;\n if (!Array.isArray(traits)) {\n return;\n }\n delete node.traits;\n const merged: Record<string, AsyncApiSpecValue> = {};\n for (const trait of traits) {\n Object.assign(merged, resolveTrait(trait));\n }\n for (const [key, value] of Object.entries(merged)) {\n if (!(key in node)) {\n node[key] = value;\n }\n }\n };\n\n for (const operation of Object.values(document.operations ?? {})) {\n if (isObject(operation)) {\n mergeTraits(operation);\n }\n }\n const channelMaps = [\n ...Object.values(document.channels ?? {}),\n // Reusable channels under components carry messages too; their traits\n // must merge the same way so a resolved component channel renders alike.\n ...Object.values(document.components?.channels ?? {}),\n ];\n const messageMaps = [\n ...channelMaps.map((channel) =>\n isObject(channel) ? channel.messages : undefined\n ),\n document.components?.messages,\n ];\n for (const messages of messageMaps) {\n if (!isObject(messages)) {\n continue;\n }\n for (const message of Object.values(messages)) {\n // A channel message that is itself a `$ref` resolves to a components\n // message, which this loop also visits — don't merge through the ref.\n if (isObject(message) && !isString(message.$ref)) {\n mergeTraits(message);\n }\n }\n }\n return document;\n};\n\n/**\n * The parse-time normalization pass: component channel/operation refs inlined,\n * then traits merged. The serialized document and every downstream consumer\n * see plain channel/operation objects, trait-free.\n */\nexport const normalizeAsyncApiDocument = (\n document: AsyncApiDocument\n): AsyncApiDocument => {\n inlineComponentRefs(document);\n return applyAsyncApiTraits(document);\n};\n\n/**\n * Resolve where one operation renders from: its action and its declared\n * channel. A string return is the warning explaining why the operation can't\n * appear in the reference.\n */\nconst operationSite = (\n id: string,\n operation: AsyncApiOperationObject,\n channels: Record<string, AsyncApiChannelObject>\n): { action: AsyncApiAction; channelId: string; address: string } | string => {\n const action = ASYNCAPI_ACTIONS.find((a) => a === operation.action);\n if (!action) {\n return `Operation \"${id}\" declares no send/receive action; it is missing from the reference.`;\n }\n const channelId = channelIdOf(operation.channel);\n const channel = channelId === undefined ? undefined : channels[channelId];\n // A channel entry that is still a bare `$ref` survived normalization — its\n // components target doesn't exist — so it renders nothing useful either.\n if (channelId === undefined || !isObject(channel) || isString(channel.$ref)) {\n return `Operation \"${id}\" references a channel that isn't declared under \"channels\"; it is missing from the reference.`;\n }\n return { action, address: channelAddress(channelId, channel), channelId };\n};\n\n/**\n * The route-mapped operations, ordered tags, moved routes, and skip warnings\n * of one document.\n */\nexport interface AsyncApiOperationCatalog extends CollectedOperations {\n warnings: string[];\n}\n\n/**\n * Flatten a normalized AsyncAPI 3.x document into a route-mapped operation\n * list and its ordered tags — the AsyncAPI counterpart of `extractOperations`\n * in `model.ts`, built on the same `operationCollector`. Operations group by\n * their first tag; untagged operations fall back to their channel address, so\n * a spec with no tags still gets one sidebar group per channel. Keys come from\n * the operation id (the `operations` map key), which the official 2.x\n * converter synthesizes deterministically (`<channel>.publish` /\n * `<channel>.subscribe`) — so a 2.x spec and its converter-upgraded 3.x form\n * yield identical URLs. An id that slugifies to nothing falls back to\n * action + address, the same scheme `operationKey` uses for method + path.\n */\nexport const extractAsyncApiOperations = (\n document: AsyncApiDocument,\n baseRoute: string\n): AsyncApiOperationCatalog => {\n const warnings: string[] = [];\n const tagMeta = new Map(\n (document.info?.tags ?? [])\n .filter(\n (tag): tag is { name: string; description?: string } =>\n typeof tag?.name === \"string\"\n )\n .map((tag): [string, ApiTagMeta] => [\n tag.name,\n { description: tag.description ?? \"\" },\n ])\n );\n const collector = operationCollector(baseRoute, tagMeta);\n const channels = document.channels ?? {};\n\n for (const [id, operation] of Object.entries(document.operations ?? {})) {\n if (!isObject(operation)) {\n continue;\n }\n // An operation entry still carrying a `$ref` is one normalization could\n // not inline; name the real problem instead of the missing-action one.\n if (isString(operation.$ref)) {\n warnings.push(\n `Operation \"${id}\" is a reference that doesn't resolve to a components operation; it is missing from the reference.`\n );\n continue;\n }\n const site = operationSite(id, operation, channels);\n if (isString(site)) {\n warnings.push(site);\n continue;\n }\n const { action, address, channelId } = site;\n const tag = operation.tags?.find(\n (candidate): candidate is { name: string; description?: string } =>\n typeof candidate?.name === \"string\"\n )?.name;\n collector.add({\n channelId,\n deprecated: operation.deprecated === true,\n description: operation.description ?? \"\",\n key: operationKey(action, address, id),\n method: action,\n operationId: id,\n path: address,\n summary: operation.title ?? operation.summary ?? \"\",\n tag: tag ?? address,\n });\n }\n\n return { ...collector.finish(), warnings };\n};\n\n/** Resolve the operation object for a ref out of its (AsyncAPI) document. */\nexport const asyncApiOperationObject = (\n document: AsyncApiDocument,\n ref: ApiOperationRef\n): AsyncApiOperationObject | undefined => {\n const operation =\n ref.operationId === undefined\n ? undefined\n : document.operations?.[ref.operationId];\n return isObject(operation) ? operation : undefined;\n};\n",
|
|
@@ -206,7 +207,7 @@
|
|
|
206
207
|
"import { customCodeSamples } from \"../components/openapi/code-samples.ts\";\nimport { mountBasePath, normalizeBasePath } from \"../core/base-path.ts\";\nimport type {\n ApiDocument,\n ApiOperationRef,\n OpenApiData,\n} from \"../openapi/model.ts\";\nimport {\n operationObject,\n operationOf,\n specAddresses,\n specOf,\n} from \"../openapi/model.ts\";\nimport { asSentence } from \"../openapi/sentence.ts\";\nimport { operationSignature } from \"../openapi/signature.ts\";\nimport type {\n ComponentMarkdown,\n EvaluatedValue,\n} from \"./component-markdown.ts\";\nimport {\n fencedBlock,\n inlineCode,\n isString,\n linkDestination,\n} from \"./component-markdown.ts\";\nimport { operationDetails } from \"./operation-details.ts\";\nimport type { OperationParts } from \"./operation-details.ts\";\n\n/**\n * Spec-authored prose as one line of inline Markdown. Unlike the props the\n * other serializers pass through, a summary is written by whoever wrote the\n * spec, not by the docs author, so the characters CommonMark would read as\n * markup — `<user>` as inline HTML, `*only*` as emphasis — are escaped.\n */\nconst inlineText = (text: string): string =>\n text\n .trim()\n .replaceAll(/\\s+/gu, \" \")\n .replaceAll(/[\\\\`*_[\\]<>~]/gu, String.raw`\\$&`);\n\n/**\n * One operation as a link, for the tag listings. `href` is the operation's\n * served URL: its route under the deployment base.\n */\nconst listItem = (\n signature: string,\n href: string,\n operation: Pick<ApiOperationRef, \"deprecated\" | \"summary\">\n): string => {\n const tail = [\n // Title-like summaries (\"Get a flag\") need their own period before the\n // \"Deprecated.\" that may follow.\n inlineText(asSentence(operation.summary.trim())),\n operation.deprecated ? \"Deprecated.\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n return `- [${inlineCode(signature)}](${linkDestination(href)})${tail ? ` — ${tail}` : \"\"}`;\n};\n\n/**\n * Agent-facing Markdown for the components a generated reference page is made\n * of: `<Operation>`, `<ApiTagOperations>` and `<ApiOverview>`.\n *\n * `render-mdx.ts` builds each reference page as the operation's description in\n * the body plus one of these components, deliberately: the structured UI is the\n * component's job, and the prose stays Markdown so it indexes. That split is\n * right for the rendered page and lossy everywhere else — `<route>.md`,\n * llms-full.txt, MCP `get_page` and the assistant corpus all downlevel components\n * to Markdown, and these three had no serializer, so an operation page reached\n * an agent as its description followed by a bare tag. On a site whose reference\n * is most of the corpus, that is most of the corpus: measured on one 449-page\n * site, 266 pages and 266 raw `<Operation>` in llms-full.txt, so \"which\n * endpoint do I call?\" had no answer anywhere in the agent surface.\n *\n * Each serializer emits what its component renders and no more: the endpoint\n * in the spec kind's own notation ({@link operationSignature}), the version and\n * addresses the overview shows ({@link specAddresses}), the linked list a tag\n * section shows. The spec's own `x-codeSamples` come along, as fenced code:\n * they're text the spec wrote out (often an SDK call no agent could derive\n * from the endpoint), read through the same `customCodeSamples` the page\n * renders. So do an OpenAPI operation's request body and responses, with\n * their examples ({@link operationDetails}), built from the helpers the\n * page's components use so the two can't disagree; parameters and nested\n * schemas are left to the page.\n *\n * `specs` is the parsed `blume:openapi` data — empty when the project has no\n * API reference, in which case every serializer declines. `deployBase` is the\n * configured `deployment.base`: operation routes carry `basePath` but not it,\n * and the links written here are made after the agent surfaces rebase the\n * page's own links, so they take it here, as the rendered page's do.\n */\nexport const openapiComponentSerializers = (\n specs: OpenApiData,\n deployBase?: string\n) => {\n const base = normalizeBasePath(deployBase);\n const spec = (source: EvaluatedValue) =>\n isString(source) ? specOf(specs, source) : undefined;\n\n return {\n /**\n * The spec-level block at the top of the overview page: its version and\n * where the API lives. The tag sections that follow are real Markdown\n * headings over `<ApiTagOperations>`, so they downlevel on their own.\n */\n ApiOverview: ({ props }) => {\n const data = spec(props.source);\n if (!data) {\n return null;\n }\n const { addresses, label } = specAddresses(data);\n const lines = [\n data.version ? `Version ${inlineText(data.version)}` : \"\",\n addresses.length > 0\n ? `${label}: ${addresses.map(inlineCode).join(\", \")}`\n : \"\",\n ].filter(Boolean);\n return lines.length > 0 ? lines.join(\"\\n\\n\") : null;\n },\n\n /** One tag's operations, mirroring the list the rendered page shows. */\n ApiTagOperations: ({ props }) => {\n const { tag } = props;\n const data = spec(props.source);\n if (!(data && isString(tag))) {\n return null;\n }\n const items = Object.values(data.operations)\n .filter((operation) => operation.tagSlug === tag)\n .map((operation) =>\n listItem(\n operationSignature(data, operation),\n mountBasePath(base, operation.route),\n operation\n )\n );\n return items.length > 0 ? items.join(\"\\n\") : null;\n },\n\n /**\n * One operation. Declines when the spec carries no such key — Blume's own\n * fallback, which leaves the JSX visible rather than publishing a page that\n * silently lost its endpoint.\n */\n Operation: ({ props }) => {\n const { id } = props;\n const data = spec(props.source);\n if (!(data && isString(id))) {\n return null;\n }\n const operation = operationOf(data, id);\n if (!operation) {\n return null;\n }\n const signature = inlineCode(operationSignature(data, operation));\n const notes = [\n // An agent reading the page must not take a webhook for an endpoint\n // it can call.\n operation.webhook\n ? \"**Webhook.** The API sends this request to your endpoint.\"\n : \"\",\n operation.deprecated ? \"**Deprecated.**\" : \"\",\n ].filter(Boolean);\n // The spec's own `x-codeSamples`, labeled as their tabs are.\n const object =\n data.kind === \"openapi\" ? operationObject(data, operation) : undefined;\n const samples = customCodeSamples({\n \"x-code-samples\": object?.[\"x-code-samples\"],\n \"x-codeSamples\": object?.[\"x-codeSamples\"],\n }).map(\n (sample) =>\n `**${inlineText(sample.label)}**\\n\\n${fencedBlock(sample.lang, sample.source)}`\n );\n // SAFETY: an operation object only resolves out of an OpenAPI spec,\n // whose document is the OpenAPI shape; its bodies and responses are\n // the JSON `OperationParts` views, which the helpers read defensively.\n const details = object\n ? operationDetails(\n data.document as ApiDocument,\n object as OperationParts,\n operation.webhook === true\n )\n : [];\n return [signature, ...notes, ...samples, ...details].join(\"\\n\\n\");\n },\n } satisfies Record<string, ComponentMarkdown>;\n};\n",
|
|
207
208
|
"import type { BlumeProject } from \"../core/project-graph.ts\";\nimport { isOpenApiSource } from \"../openapi/source.ts\";\nimport { changelogComponentSerializers } from \"./changelog-components.ts\";\nimport type { ComponentMarkdown } from \"./component-markdown.ts\";\nimport { exampleComponentSerializers } from \"./component-markdown.ts\";\nimport { openapiComponentSerializers } from \"./openapi-components.ts\";\n\n/**\n * Every serializer a project brings to a downlevel pass, layered once for all\n * the agent surfaces (`<route>.md`, llms-full.txt, the search and assistant\n * corpora): the built-in families that read project data — examples, then the\n * API reference, then the changelog index — under the user's\n * `agents.markdownComponents`, which is spread last so an entry of the same\n * name still wins. One layering, so a new family or a new surface cannot leave\n * one consumer printing raw JSX.\n */\nexport const projectComponentSerializers = (project: BlumeProject) =>\n ({\n ...exampleComponentSerializers(project.examples ?? {}),\n ...openapiComponentSerializers(\n project.sources.find(isOpenApiSource)?.openApiData() ?? {},\n project.config.deployment.options.base\n ),\n ...changelogComponentSerializers(project),\n ...project.config.agents.markdownComponents,\n }) satisfies Record<string, ComponentMarkdown>;\n",
|
|
208
209
|
"import { nextFenceState } from \"../core/code-fences.ts\";\nimport type { FenceState } from \"../core/code-fences.ts\";\n\n/** An inline code span on one line, as the other source scanners read it. */\nconst INLINE_CODE = /`[^`\\n]*`/gu;\n// NUL delimiters cannot appear in authored markdown, so tokens never collide.\n// oxlint-disable-next-line no-control-regex -- the NUL is the collision guard.\nconst CODE_TOKEN = /\\u0000blume-code-(?<index>\\d+)\\u0000/gu;\n\n/**\n * Swap every code sample for a one-line token — fenced blocks at any indent\n * (a fence inside a `<Tab>` or `<Step>` is indented under it) and inline code\n * spans — so markup that *shows* `<Visibility>` keeps showing what the author\n * wrote. An unclosed fence runs to the end, as CommonMark reads it.\n */\nconst maskCode = (markdown: string, stash: string[]): string => {\n const token = (code: string): string => {\n stash.push(code);\n return `\\u0000blume-code-${stash.length - 1}\\u0000`;\n };\n const lines: string[] = [];\n let fence: FenceState = null;\n let block: string[] = [];\n for (const line of markdown.split(\"\\n\")) {\n const next = nextFenceState(line, fence);\n if (fence === null && next === null) {\n lines.push(line.replaceAll(INLINE_CODE, token));\n } else {\n block.push(line);\n if (next === null) {\n lines.push(token(block.join(\"\\n\")));\n block = [];\n }\n }\n fence = next;\n }\n if (block.length > 0) {\n lines.push(token(block.join(\"\\n\")));\n }\n return lines.join(\"\\n\");\n};\n\n/** The audience an output surface serves — the component's two `for` values. */\nexport type VisibilityAudience = \"agents\" | \"web\";\n\n// `<Visibility for=\"…\">…</Visibility>` in either quote style, tolerant of\n// whitespace around the attribute and inside the tags. Non-greedy bodies stop\n// at the first close tag, so nesting is not supported: a nested block closes\n// the outer match early and any remainder passes through verbatim.\nconst visibilityBlock = (audience: VisibilityAudience): RegExp =>\n new RegExp(\n `<Visibility\\\\s+for\\\\s*=\\\\s*(?:\"${audience}\"|'${audience}')\\\\s*>(?<inner>[\\\\s\\\\S]*?)</Visibility\\\\s*>`,\n \"gu\"\n );\n\nconst BLOCKS = {\n agents: visibilityBlock(\"agents\"),\n web: visibilityBlock(\"web\"),\n} satisfies Record<VisibilityAudience, RegExp>;\n\n/**\n * Resolve `<Visibility>` blocks for one audience: blocks addressed to the\n * other audience are removed entirely and blocks addressed to `audience` are\n * unwrapped (tags dropped, body kept), matching what the Astro component\n * renders on the web. Other `for` values (the component's default) are left\n * untouched, and markdown with no matching blocks is returned byte-identical,\n * so raw sources stay raw.\n */\nexport const applyAudienceVisibility = (\n markdown: string,\n audience: VisibilityAudience\n): string => {\n // Mask code so documentation *about* Visibility survives.\n const code: string[] = [];\n const masked = maskCode(markdown, code);\n\n let touched = false;\n const filtered = masked\n .replaceAll(BLOCKS[audience === \"agents\" ? \"web\" : \"agents\"], () => {\n touched = true;\n return \"\";\n })\n .replaceAll(BLOCKS[audience], (_match, inner: string) => {\n touched = true;\n return inner;\n });\n\n // Removing/unwrapping block-level tags leaves runs of blank lines behind;\n // collapse them only when something matched so untouched files round-trip\n // exactly. Code is masked as single-line tokens, so it is unaffected.\n const tidied = touched ? filtered.replaceAll(/\\n{3,}/gu, \"\\n\\n\") : filtered;\n\n return tidied.replaceAll(\n CODE_TOKEN,\n (token, index) => code[Number(index)] ?? token\n );\n};\n\n/**\n * Resolve `<Visibility>` blocks for agent-facing Markdown (llms-full.txt, the\n * `.md`/`.mdx` mirrors, MCP tools, assistant grounding): `for=\"web\"` content is\n * removed and `for=\"agents\"` content is unwrapped.\n */\nexport const applyAgentVisibility = (markdown: string): string =>\n applyAudienceVisibility(markdown, \"agents\");\n",
|
|
209
|
-
"import { mountBasePath, normalizeBasePath } from \"../core/base-path.ts\";\nimport { rewriteRelativeAssets } from \"../core/content-assets.ts\";\nimport matter from \"../core/frontmatter.ts\";\nimport { isHiddenPage } from \"../core/hidden-pages.ts\";\nimport { metaDescription } from \"../core/manifest.ts\";\nimport type { BlumeProject } from \"../core/project-graph.ts\";\nimport { absoluteUrl } from \"../core/site-url.ts\";\nimport { extractHeadings } from \"../core/sources/normalize.ts\";\nimport { readExpandedEntryText } from \"../core/sources/read.ts\";\nimport type { NavNode, Navigation, PageRecord } from \"../core/types.ts\";\nimport { buildRssFeeds } from \"../deploy/rss.ts\";\nimport { AI_CATALOG_PATH, hasAiCatalog } from \"./ai-catalog.ts\";\nimport { API_CATALOG_PATH, hasApiCatalog } from \"./api-catalog.ts\";\nimport { API_PAGES_PATH, OPENAPI_PATH } from \"./api/paths.ts\";\nimport { downlevelComponents } from \"./component-markdown.ts\";\nimport { relativeLinkRewriter } from \"./relative-links.ts\";\nimport { projectComponentSerializers } from \"./serializers.ts\";\nimport {\n AGENT_SKILLS_DIR,\n AGENT_SKILLS_INDEX_PATH,\n servesSkillsIndex,\n} from \"./skills.ts\";\nimport type { SkillArtifact } from \"./skills.ts\";\nimport { applyAgentVisibility } from \"./visibility.ts\";\n\n// Routes carry `basePath`; a `deployment.base` subdirectory is layered on top —\n// with or without a `site` (the mcp.json convention), and even over a route\n// that starts with the base's own name — so the emitted URL matches where the\n// page is served. Encoded like the sitemap: a route with spaces or non-ASCII\n// must still yield a valid Markdown link.\nconst pageUrl = (route: string, site?: string, base = \"\"): string => {\n const path = mountBasePath(base, route);\n return encodeURI(site ? absoluteUrl(site, path) : path);\n};\n\n/**\n * A title as Markdown link text. An unescaped bracket in it — `[Beta] Webhooks`\n * — closes or nests the text early, and the line stops being a link.\n */\nconst linkText = (title: string): string =>\n title.replaceAll(/[\\\\[\\]]/gu, String.raw`\\$&`);\n\n/** Inputs only the build has: the published skills, collected once per build. */\nexport interface LlmsIndexOptions {\n /**\n * The Agent Skills the build publishes under `/.well-known/agent-skills/`,\n * listed in their own section with each skill's description — which is\n * where a skill says when to use it. Absent (empty) for the homepage\n * Markdown mirror, which is synthesized before the skills are collected.\n */\n skills?: readonly SkillArtifact[];\n}\n\n/** A skill description on one line — SKILL.md frontmatter may wrap it. */\nconst oneLine = (text: string): string => text.replaceAll(/\\s+/gu, \" \").trim();\n\n/**\n * The \"Agent resources\" section: every machine-readable artifact the site\n * publishes, so an agent that only reads llms.txt still finds the full\n * Markdown dump, the per-page Markdown mirrors, the JSON docs API, the MCP\n * server, the skills index, the API catalog, the readability manifest, and\n * the sitemap. The\n * same artifact set `agent-readability.json` indexes, in prose an agent can\n * act on without a second fetch.\n */\nconst agentResourceLines = (project: BlumeProject): string[] => {\n const { config } = project;\n const { site } = config.deployment.options;\n const url = (path: string): string =>\n pageUrl(path, site, normalizeBasePath(config.deployment.options.base));\n const lines = [\n `- [llms-full.txt](${url(\"/llms-full.txt\")}): The full Markdown of every page in one file.`,\n `- [Page Markdown](${url(\"/index.md\")}): Append \\`.md\\` to any page URL to fetch that page as raw Markdown.`,\n ];\n if (config.agents.api) {\n lines.push(\n `- [JSON API](${url(API_PAGES_PATH)}): Page index of the JSON docs API; each entry links the page's JSON and Markdown forms. Described by the OpenAPI document at ${url(OPENAPI_PATH)}.`\n );\n }\n if (config.agents.mcp.enabled) {\n lines.push(\n `- [MCP server](${url(config.agents.mcp.route)}): Streamable HTTP Model Context Protocol server with search_docs, get_page, list_pages, and get_navigation tools, plus every page as a resource. Discovery document: ${url(\"/.well-known/mcp.json\")}`\n );\n }\n if (servesSkillsIndex(config)) {\n lines.push(\n `- [Agent skills](${url(AGENT_SKILLS_INDEX_PATH)}): Agent Skills discovery index of the skills this site publishes.`\n );\n }\n if (hasApiCatalog(config)) {\n lines.push(\n `- [API catalog](${url(API_CATALOG_PATH)}): RFC 9727 linkset of the APIs documented here.`\n );\n }\n if (hasAiCatalog(config)) {\n lines.push(\n `- [AI catalog](${url(AI_CATALOG_PATH)}): ARD manifest of the agent-facing resources on this site (MCP server, skills, APIs).`\n );\n }\n if (config.agents.agentReadability) {\n lines.push(\n `- [agent-readability.json](${url(\"/agent-readability.json\")}): Manifest of every agent-facing artifact on this site.`\n );\n }\n if (site && config.seo.sitemap) {\n lines.push(\n `- [Sitemap](${url(\"/sitemap.xml\")}): Every indexable page URL with its last-modified date.`\n );\n }\n return lines;\n};\n\n// Drafts, hidden, and ordinary `noindex` pages are excluded. Generated API\n// references keep crawler visibility (`noindex`) separate from LLM visibility\n// (`ai.exclude`), and are excluded wholesale when `agents.llmsTxt.openapi` is off.\n// `versions: \"current\"` additionally drops archived-snapshot pages — the flat\n// llms-full.txt dump serves agents the live docs, not every frozen copy.\nconst eligiblePages = (\n project: BlumeProject,\n options: { versions?: \"all\" | \"current\" } = {}\n): PageRecord[] =>\n project.graph.pages.filter(\n (page) =>\n !(\n page.meta.ai.exclude ||\n page.meta.draft ||\n isHiddenPage(page, project.graph) ||\n (page.meta.seo.noindex && page.source.name !== \"openapi\") ||\n (options.versions === \"current\" && page.version !== \"\")\n ) &&\n (project.config.agents.llmsTxt.openapi || page.source.name !== \"openapi\")\n );\n\n/**\n * The navigation trees the index mirrors: the site tree, or one per locale\n * under i18n (each labeled with the locale except the default, so sections\n * don't repeat ambiguously). On a versioned site each archived snapshot's\n * trees follow the current ones, labeled with the version (and locale) so an\n * agent reading the index knows which docs are frozen.\n */\nconst indexedNavigations = (\n project: BlumeProject\n): { label?: string; nav: Navigation }[] => {\n const { i18n, versions } = project.config;\n const current: { label?: string; nav: Navigation }[] = i18n\n ? i18n.locales.flatMap(({ code, label }) => {\n const nav = project.graph.navigationByLocale[code];\n if (!nav) {\n return [];\n }\n return [\n { label: code === i18n.defaultLocale ? undefined : label, nav },\n ];\n })\n : [{ nav: project.graph.navigation }];\n\n const archived = (versions?.archived ?? []).flatMap((version) => {\n const byLocale = project.graph.navigationByVersion[version.id] ?? {};\n const versionLabel = `${version.label ?? version.id} (archived)`;\n return Object.entries(byLocale).flatMap(([code, nav]) => {\n const locale = i18n?.locales.find((entry) => entry.code === code);\n const label =\n locale && code !== i18n?.defaultLocale\n ? `${locale.label} — ${versionLabel}`\n : versionLabel;\n return [{ label, nav }];\n });\n });\n\n return [...current, ...archived];\n};\n\n/**\n * Build the compact `llms.txt` index: title and summary, then the sidebar tree\n * rendered as sections — group labels become headings, pages become link lists —\n * so the file mirrors how the docs are organized rather than one flat blob.\n * Also serves as the homepage's synthesized Markdown mirror when the home\n * route is a landing page (see `buildRawMarkdown`).\n */\nexport const buildLlmsIndex = (\n project: BlumeProject,\n options: LlmsIndexOptions = {}\n): string => {\n const { config } = project;\n const { site } = config.deployment.options;\n const base = normalizeBasePath(config.deployment.options.base);\n const eligible = eligiblePages(project);\n const byRoute = new Map(eligible.map((page) => [page.route, page]));\n const seen = new Set<string>();\n\n const line = (page: PageRecord): string => {\n seen.add(page.route);\n // The page's meta description, so a page summarized only in\n // `seo.description` (a generated reference page) still gets one.\n const description = metaDescription(page);\n const summary = description ? `: ${description}` : \"\";\n return `- [${linkText(page.title)}](${pageUrl(page.route, site, base)})${summary}`;\n };\n\n // One nav level -> Markdown blocks: the level's loose pages as a link list,\n // then each group as a heading (depth-capped at h6) followed by its own\n // blocks. Nav entries whose route has no eligible page — external links,\n // padded i18n fallbacks, `noindex` pages, excluded API references — are\n // skipped, and a group left with nothing emits no heading at all.\n const renderLevel = (nodes: NavNode[], depth: number): string[] => {\n const list: string[] = [];\n const groupBlocks: string[] = [];\n for (const node of nodes) {\n if (node.kind === \"page\") {\n const page = byRoute.get(node.route);\n if (page && !seen.has(page.route)) {\n list.push(line(page));\n }\n continue;\n }\n // An explicit-config group may link its index page on the group itself\n // (`root`) rather than as a child; keep it at the top of the section.\n const rootPage = node.route ? byRoute.get(node.route) : undefined;\n const blocks = renderLevel(node.children, depth + 1);\n if (rootPage && !seen.has(rootPage.route)) {\n blocks.unshift(line(rootPage));\n }\n if (blocks.length > 0) {\n groupBlocks.push(\n `${\"#\".repeat(Math.min(depth, 6))} ${node.label}`,\n ...blocks\n );\n }\n }\n return list.length > 0 ? [list.join(\"\\n\"), ...groupBlocks] : groupBlocks;\n };\n\n // Loose pages at a tree's root get a \"Docs\" section of their own, so every\n // link sits under an h2 as llms.txt consumers expect.\n const renderNav = (nav: Navigation, depth: number): string[] => {\n const loose = nav.sidebar.filter((node) => node.kind === \"page\");\n const groups = nav.sidebar.filter((node) => node.kind === \"group\");\n const looseBlocks = renderLevel(loose, depth + 1);\n return [\n ...(looseBlocks.length > 0\n ? [`${\"#\".repeat(depth)} Docs`, ...looseBlocks]\n : []),\n ...renderLevel(groups, depth),\n ];\n };\n\n const blocks: string[] = [];\n for (const { label, nav } of indexedNavigations(project)) {\n if (label) {\n const localized = renderNav(nav, 3);\n if (localized.length > 0) {\n blocks.push(`## ${label}`, ...localized);\n }\n continue;\n }\n blocks.push(...renderNav(nav, 2));\n }\n\n // Pages the navigation doesn't reach (an explicit sidebar that omits them,\n // or a hand-rolled tree) still belong in the index.\n const leftover = eligible\n .filter((page) => !seen.has(page.route))\n .toSorted((a, b) => a.route.localeCompare(b.route));\n if (leftover.length > 0) {\n blocks.push(\n blocks.length > 0 ? \"## Other\" : \"## Docs\",\n leftover.map(line).join(\"\\n\")\n );\n }\n\n // Surface the RSS feeds so agents can find fresh content (new blog posts,\n // changelog entries) without re-crawling the index. `buildRssFeeds` is empty\n // unless RSS is enabled and an absolute `site` is set — the same condition\n // under which agent-readability.json lists `artifacts.feeds`.\n const feeds = buildRssFeeds(project);\n if (feeds.length > 0) {\n blocks.push(\n \"## RSS Feeds\",\n feeds\n .map(\n (feed) =>\n `- [${linkText(feed.title)}](${pageUrl(feed.path, site, base)})`\n )\n .join(\"\\n\")\n );\n }\n\n // The published skills, each with its description — the one place a skill\n // states when an agent should reach for it.\n const skills = options.skills ?? [];\n if (skills.length > 0) {\n blocks.push(\n \"## Agent skills\",\n skills\n .map(\n (skill) =>\n `- [${skill.name}](${pageUrl(`${AGENT_SKILLS_DIR}/${skill.path}`, site, base)}): ${oneLine(skill.description)}`\n )\n .join(\"\\n\")\n );\n }\n\n blocks.push(\"## Agent resources\", agentResourceLines(project).join(\"\\n\"));\n\n const header = config.description\n ? `# ${config.title}\\n\\n> ${config.description}`\n : `# ${config.title}`;\n // `details` is the llms.txt spec's free-form block between the summary and\n // the file sections — \"when to use this\" guidance in the site's own words.\n const { details } = config.agents.llmsTxt;\n const lead = details ? `${header}\\n\\n${details}` : header;\n return `${[lead, ...blocks].join(\"\\n\\n\")}\\n`;\n};\n\n// A line an ATX heading opens (`# Title`); any other first line can only open\n// a setext heading, underlined on the line after it.\nconst ATX_HEADING = /^ {0,3}#/u;\n\n/**\n * A page body without the `# Heading` it opens with, when that heading's text\n * is the page's title. An untitled page takes its title from that heading,\n * and its `llms-full.txt` section already opens with `# <title>`, so the\n * heading would show twice; the rendered page drops it the same way (see\n * `markdown/title-heading.ts`).\n */\nconst withoutTitleHeading = (body: string, title: string): string => {\n const lines = body.split(\"\\n\");\n const span = ATX_HEADING.test(lines[0] ?? \"\") ? 1 : 2;\n const [heading] = extractHeadings(lines.slice(0, span).join(\"\\n\"));\n return heading?.depth === 1 && heading.text === title\n ? lines.slice(span).join(\"\\n\").trimStart()\n : body;\n};\n\n/** Build `llms-full.txt`: the full Markdown body of every current-docs page. */\nconst buildFull = async (project: BlumeProject): Promise<string> => {\n const { config } = project;\n const pages = eligiblePages(project, { versions: \"current\" }).toSorted(\n (a, b) => a.route.localeCompare(b.route)\n );\n const components = projectComponentSerializers(project);\n const rewriteLinks = relativeLinkRewriter(project);\n\n const sections = await Promise.all(\n pages.map(async (page) => {\n let raw = await readExpandedEntryText(project, page);\n // Colocated `./image.png` references resolve to nothing for a reader of\n // llms-full.txt; point them at the served originals instead.\n if (page.sourcePath) {\n raw = rewriteRelativeAssets({\n deployBase: config.deployment.options.base,\n projectRoot: project.context.root,\n source: raw,\n sourcePath: page.sourcePath,\n });\n }\n // Page links too: a reader of one flat file has no page URL to resolve\n // `./install` against, and `/install` needs the base the site is\n // served under.\n raw = rewriteLinks(raw, page);\n // Resolve `<Visibility>` audiences (web-only content omitted from the\n // agent-facing output, agents-only unwrapped), then downlevel supported\n // components to plain Markdown.\n const parsed = matter(raw);\n const body = downlevelComponents(\n applyAgentVisibility(parsed.content),\n components,\n parsed.data\n ).trim();\n const url = pageUrl(\n page.route,\n config.deployment.options.site,\n normalizeBasePath(config.deployment.options.base)\n );\n return [\n `# ${page.title}`,\n `Source: ${url}`,\n \"\",\n withoutTitleHeading(body, page.title),\n ].join(\"\\n\");\n })\n );\n\n const header = config.description\n ? `# ${config.title}\\n\\n> ${config.description}\\n`\n : `# ${config.title}\\n`;\n\n return `${header}\\n${sections.join(\"\\n\\n---\\n\\n\")}\\n`;\n};\n\n/** Build both LLM text artifacts for a project. */\nexport const buildLlmsFiles = async (\n project: BlumeProject,\n options: LlmsIndexOptions = {}\n): Promise<{ index: string; full: string }> => ({\n full: await buildFull(project),\n index: buildLlmsIndex(project, options),\n});\n",
|
|
210
|
+
"import { mountBasePath, normalizeBasePath } from \"../core/base-path.ts\";\nimport { rewriteRelativeAssets } from \"../core/content-assets.ts\";\nimport matter from \"../core/frontmatter.ts\";\nimport { isHiddenPage } from \"../core/hidden-pages.ts\";\nimport { metaDescription } from \"../core/manifest.ts\";\nimport type { BlumeProject } from \"../core/project-graph.ts\";\nimport { absoluteUrl } from \"../core/site-url.ts\";\nimport { extractHeadings } from \"../core/sources/normalize.ts\";\nimport { readExpandedEntryText } from \"../core/sources/read.ts\";\nimport type { NavNode, Navigation, PageRecord } from \"../core/types.ts\";\nimport { buildRssFeeds } from \"../deploy/rss.ts\";\nimport { AI_CATALOG_PATH, hasAiCatalog } from \"./ai-catalog.ts\";\nimport { API_CATALOG_PATH, hasApiCatalog } from \"./api-catalog.ts\";\nimport { API_PAGES_PATH, OPENAPI_PATH } from \"./api/paths.ts\";\nimport { downlevelComponents } from \"./component-markdown.ts\";\nimport { linkText } from \"./link-text.ts\";\nimport { relativeLinkRewriter } from \"./relative-links.ts\";\nimport { projectComponentSerializers } from \"./serializers.ts\";\nimport {\n AGENT_SKILLS_DIR,\n AGENT_SKILLS_INDEX_PATH,\n servesSkillsIndex,\n} from \"./skills.ts\";\nimport type { SkillArtifact } from \"./skills.ts\";\nimport { applyAgentVisibility } from \"./visibility.ts\";\n\n// Routes carry `basePath`; a `deployment.base` subdirectory is layered on top —\n// with or without a `site` (the mcp.json convention), and even over a route\n// that starts with the base's own name — so the emitted URL matches where the\n// page is served. Encoded like the sitemap: a route with spaces or non-ASCII\n// must still yield a valid Markdown link.\nconst pageUrl = (route: string, site?: string, base = \"\"): string => {\n const path = mountBasePath(base, route);\n return encodeURI(site ? absoluteUrl(site, path) : path);\n};\n\n/** Inputs only the build has: the published skills, collected once per build. */\nexport interface LlmsIndexOptions {\n /**\n * The Agent Skills the build publishes under `/.well-known/agent-skills/`,\n * listed in their own section with each skill's description — which is\n * where a skill says when to use it. Absent (empty) for the homepage\n * Markdown mirror, which is synthesized before the skills are collected.\n */\n skills?: readonly SkillArtifact[];\n}\n\n/** A skill description on one line — SKILL.md frontmatter may wrap it. */\nconst oneLine = (text: string): string => text.replaceAll(/\\s+/gu, \" \").trim();\n\n/**\n * The \"Agent resources\" section: every machine-readable artifact the site\n * publishes, so an agent that only reads llms.txt still finds the full\n * Markdown dump, the per-page Markdown mirrors, the JSON docs API, the MCP\n * server, the skills index, the API catalog, the readability manifest, and\n * the sitemap. The\n * same artifact set `agent-readability.json` indexes, in prose an agent can\n * act on without a second fetch.\n */\nconst agentResourceLines = (project: BlumeProject): string[] => {\n const { config } = project;\n const { site } = config.deployment.options;\n const url = (path: string): string =>\n pageUrl(path, site, normalizeBasePath(config.deployment.options.base));\n const lines = [\n `- [llms-full.txt](${url(\"/llms-full.txt\")}): The full Markdown of every page in one file.`,\n `- [Page Markdown](${url(\"/index.md\")}): Append \\`.md\\` to any page URL to fetch that page as raw Markdown.`,\n ];\n if (config.agents.api) {\n lines.push(\n `- [JSON API](${url(API_PAGES_PATH)}): Page index of the JSON docs API; each entry links the page's JSON and Markdown forms. Described by the OpenAPI document at ${url(OPENAPI_PATH)}.`\n );\n }\n if (config.agents.mcp.enabled) {\n lines.push(\n `- [MCP server](${url(config.agents.mcp.route)}): Streamable HTTP Model Context Protocol server with search_docs, get_page, list_pages, and get_navigation tools, plus every page as a resource. Discovery document: ${url(\"/.well-known/mcp.json\")}`\n );\n }\n if (servesSkillsIndex(config)) {\n lines.push(\n `- [Agent skills](${url(AGENT_SKILLS_INDEX_PATH)}): Agent Skills discovery index of the skills this site publishes.`\n );\n }\n if (hasApiCatalog(config)) {\n lines.push(\n `- [API catalog](${url(API_CATALOG_PATH)}): RFC 9727 linkset of the APIs documented here.`\n );\n }\n if (hasAiCatalog(config)) {\n lines.push(\n `- [AI catalog](${url(AI_CATALOG_PATH)}): ARD manifest of the agent-facing resources on this site (MCP server, skills, APIs).`\n );\n }\n if (config.agents.agentReadability) {\n lines.push(\n `- [agent-readability.json](${url(\"/agent-readability.json\")}): Manifest of every agent-facing artifact on this site.`\n );\n }\n if (site && config.seo.sitemap) {\n lines.push(\n `- [Sitemap](${url(\"/sitemap.xml\")}): Every indexable page URL with its last-modified date.`\n );\n }\n return lines;\n};\n\n// Drafts, hidden, and ordinary `noindex` pages are excluded. Generated API\n// references keep crawler visibility (`noindex`) separate from LLM visibility\n// (`ai.exclude`), and are excluded wholesale when `agents.llmsTxt.openapi` is off.\n// `versions: \"current\"` additionally drops archived-snapshot pages — the flat\n// llms-full.txt dump serves agents the live docs, not every frozen copy.\nconst eligiblePages = (\n project: BlumeProject,\n options: { versions?: \"all\" | \"current\" } = {}\n): PageRecord[] =>\n project.graph.pages.filter(\n (page) =>\n !(\n page.meta.ai.exclude ||\n page.meta.draft ||\n isHiddenPage(page, project.graph) ||\n (page.meta.seo.noindex && page.source.name !== \"openapi\") ||\n (options.versions === \"current\" && page.version !== \"\")\n ) &&\n (project.config.agents.llmsTxt.openapi || page.source.name !== \"openapi\")\n );\n\n/**\n * The navigation trees the index mirrors: the site tree, or one per locale\n * under i18n (each labeled with the locale except the default, so sections\n * don't repeat ambiguously). On a versioned site each archived snapshot's\n * trees follow the current ones, labeled with the version (and locale) so an\n * agent reading the index knows which docs are frozen.\n */\nconst indexedNavigations = (\n project: BlumeProject\n): { label?: string; nav: Navigation }[] => {\n const { i18n, versions } = project.config;\n const current: { label?: string; nav: Navigation }[] = i18n\n ? i18n.locales.flatMap(({ code, label }) => {\n const nav = project.graph.navigationByLocale[code];\n if (!nav) {\n return [];\n }\n return [\n { label: code === i18n.defaultLocale ? undefined : label, nav },\n ];\n })\n : [{ nav: project.graph.navigation }];\n\n const archived = (versions?.archived ?? []).flatMap((version) => {\n const byLocale = project.graph.navigationByVersion[version.id] ?? {};\n const versionLabel = `${version.label ?? version.id} (archived)`;\n return Object.entries(byLocale).flatMap(([code, nav]) => {\n const locale = i18n?.locales.find((entry) => entry.code === code);\n const label =\n locale && code !== i18n?.defaultLocale\n ? `${locale.label} — ${versionLabel}`\n : versionLabel;\n return [{ label, nav }];\n });\n });\n\n return [...current, ...archived];\n};\n\n/**\n * Build the compact `llms.txt` index: title and summary, then the sidebar tree\n * rendered as sections — group labels become headings, pages become link lists —\n * so the file mirrors how the docs are organized rather than one flat blob.\n * Also serves as the homepage's synthesized Markdown mirror when the home\n * route is a landing page (see `buildRawMarkdown`).\n */\nexport const buildLlmsIndex = (\n project: BlumeProject,\n options: LlmsIndexOptions = {}\n): string => {\n const { config } = project;\n const { site } = config.deployment.options;\n const base = normalizeBasePath(config.deployment.options.base);\n const eligible = eligiblePages(project);\n const byRoute = new Map(eligible.map((page) => [page.route, page]));\n const seen = new Set<string>();\n\n const line = (page: PageRecord): string => {\n seen.add(page.route);\n // The page's meta description, so a page summarized only in\n // `seo.description` (a generated reference page) still gets one.\n const description = metaDescription(page);\n const summary = description ? `: ${description}` : \"\";\n return `- [${linkText(page.title)}](${pageUrl(page.route, site, base)})${summary}`;\n };\n\n // One nav level -> Markdown blocks: the level's loose pages as a link list,\n // then each group as a heading (depth-capped at h6) followed by its own\n // blocks. Nav entries whose route has no eligible page — external links,\n // padded i18n fallbacks, `noindex` pages, excluded API references — are\n // skipped, and a group left with nothing emits no heading at all.\n const renderLevel = (nodes: NavNode[], depth: number): string[] => {\n const list: string[] = [];\n const groupBlocks: string[] = [];\n for (const node of nodes) {\n if (node.kind === \"page\") {\n const page = byRoute.get(node.route);\n if (page && !seen.has(page.route)) {\n list.push(line(page));\n }\n continue;\n }\n // An explicit-config group may link its index page on the group itself\n // (`root`) rather than as a child; keep it at the top of the section.\n const rootPage = node.route ? byRoute.get(node.route) : undefined;\n const blocks = renderLevel(node.children, depth + 1);\n if (rootPage && !seen.has(rootPage.route)) {\n blocks.unshift(line(rootPage));\n }\n if (blocks.length > 0) {\n groupBlocks.push(\n `${\"#\".repeat(Math.min(depth, 6))} ${node.label}`,\n ...blocks\n );\n }\n }\n return list.length > 0 ? [list.join(\"\\n\"), ...groupBlocks] : groupBlocks;\n };\n\n // Loose pages at a tree's root get a \"Docs\" section of their own, so every\n // link sits under an h2 as llms.txt consumers expect.\n const renderNav = (nav: Navigation, depth: number): string[] => {\n const loose = nav.sidebar.filter((node) => node.kind === \"page\");\n const groups = nav.sidebar.filter((node) => node.kind === \"group\");\n const looseBlocks = renderLevel(loose, depth + 1);\n return [\n ...(looseBlocks.length > 0\n ? [`${\"#\".repeat(depth)} Docs`, ...looseBlocks]\n : []),\n ...renderLevel(groups, depth),\n ];\n };\n\n const blocks: string[] = [];\n for (const { label, nav } of indexedNavigations(project)) {\n if (label) {\n const localized = renderNav(nav, 3);\n if (localized.length > 0) {\n blocks.push(`## ${label}`, ...localized);\n }\n continue;\n }\n blocks.push(...renderNav(nav, 2));\n }\n\n // Pages the navigation doesn't reach (an explicit sidebar that omits them,\n // or a hand-rolled tree) still belong in the index.\n const leftover = eligible\n .filter((page) => !seen.has(page.route))\n .toSorted((a, b) => a.route.localeCompare(b.route));\n if (leftover.length > 0) {\n blocks.push(\n blocks.length > 0 ? \"## Other\" : \"## Docs\",\n leftover.map(line).join(\"\\n\")\n );\n }\n\n // Surface the RSS feeds so agents can find fresh content (new blog posts,\n // changelog entries) without re-crawling the index. `buildRssFeeds` is empty\n // unless RSS is enabled and an absolute `site` is set — the same condition\n // under which agent-readability.json lists `artifacts.feeds`.\n const feeds = buildRssFeeds(project);\n if (feeds.length > 0) {\n blocks.push(\n \"## RSS Feeds\",\n feeds\n .map(\n (feed) =>\n `- [${linkText(feed.title)}](${pageUrl(feed.path, site, base)})`\n )\n .join(\"\\n\")\n );\n }\n\n // The published skills, each with its description — the one place a skill\n // states when an agent should reach for it.\n const skills = options.skills ?? [];\n if (skills.length > 0) {\n blocks.push(\n \"## Agent skills\",\n skills\n .map(\n (skill) =>\n `- [${skill.name}](${pageUrl(`${AGENT_SKILLS_DIR}/${skill.path}`, site, base)}): ${oneLine(skill.description)}`\n )\n .join(\"\\n\")\n );\n }\n\n blocks.push(\"## Agent resources\", agentResourceLines(project).join(\"\\n\"));\n\n const header = config.description\n ? `# ${config.title}\\n\\n> ${config.description}`\n : `# ${config.title}`;\n // `details` is the llms.txt spec's free-form block between the summary and\n // the file sections — \"when to use this\" guidance in the site's own words.\n const { details } = config.agents.llmsTxt;\n const lead = details ? `${header}\\n\\n${details}` : header;\n return `${[lead, ...blocks].join(\"\\n\\n\")}\\n`;\n};\n\n// A line an ATX heading opens (`# Title`); any other first line can only open\n// a setext heading, underlined on the line after it.\nconst ATX_HEADING = /^ {0,3}#/u;\n\n/**\n * A page body without the `# Heading` it opens with, when that heading's text\n * is the page's title. An untitled page takes its title from that heading,\n * and its `llms-full.txt` section already opens with `# <title>`, so the\n * heading would show twice; the rendered page drops it the same way (see\n * `markdown/title-heading.ts`).\n */\nconst withoutTitleHeading = (body: string, title: string): string => {\n const lines = body.split(\"\\n\");\n const span = ATX_HEADING.test(lines[0] ?? \"\") ? 1 : 2;\n const [heading] = extractHeadings(lines.slice(0, span).join(\"\\n\"));\n return heading?.depth === 1 && heading.text === title\n ? lines.slice(span).join(\"\\n\").trimStart()\n : body;\n};\n\n/** Build `llms-full.txt`: the full Markdown body of every current-docs page. */\nconst buildFull = async (project: BlumeProject): Promise<string> => {\n const { config } = project;\n const pages = eligiblePages(project, { versions: \"current\" }).toSorted(\n (a, b) => a.route.localeCompare(b.route)\n );\n const components = projectComponentSerializers(project);\n const rewriteLinks = relativeLinkRewriter(project);\n\n const sections = await Promise.all(\n pages.map(async (page) => {\n let raw = await readExpandedEntryText(project, page);\n // Colocated `./image.png` references resolve to nothing for a reader of\n // llms-full.txt; point them at the served originals instead.\n if (page.sourcePath) {\n raw = rewriteRelativeAssets({\n deployBase: config.deployment.options.base,\n projectRoot: project.context.root,\n source: raw,\n sourcePath: page.sourcePath,\n });\n }\n // Page links too: a reader of one flat file has no page URL to resolve\n // `./install` against, and `/install` needs the base the site is\n // served under.\n raw = rewriteLinks(raw, page);\n // Resolve `<Visibility>` audiences (web-only content omitted from the\n // agent-facing output, agents-only unwrapped), then downlevel supported\n // components to plain Markdown.\n const parsed = matter(raw);\n const body = downlevelComponents(\n applyAgentVisibility(parsed.content),\n components,\n parsed.data\n ).trim();\n const url = pageUrl(\n page.route,\n config.deployment.options.site,\n normalizeBasePath(config.deployment.options.base)\n );\n return [\n `# ${page.title}`,\n `Source: ${url}`,\n \"\",\n withoutTitleHeading(body, page.title),\n ].join(\"\\n\");\n })\n );\n\n const header = config.description\n ? `# ${config.title}\\n\\n> ${config.description}\\n`\n : `# ${config.title}\\n`;\n\n return `${header}\\n${sections.join(\"\\n\\n---\\n\\n\")}\\n`;\n};\n\n/** Build both LLM text artifacts for a project. */\nexport const buildLlmsFiles = async (\n project: BlumeProject,\n options: LlmsIndexOptions = {}\n): Promise<{ index: string; full: string }> => ({\n full: await buildFull(project),\n index: buildLlmsIndex(project, options),\n});\n",
|
|
210
211
|
"import { createHash } from \"node:crypto\";\n\nimport type { JsonValue } from \"../core/adapter.ts\";\nimport { isJsonObject } from \"../core/sources/json.ts\";\nimport { RATE_LIMIT_BINDING } from \"./cloudflare.ts\";\nimport type { CloudflareRateLimitAdapter } from \"./cloudflare.ts\";\n\n/** The Workers rate limiting binding, as the Worker's config declares it. */\nexport interface RateLimitBindingConfig {\n name: string;\n namespace_id: string;\n simple: { limit: number; period: 10 | 60 };\n}\n\n/**\n * A namespace id for a Worker that sets none: a positive integer derived from\n * its name, so two Blume sites on one account don't share one.\n */\nexport const rateLimitNamespace = (workerName: string): string => {\n const digest = createHash(\"sha256\").update(workerName).digest(\"hex\");\n return String((Number.parseInt(digest.slice(0, 8), 16) % 2_000_000_000) + 1);\n};\n\nconst isText = <Value>(value: Value): value is Value & string =>\n typeof value === \"string\";\n\n/** The binding `cloudflare()` asks for, on the Worker named `workerName`. */\nexport const rateLimitBinding = (\n adapter: CloudflareRateLimitAdapter,\n workerName: string\n): RateLimitBindingConfig => ({\n name: RATE_LIMIT_BINDING,\n namespace_id: adapter.options.namespaceId ?? rateLimitNamespace(workerName),\n simple: {\n limit: adapter.options.requests ?? 10,\n period: adapter.options.window ?? 60,\n },\n});\n\n/**\n * The built Worker's config (`dist/server/wrangler.json`) with Blume's rate\n * limiting binding in `ratelimits`, replacing an earlier one of the same name\n * and keeping any others. `null` when the config isn't a JSON object.\n */\nexport const withRateLimitBinding = (\n wranglerText: string,\n adapter: CloudflareRateLimitAdapter\n): string | null => {\n let config: JsonValue;\n try {\n config = JSON.parse(wranglerText);\n } catch {\n return null;\n }\n if (!isJsonObject(config) || Array.isArray(config)) {\n return null;\n }\n const { name, ratelimits } = config;\n const others = Array.isArray(ratelimits)\n ? ratelimits.filter(\n (entry) => !(isJsonObject(entry) && entry.name === RATE_LIMIT_BINDING)\n )\n : [];\n const binding = rateLimitBinding(adapter, isText(name) ? name : \"\");\n config.ratelimits = [\n ...others,\n { ...binding, simple: { ...binding.simple } },\n ];\n return JSON.stringify(config);\n};\n",
|
|
211
212
|
"/**\n * The JSON a CMS API returns: arbitrary values a query or REST endpoint\n * hands back, typed as a closed union so a source narrows with predicates\n * instead of casting.\n */\nexport type JsonValue =\n | string\n | number\n | boolean\n | null\n | JsonValue[]\n | { [key: string]: JsonValue };\n\n/** A JSON object: a document, a node in a rich-text tree, an API envelope. */\nexport interface JsonObject {\n [key: string]: JsonValue;\n}\n\n/**\n * A node a dot path can descend into. Arrays pass too (matching their runtime\n * string-key indexing, e.g. `items.0`), so the predicate types them as the\n * keyed form both traverse through.\n */\nexport const isJsonObject = (\n value: JsonValue | undefined\n): value is JsonObject => typeof value === \"object\" && value !== null;\n\n/** Resolve a dot path (`slug.current`) against a document. */\nexport const getPath = (\n doc: JsonObject,\n path: string\n): JsonValue | undefined => {\n let current: JsonValue | undefined = doc;\n for (const key of path.split(\".\")) {\n if (isJsonObject(current)) {\n current = current[key];\n } else {\n return;\n }\n }\n return current;\n};\n\nexport const isStringValue = (value: JsonValue | undefined): value is string =>\n typeof value === \"string\";\n\nexport const asString = (value: JsonValue | undefined): string | undefined =>\n isStringValue(value) ? value : undefined;\n\n/** The elements of an array value, or none when the value is not an array. */\nexport const asArray = (value: JsonValue | undefined): JsonValue[] =>\n Array.isArray(value) ? value : [];\n\n/** The object form of a value, or none when it is a scalar, array, or absent. */\nexport const asObject = (\n value: JsonValue | undefined\n): JsonObject | undefined =>\n isJsonObject(value) && !Array.isArray(value) ? value : undefined;\n\nexport const isNumberValue = (value: JsonValue | undefined): value is number =>\n typeof value === \"number\";\n\nexport const asNumber = (value: JsonValue | undefined): number | undefined =>\n isNumberValue(value) ? value : undefined;\n\n/** The object elements of an array value; scalars and nested arrays are dropped. */\nexport const objectsIn = (value: JsonValue | undefined): JsonObject[] =>\n asArray(value).flatMap((item) => {\n const object = asObject(item);\n return object ? [object] : [];\n });\n",
|
|
212
213
|
"/**\n * The header that names Blume as the framework behind a response, sent unless\n * `poweredBy` is `false`. The dev server and Blume's runtime middleware\n * (`components/powered-by-middleware.ts`) send it, and so does every host\n * for the built site: static hosts through `deploy/headers.ts`'s rules,\n * server builds through each platform's own mechanism (`deploy/platforms`).\n * It lives apart from those modules so the runtime middleware can import it\n * without pulling in the deploy code.\n */\nexport const POWERED_BY_HEADERS = {\n \"X-Powered-By\": \"Blume\",\n} satisfies Record<string, string>;\n",
|
|
@@ -224,13 +225,13 @@
|
|
|
224
225
|
"import { REDIRECTS_FILE } from \"./netlify.ts\";\nimport { distDir } from \"./paths.ts\";\nimport type { DeployPlatform } from \"./types.ts\";\nimport { VERCEL_JSON_FILE } from \"./vercel.ts\";\n\n/**\n * A static build for an unnamed host — the default. Nothing is known about\n * where `dist/` ends up, so the build writes every platform's redirect file\n * (`_redirects` for Netlify and Cloudflare, `vercel.json` for Vercel, plus the\n * manifest for everything else) and the `_headers` file; a host that reads\n * none of them ignores them harmlessly. The site URL is still inferred from\n * whichever platform env the build runs in.\n */\nexport const staticPlatform: DeployPlatform = {\n astro: null,\n env: null,\n finalizeBuild: null,\n hiddenRuntime: {\n ignoreDir: null,\n showProjectRoot: false,\n surfacePath: null,\n },\n kind: \"static\",\n negotiatesMarkdown: false,\n previewDeploy: null,\n readsHeaderFiles: { server: false, static: true },\n redirectFiles: [REDIRECTS_FILE, VERCEL_JSON_FILE],\n serverClientUnderBase: false,\n serverOutputDir: distDir,\n serverStaticDir: distDir,\n};\n",
|
|
225
226
|
"import type {\n DeployAdapterKind,\n ResolvedDeployment,\n} from \"../adapters/registry.ts\";\nimport { cloudflarePlatform } from \"./cloudflare.ts\";\nimport { netlifyPlatform } from \"./netlify.ts\";\nimport { nodePlatform } from \"./node.ts\";\nimport { staticPlatform } from \"./static.ts\";\nimport type { DeployPlatform } from \"./types.ts\";\nimport { vercelPlatform } from \"./vercel.ts\";\n\n/**\n * Every platform, in the order their env detection is tried when a build's\n * own adapter says nothing about where it runs (a static build on Vercel\n * still gets its site URL from `VERCEL_URL`).\n */\nexport const DEPLOY_PLATFORMS: readonly DeployPlatform[] = [\n vercelPlatform,\n netlifyPlatform,\n cloudflarePlatform,\n nodePlatform,\n staticPlatform,\n];\n\nconst byKind = new Map<DeployAdapterKind, DeployPlatform>(\n DEPLOY_PLATFORMS.map((platform) => [platform.kind, platform])\n);\n\n/** The behaviors behind a resolved deployment descriptor. */\nexport const deployPlatform = (\n deployment: Pick<ResolvedDeployment, \"kind\">\n): DeployPlatform => {\n const platform = byKind.get(deployment.kind);\n if (!platform) {\n throw new Error(`Unknown deployment adapter \"${deployment.kind}\".`);\n }\n return platform;\n};\n\n/**\n * The site URL the platform env implies, or null. The configured adapter's\n * own platform is asked first, then the rest in registration order, so a\n * static build (which names no host) still picks up the URL of whichever\n * platform it is building on.\n */\nexport const inferDeploymentSite = (\n deployment: Pick<ResolvedDeployment, \"kind\">,\n env: NodeJS.ProcessEnv\n): string | null => {\n const own = deployPlatform(deployment);\n const candidates = [own, ...DEPLOY_PLATFORMS.filter((p) => p !== own)];\n const detected = candidates.find(\n (platform) => platform.env?.detect(env) ?? false\n );\n // `find` only returns a platform whose `env` matched, so it is present.\n return detected?.env?.site(env) ?? null;\n};\n\nexport type {\n AstroAdapterSpec,\n BuildLog,\n DeployPlatform,\n FinalizeBuildOptions,\n HiddenRuntime,\n PlatformEnv,\n RedirectFile,\n} from \"./types.ts\";\n",
|
|
226
227
|
"import { existsSync } from \"node:fs\";\n\nimport { isAbsolute, join, resolve } from \"pathe\";\n\nimport type { ResolvedConfig } from \"./schema.ts\";\nimport { resolveDocsCollection } from \"./sources/collection.ts\";\nimport type { ProjectContext } from \"./types.ts\";\n\nconst CONFIG_FILENAMES = [\n \"blume.config.ts\",\n \"blume.config.mjs\",\n \"blume.config.js\",\n];\n\nconst THEME_FILENAMES = [\"theme.css\"];\nconst COMPONENTS_FILENAMES = [\"components.tsx\", \"components.ts\"];\n\nconst firstExisting = (root: string, names: string[]): string | null => {\n for (const name of names) {\n const candidate = join(root, name);\n if (existsSync(candidate)) {\n return candidate;\n }\n }\n return null;\n};\n\n/** Locate the Blume config file for a project root, if any. */\nexport const findConfigFile = (root: string): string | null =>\n firstExisting(root, CONFIG_FILENAMES);\n\n/** Locate the project's `components.ts`/`.tsx` override file, if any. */\nexport const findComponentsFile = (root: string): string | null =>\n firstExisting(root, COMPONENTS_FILENAMES);\n\n/**\n * Resolve the generated runtime directory for a project. Defaults to\n * `<root>/.blume`; an override (e.g. `.blume-verify` for an isolated build that\n * runs alongside a live `blume dev`) may be relative to the root or absolute.\n */\nexport const resolveRuntimeDir = (\n root: string,\n runtimeDir = \".blume\"\n): string =>\n isAbsolute(runtimeDir) ? runtimeDir : join(resolve(root), runtimeDir);\n\n/**\n * Resolve every path Blume needs from a project root and its resolved config.\n * Paths are absolute and normalized. `options.runtimeDir` relocates the whole\n * generated runtime (and its build output) so a verify build/check can run\n * without touching a live dev server's `.blume/` or the real `dist/`.\n */\nexport const resolveProjectContext = (\n root: string,\n config: ResolvedConfig,\n options?: { runtimeDir?: string }\n): ProjectContext => {\n const absoluteRoot = resolve(root);\n // The content root is where the `docs` collection roots: the first\n // filesystem source (the implicit one, for a zero-config project).\n const contentRoot = resolveDocsCollection(config, absoluteRoot).base;\n\n const pagesPath = join(absoluteRoot, config.content.pages);\n const pagesRoot = existsSync(pagesPath) ? pagesPath : null;\n\n const outDir = resolveRuntimeDir(absoluteRoot, options?.runtimeDir);\n // A relocated runtime keeps its build output self-contained under itself, so a\n // verify build never empties the user's real `<root>/dist`.\n const distDir = options?.runtimeDir\n ? join(outDir, \"dist\")\n : join(absoluteRoot, \"dist\");\n\n return {\n componentsFile: findComponentsFile(absoluteRoot),\n configFile: findConfigFile(absoluteRoot),\n contentRoot,\n distDir,\n outDir,\n pagesRoot,\n root: absoluteRoot,\n themeFile: firstExisting(absoluteRoot, THEME_FILENAMES),\n };\n};\n",
|
|
227
|
-
"import { existsSync, readFileSync } from \"node:fs\";\n\nimport { basename } from \"pathe\";\nimport { z } from \"zod\";\n\nimport { ACCENTS, invalidColorSettings } from \"../theme/palette.ts\";\nimport type { BlumeConfig } from \"./config-input.ts\";\nimport { applyDeploymentEnv } from \"./deployment-env.ts\";\nimport {\n BlumeError,\n diagnosticsFromIssues,\n diagnosticsFromZod,\n} from \"./diagnostics.ts\";\nimport { createDefaultExportLoader } from \"./load-module.ts\";\nimport { findConfigFile } from \"./project.ts\";\nimport { blumeConfigSchema } from \"./schema.ts\";\nimport type { ResolvedConfig } from \"./schema.ts\";\nimport type { Diagnostic } from \"./types.ts\";\n\n/**\n * Define a Blume site's configuration with full type-checking and editor\n * autocomplete. Place the call in `blume.config.ts` at your project root and\n * `export default` the result:\n *\n * ```ts\n * import { defineConfig } from \"blume\";\n *\n * export default defineConfig({\n * title: \"Acme Docs\",\n * description: \"Everything you need to build with Acme.\",\n * });\n * ```\n *\n * Every field is optional — an empty `defineConfig({})` produces a working\n * site from the Markdown/MDX in your `docs/` directory. Configure only what you\n * want to change; sensible defaults fill in the rest.\n *\n * This is an identity helper: it returns its input unchanged and exists purely\n * for type inference (and as a stable home for future plugin hooks). The object\n * is validated against the Blume schema when the CLI loads it.\n *\n * ## Top-level fields\n *\n * **Site identity**\n * - `title` — site title, shown in the header, `<title>`, and OG images.\n * Defaults to `\"Documentation\"`.\n * - `description` — default meta description, used where a page sets none.\n * - `logo` — brand mark. A string is an image path/URL; the object form splits\n * an `image` mark from wordmark `text` and can override the brand `href`.\n * - `banner` — site-wide announcement bar; a string, or `{ content, link,\n * dismissible }`.\n *\n * **Content & navigation**\n * - `content` — where content lives: adapters from `blume/sources` under\n * `sources` (`filesystem({ root })`, `mdxRemote({…})`, `githubReleases({…})`,\n * `sanity({…})`, `notion({…})`, `contentful({…})`, `payload({…})`,\n * `strapi({…})`, `obsidian({…})`, or `custom(source)`), or the\n * zero-config shorthand `root`/`include`/`exclude`, which desugars to one\n * `filesystem()` source and can't be combined with `sources`.\n * - `navigation` — sidebar, header `tabs`, `selectors` (version/language/product\n * switchers), pinned `featured` links, header `actions` and the one `cta`,\n * and the `repo` link (a toggle, or a URL). Omit `sidebar` to generate it\n * from the content tree.\n * - `redirects` — `{ from, to, status }` rules (301 by default).\n * - `github` — `{ owner, repo, branch, dir, host, api }`, powering \"Edit this\n * page\" links and the header repo link; `host` points them at a GitHub\n * Enterprise instance, `api` overrides the REST base derived from it.\n *\n * **Appearance**\n * - `theme` — `accent` color, `fonts` (curated slugs, any provider family, or\n * local font files), `radius`,\n * `mode` (`system`/`light`/`dark`), and `background`.\n * - `markdown` — `code` (language icons, light/dark Shiki `theme`, line\n * `wrap`), `externalLinks`, `headingAnchors`, and `imageZoom`.\n * - `toc` — on-page table of contents; `true`/`false` or a heading-level range.\n * - `lastModified` — \"Last updated\" stamps from `git` history or frontmatter.\n * - `feedback` — the per-page \"Was this helpful?\" widget (on by default).\n * - `export` — reader-facing PDF/EPUB export actions (off by default).\n *\n * **Reference docs**\n * - `reference` — API references as a list of adapters from\n * `blume/reference`: `openapi({…})` and `asyncapi({…})` render native pages\n * (one real page per operation, woven into the sidebar and search; AsyncAPI\n * 2.x specs are normalized to 3.x), `graphql({…})` renders a schema, and\n * `scalar({…})` embeds the Scalar reference instead.\n *\n * **Search, AI & agents**\n * - `search` — a search adapter from `blume/search` (`orama()` by default;\n * `flexsearch()`, `pagefind()`, `algolia({…})`, `oramaCloud({…})`,\n * `typesense({…})`, `mixedbread({…})`, or `false`), or `{ provider,\n * popular, indexing }` to add curated links and indexing settings.\n * - `ai` — what faces a model at read time: `assistant` (the chat assistant, with\n * a provider adapter from `blume/ai` such as `gateway()` or `openrouter()`)\n * and `openInChat` (the \"Open in chat\" page action).\n * - `agents` — the machine-readable surface: `llmsTxt`, the JSON `api`, the\n * `mcp` server, published `skills`, `markdownComponents` (Markdown\n * serializers for custom components), the `catalog` manifests,\n * `agentReadability`, robots `contentSignals`, `webmcp`, and `webBotAuth`.\n *\n * **SEO, feeds & analytics**\n * - `seo` — `og` images, `sitemap`, `robots`, `rss` feeds, and\n * `structuredData` JSON-LD.\n * - `analytics` — a list of adapters from `blume/analytics`, one per provider\n * (`posthog()`, `googleAnalytics()`, `plausible()`, `fathom()`, `vercel()`,\n * `cloudflare()`, …), or `script()` for anything without one.\n *\n * **Astro**\n * - `integrations` — Astro integrations appended after Blume's built-ins, in\n * declaration order. Install and maintain each integration in the site.\n *\n * **Deployment & i18n**\n * - `deployment` — a host adapter from `blume/deploy` (`vercel()`, `node()`,\n * `netlify()`, `cloudflare()`) for a server build, each taking `site`,\n * `base`, and `output`; or `{ site, base }` for a static build anywhere.\n * `site` is auto-detected on Vercel/Netlify/Cloudflare from the platform env.\n * - `i18n` — opt-in multi-locale: `locales`, `defaultLocale`, `parser`\n * (`dir` vs filename `dot` suffix), and per-locale UI overrides.\n *\n * - `examples` — `<Component path>` previews: `source` (default `examples/`;\n * supports a glob for colocated registries) and `css`, a stylesheet injected\n * into the isolated preview frames (e.g. shadcn variables).\n *\n * @example Zero-config — just render the Markdown under `docs/`.\n * ```ts\n * export default defineConfig({});\n * ```\n *\n * @example A production docs site with theming, search, and deployment.\n * ```ts\n * import { vercel } from \"blume/deploy\";\n * import { orama } from \"blume/search\";\n *\n * export default defineConfig({\n * title: \"Acme Docs\",\n * description: \"Build faster with Acme.\",\n * logo: { image: \"/logo.svg\", text: \"Acme\" },\n * github: { owner: \"acme\", repo: \"acme\" },\n * theme: { accent: \"purple\", fonts: { body: \"inter\" }, radius: \"lg\" },\n * navigation: {\n * tabs: [\n * { label: \"Guides\", path: \"/guides\" },\n * { label: \"API\", path: \"/api\" },\n * ],\n * },\n * search: orama(),\n * // A server build on Vercel.\n * deployment: vercel({ site: \"https://docs.acme.com\" }),\n * });\n * ```\n *\n * @example An OpenAPI reference with the assistant enabled.\n * ```ts\n * import { openapi } from \"blume/reference\";\n *\n * export default defineConfig({\n * title: \"Acme API\",\n * reference: [\n * openapi({\n * route: \"/reference\",\n * sources: [{ label: \"Core\", spec: \"./openapi.json\" }],\n * }),\n * ],\n * agents: { llmsTxt: true },\n * ai: { assistant: { enabled: true } },\n * });\n * ```\n *\n * @param config - The site configuration. All fields are optional.\n * @returns The same config object, typed for inference.\n * @see https://useblume.dev/docs for the full configuration reference.\n */\nexport const defineConfig = (config: BlumeConfig): BlumeConfig => config;\n\n/**\n * A config that fails validation. `diagnostic` folds every issue into the one\n * message a command prints; `issues` keeps each on its own, with its own\n * line, for `blume upgrade`, which lists them one by one.\n */\nexport class ConfigValidationError extends BlumeError {\n readonly issues: Diagnostic[];\n\n constructor(diagnostic: Diagnostic, issues: Diagnostic[]) {\n super(diagnostic);\n this.name = \"ConfigValidationError\";\n this.issues = issues;\n }\n}\n\n/** Result of loading + validating a project config. */\nexport interface ConfigLoadResult {\n config: ResolvedConfig;\n /** Absolute path of the config file used, or null when defaults were used. */\n configFile: string | null;\n diagnostics: Diagnostic[];\n /**\n * Whether the config file set `theme.fonts` itself. The schema always fills\n * the roles with defaults, so the resolved config can't tell an intentional\n * font choice from the fallback — and only intentional choices should flow\n * into derived surfaces like OG card fonts.\n */\n themeFontsConfigured: boolean;\n}\n\nconst importConfigModule = createDefaultExportLoader();\n\n/**\n * The slice of a user config module probed before schema defaults apply:\n * whether `theme.fonts` was actually set. `looseObject` keeps every other key\n * out of scope; a non-object at either level simply fails the probe. `fonts`\n * is optional here — Zod 4 treats a bare `z.unknown()` key as required, which\n * would fail the probe for every `theme` that doesn't set fonts.\n */\nconst themeFontsProbeSchema = z.looseObject({\n theme: z.looseObject({ fonts: z.unknown().optional() }).optional(),\n});\n\nconst isPathSegment = (segment: PropertyKey): segment is string | number =>\n typeof segment !== \"symbol\";\n\n/**\n * Where an issue is located in the config source: its own path, except that\n * an unknown key — which Zod reports on its parent's path — is located at the\n * key itself, so a removed field points at the line that sets it.\n */\nconst locationPath = (issue: z.core.$ZodIssue): (string | number)[] => [\n ...issue.path.filter(isPathSegment),\n ...(issue.code === \"unrecognized_keys\" ? issue.keys.slice(0, 1) : []),\n];\n\n/** Sort key for a config issue: the line that set the field, else last. */\nconst lineRank = (diagnostic: Diagnostic): number =>\n diagnostic.line ?? Number.MAX_SAFE_INTEGER;\n\n/**\n * One diagnostic per config issue, each anchored to the config file and, when\n * the source is on disk, to the line and column that set the field. Issues on\n * the config's own top level (a removed top-level block) lead, since they name\n * the biggest moves; the rest read top to bottom, in source order.\n */\nconst configIssues = (\n error: z.ZodError,\n options: { file?: string; source?: string }\n): Diagnostic[] => {\n const code = \"BLUME_CONFIG_INVALID\";\n const located = diagnosticsFromIssues(\n error.issues.map((issue) => ({\n message: issue.message,\n path: locationPath(issue),\n })),\n { code, source: options.source }\n );\n return diagnosticsFromZod(error, { code, ...options })\n .map((diagnostic, index) => ({\n ...diagnostic,\n column: located[index]?.column,\n line: located[index]?.line,\n }))\n .toSorted(\n (a, b) =>\n Number(Boolean(a.schemaPath)) - Number(Boolean(b.schemaPath)) ||\n lineRank(a) - lineRank(b)\n );\n};\n\nconst COLOR_FORMS =\n \"a hex value like #6340ac, rgb(), hsl(), oklch(), or a color name like rebeccapurple\";\n\n/**\n * A warning for each configured color that isn't a CSS color, at the line\n * that sets it. The schema has always taken any string, so this warns rather\n * than failing a build that used to pass.\n */\nconst colorDiagnostics = (\n config: ResolvedConfig,\n configFile: string | null\n): Diagnostic[] => {\n const invalid = invalidColorSettings(config);\n if (invalid.length === 0) {\n return [];\n }\n const source =\n configFile && existsSync(configFile)\n ? readFileSync(configFile, \"utf-8\")\n : undefined;\n const located = diagnosticsFromIssues(\n invalid.map((setting) => ({\n message: `${JSON.stringify(setting.value)} isn't a CSS color, so ${\n setting.path[0] === \"seo\"\n ? \"the social card renderer rejects it\"\n : \"browsers ignore the styles that use it\"\n }.`,\n path: setting.path,\n })),\n {\n code: \"BLUME_THEME_COLOR_INVALID\",\n file: configFile ?? undefined,\n source,\n }\n );\n return located.map((diagnostic, index) => ({\n ...diagnostic,\n severity: \"warning\",\n suggestion: invalid[index]?.presets\n ? `Use a preset (${Object.keys(ACCENTS).join(\", \")}) or a CSS color: ${COLOR_FORMS}.`\n : `Use a CSS color: ${COLOR_FORMS}.`,\n }));\n};\n\n/**\n * Load and validate the project config. When no config file exists, schema\n * defaults produce a fully resolved config so the zero-boilerplate path works.\n */\nexport const loadConfig = async (\n root: string,\n /**\n * Supplied only by `blume dev`: the local dev server URL, used as the\n * `deployment.site` fallback when none is configured or detected. Builds\n * never pass it, so production output can't end up pointing at localhost.\n */\n options: { devServerUrl?: string } = {}\n): Promise<ConfigLoadResult> => {\n const configFile = findConfigFile(root);\n\n let raw: unknown;\n if (configFile) {\n try {\n raw = await importConfigModule(configFile);\n } catch (error) {\n // SAFETY: the module loader rejects with the thrown load/parse failure,\n // which Node surfaces as an Error; a non-Error rejection only degrades\n // the interpolated message.\n throw new BlumeError({\n code: \"BLUME_CONFIG_LOAD_FAILED\",\n file: configFile,\n message: `Failed to load config: ${(error as Error).message}`,\n severity: \"error\",\n });\n }\n // Validating whatever else the module holds would build a silent default\n // site (a bare `defineConfig({…})` call) or reject a named `config` export\n // as an unknown key, neither of which names the actual mistake.\n if (raw === undefined) {\n throw new BlumeError({\n code: \"BLUME_CONFIG_INVALID\",\n file: configFile,\n message: `${basename(configFile)} has no default export, so Blume can't read its config.`,\n severity: \"error\",\n suggestion:\n \"Export the config as the file's default: `export default defineConfig({ … })`.\",\n });\n }\n }\n\n // Read before parsing: schema defaults erase the set-vs-defaulted distinction.\n const probe = themeFontsProbeSchema.safeParse(raw);\n const themeFontsConfigured =\n probe.success && probe.data.theme?.fonts !== undefined;\n\n const parsed = blumeConfigSchema.safeParse(raw ?? {});\n if (!parsed.success) {\n // Read the raw config text (when on disk) so errors carry a line/column.\n const source =\n configFile && existsSync(configFile)\n ? readFileSync(configFile, \"utf-8\")\n : undefined;\n const diagnostics = configIssues(parsed.error, {\n file: configFile ?? undefined,\n source,\n });\n const [first, ...rest] = diagnostics;\n const primary = first ?? {\n code: \"BLUME_CONFIG_INVALID\",\n file: configFile ?? undefined,\n message: \"Invalid Blume config.\",\n severity: \"error\" as const,\n };\n // Surface every issue in one failing run — reporting only the first turns\n // a three-mistake config into three fix-rerun-fail loops.\n const moreIssues = rest.map((d) => ` - ${d.message}`).join(\"\\n\");\n const detail =\n rest.length > 0\n ? {\n ...primary,\n message: `${primary.message}\\n${rest.length} more config issue(s):\\n${moreIssues}`,\n }\n : primary;\n throw new ConfigValidationError(detail, diagnostics);\n }\n\n // Resolve the canonical site URL, then SEO defaults that depend on it.\n // Precedence: explicit config > platform env (Vercel/Netlify/Cloudflare, via\n // applyDeploymentEnv) > the local dev server URL (dev only).\n const config = applyDeploymentEnv(parsed.data);\n const site = config.deployment.options.site ?? options.devServerUrl;\n\n // OG images need an absolute `og:image`, so they default on once a site URL\n // is known and off otherwise. An explicit `seo.og.enabled` always wins.\n const ogEnabled = config.seo.og.enabled ?? Boolean(site);\n\n return {\n config: {\n ...config,\n deployment: site\n ? {\n ...config.deployment,\n options: { ...config.deployment.options, site },\n }\n : config.deployment,\n seo: { ...config.seo, og: { ...config.seo.og, enabled: ogEnabled } },\n },\n configFile,\n diagnostics: colorDiagnostics(config, configFile),\n themeFontsConfigured,\n };\n};\n",
|
|
228
|
+
"import { existsSync, readFileSync } from \"node:fs\";\n\nimport { basename } from \"pathe\";\nimport { z } from \"zod\";\n\nimport { ACCENTS, invalidColorSettings } from \"../theme/palette.ts\";\nimport type { BlumeConfig } from \"./config-input.ts\";\nimport { applyDeploymentEnv } from \"./deployment-env.ts\";\nimport {\n BlumeError,\n diagnosticsFromIssues,\n diagnosticsFromZod,\n} from \"./diagnostics.ts\";\nimport { createDefaultExportLoader } from \"./load-module.ts\";\nimport { findConfigFile } from \"./project.ts\";\nimport { blumeConfigSchema } from \"./schema.ts\";\nimport type { ResolvedConfig } from \"./schema.ts\";\nimport type { Diagnostic } from \"./types.ts\";\n\n/**\n * Define a Blume site's configuration with full type-checking and editor\n * autocomplete. Place the call in `blume.config.ts` at your project root and\n * `export default` the result:\n *\n * ```ts\n * import { defineConfig } from \"blume\";\n *\n * export default defineConfig({\n * title: \"Acme Docs\",\n * description: \"Everything you need to build with Acme.\",\n * });\n * ```\n *\n * Every field is optional — an empty `defineConfig({})` produces a working\n * site from the Markdown/MDX in your `docs/` directory. Configure only what you\n * want to change; sensible defaults fill in the rest.\n *\n * This is an identity helper: it returns its input unchanged and exists purely\n * for type inference (and as a stable home for future plugin hooks). The object\n * is validated against the Blume schema when the CLI loads it.\n *\n * ## Top-level fields\n *\n * **Site identity**\n * - `title` — site title, shown in the header, `<title>`, and OG images.\n * Defaults to `\"Documentation\"`.\n * - `description` — default meta description, used where a page sets none.\n * - `logo` — brand mark. A string is an image path/URL; the object form splits\n * an `image` mark from wordmark `text` and can override the brand `href`.\n * - `banner` — site-wide announcement bar; a string, or `{ content, link,\n * dismissible }`.\n *\n * **Content & navigation**\n * - `content` — where content lives: adapters from `blume/sources` under\n * `sources` (`filesystem({ root })`, `mdxRemote({…})`, `githubReleases({…})`,\n * `sanity({…})`, `notion({…})`, `contentful({…})`, `payload({…})`,\n * `strapi({…})`, `obsidian({…})`, or `custom(source)`), or the\n * zero-config shorthand `root`/`include`/`exclude`, which desugars to one\n * `filesystem()` source and can't be combined with `sources`.\n * - `navigation` — sidebar, header `tabs`, `selectors` (version/language/product\n * switchers), pinned `featured` links, header `actions` and the one `cta`,\n * and the `repo` link (a toggle, or a URL). Omit `sidebar` to generate it\n * from the content tree.\n * - `redirects` — `{ from, to, status }` rules (301 by default).\n * - `github` — `{ owner, repo, branch, dir, host, api }`, powering \"Edit this\n * page\" links and the header repo link; `host` points them at a GitHub\n * Enterprise instance, `api` overrides the REST base derived from it.\n *\n * **Appearance**\n * - `theme` — `accent` color, `fonts` (curated slugs, any provider family, or\n * local font files), `radius`,\n * `mode` (`system`/`light`/`dark`), and `background`.\n * - `markdown` — `code` (language icons, light/dark Shiki `theme`, line\n * `wrap`), `externalLinks`, `headingAnchors`, and `imageZoom`.\n * - `toc` — on-page table of contents; `true`/`false` or a heading-level range.\n * - `lastModified` — \"Last updated\" stamps from `git` history or frontmatter.\n * - `feedback` — the per-page \"Was this helpful?\" widget (on by default).\n * - `export` — reader-facing PDF/EPUB export actions (off by default).\n *\n * **Reference docs**\n * - `reference` — API references as a list of adapters from\n * `blume/reference`: `openapi({…})` and `asyncapi({…})` render native pages\n * (one real page per operation, woven into the sidebar and search; AsyncAPI\n * 2.x specs are normalized to 3.x), `graphql({…})` renders a schema, and\n * `scalar({…})` embeds the Scalar reference instead.\n *\n * **Search, AI & agents**\n * - `search` — a search adapter from `blume/search` (`orama()` by default;\n * `flexsearch()`, `pagefind()`, `algolia({…})`, `oramaCloud({…})`,\n * `typesense({…})`, `mixedbread({…})`, or `false`), or `{ provider,\n * popular, indexing }` to add curated links and indexing settings.\n * - `ai` — what faces a model at read time: `assistant` (the chat assistant, with\n * a provider adapter from `blume/ai` such as `gateway()` or `openrouter()`)\n * and `openInChat` (the \"Open in chat\" page action).\n * - `agents` — the machine-readable surface: `llmsTxt`, the JSON `api`, the\n * `mcp` server, published `skills`, `markdownComponents` (Markdown\n * serializers for custom components), the `catalog` manifests,\n * `agentReadability`, robots `contentSignals`, `webmcp`, and `webBotAuth`.\n *\n * **SEO, feeds & analytics**\n * - `seo` — `og` images, `sitemap`, `robots`, `rss` feeds, and\n * `structuredData` JSON-LD.\n * - `analytics` — a list of adapters from `blume/analytics`, one per provider\n * (`posthog()`, `googleAnalytics()`, `plausible()`, `fathom()`, `vercel()`,\n * `cloudflare()`, …), or `script()` for anything without one.\n *\n * **Astro**\n * - `integrations` — Astro integrations appended after Blume's built-ins, in\n * declaration order. Install and maintain each integration in the site.\n *\n * **Deployment & i18n**\n * - `deployment` — a host adapter from `blume/deploy` (`vercel()`, `node()`,\n * `netlify()`, `cloudflare()`) for a server build, each taking `site`,\n * `base`, and `output`; or `{ site, base }` for a static build anywhere.\n * `site` is auto-detected on Vercel/Netlify/Cloudflare from the platform env.\n * - `i18n` — opt-in multi-locale: `locales`, `defaultLocale`, `parser`\n * (`dir` vs filename `dot` suffix), and per-locale UI overrides.\n *\n * - `examples` — `<Component path>` previews: `source` (default `examples/`;\n * supports a glob for colocated registries) and `css`, a stylesheet injected\n * into the isolated preview frames (e.g. shadcn variables).\n *\n * @example Zero-config — just render the Markdown under `docs/`.\n * ```ts\n * export default defineConfig({});\n * ```\n *\n * @example A production docs site with theming, search, and deployment.\n * ```ts\n * import { vercel } from \"blume/deploy\";\n * import { orama } from \"blume/search\";\n *\n * export default defineConfig({\n * title: \"Acme Docs\",\n * description: \"Build faster with Acme.\",\n * logo: { image: \"/logo.svg\", text: \"Acme\" },\n * github: { owner: \"acme\", repo: \"acme\" },\n * theme: { accent: \"purple\", fonts: { body: \"inter\" }, radius: \"lg\" },\n * navigation: {\n * tabs: [\n * { label: \"Guides\", path: \"/guides\" },\n * { label: \"API\", path: \"/api\" },\n * ],\n * },\n * search: orama(),\n * // A server build on Vercel.\n * deployment: vercel({ site: \"https://docs.acme.com\" }),\n * });\n * ```\n *\n * @example An OpenAPI reference with the assistant enabled.\n * ```ts\n * import { openapi } from \"blume/reference\";\n *\n * export default defineConfig({\n * title: \"Acme API\",\n * reference: [\n * openapi({\n * route: \"/reference\",\n * sources: [{ label: \"Core\", spec: \"./openapi.json\" }],\n * }),\n * ],\n * agents: { llmsTxt: true },\n * ai: { assistant: { enabled: true } },\n * });\n * ```\n *\n * @param config - The site configuration. All fields are optional.\n * @returns The same config object, typed for inference.\n * @see https://useblume.dev/docs for the full configuration reference.\n */\nexport const defineConfig = (config: BlumeConfig): BlumeConfig => config;\n\n/**\n * A config that fails validation. `diagnostic` folds every issue into the one\n * message a command prints; `issues` keeps each on its own, with its own\n * line, for `blume upgrade`, which lists them one by one.\n */\nexport class ConfigValidationError extends BlumeError {\n readonly issues: Diagnostic[];\n\n constructor(diagnostic: Diagnostic, issues: Diagnostic[]) {\n super(diagnostic);\n this.name = \"ConfigValidationError\";\n this.issues = issues;\n }\n}\n\n/** Result of loading + validating a project config. */\nexport interface ConfigLoadResult {\n config: ResolvedConfig;\n /** Absolute path of the config file used, or null when defaults were used. */\n configFile: string | null;\n diagnostics: Diagnostic[];\n /**\n * Whether the config file set `theme.fonts` itself. The schema always fills\n * the roles with defaults, so the resolved config can't tell an intentional\n * font choice from the fallback — and only intentional choices should flow\n * into derived surfaces like OG card fonts.\n */\n themeFontsConfigured: boolean;\n}\n\nconst importConfigModule = createDefaultExportLoader();\n\n/**\n * The slice of a user config module probed before schema defaults apply:\n * whether `theme.fonts` was actually set. `looseObject` keeps every other key\n * out of scope; a non-object at either level simply fails the probe. `fonts`\n * is optional here — Zod 4 treats a bare `z.unknown()` key as required, which\n * would fail the probe for every `theme` that doesn't set fonts.\n */\nconst themeFontsProbeSchema = z.looseObject({\n theme: z.looseObject({ fonts: z.unknown().optional() }).optional(),\n});\n\nconst isPathSegment = (segment: PropertyKey): segment is string | number =>\n typeof segment !== \"symbol\";\n\n/**\n * Where an issue is located in the config source: its own path, except that\n * an unknown key — which Zod reports on its parent's path — is located at the\n * key itself, so a removed field points at the line that sets it.\n */\nconst locationPath = (issue: z.core.$ZodIssue): (string | number)[] => [\n ...issue.path.filter(isPathSegment),\n ...(issue.code === \"unrecognized_keys\" ? issue.keys.slice(0, 1) : []),\n];\n\n/** Sort key for a config issue: the line that set the field, else last. */\nconst lineRank = (diagnostic: Diagnostic): number =>\n diagnostic.line ?? Number.MAX_SAFE_INTEGER;\n\n/**\n * One diagnostic per config issue, each anchored to the config file and, when\n * the source is on disk, to the line and column that set the field. Issues on\n * the config's own top level (a removed top-level block) lead, since they name\n * the biggest moves; the rest read top to bottom, in source order.\n */\nconst configIssues = (\n error: z.ZodError,\n options: { file?: string; source?: string }\n): Diagnostic[] => {\n const code = \"BLUME_CONFIG_INVALID\";\n const located = diagnosticsFromIssues(\n error.issues.map((issue) => ({\n message: issue.message,\n path: locationPath(issue),\n })),\n { code, source: options.source }\n );\n return diagnosticsFromZod(error, { code, ...options })\n .map((diagnostic, index) => ({\n ...diagnostic,\n column: located[index]?.column,\n line: located[index]?.line,\n }))\n .toSorted(\n (a, b) =>\n Number(Boolean(a.schemaPath)) - Number(Boolean(b.schemaPath)) ||\n lineRank(a) - lineRank(b)\n );\n};\n\nconst COLOR_FORMS =\n \"a hex value like #6340ac, rgb(), hsl(), oklch(), or a color name like rebeccapurple\";\n\n/**\n * A warning for each configured color that isn't a CSS color, at the line\n * that sets it. The schema has always taken any string, so this warns rather\n * than failing a build that used to pass.\n */\nconst colorDiagnostics = (\n config: ResolvedConfig,\n configFile: string | null\n): Diagnostic[] => {\n const invalid = invalidColorSettings(config);\n if (invalid.length === 0) {\n return [];\n }\n const source =\n configFile && existsSync(configFile)\n ? readFileSync(configFile, \"utf-8\")\n : undefined;\n const located = diagnosticsFromIssues(\n invalid.map((setting) => ({\n message: `${JSON.stringify(setting.value)} isn't a CSS color, so ${\n setting.path[0] === \"seo\"\n ? \"the social card renderer rejects it\"\n : \"browsers ignore the styles that use it\"\n }.`,\n path: setting.path,\n })),\n {\n code: \"BLUME_THEME_COLOR_INVALID\",\n file: configFile ?? undefined,\n source,\n }\n );\n return located.map((diagnostic, index) => ({\n ...diagnostic,\n severity: \"warning\",\n suggestion: invalid[index]?.presets\n ? `Use a preset (${Object.keys(ACCENTS).join(\", \")}) or a CSS color: ${COLOR_FORMS}.`\n : `Use a CSS color: ${COLOR_FORMS}.`,\n }));\n};\n\n/**\n * Load and validate the project config. When no config file exists, schema\n * defaults produce a fully resolved config so the zero-boilerplate path works.\n */\nexport const loadConfig = async (\n root: string,\n /**\n * Supplied only by `blume dev`: the local dev server URL, used as the\n * `deployment.site` fallback when none is configured or detected. Builds\n * never pass it, so production output can't end up pointing at localhost.\n */\n options: { devServerUrl?: string } = {}\n): Promise<ConfigLoadResult> => {\n const configFile = findConfigFile(root);\n\n let raw: unknown;\n if (configFile) {\n try {\n raw = await importConfigModule(configFile);\n } catch (error) {\n // SAFETY: the module loader rejects with the thrown load/parse failure,\n // which Node surfaces as an Error; a non-Error rejection only degrades\n // the interpolated message.\n throw new BlumeError({\n code: \"BLUME_CONFIG_LOAD_FAILED\",\n file: configFile,\n message: `Failed to load config: ${(error as Error).message}`,\n severity: \"error\",\n });\n }\n // Validating whatever else the module holds would build a silent default\n // site (a bare `defineConfig({…})` call) or reject a named `config` export\n // as an unknown key, neither of which names the actual mistake.\n if (raw === undefined) {\n throw new BlumeError({\n code: \"BLUME_CONFIG_INVALID\",\n file: configFile,\n message: `${basename(configFile)} has no default export, so Blume can't read its config.`,\n severity: \"error\",\n suggestion:\n \"Export the config as the file's default: `export default defineConfig({ … })`.\",\n });\n }\n }\n\n // Read before parsing: schema defaults erase the set-vs-defaulted distinction.\n const probe = themeFontsProbeSchema.safeParse(raw);\n const themeFontsConfigured =\n probe.success && probe.data.theme?.fonts !== undefined;\n\n const parsed = blumeConfigSchema.safeParse(raw ?? {});\n if (!parsed.success) {\n // Read the raw config text (when on disk) so errors carry a line/column.\n const source =\n configFile && existsSync(configFile)\n ? readFileSync(configFile, \"utf-8\")\n : undefined;\n const diagnostics = configIssues(parsed.error, {\n file: configFile ?? undefined,\n source,\n });\n const [first, ...rest] = diagnostics;\n const primary = first ?? {\n code: \"BLUME_CONFIG_INVALID\",\n file: configFile ?? undefined,\n message: \"Invalid Blume config.\",\n severity: \"error\" as const,\n };\n // Surface every issue in one failing run — reporting only the first turns\n // a three-mistake config into three fix-rerun-fail loops.\n const moreIssues = rest.map((d) => ` - ${d.message}`).join(\"\\n\");\n const detail =\n rest.length > 0\n ? {\n ...primary,\n message: `${primary.message}\\n${rest.length} more config issue(s):\\n${moreIssues}`,\n }\n : primary;\n throw new ConfigValidationError(detail, diagnostics);\n }\n\n // Resolve the canonical site URL, then SEO defaults that depend on it.\n // Precedence: explicit config > platform env (Vercel/Netlify/Cloudflare, via\n // applyDeploymentEnv) > the local dev server URL (dev only).\n const config = applyDeploymentEnv(parsed.data);\n const site = config.deployment.options.site ?? options.devServerUrl;\n\n // OG images need an absolute `og:image`, so they default on once a site URL\n // is known and off otherwise — and off beside a default `seo.og.image`,\n // which every page shows instead of its card. An explicit `seo.og.enabled`\n // always wins.\n const ogEnabled =\n config.seo.og.enabled ?? (Boolean(site) && !config.seo.og.image);\n\n return {\n config: {\n ...config,\n deployment: site\n ? {\n ...config.deployment,\n options: { ...config.deployment.options, site },\n }\n : config.deployment,\n seo: { ...config.seo, og: { ...config.seo.og, enabled: ogEnabled } },\n },\n configFile,\n diagnostics: colorDiagnostics(config, configFile),\n themeFontsConfigured,\n };\n};\n",
|
|
228
229
|
"/**\n * Just enough CSS color math to check contrast at build time: parse the color\n * syntaxes a theme config takes (hex, `rgb()`, `hsl()`, `hwb()`, `lab()`,\n * `lch()`, `oklab()`, `oklch()`, and named colors) to sRGB, then measure WCAG\n * 2 relative luminance and contrast. A color outside sRGB is clipped to it,\n * which is what a browser shows on an sRGB display. Anything else — `var()`,\n * `color-mix()`, `color()` — parses to `null`, and the caller says it couldn't\n * check it rather than guessing.\n */\n\n/** An sRGB color: gamma-encoded channels and alpha, each 0–1. */\nexport interface Rgba {\n alpha: number;\n blue: number;\n green: number;\n red: number;\n}\n\n/** One parsed function argument. */\ninterface Component {\n /** `\"%\"`, an angle unit, or `\"\"` for a bare number. */\n unit: string;\n value: number;\n}\n\n/** A color function's three channel arguments. */\ntype Channels = readonly [Component, Component, Component];\n\n/** A parsed color function: its name and its channel and alpha arguments. */\ninterface ColorFunction {\n alpha?: Component;\n channels: Channels;\n name: string;\n}\n\n/** The CSS named colors, as hex. A `Map`, so `constructor` names nothing. */\nconst NAMED = new Map(\n Object.entries({\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"00ffff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000000\",\n blanchedalmond: \"ffebcd\",\n blue: \"0000ff\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"00ffff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"ff00ff\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"778899\",\n lightslategrey: \"778899\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"00ff00\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"ff00ff\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"ff0000\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n transparent: \"00000000\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"ffffff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ffff00\",\n yellowgreen: \"9acd32\",\n })\n);\n\nconst HEX = /^#(?<digits>[\\da-f]{3,4}|[\\da-f]{6}|[\\da-f]{8})$/iu;\nconst FUNCTION = /^(?<name>[a-z]+)\\((?<args>[^()]*)\\)$/iu;\nconst COMPONENT =\n /^(?<value>[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?<unit>%|deg|grad|rad|turn)?$/iu;\n\n/** Turns per angle unit; a bare hue is in degrees. */\nconst TURNS_PER_UNIT = new Map([\n [\"\", 1 / 360],\n [\"deg\", 1 / 360],\n [\"grad\", 1 / 400],\n [\"rad\", 1 / (2 * Math.PI)],\n [\"turn\", 1],\n]);\n\nconst clamp = (value: number): number => Math.min(1, Math.max(0, value));\n\nconst fromHex = (digits: string): Rgba => {\n const full =\n digits.length <= 4\n ? [...digits].map((digit) => `${digit}${digit}`).join(\"\")\n : digits;\n const channel = (index: number): number =>\n Number.parseInt(full.slice(index * 2, index * 2 + 2), 16) / 255;\n return {\n alpha: full.length === 8 ? channel(3) : 1,\n blue: channel(2),\n green: channel(1),\n red: channel(0),\n };\n};\n\nconst parseComponent = (token: string): Component | null => {\n if (token.toLowerCase() === \"none\") {\n return { unit: \"\", value: 0 };\n }\n const match = COMPONENT.exec(token)?.groups;\n return match?.value === undefined\n ? null\n : { unit: (match.unit ?? \"\").toLowerCase(), value: Number(match.value) };\n};\n\n/** Split a function's arguments: commas or spaces, with `/` before alpha. */\nconst parseFunction = (value: string): ColorFunction | null => {\n const match = FUNCTION.exec(value)?.groups;\n if (match?.name === undefined || match.args === undefined) {\n return null;\n }\n const [channelText = \"\", alphaText, extra] = match.args.split(\"/\");\n const tokens = channelText\n .split(/[\\s,]+/u)\n .filter(Boolean)\n .map(parseComponent);\n // The legacy comma syntax (`rgba(0, 0, 0, 0.5)`) puts alpha fourth.\n const legacyAlpha =\n alphaText === undefined && tokens.length === 4 ? tokens.pop() : undefined;\n const alpha =\n alphaText === undefined ? legacyAlpha : parseComponent(alphaText.trim());\n const [first, second, third, ...rest] = tokens;\n if (\n extra !== undefined ||\n alpha === null ||\n rest.length > 0 ||\n !first ||\n !second ||\n !third\n ) {\n return null;\n }\n return {\n alpha,\n channels: [first, second, third],\n name: match.name.toLowerCase(),\n };\n};\n\n/** A number, or a percentage of `full`. */\nconst scaled = (component: Component, full: number): number =>\n component.unit === \"%\" ? (component.value / 100) * full : component.value;\n\n/** A hue in degrees (0–360), from any angle unit. */\nconst hueDegrees = (component: Component): number => {\n const degrees =\n component.value * (TURNS_PER_UNIT.get(component.unit) ?? 0) * 360;\n return ((degrees % 360) + 360) % 360;\n};\n\n/** An sRGB channel from its linear-light value. */\nconst encode = (linear: number): number =>\n clamp(\n linear <= 0.0031308 ? 12.92 * linear : 1.055 * linear ** (1 / 2.4) - 0.055\n );\n\n/** A linear-light value from its sRGB channel. */\nconst decode = (channel: number): number =>\n channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4;\n\nconst fromLinear = (\n [red, green, blue]: readonly [number, number, number],\n alpha: number\n): Rgba => ({\n alpha,\n blue: encode(blue),\n green: encode(green),\n red: encode(red),\n});\n\nconst fromHsl = (hue: number, saturation: number, lightness: number) => {\n const chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n const channel = (offset: number): number => {\n const k = (offset + hue / 30) % 12;\n return lightness - (chroma / 2) * Math.max(-1, Math.min(k - 3, 9 - k, 1));\n };\n return [channel(0), channel(8), channel(4)] as const;\n};\n\nconst fromHwb = (hue: number, white: number, black: number) => {\n if (white + black >= 1) {\n const gray = white / (white + black);\n return [gray, gray, gray] as const;\n }\n const [red, green, blue] = fromHsl(hue, 1, 0.5);\n const scale = 1 - white - black;\n return [\n red * scale + white,\n green * scale + white,\n blue * scale + white,\n ] as const;\n};\n\n/** Linear sRGB from OKLab (Björn Ottosson's matrices). */\nconst fromOklab = (lightness: number, a: number, b: number) => {\n const l = (lightness + 0.3963377774 * a + 0.2158037573 * b) ** 3;\n const m = (lightness - 0.1055613458 * a - 0.0638541728 * b) ** 3;\n const s = (lightness - 0.0894841775 * a - 1.291485548 * b) ** 3;\n return [\n 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s,\n -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s,\n -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s,\n ] as const;\n};\n\n/** Linear sRGB from CIE Lab (D50), through XYZ and a Bradford adaptation. */\nconst fromLab = (lightness: number, a: number, b: number) => {\n const epsilon = 216 / 24_389;\n const kappa = 24_389 / 27;\n const fy = (lightness + 16) / 116;\n const fx = fy + a / 500;\n const fz = fy - b / 200;\n const cube = (f: number): number =>\n f ** 3 > epsilon ? f ** 3 : (116 * f - 16) / kappa;\n const x = cube(fx) * 0.96422;\n const y = lightness > kappa * epsilon ? fy ** 3 : lightness / kappa;\n const z = cube(fz) * 0.82521;\n // D50 to D65.\n const x65 =\n 0.955473421488075 * x - 0.02309845494876471 * y + 0.06325924320057072 * z;\n const y65 =\n -0.0283697093338637 * x + 1.0099953980813041 * y + 0.021041441191917323 * z;\n const z65 =\n 0.012314014864481998 * x - 0.020507649298898964 * y + 1.330365926242124 * z;\n return [\n 3.2409699419045226 * x65 -\n 1.537383177570094 * y65 -\n 0.4986107602930034 * z65,\n -0.9692436362808796 * x65 +\n 1.8759675015077202 * y65 +\n 0.04155505740717559 * z65,\n 0.05563007969699366 * x65 -\n 0.20397695888897652 * y65 +\n 1.0569715142428786 * z65,\n ] as const;\n};\n\n/** Polar (lightness, chroma, hue) to rectangular (lightness, a, b). */\nconst rectangular = (lightness: number, chroma: number, hue: number) => {\n const radians = (hue * Math.PI) / 180;\n return [\n lightness,\n chroma * Math.cos(radians),\n chroma * Math.sin(radians),\n ] as const;\n};\n\n/** A color function's channels, converted to sRGB with `alpha`. */\ntype Converter = (channels: Channels, alpha: number) => Rgba;\n\nconst rgbChannel = (component: Component): number =>\n clamp(scaled(component, 255) / 255);\n\nconst rgb: Converter = ([red, green, blue], alpha) => ({\n alpha,\n blue: rgbChannel(blue),\n green: rgbChannel(green),\n red: rgbChannel(red),\n});\n\n/** A converter for a hue-and-two-percentages function (`hsl()`, `hwb()`). */\nconst cylindrical =\n (\n convert: (hue: number, x: number, y: number) => readonly number[]\n ): Converter =>\n ([hue, x, y], alpha) => {\n const [red = 0, green = 0, blue = 0] = convert(\n hueDegrees(hue),\n clamp(scaled(x, 100) / 100),\n clamp(scaled(y, 100) / 100)\n );\n return { alpha, blue: clamp(blue), green: clamp(green), red: clamp(red) };\n };\n\nconst hsl = cylindrical(fromHsl);\n\n/** The color functions this module reads, by name. */\nconst CONVERTERS = new Map<string, Converter>([\n [\"hsl\", hsl],\n [\"hsla\", hsl],\n [\"hwb\", cylindrical(fromHwb)],\n [\n \"lab\",\n ([lightness, a, b], alpha) =>\n fromLinear(\n fromLab(scaled(lightness, 100), scaled(a, 125), scaled(b, 125)),\n alpha\n ),\n ],\n [\n \"lch\",\n ([lightness, chroma, hue], alpha) =>\n fromLinear(\n fromLab(\n ...rectangular(\n scaled(lightness, 100),\n scaled(chroma, 150),\n hueDegrees(hue)\n )\n ),\n alpha\n ),\n ],\n [\n \"oklab\",\n ([lightness, a, b], alpha) =>\n fromLinear(\n fromOklab(scaled(lightness, 1), scaled(a, 0.4), scaled(b, 0.4)),\n alpha\n ),\n ],\n [\n \"oklch\",\n ([lightness, chroma, hue], alpha) =>\n fromLinear(\n fromOklab(\n ...rectangular(\n scaled(lightness, 1),\n scaled(chroma, 0.4),\n hueDegrees(hue)\n )\n ),\n alpha\n ),\n ],\n [\"rgb\", rgb],\n [\"rgba\", rgb],\n]);\n\n/** Parse a CSS color to sRGB, or `null` for syntax this module doesn't read. */\nexport const parseColor = (value: string): Rgba | null => {\n const color = value.trim().toLowerCase();\n const hex = NAMED.get(color) ?? HEX.exec(color)?.groups?.digits;\n if (hex !== undefined) {\n return fromHex(hex);\n }\n const parsed = parseFunction(color);\n const convert = parsed && CONVERTERS.get(parsed.name);\n return parsed && convert\n ? convert(\n parsed.channels,\n parsed.alpha === undefined ? 1 : clamp(scaled(parsed.alpha, 1))\n )\n : null;\n};\n\n// Color syntax `parseColor` leaves unread but a browser takes: a custom\n// property, `color-mix()`, `color()`, `light-dark()`, a relative color\n// (`oklch(from var(--x) l c h)`), and the `currentcolor` keyword.\nconst UNREAD_COLOR =\n /^(?:currentcolor|(?:color|color-mix|hsla?|hwb|lab|lch|light-dark|oklab|oklch|rgba?|var)\\(.*\\))$/isu;\n\n/**\n * Whether `value` is a CSS color: one `parseColor` reads, or a color function\n * or keyword it leaves unread. Words that name no color (`deep purple`), and\n * hex values with a wrong digit count or no `#`, are not.\n */\nexport const isCssColor = (value: string): boolean =>\n parseColor(value) !== null || UNREAD_COLOR.test(value.trim());\n\n/** `color` painted over an opaque `backdrop`. */\nexport const composite = (color: Rgba, backdrop: Rgba): Rgba => {\n const mix = (top: number, bottom: number): number =>\n top * color.alpha + bottom * (1 - color.alpha);\n return {\n alpha: 1,\n blue: mix(color.blue, backdrop.blue),\n green: mix(color.green, backdrop.green),\n red: mix(color.red, backdrop.red),\n };\n};\n\n/** WCAG 2 relative luminance of an opaque color. */\nexport const luminance = (color: Rgba): number =>\n 0.2126 * decode(color.red) +\n 0.7152 * decode(color.green) +\n 0.0722 * decode(color.blue);\n\n/**\n * WCAG 2 contrast ratio of `foreground` on an opaque `background`, from 1 to\n * 21. A translucent foreground is painted over the background first.\n */\nexport const contrastRatio = (foreground: Rgba, background: Rgba): number => {\n const top = luminance(composite(foreground, background));\n const bottom = luminance(background);\n return (Math.max(top, bottom) + 0.05) / (Math.min(top, bottom) + 0.05);\n};\n",
|
|
229
230
|
"import type { ResolvedConfig } from \"../core/schema.ts\";\nimport { composite, contrastRatio, isCssColor, parseColor } from \"./color.ts\";\nimport type { Rgba } from \"./color.ts\";\n\n/** Per-mode CSS colors. */\nexport interface AccentColors {\n dark: string;\n light: string;\n}\n\n/** A color mode. */\nexport type ColorMode = keyof AccentColors;\n\n/**\n * Named accent presets mapped to OKLCH values, per mode. The single source of\n * truth for preset colors: the theme CSS and the OG card (og/card.ts) both\n * resolve from this table, so a site and its social cards can't disagree\n * about \"blue\". Each clears WCAG AA (4.5:1) as text on its mode's page and\n * under its button label ({@link readableOn}), with room to spare on the\n * tinted surfaces accent text also sits on: the light shades are dark enough\n * for white labels, the dark shades light enough to read on the dark page.\n */\nexport const ACCENTS = {\n blue: { dark: \"oklch(0.62 0.16 250)\", light: \"oklch(0.55 0.16 250)\" },\n green: { dark: \"oklch(0.6 0.16 150)\", light: \"oklch(0.53 0.16 150)\" },\n orange: { dark: \"oklch(0.68 0.17 50)\", light: \"oklch(0.56 0.17 50)\" },\n pink: { dark: \"oklch(0.65 0.2 350)\", light: \"oklch(0.58 0.2 350)\" },\n purple: { dark: \"oklch(0.6 0.2 290)\", light: \"oklch(0.57 0.2 290)\" },\n red: { dark: \"oklch(0.61 0.22 25)\", light: \"oklch(0.58 0.22 25)\" },\n teal: { dark: \"oklch(0.6 0.12 195)\", light: \"oklch(0.53 0.12 195)\" },\n} satisfies Record<string, AccentColors>;\n\n/** The contrast WCAG AA asks of body-size text. */\nexport const MIN_TEXT_CONTRAST = 4.5;\n\n/**\n * The theme's own colors a configured accent is drawn against: each mode's\n * page background and text, and the dark ink a filled accent can carry.\n * Mirrors the defaults in `entry.ts`.\n */\nexport const THEME_INKS = {\n dark: {\n background: \"oklch(0.085 0 0)\",\n foreground: \"oklch(0.96 0 0)\",\n ink: \"oklch(0.085 0 0)\",\n mutedForeground: \"oklch(0.68 0 0)\",\n },\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.145 0 0)\",\n ink: \"oklch(0.145 0 0)\",\n mutedForeground: \"oklch(0.53 0 0)\",\n },\n} satisfies Record<ColorMode, Record<string, string>>;\n\nconst WHITE = \"oklch(1 0 0)\";\n\n/** A color this module writes itself, parsed (they all parse). */\nconst own = (value: string): Rgba =>\n parseColor(value) ?? { alpha: 1, blue: 0, green: 0, red: 0 };\n\n/** {@link THEME_INKS}, parsed, for contrast math. */\nexport const themeInk = (\n mode: ColorMode,\n name: keyof (typeof THEME_INKS)[ColorMode]\n): Rgba => own(THEME_INKS[mode][name]);\n\n/**\n * The label color for text on a filled `fill` (a button, a step number): white\n * while it reaches AA, else the mode's dark ink when that reads better, so a\n * light accent (every dark-mode preset) gets dark text instead of white text\n * nobody can read.\n */\nexport const labelOn = (fill: Rgba, mode: ColorMode): string => {\n const opaque = composite(fill, themeInk(mode, \"background\"));\n const onWhite = contrastRatio(own(WHITE), opaque);\n return onWhite >= MIN_TEXT_CONTRAST ||\n onWhite >= contrastRatio(themeInk(mode, \"ink\"), opaque)\n ? WHITE\n : THEME_INKS[mode].ink;\n};\n\n/** {@link labelOn} for a CSS color; one this module can't parse keeps white. */\nexport const readableOn = (fill: string, mode: ColorMode): string => {\n const color = parseColor(fill);\n return color ? labelOn(color, mode) : WHITE;\n};\n\n/**\n * Whether a raw config value names an accent preset. `hasOwn` keeps a value\n * like \"constructor\" from resolving an Object.prototype member — which would\n * stringify a function into the generated CSS, breaking the rule (the exact\n * breakout {@link safeColor} exists to prevent).\n */\nexport const isAccentPreset = (value: string): value is keyof typeof ACCENTS =>\n Object.hasOwn(ACCENTS, value);\n\n// Characters valid in a CSS color value (hex, rgb/hsl/oklch functions, named\n// colors). Anything else — notably `;`, `{`, `}` — could break out of the\n// declaration and inject rules, so such a value is rejected.\nconst CSS_COLOR = /^[\\w\\s#%.,()/+-]+$/u;\n\n/** Pass a raw color through only if it can't break out of a CSS declaration. */\nconst safeColor = (value: string, fallback: string): string =>\n CSS_COLOR.test(value.trim()) ? value.trim() : fallback;\n\n/** Resolve a named preset in `mode`, or fall back to {@link safeColor}. */\nconst presetOrColor = (value: string, mode: ColorMode): string =>\n isAccentPreset(value)\n ? ACCENTS[value][mode]\n : safeColor(value, ACCENTS.blue[mode]);\n\n/** Like {@link safeColor} but drops an unsafe/absent value to `null`. */\nconst safeColorOrNull = (value: string | undefined): string | null =>\n value && CSS_COLOR.test(value.trim()) ? value.trim() : null;\n\nconst RADII = {\n lg: \"0.75rem\",\n md: \"0.5rem\",\n none: \"0\",\n sm: \"0.25rem\",\n} satisfies Record<ResolvedConfig[\"theme\"][\"radius\"], string>;\n\nconst cssString = (value: string): string => JSON.stringify(value);\n\nconst backgroundImageCss = (image: string): string =>\n `url(${cssString(image)})`;\n\nconst cssToken = (name: string, value?: string | null): string[] =>\n value ? [` ${name}: ${value};`] : [];\n\n/** One mode's resolved accent and action fills. */\ninterface ModeFills {\n accent: string;\n action: string | null;\n}\n\nconst themeRootCss = (\n theme: ResolvedConfig[\"theme\"],\n options: ModeFills & { radius: string }\n): string =>\n [\n ` --blume-accent: ${options.accent};`,\n ` --blume-accent-foreground: ${readableOn(options.accent, \"light\")};`,\n ...cssToken(\"--blume-action\", options.action),\n ...cssToken(\n \"--blume-action-foreground\",\n options.action ? readableOn(options.action, \"light\") : null\n ),\n ...cssToken(\"--blume-background\", safeColorOrNull(theme.background?.light)),\n ...cssToken(\n \"--blume-background-image\",\n theme.backgroundImage?.light\n ? backgroundImageCss(theme.backgroundImage.light)\n : null\n ),\n ` --blume-radius: ${options.radius};`,\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\nconst themeDarkCss = (\n theme: ResolvedConfig[\"theme\"],\n options: ModeFills\n): string => {\n // Mode-shared tokens (accent, action) must be re-declared here: the base\n // stylesheet's own `:root[data-theme=\"dark\"]` block outranks the `:root`\n // config tokens on specificity, so without this block dark mode would\n // silently keep its neutral defaults and ignore the config.\n const tokens = [\n ` --blume-accent: ${options.accent};`,\n ` --blume-accent-foreground: ${readableOn(options.accent, \"dark\")};`,\n ...cssToken(\"--blume-action\", options.action),\n ...cssToken(\n \"--blume-action-foreground\",\n options.action ? readableOn(options.action, \"dark\") : null\n ),\n ...cssToken(\"--blume-background\", safeColorOrNull(theme.background?.dark)),\n ...cssToken(\n \"--blume-background-image\",\n theme.backgroundImage?.dark\n ? backgroundImageCss(theme.backgroundImage.dark)\n : null\n ),\n ].filter(Boolean);\n return `:root[data-theme=\"dark\"] {\n${tokens.join(\"\\n\")}\n}\n`;\n};\n\n/**\n * Resolve the configured accent to per-mode CSS colors. A named accent\n * resolves to its preset's shade for each mode; any other value is treated as\n * a raw CSS color so users can pass arbitrary colors without a config change.\n * A string accent has already been normalized by the config schema to the\n * same value for both modes.\n */\nexport const resolveAccent = (\n theme: ResolvedConfig[\"theme\"]\n): AccentColors => ({\n dark: presetOrColor(theme.accent.dark, \"dark\"),\n light: presetOrColor(theme.accent.light, \"light\"),\n});\n\n/** Resolve the configured `action` fill per mode, or `null` when unset. */\nexport const resolveAction = (\n theme: ResolvedConfig[\"theme\"]\n): AccentColors | null =>\n theme.action\n ? {\n dark: presetOrColor(theme.action, \"dark\"),\n light: presetOrColor(theme.action, \"light\"),\n }\n : null;\n\n/** Resolve the configured radius preset to a CSS length. */\nexport const resolveRadius = (theme: ResolvedConfig[\"theme\"]): string =>\n RADII[theme.radius];\n\n/**\n * Compile theme config into CSS custom properties. A named accent resolves to\n * its preset; any other value is treated as a raw CSS color so users can pass\n * arbitrary colors without a config change. Labels on accent and action fills\n * take whichever of white or dark ink reads ({@link readableOn}).\n */\nexport const buildThemeCss = (theme: ResolvedConfig[\"theme\"]): string => {\n const accent = resolveAccent(theme);\n const action = resolveAction(theme);\n const root = themeRootCss(theme, {\n accent: accent.light,\n action: action?.light ?? null,\n radius: RADII[theme.radius],\n });\n const dark = themeDarkCss(theme, {\n accent: accent.dark,\n action: action?.dark ?? null,\n });\n\n return `/* Generated by Blume from theme config. */\n:root {\n${root}\n}\n${dark}`;\n};\n\n/** A configured color: where the config sets it, and its value. */\nexport interface ColorSetting {\n /** The config path, e.g. `[\"theme\", \"accent\", \"dark\"]`. */\n path: string[];\n /** Whether the field also takes an accent preset name (`teal`). */\n presets: boolean;\n value: string;\n}\n\nconst MODES = [\"light\", \"dark\"] as const;\n\n/**\n * A per-mode field's settings. Both modes holding one value (a string, which\n * the schema copies into each) is one setting at the field itself, so a\n * mistake is reported once, at the key that set it.\n */\nconst modeSettings = (\n path: string[],\n value: { dark?: string; light?: string } | undefined,\n presets: boolean\n): ColorSetting[] => {\n if (value?.light !== undefined && value.light === value.dark) {\n return [{ path, presets, value: value.light }];\n }\n return MODES.flatMap((mode) => {\n const color = value?.[mode];\n return color === undefined\n ? []\n : [{ path: [...path, mode], presets, value: color }];\n });\n};\n\nconst OG_PALETTE_KEYS = [\n \"accent\",\n \"background\",\n \"border\",\n \"foreground\",\n \"muted\",\n] as const;\n\n/**\n * The configured colors that aren't CSS colors (`\"deep purple\"`, a hex value\n * missing its `#`): `theme.accent`, `theme.action`, and `theme.background`,\n * and the OG card's `seo.og.palette`. The schema takes any string, so a\n * mistake would otherwise reach the stylesheet, where browsers drop it, or\n * the card renderer, which rejects it. Preset names are CSS color names too.\n */\nexport const invalidColorSettings = (\n config: ResolvedConfig\n): ColorSetting[] => {\n const { theme } = config;\n const palette = config.seo.og.palette ?? {};\n return [\n ...modeSettings([\"theme\", \"accent\"], theme.accent, true),\n ...(theme.action === undefined\n ? []\n : [{ path: [\"theme\", \"action\"], presets: true, value: theme.action }]),\n ...modeSettings([\"theme\", \"background\"], theme.background, false),\n ...OG_PALETTE_KEYS.flatMap((key) => {\n const value = palette[key];\n return value === undefined\n ? []\n : [\n {\n path: [\"seo\", \"og\", \"palette\", key],\n presets: key === \"accent\",\n value,\n },\n ];\n }),\n ].filter((setting) => !isCssColor(setting.value));\n};\n",
|
|
230
231
|
"import { inferDeploymentSite } from \"../deploy/platforms/index.ts\";\nimport type { ResolvedConfig } from \"./schema.ts\";\n\n/**\n * Fill in the deployment `site` from platform env vars (Vercel, Netlify,\n * Cloudflare Pages) when the config hasn't set one. Explicit config always\n * wins. Each adapter's platform declares its own detection and URL vars (see\n * `deploy/platforms/*`); the configured adapter is asked first, then every\n * other platform, so a static build deployed to a known host gets a working\n * canonical origin for free, mirroring Astro's platform auto-detection.\n */\nexport const applyDeploymentEnv = (\n config: ResolvedConfig,\n env: NodeJS.ProcessEnv = process.env\n): ResolvedConfig => {\n const { deployment } = config;\n if (deployment.options.site) {\n return config;\n }\n const site = inferDeploymentSite(deployment, env);\n if (!site) {\n return config;\n }\n return {\n ...config,\n deployment: {\n ...deployment,\n options: { ...deployment.options, site },\n },\n };\n};\n",
|
|
231
232
|
"import { readFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\n\nimport { createJiti } from \"jiti\";\nimport type { Jiti, JitiOptions } from \"jiti\";\nimport { join } from \"pathe\";\nimport { z } from \"zod\";\n\nimport { packageRoot } from \"./package-root.ts\";\n\n/**\n * Blume's own `exports` map, each entry reduced to the file it runs from: the\n * target itself, or a conditions object's `default` (its `types` is only for\n * the consumer's typechecker).\n */\nconst blumeExportsSchema = z.object({\n exports: z.record(\n z.string(),\n z.union([\n z.string(),\n z.object({ default: z.string() }).transform((target) => target.default),\n ])\n ),\n});\n\nlet aliases: Record<string, string> | undefined;\n\n/**\n * jiti aliases that resolve `blume` and every subpath it exports to the\n * running Blume package, read from its own `exports` map. Without them a user\n * module resolves `blume` by walking up from its own folder, so a `meta.ts`\n * under a content root outside the project (`content.root: \"../docs\"`, a\n * sibling workspace package) or a file `blume.config.ts` imports from beside\n * the project can't find the `blume` installed in the project. A wildcard\n * export (`./core/*`) becomes a prefix alias (`blume/core/`), which jiti\n * extends with the rest of the specifier.\n */\nexport const blumeModuleAliases = (): Record<string, string> => {\n if (!aliases) {\n const root = packageRoot();\n const { exports } = blumeExportsSchema.parse(\n JSON.parse(readFileSync(join(root, \"package.json\"), \"utf-8\"))\n );\n aliases = Object.fromEntries(\n Object.entries(exports).map(([subpath, target]) => [\n join(\"blume\", subpath).replace(/\\*$/u, \"\"),\n join(root, target).replace(/\\*$/u, \"\"),\n ])\n );\n }\n return aliases;\n};\n\n/**\n * An import through one jiti instance for every file a loader is called with,\n * created on its first call so that importing this module (the `blume` barrel\n * reaches it through `defineConfig`) reads nothing from disk. `moduleCache:\n * false` ensures edits are picked up on each load, which is what makes\n * dev-server regeneration reflect config/meta changes.\n *\n * Each import leaves `Error.prepareStackTrace` as it found it. The first file\n * jiti compiles loads its bundled Babel, which wraps that formatter for the\n * whole process to hide its own frames. Under Bun the wrapper hands off to\n * Bun's native formatter, which throws for an object that isn't a native\n * `Error`, and Vite's bundled follow-redirects captures a stack trace on one\n * as it loads, so importing Astro or Vite after a compiled config or meta file\n * would crash.\n */\nconst lazyImport = (\n options: JitiOptions\n): ((file: string) => Promise<{ default?: unknown }>) => {\n let jiti: Jiti | undefined;\n return async (file) => {\n jiti ??= createJiti(import.meta.url, {\n ...options,\n alias: blumeModuleAliases(),\n moduleCache: false,\n });\n const { prepareStackTrace } = Error;\n try {\n return await jiti.import<{ default?: unknown }>(file);\n } finally {\n Error.prepareStackTrace = prepareStackTrace;\n }\n };\n};\n\n/**\n * Create a loader for user-authored ESM/TS modules (`blume.config.ts`,\n * `meta.ts`), in which `blume` resolves to the running package wherever the\n * module lives (see {@link blumeModuleAliases}).\n */\n// oxlint-disable-next-line anti-slop/no-unknown-returns -- user-authored modules can export anything; callers validate the loaded value at their own boundary\nexport const createModuleLoader = (): ((file: string) => Promise<unknown>) => {\n const load = lazyImport({});\n return async (file: string) => {\n const loaded = await load(file);\n return loaded?.default ?? loaded;\n };\n};\n\n/**\n * Create a loader for a module whose default export is its whole value\n * (`blume.config.ts`). Unlike {@link createModuleLoader}, it never falls back\n * to the module's namespace: a module with no default export, or one that\n * exports `null`/`undefined`, resolves to `undefined` so the caller can say\n * so, instead of validating `{}` (a bare `defineConfig({…})` call) or\n * `{ config }` (a named export). jiti's default interop is off because it\n * throws on `export default null`. Turning it off changes how jiti compiles\n * every module the config reaches, Blume's own source included, but jiti keys\n * its disk cache by file and source alone, so this loader keeps a cache of its\n * own: sharing one, it would run code compiled for {@link createModuleLoader}\n * (and that loader, code compiled for this one), whichever loaded the file\n * first.\n */\nexport const createDefaultExportLoader: typeof createModuleLoader = () => {\n const load = lazyImport({\n fsCache: join(tmpdir(), \"jiti-blume-default-export\"),\n interopDefault: false,\n });\n return async (file: string) => {\n const loaded = await load(file);\n return loaded.default ?? undefined;\n };\n};\n"
|
|
232
233
|
],
|
|
233
|
-
"mappings": "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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8VxC,IAAM,0BAA0B,CACrC,cACA,YAC6B;AAAA,EAC7B,IAAI,QAAQ,WAAW,WAAW,GAAG;AAAA,IACnC,OAAO;AAAA,EACT;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,SAAS,KAAK,MAAM,YAAY;AAAA,IAChC,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAET,IAAI,CAAC,cAAa,MAAM,GAAG;AAAA,IACzB,OAAO;AAAA,EACT;AAAA,EACA,QAAQ,SAAS;AAAA,EACjB,IACE,CAAC,aAAa,IAAI,KAClB,KAAK,WAAW,KAChB,SAAS,yBACT;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,QAAQ,WAAW;AAAA,EACnB,IAAI,CAAC,cAAa,MAAM,KAAK,CAAC,aAAa,OAAO,OAAO,GAAG;AAAA,IAC1D,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,oBAAoB,QAAQ;AAAA,IAC5B,YAAY,CAAC;AAAA,OACV;AAAA,MACD;AAAA,EAIJ,MAAM,eAAe,kBAAkB,QAAQ,IAAI;AAAA,EACnD,MAAM,cAAc,IAAI,IACtB,kBAAkB,IAAI,CAAC,UACrB,cACE,gBAAgB,UAAU,MACtB,GAAG,eAAe,UAClB,gBAAgB,KACtB,CACF,CACF;AAAA,EACA,MAAM,kBAAkB,UAAU,OAChC,CAAC,aACC,SAAS,KAAK,WAAW,GAAG,KAC5B,CAAC,YAAY,IAAI,cAAc,SAAS,IAAI,CAAC,CACjD;AAAA,EACA,MAAM,QAAQ,yBACZ,OAAO,kBACP,yBAAyB,QAAQ,IAAI,CACvC;AAAA,EACA,IAAI,CAAC,qBAAqB,KAAK,GAAG;AAAA,IAChC,OAAO;AAAA,EACT;AAAA,EACA,IAAI,UAAU,MAAM;AAAA,IAClB,OAAO,mBAAmB;AAAA,EAC5B;AAAA,EACA,OAAO,OAAO;AAAA,EACd,MAAM,gBACJ,KAAK,WAAW,GAAG,KAAK,KAAK,WAAW,GAAG,IAAI,OAAO,KAAK;AAAA,EAC7D,MAAM,SAAS,uBAAuB;AAAA,OACjC;AAAA,IACH,eAAe,OAAO;AAAA,IACtB;AAAA,IACA,WAAW;AAAA,EACb,CAAC;AAAA,EAED,OAAO,EAAE,QAAQ,UAAU,KAAK,UAAU,MAAM,EAAE;AAAA;;;ACvvB7C,IAAM,oBAAoB,CAAC,OAAO,MAAM;AAM/C,IAAM,cAAc;AAGpB,IAAM,cAAc;AAGb,IAAM,aAAa,CAAC,UACzB,UAAU,MAAM,cAAc;AAQzB,IAAM,cAAc,CACzB,OACA,SACuB;AAAA,EACvB,IAAI,SAAS,aAAa;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,YAAY,OAAO,IAAI,IAAI,OAAO;AAAA;AAQpC,IAAM,eAAe,CAC1B,OACA,SACuB;AAAA,EACvB,MAAM,OAAO,YAAY,KAAK,IAAI,GAAG,QAAQ;AAAA,EAC7C,OAAO,SAAS,YAAY,YAAY,YAAY,OAAO,IAAI;AAAA;;;ACAjE,IAAM,qBAAqB,CACzB,IACA,UACA,MACA,WAEA,qBAAqB,MAAM,UAAU,IAAI,CAAC,UACxC,YAAY,QAAQ,KAAK,CAC3B;AAqBK,IAAM,4BAA4B,CACvC,WACA,UACA,YACA,WACe;AAAA,EAGf,MAAM,OAAO,kBAAkB,UAAU;AAAA,EACzC,OAAO,YAAY,OACf,UAAU,IAAI,CAAC,cAAc;AAAA,OACxB;AAAA,IACH,MAAM,aAAa,UAAU,SAAS,IAAI;AAAA,IAC1C,IAAI,mBAAmB,SAAS,IAAI,UAAU,MAAM,MAAM;AAAA,EAC5D,EAAE,IACF;AAAA;AASC,IAAM,+BAA+B,CAC1C,WACA,UACA,YACA,WACe;AAAA,EACf,MAAM,OAAO,kBAAkB,UAAU;AAAA,EACzC,OAAO,YAAY,OACf,UAAU,IAAI,CAAC,cAAc;AAAA,OACxB;AAAA,IACH,MAAM,qBAAqB,MAAM,UAAU,SAAS,IAAI;AAAA,IACxD,IAAI,mBAAmB,SAAS,IAAI,UAAU,MAAM,MAAM;AAAA,EAC5D,EAAE,IACF;AAAA;AAQN,IAAM,iBAAiB;AAGvB,IAAM,kBAAkB;AAWjB,IAAM,kBAAkB,CAAC,MAAc,UAA6B;AAAA,EACzE,MAAM,SAAS,gBAAgB,KAAK,cAAc,IAAI,CAAC,GAAG,QAAQ;AAAA,EAClE,OAAO,WAAW,aAAa,YAAY,OAAO,UAAU,GAAG;AAAA;AAOjE,IAAM,aAAa,CAAC,MAAc,MAAc,cAC9C,GAAG,OAAO,WAAW,cAAc,MAAM,IAAI,CAAC,IAAI;AAiB7C,IAAM,sBAAsB,CACjC,WACA,OACA,UAEA,UAAU,QAAQ,CAAC,aAAa;AAAA,EAC9B,MAAM,OAAO,cAAc,SAAS,IAAI;AAAA,EACxC,MAAM,KAAK,cAAc,SAAS,EAAE;AAAA,EACpC,MAAM,YACJ,CAAC,cAAc,SAAS,IAAI,KAC5B,CAAC,eAAe,KAAK,IAAI,KACzB,YAAY,OAAO,cAAc,MAAM,IAAI,EAAE,CAAC,KAC9C,YAAY,OAAO,WAAW,cAAc,MAAM,MAAM,IAAI,CAAC,CAAC,MAC5D;AAAA,EACJ,OAAO,YACH;AAAA,IACE;AAAA,IACA,GAAG,kBAAkB,IAAI,CAAC,eAAe;AAAA,MACvC,MAAM,WAAW,MAAM,MAAM,MAAM,SAAS;AAAA,MAC5C,QAAQ,SAAS;AAAA,MACjB,IAAI,WAAW,IAAI,MAAM,IAAI,SAAS;AAAA,IACxC,EAAE;AAAA,EACJ,IACA,CAAC,QAAQ;AAAA,CACd;AAWI,IAAM,oBAAoB,CAAC,YAGhB;AAAA,EAChB,QAAQ,WAAW;AAAA,EACnB,MAAM,OAAO,kBAAkB,OAAO,WAAW,QAAQ,IAAI;AAAA,EAC7D,MAAM,QAAQ,YAAY,QAAQ,SAAS,MAAM;AAAA,EACjD,OAAO,WACL,oBACE,6BACE,OAAO,WACP,OAAO,UACP,MACA,KACF,GACA,OACA,EAAE,MAAM,MAAM,IAAI,KAAK,CACzB,CACF;AAAA;AAOF,IAAM,cAAc,CAClB,UACA,OACA,YACY;AAAA,EACZ,MAAM,QAAQ,eAAe,QAAQ;AAAA,EACrC,OAAO,MAAM,SAAS,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,QAAQ,CAAC;AAAA;AAU1D,IAAM,wBAAwB,CACnC,WACA,QAAQ,UAER,GAAG,UACA,QAAQ,CAAC,aACR,YAAY,UAAU,CAAC,UAAU,OAAO,kBAAkB,EAAE,IAC1D,CAAC,UACC,GAAG,MAAM,QAAQ,MAAM,MAAM,SAAS,SAAS,QAAQ,MAAM,IACjE,CACF,EACC,KAAK;AAAA,CAAI;AAAA;AAkBP,IAAM,oBAAoB,CAC/B,WACA,UAAmC,CAAC,MACzB;AAAA,EACX,MAAM,SAAuB;AAAA,IAC3B,WAAW,UAAU,QAAQ,CAAC,aAC5B,YACE,UACA,CAAC,WAAW;AAAA,MACV,aAAa,MAAM;AAAA,MACnB,QAAQ,mBAAmB,MAAM,IAAI;AAAA,IACvC,IACA,CAAC,SAAS,eAAe,MAAM,kBAAkB,CACnD,EAAE,IAAI,CAAC,WAAW,KAAK,OAAO,YAAY,SAAS,OAAO,EAAE,CAC9D;AAAA,EACF;AAAA,EACA,IAAI,QAAQ,SAAS,GAAG;AAAA,IACtB,OAAO,UAAU;AAAA,EACnB;AAAA,EACA,OAAO,GAAG,KAAK,UAAU,QAAQ,MAAM,CAAC;AAAA;AAAA;AAQnC,IAAM,0BAA0B,CACrC,cAEA,UAAU,QAAQ,cAAc,EAAE,IAAI,CAAC,UAAU;AAAA,KAC5C,mBAAmB,IAAI;AAAA,EAC1B,QAAQ,KAAK;AACf,EAAE;AAQG,IAAM,sBAAsB,CAAC,cAClC,iBAAiB,SAAS,EAAE,IAAI,EAAE,KAAK,UAAU,aAAa;AAAA,EAC5D,SAAS,EAAE,UAAU,SAAS;AAAA,EAC9B;AAAA,EACA;AACF,EAAE;;;AC5TJ,uBAAS;AACT,qBAAS,wBAAU;AAEnB,iBAAS;AAoBF,IAAM,iBAA+B;AAAA,EAC1C,OAAO;AAAA,EACP,MAAM;AACR;AAQO,IAAM,yBAAuC;AAAA,EAClD,OAAO,CAAC,cAAc,sBAAsB,WAAW,IAAI;AAAA,EAC3D,MAAM;AACR;AAGO,IAAM,sBAAsB,OAAK,YAAY,MAAM,aAAa;AAahE,IAAM,qBAAqB,OAChC,SACA,QACkB;AAAA,EAClB,QAAQ,QAAQ,YAAY;AAAA,EAC5B,MAAM,aAAa,OAAK,QAAQ,MAAM,mBAAmB;AAAA,EACzD,IAAI,CAAC,YAAW,UAAU,GAAG;AAAA,IAC3B,IAAI,KACF,6CAA6C,8KAC/C;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAM,aAAmD,KAAK,MAC5D,MAAM,UAAS,YAAY,OAAO,CACpC;AAAA,EACA,MAAM,OAAO,0BACX,QACA,oBAAoB,QAAQ,mBAAmB,OAAO,CAAC,CACzD;AAAA,EAEA,MAAM,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,MAAM,GAAG,CAAC;AAAA,EACpD,WAAW,UAAU;AAAA,IACnB,IAAI,WAAW,WAAW,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC;AAAA,IACrE,GAAG;AAAA,EACL;AAAA,EACA,MAAM,WAAU,YAAY,KAAK,UAAU,UAAU,GAAG,OAAO;AAAA;AAS1D,IAAM,8BAA8B,OACzC,YACkB;AAAA,EAClB,MAAM,OAAO,wBAAwB,kBAAkB,OAAO,CAAC;AAAA,EAC/D,MAAM,aAAa,OAAK,QAAQ,QAAQ,MAAM,mBAAmB;AAAA,EACjE,IAAI,KAAK,WAAW,KAAK,CAAC,YAAW,UAAU,GAAG;AAAA,IAChD;AAAA,EACF;AAAA,EAEA,MAAM,aAAiD,KAAK,MAC1D,MAAM,UAAS,YAAY,OAAO,CACpC;AAAA,EAEA,MAAM,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC;AAAA,EACrD,WAAW,YAAY;AAAA,IACrB,IAAI,WAAW,aAAa,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC;AAAA,IACxE,GAAG;AAAA,EACL;AAAA,EACA,MAAM,WAAU,YAAY,KAAK,UAAU,UAAU,GAAG,OAAO;AAAA;AAY1D,IAAM,kBAAkC;AAAA,EAC7C,OAAO;AAAA,IACL,QAAQ,OAAO,CAAC;AAAA,IAChB,eAAe,CAAC;AAAA,IAChB,SAAS,OAAO,CAAC;AAAA,IACjB,SAAS;AAAA,EACX;AAAA,EACA,KAAK;AAAA,IACH,QAAQ,CAAC,QAAQ,QAAQ,IAAI,OAAO;AAAA,IAIpC,MAAM,CAAC,QACL,UAAU,IAAI,GAAG,KACjB,UAAU,IAAI,gBAAgB,KAC9B,UAAU,IAAI,UAAU;AAAA,EAC5B;AAAA,EACA,eAAe,SAAS,UAAU,KAAK,cAAc;AAAA,IAGnD,IAAI,CAAC,UAAU;AAAA,MACb,MAAM,mBAAmB,SAAS,GAAG;AAAA,MACrC,MAAM,4BAA4B,OAAO;AAAA,IAC3C;AAAA,IACA,OAAO;AAAA;AAAA,EAET,eAAe;AAAA,IACb,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,EACN,oBAAoB;AAAA,EAEpB,eAAe;AAAA,EAKf,kBAAkB,EAAE,QAAQ,OAAO,QAAQ,KAAK;AAAA,EAChD,eAAe,CAAC,sBAAsB;AAAA,EACtC,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;;;AlJvIA,IAAM,wBAAwB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AACF;AAYA,IAAM,iBAAiB,CAAC,YAA4B;AAAA,EAClD,MAAM,UAAU,EAAE,cAAc,WAAW,sBAAsB,OAAO;AAAA,EACxE,MAAM,eAAe,sBAAsB,IAAI,CAAC,SAC9C,OAAK,QAAQ,MAAM,IAAI,CACzB,EAAE,KAAK,CAAC,SAAS,YAAW,IAAI,CAAC;AAAA,EACjC,IAAI,CAAC,cAAc;AAAA,IACjB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,aAAa,UAAS,QAAQ,QAAQ,YAAY;AAAA,EAItD,IAAI,CAAC,WAAW,WAAW,GAAG,KAAK,CAAC,WAAW,WAAW,GAAG,GAAG;AAAA,IAC9D,aAAa,KAAK;AAAA,EACpB;AAAA,EACA,OAAO,KAAK,SAAS,WAAW;AAAA;AAGlC,IAAM,yBAAyB,CAAC,QAC9B,IAAI,KACF,iIACF;AAWK,IAAM,4BAA4B,OACvC,SACA,QACkB;AAAA,EAClB,QAAQ,QAAQ,YAAY;AAAA,EAC5B,MAAM,YAAY,OAAK,QAAQ,OAAO,GAAG,QAAQ;AAAA,EACjD,MAAM,eAAe,OAAK,WAAW,eAAe;AAAA,EACpD,IAAI,CAAC,YAAW,YAAY,GAAG;AAAA,IAC7B,uBAAuB,GAAG;AAAA,IAC1B;AAAA,EACF;AAAA,EACA,MAAM,aAAa,mBAAmB,OAAO;AAAA,EAI7C,MAAM,cAAc,MAAM,iBAAiB,OAAO;AAAA,EAClD,MAAM,OAAO,YAAY;AAAA,EAMzB,MAAM,YAAY,OAChB,UAAU,OAAO,GACjB,kBAAkB,OAAO,WAAW,QAAQ,IAAI,CAClD;AAAA,EACA,MAAM,WAAW,wBACf,MAAM,UAAS,cAAc,OAAO,GACpC;AAAA,IACE,MAAM,OAAO,WAAW,QAAQ;AAAA,IAIhC,mBAAmB,QAAQ,SAAS,OAAO,IAAI,CAAC,UAAU,MAAM,IAAI;AAAA,IACpE,gBAAgB,oBAAoB,QAAQ,UAAU;AAAA,IACtD,YAAY,OAAO,mBAAmB,cAAc,IAAI,CAAC,IAAI;AAAA,IAC7D,UAAU;AAAA,MACR,MAAM,YAAW,OAAK,WAAW,UAAU,CAAC;AAAA,MAC5C,UAAU,YAAW,OAAK,WAAW,QAAQ,CAAC;AAAA,IAChD;AAAA,IAGA,eAAe,OAAO,OAAO,MACzB,QAAQ,SAAS,OACd,OACC,CAAC,UAAU,CAAC,MAAM,UAAU,YAAY,MAAM,UAAU,SAC1D,EACC,IAAI,CAAC,UAAU,aAAa,MAAM,IAAI,CAAC,IAC1C,CAAC;AAAA,IACL,WAAW,OAAO;AAAA,IAKlB,WAAW,kBAAkB,OAAO;AAAA,IACpC;AAAA,EACF,CACF;AAAA,EACA,IAAI,aAAa,MAAM;AAAA,IACrB,uBAAuB,GAAG;AAAA,IAC1B;AAAA,EACF;AAAA,EACA,MAAM,WACJ,OAAK,WAAW,uBAAuB,GACvC,SAAS,QACT,OACF;AAAA,EACA,MAAM,WAAU,cAAc,SAAS,UAAU,OAAO;AAAA,EACxD,IAAI,QACF,oEACF;AAAA;AAOF,IAAM,gBAAgB,OAAK,aAAa,UAAU,aAAa;AAmBxD,IAAM,6BAA6B,OACxC,YACkB;AAAA,EAClB,MAAM,cAAc,OAAK,QAAQ,OAAO,GAAG,UAAU,eAAe;AAAA,EACpE,IAAI,CAAC,YAAW,WAAW,GAAG;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,MAAM,SAAS,OAAK,QAAQ,QAAQ,aAAa;AAAA,EACjD,MAAM,SAAS,OAAK,QAAQ,MAAM,aAAa;AAAA,EAC/C,MAAM,SAAS,CAAC,SACd,UAAS,SAAQ,MAAM,GAAG,SAAQ,SAAQ,MAAM,GAAG,IAAI,CAAC;AAAA,EAC1D,MAAM,eAA6B,YAAW,MAAM,IAChD,KAAK,MAAM,MAAM,UAAS,QAAQ,OAAO,CAAC,IAC1C,EAAE,YAAY,UAAS,SAAQ,MAAM,GAAG,WAAW,EAAE;AAAA,EACzD,MAAM,UAAwB;AAAA,IAC5B,mBAAmB,aAAa,oBAAoB,CAAC,GAAG,IAAI,CAAC,YAAY;AAAA,MACvE,YAAY,OAAO,OAAO,UAAU;AAAA,IACtC,EAAE;AAAA,IACF,YAAY,OAAO,aAAa,UAAU;AAAA,EAC5C;AAAA,EACA,IAAI,aAAa,2BAA2B;AAAA,IAC1C,QAAQ,4BAA4B,OAClC,aAAa,yBACf;AAAA,EACF;AAAA,EACA,MAAM,OAAM,SAAQ,MAAM,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EAChD,MAAM,WAAU,QAAQ,GAAG,KAAK,UAAU,OAAO;AAAA,GAAO,OAAO;AAAA;AAQjE,IAAM,sBAAsB;AAO5B,IAAM,eAAe,CAAC,SACpB,KACG,YAAY,EACZ,WAAW,eAAe,GAAG,EAC7B,MAAM,GAAG,EAAE,EACX,WAAW,aAAa,EAAE;AAO/B,IAAM,oBAAoB,OACxB,YACgC;AAAA,EAChC,QAAQ,QAAQ,YAAY;AAAA,EAC5B,MAAM,cAAc,OAAK,QAAQ,MAAM,cAAc;AAAA,EACrD,MAAM,WAA8B,YAAW,WAAW,IACtD,KAAK,MAAM,MAAM,UAAS,aAAa,OAAO,CAAC,IAC/C,CAAC;AAAA,EACL,QAAQ,SAAS,OAAO,WAAW;AAAA,EACnC,OAAO;AAAA,IACL,OAAO,SAAS,QAAQ,EAAE;AAAA,IAC1B,OAAO,IAAI,IAAI,IAAI,EAAE,WAAW;AAAA,IAChC,UAAS,QAAQ,IAAI;AAAA,EACvB,EACG,IAAI,YAAY,EAChB,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC;AAAA;AAQ5B,IAAM,uBAAuB,OAClC,SACA,QACkB;AAAA,EAClB,MAAM,eAAe,OACnB,QAAQ,QAAQ,OAAO,GACvB,UACA,eACF;AAAA,EACA,IAAI,CAAC,YAAW,YAAY,GAAG;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,WAAqD,KAAK,MAC9D,MAAM,UAAS,cAAc,OAAO,CACtC;AAAA,EACA,MAAM,OAAO,MAAM,kBAAkB,OAAO;AAAA,EAC5C,IAAI,SAAS,SAAS,uBAAuB,SAAS,WAAW;AAAA,IAC/D;AAAA,EACF;AAAA,EACA,SAAS,OAAO;AAAA,EAChB,IAAI,SAAS,iBAAiB,qBAAqB;AAAA,IACjD,SAAS,eAAe;AAAA,EAC1B;AAAA,EACA,MAAM,WAAU,cAAc,KAAK,UAAU,QAAQ,GAAG,OAAO;AAAA,EAC/D,IAAI,KACF,gCAAgC,8EAClC;AAAA;AAOK,IAAM,0BAA0B,OACrC,SACA,QACkB;AAAA,EAClB,QAAQ,cAAc,QAAQ;AAAA,EAC9B,IAAI,WAAW,SAAS,cAAc;AAAA,IACpC;AAAA,EACF;AAAA,EACA,MAAM,eAAe,OACnB,QAAQ,QAAQ,OAAO,GACvB,UACA,eACF;AAAA,EACA,MAAM,QAAQ,YAAW,YAAY,IACjC,qBAAqB,MAAM,UAAS,cAAc,OAAO,GAAG,SAAS,IACrE;AAAA,EACJ,IAAI,UAAU,MAAM;AAAA,IAClB,IAAI,KACF,gHACF;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM,WAAU,cAAc,OAAO,OAAO;AAAA,EAC5C,IAAI,QAAQ,4CAA4C;AAAA;AAenD,IAAM,qBAAqC;AAAA,EAChD,OAAO;AAAA,IACL,QAAQ,OAAO,EAAE,SAAS,MAAM;AAAA,IAChC,eAAe,CAAC;AAAA,IAChB,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK;AAAA,IACH,QAAQ,CAAC,QAAQ,QAAQ,IAAI,QAAQ;AAAA,IACrC,MAAM,CAAC,QAAQ,UAAU,IAAI,YAAY;AAAA,EAC3C;AAAA,EACA,eAAe,SAAS,UAAU,KAAK,cAAc;AAAA,IAGnD,IAAI,CAAC,UAAU;AAAA,MACb,MAAM,qBAAqB,SAAS,GAAG;AAAA,MACvC,MAAM,0BAA0B,SAAS,GAAG;AAAA,MAC5C,MAAM,wBAAwB,SAAS,GAAG;AAAA,MAC1C,MAAM,2BAA2B,QAAQ,OAAO;AAAA,IAClD;AAAA,IACA,OAAO;AAAA;AAAA,EAET,eAAe;AAAA,IAGb,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,EACN,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,kBAAkB,EAAE,QAAQ,MAAM,QAAQ,KAAK;AAAA,EAC/C,eAAe,CAAC,cAAc;AAAA,EAG9B,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,iBAAiB,CAAC,SAAS,SAAS,OAAK,UAAU,OAAO,GAAG,IAAI;AACnE;;;AmJtWA,uBAAS;AACT,qBAAS,iCAAkB;AAE3B,iBAAS;AA+CF,IAAM,kBAAkB;AAExB,IAAM,wBAAwB;AAErC,IAAM,iBAAiB;AAGhB,IAAM,kBAAkB,CAAC,WAA6C;AAAA,EAC3E,MAAM,aAAa,kBAAkB,OAAO,WAAW,QAAQ,IAAI;AAAA,EACnE,MAAM,SAAS,IAAI;AAAA,EACnB,MAAM,MAAM,CAAC,MAAc,MAAc,UAAwB;AAAA,IAC/D,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC;AAAA;AAAA,EAEzD,IAAI,cAAc,MAAM,GAAG;AAAA,IACzB,IAAI,kBAAkB,gBAAgB,gBAAgB;AAAA,EACxD;AAAA,EACA,IAAI,OAAO,OAAO,WAAW,KAAK,SAAS,GAAG;AAAA,IAC5C,IAAI,2BAA2B,gBAAgB,yBAAyB;AAAA,EAC1E;AAAA,EACA,WAAW,QAAQ,0BAA0B,MAAM,GAAG;AAAA,IACpD,IAAI,MAAM,+BAA+B,GAAG;AAAA,EAC9C;AAAA,EACA,OAAO,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc;AAAA,IAC3C;AAAA,IACA,MAAM,GAAG,aAAa;AAAA,EACxB,EAAE;AAAA;AAIJ,IAAM,aAAa,CACjB,UAEA,MACG,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,EACzC,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,KAAK,OAAO,CAAC;AAM5C,IAAM,eAAe,CACnB,UAEA,MACG,OAAO,CAAC,SAAS,KAAK,KAAK,SAAS,GAAG,CAAC,EACxC,IAAI,CAAC,SAAS;AAAA,EACb,MAAM,OAAO,KAAK,KAAK,QAAQ,GAAG;AAAA,EAClC,OAAO;AAAA,IACL,KAAK,KAAK,MAAM,GAAG,IAAI;AAAA,IACvB,KAAK,KAAK,MAAM,OAAO,CAAC;AAAA,IACxB,KAAK;AAAA,EACP;AAAA,CACD;AAgBE,IAAM,gBAAgB,CAAC,YAAyC;AAAA,EACrE,QAAQ,WAAW;AAAA,EACnB,IAAI,OAAO,UAAU,WAAW,GAAG;AAAA,IACjC,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,OAAO,kBAAkB,OAAO,WAAW,QAAQ,IAAI;AAAA,EAC7D,MAAM,QAAQ,IAAI,IAChB,QAAQ,SAAS,OAAO,IAAI,CAAC,UAC3B,cAAc,GAAG,OAAO,MAAM,MAAM,CACtC,CACF;AAAA,EACA,OAAO,OAAO,YACZ,kBAAkB,OAAO,EACtB,OACC,CAAC,aACC,EACE,cAAc,SAAS,IAAI,KAC3B,MAAM,IAAI,cAAc,SAAS,IAAI,CAAC,EAE5C,EACC,IAAI,CAAC,aAAa;AAAA,IACjB,cAAc,SAAS,IAAI;AAAA,IAC3B,CAAC,UAAU,SAAS,EAAE,GAAG,SAAS,MAAM;AAAA,EAC1C,CAAC,CACL;AAAA;AASK,IAAM,uBAAuB,CAClC,YAEA,QAAQ,OAAO,UAAU,WAAW,IAChC,CAAC,IACD,iBAAiB,kBAAkB,OAAO,CAAC;AAuC1C,IAAM,mBAAmB,CAC9B,OACA,UAA4B,CAAC,MAE7B,GAAG;AAAA,2DACsD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAO5C,KAAK,UAAU,QAAQ,QAAQ,EAAE;AAAA,qBAC3B,KAAK,UAAU,QAAQ,cAAc,QAAQ,CAAC,IAAI,kBAAkB;AAAA,wBACjE,KAAK,UAAU,WAAW,KAAK,CAAC;AAAA,mBACrC,KAAK,UAAU,aAAa,KAAK,CAAC;AAAA,oBACjC,KAAK,UAAU,QAAQ,aAAa,CAAC,CAAC;AAAA,4BAC9B,KAAK,UAAU,QAAQ,oBAAoB,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAyEzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8CzB,IAAM,gBAAgB,OAC3B,SACA,QACkB;AAAA,EAIlB,MAAM,YAAY,OAAK,QAAQ,QAAQ,OAAO,GAAG,UAAU,cAAc;AAAA,EACzE,MAAM,QAAQ;AAAA,IACZ,GAAG,gBAAgB,QAAQ,MAAM;AAAA,IACjC,GAAI,YAAW,SAAS,IACpB;AAAA,MACE;AAAA,QACE,SAAS,KAAK,kBAAkB;AAAA,QAChC,MAAM,aAAa,QAAQ,MAAM;AAAA,MACnC;AAAA,IACF,IACA,CAAC;AAAA,EACP;AAAA,EACA,MAAM,YAAY,cAAc,OAAO;AAAA,EACvC,MAAM,mBAAmB,qBAAqB,OAAO;AAAA,EACrD,IACE,CAAC,QAAQ,OAAO,aAChB,MAAM,WAAW,KACjB,OAAO,KAAK,SAAS,EAAE,WAAW,KAClC,iBAAiB,WAAW,GAC5B;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM,YAAY,OAAK,QAAQ,QAAQ,OAAO,GAAG,QAAQ;AAAA,EACzD,MAAM,QAAQ,OAAK,WAAW,eAAe;AAAA,EAC7C,IAAI,CAAC,YAAW,KAAK,GAAG;AAAA,IACtB,IAAI,KACF,2CAA2C,uFAC7C;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM,SAAS,MAAM,WAAS,OAAO,OAAO;AAAA,EAC5C,IAAI,OAAO,WAAW,cAAc,GAAG;AAAA,IACrC;AAAA,EACF;AAAA,EACA,MAAM,OAAO,OAAO,OAAK,WAAW,qBAAqB,CAAC;AAAA,EAC1D,MAAM,WACJ,OACA,iBAAiB,OAAO;AAAA,IACtB,MAAM,kBAAkB,QAAQ,OAAO,WAAW,QAAQ,IAAI;AAAA,IAC9D;AAAA,IACA,WAAW,QAAQ,OAAO;AAAA,IAC1B;AAAA,EACF,CAAC,GACD,OACF;AAAA,EACA,IAAI,QAAQ,wDAAwD;AAAA;;;AC7W/D,IAAM,eAA+B;AAAA,EAC1C,OAAO;AAAA,IACL,QAAQ,GAAG,qBAAqB;AAAA,MAC9B,MAAM,SAAoC,CAAC;AAAA,MAC3C,IAAI,gBAAgB;AAAA,QAClB,OAAO,WAAW,EAAE,eAAe;AAAA,MACrC;AAAA,MACA,OAAO;AAAA;AAAA,IAET,eAAe,CAAC,gBAAgB;AAAA,IAChC,SAAS,OAAO,EAAE,MAAM,aAAa;AAAA,IACrC,SAAS;AAAA,EACX;AAAA,EACA,KAAK;AAAA,EACL,eAAe,SAAS,UAAU,KAAK,cAAc;AAAA,IAEnD,IAAI,CAAC,UAAU;AAAA,MACb,MAAM,cAAc,SAAS,GAAG;AAAA,IAClC;AAAA,IACA,OAAO;AAAA;AAAA,EAET,eAAe;AAAA,IACb,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,EACN,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,kBAAkB,EAAE,QAAQ,OAAO,QAAQ,MAAM;AAAA,EACjD,eAAe,CAAC;AAAA,EAChB,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;;;ACpDA,uBAAS;AACT,kBAAS,oBAAO,sBAAU,0BAAY;AAEtC,oBAAS,mBAAS;;;ACHlB,uBAAS,6BAAY;AACrB,8BAAkB;AAClB;AAEA,wBAAe;AACf,oBAAS,kBAAS,oBAAM;AACxB,cAAS;AAwCT,IAAM,WAAW,IAAI,IAAI,cAAc;AAGvC,IAAM,uBAAuB,CAAC,SAAS,UAAU,YAAY,SAAS,MAAI;AAMnE,IAAM,cAAc,CAAC,cAAqC;AAAA,EAC/D,IACE,UAAU,WAAW,GAAG,KACxB,UAAU,WAAW,GAAG,KACxB,qBAAqB,KAAK,CAAC,WAAW,UAAU,WAAW,MAAM,CAAC,KAClE,SAAS,IAAI,SAAS,GACtB;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,MAAM,WAAW,UAAU,MAAM,GAAG;AAAA,EACpC,IAAI,UAAU,WAAW,GAAG,GAAG;AAAA,IAC7B,OAAO,SAAS,UAAU,IAAI,GAAG,SAAS,MAAM,SAAS,OAAO;AAAA,EAClE;AAAA,EACA,OAAO,SAAS,MAAM;AAAA;AASxB,IAAM,gBACJ;AAGF,IAAM,iBAAiB;AAMvB,IAAM,oBAAoB,CAAC,WAA6B;AAAA,EACtD,MAAM,aAAuB,CAAC;AAAA,EAC9B,WAAW,WAAW,CAAC,eAAe,cAAc,GAAG;AAAA,IACrD,WAAW,SAAS,OAAO,SAAS,OAAO,GAAG;AAAA,MAC5C,MAAM,SAAS,MAAM,UAAU,CAAC;AAAA,MAChC,WAAW,KAAK,OAAO,QAAQ,OAAO,QAAQ,OAAO,WAAW,EAAE;AAAA,IACpE;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAYT,IAAM,kBAAkB,CAAC,QAAgB,SAA2B;AAAA,EAClE,OAAO,WAAW,OAAM,QAAQ,IAAI;AAAA,EACpC,MAAM,aAAuB,CAAC;AAAA,EAC9B,WAAW,SAAS,SAAS;AAAA,IAC3B,IAAI,MAAM,SAAS,aAAa,MAAM,MAAM;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,IAAI,MAAM,WAAW;AAAA,MACnB,WAAW,KAAK,MAAM,SAAS;AAAA,IACjC;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAQF,IAAM,mBAAmB,OAC9B,QACA,OAAO,aACe;AAAA,EACtB,MAAM,KAAK;AAAA,EACX,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,aAAa,gBAAgB,QAAQ,IAAI;AAAA,IACzC,MAAM;AAAA,IACN,aAAa,kBAAkB,MAAM;AAAA;AAAA,EAEvC,MAAM,QAAQ,IAAI;AAAA,EAClB,WAAW,aAAa,YAAY;AAAA,IAClC,MAAM,YAAY,YAAY,SAAS;AAAA,IACvC,IAAI,WAAW;AAAA,MACb,MAAM,IAAI,SAAS;AAAA,IACrB;AAAA,EACF;AAAA,EACA,OAAO,CAAC,GAAG,KAAK;AAAA;AAIlB,IAAM,aAAa,CAAC,MAAc,MAAc,SAA0B;AAAA,EACxE,IAAI,MAAM;AAAA,EACV,UAAS;AAAA,IACP,IAAI,YAAW,OAAK,KAAK,gBAAgB,MAAM,cAAc,CAAC,GAAG;AAAA,MAC/D,OAAO;AAAA,IACT;AAAA,IACA,IAAI,QAAQ,MAAM;AAAA,MAChB,OAAO;AAAA,IACT;AAAA,IACA,MAAM,SAAS,SAAQ,GAAG;AAAA,IAC1B,IAAI,WAAW,KAAK;AAAA,MAClB,OAAO;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EACR;AAAA;AAGF,IAAM,cAAc;AAGpB,IAAM,iBAAiB,IAAE,YAAY,EAAE,SAAS,IAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAGvE,IAAM,cAAc,OAAO,QAAmC;AAAA,EAC5D,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,UAAU,MAAM,QAAQ,KAAK,EAAE,eAAe,KAAK,CAAC;AAAA,EAC1D,WAAW,SAAS,SAAS;AAAA,IAC3B,MAAM,OAAO,OAAK,KAAK,MAAM,IAAI;AAAA,IACjC,IAAI,MAAM,YAAY,GAAG;AAAA,MACvB,IAAI,MAAM,SAAS,gBAAgB;AAAA,QAEjC,MAAM,KAAK,GAAI,MAAM,YAAY,IAAI,CAAE;AAAA,MACzC;AAAA,IACF,EAAO,SAAI,MAAM,OAAO,KAAK,YAAY,KAAK,MAAM,IAAI,GAAG;AAAA,MACzD,MAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AASF,IAAM,sBAAsB,OACjC,YAC8B;AAAA,EAC9B,MAAM,aAAa,OAAK,SAAS,iBAAiB;AAAA,EAClD,IAAI,CAAC,YAAW,UAAU,GAAG;AAAA,IAC3B,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,SAAS,eAAe,UAC5B,KAAK,MAAM,MAAM,WAAS,YAAY,OAAO,CAAC,CAChD;AAAA,EACA,IAAI,CAAC,OAAO,WAAW,CAAC,OAAO,KAAK,SAAS;AAAA,IAC3C,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,YAAY,SAAQ,OAAK,SAAS,OAAO,KAAK,OAAO,CAAC;AAAA,EAC5D,IAAI,CAAC,YAAW,SAAS,GAAG;AAAA,IAC1B,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,UAAU,IAAI;AAAA,EACpB,WAAW,QAAQ,MAAM,YAAY,SAAS,GAAG;AAAA,IAE/C,MAAM,SAAS,MAAM,WAAS,MAAM,OAAO;AAAA,IAE3C,WAAW,QAAQ,MAAM,iBAAiB,QAAQ,IAAI,GAAG;AAAA,MACvD,IAAI,WAAW,MAAM,SAAQ,IAAI,GAAG,OAAO,GAAG;AAAA,QAC5C;AAAA,MACF;AAAA,MACA,MAAM,YAAY,QAAQ,IAAI,IAAI,KAAK,CAAC;AAAA,MACxC,UAAU,KAAK,UAAS,SAAS,IAAI,CAAC;AAAA,MACtC,QAAQ,IAAI,MAAM,SAAS;AAAA,IAC7B;AAAA,EACF;AAAA,EACA,OAAO,CAAC,GAAG,OAAO,EACf,IAAI,EAAE,MAAM,gBAAgB,EAAE,WAAW,KAAK,EAAE,EAChD,SAAS,CAAC,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC;AAAA;AAQ7C,IAAM,uBAAuB,OAClC,cACmC;AAAA,EACnC,MAAM,eAAe,OAAK,WAAW,WAAW;AAAA,EAChD,IAAI,CAAC,YAAW,YAAY,GAAG;AAAA,IAC7B,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,SAAgC,CAAC;AAAA,EACvC,MAAM,UAAU,MAAM,QAAQ,cAAc,EAAE,eAAe,KAAK,CAAC;AAAA,EACnE,WAAW,SAAS,QAAQ,SAAS,CAAC,GAAG,MAAO,EAAE,OAAO,EAAE,OAAO,KAAK,CAAE,GAAG;AAAA,IAC1E,IAAI,EAAE,MAAM,YAAY,KAAK,MAAM,KAAK,SAAS,OAAO,IAAI;AAAA,MAC1D;AAAA,IACF;AAAA,IACA,MAAM,MAAM,OAAK,cAAc,MAAM,IAAI;AAAA,IAEzC,MAAM,UAAU,MAAM,oBAAoB,GAAG;AAAA,IAC7C,IAAI,QAAQ,SAAS,GAAG;AAAA,MACtB,OAAO,KAAK,EAAE,KAAK,QAAQ,CAAC;AAAA,IAC9B;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,uBAAuB,MAAmB;AAAA,EACrD,MAAM,WAAsD,KAAK,MAC/D,cAAa,OAAK,YAAY,GAAG,cAAc,GAAG,OAAO,CAC3D;AAAA,EACA,OAAO,IAAI,IAAI,OAAO,KAAK,SAAS,gBAAgB,CAAC,CAAC,CAAC;AAAA;AAoBlD,IAAM,0BAA0B,OAAO,SAC5C,GAAG,YAAY,MAAM,4BAA4B,IAAI,CAAC,EAAE;AASnD,IAAM,wBAAwB,CACnC,OACA,MACA,iBACA,gBAAgB,qBACU;AAAA,EAC1B,MAAM,QAAQ,MAAM,QAAQ,IAAI,CAAC,UAAU,MAAM,IAAI;AAAA,EACrD,MAAM,QAAQ,MAAM,QAAQ,IAC1B,CAAC,UAAU,OAAO,MAAM,qBAAqB,MAAM,UAAU,KAAK,IAAI,IACxE;AAAA,EACA,MAAM,QAAQ,MAAM,KAAK,CAAC,SAAS,gBAAgB,IAAI,IAAI,CAAC;AAAA,EAC5D,MAAM,UAAU;AAAA,IACd,iCAAiC,UAAS,MAAM,MAAM,GAAG,KAAK,MAAM;AAAA,IACpE,GAAG;AAAA,IACH;AAAA,IACA,KAAK,iBAAiB,MAAM,KAAK,GAAG;AAAA,EACtC,EAAE,KAAK;AAAA,CAAI;AAAA,EACX,OAAO,EAAE,OAAO,QAAQ;AAAA;;;ACnQ1B,IAAM,UAAU,CAAC,SACf,KAAK,WAAW,WAAW,CAAC,WAAW,IAAI,OAAO,YAAY,IAAI,SAAS;AAG7E,IAAM,eAAe,OAAO;AAG5B,IAAM,eAAe;AAGrB,IAAM,cAAc,OAAO;AAG3B,IAAM,iBAAiB,OAAO;AAG9B,IAAM,iBAAiB,OAAO;AAG9B,IAAM,cAAc,CAAC,MAAc,QAAgB,aACjD,OAAO,kBAAkB,UAAU,2BAA2B,YAAY,gBAAgB,WAAW,MAAM;AAG7G,IAAM,aAAa,CAAC,SAAiB,YAAY,MAAM,aAAa,IAAI;AAGxE,IAAM,gBAAgB,CAAC,SACrB,YAAY,MAAM,gBAAgB,KAAK;AAGzC,IAAM,cAAc,YAAY,QAAQ,WAAW,GAAG,gBAAgB,IAAI;AAE1E,IAAM,gBAAgB,GAAG,QAAQ,OAAO,OAAO,QAAQ,IAAI,MAAM,QAAQ,UAAU;AAEnF,IAAM,YAAY,GAAG,QAAQ,cAAc,OAAO,QAAQ,SAAS,SAAS,QAAQ,MAAM;AAe1F,IAAM,SAAS,CAAC,WAAoC;AAAA,EAClD,KAAK;AAAA,EACL,MAAM;AAAA,EACN;AACF;AAGA,IAAM,aAAa,CAAC,SAAqC;AAAA,EACvD,EAAE,KAAK,CAAC,OAAO,WAAW,IAAI,CAAC,CAAC,EAAE;AAAA,EAClC,EAAE,KAAK,CAAC,OAAO,cAAc,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,WAAW,CAAC,EAAE;AACvE;AAGO,IAAM,6BAA6B,WAAW,aAAa;AAQ3D,IAAM,yBAAyB,WAAW,SAAS;AAmB1D,IAAM,cAAc,CAClB,OACA,eACkB,WAAW,IAAI,CAAC,eAAe,KAAK,UAAU,UAAU,EAAE;AAG9E,IAAM,YAAW,CAAC,UAChB,OAAO,UAAU;AAGnB,IAAM,kBAAkB,IAAI,IAC1B,2BAA2B,QAAQ,GAAG,UACpC,IAAI,IAAI,CAAC,cAAc,UAAU,KAAK,CACxC,CACF;AAEA,IAAM,cAAc,EAAE,MAAM,SAAS;AAGrC,IAAM,0BAA0B;AAGhC,IAAM,sBAAsB;AAG5B,IAAM,sBAAsB;AAa5B,IAAM,yBAAyB;AAE/B,IAAM,iBAAiB;AAQvB,IAAM,eAAe,CAAC,UACpB,UAAU,KAAK,EAAE,QAAQ,gBAAgB,MAAM;AAMjD,IAAM,aAAa,CAAC,SAClB,IAAI,aAAa,cAAc,MAAM,GAAG,CAAC;AAW3C,IAAM,yBAAyB,CAAC,SAAgC;AAAA,EAC9D,MAAM,OAAO,cAAc,MAAM,uBAAuB;AAAA,EACxD,MAAM,SAAS,aAAa,IAAI;AAAA,EAChC,OAAO;AAAA,IACL,GAAG,YACD,EAAE,MAAM,SAAS,aAAa,KAAK,IAAI,cAAc,QAAQ,IAAI,GACjE,0BACF;AAAA,IACA,EAAE,MAAM,KAAK,IAAI,qBAAqB,QAAQ,IAAI;AAAA,EACpD;AAAA;AAUF,IAAM,qBAAqB,CAAC,SAAgC;AAAA,EAC1D,MAAM,OAAO,cAAc,MAAM,mBAAmB;AAAA,EACpD,MAAM,SAAS,aAAa,IAAI;AAAA,EAChC,OAAO;AAAA,IACL,GAAG,YACD,EAAE,MAAM,SAAS,aAAa,KAAK,IAAI,cAAc,QAAQ,IAAI,GACjE,sBACF;AAAA,IACA,EAAE,MAAM,KAAK,IAAI,qBAAqB,QAAQ,IAAI;AAAA,EACpD;AAAA;AAIF,IAAM,gBAAgB,CAAC,aAA4C;AAAA,EACjE,MAAM,SAAqB,CAAC;AAAA,EAC5B,IAAI,UAAoB,CAAC;AAAA,EACzB,IAAI,SAAS;AAAA,EACb,WAAW,WAAW,UAAU;AAAA,IAC9B,IACE,QAAQ,SAAS,KACjB,SAAS,QAAQ,SAAS,IAAI,wBAC9B;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,MACnB,UAAU,CAAC;AAAA,MACX,SAAS;AAAA,IACX;AAAA,IACA,QAAQ,KAAK,OAAO;AAAA,IACpB,UAAU,QAAQ,SAAS;AAAA,EAC7B;AAAA,EACA,IAAI,QAAQ,SAAS,GAAG;AAAA,IACtB,OAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EACA,OAAO;AAAA;AAiCF,IAAM,yBAAyB,CACpC,YACA,YACA,OAAO,OACe;AAAA,EACtB,MAAM,OAAO,WAAW,SAAS,GAAG;AAAA,EACpC,MAAM,OAAO,WACV,OAAO,CAAC,SAAS,SAAS,GAAG,EAC7B,IAAI,CAAC,SAAS,aAAa,cAAc,MAAM,IAAI,CAAC,CAAC;AAAA,EACxD,MAAM,SAAS,cAAc,IAAI;AAAA,EAEjC,MAAM,gBAA+B,OACjC,YACE;AAAA,IACE,MAAM,cAAc,MAAM,WAAW;AAAA,IACrC,SACE,eAAe,YACX,cACA,KAAK,aAAa,qBAAqB,OAAO,UAAU,EAAE;AAAA,IAChE,KAAK,WAAW,IAAI;AAAA,EACtB,GACA,0BACF,IACA,CAAC;AAAA,EACL,WAAW,SAAS,QAAQ;AAAA,IAC1B,cAAc,KACZ,GAAG,YACD;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,MACT,KAAK,KAAK,MAAM,KAAK,GAAG;AAAA,IAC1B,GACA,0BACF,CACF;AAAA,EACF;AAAA,EAEA,MAAM,eAAe,cACnB,OAAO,CAAC,aAAa,cAAc,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,IAC7D;AAAA,EACA,MAAM,eAA8B,aAAa,IAAI,CAAC,WAAW;AAAA,IAC/D,UAAU;AAAA,IACV,SAAS;AAAA,IACT,KAAK,OAAO,MAAM,KAAK,GAAG;AAAA,EAC5B,EAAE;AAAA,EAEF,OAAO,EAAE,cAAc,cAAc;AAAA;AAGvC,IAAM,mBAAmB;AAOzB,IAAM,YAAY,CAAC,MAAc,UAA+B;AAAA,EAC9D,UAAU;AAAA,EACV,SAAS,EAAE,+BAA+B,iBAAiB;AAAA,EAC3D,KAAK,IAAI,aAAa,cAAc,MAAM,IAAI,CAAC;AACjD;AAMA,IAAM,iBAAiB,CAAC,SACtB,OAAO,OAAO,aAAa,IAAI;AAQjC,IAAM,gBAAgB,CAAC,UAA+B;AAAA,EACpD,UAAU;AAAA,EACV,SAAS,OAAO,YACd,OAAO,QAAQ,iBAAiB,EAAE,IAAI,EAAE,MAAM,WAAW;AAAA,IACvD,KAAK,YAAY;AAAA,IACjB;AAAA,EACF,CAAC,CACH;AAAA,EACA,KAAK,eAAe,IAAI;AAC1B;AAGA,IAAM,kBAAkB,CAAC,SACvB,IAAI,aAAa,IAAI;AAQvB,IAAM,iBAAiB,CAAC,UAA+B;AAAA,EACrD,UAAU;AAAA,EACV,SAAS,OAAO,YACd,OAAO,QAAQ,kBAAkB,EAAE,IAAI,EAAE,MAAM,WAAW;AAAA,IACxD,KAAK,YAAY;AAAA,IACjB;AAAA,EACF,CAAC,CACH;AAAA,EACA,KAAK,gBAAgB,IAAI;AAC3B;AAGA,IAAM,mBAAmB,CAAC,OAAoB,SAC5C,MAAM,aAAa,QAAQ,MAAM,QAAQ,gBAAgB,IAAI;AAG/D,IAAM,cAAc,CAAC,UACnB,MAAM,aAAa,QACnB,MAAM,UAAU,mCAAmC,oBACnD,UAAS,MAAM,GAAG,KAClB,OAAO,KAAK,KAAK,EAAE,WAAW;AAahC,IAAM,qBAAqB,CAAC,OAAoB,SAC9C,MAAM,KAAK,KAAK,CAAC,cAAc,gBAAgB,IAAI,UAAU,KAAK,CAAC,MACjE,QACD,MAAM,SAAS,cAAc,MAAM,uBAAuB,KACzD,MAAM,WAAW,OAClB,MAAM,SAAS,cAAc,MAAM,mBAAmB,KACrD,MAAM,WAAW,OAClB,MAAM,aAAa,QAClB,MAAM,SAAS,SAAS,YACxB,UAAS,MAAM,GAAG,KAClB,OAAO,KAAK,KAAK,EAAE,WAAW,KAC/B,MAAM,aAAa,QAClB,UAAS,MAAM,SAAS,IAAI,KAC5B,MAAM,QAAQ,WAAW,IAAI,KAC7B,OAAO,KAAK,KAAK,EAAE,WAAW,KAChC,YAAY,KAAK,KAChB,MAAM,aAAa,QAAQ,MAAM,QAAQ,eAAe,IAAI,KAC7D,iBAAiB,OAAO,IAAI;AA4BvB,IAAM,0BAA0B,CACrC,YACA,YACA,gBACA,sBACA,YACA,WAA6B,CAAC,GAC9B,YAA+B,CAAC,GAChC,YAAY,OACZ,OAAO,IACP,YAAY,UACM;AAAA,EAClB,MAAM,kBAAkB,OAAO,QAAQ,wBAAwB,CAAC,CAAC;AAAA,EACjE,IAAI;AAAA,EAIJ,IAAI;AAAA,IACF,SAAS,KAAK,MAAM,UAAU;AAAA,IAC9B,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAET,IAAI,CAAC,MAAM,QAAQ,OAAO,MAAM,GAAG;AAAA,IACjC,OAAO;AAAA,EACT;AAAA,EACA,YAAY,MAAM,gBAAgB,iBAAiB;AAAA,IAGjD,OAAO,YAAY,KAAK,OAAO,YAAY,OAAO,EAAE,YAAY,EAAE;AAAA,EACpE;AAAA,EACA,MAAM,SAAS,OAAO,OAAO,OAC3B,CAAC,UAAU,CAAC,mBAAmB,OAAO,IAAI,CAC5C;AAAA,EACA,MAAM,kBAAkB,OAAO,UAC7B,CAAC,UAAU,MAAM,WAAW,YAC9B;AAAA,EACA,IAAI,oBAAoB,IAAI;AAAA,IAC1B,OAAO;AAAA,EACT;AAAA,EACA,QAAQ,cAAc,kBAAkB,uBACtC,YACA,YACA,IACF;AAAA,EACA,IAAI,gBAAgB;AAAA,IAClB,aAAa,KAAK;AAAA,MAChB,UAAU;AAAA,MACV,SAAS,EAAE,MAAM,eAAe;AAAA,MAChC,KAAK,WAAW,IAAI;AAAA,IACtB,CAAC;AAAA,EACH;AAAA,EACA,aAAa,KAAK,GAAG,UAAU,IAAI,CAAC,SAAS,UAAU,MAAM,IAAI,CAAC,CAAC;AAAA,EACnE,IAAI,WAAW;AAAA,IACb,aAAa,KAAK,cAAc,IAAI,CAAC;AAAA,EACvC;AAAA,EAIA,OAAO,OAAO,iBAAiB,GAAG,GAAG,cAAc,GAAG,aAAa;AAAA,EACnE,IAAI,WAAW;AAAA,IACb,OAAO,QAAQ,eAAe,IAAI,CAAC;AAAA,EACrC;AAAA,EACA,MAAM,iBAAiB;AAAA,IACrB,GAAI,SAAS,WAAW,uBAAuB,IAAI,IAAI,CAAC;AAAA,IACxD,GAAI,SAAS,OAAO,mBAAmB,IAAI,IAAI,CAAC;AAAA,EAClD;AAAA,EACA,IAAI,eAAe,SAAS,GAAG;AAAA,IAC7B,MAAM,eAAe,cAAc,MAAM,mBAAmB;AAAA,IAC5D,MAAM,gBAAgB,OAAO,UAC3B,CAAC,UAAU,MAAM,WAAW,OAAO,MAAM,SAAS,YACpD;AAAA,IACA,IAAI,kBAAkB,IAAI;AAAA,MACxB,OAAO,OAAO,eAAe,GAAG,GAAG,cAAc;AAAA,IACnD;AAAA,EACF;AAAA,EACA,OAAO,SAAS;AAAA,EAChB,OAAO,GAAG,KAAK,UAAU,QAAQ,MAAM,IAAI;AAAA;AAAA;AAWtC,IAAM,uBAAuB,CAClC,YACA,mBACkB;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,SAAS,KAAK,MAAM,UAAU;AAAA,IAC9B,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAET,IAAI,CAAC,MAAM,QAAQ,OAAO,MAAM,GAAG;AAAA,IACjC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,IAAI,IAAI,eAAe,IAAI,CAAC,UAAU,MAAM,GAAG,CAAC;AAAA,EAC7D,MAAM,SAAS,OAAO,OAAO,OAC3B,CAAC,UAAU,EAAE,KAAK,IAAI,MAAM,GAAG,KAAK,UAAS,MAAM,SAAS,QAAQ,EACtE;AAAA,EACA,MAAM,kBAAkB,OAAO,UAC7B,CAAC,UAAU,MAAM,WAAW,YAC9B;AAAA,EACA,IAAI,oBAAoB,IAAI;AAAA,IAC1B,OAAO;AAAA,EACT;AAAA,EACA,OAAO,OAAO,iBAAiB,GAAG,GAAG,cAAc;AAAA,EACnD,OAAO,SAAS;AAAA,EAChB,OAAO,GAAG,KAAK,UAAU,QAAQ,MAAM,IAAI;AAAA;AAAA;AAQ7C,IAAM,uBAAuB,CAAC,UAC5B,MAAM,SAAS,aAAa;AAG9B,IAAM,YAAY;AAOlB,IAAM,eAAe,CAAC,KAAa,WAA2B;AAAA,EAC5D,MAAM,OAAO,IAAI,WAAW,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI;AAAA,EAClD,OAAO,IAAI,SAAS,UAAU,KAAK,IAAI,IAAI,MAAM;AAAA;AAiB5C,IAAM,sBAAsB,CACjC,YACA,MACA,mBACkB;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,SAAS,KAAK,MAAM,UAAU;AAAA,IAC9B,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAET,IAAI,CAAC,MAAM,QAAQ,OAAO,MAAM,GAAG;AAAA,IACjC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,kBAAkB,OAAO,OAAO,UACpC,CAAC,UAAU,MAAM,WAAW,YAC9B;AAAA,EACA,IAAI,oBAAoB,IAAI;AAAA,IAC1B,OAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,aAAa,IAAI;AAAA,EAChC,MAAM,SAAS,OAAO,OAAO,QAAQ,CAAC,OAAO,UAAyB;AAAA,IAGpE,IAAI,QAAQ,mBAAmB,UAAS,MAAM,SAAS,QAAQ,GAAG;AAAA,MAChE,OAAO,qBAAqB,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAAA,IAClD;AAAA,IACA,MAAM,UAAU,KAAK,MAAM;AAAA,IAC3B,IAAI,UAAS,MAAM,GAAG,GAAG;AAAA,MACvB,QAAQ,MAAM,aAAa,MAAM,KAAK,MAAM;AAAA,IAC9C;AAAA,IACA,IAAI,MAAM,WAAW,OAAO,MAAM,SAAS,qBAAqB;AAAA,MAC9D,QAAQ,OAAO,cAAc,MAAM,mBAAmB;AAAA,IACxD;AAAA,IACA,OAAO,CAAC,OAAO;AAAA,GAChB;AAAA,EACD,OAAO,OACL,OAAO,UAAU,CAAC,UAAU,MAAM,WAAW,YAAY,GACzD,GACA,GAAG,cACL;AAAA,EACA,OAAO,SAAS;AAAA,EAChB,OAAO,GAAG,KAAK,UAAU,QAAQ,MAAM,IAAI;AAAA;AAAA;;;AFhmBtC,IAAM,mBAAiC;AAAA,EAC5C,OAAO;AAAA,EACP,MAAM;AACR;AAQA,IAAM,iBAAiB,CAAC,YACtB,OAAK,YAAY,OAAO,GAAG,WAAW,QAAQ;AAGhD,IAAM,YAAY,CAAC,SAAyB,SAC1C,OAAK,eAAe,OAAO,GAAG,UAAU,IAAI;AAG9C,IAAM,iBAAiB,CAAC,YACtB,kBAAkB,QAAQ,OAAO,WAAW,QAAQ,IAAI;AAUnD,IAAM,6BAA6B,OACxC,WACA,MACA,QACqB;AAAA,EACrB,MAAM,SAAS,MAAM,qBAAqB,SAAS;AAAA,EACnD,MAAM,MAAM,qBAAqB;AAAA,EAEjC,MAAM,gBAAgB,MAAM,wBAAwB,IAAI;AAAA,EACxD,IAAI,QAAQ;AAAA,EACZ,WAAW,SAAS,QAAQ;AAAA,IAC1B,MAAM,UAAU,sBAAsB,OAAO,MAAM,KAAK,aAAa;AAAA,IACrE,IAAI,QAAQ,OAAO;AAAA,MACjB,QAAQ;AAAA,MACR,IAAI,MAAM,QAAQ,OAAO;AAAA,IAC3B,EAAO;AAAA,MACL,IAAI,KAAK,QAAQ,OAAO;AAAA;AAAA,EAE5B;AAAA,EACA,OAAO,CAAC;AAAA;AAWV,IAAM,sBAAsB,OAC1B,SACA,QACkB;AAAA,EAClB,MAAM,aAAa,OAAK,eAAe,OAAO,GAAG,aAAa;AAAA,EAC9D,IAAI,CAAC,YAAW,UAAU,GAAG;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,MAAM,GAAG,YAAY,EAAE,OAAO,KAAK,CAAC;AAAA,EACpC,IAAI,KACF,6EACF;AAAA;AAWK,IAAM,wBAAwB,OACnC,SACA,QACkB;AAAA,EAClB,QAAQ,QAAQ,YAAY;AAAA,EAC5B,MAAM,aAAa,OAAK,eAAe,OAAO,GAAG,aAAa;AAAA,EAC9D,IAAI,CAAC,YAAW,UAAU,GAAG;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,MAAM,OAAO,eAAe,OAAO;AAAA,EACnC,MAAM,aAAa,mBAAmB,OAAO;AAAA,EAE7C,MAAM,YAAoC,CAAC;AAAA,EAC3C,IAAI,cAAc,MAAM,GAAG;AAAA,IACzB,UAAU,cAAc,MAAM,gBAAgB,EAAE,MAAM,CAAC,KACrD;AAAA,EACJ;AAAA,EACA,IAAI,OAAO,OAAO,WAAW,KAAK,SAAS,GAAG;AAAA,IAC5C,UAAU,cAAc,MAAM,yBAAyB,EAAE,MAAM,CAAC,KAC9D;AAAA,EACJ;AAAA,EAIA,MAAM,cAAc,MAAM,iBAAiB,OAAO;AAAA,EAClD,MAAM,OAAO,YAAY;AAAA,EAIzB,MAAM,WAAW,UAAU,SAAS,IAAI;AAAA,EACxC,MAAM,WAAW,wBACf,MAAM,WAAS,YAAY,OAAO,GAClC,YACA,oBAAoB,QAAQ,UAAU,GACtC,WACA,OAAO,mBAAmB,cAAc,IAAI,CAAC,IAAI,WACjD;AAAA,IACE,MAAM,YAAW,OAAK,UAAU,UAAU,CAAC;AAAA,IAC3C,UAAU,YAAW,OAAK,UAAU,QAAQ,CAAC;AAAA,EAC/C,GACA,0BAA0B,MAAM,GAGhC,YAAW,OAAK,UAAU,cAAc,CAAC,GACzC,MACA,OAAO,SACT;AAAA,EACA,IAAI,aAAa,MAAM;AAAA,IACrB,IAAI,KACF,kIACF;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM,WAAU,YAAY,UAAU,OAAO;AAAA,EAC7C,IAAI,QACF,wEACF;AAAA;AAQK,IAAM,6BAA6B,OACxC,SACA,QACkB;AAAA,EAClB,MAAM,SAAS,oBAAoB,kBAAkB,OAAO,CAAC;AAAA,EAC7D,MAAM,aAAa,OAAK,eAAe,QAAQ,OAAO,GAAG,aAAa;AAAA,EACtE,IAAI,OAAO,WAAW,KAAK,CAAC,YAAW,UAAU,GAAG;AAAA,IAClD;AAAA,EACF;AAAA,EACA,MAAM,WAAW,qBACf,MAAM,WAAS,YAAY,OAAO,GAClC,MACF;AAAA,EACA,IAAI,aAAa,MAAM;AAAA,IACrB,IAAI,KACF,sGACF;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM,WAAU,YAAY,UAAU,OAAO;AAAA;AAS/C,IAAM,sBAAsB,CAAC,cAC3B,UACG,OAAO,CAAC,aAAa,CAAC,cAAc,SAAS,IAAI,CAAC,EAClD,IAAI,GAAG,MAAM,QAAQ,UAAU;AAAA,EAC9B,SAAS,EAAE,UAAU,UAAU,EAAE,EAAE;AAAA,EACnC,KAAK,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC,EACrE;AAAA,EACH;AACF,EAAE;AAUC,IAAM,sBAAsB,OACjC,SACA,SACkB;AAAA,EAClB,MAAM,OAAO,UAAU,SAAS,EAAE;AAAA,EAClC,IAAI,CAAC,QAAQ,CAAC,YAAW,IAAI,GAAG;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,MAAM,UAAU,OAAK,eAAe,OAAO,GAAG,gBAAgB;AAAA,EAC9D,MAAM,QAAO,MAAM,OAAO;AAAA,EAC1B,MAAM,SAAS,UAAU,SAAS,IAAI;AAAA,EACtC,MAAM,OAAM,UAAQ,MAAM,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EAChD,MAAM,QAAO,SAAS,MAAM;AAAA;AASvB,IAAM,qBAAqB,OAChC,SACA,QACqB;AAAA,EACrB,MAAM,OAAO,eAAe,OAAO;AAAA,EACnC,MAAM,aAAa,OAAK,eAAe,QAAQ,OAAO,GAAG,aAAa;AAAA,EACtE,IAAI,CAAC,QAAQ,CAAC,YAAW,UAAU,GAAG;AAAA,IACpC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,oBACd,MAAM,WAAS,YAAY,OAAO,GAClC,MACA,oBAAoB,kBAAkB,OAAO,CAAC,CAChD;AAAA,EACA,IAAI,YAAY,MAAM;AAAA,IACpB,IAAI,MACF,sFAAsF,+CACxF;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,MAAM,WAAU,YAAY,SAAS,OAAO;AAAA,EAC5C,OAAO;AAAA;AAeF,IAAM,iBAAiC;AAAA,EAC5C,OAAO;AAAA,IACL,QAAQ,OAAO,CAAC;AAAA,IAChB,eAAe,CAAC;AAAA,IAChB,SAAS,OAAO,CAAC;AAAA,IACjB,SAAS;AAAA,EACX;AAAA,EACA,KAAK;AAAA,IACH,QAAQ,CAAC,QAAQ,QAAQ,IAAI,MAAM;AAAA,IAKnC,MAAM,CAAC,QACL,UAAU,IAAI,6BAA6B,KAAK,UAAU,IAAI,UAAU;AAAA,EAC5E;AAAA,EACA,eAAe,SAAS,UAAU,KAAK,cAAc;AAAA,IACnD,QAAQ,YAAY;AAAA,IACpB,MAAM,KAAK,MAAM,2BACf,eAAe,OAAO,GACtB,QAAQ,MACR,GACF;AAAA,IACA,IAAI,CAAC,IAAI;AAAA,MACP,MAAM,oBAAoB,SAAS,GAAG;AAAA,MACtC,OAAO;AAAA,IACT;AAAA,IAGA,MAAM,oBAAoB,SAAS,eAAe,OAAO,CAAC;AAAA,IAG1D,IAAI,UAAU;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,IAAI,CAAE,MAAM,mBAAmB,SAAS,GAAG,GAAI;AAAA,MAC7C,MAAM,oBAAoB,SAAS,GAAG;AAAA,MACtC,OAAO;AAAA,IACT;AAAA,IACA,MAAM,sBAAsB,SAAS,GAAG;AAAA,IACxC,MAAM,2BAA2B,SAAS,GAAG;AAAA,IAC7C,OAAO;AAAA;AAAA,EAET,eAAe;AAAA,IACb,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,EACN,oBAAoB;AAAA,EAEpB,eAAe;AAAA,EACf,kBAAkB,EAAE,QAAQ,OAAO,QAAQ,MAAM;AAAA,EACjD,eAAe,CAAC,gBAAgB;AAAA,EAChC,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;;;AGvVO,IAAM,iBAAiC;AAAA,EAC5C,OAAO;AAAA,EACP,KAAK;AAAA,EACL,eAAe;AAAA,EACf,eAAe;AAAA,IACb,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,EACN,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,kBAAkB,EAAE,QAAQ,OAAO,QAAQ,KAAK;AAAA,EAChD,eAAe,CAAC,gBAAgB,gBAAgB;AAAA,EAChD,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;;;ACdO,IAAM,mBAA8C;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,SAAS,IAAI,IACjB,iBAAiB,IAAI,CAAC,aAAa,CAAC,SAAS,MAAM,QAAQ,CAAC,CAC9D;AAGO,IAAM,iBAAiB,CAC5B,eACmB;AAAA,EACnB,MAAM,WAAW,OAAO,IAAI,WAAW,IAAI;AAAA,EAC3C,IAAI,CAAC,UAAU;AAAA,IACb,MAAM,IAAI,MAAM,+BAA+B,WAAW,QAAQ;AAAA,EACpE;AAAA,EACA,OAAO;AAAA;AASF,IAAM,sBAAsB,CACjC,YACA,QACkB;AAAA,EAClB,MAAM,MAAM,eAAe,UAAU;AAAA,EACrC,MAAM,aAAa,CAAC,KAAK,GAAG,iBAAiB,OAAO,CAAC,MAAM,MAAM,GAAG,CAAC;AAAA,EACrE,MAAM,WAAW,WAAW,KAC1B,CAAC,aAAa,SAAS,KAAK,OAAO,GAAG,KAAK,KAC7C;AAAA,EAEA,OAAO,UAAU,KAAK,KAAK,GAAG,KAAK;AAAA;;;ACvDrC,uBAAS;AAET,uBAAS,qBAAY,mBAAM;AAM3B,IAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,kBAAkB,CAAC,WAAW;AACpC,IAAM,uBAAuB,CAAC,kBAAkB,eAAe;AAE/D,IAAM,gBAAgB,CAAC,MAAc,UAAmC;AAAA,EACtE,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,YAAY,OAAK,MAAM,IAAI;AAAA,IACjC,IAAI,YAAW,SAAS,GAAG;AAAA,MACzB,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,iBAAiB,CAAC,SAC7B,cAAc,MAAM,gBAAgB;AAG/B,IAAM,qBAAqB,CAAC,SACjC,cAAc,MAAM,oBAAoB;AAOnC,IAAM,oBAAoB,CAC/B,MACA,aAAa,aAEb,YAAW,UAAU,IAAI,aAAa,OAAK,SAAQ,IAAI,GAAG,UAAU;AAQ/D,IAAM,wBAAwB,CACnC,MACA,QACA,YACmB;AAAA,EACnB,MAAM,eAAe,SAAQ,IAAI;AAAA,EAGjC,MAAM,cAAc,sBAAsB,QAAQ,YAAY,EAAE;AAAA,EAEhE,MAAM,YAAY,OAAK,cAAc,OAAO,QAAQ,KAAK;AAAA,EACzD,MAAM,YAAY,YAAW,SAAS,IAAI,YAAY;AAAA,EAEtD,MAAM,SAAS,kBAAkB,cAAc,SAAS,UAAU;AAAA,EAGlE,MAAM,UAAU,SAAS,aACrB,OAAK,QAAQ,MAAM,IACnB,OAAK,cAAc,MAAM;AAAA,EAE7B,OAAO;AAAA,IACL,gBAAgB,mBAAmB,YAAY;AAAA,IAC/C,YAAY,eAAe,YAAY;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,WAAW,cAAc,cAAc,eAAe;AAAA,EACxD;AAAA;;;ACjFF,uBAAS,8BAAY;AAErB,qBAAS;AACT,cAAS;;;ACiCT,IAAM,QAAQ,IAAI,IAChB,OAAO,QAAQ;AAAA,EACb,WAAW;AAAA,EACX,cAAc;AAAA,EACd,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AAAA,EACf,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,aAAa;AAAA,EACb,SAAS;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AAAA,EACb,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,eAAe;AAAA,EACf,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,MAAM;AAAA,EACN,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,KAAK;AAAA,EACL,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AACf,CAAC,CACH;AAEA,IAAM,MAAM;AACZ,IAAM,WAAW;AACjB,IAAM,YACJ;AAGF,IAAM,iBAAiB,IAAI,IAAI;AAAA,EAC7B,CAAC,IAAI,IAAI,GAAG;AAAA,EACZ,CAAC,OAAO,IAAI,GAAG;AAAA,EACf,CAAC,QAAQ,IAAI,GAAG;AAAA,EAChB,CAAC,OAAO,KAAK,IAAI,KAAK,GAAG;AAAA,EACzB,CAAC,QAAQ,CAAC;AACZ,CAAC;AAED,IAAM,QAAQ,CAAC,UAA0B,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,CAAC;AAEvE,IAAM,UAAU,CAAC,WAAyB;AAAA,EACxC,MAAM,OACJ,OAAO,UAAU,IACb,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,QAAQ,OAAO,EAAE,KAAK,EAAE,IACtD;AAAA,EACN,MAAM,UAAU,CAAC,UACf,OAAO,SAAS,KAAK,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI;AAAA,EAC9D,OAAO;AAAA,IACL,OAAO,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI;AAAA,IACxC,MAAM,QAAQ,CAAC;AAAA,IACf,OAAO,QAAQ,CAAC;AAAA,IAChB,KAAK,QAAQ,CAAC;AAAA,EAChB;AAAA;AAGF,IAAM,iBAAiB,CAAC,UAAoC;AAAA,EAC1D,IAAI,MAAM,YAAY,MAAM,QAAQ;AAAA,IAClC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE;AAAA,EAC9B;AAAA,EACA,MAAM,QAAQ,UAAU,KAAK,KAAK,GAAG;AAAA,EACrC,OAAO,OAAO,UAAU,YACpB,OACA,EAAE,OAAO,MAAM,QAAQ,IAAI,YAAY,GAAG,OAAO,OAAO,MAAM,KAAK,EAAE;AAAA;AAI3E,IAAM,gBAAgB,CAAC,UAAwC;AAAA,EAC7D,MAAM,QAAQ,SAAS,KAAK,KAAK,GAAG;AAAA,EACpC,IAAI,OAAO,SAAS,aAAa,MAAM,SAAS,WAAW;AAAA,IACzD,OAAO;AAAA,EACT;AAAA,EACA,OAAO,cAAc,IAAI,WAAW,SAAS,MAAM,KAAK,MAAM,GAAG;AAAA,EACjE,MAAM,SAAS,YACZ,MAAM,SAAS,EACf,OAAO,OAAO,EACd,IAAI,cAAc;AAAA,EAErB,MAAM,cACJ,cAAc,aAAa,OAAO,WAAW,IAAI,OAAO,IAAI,IAAI;AAAA,EAClE,MAAM,QACJ,cAAc,YAAY,cAAc,eAAe,UAAU,KAAK,CAAC;AAAA,EACzE,OAAO,OAAO,QAAQ,UAAU,QAAQ;AAAA,EACxC,IACE,UAAU,aACV,UAAU,QACV,KAAK,SAAS,KACd,CAAC,SACD,CAAC,UACD,CAAC,OACD;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA,UAAU,CAAC,OAAO,QAAQ,KAAK;AAAA,IAC/B,MAAM,MAAM,KAAK,YAAY;AAAA,EAC/B;AAAA;AAIF,IAAM,SAAS,CAAC,WAAsB,SACpC,UAAU,SAAS,MAAO,UAAU,QAAQ,MAAO,OAAO,UAAU;AAGtE,IAAM,aAAa,CAAC,cAAiC;AAAA,EACnD,MAAM,UACJ,UAAU,SAAS,eAAe,IAAI,UAAU,IAAI,KAAK,KAAK;AAAA,EAChE,QAAS,UAAU,MAAO,OAAO;AAAA;AAInC,IAAM,SAAS,CAAC,WACd,MACE,UAAU,YAAY,QAAQ,SAAS,QAAQ,WAAW,IAAI,OAAO,KACvE;AAGF,IAAM,SAAS,CAAC,YACd,WAAW,UAAU,UAAU,UAAU,UAAU,SAAS,UAAU;AAExE,IAAM,aAAa,EAChB,KAAK,OAAO,OACb,WACU;AAAA,EACV;AAAA,EACA,MAAM,OAAO,IAAI;AAAA,EACjB,OAAO,OAAO,KAAK;AAAA,EACnB,KAAK,OAAO,GAAG;AACjB;AAEA,IAAM,UAAU,CAAC,KAAa,YAAoB,cAAsB;AAAA,EACtE,MAAM,UAAU,IAAI,KAAK,IAAI,IAAI,YAAY,CAAC,KAAK;AAAA,EACnD,MAAM,UAAU,CAAC,WAA2B;AAAA,IAC1C,MAAM,KAAK,SAAS,MAAM,MAAM;AAAA,IAChC,OAAO,YAAa,SAAS,IAAK,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAAA;AAAA,EAE1E,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC;AAAA;AAG5C,IAAM,UAAU,CAAC,KAAa,OAAe,UAAkB;AAAA,EAC7D,IAAI,QAAQ,SAAS,GAAG;AAAA,IACtB,MAAM,OAAO,SAAS,QAAQ;AAAA,IAC9B,OAAO,CAAC,MAAM,MAAM,IAAI;AAAA,EAC1B;AAAA,EACA,OAAO,KAAK,OAAO,QAAQ,QAAQ,KAAK,GAAG,GAAG;AAAA,EAC9C,MAAM,QAAQ,IAAI,QAAQ;AAAA,EAC1B,OAAO;AAAA,IACL,MAAM,QAAQ;AAAA,IACd,QAAQ,QAAQ;AAAA,IAChB,OAAO,QAAQ;AAAA,EACjB;AAAA;AAIF,IAAM,YAAY,CAAC,WAAmB,GAAW,MAAc;AAAA,EAC7D,MAAM,KAAK,YAAY,eAAe,IAAI,eAAe,MAAM;AAAA,EAC/D,MAAM,KAAK,YAAY,eAAe,IAAI,eAAe,MAAM;AAAA,EAC/D,MAAM,KAAK,YAAY,eAAe,IAAI,cAAc,MAAM;AAAA,EAC9D,OAAO;AAAA,IACL,eAAe,IAAI,eAAe,IAAI,eAAe;AAAA,IACrD,gBAAgB,IAAI,eAAe,IAAI,eAAe;AAAA,IACtD,gBAAgB,IAAI,eAAe,IAAI,cAAc;AAAA,EACvD;AAAA;AAIF,IAAM,UAAU,CAAC,WAAmB,GAAW,MAAc;AAAA,EAC3D,MAAM,UAAU,MAAM;AAAA,EACtB,MAAM,QAAQ,QAAS;AAAA,EACvB,MAAM,MAAM,YAAY,MAAM;AAAA,EAC9B,MAAM,KAAK,KAAK,IAAI;AAAA,EACpB,MAAM,KAAK,KAAK,IAAI;AAAA,EACpB,MAAM,OAAO,CAAC,MACZ,KAAK,IAAI,UAAU,KAAK,KAAK,MAAM,IAAI,MAAM;AAAA,EAC/C,MAAM,IAAI,KAAK,EAAE,IAAI;AAAA,EACrB,MAAM,IAAI,YAAY,QAAQ,UAAU,MAAM,IAAI,YAAY;AAAA,EAC9D,MAAM,IAAI,KAAK,EAAE,IAAI;AAAA,EAErB,MAAM,MACJ,oBAAoB,IAAI,sBAAsB,IAAI,sBAAsB;AAAA,EAC1E,MAAM,MACJ,sBAAsB,IAAI,qBAAqB,IAAI,uBAAuB;AAAA,EAC5E,MAAM,MACJ,uBAAuB,IAAI,uBAAuB,IAAI,oBAAoB;AAAA,EAC5E,OAAO;AAAA,IACL,qBAAqB,MACnB,oBAAoB,MACpB,qBAAqB;AAAA,IACvB,sBAAsB,MACpB,qBAAqB,MACrB,sBAAsB;AAAA,IACxB,sBAAsB,MACpB,sBAAsB,MACtB,qBAAqB;AAAA,EACzB;AAAA;AAIF,IAAM,cAAc,CAAC,WAAmB,QAAgB,QAAgB;AAAA,EACtE,MAAM,UAAW,MAAM,KAAK,KAAM;AAAA,EAClC,OAAO;AAAA,IACL;AAAA,IACA,SAAS,KAAK,IAAI,OAAO;AAAA,IACzB,SAAS,KAAK,IAAI,OAAO;AAAA,EAC3B;AAAA;AAMF,IAAM,aAAa,CAAC,cAClB,MAAM,OAAO,WAAW,GAAG,IAAI,GAAG;AAEpC,IAAM,MAAiB,EAAE,KAAK,OAAO,OAAO,WAAW;AAAA,EACrD;AAAA,EACA,MAAM,WAAW,IAAI;AAAA,EACrB,OAAO,WAAW,KAAK;AAAA,EACvB,KAAK,WAAW,GAAG;AACrB;AAGA,IAAM,cACJ,CACE,YAEF,EAAE,KAAK,GAAG,IAAI,UAAU;AAAA,EACtB,OAAO,MAAM,GAAG,QAAQ,GAAG,OAAO,KAAK,QACrC,WAAW,GAAG,GACd,MAAM,OAAO,GAAG,GAAG,IAAI,GAAG,GAC1B,MAAM,OAAO,GAAG,GAAG,IAAI,GAAG,CAC5B;AAAA,EACA,OAAO,EAAE,OAAO,MAAM,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,GAAG,KAAK,MAAM,GAAG,EAAE;AAAA;AAG5E,IAAM,MAAM,YAAY,OAAO;AAG/B,IAAM,aAAa,IAAI,IAAuB;AAAA,EAC5C,CAAC,OAAO,GAAG;AAAA,EACX,CAAC,QAAQ,GAAG;AAAA,EACZ,CAAC,OAAO,YAAY,OAAO,CAAC;AAAA,EAC5B;AAAA,IACE;AAAA,IACA,EAAE,WAAW,GAAG,IAAI,UAClB,WACE,QAAQ,OAAO,WAAW,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC,GAC9D,KACF;AAAA,EACJ;AAAA,EACA;AAAA,IACE;AAAA,IACA,EAAE,WAAW,QAAQ,MAAM,UACzB,WACE,QACE,GAAG,YACD,OAAO,WAAW,GAAG,GACrB,OAAO,QAAQ,GAAG,GAClB,WAAW,GAAG,CAChB,CACF,GACA,KACF;AAAA,EACJ;AAAA,EACA;AAAA,IACE;AAAA,IACA,EAAE,WAAW,GAAG,IAAI,UAClB,WACE,UAAU,OAAO,WAAW,CAAC,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC,GAC9D,KACF;AAAA,EACJ;AAAA,EACA;AAAA,IACE;AAAA,IACA,EAAE,WAAW,QAAQ,MAAM,UACzB,WACE,UACE,GAAG,YACD,OAAO,WAAW,CAAC,GACnB,OAAO,QAAQ,GAAG,GAClB,WAAW,GAAG,CAChB,CACF,GACA,KACF;AAAA,EACJ;AAAA,EACA,CAAC,OAAO,GAAG;AAAA,EACX,CAAC,QAAQ,GAAG;AACd,CAAC;AAGM,IAAM,aAAa,CAAC,UAA+B;AAAA,EACxD,MAAM,QAAQ,MAAM,KAAK,EAAE,YAAY;AAAA,EACvC,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,GAAG,QAAQ;AAAA,EACzD,IAAI,QAAQ,WAAW;AAAA,IACrB,OAAO,QAAQ,GAAG;AAAA,EACpB;AAAA,EACA,MAAM,SAAS,cAAc,KAAK;AAAA,EAClC,MAAM,UAAU,UAAU,WAAW,IAAI,OAAO,IAAI;AAAA,EACpD,OAAO,UAAU,UACb,QACE,OAAO,UACP,OAAO,UAAU,YAAY,IAAI,MAAM,OAAO,OAAO,OAAO,CAAC,CAAC,CAChE,IACA;AAAA;AAMN,IAAM,eACJ;AAOK,IAAM,aAAa,CAAC,UACzB,WAAW,KAAK,MAAM,QAAQ,aAAa,KAAK,MAAM,KAAK,CAAC;AAGvD,IAAM,YAAY,CAAC,OAAa,aAAyB;AAAA,EAC9D,MAAM,MAAM,CAAC,KAAa,WACxB,MAAM,MAAM,QAAQ,UAAU,IAAI,MAAM;AAAA,EAC1C,OAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM,IAAI,MAAM,MAAM,SAAS,IAAI;AAAA,IACnC,OAAO,IAAI,MAAM,OAAO,SAAS,KAAK;AAAA,IACtC,KAAK,IAAI,MAAM,KAAK,SAAS,GAAG;AAAA,EAClC;AAAA;AAIK,IAAM,YAAY,CAAC,UACxB,SAAS,OAAO,MAAM,GAAG,IACzB,SAAS,OAAO,MAAM,KAAK,IAC3B,SAAS,OAAO,MAAM,IAAI;AAMrB,IAAM,gBAAgB,CAAC,YAAkB,eAA6B;AAAA,EAC3E,MAAM,MAAM,UAAU,UAAU,YAAY,UAAU,CAAC;AAAA,EACvD,MAAM,SAAS,UAAU,UAAU;AAAA,EACnC,QAAQ,KAAK,IAAI,KAAK,MAAM,IAAI,SAAS,KAAK,IAAI,KAAK,MAAM,IAAI;AAAA;;;ACze5D,IAAM,UAAU;AAAA,EACrB,MAAM,EAAE,MAAM,wBAAwB,OAAO,uBAAuB;AAAA,EACpE,OAAO,EAAE,MAAM,uBAAuB,OAAO,uBAAuB;AAAA,EACpE,QAAQ,EAAE,MAAM,uBAAuB,OAAO,sBAAsB;AAAA,EACpE,MAAM,EAAE,MAAM,uBAAuB,OAAO,sBAAsB;AAAA,EAClE,QAAQ,EAAE,MAAM,sBAAsB,OAAO,sBAAsB;AAAA,EACnE,KAAK,EAAE,MAAM,uBAAuB,OAAO,sBAAsB;AAAA,EACjE,MAAM,EAAE,MAAM,uBAAuB,OAAO,uBAAuB;AACrE;AAGO,IAAM,oBAAoB;AAO1B,IAAM,aAAa;AAAA,EACxB,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,iBAAiB;AAAA,EACnB;AAAA,EACA,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,iBAAiB;AAAA,EACnB;AACF;AAEA,IAAM,QAAQ;AAGd,IAAM,MAAM,CAAC,UACX,WAAW,KAAK,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,EAAE;AAGtD,IAAM,WAAW,CACtB,MACA,SACS,IAAI,WAAW,MAAM,KAAK;AAQ9B,IAAM,UAAU,CAAC,MAAY,SAA4B;AAAA,EAC9D,MAAM,SAAS,UAAU,MAAM,SAAS,MAAM,YAAY,CAAC;AAAA,EAC3D,MAAM,UAAU,cAAc,IAAI,KAAK,GAAG,MAAM;AAAA,EAChD,OAAO,WAAW,qBAChB,WAAW,cAAc,SAAS,MAAM,KAAK,GAAG,MAAM,IACpD,QACA,WAAW,MAAM;AAAA;AAIhB,IAAM,aAAa,CAAC,MAAc,SAA4B;AAAA,EACnE,MAAM,QAAQ,WAAW,IAAI;AAAA,EAC7B,OAAO,QAAQ,QAAQ,OAAO,IAAI,IAAI;AAAA;AASjC,IAAM,iBAAiB,CAAC,UAC7B,OAAO,OAAO,SAAS,KAAK;AAK9B,IAAM,YAAY;AAGlB,IAAM,YAAY,CAAC,OAAe,aAChC,UAAU,KAAK,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,IAAI;AAGhD,IAAM,gBAAgB,CAAC,OAAe,SACpC,eAAe,KAAK,IAChB,QAAQ,OAAO,QACf,UAAU,OAAO,QAAQ,KAAK,KAAK;AAGzC,IAAM,kBAAkB,CAAC,UACvB,SAAS,UAAU,KAAK,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,IAAI;AAEzD,IAAM,QAAQ;AAAA,EACZ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AACN;AAEA,IAAM,YAAY,CAAC,UAA0B,KAAK,UAAU,KAAK;AAEjE,IAAM,qBAAqB,CAAC,UAC1B,OAAO,UAAU,KAAK;AAExB,IAAM,WAAW,CAAC,MAAc,UAC9B,QAAQ,CAAC,KAAK,SAAS,QAAQ,IAAI,CAAC;AAQtC,IAAM,eAAe,CACnB,OACA,YAEA;AAAA,EACE,qBAAqB,QAAQ;AAAA,EAC7B,gCAAgC,WAAW,QAAQ,QAAQ,OAAO;AAAA,EAClE,GAAG,SAAS,kBAAkB,QAAQ,MAAM;AAAA,EAC5C,GAAG,SACD,6BACA,QAAQ,SAAS,WAAW,QAAQ,QAAQ,OAAO,IAAI,IACzD;AAAA,EACA,GAAG,SAAS,sBAAsB,gBAAgB,MAAM,YAAY,KAAK,CAAC;AAAA,EAC1E,GAAG,SACD,4BACA,MAAM,iBAAiB,QACnB,mBAAmB,MAAM,gBAAgB,KAAK,IAC9C,IACN;AAAA,EACA,qBAAqB,QAAQ;AAC/B,EACG,OAAO,OAAO,EACd,KAAK;AAAA,CAAI;AAEd,IAAM,eAAe,CACnB,OACA,YACW;AAAA,EAKX,MAAM,SAAS;AAAA,IACb,qBAAqB,QAAQ;AAAA,IAC7B,gCAAgC,WAAW,QAAQ,QAAQ,MAAM;AAAA,IACjE,GAAG,SAAS,kBAAkB,QAAQ,MAAM;AAAA,IAC5C,GAAG,SACD,6BACA,QAAQ,SAAS,WAAW,QAAQ,QAAQ,MAAM,IAAI,IACxD;AAAA,IACA,GAAG,SAAS,sBAAsB,gBAAgB,MAAM,YAAY,IAAI,CAAC;AAAA,IACzE,GAAG,SACD,4BACA,MAAM,iBAAiB,OACnB,mBAAmB,MAAM,gBAAgB,IAAI,IAC7C,IACN;AAAA,EACF,EAAE,OAAO,OAAO;AAAA,EAChB,OAAO;AAAA,EACP,OAAO,KAAK;AAAA,CAAI;AAAA;AAAA;AAAA;AAYX,IAAM,gBAAgB,CAC3B,WACkB;AAAA,EAClB,MAAM,cAAc,MAAM,OAAO,MAAM,MAAM;AAAA,EAC7C,OAAO,cAAc,MAAM,OAAO,OAAO,OAAO;AAClD;AAGO,IAAM,gBAAgB,CAC3B,UAEA,MAAM,SACF;AAAA,EACE,MAAM,cAAc,MAAM,QAAQ,MAAM;AAAA,EACxC,OAAO,cAAc,MAAM,QAAQ,OAAO;AAC5C,IACA;AAGC,IAAM,gBAAgB,CAAC,UAC5B,MAAM,MAAM;AAQP,IAAM,gBAAgB,CAAC,UAA2C;AAAA,EACvE,MAAM,SAAS,cAAc,KAAK;AAAA,EAClC,MAAM,SAAS,cAAc,KAAK;AAAA,EAClC,MAAM,OAAO,aAAa,OAAO;AAAA,IAC/B,QAAQ,OAAO;AAAA,IACf,QAAQ,QAAQ,SAAS;AAAA,IACzB,QAAQ,MAAM,MAAM;AAAA,EACtB,CAAC;AAAA,EACD,MAAM,OAAO,aAAa,OAAO;AAAA,IAC/B,QAAQ,OAAO;AAAA,IACf,QAAQ,QAAQ,QAAQ;AAAA,EAC1B,CAAC;AAAA,EAED,OAAO;AAAA;AAAA,EAEP;AAAA;AAAA,EAEA;AAAA;AAYF,IAAM,QAAQ,CAAC,SAAS,MAAM;AAO9B,IAAM,eAAe,CACnB,MACA,OACA,YACmB;AAAA,EACnB,IAAI,OAAO,UAAU,aAAa,MAAM,UAAU,MAAM,MAAM;AAAA,IAC5D,OAAO,CAAC,EAAE,MAAM,SAAS,OAAO,MAAM,MAAM,CAAC;AAAA,EAC/C;AAAA,EACA,OAAO,MAAM,QAAQ,CAAC,SAAS;AAAA,IAC7B,MAAM,QAAQ,QAAQ;AAAA,IACtB,OAAO,UAAU,YACb,CAAC,IACD,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,GAAG,SAAS,OAAO,MAAM,CAAC;AAAA,GACtD;AAAA;AAGH,IAAM,kBAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AASO,IAAM,uBAAuB,CAClC,WACmB;AAAA,EACnB,QAAQ,UAAU;AAAA,EAClB,MAAM,UAAU,OAAO,IAAI,GAAG,WAAW,CAAC;AAAA,EAC1C,OAAO;AAAA,IACL,GAAG,aAAa,CAAC,SAAS,QAAQ,GAAG,MAAM,QAAQ,IAAI;AAAA,IACvD,GAAI,MAAM,WAAW,YACjB,CAAC,IACD,CAAC,EAAE,MAAM,CAAC,SAAS,QAAQ,GAAG,SAAS,MAAM,OAAO,MAAM,OAAO,CAAC;AAAA,IACtE,GAAG,aAAa,CAAC,SAAS,YAAY,GAAG,MAAM,YAAY,KAAK;AAAA,IAChE,GAAG,gBAAgB,QAAQ,CAAC,QAAQ;AAAA,MAClC,MAAM,QAAQ,QAAQ;AAAA,MACtB,OAAO,UAAU,YACb,CAAC,IACD;AAAA,QACE;AAAA,UACE,MAAM,CAAC,OAAO,MAAM,WAAW,GAAG;AAAA,UAClC,SAAS,QAAQ;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,KACL;AAAA,EACH,EAAE,OAAO,CAAC,YAAY,CAAC,WAAW,QAAQ,KAAK,CAAC;AAAA;;;ACjT3C,IAAM,qBAAqB,CAChC,QACA,MAAyB,QAAQ,QACd;AAAA,EACnB,QAAQ,eAAe;AAAA,EACvB,IAAI,WAAW,QAAQ,MAAM;AAAA,IAC3B,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,oBAAoB,YAAY,GAAG;AAAA,EAChD,IAAI,CAAC,MAAM;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA,OACF;AAAA,IACH,YAAY;AAAA,SACP;AAAA,MACH,SAAS,KAAK,WAAW,SAAS,KAAK;AAAA,IACzC;AAAA,EACF;AAAA;;;AC7BF,yBAAS;AACT;AAEA;AAEA,iBAAS;AACT,cAAS;AAST,IAAM,qBAAqB,IAAE,OAAO;AAAA,EAClC,SAAS,IAAE,OACT,IAAE,OAAO,GACT,IAAE,MAAM;AAAA,IACN,IAAE,OAAO;AAAA,IACT,IAAE,OAAO,EAAE,SAAS,IAAE,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,WAAW,OAAO,OAAO;AAAA,EACxE,CAAC,CACH;AACF,CAAC;AAED,IAAI;AAYG,IAAM,qBAAqB,MAA8B;AAAA,EAC9D,IAAI,CAAC,SAAS;AAAA,IACZ,MAAM,OAAO,YAAY;AAAA,IACzB,QAAQ,YAAY,mBAAmB,MACrC,KAAK,MAAM,cAAa,OAAK,MAAM,cAAc,GAAG,OAAO,CAAC,CAC9D;AAAA,IACA,UAAU,OAAO,YACf,OAAO,QAAQ,OAAO,EAAE,IAAI,EAAE,SAAS,YAAY;AAAA,MACjD,OAAK,SAAS,OAAO,EAAE,QAAQ,QAAQ,EAAE;AAAA,MACzC,OAAK,MAAM,MAAM,EAAE,QAAQ,QAAQ,EAAE;AAAA,IACvC,CAAC,CACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAkBT,IAAM,aAAa,CACjB,YACuD;AAAA,EACvD,IAAI;AAAA,EACJ,OAAO,OAAO,SAAS;AAAA,IACrB,SAAS,WAAW,YAAY,KAAK;AAAA,SAChC;AAAA,MACH,OAAO,mBAAmB;AAAA,MAC1B,aAAa;AAAA,IACf,CAAC;AAAA,IACD,QAAQ,sBAAsB;AAAA,IAC9B,IAAI;AAAA,MACF,OAAO,MAAM,KAAK,OAA8B,IAAI;AAAA,cACpD;AAAA,MACA,MAAM,oBAAoB;AAAA;AAAA;AAAA;AAWzB,IAAM,qBAAqB,MAA4C;AAAA,EAC5E,MAAM,OAAO,WAAW,CAAC,CAAC;AAAA,EAC1B,OAAO,OAAO,SAAiB;AAAA,IAC7B,MAAM,SAAS,MAAM,KAAK,IAAI;AAAA,IAC9B,OAAO,QAAQ,WAAW;AAAA;AAAA;AAkBvB,IAAM,4BAAuD,MAAM;AAAA,EACxE,MAAM,OAAO,WAAW;AAAA,IACtB,SAAS,OAAK,OAAO,GAAG,2BAA2B;AAAA,IACnD,gBAAgB;AAAA,EAClB,CAAC;AAAA,EACD,OAAO,OAAO,SAAiB;AAAA,IAC7B,MAAM,SAAS,MAAM,KAAK,IAAI;AAAA,IAC9B,OAAO,OAAO,WAAW;AAAA;AAAA;;;AJwDtB,MAAM,8BAA8B,WAAW;AAAA,EAC3C;AAAA,EAET,WAAW,CAAC,YAAwB,QAAsB;AAAA,IACxD,MAAM,UAAU;AAAA,IAChB,KAAK,OAAO;AAAA,IACZ,KAAK,SAAS;AAAA;AAElB;AAiBA,IAAM,qBAAqB,0BAA0B;AASrD,IAAM,wBAAwB,IAAE,YAAY;AAAA,EAC1C,OAAO,IAAE,YAAY,EAAE,OAAO,IAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS;AACnE,CAAC;AAED,IAAM,gBAAgB,CAAC,YACrB,OAAO,YAAY;AAOrB,IAAM,eAAe,CAAC,UAAiD;AAAA,EACrE,GAAG,MAAM,KAAK,OAAO,aAAa;AAAA,EAClC,GAAI,MAAM,SAAS,sBAAsB,MAAM,KAAK,MAAM,GAAG,CAAC,IAAI,CAAC;AACrE;AAGA,IAAM,WAAW,CAAC,eAChB,WAAW,QAAQ,OAAO;AAQ5B,IAAM,eAAe,CACnB,OACA,YACiB;AAAA,EACjB,MAAM,OAAO;AAAA,EACb,MAAM,UAAU,sBACd,MAAM,OAAO,IAAI,CAAC,WAAW;AAAA,IAC3B,SAAS,MAAM;AAAA,IACf,MAAM,aAAa,KAAK;AAAA,EAC1B,EAAE,GACF,EAAE,MAAM,QAAQ,QAAQ,OAAO,CACjC;AAAA,EACA,OAAO,mBAAmB,OAAO,EAAE,SAAS,QAAQ,CAAC,EAClD,IAAI,CAAC,YAAY,WAAW;AAAA,OACxB;AAAA,IACH,QAAQ,QAAQ,QAAQ;AAAA,IACxB,MAAM,QAAQ,QAAQ;AAAA,EACxB,EAAE,EACD,SACC,CAAC,GAAG,MACF,OAAO,QAAQ,EAAE,UAAU,CAAC,IAAI,OAAO,QAAQ,EAAE,UAAU,CAAC,KAC5D,SAAS,CAAC,IAAI,SAAS,CAAC,CAC5B;AAAA;AAGJ,IAAM,cACJ;AAOF,IAAM,mBAAmB,CACvB,QACA,eACiB;AAAA,EACjB,MAAM,UAAU,qBAAqB,MAAM;AAAA,EAC3C,IAAI,QAAQ,WAAW,GAAG;AAAA,IACxB,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,SACJ,cAAc,aAAW,UAAU,IAC/B,cAAa,YAAY,OAAO,IAChC;AAAA,EACN,MAAM,UAAU,sBACd,QAAQ,IAAI,CAAC,aAAa;AAAA,IACxB,SAAS,GAAG,KAAK,UAAU,QAAQ,KAAK,2BACtC,QAAQ,KAAK,OAAO,QAChB,wCACA;AAAA,IAEN,MAAM,QAAQ;AAAA,EAChB,EAAE,GACF;AAAA,IACE,MAAM;AAAA,IACN,MAAM,cAAc;AAAA,IACpB;AAAA,EACF,CACF;AAAA,EACA,OAAO,QAAQ,IAAI,CAAC,YAAY,WAAW;AAAA,OACtC;AAAA,IACH,UAAU;AAAA,IACV,YAAY,QAAQ,QAAQ,UACxB,iBAAiB,OAAO,KAAK,OAAO,EAAE,KAAK,IAAI,sBAAsB,iBACrE,oBAAoB;AAAA,EAC1B,EAAE;AAAA;AAOG,IAAM,aAAa,OACxB,MAMA,UAAqC,CAAC,MACR;AAAA,EAC9B,MAAM,aAAa,eAAe,IAAI;AAAA,EAEtC,IAAI;AAAA,EACJ,IAAI,YAAY;AAAA,IACd,IAAI;AAAA,MACF,MAAM,MAAM,mBAAmB,UAAU;AAAA,MACzC,OAAO,OAAO;AAAA,MAId,MAAM,IAAI,WAAW;AAAA,QACnB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,SAAS,0BAA2B,MAAgB;AAAA,QACpD,UAAU;AAAA,MACZ,CAAC;AAAA;AAAA,IAKH,IAAI,QAAQ,WAAW;AAAA,MACrB,MAAM,IAAI,WAAW;AAAA,QACnB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,SAAS,GAAG,UAAS,UAAU;AAAA,QAC/B,UAAU;AAAA,QACV,YACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAGA,MAAM,QAAQ,sBAAsB,UAAU,GAAG;AAAA,EACjD,MAAM,uBACJ,MAAM,WAAW,MAAM,KAAK,OAAO,UAAU;AAAA,EAE/C,MAAM,SAAS,kBAAkB,UAAU,OAAO,CAAC,CAAC;AAAA,EACpD,IAAI,CAAC,OAAO,SAAS;AAAA,IAEnB,MAAM,SACJ,cAAc,aAAW,UAAU,IAC/B,cAAa,YAAY,OAAO,IAChC;AAAA,IACN,MAAM,cAAc,aAAa,OAAO,OAAO;AAAA,MAC7C,MAAM,cAAc;AAAA,MACpB;AAAA,IACF,CAAC;AAAA,IACD,OAAO,UAAU,QAAQ;AAAA,IACzB,MAAM,UAAU,SAAS;AAAA,MACvB,MAAM;AAAA,MACN,MAAM,cAAc;AAAA,MACpB,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IAGA,MAAM,aAAa,KAAK,IAAI,CAAC,MAAM,OAAO,EAAE,SAAS,EAAE,KAAK;AAAA,CAAI;AAAA,IAChE,MAAM,SACJ,KAAK,SAAS,IACV;AAAA,SACK;AAAA,MACH,SAAS,GAAG,QAAQ;AAAA,EAAY,KAAK;AAAA,EAAiC;AAAA,IACxE,IACA;AAAA,IACN,MAAM,IAAI,sBAAsB,QAAQ,WAAW;AAAA,EACrD;AAAA,EAKA,MAAM,SAAS,mBAAmB,OAAO,IAAI;AAAA,EAC7C,MAAM,OAAO,OAAO,WAAW,QAAQ,QAAQ,QAAQ;AAAA,EAIvD,MAAM,YAAY,OAAO,IAAI,GAAG,WAAW,QAAQ,IAAI;AAAA,EAEvD,OAAO;AAAA,IACL,QAAQ;AAAA,SACH;AAAA,MACH,YAAY,OACR;AAAA,WACK,OAAO;AAAA,QACV,SAAS,KAAK,OAAO,WAAW,SAAS,KAAK;AAAA,MAChD,IACA,OAAO;AAAA,MACX,KAAK,KAAK,OAAO,KAAK,IAAI,KAAK,OAAO,IAAI,IAAI,SAAS,UAAU,EAAE;AAAA,IACrE;AAAA,IACA;AAAA,IACA,aAAa,iBAAiB,QAAQ,UAAU;AAAA,IAChD;AAAA,EACF;AAAA;",
|
|
234
|
-
"debugId": "
|
|
234
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,gBAAgB;AAAA,EACnC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,YAAY;AAAA,EAC9D,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,gBAAgB;AAChC;;;AC1JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,2BAA2B;AAAA,EAC9C,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,QAAQ,cAAc,cAAc;AAAA,EAC/D,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,mBAAmB;AACnC;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,kBAAkB;AAAA,EACrC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,QAAQ,cAAc,aAAa;AAAA,EAC9D,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,cAAc;AAC9B;;;AC1JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,iBAAiB;AAAA,EACpC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,UAAU,cAAc,gBAAgB;AAAA,EACnE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,oBAAoB;AACpC;;;AC9JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,kBAAkB;AAAA,EACrC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,cAAc;AAAA,EAChE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,kBAAkB;AAClC;;;AC3JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,kBAAkB;AAAA,EACrC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,eAAe;AAAA,EACjE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,gBAAgB;AAChC;;;AC5JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,wBAAwB;AAAA,EAC3C,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,WAAW,cAAc,kBAAkB;AAAA,EACtE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,mBAAmB;AACnC;;;AC9JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,uBAAuB;AAAA,EAC1C,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,UAAU,cAAc,uBAAuB;AAAA,EAC1E,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,oBAAoB;AACpC;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,oBAAoB;AAAA,EACvC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,UAAU,cAAc,eAAe;AAAA,EAClE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,iBAAiB;AACjC;;;AC9JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,eAAe;AAAA,EAClC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,QAAQ,cAAc,aAAa;AAAA,EAC9D,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,cAAc;AAC9B;;;AC5JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,iBAAiB;AAAA,EACpC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,eAAe;AAAA,EACjE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,gBAAgB;AAChC;;;AC5JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,mBAAmB;AAAA,EACtC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,UAAU,cAAc,cAAc;AAAA,EACjE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,iBAAiB;AACjC;;;AC9JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,eAAe;AAAA,EAClC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,OAAO,cAAc,YAAY;AAAA,EAC5D,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,WAAW;AAC3B;;;AC1JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,iBAAiB;AAAA,EACpC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,QAAQ,cAAc,gBAAgB;AAAA,EACjE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,YAAY;AAC5B;;;AC3JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,oBAAoB;AAAA,EACvC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,iBAAiB;AAAA,EACnE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,mBAAmB;AACnC;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,qBAAqB;AAAA,EACxC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,mBAAmB;AAAA,EACrE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,kBAAkB;AAClC;;;AC5JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,mBAAmB;AAAA,EACtC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,UAAU,cAAc,sBAAsB;AAAA,EACzE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,iBAAiB;AACjC;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,oBAAoB;AAAA,EACvC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,UAAU,cAAc,eAAe;AAAA,EAClE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,mBAAmB;AACnC;;;AC5JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,WAAW;AAAA,EAC9B,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,MAAM,cAAc,MAAM;AAAA,EACrD,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,WAAW;AAC3B;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,QAAQ;AAAA,EAC3B,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,MAAM,cAAc,UAAU;AAAA,EACzD,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,UAAU;AAC1B;;;AC5JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,uBAAuB;AAAA,EAC1C,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,QAAQ,cAAc,gBAAgB;AAAA,EACjE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,iBAAiB;AACjC;;;AC9JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,qBAAqB;AAAA,EACxC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,gBAAgB;AAAA,EAClE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,iBAAiB;AACjC;;;AC5JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,qBAAqB;AAAA,EACxC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,oBAAoB;AAAA,EACtE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,iBAAiB;AACjC;;;AC7JO,IAAM,OAA0B;AAAA,EACrC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,mBAAmB;AAAA,EACtC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,UAAU,cAAc,gBAAgB;AAAA,EACnE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,eAAe;AAC/B;;;AC9JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,mBAAmB;AAAA,EACtC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,UAAU,cAAc,gBAAgB;AAAA,EACnE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,eAAe;AAC/B;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,kBAAkB;AAAA,EACrC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,WAAW;AAAA,EAC7D,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,oBAAoB;AACpC;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,qBAAqB;AAAA,EACxC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,QAAQ,cAAc,gBAAgB;AAAA,EACjE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,mBAAmB;AACnC;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,oBAAoB;AAAA,EACvC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,cAAc;AAAA,EAChE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,mBAAmB;AACnC;;;AC3JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,qBAAqB;AAAA,EACxC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,iBAAiB;AAAA,EACnE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,mBAAmB;AACnC;;;AC5JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,oBAAoB;AAAA,EACvC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,SAAS,cAAc,gBAAgB;AAAA,EAClE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,mBAAmB;AACnC;;;AC5JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,YAAY;AAAA,EAC/B,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,QAAQ,cAAc,eAAe;AAAA,EAChE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,YAAY;AAC5B;;;AC1JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,iBAAiB;AAAA,EACpC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,OAAO,cAAc,cAAc;AAAA,EAC9D,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,aAAa;AAC7B;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBACE;AAAA,IACF,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aACE;AAAA,IACF,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,qBAAqB;AAAA,EACxC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,QAAQ,cAAc,iBAAiB;AAAA,EAClE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,kBAAkB;AAClC;;;AC7JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cACE;AAAA,IACF,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,iBAAiB;AAAA,EACpC,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SACE;AAAA,IACF,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,YAAY,cAAc,YAAY;AAAA,EACjE,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,iBAAiB;AACjC;;;AC5JO,IAAM,OAA0B;AAAA,EACrC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,OAAO;AAAA,EAC1B,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,MAAM,cAAc,MAAM;AAAA,EACrD,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,OAAO;AACvB;;;AC1JO,IAAM,KAAwB;AAAA,EACnC,SAAS;AAAA,IACP,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,eAAe;AAAA,IACf,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,KAAK;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,SAAS,OAAO;AAAA,EAC1B,WAAW;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACP;AAAA,EACA,kBAAkB,EAAE,OAAO,MAAM,cAAc,MAAM;AAAA,EACrD,WAAW;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,SAAS;AAAA,IACT,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,aAAa;AAAA,EACf;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,QAAQ;AAAA,IACN,KAAK;AAAA,IACL,cAAc;AAAA,IACd,WAAW;AAAA,IACX,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,EACX;AAAA,EACA,KAAK,EAAE,OAAO,OAAO;AACvB;;;ACpGO,IAAM,WAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AACX;;;AC/EA,IAAM,gBAAgB,IAAI,IACxB,CAAC,GAAG,OAAO,KAAK,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,CACnE;AAGO,IAAM,cAAc,CACzB,WAEA,OAAO,SAAS;AAGX,IAAM,cAAc,CAAC,SAC1B,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI;AAcnC,IAAM,wBAAwB,CACnC,SACkB;AAAA,EAClB,IAAI,KAAK,mBAAmB,MAAM;AAAA,IAChC,OAAO;AAAA,EACT;AAAA,EACA,OAAO,KAAK,kBAAkB,KAAK;AAAA;AAe9B,IAAM,eAAe,CAAC,MAAc,SACzC,SAAS,KAAK,iBAAiB,KAAK,0BAA0B,KAAK,IAAI;AAMlE,IAAM,gBAAgB,CAC3B,cACA,MACA,SACW;AAAA,EACX,MAAM,SAAS,aAAa,MAAM,IAAI;AAAA,EACtC,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO;AAAA,EACT;AAAA,EACA,OAAO,iBAAiB,MAAM,SAAS,GAAG,SAAS;AAAA;AAW9C,IAAM,uBAAuB,CAClC,MACA,MACA,SAEA,QAAQ,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,IAAI,IACjD,cAAc,MAAM,MAAM,IAAI,IAC9B;AAQC,IAAM,eAAe,CAAC,OAAiB,SAA6B;AAAA,EAIzE,MAAM,QAAQ,MAAM,IAAI,YAAY;AAAA,EACpC,MAAM,UAAU,KAAK,QAAQ,KAC3B,CAAC,WACC,OAAO,SAAS,KAAK,iBAAiB,OAAO,KAAK,YAAY,MAAM,KACxE;AAAA,EACA,IAAI,SAAS;AAAA,IACX,OAAO,EAAE,QAAQ,QAAQ,MAAM,MAAM,MAAM,MAAM,CAAC,EAAE;AAAA,EACtD;AAAA,EACA,OAAO,EAAE,QAAQ,KAAK,eAAe,MAAM,MAAM;AAAA;AAa5C,IAAM,kBAAkB,CAC7B,KACA,KACA,SACG;AAAA,EACH,MAAM,OAAO,IAAI,MAAM,GAAG,IAAI,SAAS,IAAI,MAAM;AAAA,EAOjD,IAAI,KAAK,SAAS,IAAI,GAAG;AAAA,IACvB,MAAM,SAAS,GAAG,KAAK,MAAM,GAAG,EAAE,IAAI;AAAA,IACtC,OAAO;AAAA,MACL,SAAS,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI;AAAA,MACjD,SACE,KAAK,WAAW,QACZ,aAAa,OAAO,MAAM,GAAG,GAAG,IAAI,EAAE,KAAK,KAAK,GAAG,IACnD;AAAA,IACR;AAAA,EACF;AAAA,EAEA,IAAI,KAAK,WAAW,OAAO;AAAA,IACzB,MAAM,UAAU,KAAK,YAAY,GAAG;AAAA,IAKpC,IAAI,UAAU,KAAK,YAAY,GAAG,GAAG;AAAA,MAGnC,MAAM,SAAS,KAAK,MAAM,UAAU,CAAC,EAAE,YAAY;AAAA,MACnD,MAAM,UAAU,KAAK,QAAQ,KAC3B,CAAC,WAAW,OAAO,KAAK,YAAY,MAAM,MAC5C;AAAA,MACA,IAAI,SAAS;AAAA,QACX,OAAO;AAAA,UACL,SAAS,CAAC,QAAQ,IAAI;AAAA,UACtB,SAAS,GAAG,KAAK,MAAM,GAAG,OAAO,IAAI;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO,EAAE,SAAS,CAAC,KAAK,aAAa,GAAG,SAAS,IAAI;AAAA,EACvD;AAAA,EAEA,QAAQ,QAAQ,SAAS,aAAa,IAAI,MAAM,GAAG,GAAG,IAAI;AAAA,EAC1D,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,KAAK,KAAK,GAAG,EAAE;AAAA;AAoB/C,IAAM,mBAAmB,CAC9B,KACA,KACA,QACA,MACA,UAA6B,CAAC,MACnB;AAAA,EACX,IAAI,KAAK,WAAW,OAAO;AAAA,IACzB,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,SAAS,IAAI,MAAM;AAAA,IAC/C,MAAM,UAAU,KAAK,YAAY,GAAG;AAAA,IACpC,IAAI,UAAU,KAAK,YAAY,GAAG,GAAG;AAAA,MACnC,MAAM,SAAS,KAAK,MAAM,UAAU,CAAC,EAAE,YAAY;AAAA,MACnD,IAAI,KAAK,QAAQ,KAAK,CAAC,UAAU,MAAM,KAAK,YAAY,MAAM,MAAM,GAAG;AAAA,QACrE,OAAO,KAAK,MAAM,GAAG,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,OAAO,GAAG,QAAQ,SAAS;AAAA,EAC7B;AAAA,EACA,MAAM,SAAS,QAAQ,SAAS,MAAM,IAClC,SACC,QAAQ,KAAK,CAAC,SAAS,KAAK,YAAY,MAAM,OAAO,YAAY,CAAC,KACnE;AAAA,EACJ,OAAO,GAAG,UAAU;AAAA;AAWtB,IAAM,gCAAgC,CACpC,QACA,UACgB;AAAA,EAChB,MAAM;AAAA,EACN,SAAS,WAAW,oDAAoD,KAAK,wEAAwE,cAAc,IAAI,UAAU,KAAK,eAAe,IAAI;AAAA,EACzM,UAAU;AAAA,EACV,YAAY,yBAAyB;AACvC;AAUO,IAAM,kBAAkB,CAC7B,OACA,MACA,aACiB;AAAA,EACjB,MAAM,aAAa,IAAI,IACrB,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,KAAK,YAAY,CAAC,CACxD;AAAA,EACA,MAAM,cAAc,IAAI,IAAI,UAAU,SAAS,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;AAAA,EAC3E,MAAM,OAAO,IAAI;AAAA,EACjB,MAAM,cAA4B,CAAC;AAAA,EACnC,WAAW,QAAQ,OAAO;AAAA,IAKxB,MAAM,QAAQ,KAAK,OAAO,IAAI,MAAM,GAAG;AAAA,IACvC,MAAM,SAAS,MAAM,MAAM,YAAY,IAAI,MAAM,EAAE,IAAI,MAAM,KAAK,MAAM;AAAA,IACxE,MAAM,QAAQ,QAAQ,YAAY;AAAA,IAClC,IACE,WAAW,aACX,UAAU,KAAK,cAAc,YAAY,KACzC,CAAC,KAAK,IAAI,KAAK,GACf;AAAA,MACA,KAAK,IAAI,KAAK;AAAA,MACd,YAAY,KAAK,8BAA8B,QAAQ,IAAI,CAAC;AAAA,MAC5D;AAAA,IACF;AAAA,IACA,IACE,SACA,CAAC,KAAK,IAAI,KAAK,KACf,cAAc,IAAI,KAAK,KACvB,CAAC,WAAW,IAAI,KAAK,GACrB;AAAA,MACA,KAAK,IAAI,KAAK;AAAA,MACd,YAAY,KAAK;AAAA,QACf,MAAM;AAAA,QACN,SAAS,WAAW,qCAAqC,6DAA6D,KAAK,8BAA8B;AAAA,QACzJ,UAAU;AAAA,QACV,YAAY,gBAAgB;AAAA,MAC9B,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;;;AClST;AA8GA,IAAM,mBAAmB,CAAC,QACxB,IAAI,SAAS;AAOf,IAAM,WAAW;AAIjB,IAAM,eAAe;AAIrB,IAAM,gBAAgB;AASf,IAAM,WAAU,CAAC,SACtB,SACE,KACG,UAAU,KAAK,EACf,YAAY,EACZ,QAAQ,cAAc,EAAE,EACxB,QAAQ,UAAU,GAAG,GACxB,GACF,EAAE,QAAQ,eAAe,EAAE;AAG7B,IAAM,YAAY,CAAC,UACjB,SAAQ,SAAS,OAAO,GAAG,CAAC,KAAK;AAGnC,IAAM,iBAAgD;AAAA,EACpD,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV;AAGA,IAAM,aAA+B;AAAA,EACnC,aAAa,CAAC;AAAA,EACd,eAAe;AAAA,EACf,YAAY,EAAE,SAAS,OAAO,OAAO,MAAM;AAC7C;AAEA,IAAM,YAAY,CAAC,YAAwD;AAAA,EACzE,IAAI,QAAQ,SAAS,UAAU;AAAA,IAC7B,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA,IACL,aAAa,QAAQ,QAAQ;AAAA,IAG7B,eACE,QAAQ,SAAS,YAAY,QAAQ,QAAQ,QAAQ;AAAA,IACvD,YAAY,QAAQ,QAAQ;AAAA,EAC9B;AAAA;AAQF,IAAM,kBAAkB,CACtB,YAEA,OAAO,YACL,OAAO,QAAQ,OAAO,EAAE,OACtB,EAAE,SAAS,QAAQ,WAAW,QAAQ,SACxC,CACF;AAwBF,IAAM,eAAe,CAAC,YAAmD;AAAA,EACvE,IAAI,QAAQ,SAAS,WAAW;AAAA,IAC9B,OAAO,QAAQ,QAAQ,QAAQ,IAAI,CAAC,YAAY;AAAA,SAC3C;AAAA,MACH,MAAM,OAAO,QAAQ,QAAQ,QAAQ;AAAA,MACrC,UAAU,OAAO,YAAY,QAAQ,QAAQ;AAAA,IAC/C,EAAE;AAAA,EACJ;AAAA,EACA,IAAI,QAAQ,SAAS,UAAU;AAAA,IAC7B,OAAO,QAAQ,QAAQ,QAAQ,IAAI,CAAC,YAAY;AAAA,SAC3C;AAAA,MACH,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,sBAAsB;AAAA,IACxB,EAAE;AAAA,EACJ;AAAA,EACA,OAAO,QAAQ,QAAQ;AAAA;AAGzB,IAAM,gBAAgB,CACpB,SACA,aACsB;AAAA,EACtB,MAAM,UAAU,aAAa,OAAO;AAAA,EACpC,MAAM,OAAO,eAAe,QAAQ,QAAQ,KAAK;AAAA,EACjD,MAAM,eAAe,eAAe,QAAQ;AAAA,EAC5C,MAAM,UAAU,UAAU,OAAO;AAAA,EAEjC,OAAO,QAAQ,IAAI,CAAC,QAAQ,UAAU;AAAA,IACpC,MAAM,QACJ,OAAO,UACN,QAAQ,SAAS,IAAI,GAAG,gBAAgB,QAAQ,MAAM;AAAA,IAEzD,IAAI;AAAA,IACJ,IAAI,OAAO,OAAO;AAAA,MAChB,QAAQ,eAAe,OAAO,KAAK;AAAA,IACrC,EAAO,SAAI,QAAQ,WAAW,GAAG;AAAA,MAC/B,QAAQ;AAAA,IACV,EAAO;AAAA,MACL,MAAM,SAAS,OAAO,QAAQ,SAAQ,OAAO,KAAK,IAAI;AAAA,MACtD,QAAQ,eAAe,GAAG,QAAQ,UAAU,QAAQ,GAAG;AAAA;AAAA,IAGzD,MAAM,YAA6B;AAAA,MACjC;AAAA,MACA;AAAA,MACA,eAAe,OAAO;AAAA,MACtB,iBAAiB,OAAO;AAAA,MACxB,MAAM,QAAQ;AAAA,MACd;AAAA,MACA,SAAS,OAAO;AAAA,MAChB;AAAA,MACA,sBAAsB,OAAO;AAAA,MAC7B,MAAM,UAAU,KAAK;AAAA,MACrB,MAAM,OAAO;AAAA,IACf;AAAA,IACA,IAAI,QAAQ,SAAS,UAAU;AAAA,MAC7B,UAAU,SAAS,gBAAgB,QAAQ,OAAO;AAAA,IACpD;AAAA,IACA,IAAI,OAAO,UAAU,WAAW;AAAA,MAC9B,UAAU,aAAa,OAAO;AAAA,IAChC;AAAA,IACA,IAAI,OAAO,aAAa,WAAW;AAAA,MACjC,UAAU,WAAW,OAAO;AAAA,IAC9B;AAAA,IACA,IAAI,OAAO,SAAS,WAAW;AAAA,MAC7B,UAAU,OAAO,OAAO;AAAA,IAC1B;AAAA,IACA,IAAI,OAAO,aAAa,WAAW;AAAA,MACjC,UAAU,WAAW,OAAO;AAAA,IAC9B;AAAA,IACA,OAAO;AAAA,GACR;AAAA;AAQI,IAAM,oBAAoB,CAAC,WAChC,OAAO,UAAU,QAAQ,CAAC,YACxB,cAAc,SAAS,OAAO,QAAQ,CACxC;AASK,IAAM,kBAAkB,CAAC,WAC9B,kBAAkB,MAAM,EAAE,IAAI,CAAC,QAI7B,IAAI,SAAS,WAAW,IAAI,QAAQ,aAAa,OAAO,UAAU,IAAI,KAAK,CAC7E;AAQF,IAAM,mBAAmB,CACvB,KACA,MACA,cACgC;AAAA,EAChC,IAAI,CAAC,iBAAiB,GAAG,GAAG;AAAA,IAC1B,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,KAAK,IAAI,IAAI,KAAK;AAAA,EAC/B,IAAI,MAAM;AAAA,KACP,KAAK,eAAe,CAAC,GAAG,KACvB,wCAAwC,IAAI,2BAC9C;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAKA,MAAM,SAAS;AAAA,EACf,IAAI,IAAI;AAAA,EACR,OAAO,UAAU,IAAI,IAAI,GAAG;AAAA,IAC1B,OAAO,GAAG,IAAI,QAAQ;AAAA,IACtB,KAAK;AAAA,EACP;AAAA,EACA,UAAU,IAAI,IAAI;AAAA,EAClB,MAAM,WAAW,SAAS,IAAI,OAAO,MAAM,KAAK,KAAK,KAAK;AAAA,EAG1D,KAAK,IAAI,IAAI,OAAO,QAAQ;AAAA,EAC5B,OAAO;AAAA;AAIF,IAAM,kBAAkB,CAC7B,WAC2B;AAAA,EAC3B,MAAM,OAAO,IAAI;AAAA,EACjB,MAAM,YAAY,IAAI;AAAA,EACtB,MAAM,SAAiC,CAAC;AAAA,EACxC,WAAW,OAAO,kBAAkB,MAAM,GAAG;AAAA,IAC3C,MAAM,WAAW,iBAAiB,KAAK,MAAM,SAAS;AAAA,IACtD,IAAI,UAAU;AAAA,MACZ,OAAO,KAAK,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,cAAc;AAQb,IAAM,qBAAqB,CAChC,QACA,SACa;AAAA,EACb,GAAG,IAAI,IACL,kBAAkB,MAAM,EACrB,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,GAAI,IAAI,YAAY,CAAC,CAAE,CAAC,EACpD,OAAO,CAAC,SAAS,CAAC,YAAY,KAAK,IAAI,CAAC,EACxC,IAAI,CAAC,SAAU,WAAW,IAAI,IAAI,OAAO,KAAK,MAAM,IAAI,CAAE,CAC/D;AACF;AAGO,IAAM,sBAAsB,CAAC,WAClC,kBAAkB,MAAM,EAAE,KAAK,CAAC,QAAQ,IAAI,SAAS,QAAQ;AAYxD,IAAM,yBAAyB,CACpC,WAEA,gBAAgB,MAAM,EAAE,OACtB,CAAC,QACC,IAAI,SAAS,cACb,IAAI,QAAQ,WAAW,WACvB,IAAI,QAAQ,WAAW,UAAU,IACrC;AAMK,IAAM,0BAA0B,CAAC,WACtC,OAAO,IAAI,WAAW,WAAW,OAAO,IAAI,WAAW,UAAU;AAQ5D,IAAM,uBAAuB,CAAC,WACnC,uBAAuB,MAAM,EAAE,SAAS,KAAK,wBAAwB,MAAM;;;AC5a7E,uBAAS,qBAAY;;;ACArB,cAAS;;;ACAT;AAgDO,IAAM,0BAA0B,CAIrC,MACA,YAEA,EAAE,aAAa;AAAA,EACb,MAAM,EAAE,QAAQ,IAAI;AAAA,EACpB;AAAA,EACA,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,EACnC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC;AACjC,CAAC;;;AC5DH,cAAS;AAGF,IAAM,uBAAuB;AAmB7B,IAAM,4BAA4B,GAAE,aAAa;AAAA,EACtD,cAAc,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC7C,QAAQ,GAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAmBM,IAAM,uBAAuB,GAAE,aAAa;AAAA,EACjD,MAAM,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,aAAa,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,cAAc,GAAE,OAAO,EAAE,SAAS;AAAA,EAClC,OAAO,GAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,MAAM,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,GAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAGM,IAAM,oBAAoB,GAAE,OAAO,GAAE,OAAO,GAAG,GAAE,OAAO,CAAC;;;AF9CzD,IAAM,0BAA0B,CAAC,oBAAoB;AAErD,IAAM,0BAA0B,CAAC,SAAS,OAAO;AAQjD,IAAM,wBAAwB,CACnC,aACa;AAAA,EACb,MAAM,OAAO,IAAI,IACf,SAAS,QAAQ,CAAC,YAChB,QAAQ,WAAW,GAAG,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,IAAI,CAAC,CAClD,CACF;AAAA,EACA,OAAO;AAAA,IACL,GAAG,IAAI,IAAI;AAAA,MACT,GAAG;AAAA,MACH,GAAG,SAAS,OAAO,CAAC,YAAY,CAAC,QAAQ,WAAW,GAAG,CAAC;AAAA,IAC1D,CAAC;AAAA,EACH,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,OAAO,CAAC;AAAA;AAgBnC,IAAM,0BAA0B,0BAA0B,OAAO;AAAA,EACtE,SAAS,GAAE,MAAM,GAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,qBAAqB;AAAA,EACxE,SAAS,GAAE,MAAM,GAAE,OAAO,CAAC,EAAE,QAAQ,uBAAuB;AAAA,EAC5D,MAAM,GAAE,OAAO,EAAE,QAAQ,MAAM;AACjC,CAAC;AAOM,IAAM,0BAA0B,wBACrC,cACA,uBACF;AAOO,IAAM,aAAa,CACxB,UAA6B,CAAC,OACP;AAAA,EACvB,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC;AAChB;;;ADjEO,IAAM,oBAAoB,CAAC,aAAqB,SACrD,YAAW,IAAI,IAAI,OAAO,MAAK,QAAQ,WAAW,GAAG,IAAI;AAGpD,IAAM,gBAAgB,CAC3B,QACA,SAEA,OAAO,QAAQ,QAAQ,OACrB,CAAC,WACC,OAAO,SAAS,IACpB;AAsBK,IAAM,wBAAwB,CACnC,QACA,gBACmB;AAAA,EACnB,OAAO,UAAU,QAAQ,cAAc,QAAQ,YAAY;AAAA,EAC3D,IAAI,CAAC,OAAO;AAAA,IACV,OAAO;AAAA,MACL,MAAM,kBAAkB,aAAa,MAAM;AAAA,MAC3C,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,MAAM,UAAU;AAAA,IACd,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC,WAAW,OAAO,QAAQ,OAAO,CAAC;AAAA,EACzE;AAAA,EACA,MAAM,UAAU,MAAM,QAAQ,QAAQ,OAAO,CAAC,YAC5C,KAAK,MAAM,CAAC,WAAW,OAAO,QAAQ,QAAQ,SAAS,OAAO,CAAC,CACjE;AAAA,EACA,OAAO;AAAA,IACL,MAAM,kBAAkB,aAAa,MAAM,QAAQ,IAAI;AAAA,IACvD;AAAA,IACA;AAAA,EACF;AAAA;;;AIjEF;AACA;AAiBA,IAAM,YAAY,CAAC,YAAY;AAS/B,IAAM,gBAAgB,CAAC,QACrB,IAAI,MAAM,GAAG,EAAE,KAAK,CAAC,YAAY,QAAQ,WAAW,GAAG,CAAC;AAG1D,IAAM,eAAe,CACnB,WACA,UACsB;AAAA,EACtB,MAAM,KAAK;AAAA,EACX,MAAM,SAA4B,CAAC;AAAA,EACnC,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,MAAM,SAAS,WAAW,IAAI;AAAA,IACpC,IAAI,cAAc,GAAG,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,IACA,MAAM,aAAa,IAAI,MAAM,GAAG,IAAI,SAAS,QAAQ,GAAG,EAAE,MAAM;AAAA,IAChE,MAAM,QAAQ,WAAW,MAAM,GAAG;AAAA,IAGlC,IAAI,MAAM,GAAG,EAAE,MAAM,SAAS;AAAA,MAC5B,MAAM,IAAI;AAAA,IACZ;AAAA,IACA,MAAM,UAAU,MAAM,WAAW,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG;AAAA,IAC7D,OAAO,KAAK,EAAE,YAAY,MAAM,QAAQ,CAAC;AAAA,EAC3C;AAAA,EACA,OAAO;AAAA;AAQF,IAAM,gBAAgB,OAC3B,cAEA,aACE,WACA,MAAM,KAAK,WAAW,EAAE,UAAU,MAAM,KAAK,WAAW,WAAW,KAAK,CAAC,CAC3E;AAGK,IAAM,oBAAoB,CAAC,cAChC,aACE,WACA,SAAS,WAAW,EAAE,UAAU,MAAM,KAAK,WAAW,WAAW,KAAK,CAAC,CACzE;AAGF,IAAM,kBAAkB;AAGjB,IAAM,iBAAiB,CAAC,YAAqC;AAAA,EAClE,MAAM,WAAW,QAAQ,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,EAClD,OAAO,SAAS,KACd,CAAC,SAAS,gBAAgB,KAAK,IAAI,KAAK,KAAK,SAAS,GAAG,CAC3D,IACI,OACA;AAAA;AAUC,IAAM,qBAAqB,CAAC,UAA2C;AAAA,EAC5E,MAAM,SAAS,IAAI;AAAA,EACnB,aAAa,aAAa,OAAO;AAAA,IAC/B,MAAM,WAAW,eAAe,OAAO;AAAA,IACvC,IAAI,aAAa,MAAM;AAAA,MACrB,OAAO,IAAI,SAAS,WAAW,IAAI,MAAM,IAAI,SAAS,KAAK,GAAG,GAAG;AAAA,IACnE;AAAA,EACF;AAAA,EACA,OAAO,CAAC,GAAG,MAAM;AAAA;;;ACpGnB,IAAM,gBAAgB,CAAC,UACrB,OAAO,UAAU;AAOZ,IAAM,qBAAqB,CAChC,OACA,QACA,kBACW;AAAA,EACX,IAAI,cAAc,KAAK,GAAG;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,QACG,WAAW,YAAY,YAAY,MAAM,aACzC,kBAAkB,YAAY,YAAY,MAAM,mBACjD,OAAO,OAAO,KAAK,EAAE,MACrB;AAAA;;;AChBG,IAAM,wBAAwB;AAU9B,IAAM,oBAAoB,CAC/B,OACA,WAEA,MAAM,KACJ,CAAC,SACC,KAAK,gBAAgB,eACrB,EAAE,KAAK,KAAK,SAAS,KAAK,KAAK,QAAQ,OAC3C,KAAK,cAAc,QAAQ,iBAAiB,EAAE,SAAS;AAQlD,IAAM,yBAAyB,CACpC,QACA,IACA,WACc;AAAA,EACd,MAAM,OAAO,CAAC,OAAqC,aACjD,UAAU,YACN,WACA,mBAAmB,OAAO,QAAQ,OAAO,MAAM,aAAa;AAAA,EAClE,OAAO;AAAA,OACF;AAAA,IACH,WAAW;AAAA,SACN,GAAG;AAAA,MACN,aAAa,KACX,OAAO,WAAW,aAClB,GAAG,UAAU,WACf;AAAA,MACA,OAAO,KAAK,OAAO,WAAW,OAAO,GAAG,UAAU,KAAK;AAAA,IACzD;AAAA,EACF;AAAA;;;AC/BK,IAAM,eAAe,CAC1B,OACA,cACA,UAEA,MAAM,KAAK,CAAC,SAAS,KAAK,YAAY,KAAK,KAC3C,aAAa,KAAK,CAAC,SAAS,KAAK,UAAU,KAAK;AAiB3C,IAAM,wBAAwB,CACnC,SACA,cAEA,kBAAkB,QAAQ,MAAM,OAAO,QAAQ,MAAM,KACrD,CAAC,aAAa,WAAW,QAAQ,MAAM,OAAO,qBAAqB;AAS9D,IAAM,kBAAkB,CAC7B,SACA,cACgB;AAAA,EAChB,MAAM,SAAS,IAAI,IAAY;AAAA,IAC7B,GAAG,QAAQ,MAAM,OAAO,KAAK;AAAA,IAC7B,GAAG,UAAU,IAAI,CAAC,SAAS,KAAK,OAAO;AAAA,IACvC,GAAG,gBAAgB,QAAQ,MAAM;AAAA,EACnC,CAAC;AAAA,EACD,IAAI,sBAAsB,SAAS,SAAS,GAAG;AAAA,IAC7C,OAAO,IAAI,qBAAqB;AAAA,EAClC;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,kBAAkB,CAAC,YACvB,QACG,MAAM,OAAO,EACb,OAAO,OAAO,EACd,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC,EAC1D,KAAK,GAAG;AAcN,IAAM,iBAAiB,CAC5B,OACA,WACA,SAAiC,CAAC,MACd;AAAA,EAGpB,MAAM,YAAY,IAAI,IACpB,OAAO,QAAQ,MAAM,EAAE,IAAI,EAAE,OAAO,WAAW;AAAA,IAC7C,IAAI,MAAM,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,IAC7C;AAAA,EACF,CAAC,CACH;AAAA,EACA,MAAM,OAAO,IAAI;AAAA,EACjB,MAAM,SAA0B,CAAC;AAAA,EAGjC,MAAM,eAAe,CAAC,YAA0B;AAAA,IAC9C,MAAM,WAAW,eAAe,OAAO;AAAA,IACvC,IAAI,aAAa,MAAM;AAAA,MACrB;AAAA,IACF;AAAA,IACA,MAAM,OAAO,SAAS,WAAW,IAAI,UAAU,SAAS,KAAK,GAAG;AAAA,IAChE,IAAI,KAAK,IAAI,IAAI,GAAG;AAAA,MAClB;AAAA,IACF;AAAA,IACA,KAAK,IAAI,IAAI;AAAA,IACb,MAAM,OAAO,SAAS,GAAG,EAAE;AAAA,IAC3B,OAAO,KAAK;AAAA,MACV;AAAA,MACA,OACE,UAAU,IAAI,IAAI,SAAS,KAAK,GAAG,GAAG,MACrC,OAAO,gBAAgB,IAAI,IAAI;AAAA,IACpC,CAAC;AAAA;AAAA,EAEH,aAAa,aAAa,OAAO;AAAA,IAC/B,aAAa,OAAO;AAAA,EACtB;AAAA,EACA,OAAO;AAAA;;;AChHT,IAAM,sBAAsB,IAAI;AAEhC,IAAM,qBAAqB,CAAC,OAAkB,SAA4B;AAAA,EACxE,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,KAAK,SAAS,SAAS;AAAA,MACzB,IAAI,KAAK,OAAO;AAAA,QACd,KAAK,IAAI,KAAK,KAAK;AAAA,MACrB;AAAA,MACA,mBAAmB,KAAK,UAAU,IAAI;AAAA,IACxC;AAAA,EACF;AAAA;AAQF,IAAM,eAAe,CAAC,UAA6C;AAAA,EACjE,MAAM,SAAS,oBAAoB,IAAI,KAAK;AAAA,EAC5C,IAAI,QAAQ;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EAGA,MAAM,QAAQ;AAAA,IACZ,MAAM;AAAA,IACN,GAAG,OAAO,OAAO,MAAM,sBAAsB,CAAC,CAAC;AAAA,IAC/C,GAAG,OAAO,OAAO,MAAM,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,aACzD,OAAO,OAAO,QAAQ,CACxB;AAAA,EACF;AAAA,EACA,MAAM,SAAS,IAAI;AAAA,EACnB,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,MAAM,MAAM;AAAA,MACd,OAAO,IAAI,KAAK,IAAI;AAAA,IACtB;AAAA,IACA,mBAAmB,MAAM,WAAW,CAAC,GAAG,MAAM;AAAA,EAChD;AAAA,EACA,oBAAoB,IAAI,OAAO,MAAM;AAAA,EACrC,OAAO;AAAA;AAIF,IAAM,eAAe,CAAC,MAAkB,UAC7C,KAAK,KAAK,QAAQ,UAAU,CAAC,aAAa,KAAK,EAAE,IAAI,KAAK,KAAK;;;AC3CjE,IAAM,sBAAsB,CAAC,YAAoB,WAC/C,GAAG,iBAAmB;AAQxB,IAAM,uBAAuB,CAC3B,OACA,YACA,WACuB;AAAA,EACvB,MAAM,MAAM,oBAAoB,YAAY,MAAM;AAAA,EAClD,MAAM,WAAW,MAAM,IAAI,GAAG;AAAA,EAC9B,IAAI,UAAU;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAA2B,CAAC;AAAA,EAClC,MAAM,IAAI,KAAK,IAAI;AAAA,EACnB,OAAO;AAAA;AAIF,IAAM,mBAAmB;AAQzB,IAAM,mBAAmB,CAC9B,MACA,QACA,UAEA,CAAC,KAAK,KAAK,OAAO,YACjB,CAAC,aAAa,MAAM,KAAK,KAAK,OAAO,OAAO,SAAS;AAcjD,IAAM,kBAAkB,CAAC,SAC9B,KAAK,KAAK,IAAI,eAAe,KAAK;AAEpC,IAAM,sBAAsB,CAC1B,OACA,MACA,iBACA,UACA,2BACyB;AAAA,EACzB,MAAM,WAAW,sBAAsB,IAAI;AAAA,EAC3C,IAAI,CAAC,UAAU;AAAA,IACb,OAAO,CAAC;AAAA,EACV;AAAA,EAIA,MAAM,gBAAgB,IAAI,IACxB,MAAM,MAAM,QAAQ,CAAC,SACnB,KAAK,WAAW,YAAY,CAAC,KAAK,cAC9B,CAAC,CAAC,KAAK,gBAAgB,IAAI,CAAU,IACrC,CAAC,CACP,CACF;AAAA,EACA,MAAM,SAA+B,CAAC;AAAA,EACtC,aAAa,UAAU,KAAK,SAAS;AAAA,IACnC,IAAI,SAAS,UAAU;AAAA,MACrB;AAAA,IACF;AAAA,IACA,MAAM,UAAU,IAAI,IAClB,MAAM,MAAM,QAAQ,CAAC,SACnB,KAAK,WAAW,OAAO,CAAC,KAAK,cAAc,IAAI,CAAC,CAClD,CACF;AAAA,IACA,YAAY,KAAK,WAAW,eAAe;AAAA,MACzC,IAAI,QAAQ,IAAI,GAAG,GAAG;AAAA,QACpB;AAAA,MACF;AAAA,MACA,MAAM,OAAO,cAAc,UAAU,cAAc,KAAK,MAAM,IAAI,CAAC;AAAA,MAKnE,MAAM,oBAAwC,yBAC1C,qBAAqB,wBAAwB,OAAO,YAAY,IAAI,IACpE,CAAC;AAAA,MACL,IAAI,wBAAwB;AAAA,QAC1B,kBAAkB,KAAK,EAAE,MAAM,SAAS,OAAO,QAAQ,CAAC;AAAA,MAC1D;AAAA,MACA,OAAO,KAAK;AAAA,QACV,YAAY,gBAAgB,IAAI,GAAG,KAAK,CAAC;AAAA,QACzC,YAAY,OAAO,cAAc;AAAA,QACjC,aAAa,OAAO;AAAA,QACpB,aAAa,gBAAgB,MAAM;AAAA,QACnC,OAAO,OAAO,KAAK;AAAA,QACnB,SAAS,OAAO;AAAA,QAChB,SAAS,OAAO,WAAW,OAAO,OAAO;AAAA,QACzC,UAAU;AAAA,QACV,QAAQ,aAAa,QAAQ,KAAK;AAAA,QAClC,IAAI,OAAO;AAAA,QACX,WAAW;AAAA,QACX,cAAc,OAAO;AAAA,QACrB,QAAQ;AAAA,QACR,aAAa,OAAO;AAAA,QACpB;AAAA,QACA,WAAW,OAAO;AAAA,QAClB,QAAQ,OAAO;AAAA,QACf,YAAY,OAAO;AAAA,QACnB,OAAO,OAAO;AAAA,QACd,SAAS,OAAO;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,gBAAgB,CAAC,YAIT;AAAA,EACnB,QAAQ,SAAS,QAAQ,UAAU;AAAA,EACnC,MAAM,gBAAgB,OAAO,OAAO,SAAS,SAAS;AAAA,EACtD,QAAQ,SAAS;AAAA,EAIjB,MAAM,kBAAkB,IAAI;AAAA,EAC5B,IAAI,MAAM;AAAA,IACR,WAAW,QAAQ,MAAM,OAAO;AAAA,MAC9B,MAAM,OAAO,gBAAgB,IAAI,KAAK,cAAc,KAAK,CAAC;AAAA,MAC1D,KAAK,KAAK,EAAE,QAAQ,KAAK,QAAQ,MAAM,KAAK,MAAM,CAAC;AAAA,MACnD,gBAAgB,IAAI,KAAK,gBAAgB,IAAI;AAAA,IAC/C;AAAA,EACF;AAAA,EAMA,MAAM,yBAAyB,OAAO,WAClC,IAAI,MACJ;AAAA,EACJ,IAAI,wBAAwB;AAAA,IAC1B,WAAW,QAAQ,MAAM,OAAO;AAAA,MAC9B,qBACE,wBACA,KAAK,YACL,KAAK,MACP,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,SAAS,KAAK,QAAQ,CAAC;AAAA,IACpD;AAAA,EACF;AAAA,EAEA,MAAM,SAA+B,MAAM,MAAM,IAAI,CAAC,UAAU;AAAA,IAC9D,WAAW,KAAK,KAAK,GAAG;AAAA,IACxB,YAAY,gBAAgB,IAAI,KAAK,cAAc,KAAK,CAAC;AAAA,IACzD,YAAY,KAAK,cAAc;AAAA,IAC/B,aAAa,KAAK;AAAA,IAClB,aAAa,gBAAgB,IAAI;AAAA,IACjC,OAAO,KAAK,KAAK;AAAA,IACjB,SAAS,KAAK;AAAA,IACd,SAAS,KAAK,WAAW,KAAK,OAAO;AAAA,IACrC,QAAQ,aAAa,MAAM,KAAK;AAAA,IAChC,IAAI,KAAK;AAAA,IACT,WAAW,iBAAiB,iBAAiB,MAAM,QAAQ,KAAK;AAAA,IAChE,cAAc,KAAK;AAAA,IACnB,QAAQ,KAAK;AAAA,IACb,aAAa,KAAK;AAAA,IAClB,MAAM,KAAK;AAAA,IACX,WAAW,KAAK;AAAA,IAChB,QAAQ,KAAK;AAAA,IACb,YAAY,KAAK;AAAA,IACjB,OAAO,KAAK;AAAA,IACZ,SAAS,KAAK;AAAA,IACd,mBAAmB,yBACf,qBACE,wBACA,KAAK,YACL,KAAK,MACP,IACA,CAAC;AAAA,EACP,EAAE;AAAA,EAEF,IAAI,MAAM;AAAA,IACR,OAAO,KACL,GAAG,oBACD,OACA,MACA,iBACA,OAAO,UACP,sBACF,CACF;AAAA,EACF;AAAA,EAKA,IAAI,0BAA0B,OAAO,UAAU;AAAA,IAC7C,MAAM,OAAO,IAAI,IACf,OAAO,SAAS,SAAS,IAAI,CAAC,SAAS,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAC1E;AAAA,IACA,WAAW,QAAQ,uBAAuB,OAAO,GAAG;AAAA,MAClD,KAAK,KACH,CAAC,GAAG,OAAO,KAAK,IAAI,EAAE,OAAO,KAAK,MAAM,KAAK,IAAI,EAAE,OAAO,KAAK,EACjE;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC;AAAA,EAElD,OAAO;AAAA,IACL,cAAc,gBAAgB;AAAA,IAC9B,aAAa,QAAQ;AAAA,IACrB,QAAQ,OAAO,WAAW,QAAQ;AAAA,IAClC,aAAa,QAAQ;AAAA,IACrB;AAAA,IACA,SAAS;AAAA,EACX;AAAA;;;AC7PF,+CAAmC;AAEnC,qBAAS,sBAAU,kBAAS,oBAAM,wBAAW,sBAAU;;;AC8CvD,IAAM,gBAAgB,CAAC,UAA0B;AAAA,EAC/C,IAAI;AAAA,IACF,OAAO,mBAAmB,KAAK;AAAA,IAC/B,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAQJ,IAAM,cAAc,CAAC,QAAkB,UAC5C,OAAO,IAAI,KAAK,KAAK,OAAO,IAAI,cAAc,KAAK,CAAC;AAGtD,IAAM,kBAAkB,CAAC,MAAc,SACrC,KAAK,QAAQ,KAAK,CAAC,WAAW;AAAA,EAC5B,MAAM,SAAS,aAAa,OAAO,MAAM,IAAI;AAAA,EAC7C,OAAO,WAAW,OAAO,SAAS,UAAU,KAAK,WAAW,GAAG,SAAS;AAAA,CACzE;AAOI,IAAM,mBAAmB,CAC9B,MACA,YACW;AAAA,EACX,QAAQ,UAAU,MAAM,QAAQ,WAAW;AAAA,EAC3C,IAAI,aAAa,QAAQ,IAAI,MAAM,IAAI;AAAA,IACrC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,cAAc,cAAc,UAAU,IAAI,CAAC;AAAA,EACxD,IAAI,gBAAgB,MAAM,IAAI,GAAG;AAAA,IAC/B,OAAO;AAAA,EACT;AAAA,EACA,MAAM,YAAY,aAAa,UAAU,cAAc,MAAM,QAAQ,IAAI,CAAC;AAAA,EAG1E,OAAO,YAAY,QAAQ,SAAS,IAAI,YAAY;AAAA;AAkB/C,IAAM,eAAe,CAC1B,MACA,YACW;AAAA,EACX,IAAI,CAAC,eAAe,IAAI,GAAG;AAAA,IACzB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,WAAW,KAAK,OAAO,OAAO;AAAA,EACpC,MAAM,OAAO,aAAa,KAAK,OAAO,KAAK,MAAM,GAAG,QAAQ;AAAA,EAC5D,MAAM,SAAS,aAAa,KAAK,KAAK,KAAK,MAAM,QAAQ;AAAA,EACzD,MAAM,QAAQ,cAAc,QAAQ,YAAY,IAAI;AAAA,EACpD,MAAM,YAAY,iBAAiB,OAAO,OAAO;AAAA,EACjD,IAAI,cAAc,OAAO;AAAA,IACvB,OAAO;AAAA,EACT;AAAA,EAIA,OAAO,GAAG,cAAc,QAAQ,YAAY,SAAS,IAAI;AAAA;AA4B3D,IAAM,YAAY,IAAI;AAEf,IAAM,cAAc,CACzB,WACgB;AAAA,EAChB,MAAM,SAAS,UAAU,IAAI,MAAM;AAAA,EACnC,IAAI,QAAQ;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,IAAI,IAAI,OAAO,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC;AAAA,EACvD,UAAU,IAAI,QAAQ,KAAK;AAAA,EAC3B,OAAO;AAAA;;;ACrKT;AAIO,IAAM,oBAAoB;AAC1B,IAAM,mBAAmB;AAEhC,IAAM,mBAAmB;AACzB,IAAM,cAAc;AACpB,IAAM,4BAA4B;AAClC,IAAM,yBAAyB;AA2B/B,IAAM,UAAU,CAAC,UAAsD;AAAA,EACrE,MAAM,SAAS,MAAM,iBAAiB,QAAQ,MAAM,QAAQ;AAAA,EAC5D,OAAO,UAAU,SACb,EAAE,MAAM,OAAO,OAAO,IAAI,GAAG,OAAO,OAAO,QAAQ,IACnD,EAAE,OAAO,OAAO,QAAQ;AAAA;AAI9B,IAAM,UAAU,OACd,KACA,QACA,cACyB;AAAA,EACzB,MAAM,aAAa,IAAI;AAAA,EACvB,MAAM,QAAQ,WAAW,MAAM,WAAW,MAAM,GAAG,SAAS;AAAA,EAC5D,MAAM,UAAU,YAAY,IAAI;AAAA,EAChC,IAAI;AAAA,IACF,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,MAChC;AAAA,MACA,UAAU;AAAA,MACV,QAAQ,WAAW;AAAA,IACrB,CAAC;AAAA,IACD,OAAO;AAAA,MACL,UAAU,SAAS,QAAQ,IAAI,kBAAkB;AAAA,MACjD,UAAU,SAAS;AAAA,MACnB,IAAI,KAAK,MAAM,YAAY,IAAI,IAAI,OAAO;AAAA,MAC1C,IAAI,SAAS;AAAA,MACb,YAAY,SAAS;AAAA,MACrB,WAAW,SAAS,QAAQ,IAAI,cAAc;AAAA,MAC9C,QAAQ,SAAS;AAAA,IACnB;AAAA,IACA,OAAO,OAAO;AAAA,IACd,IAAI,iBAAiB,SAAS,MAAM,SAAS,cAAc;AAAA,MACzD,OAAO,EAAE,IAAI,OAAO,UAAU,KAAK;AAAA,IACrC;AAAA,IACA,MAAM,SACJ,iBAAiB,QAAQ,QAAQ,KAAK,IAAI,EAAE,OAAO,OAAO,KAAK,EAAE;AAAA,IACnE,OAAO,KAAK,QAAQ,IAAI,MAAM;AAAA,YAC9B;AAAA,IACA,aAAa,KAAK;AAAA;AAAA;AAUf,IAAM,QAAQ,OACnB,KACA,UAAkC,CAAC,MACV;AAAA,EACzB,MAAM,YAAY,QAAQ,aAAa;AAAA,EACvC,MAAM,OAAO,MAAM,QAAQ,KAAK,QAAQ,SAAS;AAAA,EACjD,MAAM,cAAc,CAAC,KAAK,MAAM,KAAK,WAAW,aAAa,CAAC,KAAK;AAAA,EACnE,MAAM,QACJ,KAAK,WAAW,6BAChB,KAAK,WAAW,0BAChB;AAAA,EACF,OAAO,QAAQ,MAAM,QAAQ,KAAK,OAAO,SAAS,IAAI;AAAA;AAIjD,IAAM,gBAAgB,CAC3B,WAC4D;AAAA,EAC5D,IAAI,OAAO,IAAI;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IACnB,OAAO,EAAE,QAAQ,qBAAqB,UAAU,UAAU;AAAA,EAC5D;AAAA,EAIA,IAAI,OAAO,WAAW,WAAW;AAAA,IAC/B,OAAO;AAAA,MACL,QAAQ,OAAO,SAAS;AAAA,MACxB,UAAU,OAAO,SAAS,cAAc,UAAU;AAAA,IACpD;AAAA,EACF;AAAA,EAIA,IAAI,OAAO,WAAW,oBAAoB,OAAO,WAAW,aAAa;AAAA,IACvE,OAAO,EAAE,QAAQ,QAAQ,OAAO,UAAU,UAAU,QAAQ;AAAA,EAC9D;AAAA,EACA,OAAO,EAAE,QAAQ,QAAQ,OAAO,UAAU,UAAU,UAAU;AAAA;AAOzD,IAAM,WAAW,OACtB,MACA,UAAwD,CAAC,MACnB;AAAA,EACtC,MAAM,SAAS,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC;AAAA,EAChC,MAAM,UAAU,MAAM,KACpB,QACA,OAAO,QAAQ,CAAC,KAAK,MAAM,MAAM,KAAK,OAAO,CAAC,GAC9C,EAAE,aAAa,KAAK,IAAI,GAAG,QAAQ,eAAe,iBAAiB,EAAE,CACvE;AAAA,EACA,OAAO,IAAI,IAAI,OAAO;AAAA;;;ACrHjB,IAAM,QAAQ;AA+BrB,IAAM,QAAQ;AACd,IAAM,cAAc;AAMpB,IAAM,YAAY;AAKlB,IAAM,OAAO,CAAC,UACZ,QAAQ,CAAC,EAAE,MAAM,QAAQ,MAAM,MAAM,CAAC,IAAI,CAAC;AAG7C,IAAM,eAAe,CACnB,SACA,MACA,UACW;AAAA,EACX,MAAM,QAAQ,MAAM,KAAK,OAAO,GAAG;AAAA,EACnC,IAAI,OAAO,MAAM;AAAA,IACf,QAAQ,SAAS;AAAA,IACjB,IAAI,SAAS,OAAO;AAAA,MAClB,OAAO;AAAA,QACL,OACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,IAAI,MAAM,IAAI,IAAI,GAAG;AAAA,MACnB,OAAO;AAAA,QACL,OAAO,MAAM;AAAA,MACf;AAAA,IACF;AAAA,IACA,MAAM,IAAI,IAAI;AAAA,IACd,IAAI,CAAC,MAAM,MAAM;AAAA,MACf,OAAO;AAAA,QACL,OAAO;AAAA,UACL,EAAE,MAAM,QAAQ,MAAM,IAAI;AAAA,UAC1B,EAAE,MAAM,SAAS,KAAK;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO,OACH,EAAE,OAAO,CAAC,EAAE,MAAM,QAAQ,KAAK,CAAC,EAAE,IAClC;AAAA,MACE,OAAO,MAAM;AAAA,IACf;AAAA,EACN;AAAA,EACA,IAAI,YAAY,KAAK,OAAO,GAAG;AAAA,IAC7B,OAAO;AAAA,MACL,OAAO,KAAK;AAAA,IACd;AAAA,EACF;AAAA,EACA,MAAM,OAAO,QAAQ,QAAQ,GAAG;AAAA,EAChC,IAAI,SAAS,IAAI;AAAA,IACf,OAAO,EAAE,OAAO,KAAK,IAAI,SAAS,EAAE;AAAA,EACtC;AAAA,EACA,IAAI,CAAC,QAAQ,SAAS,QAAQ,SAAS,GAAG;AAAA,IACxC,OAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,MAAM,IAAI,KAAK;AAAA,EACf,OAAO,YAAY,MACf,EAAE,OAAO,CAAC,EAAE,MAAM,QAAQ,MAAM,MAAM,CAAC,EAAE,IACzC,EAAE,OAAO,CAAC,GAAG,KAAK,IAAI,QAAQ,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,QAAQ,CAAC,EAAE;AAAA;AAIxE,IAAM,WAAW,CAAqB,UAAqC;AAAA,EACzE,MAAM,SAAkB,CAAC;AAAA,EACzB,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,WAAW,OAAO,GAAG,EAAE;AAAA,IAC7B,IAAI,KAAK,SAAS,UAAU,UAAU,SAAS,QAAQ;AAAA,MAErD,OAAO,OAAO,SAAS,KAAK;AAAA,WACvB;AAAA,QACH,MAAM,SAAS,OAAO,KAAK;AAAA,MAC7B;AAAA,IACF,EAAO;AAAA,MACL,OAAO,KAAK,IAAI;AAAA;AAAA,EAEpB;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,YAAY,CAAC,SAAyB;AAAA,EAC1C,MAAM,WAAW,KAAK,MAAM,GAAG,EAAE,MAAM,CAAC;AAAA,EACxC,MAAM,QAAQ,IAAI;AAAA,EAClB,MAAM,QAAgB,CAAC;AAAA,EACvB,YAAY,OAAO,YAAY,SAAS,QAAQ,GAAG;AAAA,IACjD,MAAM,OAAO,aAAa,SAAS,UAAU,SAAS,SAAS,GAAG,KAAK;AAAA,IACvE,IAAI,WAAW,MAAM;AAAA,MACnB,OAAO;AAAA,IACT;AAAA,IACA,MAAM,KAAK,GAAG,KAAK,KAAK;AAAA,EAC1B;AAAA,EACA,OAAO,EAAE,OAAO,SAAS,KAAK,EAAE;AAAA;AAIlC,IAAM,gBAAgB,CAAC,UACrB,IAAI,IACF,MAAM,QAAQ,CAAC,SAAS;AAAA,EACtB,IAAI,KAAK,SAAS,WAAW,KAAK,SAAS,QAAQ;AAAA,IACjD,OAAO,CAAC,KAAK,IAAI;AAAA,EACnB;AAAA,EACA,OAAO,KAAK,SAAS,UAAU,CAAC,KAAK,IAAI,CAAC;AAAA,CAC3C,CACH;AAGF,IAAM,gBAAgB,CAAC,SAAqC,QAAQ;AAOpE,IAAM,oBAAoB,CACxB,IACA,YAEA,GAAG,WAAW,WAAW,CAAC,OAAO,SAC/B,QAAQ,cAAc,IAAI,GAAG,MAAM,WAAW,GAAG,CAAC,CACpD;AAQK,IAAM,oBAAoB,CAAC,OAAmC;AAAA,EACnE,MAAM,KAAK,GAAG,OAAO,SAAS;AAAA,EAC9B,IAAI,OAAO,IAAI;AAAA,IACb;AAAA,EACF;AAAA,EAEA,OAAO,GAAG,MAAM,GAAG,GAAG,QAAQ,MAAM,KAAK,IAAI,EAAE;AAAA;AAI1C,IAAM,gBAAgB,CAAC,SAA0B;AAAA,EACtD,MAAM,SAAS,UAAU,IAAI;AAAA,EAC7B,OAAO,WAAW,UAAU,OAAO,MAAM,KAAK,CAAC,SAAS,KAAK,SAAS,MAAM;AAAA;AAavE,IAAM,uBAAuB,CAClC,MACA,OACgC;AAAA,EAChC,MAAM,SAAS,UAAU,IAAI;AAAA,EAC7B,IAAI,WAAW,QAAQ;AAAA,IACrB,OAAO,EAAE,KAAK,QAAQ,SAAS,OAAO,MAAM;AAAA,EAC9C;AAAA,EACA,MAAM,QAAQ,cAAc,OAAO,KAAK;AAAA,EACxC,MAAM,UAAoB,CAAC;AAAA,EAC3B,kBAAkB,IAAI,CAAC,SAAS;AAAA,IAC9B,IAAI,CAAC,MAAM,IAAI,IAAI,GAAG;AAAA,MACpB,QAAQ,KAAK,IAAI;AAAA,IACnB;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EACD,OAAO,SAAS;AAAA,EAChB,IAAI,UAAU,WAAW;AAAA,IACvB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,UAAU,QAAQ,QAAQ,MAAM;AAAA,EAChD,OAAO;AAAA,IACL,KAAK;AAAA,IACL,SAAS,gBAAgB;AAAA,EAC3B;AAAA;AAQF,IAAM,cAAc,CAAC,IAAY,YAA4B;AAAA,EAC3D,MAAM,SAAS,kBAAkB,IAAI,CAAC,SACpC,SAAS,UAAU,KAAK,KAAK,MAC/B;AAAA,EACA,OAAO,eAAe,KAAK,MAAM,IAAI,IAAI,WAAW;AAAA;AAItD,IAAM,YAAY,CAAC,UACjB,MAAM,OAAO,CAAC,SAA2B,KAAK,SAAS,MAAM;AAQxD,IAAM,iBAAiB,CAAC,aAA2C;AAAA,EACxE,MAAM,SAAS,UAAU,SAAS,IAAI;AAAA,EACtC,IAAI,WAAW,QAAQ;AAAA,IACrB,OAAO,CAAC;AAAA,EACV;AAAA,EACA,QAAQ,UAAU;AAAA,EAClB,MAAM,OAAO,MAAM,GAAG,EAAE;AAAA,EACxB,IAAI,MAAM,SAAS,QAAQ;AAAA,IACzB,MAAM,QAAQ,UAAU,KAAK;AAAA,IAC7B,OAAO,MAAM,KAAK,CAAC,SAAS,KAAK,SAAS,MAAM,IAC5C,CAAC,EAAE,OAAO,OAAO,QAAQ,SAAS,QAAQ,IAAI,SAAS,GAAG,CAAC,IAC3D,CAAC;AAAA,EACP;AAAA,EACA,MAAM,OAAO,UAAU,MAAM,MAAM,GAAG,EAAE,CAAC;AAAA,EACzC,MAAM,OAAO,SAAmB,CAAC,GAAG,MAAM,EAAE,MAAM,QAAQ,MAAM,IAAI,CAAC,CAAC;AAAA,EACtE,OAAO;AAAA,IACL;AAAA,MACE,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,MAAM,QAAQ,MAAM,IAAI,CAAC;AAAA,MAC5D,QAAQ,SAAS;AAAA,MACjB,IAAI,YAAY,SAAS,IAAI,KAAK,IAAI;AAAA,IACxC;AAAA,IACA;AAAA,MACE,OAAO,CAAC,GAAG,MAAM,EAAE,MAAM,QAAQ,MAAM,KAAK,KAAK,CAAC;AAAA,MAClD,QAAQ,SAAS;AAAA,MACjB,IAAI,SAAS;AAAA,IACf;AAAA,EACF;AAAA;AAUK,IAAM,eAAe,CAC1B,aACwC;AAAA,EAExC,MAAM,QAAQ,eAAe,QAAQ;AAAA,EACrC,OAAO,QAAQ;AAAA,EACf,IAAI,MAAM,WAAW,KAAK,SAAS,WAAW;AAAA,IAC5C,OAAO;AAAA,EACT;AAAA,EACA,IAAI,OAAO;AAAA,EACX,WAAW,QAAQ,KAAK,OAAO;AAAA,IAC7B,IAAI,KAAK,SAAS,QAAQ;AAAA,MACxB,OAAO;AAAA,IACT;AAAA,IACA,QAAQ,KAAK;AAAA,EACf;AAAA,EACA,OAAO,EAAE,MAAM,IAAI,KAAK,GAAG;AAAA;AAItB,IAAM,aAAa,CACxB,cACe;AAAA,EACf,GAAG,UAAU,OAAO,CAAC,aAAa,CAAC,cAAc,SAAS,IAAI,CAAC;AAAA,EAC/D,GAAG,UAAU,OAAO,CAAC,aAAa,cAAc,SAAS,IAAI,CAAC;AAChE;AAOA,IAAM,eAAe,CAAC,UACpB,MAAM,QAAQ,CAAC,SAAS;AAAA,EACtB,IAAI,KAAK,SAAS,WAAW,KAAK,SAAS,QAAQ;AAAA,IACjD,OAAO,CAAC,KAAK,IAAI;AAAA,EACnB;AAAA,EACA,OAAO,KAAK,SAAS,UAAU,CAAC,KAAK,IAAI,CAAC;AAAA,CAC3C;AAGH,IAAM,iBAAiB,CAAC,UACtB,MACG,IAAI,CAAC,SAAS;AAAA,EACb,IAAI,KAAK,SAAS,QAAQ;AAAA,IACxB,OAAO,KAAK;AAAA,EACd;AAAA,EACA,OAAO,KAAK,SAAS,UAAU,IAAI,KAAK,SAAS;AAAA,CAClD,EACA,KAAK,EAAE;AAGL,IAAM,qBAAqB,CAAC,SAAuB;AAAA,EACxD,MAAM,SAAS,IAAI,IACjB,KAAK,MAAM,QAAQ,CAAC,SAAS;AAAA,IAC3B,IAAI,KAAK,SAAS,QAAQ;AAAA,MACxB,OAAO,CAAC,KAAK,IAAI;AAAA,IACnB;AAAA,IACA,OAAO,KAAK,SAAS,UAAU,CAAC,KAAK,IAAI,CAAC;AAAA,GAC3C,CACH;AAAA,EACA,OAAO;AAAA,IACL,MAAM,eAAe,KAAK,KAAK;AAAA,IAC/B,IAAI,kBAAkB,KAAK,IAAI,CAAC,MAAM,YAAY;AAAA,MAChD,MAAM,UAAU,OAAO,IAAI,IAAI,IAAI,WAAW,IAAI;AAAA,MAClD,OAAO,UAAU,IAAI,YAAY;AAAA,KAClC;AAAA,EACH;AAAA;AAOK,IAAM,iBAAiB,CAC5B,MACA,WACG;AAAA,EACH,MAAM,QAAQ,IAAI,IAChB,KAAK,MAAM,QAAQ,CAAC,SAAU,KAAK,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAE,CACxE;AAAA,EACA,MAAM,SAAS,KAAK,MACjB,IAAI,CAAC,SAAS;AAAA,IACb,IAAI,KAAK,SAAS,QAAQ;AAAA,MACxB,OAAO,OAAO,KAAK,IAAI;AAAA,IACzB;AAAA,IACA,IAAI,KAAK,SAAS,SAAS;AAAA,MACzB,OAAO,IAAI,KAAK;AAAA,IAClB;AAAA,IACA,OAAO,KAAK,SAAS,SAAS,IAAI,KAAK,UAAU,IAAI;AAAA,GACtD,EACA,KAAK,EAAE;AAAA,EACV,OAAO;AAAA,IACL,aAAa,kBAAkB,KAAK,IAAI,CAAC,MAAM,YAAY;AAAA,MACzD,MAAM,UAAU,MAAM,IAAI,IAAI,IAAI,IAAI,UAAU,IAAI;AAAA,MACpD,OAAO,UAAU,IAAI,YAAY;AAAA,KAClC;AAAA,IACD;AAAA,EACF;AAAA;AAGF,IAAM,eAAe;AAQd,IAAM,gBAAgB,CAAC,SAAuB;AAAA,EACnD,MAAM,YAAY,KAAK,MAAM,SAAS;AAAA,EACtC,MAAM,OAAO,KAAK,MACf,IAAI,CAAC,MAAM,UAAU;AAAA,IACpB,IAAI,KAAK,SAAS,QAAQ;AAAA,MAExB,MAAM,UACJ,UAAU,aAAa,QAAQ,IAC3B,KAAK,KAAK,QAAQ,QAAQ,EAAE,IAC5B,KAAK;AAAA,MACX,OAAO,QAAQ,WAAW,cAAc,OAAO,QAAQ;AAAA,IACzD;AAAA,IACA,IAAI,KAAK,SAAS,SAAS;AAAA,MACzB,OAAO;AAAA,IACT;AAAA,IACA,OAAO,KAAK,SAAS,SAAS,UAAU;AAAA,GACzC,EACA,KAAK,EAAE;AAAA,EACV,MAAM,QAAQ,aAAa,KAAK,KAAK;AAAA,EACrC,OAAO;AAAA,IACL,UAAU,kBAAkB,KAAK,IAAI,CAAC,MAAM,YAAY;AAAA,MACtD,MAAM,YAAY,IAAI,MAAM,QAAQ,IAAI,IAAI;AAAA,MAC5C,OAAO,UAAU,IAAI,cAAc;AAAA,KACpC;AAAA,IACD,QAAQ,SAAS,MAAM,QAAQ,IAAI;AAAA,EACrC;AAAA;AAWF,IAAM,cAAc,CAAC,SAAyC;AAAA,EAC5D,QAAQ,UAAU,WAAW,cAAc,IAAI;AAAA,EAC/C,OAAO,CAAC,QAAQ,UAAU,QAAQ,GAAG,KAAK,MAAM;AAAA;AAS3C,IAAM,mBAAmB,CAC9B,cACuB,UAAU,QAAQ,cAAc,EAAE,IAAI,WAAW;AASnE,IAAM,uBAAuB,CAClC,cAEA,WAAW,SAAS,EACjB,QAAQ,CAAC,aAAa;AAAA,EACrB,MAAM,QAAQ,eAAe,QAAQ;AAAA,EACrC,OAAO,MAAM,SAAS,IAClB,QACA;AAAA,IACE;AAAA,MACE,OAAO,CAAC,EAAE,MAAM,QAAQ,MAAM,cAAc,SAAS,IAAI,EAAE,CAAC;AAAA,MAC5D,QAAQ,SAAS;AAAA,MACjB,IAAI,SAAS;AAAA,IACf;AAAA,EACF;AAAA,CACL,EACA,IAAI,WAAW;AAGb,IAAM,gBAAgB,CAAC,UAC5B,UAAU,KAAK,EAAE,WAAW,KAAK,KAAK,EAAE,WAAW,KAAK,KAAK;AAGxD,IAAM,eAAe,CAC1B,UACA,UAEA,SAAS,WAAW,qBAAqB,CAAC,YAAY,UACpD,cAAc,MAAM,OAAO,KAAK,MAAM,EAAE,CAC1C;AAMK,IAAM,wBAAwB,CACnC,UACA,SAC8C;AAAA,EAC9C,YAAY,QAAQ,UAAU,WAAW,UAAU;AAAA,IACjD,MAAM,QAAQ,IAAI,OAAO,QAAQ,GAAG,EAAE,KAAK,IAAI;AAAA,IAC/C,IAAI,OAAO;AAAA,MACT,OAAO,CAAC,aAAa,UAAU,KAAK,GAAG,MAAM;AAAA,IAC/C;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,cAAc,CAAC,QAAwB;AAAA,EAClD,OAAO,OAAO,MAAM,IAAI,MAAM,SAAS,CAAC;AAAA,EACxC,IAAI;AAAA,IACF,OAAO,mBAAmB,IAAI;AAAA,IAC9B,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAQJ,IAAM,qBAAqB,CAChC,WACA,SACuB;AAAA,EACvB,WAAW,QAAQ,UAAU,QAAQ,cAAc,GAAG;AAAA,IACpD,QAAQ,UAAU,WAAW,cAAc,IAAI;AAAA,IAC/C,MAAM,QAAQ,IAAI,OAAO,QAAQ,GAAG,EAAE,KAAK,IAAI;AAAA,IAC/C,IAAI,OAAO;AAAA,MACT,OAAO,SAAS,WACd,qBACA,CAAC,YAAY,UAAkB,MAAM,OAAO,KAAK,MAAM,EACzD;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA;AAOK,IAAM,oBAAoB,CAC/B,MACA,UACa;AAAA,EACb,MAAM,UAAU,eAAe,EAAE,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,EAAE,IAC3D,CAAC,SAAS,IAAI,OAAO,cAAc,IAAI,EAAE,QAAQ,GAAG,CACtD;AAAA,EACA,OAAO,MAAM,OAAO,CAAC,SAAS,QAAQ,KAAK,CAAC,WAAW,OAAO,KAAK,IAAI,CAAC,CAAC;AAAA;;;AC/iB3E;AAEA,uCAA4B,gCAAoB;AAYhD,IAAM,mBAAmB,IAAI,IAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAID,IAAM,kBAAkB,IAAI,IAAI,CAAC,OAAO,MAAM,CAAC;AAG/C,IAAM,mBAAmB,CAAC,WACxB,EAAE,OAAO,WAAW,GAAG,KAAK,OAAO,WAAW,GAAG,MAAM,CAAC,IAAI,SAAS,MAAM;AAG7E,IAAM,eAAe,CAAC,WAA2B;AAAA,EAC/C,IAAI;AAAA,IACF,OAAO,UAAU,MAAM;AAAA,IACvB,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAWJ,IAAM,wBAAwB,CAAC,WACpC,iBAAiB,MAAM,KACvB,iBAAiB,IAAI,SAAQ,aAAa,MAAM,CAAC,EAAE,YAAY,CAAC;AASlE,IAAM,kBAAkB,CAAC,KAAa,aAA8B;AAAA,EAClE,IAAI,UAAU;AAAA,EACd,SAAS,IAAI,EAAG,IAAI,UAAU,KAAK,GAAG;AAAA,IACpC,MAAM,SAAS,QAAQ,OAAO;AAAA,IAC9B,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,UAAU,YAAY,MAAM;AAAA,MAC5B,MAAM;AAAA,MACN,OAAO;AAAA;AAAA,IAET,IAAI,CAAC,QAAQ,SAAS,SAAS,OAAO,CAAC,GAAG;AAAA,MACxC,OAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,EACZ;AAAA,EACA,MAAM,OAAO,SAAS,KAAK,EAAE,gBAAgB,MAAM,CAAC;AAAA,EACpD,OAAO,SAAS,aAAa,KAAK,OAAO;AAAA;AAS3C,IAAM,gBAAgB,CAAC,WAAmB,SAAgC;AAAA,EACxE,MAAM,WAAW,UAAU,IAAI,EAC5B,MAAM,GAAG,EACT,OAAO,CAAC,SAAS,SAAS,MAAM,SAAS,IAAI,EAAE;AAAA,EAClD,MAAM,MAAM,SAAQ,WAAW,IAAI;AAAA,EACnC,OAAO,gBAAgB,KAAK,QAAQ,IAAI,MAAM;AAAA;AAUzC,IAAM,uBAAuB,CAClC,WACA,WAEA,sBAAsB,MAAM,IACxB,cAAc,WAAW,aAAa,MAAM,CAAC,IAC7C;AAiBC,IAAM,sBAAsB,CACjC,WACA,WACwB;AAAA,EACxB,MAAM,KAAK,OAAO,OAAO,OAAO;AAAA,EAChC,MAAM,OAAO,aAAa,OAAO,KAAK,SAAS,OAAO,MAAM,GAAG,EAAE,CAAC;AAAA,EAClE,MAAM,YAAY,SAAQ,IAAI,EAAE,YAAY;AAAA,EAC5C,IACE,CAAC,iBAAiB,MAAM,KACxB,cAAc,MACd,gBAAgB,IAAI,SAAS,GAC7B;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,cAAc,WAAW,IAAI;AAAA,EAC1C,OAAO,SAAS,OACZ,OACA,EAAE,MAAM,MAAM,QAAQ,OAAO,KAAK,KAAK,OAAO,MAAM,EAAE,EAAE;AAAA;;;AC/I9D,qBAAS;AAET,iBAAS;AAWF,IAAM,qBAAqB,CAChC,WACA,YAA8B,CAAC,MACC;AAAA,EAChC,MAAM,QAAQ,IAAI,IAAI,SAAS;AAAA,EAC/B,OAAO,CAAC,SAAS;AAAA,IACf,MAAM,SAAS,KAAK,SAAS,GAAG;AAAA,IAChC,MAAM,UAAU,SAAS,KAAK,MAAM,GAAG,EAAE,IAAI;AAAA,IAC7C,IAAI,MAAM,IAAI,OAAO,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,IACA,IAAI,cAAc,MAAM;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,IACA,MAAM,SAAS,MAAK,WAAW,OAAO;AAAA,IACtC,MAAM,OAAO,UAAS,QAAQ,EAAE,gBAAgB,MAAM,CAAC;AAAA,IACvD,IAAI,MAAM,YAAY,GAAG;AAAA,MACvB,OACE,UAAS,MAAK,QAAQ,YAAY,GAAG;AAAA,QACnC,gBAAgB;AAAA,MAClB,CAAC,GAAG,OAAO,MAAM;AAAA,IAErB;AAAA,IAEA,OAAO,CAAC,UAAU,MAAM,OAAO,MAAM;AAAA;AAAA;;;ALVzC,IAAM,OAAO;AACb,IAAM,oBAAoB;AAC1B,IAAM,SAAS;AAUf,IAAM,mBAAmB,IAAI,IAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,IAAM,iBAAgB,CAAC,UAA0B;AAAA,EAC/C,IAAI;AAAA,IACF,OAAO,mBAAmB,KAAK;AAAA,IAC/B,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAGX,IAAM,UAAU;AAChB,IAAM,WAAW;AAgBjB,IAAM,mBAAmB,CAAC,MAAgB,SACxC,KAAK,OAAO,iBAAiB,UAAS,KAAK,cAAc,KAAK,EAAE,OAAO;AAQzE,IAAM,sBAAsB,CAC1B,QACA,UACA,gBACW;AAAA,EACX,MAAM,WAAW,UACf,SAAQ,WAAW,GACnB,SAAQ,SAAQ,QAAQ,GAAG,MAAM,CACnC;AAAA,EACA,OAAO,SAAS,WAAW,GAAG,IAAI,WAAW,KAAK;AAAA;AAsCpD,IAAM,iBAAiB;AAavB,IAAM,cAAc,CAAC,SACnB,0BAA0B,KACxB,UAAS,KAAK,OAAO,EAAE,QAAQ,gBAAgB,EAAE,CACnD;AAGF,IAAM,oBAAoB,CAAC,UAAoB,SAAuB;AAAA,EACpE,IAAI,SAAS,MAAM,SAAS,KAAK;AAAA,IAC/B;AAAA,EACF;AAAA,EACA,IAAI,SAAS,MAAM;AAAA,IACjB,SAAS,IAAI;AAAA,IACb;AAAA,EACF;AAAA,EACA,SAAS,KAAK,IAAI;AAAA;AAIpB,IAAM,kBAAkB,CACtB,WACA,QACA,YACW;AAAA,EACX,MAAM,WAAW,UAAU,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,EAGpD,IAAI,CAAC,SAAS;AAAA,IACZ,SAAS,IAAI;AAAA,EACf;AAAA,EACA,WAAW,QAAQ,OAAO,MAAM,GAAG,GAAG;AAAA,IACpC,kBAAkB,UAAU,IAAI;AAAA,EAClC;AAAA,EACA,OAAO,IAAI,SAAS,KAAK,GAAG;AAAA;AAI9B,IAAM,UAAU,CAAC,SAAyB;AAAA,EACxC,IAAI,QAAQ,KAAK,QAAQ,SAAS,EAAE;AAAA,EACpC,IAAI,MAAM,SAAS,QAAQ,GAAG;AAAA,IAC5B,QAAQ,MAAM,MAAM,GAAG,CAAC,SAAS,MAAM;AAAA,EACzC;AAAA,EACA,IAAI,MAAM,SAAS,KAAK,MAAM,SAAS,GAAG,GAAG;AAAA,IAC3C,QAAQ,MAAM,MAAM,GAAG,EAAE;AAAA,EAC3B;AAAA,EACA,OAAO,UAAU,KAAK,MAAM;AAAA;AAY9B,IAAM,eAAe;AAGrB,IAAM,oBAAoB,CAAC,SACzB,OAAO,KAAK,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,GAAG;AA2BtC,IAAM,sBAAsB,CACjC,MACA,MACA,aACA,aACuB;AAAA,EACvB,IAAI,SAAS,MAAM,aAAa,KAAK,IAAI,GAAG;AAAA,IAC1C;AAAA,EACF;AAAA,EACA,MAAM,WAAW,KAAK,OAAO,OAAO;AAAA,EACpC,MAAM,OAAO,aAAa,KAAK,OAAO,KAAK,MAAM,GAAG,QAAQ;AAAA,EAC5D,MAAM,SAAS,aAAa,KAAK,KAAK,KAAK,MAAM,QAAQ;AAAA,EACzD,IAAI,SAAS,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,GAAG;AAAA,IAC9C,MAAM,QAAQ,QAAQ,gBAAgB,KAAK,OAAO,MAAM,KAAK,OAAO,CAAC;AAAA,IACrE,OAAO,WAAW,eAAc,KAAK,CAAC,IAAI,GAAG,QAAQ,WAAW;AAAA,EAClE;AAAA,EACA,MAAM,OAAO,eAAc,IAAI;AAAA,EAC/B,MAAM,YAAY,QAAQ,KAAK,IAAI,IAC9B,cAAc,IAAI,KAAK,cAAc,kBAAkB,IAAI,CAAC,IAC7D;AAAA,EACJ,OAAO,GAAG,aAAa,QAAQ,gBAAgB,KAAK,OAAO,MAAM,KAAK,OAAO,CAAC,IAAI;AAAA;AAY7E,IAAM,yBAAyB,CACpC,MACA,OACA,aACuB;AAAA,EACvB,IAAI,SAAS,MAAM,aAAa,KAAK,IAAI,GAAG;AAAA,IAC1C;AAAA,EACF;AAAA,EACA,MAAM,WAAW,KAAK,OAAO,OAAO;AAAA,EACpC,MAAM,OAAO,aAAa,KAAK,OAAO,KAAK,MAAM,GAAG,QAAQ;AAAA,EAC5D,MAAM,WAAW,gBAAgB,OAAO,MAAM,KAAK;AAAA,EACnD,IACE,SAAS,KAAK,IAAI,KAClB,CAAC,QAAQ,KAAK,IAAI,KAClB,CAAC,SAAS,eAAc,QAAQ,CAAC,GACjC;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO,GAAG,WAAW,aAAa,KAAK,KAAK,KAAK,MAAM,QAAQ;AAAA;AAe1D,IAAM,sBAAsB,CACjC,MACA,YAKuB;AAAA,EACvB,IAAI,CAAC,eAAe,IAAI,GAAG;AAAA,IACzB;AAAA,EACF;AAAA,EACA,MAAM,WAAW,KAAK,OAAO,OAAO;AAAA,EACpC,MAAM,OAAO,aAAa,KAAK,OAAO,KAAK,MAAM,GAAG,QAAQ;AAAA,EAC5D,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG;AAAA,IACvB;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,QAAQ,YACpB,MACE,QAAQ,aACR,cAAc,QAAQ,YAAY,eAAc,IAAI,CAAC,CACvD,CACF;AAAA,EACA,OAAO,UAAU,YACb,YACA,GAAG,QAAQ,aAAa,KAAK,KAAK,KAAK,MAAM,QAAQ;AAAA;AAWpD,IAAM,kBAAkB,CAC7B,MACA,eAAkC,CAAC,MACvB;AAAA,EACZ,MAAM,OAAO,UAAS,IAAI,EAAE,QAAQ,gBAAgB,EAAE;AAAA,EACtD,MAAM,QAAQ,iDAAiD,KAAK,IAAI;AAAA,EACxE,IAAI,CAAC,OAAO;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,MAAM,QAAQ;AAAA,EAC5B,OAAO,UAAU,aAAa,aAAa,SAAS,KAAK;AAAA;AAI3D,IAAM,mBAAmB,CAAC,UAAkD;AAAA,EAC1E,MAAM,UAAU,IAAI;AAAA,EACpB,WAAW,QAAQ,OAAO;AAAA,IACxB,QAAQ,IACN,KAAK,OACL,IAAI,IAAI;AAAA,MACN,GAAG,KAAK,SAAS,IAAI,CAAC,YAAY,QAAQ,IAAI;AAAA,MAC9C,GAAG,KAAK;AAAA,IACV,CAAC,CACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,cAAc,CAClB,OACA,UACA,MACA,KACA,MAAM,OACgB;AAAA,EACtB,MAAM,UAAU,IAAI,QAAQ,IAAI,KAAK;AAAA,EAGrC,IAAI,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,YAAY,CAAC,GAAG;AAAA,IAClE,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA,OACF;AAAA,IACH,MAAM;AAAA,IACN,SAAS,uBAAuB,kBAAkB,WAAW;AAAA,IAC7D,UAAU;AAAA,EACZ;AAAA;AAWF,IAAM,cAAc,CAClB,UACA,MACA,QAEA,IAAI,OACA,iBAAiB,UAAU;AAAA,EACzB,UAAU,IAAI;AAAA,EACd,MAAM,IAAI;AAAA,EACV,QAAQ,KAAK;AAAA,EACb,QAAQ;AAAA,IACN,KAAK,CAAC,UAAU,IAAI,OAAO,IAAI,KAAK,KAAK,IAAI,YAAY,IAAI,KAAK;AAAA,EACpE;AACF,CAAC,IACD;AAQN,IAAM,kBAAkB,CACtB,MACA,SACuB;AAAA,EACvB,MAAM,OAAO,eAAc,KAAK,OAAO,MAAM,OAAO,EAAE,MAAM,EAAE;AAAA,EAC9D,IACE,KAAK,OACL,CAAC,KAAK,cACN,KAAK,WAAW,GAAG,KACnB,CAAC,QAAQ,KAAK,IAAI,KAClB,CAAC,KAAK,MAAM,GAAG,EAAE,KAAK,CAAC,YAAY,QAAQ,WAAW,GAAG,CAAC,KAC1D,CAAC,WAAW,SAAQ,SAAQ,KAAK,UAAU,GAAG,IAAI,CAAC,GACnD;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO,GAAG;AAAA;AAGZ,IAAM,WAAW;AASjB,IAAM,gBAAgB,CACpB,UACA,MACA,MACA,QACuB;AAAA,EACvB,IAAI,CAAC,SAAS,KAAK,QAAQ,GAAG;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,MAAM,OAAO,SAAS,QAAQ,UAAU,EAAE;AAAA,EAC1C,MAAM,WAAW,QAAQ,KAAK,MAAM,OAAO,aAAa,IAAI,UAAU,IAAI,CAAC;AAAA,EAC3E,MAAM,QAAQ,YAAY,UAAU,MAAM,GAAG;AAAA,EAC7C,OAAO,IAAI,OAAO,IAAI,KAAK,KAAK,IAAI,YAAY,IAAI,KAAK,IACrD,WACA;AAAA;AAQN,IAAM,gBAAgB,CACpB,UACA,WACA,MACA,MACA,MACA,KACA,QACe;AAAA,EAOf,IAAI,KAAK,SAAS,KAAK,cAAc,sBAAsB,KAAK,MAAM,GAAG;AAAA,IACvE,IAAI,qBAAqB,SAAQ,KAAK,UAAU,GAAG,KAAK,MAAM,GAAG;AAAA,MAC/D,OAAO;AAAA,IACT;AAAA,IAIA,MAAM,WAAW,KAAK,OAClB,oBAAoB,KAAK,QAAQ,KAAK,YAAY,KAAK,IAAI,IAC3D,KAAK;AAAA,IACT,OAAO;AAAA,SACF;AAAA,MACH,MAAM;AAAA,MACN,SAAS,SAAS,kCAAkC,UAAS,KAAK,QAAQ,KAAK,UAAU;AAAA,MACzF,UAAU;AAAA,MACV,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EAIA,IACE,CAAC,KAAK,SACN,KAAK,cACL,oBAAoB,SAAQ,KAAK,UAAU,GAAG,KAAK,MAAM,GACzD;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,MAAM,YAAY,cAAc,UAAU,MAAM,MAAM,GAAG;AAAA,EACzD,IAAI,cAAc,WAAW;AAAA,IAC3B,OAAO;AAAA,SACF;AAAA,MACH,MAAM;AAAA,MACN,SAAS,QAAQ,KAAK,SAAS,iBAAiB;AAAA,MAChD,UAAU;AAAA,MACV,YAAY,oBAAoB;AAAA,IAClC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,OACF;AAAA,IACH,MAAM;AAAA,IACN,SAAS,SAAS;AAAA,IAClB,UAAU;AAAA,IACV,YAAY,yBAAyB;AAAA,EACvC;AAAA;AAIF,IAAM,gBAAgB,CACpB,UACA,UACA,MACA,MACA,MACA,KACA,MAAM,OACS;AAAA,EAOf,MAAM,gBAAgB,QACpB,KAAK,MAAM,WAAW,aAAa,IAAI,UAAU,QAAQ,CAC3D;AAAA,EACA,MAAM,QAAQ,YAAY,eAAe,MAAM,GAAG;AAAA,EAClD,IAAI,IAAI,OAAO,IAAI,KAAK,GAAG;AAAA,IACzB,OAAO,WAAW,YAAY,OAAO,UAAU,MAAM,KAAK,GAAG,IAAI;AAAA,EACnE;AAAA,EAGA,IAAI,IAAI,YAAY,IAAI,KAAK,GAAG;AAAA,IAC9B,OAAO;AAAA,EACT;AAAA,EAKA,IACE,IAAI,UAAU,IAAI,KAAK,KACvB,IAAI,iBAAiB,KACnB,CAAC,SAAS,kBAAkB,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CACtD,GACA;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAMA,MAAM,YAAY,cAAc,IAAI,UAAU,QAAQ;AAAA,EACtD,IAAI,IAAI,WAAW,SAAS,GAAG;AAAA,IAC7B,OAAO;AAAA,EACT;AAAA,EACA,IAAI,SAAS,KAAK,SAAS,KAAK,CAAC,QAAQ,KAAK,SAAS,GAAG;AAAA,IACxD,OAAO,cAAc,UAAU,WAAW,MAAM,MAAM,MAAM,KAAK,GAAG;AAAA,EACtE;AAAA,EAEA,OAAO;AAAA,OACF;AAAA,IACH,MAAM;AAAA,IACN,SAAS,kBAAkB,KAAK,SAAS,4BAA4B;AAAA,IACrE,UAAU;AAAA,IACV,YACE,gBAAgB,MAAM,IAAI,KAC1B;AAAA,EACJ;AAAA;AAWF,IAAM,kBAAkB,CACtB,SACA,UACA,MACA,MACA,MACA,KACA,QACe;AAAA,EACf,IAAI,IAAI,WAAW,QAAQ,GAAG;AAAA,IAC5B,OAAO;AAAA,EACT;AAAA,EACA,MAAM,aAAa,KAAK,QAAQ,KAAK;AAAA,EACrC,IAAI,QAAQ,WAAW,GAAG,KAAK,eAAe,WAAW;AAAA,IACvD,OAAO;AAAA,SACF;AAAA,MACH,MAAM;AAAA,MACN,SAAS,IAAI,KAAK,YAAY,KAAK,WAAW,iBAAiB;AAAA,MAC/D,UAAU;AAAA,MACV,YAAY,yBAAyB;AAAA,IACvC;AAAA,EACF;AAAA,EACA,IACE,KAAK,cACL,oBAAoB,SAAQ,KAAK,UAAU,GAAG,KAAK,MAAM,GACzD;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA,OACF;AAAA,IACH,MAAM;AAAA,IACN,SAAS,IAAI,KAAK,YAAY,KAAK,WAAW,iBAAiB,iEAAiE,mBAAmB,UAAS,UAAU;AAAA,IACtK,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AAAA;AAIF,IAAM,qBAAqB,OACzB,SAC0B;AAAA,EAC1B,MAAM,UAAU,MAAM,SAAS,KAAK,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;AAAA,EAEzD,MAAM,cAA4B,CAAC;AAAA,EACnC,WAAW,OAAO,MAAM;AAAA,IACtB,MAAM,SAAS,QAAQ,IAAI,IAAI,GAAG;AAAA,IAClC,MAAM,QAAQ,SAAS,cAAc,MAAM,IAAI;AAAA,IAC/C,IAAI,OAAO;AAAA,MACT,YAAY,KAAK;AAAA,QACf,MAAM;AAAA,QACN,QAAQ,IAAI;AAAA,QACZ,MAAM,IAAI;AAAA,QACV,MAAM,IAAI;AAAA,QACV,SAAS,iBAAiB,IAAI,uBAAuB,MAAM;AAAA,QAC3D,UAAU,MAAM;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAmCF,IAAM,sBAAsB,CACjC,OACA,SACmB;AAAA,EACnB,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,mBAAmB,IAAI;AAAA,EAC7B,MAAM,YAAY,IAAI;AAAA,EACtB,WAAW,QAAQ,OAAO;AAAA,IACxB,QAAQ,SAAS,eAAe;AAAA,IAChC,IAAI,KAAK,UAAU;AAAA,MACjB;AAAA,IACF;AAAA,IACA,MAAM,YAAY,KAAK,WAAW,MAAM;AAAA,IACxC,IAAI,YAAY,CAAC,UAAU,IAAI,OAAO,KAAK,YAAY;AAAA,MACrD,UAAU,IAAI,SAAS,KAAK,KAAK;AAAA,IACnC;AAAA,IACA,IAAI,CAAC,YAAY;AAAA,MACf;AAAA,IACF;AAAA,IACA,IAAI,CAAC,SAAS,IAAI,UAAU,KAAK,WAAW;AAAA,MAC1C,SAAS,IAAI,YAAY,KAAK,KAAK;AAAA,IACrC;AAAA,IACA,IAAI,WAAW;AAAA,MACb,iBAAiB,IAAI,WAAU,KAAK,OAAO,GAAG,KAAK,KAAK;AAAA,IAC1D;AAAA,EACF;AAAA,EACA,OAAO,EAAE,kBAAkB,WAAW,SAAS;AAAA;AAQ1C,IAAM,oBAAoB,CAC/B,OACA,MACA,SAEA,MAAM,SAAS,IAAI,SAAQ,SAAQ,KAAK,UAAU,GAAG,IAAI,CAAC,KAC1D,MAAM,iBAAiB,IAAI,WAAU,MAAK,SAAQ,KAAK,OAAO,GAAG,IAAI,CAAC,CAAC;AAOlE,IAAM,qBAAqB,CAChC,OACA,SACA,SAEA,MAAM,UAAU,IAAI,WAAU,MAAK,SAAQ,OAAO,GAAG,IAAI,CAAC,CAAC;AAS7D,IAAM,iBAAiB,CACrB,MACA,SACA,QACW;AAAA,EACX,MAAM,OAAO,EAAE,SAAS,YAAY,IAAI,GAAG,OAAO,KAAK,MAAM;AAAA,EAC7D,QAAQ,SAAS,SAAS,eAAe;AAAA,EACzC,IAAI;AAAA,EACJ,IAAI,YAAY;AAAA,IACd,cAAc,CAAC,SACb,kBAAkB,IAAI,YAAY,EAAE,SAAS,WAAW,GAAG,IAAI;AAAA,EACnE,EAAO,SAAI,SAAS;AAAA,IAClB,cAAc,CAAC,SAAS,mBAAmB,IAAI,YAAY,SAAS,IAAI;AAAA,EAC1E;AAAA,EACA,OACE,oBAAoB,SAAS,MAAM,aAAa,CAAC,UAC/C,IAAI,OAAO,IAAI,KAAK,CACtB,KAAK,gBAAgB,KAAK,OAAO,SAAS,KAAK,OAAO;AAAA;AAK1D,IAAM,kBAAkB,CACtB,MACA,MACA,SACA,QACW;AAAA,EACX,IAAI,CAAC,QAAQ,WAAW,GAAG,GAAG;AAAA,IAG5B,OAAO,KAAK,MACR,gBAAgB,KAAK,OAAO,SAAS,KAAK,IAC1C,eAAe,MAAM,SAAS,GAAG;AAAA,EACvC;AAAA,EAIA,OAAO,KAAK,OAAO,KAAK,QACpB,UACC,IAAI,cAAc,OAAO,KAAK;AAAA;AAIrC,IAAM,eAAe,CACnB,MACA,MACA,KACA,eACe;AAAA,EACf,QAAQ,WAAW;AAAA,EACnB,MAAM,OAAiB;AAAA,IACrB,QAAQ,KAAK;AAAA,IAGb,MAAM,KAAK,QAAQ,KAAK,cAAc,KAAK;AAAA,IAC3C,MAAM,KAAK;AAAA,EACb;AAAA,EAEA,IAAI,KAAK,KAAK,MAAM,KAAK,kBAAkB,KAAK,MAAM,GAAG;AAAA,IACvD,WAAW;AAAA,SACN;AAAA,MACH,KAAK,kBAAkB,KAAK,MAAM,IAAI,SAAS,WAAW;AAAA,IAC5D,CAAC;AAAA,IACD,OAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,OAAO,KAAK,MAAM,IAAI;AAAA,EACrC,IAAI,WAAW,WAAW;AAAA,IAGxB,OAAO,iBAAiB,IAAI,OAAO,YAAY,CAAC,IAC5C;AAAA,SACK;AAAA,MACH,MAAM;AAAA,MACN,SAAS,QAAQ,wBAAwB;AAAA,MACzC,UAAU;AAAA,MACV,YAAY;AAAA,IACd,IACA;AAAA,EACN;AAAA,EAEA,MAAM,YAAY,OAAO,QAAQ,GAAG;AAAA,EAIpC,MAAM,WAAW,eACf,cAAc,KAAK,KAAK,OAAO,MAAM,YAAY,CAAC,CACpD;AAAA,EACA,IAAI,UAAU,cAAc,KAAK,SAAS,OAAO,MAAM,GAAG,SAAS;AAAA,EACnE,MAAM,aAAa,QAAQ,QAAQ,GAAG;AAAA,EACtC,IAAI,eAAe,IAAI;AAAA,IACrB,UAAU,QAAQ,MAAM,GAAG,UAAU;AAAA,EACvC;AAAA,EACA,UAAU,eAAc,OAAO;AAAA,EAM/B,MAAM,MAAM,QAAQ,WAAW,GAAG,IAAI,KAAK,iBAAiB,MAAM,IAAI;AAAA,EACtE,IAAI,YAAY,IAAI;AAAA,IAClB,OAAO,WAAW,YAAY,KAAK,OAAO,UAAU,MAAM,KAAK,GAAG,IAAI;AAAA,EACxE;AAAA,EAEA,MAAM,WAAW,gBAAgB,MAAM,MAAM,SAAS,GAAG;AAAA,EACzD,IAAI,KAAK,KAAK;AAAA,IACZ,OAAO,gBAAgB,SAAS,UAAU,MAAM,MAAM,MAAM,KAAK,GAAG;AAAA,EACtE;AAAA,EACA,OAAO,cAAc,UAAU,UAAU,MAAM,MAAM,MAAM,KAAK,GAAG;AAAA;AASrE,IAAM,gBAAgB,CACpB,MACA,MACA,QACY;AAAA,EACZ,MAAM,QAAQ,QAAQ,aAAa,IAAI,UAAU,IAAI,CAAC;AAAA,EACtD,MAAM,aACJ,IAAI,UAAU,IAAI,KAAK,KACvB,IAAI,iBAAiB,KACnB,CAAC,SAAS,kBAAkB,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CACtD;AAAA,EACF,OACE,IAAI,OAAO,IAAI,KAAK,KACpB,IAAI,YAAY,IAAI,KAAK,KACxB,UAAU,QAAQ,cACnB,IAAI,WAAW,cAAc,IAAI,UAAU,IAAI,CAAC;AAAA;AAUpD,IAAM,qBAAqB,CACzB,QACA,KACA,cACY;AAAA,EACZ,MAAM,QAAQ,aAAa,IAAI,UAAU,MAAM;AAAA,EAC/C,MAAM,SAAS,OAAO,MAAM,GAAG,OAAO,YAAY,GAAG,IAAI,CAAC;AAAA,EAC1D,OACE,CAAC,GAAG,IAAI,QAAQ,GAAG,IAAI,aAAa,GAAG,IAAI,SAAS,EAAE,KAAK,CAAC,UAC1D,GAAG,SAAS,WAAW,KAAK,CAC9B,KACC,cAAc,QACb,UAAS,MAAK,WAAW,MAAM,GAAG;AAAA,IAChC,gBAAgB;AAAA,EAClB,CAAC,GAAG,YAAY,MAAM;AAAA;AAU5B,IAAM,4BAA4B,CAChC,WACA,KACA,YACiB;AAAA,EACjB,QAAQ,YAAY,cAAc;AAAA,EAClC,IAAI;AAAA,EACJ,OAAO,UAAU,QAAQ,CAAC,UAAU,UAAwB;AAAA,IAC1D,IAAI,CAAC,eAAe,SAAS,EAAE,GAAG;AAAA,MAChC,OAAO,CAAC;AAAA,IACV;AAAA,IACA,MAAM,OAAO,eAAc,SAAS,GAAG,MAAM,OAAO,EAAE,MAAM,EAAE;AAAA,IAC9D,MAAM,SAAS,kBAAkB,IAAI;AAAA,IACrC,MAAM,QACJ,WAAW,YACP,cACE,MACA,QAAQ,aAAa,IAAI,UAAU,SAAS,IAAI,CAAC,GACjD,GACF,IACA,mBAAmB,QAAQ,KAAK,SAAS;AAAA,IAC/C,IAAI,OAAO;AAAA,MACT,OAAO,CAAC;AAAA,IACV;AAAA,IACA,IAAI,cAAc,WAAW,WAAW;AAAA,MACtC,SAAS,aAAa,YAAY,OAAO;AAAA,IAC3C;AAAA,IACA,MAAM,WAAW,SACb,WAAW,QAAQ,CAAC,aAAa,OAAO,IAAI,CAAC,IAC7C;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,QAAQ,UAAU;AAAA,QAClB,MAAM;AAAA,QACN,MAAM,UAAU;AAAA,QAChB,SACE,WAAW,YACP,qBAAqB,SAAS,yBAAyB,SAAS,uDAChE,qBAAqB,SAAS,yBAAyB,SAAS,mCAAmC;AAAA,QACzG,UAAU;AAAA,QACV,YAAY;AAAA,MACd;AAAA,IACF;AAAA,GACD;AAAA;AAQI,IAAM,gBAAgB,OAC3B,OACA,YAuC0B;AAAA,EAC1B,MAAM,WAAW,QAAQ,YAAY;AAAA,EACrC,MAAM,aAAa,oBAAoB,MAAM,OAAO,QAAQ,QAAQ,IAAI;AAAA,EACxE,QAAQ,gBAAgB;AAAA,EACxB,MAAM,MAAmB;AAAA,IACvB,SAAS,iBAAiB,MAAM,KAAK;AAAA,IACrC;AAAA,IACA,aAAa,IAAI,KAAK,QAAQ,eAAe,CAAC,GAAG,IAAI,OAAO,CAAC;AAAA,IAC7D;AAAA,IACA,MAAM,QAAQ,QAAQ;AAAA,IACtB,mBAAmB,QAAQ,aAAa,CAAC,GAAG,QAAQ,CAAC,aACnD,cAAc,SAAS,IAAI,IACvB,CAAC,aAAa,UAAU,SAAS,IAAI,CAAC,IACtC,CAAC,CACP;AAAA,IACA,WAAW,IAAI,KACZ,QAAQ,aAAa,CAAC,GAAG,IAAI,CAAC,aAC7B,QAAQ,aAAa,UAAU,SAAS,IAAI,CAAC,CAC/C,CACF;AAAA,IACA,eAAe,CAAC,SACd,gBAAgB,YACZ,YACA,oBAAoB,MAAM;AAAA,MACxB;AAAA,MACA,YAAY,QAAQ,cAAc;AAAA,MAClC,aAAa,CAAC,SAAS,WAAW,SAAS,IAAI,IAAI;AAAA,IACrD,CAAC;AAAA,IACP,QAAQ,IAAI,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,IACnC,YAAY,mBAAmB,QAAQ,WAAW,QAAQ,cAAc;AAAA,EAC1E;AAAA,EACA,MAAM,cAA4B,CAAC;AAAA,EACnC,MAAM,WAA0B,CAAC;AAAA,EAEjC,WAAW,QAAQ,MAAM,OAAO;AAAA,IAC9B,WAAW,QAAQ,KAAK,OAAO;AAAA,MAC7B,MAAM,SAAS,aAAa,MAAM,MAAM,KAAK,CAAC,QAAQ,SAAS,KAAK,GAAG,CAAC;AAAA,MACxE,IAAI,QAAQ;AAAA,QACV,YAAY,KAAK,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AAAA,EACA,YAAY,KACV,GAAG,0BAA0B,QAAQ,aAAa,CAAC,GAAG,KAAK;AAAA,IACzD,YAAY,QAAQ;AAAA,IACpB,WAAW,QAAQ;AAAA,EACrB,CAAC,CACH;AAAA,EAIA,MAAM,SAAS,SAAS,OAAO,CAAC,QAAQ,CAAC,QAAQ,SAAS,IAAI,GAAG,CAAC;AAAA,EAClE,IAAI,QAAQ,iBAAiB,OAAO,SAAS,GAAG;AAAA,IAC9C,YAAY,KAAK,GAAI,MAAM,mBAAmB,MAAM,CAAE;AAAA,EACxD;AAAA,EAKA,MAAM,OAAO,IAAI;AAAA,EACjB,OAAO,YAAY,OAAO,CAAC,eAAe;AAAA,IACxC,MAAM,MAAM;AAAA,MACV,WAAW;AAAA,MACX,WAAW,QAAQ;AAAA,MACnB,WAAW,QAAQ;AAAA,MACnB,WAAW,UAAU;AAAA,MACrB,WAAW;AAAA,IACb,EAAE,KAAK;AAAA,CAAI;AAAA,IACX,IAAI,KAAK,IAAI,GAAG,GAAG;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,IACA,KAAK,IAAI,GAAG;AAAA,IACZ,OAAO;AAAA,GACR;AAAA;;;AMtjCH,uBAAS,6BAAY;AACrB;AAEA;AACA;AACA,qBAAS,sBAAU,wBAAS,qBAAY,mBAAM;AAC9C;AACA,cAAS;;;ACDF,IAAM,gBAAgB,CAAC,QAC5B,IACG,YAAY,EACZ,WAAW,mBAAmB,GAAG,EACjC,WAAW,qBAAqB,EAAE,KAAK;AASrC,IAAM,mBAAmB,CAC9B,MACA,YAAoC,CAAC,MAC1B;AAAA,EACX,MAAM,eAAe,OAAO,QAAQ;AAAA,IAClC,OAAO,IAAI,gBAAgB;AAAA,OACxB;AAAA,EACL,CAAC,EACE,SAAS,EAAE,KAAK,OAAQ,IAAI,IAAI,KAAK,CAAE,EACvC,IACC,EAAE,KAAK,WAAW,OAAO,KAAK,UAAU,GAAG,MAAM,KAAK,UAAU,KAAK,GACvE,EACC,KAAK;AAAA,CAAK;AAAA,EACb,OAAO;AAAA,YACG,KAAK,UAAU,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS7B;AAAA;AAAA;AAAA;AAAA;;;AC1CF,cAAS;AAyCF,IAAM,0BAA0B,0BAA0B,OAAO;AAAA,EACtE,aAAa,GAAE,OAAO;AAAA,EACtB,aAAa,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,QAAQ,qBAAqB,SAAS;AAAA,EACtC,MAAM,GAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQ,GAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,QAAQ,kBAAkB,SAAS;AAAA,EACnC,aAAa,GAAE,OAAO,EAAE,SAAS;AAAA,EACjC,OAAO,GAAE,OAAO;AAClB,CAAC;AAOM,IAAM,0BAA0B,wBACrC,cACA,uBACF;AASO,IAAM,aAAa,CAAC,aAAmD;AAAA,EAC5E,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC,yBAAyB;AAAA,EAC3C,aAAa,CAAC;AAChB;;;AC1EA,cAAS;AA0BF,IAAM,8BAA8B,0BAA0B,OAAO;AAAA,EAC1E,SAAS,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,QAAQ,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,OAAO,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACtC,OAAO,GAAE,OAAO;AAAA,EAChB,aAAa,GAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,MAAM,GAAE,OAAO;AACjB,CAAC;AAOM,IAAM,8BAA8B,wBACzC,mBACA,2BACF;AAOO,IAAM,iBAAiB,CAC5B,aAC2B;AAAA,EAC3B,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC,cAAc;AAAA,EAChC,aAAa,CAAC;AAChB;;;ACzDA,cAAS;AA4BF,IAAM,yBAAyB,0BAA0B,OAAO;AAAA,EACrE,OAAO,GAAE,MAAM,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACpC,QAAQ,GACL,aAAa;AAAA,IACZ,OAAO,GAAE,OAAO;AAAA,IAChB,MAAM,GAAE,OAAO,EAAE,QAAQ,EAAE;AAAA,IAC3B,KAAK,GAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAC9B,MAAM,GAAE,OAAO;AAAA,EACjB,CAAC,EACA,SAAS;AAAA,EACZ,SAAS,GAAE,MAAM,GAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC;AAAA,EAC3D,KAAK,GAAE,OAAO,EAAE,SAAS;AAC3B,CAAC;AAOM,IAAM,yBAAyB,wBACpC,cACA,sBACF;AAYO,IAAM,YAAY,CAAC,aAAiD;AAAA,EACzE,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,QAAQ,SAAS,CAAC,cAAc,IAAI,CAAC;AAAA,EACtD,aAAa,CAAC;AAChB;;;ACnEA,cAAS;AAoCF,IAAM,sBAAsB,0BAA0B,OAAO;AAAA,EAClE,aAAa,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC5C,UAAU,GAAE,OAAO;AAAA,EACnB,KAAK,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC1B,YAAY,GACT,aAAa;AAAA,IACZ,aAAa,GAAE,OAAO,EAAE,SAAS;AAAA,IACjC,OAAO,GAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,MAAM,GAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,QAAQ,GAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,OAAO,GAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC,EACA,SAAS;AAAA,EACZ,gBAAgB,GAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAIM,IAAM,sBAAsB,wBACjC,UACA,mBACF;AAOO,IAAM,SAAS,CAAC,aAA2C;AAAA,EAChE,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC,cAAc;AAAA,EAChC,aAAa,CAAC,kBAAkB;AAClC;;;ACrEA,cAAS;AAeF,IAAM,wBAAwB,0BAA0B,OAAO;AAAA,EACpE,SAAS,GAAE,MAAM,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACtC,OAAO,GAAE,OAAO,EAAE,IAAI,CAAC;AACzB,CAAC;AAIM,IAAM,wBAAwB,wBACnC,YACA,qBACF;AAOO,IAAM,WAAW,CAAC,aAA+C;AAAA,EACtE,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC;AAChB;;;ACrCA,cAAS;AAiCF,IAAM,uBAAuB,0BAA0B,OAAO;AAAA,EACnE,gBAAgB,GAAE,OAAO,EAAE,SAAS;AAAA,EACpC,YAAY,GAAE,OAAO;AAAA,EACrB,OAAO,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAC/C,QAAQ,qBAAqB,SAAS;AAAA,EACtC,QAAQ,kBAAkB,SAAS;AAAA,EACnC,KAAK,GAAE,OAAO;AAChB,CAAC;AAIM,IAAM,uBAAuB,wBAClC,WACA,oBACF;AAOO,IAAM,UAAU,CAAC,aAA6C;AAAA,EACnE,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC,iBAAiB;AAAA,EACnC,aAAa,CAAC;AAChB;;;AC3DA,cAAS;AAgCF,IAAM,sBAAsB,0BAA0B,OAAO;AAAA,EAClE,YAAY,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,SAAS,IAAE,OAAO;AAAA,EAClB,QAAQ,IACL,aAAa;AAAA,IACZ,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,aAAa,IAAE,OAAO,EAAE,SAAS;AAAA,IACjC,cAAc,IAAE,OAAO,EAAE,SAAS;AAAA,IAClC,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC,EACA,SAAS;AAAA,EACZ,WAAW,IAAE,OAAO;AAAA,EACpB,OAAO,IAAE,OAAO;AAClB,CAAC;AAIM,IAAM,sBAAsB,wBACjC,UACA,mBACF;AAOO,IAAM,SAAS,CAAC,aAA2C;AAAA,EAChE,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC,cAAc;AAAA,EAChC,aAAa,CAAC,gBAAgB;AAChC;;;ACjEA,cAAS;AA8BF,IAAM,sBAAsB,0BAA0B,OAAO;AAAA,EAClE,aAAa,IAAE,OAAO;AAAA,EACtB,QAAQ,qBAAqB,SAAS;AAAA,EACtC,QAAQ,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,QAAQ,kBAAkB,SAAS;AAAA,EACnC,UAAU,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,KAAK,IAAE,OAAO;AAChB,CAAC;AAIM,IAAM,sBAAsB,wBACjC,UACA,mBACF;AAQO,IAAM,SAAS,CAAC,aAA2C;AAAA,EAChE,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC,kBAAkB;AAAA,EACpC,aAAa,CAAC;AAChB;;;AC/CA,IAAM,QAAQ;AAAA,EACZ,aAAa;AAAA,EACb,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ,EAAE,MAAM,SAAS;AAC3B;AAEA,IAAM,gBAAgB,CAAC,iBAAyB;AAAA,EAC9C,SAAS;AAAA,IACP,oBAAoB,EAAE,QAAQ,EAAE,MAAM,6BAA6B,EAAE;AAAA,EACvE;AAAA,EACA;AACF;AAEA,IAAM,cAAc,CAAC,iBAAyB;AAAA,EAC5C,SAAS;AAAA,IACP,oBAAoB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,EAAE;AAAA,EACrE;AAAA,EACA;AACF;AAIA,IAAM,eAAe,OAAO,YAAY;AAAA,EACtC,CAAC,WAAW,OAAO;AAAA,EACnB;AAAA,IACE;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,CAAC,WAAW,CAAC,EAAE,KAAK,6BAA6B,CAAC,CAAC;AAAA,EACnD,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;AAAA,EACjC;AAAA,IACE;AAAA,IACA;AAAA,MACE;AAAA,QACE,aACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,MACE,SAAS;AAAA,QACP,KAAK;AAAA,UACH,aACE;AAAA,UACF,aAAa;AAAA,UACb,YAAY;AAAA,YACV;AAAA,cACE,aAAa;AAAA,cACb,IAAI;AAAA,cACJ,MAAM;AAAA,cACN,QAAQ,EAAE,MAAM,8BAA8B;AAAA,YAChD;AAAA,YACA;AAAA,cACE,aAAa;AAAA,cACb,IAAI;AAAA,cACJ,MAAM;AAAA,cACN,QAAQ;AAAA,gBACN,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT,MAAM;AAAA,cACR;AAAA,YACF;AAAA,YACA;AAAA,cACE,aAAa;AAAA,cACb,IAAI;AAAA,cACJ,MAAM;AAAA,cACN,QAAQ,EAAE,MAAM,SAAS;AAAA,YAC3B;AAAA,UACF;AAAA,UACA,WAAW;AAAA,YACT,OAAO;AAAA,cACL,SAAS;AAAA,gBACP,oBAAoB;AAAA,kBAClB,QAAQ,EAAE,MAAM,+BAA+B;AAAA,gBACjD;AAAA,cACF;AAAA,cACA,aAAa;AAAA,YACf;AAAA,UACF;AAAA,UACA,SAAS;AAAA,UACT,MAAM,CAAC,MAAM;AAAA,QACf;AAAA,QACA,MAAM;AAAA,UACJ,aACE;AAAA,UACF,aAAa;AAAA,UACb,aAAa;AAAA,YACX,SAAS;AAAA,cACP,oBAAoB;AAAA,gBAClB,QAAQ,EAAE,MAAM,8BAA8B;AAAA,cAChD;AAAA,YACF;AAAA,YACA,UAAU;AAAA,UACZ;AAAA,UACA,WAAW;AAAA,YACT,OAAO,YAAY,cAAc;AAAA,YACjC,OAAO,cAAc,+BAA+B;AAAA,UACtD;AAAA,UACA,SAAS;AAAA,UACT,MAAM,CAAC,MAAM;AAAA,QACf;AAAA,MACF;AAAA,MACA,iBAAiB;AAAA,QACf,QAAQ;AAAA,UACN,aACE;AAAA,UACF,aAAa;AAAA,UACb,YAAY,CAAC,KAAK;AAAA,UAClB,WAAW;AAAA,YACT,OAAO,EAAE,aAAa,uBAAuB;AAAA,YAC7C,OAAO,cAAc,qBAAqB;AAAA,UAC5C;AAAA,UACA,SAAS;AAAA,UACT,MAAM,CAAC,MAAM;AAAA,QACf;AAAA,QACA,KAAK;AAAA,UACH,aACE;AAAA,UACF,aAAa;AAAA,UACb,YAAY,CAAC,KAAK;AAAA,UAClB,WAAW;AAAA,YACT,OAAO,YAAY,UAAU;AAAA,YAC7B,OAAO,cAAc,qBAAqB;AAAA,UAC5C;AAAA,UACA,SAAS;AAAA,UACT,MAAM,CAAC,MAAM;AAAA,QACf;AAAA,QACA,OAAO;AAAA,UACL,aACE;AAAA,UACF,aAAa;AAAA,UACb,YAAY,CAAC,KAAK;AAAA,UAClB,aAAa;AAAA,YACX,SAAS;AAAA,cACP,oBAAoB;AAAA,gBAClB,QAAQ,EAAE,MAAM,iCAAiC;AAAA,cACnD;AAAA,YACF;AAAA,YACA,UAAU;AAAA,UACZ;AAAA,UACA,WAAW;AAAA,YACT,OAAO,YAAY,kBAAkB;AAAA,YACrC,OAAO,cAAc,qBAAqB;AAAA,UAC5C;AAAA,UACA,SAAS;AAAA,UACT,MAAM,CAAC,MAAM;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,MACE,SAAS;AAAA,QACP,OAAO;AAAA,UACL,YAAY;AAAA,YACV,MAAM,EAAE,SAAS,aAAa,MAAM,SAAS;AAAA,YAC7C,SAAS,EAAE,SAAS,uBAAuB,MAAM,SAAS;AAAA,UAC5D;AAAA,UACA,UAAU,CAAC,QAAQ,SAAS;AAAA,UAC5B,MAAM;AAAA,QACR;AAAA,QACA,QAAQ;AAAA,UACN,YAAY;AAAA,YACV,MAAM,EAAE,SAAS,SAAS,MAAM,SAAS;AAAA,YACzC,SAAS,EAAE,MAAM,+BAA+B;AAAA,UAClD;AAAA,UACA,UAAU,CAAC,QAAQ,SAAS;AAAA,UAC5B,MAAM;AAAA,QACR;AAAA,QACA,KAAK;AAAA,UACH,YAAY;AAAA,YACV,WAAW,EAAE,QAAQ,aAAa,MAAM,SAAS;AAAA,YACjD,IAAI,EAAE,SAAS,aAAa,MAAM,SAAS;AAAA,YAC3C,MAAM,EAAE,SAAS,SAAS,MAAM,SAAS;AAAA,YACzC,SAAS,EAAE,MAAM,+BAA+B;AAAA,YAChD,QAAQ,EAAE,MAAM,8BAA8B;AAAA,UAChD;AAAA,UACA,UAAU,CAAC,MAAM,QAAQ,WAAW,UAAU,WAAW;AAAA,UACzD,MAAM;AAAA,QACR;AAAA,QACA,SAAS;AAAA,UACP,YAAY;AAAA,YACV,MAAM;AAAA,cACJ,OAAO,EAAE,MAAM,2BAA2B;AAAA,cAC1C,MAAM;AAAA,YACR;AAAA,YACA,YAAY;AAAA,cACV,aAAa;AAAA,cACb,MAAM,CAAC,UAAU,MAAM;AAAA,YACzB;AAAA,UACF;AAAA,UACA,UAAU,CAAC,QAAQ,YAAY;AAAA,UAC/B,MAAM;AAAA,QACR;AAAA,QACA,WAAW;AAAA,UACT,YAAY;AAAA,YACV,MAAM,EAAE,MAAM,SAAS;AAAA,YACvB,QAAQ,EAAE,MAAM,8BAA8B;AAAA,UAChD;AAAA,UACA,MAAM;AAAA,QACR;AAAA,QACA,SAAS,EAAE,MAAM,CAAC,OAAO,OAAO,QAAQ,QAAQ,GAAG,MAAM,SAAS;AAAA,QAClE,QAAQ,EAAE,MAAM,CAAC,aAAa,WAAW,SAAS,GAAG,MAAM,SAAS;AAAA,MACtE;AAAA,MACA,iBAAiB;AAAA,QACf,YAAY,EAAE,QAAQ,UAAU,MAAM,OAAO;AAAA,MAC/C;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAGM,IAAM,uBAAuB,GAAG,KAAK,UAAU,cAAc,MAAM,CAAC;AAAA;;;AVrNpE,IAAM,YAAY,CAAC,QAAQ,OAAO,OAAO,WAAW;AAGpD,IAAM,mBAAmB,CAAC,OAAO,QAAQ,QAAQ,KAAK;AAItD,IAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAuCA,IAAM,OAAO,CAAC,OAAe,aAAqB,SAChD;AAAA,SAAe;AAAA,eAAuB;AAAA;AAAA;AAAA,EAAuB;AAAA;AAExD,IAAM,WAAW;AAAA,EACtB,KAAK;AAAA,IACH,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYb,eAAe,CAAC,4CAA4C;AAAA,IAC5D,OAAO,CAAC,QAAQ;AAAA,MACd;AAAA,QACE,SAAS,KACP,iBACA,6IACA,iJACF;AAAA,QACA,MAAM,MAAK,KAAK,WAAW;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,cAAc,CAAC,EAAE,SAAS,sBAAsB,MAAM,eAAe,CAAC;AAAA,EACxE;AAAA,EACA,WAAW;AAAA,IACT,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOb,eAAe,CAAC;AAAA,IAChB,OAAO,CAAC,QAAQ;AAAA,MACd;AAAA,QACE,SAAS,KACP,gBACA,0IACA,wHACF;AAAA,QACA,MAAM,MAAK,KAAK,WAAW;AAAA,MAC7B;AAAA,MACA;AAAA,QACE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA2O;AAAA;AAAA,QACpP,MAAM,MAAK,KAAK,aAAa,YAAY;AAAA,MAC3C;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,eAAe,CAAC;AAAA,IAChB,OAAO,CAAC,QAAQ;AAAA,MACd;AAAA,QACE,SAAS,KACP,gBACA,kIACA;AAAA;AAAA,SAAyF,gEAC3F;AAAA,QACA,MAAM,MAAK,KAAK,WAAW;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH,aAAa;AAAA,IACb,eAAe,CAAC;AAAA,IAChB,OAAO,CAAC,QAAQ;AAAA,MACd;AAAA,QACE,SAAS,KACP,gBACA,uIACA,8EACF;AAAA,QACA,MAAM,MAAK,KAAK,WAAW;AAAA,MAC7B;AAAA,MACA;AAAA,QACE,SAAS,KACP,gBACA,0IACA,mCACF;AAAA,QACA,MAAM,MAAK,KAAK,kBAAkB;AAAA,MACpC;AAAA,IACF;AAAA,EACF;AACF;AAOO,IAAM,cAAc,CAAC,QAAwB;AAAA,EAElD,KAAK,OAAO,QAAQ,gBAAgB,GAAG;AAAA,EAGvC,OAAO,OAAO,SAAS,OAAO,QAAQ,GAAG,iBAAiB,GAAG;AAAA,EAC7D,KAAK,OAAO,QAAQ,gBAAgB,GAAG;AAAA,EACvC,MAAM,EAAE,KAAK,QAAQ,KAAK,OAAO,MAAM,aAAa,MAAM,OAAO,EAAE;AAAA,EACnE,SAAS,GAAG;AACd;AAGA,IAAM,kBAAkB;AAExB,IAAM,uBAAuB;AAMtB,IAAM,YAAY,CAAC,cACxB,gBAAgB,KAAK,SAAS,IAC1B,MAAM,cACN,OAAO,UAAU,WAAW,sBAAsB,OAAO,QAAQ;AAEvE,IAAM,mBAAmB,CAAC,UACxB,iBAAiB,KAAK,CAAC,OAAO,OAAO,KAAK;AAQrC,IAAM,uBAAuB,CAAC,cAAuC;AAAA,EAC1E,MAAM,OAAO,WAAW,MAAM,GAAG,EAAE;AAAA,EACnC,OAAO,SAAS,aAAa,iBAAiB,IAAI,IAAI,OAAO;AAAA;AAU/D,IAAM,mBAAmB,CAAC,SAAgC;AAAA,EACxD,IAAI,MAAM;AAAA,EACV,OAAO,CAAC,YAAW,MAAK,KAAK,MAAM,CAAC,GAAG;AAAA,IACrC,MAAM,SAAS,SAAQ,GAAG;AAAA,IAC1B,IAAI,WAAW,KAAK;AAAA,MAClB,OAAO;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EACR;AAAA,EACA,OAAO;AAAA;AAWF,IAAM,8BAA8B,OACzC,SAC4B;AAAA,EAM5B,MAAM,WAAW,MAAM,OAAO;AAAA,IAC5B,KAAK;AAAA,IACL,SAAS,iBAAiB,IAAI,KAAK;AAAA,EACrC,CAAC;AAAA,EACD,MAAM,OAAO,UAAU;AAAA,EACvB,OAAO,SAAS,aAAa,iBAAiB,IAAI,IAC9C,OACA,qBAAqB,QAAQ,IAAI,qBAAqB;AAAA;AAQrD,IAAM,qBAAqB,CAChC,MACA,QAEA,YAAW,GAAG,KAAK,UAAS,MAAM,MAAK,MAAM,GAAG,CAAC,EAAE,WAAW,IAAI,IAC9D,gDACA;AAGC,IAAM,WAAW,CAAC,QAAwB;AAAA,EAC/C,MAAM,QAAQ,IACX,WAAW,YAAY,GAAG,EAC1B,MAAM,MAAM,EACZ,OAAO,OAAO;AAAA,EACjB,OAAO,MAAM,WAAW,IACpB,YACA,MACG,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC,EAC1D,KAAK,GAAG;AAAA;AAQjB,IAAM,uBAAuB,CAAC,YAC5B,QAAQ,KAAK,CAAC,WAAW,WAAW,YAAY;AAGlD,IAAM,mBAAmB;AAAA,EACvB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACV;AAOA,IAAM,qBAAqB;AAAA,EACzB,YAAY,WAAW;AAAA,IACrB,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,OAAO;AAAA,EACT,CAAC;AAAA,EACD,mBAAmB,eAAe;AAAA,IAChC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACR,CAAC;AAAA,EACD,cAAc,UAAU;AAAA,IACtB,QAAQ,EAAE,OAAO,YAAY,MAAM,QAAQ,MAAM,YAAY;AAAA,IAC7D,QAAQ;AAAA,EACV,CAAC;AAAA,EACD,QAAQ,OAAO,EAAE,UAAU,oBAAoB,QAAQ,SAAS,CAAC;AAAA,EACjE,UAAU,SAAS,EAAE,QAAQ,SAAS,OAAO,QAAQ,CAAC;AAAA,EACtD,SAAS,QAAQ;AAAA,IACf,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,KAAK;AAAA,EACP,CAAC;AAAA,EACD,QAAQ,OAAO;AAAA,IACb,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,EACT,CAAC;AAAA,EACD,QAAQ,OAAO;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,KAAK;AAAA,EACP,CAAC;AACH;AAMA,IAAM,kBAAkB;AAAA,EACtB,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOZ,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnB,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMd,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,EAKR,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOV,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQR,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOV;AAGA,IAAM,iBAAiB,CAAC,YACtB,aAAa,OAAO,CAAC,SAAS,QAAQ,SAAS,IAAI,CAAC;AAGtD,IAAM,mBAAmB,CAAC,YACxB,YAAY,eAAe,OAAO,EAC/B,IAAI,CAAC,SAAS,iBAAiB,KAAK,EACpC,KAAK,IAAI;AAAA;AAGd,IAAM,kBAAkB,CAAC,YACvB,QAAQ,QAAQ,WAAW,IAAI,CAAC,YAAY,IAAI,QAAQ;AAO1D,IAAM,kBAAkB,CAAC,YAAiC;AAAA,EACxD,MAAM,UAAU,gBAAgB,OAAO;AAAA,EACvC,IAAI,CAAC,qBAAqB,OAAO,GAAG;AAAA,IAClC,OAAO,QAAQ,eAAe,SAC1B,KACA;AAAA;AAAA,YAEI,KAAK,UAAU,QAAQ,UAAU;AAAA;AAAA,EAE3C;AAAA,EAGA,MAAM,UAAU,eAAe,OAAO,EAAE,IAAI,CAAC,SAC3C,SAAS,eACL,4BAA4B,KAAK,UAAU,QAAQ,UAAU,UAC7D,gBAAgB,KACtB;AAAA,EACA,OAAO;AAAA;AAAA;AAAA,EAGP,QAAQ,KAAK;AAAA,CAAI;AAAA;AAAA;AAAA;AAMZ,IAAM,cAAc,CAAC,YAAiC;AAAA,EAC3D,MAAM,UAAU,SAAS,QAAQ;AAAA,EACjC,MAAM,UAAU,gBAAgB,OAAO;AAAA,EAGvC,MAAM,gBAAgB,qBAAqB,OAAO,IAC9C,iBAAiB,OAAO,IACxB;AAAA,EACJ,MAAM,UAAU;AAAA,IACd;AAAA,IACA,GAAG,QAAQ;AAAA,EACb,EAAE,KAAK;AAAA,CAAI;AAAA,EACX,OAAO,GAAG;AAAA,EACV;AAAA;AAAA,WAES,KAAK,UAAU,QAAQ,KAAK;AAAA,mDACY,QAAQ,cAAc,gBAAgB,OAAO;AAAA;AAAA;AAAA;AAMhG,IAAM,eAAe,IAAI,IAAI;AAAA,EAC3B,CAAC,oBAAoB,SAAS;AAAA,EAC9B,CAAC,kBAAkB,QAAQ;AAC7B,CAAC;AAGD,IAAM,iBAAiB,CAAC,YACtB,eAAe,OAAO,EAAE,QAAQ,CAAC,SAC/B,SAAS,eAAe,CAAC,IAAI,CAAC,mBAAmB,KAAK,CACxD;AAGF,IAAM,eAAe,CAAC,YAA0B;AAAA,EAC9C,MAAM,OAA+B,CAAC;AAAA,EACtC,WAAW,cAAc,eAAe,OAAO,GAAG;AAAA,IAChD,WAAW,OAAO,WAAW,aAAa;AAAA,MACxC,KAAK,OAAO,aAAa,IAAI,GAAG,KAAK;AAAA,IACvC;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAUT,IAAM,iBAAiB;AAAA;AAAA;AAAA;AAUvB,IAAM,SAAS;AAAA;AAAA;AAAA;AAUf,IAAM,kBAAkB,CACtB,MACA,UACkB;AAAA,EAClB,MAAM,OAAO,iBAAiB,IAAI;AAAA,EAClC,IAAI,MAAM;AAAA,EACV,OAAO,CAAC,MAAM,GAAG,GAAG;AAAA,IAClB,MAAM,SAAS,SAAQ,GAAG;AAAA,IAC1B,IAAI,QAAQ,QAAQ,WAAW,KAAK;AAAA,MAClC,OAAO;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EACR;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,WAAW,CAAC,SAAyB;AAAA,EACzC,IAAI;AAAA,IACF,OAAO,cAAa,MAAM,OAAO;AAAA,IACjC,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAKX,IAAM,oBAAoB,CAAC,SACzB,gBAAgB,MAAM,CAAC,QAAQ,YAAW,MAAK,KAAK,qBAAqB,CAAC,CAAC;AAG7E,IAAM,sBAAsB,IAAE,YAAY;AAAA,EACxC,UAAU,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAGD,IAAM,aAAa;AAEnB,IAAM,cAAc,CAAC,SAAyB,KAAK,WAAW,YAAY,EAAE;AAG5E,IAAM,aAAa,CAAC,OAAiB,OACnC,MAAM,SAAS,KAAK,UAAU,KAAK,EAAE,EAAE;AAUzC,IAAM,eAAe,CAAC,WAAmB,SAA0B;AAAA,EACjE,MAAM,KAAK,UAAS,WAAW,IAAI;AAAA,EACnC,IAAI,OAAO,IAAI;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,IAGF,OAAO,YAAY,QACjB,SAAS,MAAK,WAAW,qBAAqB,CAAC,CACjD;AAAA,IACA,SAAS,oBAAoB,UAAU,YAAY,CAAC,CAAC;AAAA,IACrD,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAET,IAAI,CAAC,OAAO,SAAS;AAAA,IACnB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,OAAO,KAAK;AAAA,EAC1B,MAAM,WAAW,MACd,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW,GAAG,CAAC,EACtC,IAAI,WAAW;AAAA,EAClB,MAAM,WAAW,MACd,OAAO,CAAC,SAAS,KAAK,WAAW,GAAG,CAAC,EACrC,IAAI,CAAC,SAAS,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;AAAA,EAC3C,OAAO,WAAW,UAAU,EAAE,KAAK,CAAC,WAAW,UAAU,EAAE;AAAA;AAQtD,IAAM,uBAAuB,CAClC,MACA,YACY;AAAA,EACZ,IAAI,QAAQ,mBAAmB,QAAQ;AAAA,IACrC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,YAAY,kBAAkB,IAAI;AAAA,EACxC,OAAO,cAAc,QAAQ,CAAC,aAAa,WAAW,IAAI;AAAA;AAO5D,IAAM,kBAAkB,CAAC,SACvB,gBACE,MACA,CAAC,QACC,YAAW,MAAK,KAAK,WAAW,CAAC,KACjC,YAAW,MAAK,KAAK,aAAa,CAAC,KACnC,oBAAoB,KAAK,SAAS,MAAK,KAAK,cAAc,CAAC,CAAC,CAChE;AAMK,IAAM,YAAY,CAAC,cAA2C;AAAA,EACnE,MAAM,QAAQ,0BAA0B,KAAK,aAAa,EAAE;AAAA,EAC5D,OAAO,OAAO,QAAQ,UAAU,YAC5B,YACA,OAAO,MAAM,OAAO,KAAK;AAAA;AAgB/B,IAAM,0BAA0B,CAC9B,MACA,SACA,QACmB;AAAA,EACnB,IAAI,YAAW,MAAK,MAAM,cAAc,CAAC,GAAG;AAAA,IAC1C,OAAO,CAAC;AAAA,EACV;AAAA,EACA,IAAI,QAAQ,mBAAmB,UAAU,kBAAkB,IAAI,MAAM,MAAM;AAAA,IACzE,OAAO;AAAA,MACL,EAAE,SAAS,gBAAgB,MAAM,MAAK,MAAM,qBAAqB,EAAE;AAAA,IACrE;AAAA,EACF;AAAA,EACA,IACE,QAAQ,mBAAmB,UAC3B,UAAU,IAAI,SAAS,MAAM,KAC7B,gBAAgB,IAAI,MAAM,MAC1B;AAAA,IACA,OAAO,CAAC,EAAE,SAAS,QAAQ,MAAM,MAAK,MAAM,aAAa,EAAE,CAAC;AAAA,EAC9D;AAAA,EACA,OAAO,CAAC;AAAA;AAGV,IAAM,mBAAmB;AAAA;AAUlB,IAAM,gBAAgB,CAC3B,MACA,SACA,MAAuB,CAAC,MACD;AAAA,EACvB,IAAI,QAAQ,mBAAmB,QAAQ;AAAA,IACrC,MAAM,YAAY,kBAAkB,IAAI;AAAA,IACxC,IAAI,CAAC,WAAW;AAAA,MACd;AAAA,IACF;AAAA,IACA,MAAM,OAAO,MAAK,WAAW,qBAAqB;AAAA,IAClD,MAAM,WAAW,SAAS,IAAI,EAAE,SAAS,SAAS;AAAA,IAClD,IAAI,CAAC,aAAa,WAAW,IAAI,GAAG;AAAA,MAClC,MAAM,QAAQ;AAAA,QAAsB,UAAS,WAAW,IAAI;AAAA,MAC5D,OAAO,WACH,iDAAiD;AAAA;AAAA,EAA4G,UAC7J,iDAAiD;AAAA;AAAA,EAAuL;AAAA,EAAU;AAAA,IACxP;AAAA,IACA,IAAI,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,IACA,OAAO,4CAA4C;AAAA;AAAA,EAA2G;AAAA,EAChK;AAAA,EACA,IAAI,QAAQ,mBAAmB,UAAU,UAAU,IAAI,SAAS,MAAM,GAAG;AAAA,IACvE;AAAA,EACF;AAAA,EACA,MAAM,UAAU,gBAAgB,IAAI;AAAA,EACpC,MAAM,KAAK,WAAW,MAAK,SAAS,aAAa;AAAA,EACjD,IAAI,CAAC,MAAM,8CAA8C,KAAK,SAAS,EAAE,CAAC,GAAG;AAAA,IAC3E;AAAA,EACF;AAAA,EACA,OAAO,0CAA0C,oDAAoD;AAAA;AAAA;AAAA;AAIhG,IAAM,YAAY,CACvB,MACA,SACA,MAAuB,CAAC,MACL;AAAA,EACnB,MAAM,UAAmB,SAAS,QAAQ;AAAA,EAC1C,MAAM,QAAwB;AAAA,IAC5B;AAAA,MACE,SAAS,iBACP,cAAc,UAAS,IAAI,CAAC,GAC5B,aAAa,QAAQ,OAAO,CAC9B;AAAA,MACA,MAAM,MAAK,MAAM,cAAc;AAAA,IACjC;AAAA,IACA,GAAG,wBAAwB,MAAM,SAAS,GAAG;AAAA,IAC7C,EAAE,SAAS,YAAY,OAAO,GAAG,MAAM,MAAK,MAAM,iBAAiB,EAAE;AAAA,IACrE,IAAI,QAAQ,gBAAgB,CAAC,GAAG,IAAI,CAAC,UAAU;AAAA,SAC1C;AAAA,MACH,MAAM,MAAK,MAAM,KAAK,IAAI;AAAA,IAC5B,EAAE;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ,QAAQ,WAAW,KAAK,QAAQ,QAAQ,SAAS,YAAY,GAAG;AAAA,IAC1E,MAAM,KACJ,GAAG,QACA,MAAM,QAAQ,UAAU,EACxB,IAAI,CAAC,UAAU,KAAK,MAAM,MAAM,MAAK,MAAM,KAAK,IAAI,EAAE,EAAE,CAC7D;AAAA,EACF;AAAA,EAIA,IAAI,QAAQ,QAAQ,SAAS,UAAU,GAAG;AAAA,IACxC,MAAM,KAAK;AAAA,MACT,SACE;AAAA,MACF,MAAM,MAAK,MAAM,SAAS,YAAY;AAAA,IACxC,CAAC;AAAA,EACH;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,gBAAgB,OACpB,MACA,QACqB;AAAA,EACrB,IAAI,YAAW,KAAK,IAAI,GAAG;AAAA,IACzB,IAAI,KAAK,oBAAoB,KAAK,MAAM;AAAA,IACxC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,MAAM,SAAQ,KAAK,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EACnD,MAAM,UAAU,KAAK,MAAM,KAAK,SAAS,OAAO;AAAA,EAChD,IAAI,QAAQ,WAAW,KAAK,MAAM;AAAA,EAClC,OAAO;AAAA;AAOF,IAAM,YAAY,OACvB,OACA,QACyC;AAAA,EACzC,MAAM,UAAU,MAAM,QAAQ,IAC5B,MAAM,IAAI,CAAC,SAAS,cAAc,MAAM,GAAG,CAAC,CAC9C;AAAA,EACA,MAAM,iBAAiB,MAAM,KAC3B,CAAC,MAAM,UAAU,QAAQ,UAAU,UAAS,KAAK,IAAI,MAAM,cAC7D;AAAA,EACA,OAAO,EAAE,eAAe;AAAA;AAI1B,IAAM,aAAa,CAAC,YAAoC;AAAA,EACtD,GAAG,IAAI,IACL,eAAe,OAAO,EAAE,QAAQ,CAAC,eAAe,WAAW,eAAe,CAC5E;AACF;AAiBA,IAAM,gBAAgB,CAAC,SAA0B;AAAA,EAC/C,IAAI,MAAM;AAAA,EACV,OAAO,CAAC,YAAW,MAAK,KAAK,gBAAgB,SAAS,cAAc,CAAC,GAAG;AAAA,IACtE,MAAM,SAAS,SAAQ,GAAG;AAAA,IAC1B,IAAI,WAAW,KAAK;AAAA,MAClB,OAAO;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EACR;AAAA,EACA,OAAO;AAAA;AAOF,IAAM,sBAAsB,OACjC,SAC6B;AAAA,EAC7B,IAAI;AAAA,IAGF,MAAM,MAAM,KAAK,MACf,MAAM,SAAS,MAAK,MAAM,cAAc,GAAG,OAAO,CACpD;AAAA,IAKA,OAAO;AAAA,MACL,gBAAgB,cAAc,IAAI;AAAA,MAClC,cAAc,OAAO,KAAK;AAAA,WACrB,IAAI;AAAA,WACJ,IAAI;AAAA,MACT,CAAC;AAAA,MACD,cAAc,OAAO,IAAI,SAAS,OAAO,EAAE,EAAE,SAAS,OAAO;AAAA,IAC/D;AAAA,IACA,MAAM;AAAA,IACN,OAAO;AAAA,MACL,gBAAgB,cAAc,IAAI;AAAA,MAClC,cAAc,CAAC;AAAA,MACf,cAAc;AAAA,IAChB;AAAA;AAAA;AAaG,IAAM,YAAY,CACvB,SACA,cACA,UACA,SACW;AAAA,EACX,MAAM,WAAW,YAAY,QAAQ,cAAc;AAAA,EACnD,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,QAAQ,cAAc,KAAK;AAAA,IAC7B,MAAM,KAAK,UAAU,QAAQ,SAAS,CAAC;AAAA,EACzC;AAAA,EACA,IAAI,cAAc;AAAA,IAChB,MAAM,KAAK,SAAS,OAAO;AAAA,EAC7B;AAAA,EACA,IAAI,UAAU;AAAA,IACZ,MAAM,UAAU;AAAA,MACd;AAAA,MACA,GAAG,OAAO,KAAK,aAAa,QAAQ,OAAO,CAAC;AAAA,IAC9C,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,aAAa,SAAS,GAAG,CAAC;AAAA,IACtD,IAAI,QAAQ,SAAS,GAAG;AAAA,MACtB,MAAM,KAAK,GAAG,SAAS,OAAO,QAAQ,KAAK,GAAG,GAAG;AAAA,IACnD,EAAO,SAAI,EAAE,gBAAgB,SAAS,iBAAiB;AAAA,MACrD,MAAM,KAAK,SAAS,OAAO;AAAA,IAC7B;AAAA,EACF;AAAA,EACA,MAAM,KACJ,YAAY,CAAC,SAAS,eAClB,GAAG,SAAS,mBACZ,SAAS,GACf;AAAA,EACA,MAAM,UAAU,WAAW,QAAQ,OAAO;AAAA,EAC1C,MAAM,OACJ,QAAQ,SAAS,IACb;AAAA,MAAS,QAAQ,KAAK,OAAO;AAAA,IAC7B;AAAA,EACN,MAAM,YAAY,OAAO;AAAA,EAAK;AAAA,IAAW;AAAA,EACzC,OAAO;AAAA;AAAA,IAAoB,MAAM,KAAK;AAAA,GAAM;AAAA,EAAM,OAAO;AAAA;;;AW74B3D,oBAAS,kBAAS;AAKX,IAAM,UAAU,CAAC,YACtB,QAAQ,WAAW,MAAK,QAAQ,MAAM,MAAM;AASvC,IAAM,YAAY,CAAC,YACxB,MAAK,QAAQ,OAAO,GAAG,QAAQ;AAe1B,IAAM,cAAc,CAAC,YAC1B,SAAQ,QAAQ,OAAO,CAAC;AAGnB,IAAM,YAAY,CAAC,UAA6C;AAAA,EACrE,MAAM,UAAU,OAAO,KAAK;AAAA,EAC5B,IAAI,CAAC,SAAS;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,OAAO,gBAAgB,KAAK,OAAO,IAAI,UAAU,WAAW;AAAA;;;ACxC9D,uBAAS;AACT,kBAAS,oBAAO,wBAAU;AAE1B,qBAAS,sBAAU,kBAAS,oBAAM,sBAAU;;;ACKrC,IAAM,eAAe;AACrB,IAAM,WAAW;AACjB,IAAM,iBAAiB,GAAG;AAC1B,IAAM,gBAAgB,GAAG;AACzB,IAAM,sBAAsB,GAAG;AAC/B,IAAM,kBAAkB,GAAG;AAG3B,IAAM,YAAY,CAAC,UACxB,UAAU,MAAM,UAAU,MAAM,MAAM,CAAC;AAGlC,IAAM,eAAe,CAAC,UAC3B,GAAG,kBAAkB,UAAU,KAAK;;;ACftC,IAAM,eAAe;AAQd,IAAM,gBAAgB,CAAC,SAAyB;AAAA,EACrD,MAAM,UAAU,KAAK,KAAK;AAAA,EAC1B,OAAO,aAAa,KAAK,OAAO,IAAI,UAAU,GAAG;AAAA;;;ACM5C,IAAM,mBAAmB;AAEzB,IAAM,sBAAsB;AAK5B,IAAM,mBAAmB,sCAAsC;AAStE,IAAM,WAAW;AAGjB,IAAM,iBAAiB,CAAC,WAA2C;AAAA,EACjE,MAAM,OAAO,OAAO,WAAW,QAAQ,QAAQ;AAAA,EAC/C,MAAM,aAAa,kBAAkB,OAAO,WAAW,QAAQ,IAAI;AAAA,EACnE,MAAM,MAAM,CAAC,SAAyB;AAAA,IACpC,MAAM,QAAQ,cAAc,YAAY,IAAI;AAAA,IAC5C,OAAO,OAAO,aAAY,MAAM,KAAK,IAAI;AAAA;AAAA,EAG3C,MAAM,UAA0B,CAAC;AAAA,EACjC,WAAW,aAAa,kBAAkB,MAAM,GAAG;AAAA,IAGjD,MAAM,WACJ,UAAU,SAAS,WACf,UAAU,QACV,aAAa,UAAU,UAAU,UAAU,KAAK;AAAA,IACtD,MAAM,QAAsB;AAAA,MAC1B,QAAQ,IAAI,QAAQ;AAAA,MACpB,eAAe,CAAC,EAAE,MAAM,IAAI,QAAQ,GAAG,MAAM,YAAY,CAAC;AAAA,IAC5D;AAAA,IAGA,IAAI,SAAS,KAAK,UAAU,IAAI,GAAG;AAAA,MACjC,MAAM,kBAAkB,CAAC,EAAE,MAAM,UAAU,KAAK,CAAC;AAAA,IACnD;AAAA,IACA,QAAQ,KAAK,KAAK;AAAA,EACpB;AAAA,EAEA,IAAI,OAAO,OAAO,KAAK;AAAA,IACrB,QAAQ,KAAK;AAAA,MACX,QAAQ,IAAI,QAAQ;AAAA,MACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,YAAY,GAAG,MAAM,mBAAmB,CAAC;AAAA,MACtE,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,YAAY,CAAC;AAAA,IACvD,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,OAAO,OAAO,IAAI,SAAS;AAAA,IAC7B,QAAQ,KAAK;AAAA,MACX,QAAQ,IAAI,OAAO,OAAO,IAAI,KAAK;AAAA,MACnC,gBAAgB;AAAA,QACd,EAAE,MAAM,IAAI,uBAAuB,GAAG,MAAM,mBAAmB;AAAA,MACjE;AAAA,MACA,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,GAAG,MAAM,YAAY,CAAC;AAAA,IACvD,CAAC;AAAA,EACH;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,gBAAgB,CAAC,WAC5B,eAAe,MAAM,EAAE,SAAS;AAG3B,IAAM,kBAAkB,CAAC,WAA0C;AAAA,EACxE,MAAM,UAAU,eAAe,MAAM;AAAA,EACrC,IAAI,QAAQ,WAAW,GAAG;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,GAAG,KAAK,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC;AAAA;AAAA;;;AClF/C,IAAM,YAAY,CAAC,UAAqC;AAAA,EAGtD,MAAM,OAAO,cAAc,MAAM,MAAM,MAAM,KAAK;AAAA,EAGlD,OAAO,MAAM,OAAO,aAAY,MAAM,MAAM,IAAI,IAAI;AAAA;AAO/C,IAAM,oBAAoB,CAAC,WAA8B;AAAA,EAC9D,SAAS;AAAA,IACP;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,WAAW;AAAA,MACX,KAAK,UAAU,KAAK;AAAA,IACtB;AAAA,EACF;AACF;AAGA,IAAM,qBACJ;AAGF,IAAM,gBAAgB;AAEtB,IAAM,WAAW,CAAC,SAChB,KAAK,SAAS,gBAAgB,GAAG,KAAK,MAAM,GAAG,gBAAgB,CAAC,OAAO;AAOzE,IAAM,iBAAiB;AACvB,IAAM,kBAAkB;AAEjB,IAAM,eAAe,CAAC,SAC3B,SACE,KACG,UAAU,MAAM,EAChB,QAAQ,iBAAiB,EAAE,EAC3B,YAAY,EACZ,QAAQ,gBAAgB,GAAG,GAC9B,GACF;AAQF,IAAM,iBAAiB,CAAC,UAAqC;AAAA,EAC3D,IAAI,YAAY;AAAA,EAChB,IAAI,MAAM,MAAM;AAAA,IACd,IAAI;AAAA,MACF,YAAY,IAAI,IAAI,MAAM,IAAI,EAAE,SAC7B,MAAM,GAAG,EACT,WAAW,EACX,KAAK,GAAG;AAAA,MACX,MAAM;AAAA,EAGV;AAAA,EACA,OAAO,GAAG,aAAa,aAAa,MAAM,IAAI,KAAK;AAAA;AAGrD,IAAM,YAAW;AAkCV,IAAM,qBAAqB,CAAC,UAA4C;AAAA,EAC7E,MAAM,MAAM,UAAU,KAAK;AAAA,EAC3B,MAAM,OAAsB;AAAA,IAC1B,SAAS;AAAA,IAGT,cAAc;AAAA,MACZ,WAAW,EAAE,aAAa,OAAO,WAAW,MAAM;AAAA,MAClD,OAAO,EAAE,aAAa,MAAM;AAAA,IAC9B;AAAA,IACA,aAAa,SACX,yCAAyC,MAAM,qBACjD;AAAA,IACA,MAAM,eAAe,KAAK;AAAA,IAC1B,YAAY,EAAE,MAAM,MAAM,MAAM,SAAS,MAAM,QAAQ;AAAA,IACvD,OAAO,SAAS,MAAM,IAAI;AAAA,IAC1B,OAAO,UAAU,IAAI,CAAC,UAAU;AAAA,MAC9B,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,MACX,OAAO,KAAK;AAAA,IACd,EAAE;AAAA,IACF,WAAW;AAAA,IACX,YAAY,CAAC,EAAE,UAAU,KAAK,MAAM,kBAAkB,CAAC;AAAA,IACvD;AAAA,IACA,SAAS,MAAM;AAAA,EACjB;AAAA,EACA,IAAI,UAAS,KAAK,GAAG,GAAG;AAAA,IACtB,KAAK,UAAU,CAAC,EAAE,MAAM,mBAAmB,IAAI,CAAC;AAAA,EAClD;AAAA,EACA,IAAI,MAAM,MAAM;AAAA,IACd,KAAK,aAAa,SAAS,MAAM,IAAI;AAAA,EACvC;AAAA,EACA,OAAO;AAAA;;;ACzJT,iBAAS;;;ACHT;AACA;;;ACDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBO,IAAM,cAAc,YAAY,SACrC,cACA,UACA,WACA,SACA,UACA,MACF;;;ADHA,IAAM,mBAAmB,CACvB,UAC6B,OAAO,UAAU,YAAY,UAAU;AAEtE,IAAM,aAAa;AAAA,EAGjB,OAAO,CAAC,UAAmC;AAAA,IACzC,MAAM,QAAQ,KAAK,OAAO,EAAE,QAAQ,YAAY,CAAC;AAAA,IACjD,OAAO,iBAAiB,KAAK,IAAI,QAAQ,CAAC;AAAA;AAAA,EAE5C,WAAW,CAAC,SAAkC,KAAK,IAAI;AACzD;AAEA,IAAM,iBAAiB,CACrB,aAKC;AAAA,KACI;AAAA,EACH,SAAS;AAAA,IACP,MAAM;AAAA,OACH,SAAS;AAAA,EACd;AACF;AAcF,IAAM,yBAAyB,CAAC,UAA2B;AAAA,EACzD,OAAO,QAAQ,MAAM,MAAM,MAAM,UAAU,CAAC;AAAA,EAC5C,IAAI,CAAC,aAAa,KAAK,KAAK,GAAG;AAAA,IAC7B,OAAO;AAAA,EACT;AAAA,EAGA,OAAO,CAAC,MAAM,SAAS;AAAA,MAAS,CAAC;AAAA;AAgBnC,IAAM,cAAc,CAAC,UAAiD;AAAA,EACpE,MAAM,OAAqB;AAAA,IACzB,SAAS;AAAA,IACT,MAAM,CAAC;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,IAEN,WAAW,MAAc;AAAA,EAC3B;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,gBAAgB,CAAC,UACrB,OAAO,UAAU;AAMnB,IAAM,SAAS,OAAO,OACpB,CAAC,OAAoB,YACnB,cAAc,KAAK,KAAK,uBAAuB,KAAK,IAChD,YAAY,KAAK,IACjB,WAAW,OAAO,eAAe,OAAO,CAAC,GAC/C,YACA;AAAA,EACE,MAAM,CAAC,UAAuB,YAC5B,WAAW,KAAK,UAAU,eAAe,OAAO,CAAC;AAAA,EAKnD,WAAW,CACT,MACA,MACA,YAEA,WAAW,UACT,cAAc,IAAI,IAAI,EAAE,SAAS,KAAK,IAAI,MAC1C,MACA,eAAe,OAAO,CACxB;AACJ,CACF;AAEA,IAAe;;;AEpIf;AAgCA,IAAM,aAAa;AAGnB,IAAM,iBAAiB,IAAI;AAE3B,IAAM,cAAc,KAAK;AAKzB,IAAM,UAAU,IAAI;;;AHvBb,IAAM,mBAAmB;AACzB,IAAM,0BAA0B;AAgNhC,IAAM,qBAAqB,CAAC,WACjC,OAAO,OAAO,WAAW,QAAQ,OAAO,WAAW,QAAQ,IAAI;AAO1D,IAAM,oBAAoB,CAAC,WAChC,QAAQ,OAAO,OAAO,MAAM,KAAK,mBAAmB,MAAM;;;AI1MrD,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAC1B,IAAM,kBAAkB;AAC/B,IAAM,eAAe;AA0BrB,IAAM,uBAAuB;AAAA,EAC3B,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV;AAGA,IAAM,gBAAgB,CAAC,SAAyB,IAAI,IAAI,IAAI,EAAE;AAQvD,IAAM,eAAe,CAAC,WAC3B,OAAO,OAAO,QAAQ,WACtB,QAAQ,OAAO,WAAW,QAAQ,IAAI,MACrC,OAAO,OAAO,IAAI,WACjB,OAAO,OAAO,OACd,OAAO,OAAO,QAAQ,WACtB,kBAAkB,MAAM,KACxB,kBAAkB,MAAM,EAAE,SAAS;AAQhC,IAAM,4BAA4B,CAAC,WAAqC;AAAA,EAC7E,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,aAAa,MAAM,GAAG;AAAA,IACxB,MAAM,KAAK,iBAAiB,iBAAiB;AAAA,EAC/C;AAAA,EACA,IAAI,cAAc,MAAM,GAAG;AAAA,IACzB,MAAM,KAAK,gBAAgB;AAAA,EAC7B;AAAA,EACA,IAAI,OAAO,OAAO,IAAI,SAAS;AAAA,IAC7B,MAAM,KAAK,yBAAyB,mCAAmC;AAAA,EACzE;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,aAAa;AAQZ,IAAM,aAAa,CACxB,OACA,SAEA,WAAW,KAAK,MAAM,KAAK,CAAC,IAAI,OAAO,UAAU,OAAO,SAAS;AAEnE,IAAM,aAAa,CACjB,QACA,QACA,QACgB;AAAA,EAChB,QAAQ,UAAU;AAAA,EAClB,MAAM,gBAAgB,WAAW,OAAO,eAAe;AAAA,EACvD,MAAM,OAAO,WAAW,OAAO,MAAM;AAAA,EACrC,MAAM,QAAqB,CAAC;AAAA,EAE5B,IAAI,OAAO,OAAO,IAAI,SAAS;AAAA,IAC7B,MAAM,OAAO,OAAO,OAAO,IAAI,QAAQ;AAAA,IACvC,MAAM,KAAK;AAAA,MACT,cAAc,CAAC,eAAe,YAAY,cAAc,gBAAgB;AAAA,MACxE,aACE,OAAO,OAAO,IAAI,gBAClB,sCAAsC;AAAA,MACxC,aAAa;AAAA,MACb,KAAK,OAAO,aAAa,IAAI,KAAK;AAAA,MAClC,SAAS;AAAA,QACP,UAAU;AAAA,QACV,iBAAiB;AAAA,QACjB,sBAAsB;AAAA,MACxB;AAAA,MACA,MAAM;AAAA,MACN,KAAK,IAAI,mCAAmC;AAAA,IAC9C,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,SAAS,QAAQ;AAAA,IAC1B,MAAM,KAAK;AAAA,MACT,aAAa,MAAM;AAAA,MACnB,aAAa,MAAM;AAAA,MACnB,KAAK,SAAS,MAAM;AAAA,MACpB,SAAS;AAAA,QACP,YAAY,MAAM;AAAA,QAClB,gBAAgB,MAAM;AAAA,MACxB;AAAA,MACA,MACE,MAAM,SAAS,YACX,kCACA;AAAA,MACN,KAAK,IAAI,GAAG,oBAAoB,MAAM,MAAM;AAAA,IAC9C,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,OAAO,OAAO,KAAK;AAAA,IACrB,MAAM,KAAK;AAAA,MACT,aAAa,iBAAiB;AAAA,MAC9B,aAAa,WAAW,KAAK,MAAM,KAAK,CAAC,IACrC,GAAG,cACH,GAAG;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,QACP,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,8BAA8B;AAAA,MAChC;AAAA,MACA,MAAM;AAAA,MACN,KAAK,IAAI,YAAY;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,aAAa,kBAAkB,MAAM,GAAG;AAAA,IAKjD,MAAM,WACJ,UAAU,SAAS,WACf,UAAU,QACV,aAAa,UAAU,UAAU,UAAU,KAAK;AAAA,IACtD,MAAM,KAAK;AAAA,MACT,aAAa,GAAG,UAAU,mBAAmB,qBAAqB,UAAU,sBAAsB;AAAA,MAClG,aAAa,UAAU;AAAA,MACvB,KAAK,aAAa,UAAU;AAAA,MAC5B,SAAS;AAAA,QACP,4BAA4B,cAAc,UAAU,KAAK;AAAA,QACzD,qBAAqB,cAAc,UAAU,KAAK;AAAA,MACpD;AAAA,MACA,MAAM;AAAA,MACN,KAAK,IAAI,QAAQ;AAAA,IACnB,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,OAAO,OAAO,QAAQ,SAAS;AAAA,IACjC,MAAM,KAAK;AAAA,MACT,aAAa,qBAAqB;AAAA,MAClC,aAAa,GAAG;AAAA,MAChB,KAAK;AAAA,MACL,SAAS,CAAC,WAAW,SAAS,eAAe,eAAe;AAAA,MAC5D,MAAM;AAAA,MACN,KAAK,IAAI,WAAW;AAAA,IACtB,CAAC;AAAA,EACH;AAAA,EAEA,OAAO;AAAA;AAIF,IAAM,iBAAiB,CAC5B,QACA,WACkB;AAAA,EAClB,MAAM,OAAO,OAAO,WAAW,QAAQ,QAAQ;AAAA,EAC/C,IAAI,EAAE,QAAQ,aAAa,MAAM,IAAI;AAAA,IACnC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,aAAa,kBAAkB,OAAO,WAAW,QAAQ,IAAI;AAAA,EACnE,MAAM,MAAM,CAAC,SACX,aAAY,MAAM,cAAc,YAAY,IAAI,CAAC;AAAA,EACnD,MAAM,OAAO,cAAc,IAAI;AAAA,EAC/B,MAAM,UAAU,WAAW,QAAQ,QAAQ,GAAG,EAAE,IAAI,CAAC,SAAuB;AAAA,IAC1E,MAAM,QAAsB;AAAA,MAC1B,aAAa,KAAK;AAAA,MAClB,YAAY,WAAW,QAAQ,KAAK;AAAA,MACpC,uBACE,OAAO,OAAO,QAAQ,QAAQ,KAAK,QAAQ,KAAK;AAAA,MAClD,MAAM,KAAK;AAAA,MACX,KAAK,KAAK;AAAA,IACZ;AAAA,IACA,IAAI,KAAK,aAAa;AAAA,MACpB,MAAM,cAAc,KAAK;AAAA,IAC3B;AAAA,IACA,IAAI,KAAK,cAAc;AAAA,MACrB,MAAM,eAAe,KAAK;AAAA,IAC5B;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EACD,MAAM,UAAU;AAAA,IACd;AAAA,IACA,MAAM;AAAA,MACJ,aAAa,OAAO;AAAA,MACpB,kBAAkB,IAAI,GAAG;AAAA,MACzB,YAAY,WAAW;AAAA,IACzB;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA,OAAO,GAAG,KAAK,UAAU,SAAS,MAAM,CAAC;AAAA;AAAA;;;AC7NpC,IAAM,sBAAsB,CACjC,QACA,YACA,UAA2B,YACT;AAAA,EAClB,MAAM,aAAa,kBAAkB,OAAO,WAAW,QAAQ,IAAI;AAAA,EACnE,MAAM,YAAY,YAAY;AAAA,EAC9B,MAAM,QAAkB,CAAC;AAAA,EAIzB,IAAI,aAAa,cAAc,MAAM,GAAG;AAAA,IACtC,MAAM,KACJ,IAAI,aAAa,+CAA+C,iBAAiB,WAAW,KAAK,OAAO,OAAO,IACjH;AAAA,EACF;AAAA,EAGA,IAAI,aAAa,aAAa,MAAM,GAAG;AAAA,IACrC,MAAM,KACJ,IAAI,aAAa,6CAA6C,kBAChE;AAAA,EACF;AAAA,EAGA,IAAI,OAAO,OAAO,KAAK;AAAA,IACrB,MAAM,KACJ,IAAI,aAAa,4DACnB;AAAA,EACF;AAAA,EACA,IAAI,aAAa,OAAO,OAAO,kBAAkB;AAAA,IAC/C,MAAM,KACJ,IAAI,gFACN;AAAA,EACF;AAAA,EACA,IAAI,aAAa,OAAO,OAAO,QAAQ,SAAS;AAAA,IAC9C,MAAM,KACJ,IAAI,4DACN;AAAA,EACF;AAAA,EAKA,IAAI,WAAW,SAAS,GAAG,GAAG;AAAA,IAC5B,MAAM,KACJ,IAAI,6DACN;AAAA,EACF;AAAA,EACA,OAAO,MAAM,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI;AAAA;;;AC5F/C,qBAAS;;;ACAT,qBAAS;AAET,oBAAS,qBAAS,sBAAS;;;ACU3B,IAAM,aAAa;AAInB,IAAM,eAAe;AAarB,IAAM,cAAc,CAAC,MAAc,QAAgB;AAAA,EACjD,IAAI,OAAO;AAAA,EACX,IAAI,QAAQ;AAAA,EACZ,OAAO,QAAQ,KAAK;AAAA,IAClB,MAAM,SAAS,aAAa,KAAK,IAAI;AAAA,IACrC,IAAI,CAAC,QAAQ;AAAA,MACX;AAAA,IACF;AAAA,IACA,OAAO,KAAK,MAAM,OAAO,GAAG,MAAM;AAAA,IAClC,SAAS;AAAA,EACX;AAAA,EACA,OAAO,EAAE,OAAO,KAAK;AAAA;AAWhB,IAAM,iBAAiB,CAAC,MAAc,UAAkC;AAAA,EAC7E,QAAQ,OAAO,SAAS,YACtB,MACA,UAAU,OAAO,OAAO,oBAAoB,MAAM,MACpD;AAAA,EACA,IAAI,UAAU,QAAQ,QAAQ,MAAM,QAAQ;AAAA,IAC1C,OAAO,eAAe,MAAM,IAAI;AAAA,EAClC;AAAA,EACA,MAAM,UAAU,KAAK,UAAU;AAAA,EAC/B,MAAM,MAAM,QAAQ,MAAM,UAAU,GAAG,QAAQ;AAAA,EAC/C,IAAI,QAAQ,WAAW;AAAA,IACrB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,QAAQ,MAAM,IAAI,MAAM;AAAA,EACrC,MAAM,YAAY,IAAI,WAAW,GAAG,IAAK,MAAiB;AAAA,EAC1D,IAAI,UAAU,MAAM;AAAA,IAKlB,IAAI,cAAc,OAAO,KAAK,SAAS,GAAG,GAAG;AAAA,MAC3C,OAAO;AAAA,IACT;AAAA,IACA,OAAO,EAAE,WAAW,QAAQ,IAAI,QAAQ,QAAQ,MAAM;AAAA,EACxD;AAAA,EAGA,OAAO,MAAM,cAAc,aACzB,IAAI,UAAU,MAAM,UACpB,KAAK,KAAK,MAAM,KACd,OACA;AAAA;;;AClFN;AACA,kBAAS,oBAAO,wBAAU;AAE1B,iBAAS;AAaF,IAAM,WAAW,CAAC,SACvB,WAAW,QAAQ,EAAE,OAAO,IAAI,EAAE,OAAO,KAAK,EAAE,MAAM,GAAG,EAAE;AAGtD,IAAM,gBAAgB,CAAC,YAC5B,SACE,QACG,IAAI,CAAC,UAAU,GAAG,MAAM,OAAO,MAAM,QAAQ,SAAS,MAAM,KAAK,IAAI,GAAG,EACxE,KAAK,GAAG,CACb;AAaK,IAAM,eACX,CACE,MACA,iBACA,SAEF,CAAC,aAAa;AAAA,EACZ,IAAI,OAAO;AAAA,EACX,IAAI,MAAM;AAAA,IACR,MAAM,eAAe,YAA2B;AAAA,MAC9C,IAAI;AAAA,QACF,QAAQ,YAAY,MAAM,KAAK;AAAA,QAC/B,SAAS,cAAc,OAAO;AAAA,QAC9B,MAAM;AAAA;AAAA,IAIL,aAAa;AAAA,EACpB;AAAA,EACA,MAAM,OAAO,YAA2B;AAAA,IACtC,IAAI;AAAA,MACF,QAAQ,YAAY,MAAM,KAAK;AAAA,MAC/B,MAAM,OAAO,cAAc,OAAO;AAAA,MAClC,IAAI,QAAQ,SAAS,MAAM;AAAA,QACzB,SAAS;AAAA,MACX;AAAA,MACA,OAAO;AAAA,MACP,MAAM;AAAA;AAAA,EAIV,MAAM,QAAQ,YAAY,MAAM;AAAA,IACzB,KAAK;AAAA,KACT,kBAAkB,IAAI;AAAA,EACzB,OAAO,MAAM,cAAc,KAAK;AAAA;AAU7B,IAAM,gBAAgB,CAAC,aAAoC;AAAA,EAChE,MAAM,OAAO,MAAK,UAAU,cAAc;AAAA,EAC1C,OAAO;AAAA,IACL,MAAM,YAAY;AAAA,MAChB,IAAI;AAAA,QAIF,OAAO,KAAK,MAAM,MAAM,UAAS,MAAM,OAAO,CAAC;AAAA,QAC/C,MAAM;AAAA,QACN,OAAO,CAAC;AAAA;AAAA;AAAA,IAGZ,OAAO,OAAO,YAAY;AAAA,MACxB,IAAI;AAAA,QACF,MAAM,OAAM,UAAU,EAAE,WAAW,KAAK,CAAC;AAAA,QACzC,MAAM,WAAU,MAAM,GAAG,KAAK,UAAU,OAAO;AAAA,GAAO,OAAO;AAAA,QAC7D,MAAM;AAAA;AAAA,EAIZ;AAAA;AAYK,IAAM,gBAAgB,OAC3B,MACA,OACA,cACA,UAAU,SACoB;AAAA,EAC9B,IAAI,CAAC,SAAS;AAAA,IACZ,MAAM,SAAS,MAAM,MAAM,KAAK;AAAA,IAChC,IAAI,OAAO,SAAS,GAAG;AAAA,MACrB,OAAO,EAAE,aAAa,CAAC,GAAG,SAAS,OAAO;AAAA,IAC5C;AAAA,EACF;AAAA,EACA,IAAI;AAAA,IACF,MAAM,UAAU,MAAM,aAAa;AAAA,IACnC,MAAM,MAAM,MAAM,OAAO;AAAA,IACzB,OAAO,EAAE,aAAa,CAAC,GAAG,QAAQ;AAAA,IAClC,OAAO,OAAO;AAAA,IACd,MAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAClC,IAAI,SAAS,SAAS,GAAG;AAAA,MAGvB,MAAM,aAAyB;AAAA,QAC7B,MAAM;AAAA,QACN,SAAS,WAAW,+BAAgC,MAAgB,oBAAoB,SAAS;AAAA,QACjG,UAAU;AAAA,MACZ;AAAA,MACA,OAAO,EAAE,aAAa,CAAC,UAAU,GAAG,SAAS,SAAS;AAAA,IACxD;AAAA,IACA,IAAI,iBAAiB,YAAY;AAAA,MAC/B,MAAM;AAAA,IACR;AAAA,IAEA,MAAM,IAAI,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,SAAS,WAAW,mDAAoD,MAAgB;AAAA,MACxF,UAAU;AAAA,IACZ,CAAC;AAAA;AAAA;;;ACvJL,uBAAS,6BAAY;AAErB;AAGA,oBAAS;AACT,4BAAS;;;ACAF,IAAM,oBAAoB;AAAA,EAC/B,WAAW;AAAA,EACX,aAAa;AACf;AAQO,IAAM,eAAe;AAAA,KACvB;AAAA,EACH,WAAW;AAAA,EACX,MAAM,EAAE,sBAAsB,MAAM;AACtC;AASO,IAAM,yBAAyB;AAAA,KACjC;AAAA,EACH,aAAa;AACf;AAEO,IAAM,oBAAoB;AAAA,KAC5B;AAAA,EACH,aAAa;AACf;;;AClBA;AAQO,IAAM,iBAAiB;AAQvB,IAAM,eAAe;AAE5B,IAAM,kBAAkB;AAUjB,IAAM,cAAc,CAAC,SAAwB,SAAyB;AAAA,EAC3E,MAAM,UAAU,KAAK,KAAK;AAAA,EAC1B,MAAM,OAAO,KAAK,OAAO;AAAA,EAEzB,OAAO,QAAQ,KACb,KAAK,SAAS,GAAG,IAAI,KAAK,QAAQ,iBAAiB,EAAE,IAAI,OAC3D;AAAA;AASK,IAAM,kBAAkB,CAAC,WAA+C;AAAA,EAC7E,IAAI,OAAO;AAAA,EACX,IAAI,MAAM;AAAA,EACV,WAAW,SAAS,QAAQ;AAAA,IAC1B,IAAI,UAAU,MAAM;AAAA,MAClB,MAAM;AAAA,MACN;AAAA,IACF;AAAA,IACA,QAAQ,OAAO,OAAO,KAAK,IAAI,IAAI,MAAM,QAAQ,YAAY,EAAE,IAAI;AAAA,IACnE,MAAM;AAAA,EACR;AAAA,EACA,OAAO;AAAA;AAWT,IAAM,UACJ;AAGF,IAAM,SAAS,CAAC,UAAiC;AAAA,EAC/C,MAAM,SAAS,QAAQ,KAAK,MAAM,KAAK,CAAC,GAAG;AAAA,EAC3C,OAAO,QAAQ,SAAS,YACpB,OACA;AAAA,IACE,YAAY,OAAO,cAAc;AAAA,IACjC,SAAS,OAAO,YAAY;AAAA,IAC5B,MAAM,OAAO;AAAA,EACf;AAAA;AAGN,IAAM,gBAAgB,CAAC,QACrB,IAAI,WAAW,QAAQ,EAAE,SAAS,GAAG;AAcvC,IAAM,gBACJ;AAGF,IAAM,eAAe,CAAC,eAA2C;AAAA,EAC/D,MAAM,SAAS,IAAI;AAAA,EACnB,WAAW,SAAS,WAAW,SAAS,aAAa,GAAG;AAAA,IACtD,MAAM,SAAS,MAAM,UAAU,CAAC;AAAA,IAChC,MAAM,QAAQ,OAAO,UAAU,OAAO,UAAU,OAAO;AAAA,IACvD,MAAM,MAAM,OAAO,KAAK,YAAY;AAAA,IACpC,IAAI,OAAO,SAAS,CAAC,OAAO,IAAI,GAAG,GAAG;AAAA,MACpC,OAAO,IAAI,KAAK,KAAK;AAAA,IACvB;AAAA,EACF;AAAA,EACA,OAAO,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,MAAM;AAAA;AAIvC,IAAM,gBAAgB,CAAC,UAAiC;AAAA,EAC7D,MAAM,MAAM,OAAO,KAAK;AAAA,EACxB,IAAI,KAAK,SAAS,SAAS;AAAA,IACzB,OAAO;AAAA,MACL,SAAS,IAAI;AAAA,MACb,MAAM;AAAA,MACN,aAAa,cAAc,GAAG;AAAA,IAChC;AAAA,EACF;AAAA,EACA,IAAI,KAAK,KAAK,YAAY,MAAM,KAAK;AAAA,IACnC,OAAO,EAAE,MAAM,QAAQ;AAAA,EACzB;AAAA,EACA,OAAO,IAAI,UACP,EAAE,MAAM,eAAe,IACvB;AAAA,IACE,MAAM;AAAA,IACN,aAAa,cAAc,GAAG;AAAA,IAC9B,QAAQ,aAAa,IAAI,UAAU;AAAA,EACrC;AAAA;AAmCC,IAAM,aAAa,CAAC,SAAwB,OAAqB;AAAA,EACtE,QAAQ,YAAY,QAAQ;AAAA;AAI9B,IAAM,SACJ;AAwBK,IAAM,sBAAsB,CAAC,SAAiC;AAAA,EACnE,IAAI,YAAY;AAAA,EAChB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,SACM,QAAQ,OAAO,KAAK,SAAS,EACjC,OAAO,QACP,QAAQ,OAAO,KAAK,SAAS,GAC7B;AAAA,IACA,MAAM,aAAa,MAAM,OAAO,WAAW,MAAM,OAAO;AAAA,IACxD,YAAY,UAAU,MAAM,GAAG,MAAM,KAAK;AAAA,IAC1C,IAAI,eAAe,WAAW;AAAA,MAG5B,QAAQ,MAAM,OAAO,SAAS,YAAY,SAAS;AAAA,IACrD,EAAO;AAAA,MACL,OAAO;AAAA;AAAA,EAEX;AAAA,EACA,OAAO,EAAE,IAAI,MAAM,WAAW,IAAI;AAAA;;;AC1OpC;;;ACKO,IAAM,mBAAmB,IAAI,IAAY;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAUM,IAAM,sBACX,IAAI,IAAI;AAAA,EACN,CAAC,aAAa,CAAC,CAAC;AAAA,EAChB,CAAC,iBAAiB,CAAC,eAAe,eAAe,QAAQ,MAAM,OAAO,CAAC;AAAA,EACvE;AAAA,IACE;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,CAAC,WAAW,CAAC,SAAS,QAAQ,SAAS,MAAM,CAAC;AAAA,EAC9C;AAAA,IACE;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,CAAC,aAAa,CAAC,MAAM,CAAC;AAAA,EACtB,CAAC,aAAa,CAAC,QAAQ,SAAS,QAAQ,OAAO,CAAC;AAAA,EAChD,CAAC,aAAa,CAAC,UAAU,CAAC;AAAA,EAC1B,CAAC,UAAU,CAAC,CAAC;AAAA,EACb,CAAC,WAAW,CAAC,MAAM,CAAC;AAAA,EACpB,CAAC,cAAc,CAAC,eAAe,OAAO,CAAC;AAAA,EACvC,CAAC,SAAS,CAAC,WAAW,MAAM,CAAC;AAAA,EAC7B,CAAC,SAAS,CAAC,OAAO,CAAC;AAAA,EACnB,CAAC,UAAU,CAAC,WAAW,aAAa,CAAC;AAAA,EACrC,CAAC,kBAAkB,CAAC,UAAU,CAAC;AAAA,EAC/B,CAAC,mBAAmB,CAAC,UAAU,CAAC;AAAA,EAChC,CAAC,QAAQ,CAAC,QAAQ,OAAO,CAAC;AAAA,EAC1B,CAAC,SAAS,CAAC,WAAW,CAAC;AAAA,EACvB,CAAC,OAAO,CAAC,SAAS,QAAQ,MAAM,SAAS,OAAO,CAAC;AAAA,EACjD;AAAA,IACE;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,CAAC,QAAQ,CAAC,eAAe,QAAQ,OAAO,CAAC;AAAA,EACzC,CAAC,WAAW,CAAC,OAAO,YAAY,QAAQ,KAAK,CAAC;AAAA,EAC9C,CAAC,QAAQ,CAAC,SAAS,QAAQ,OAAO,CAAC;AAAA,EACnC,CAAC,cAAc,CAAC,KAAK,CAAC;AACxB,CAAC;;;AD/FI,IAAM,eAAe,CAAC,UAC3B,OAAO,UAAU,YAAY,UAAU;AAGzC,IAAM,gBAAgB;AACtB,IAAM,eAAe;AAErB,IAAM,iBAAiB;AAEvB,IAAM,eAAe;AAKrB,IAAM,iBAAiB,IAAI,OACzB,OAAO,cAAc,CAAC,GAAG,oBAAoB,KAAK,CAAC,EAAE,KAAK,GAAG,wEAC7D,GACF;AAGA,IAAM,cAAc,CAAC,SACnB,KAAK,SAAS,MACZ,CAAC,UAAU,MAAM,SAAS,UAAU,MAAM,MAAM,KAAK,MAAM,EAC7D;AAGF,IAAM,eAAe,CAAC,SACpB,KAAK,WAAW,QAAQ,CAAC,cACvB,UAAU,SAAS,qBACnB,cAAc,KAAK,UAAU,IAAI,KACjC,aAAa,UAAU,KAAK,KAC5B,CAAC,eAAe,KAAK,UAAU,MAAM,KAAK,IACtC,CAAC,UAAU,IAAI,IACf,CAAC,CACP;AAOF,IAAM,eAAe,CAAC,MAAkB,aAAgC;AAAA,EACtE,IACE,CAAC,YAAY,IAAI,KACjB,KAAK,WAAW,KAAK,CAAC,cAAc,UAAU,SAAS,iBAAiB,GACxE;AAAA,IACA,OAAO,CAAC;AAAA,EACV;AAAA,EACA,OAAO,KAAK,WAAW,QAAQ,CAAC,cAC9B,UAAU,SAAS,qBACnB,CAAC,UAAU,KAAK,SAAS,GAAG,KAC5B,CAAC,SAAS,SAAS,UAAU,IAAI,IAC7B,CAAC,UAAU,IAAI,IACf,CAAC,CACP;AAAA;AAIF,IAAM,aAAa,CACjB,MACA,eAC2B;AAAA,EAC3B,MAAM,MAAM,KAAK,QAAQ;AAAA,EACzB,MAAM,WAAW,oBAAoB,IAAI,GAAG;AAAA,EAC5C,IAAI,OAA2B;AAAA,EAC/B,IAAI,QAAkB,CAAC;AAAA,EACvB,IAAI,aAAa,KAAK,GAAG,GAAG;AAAA,IAC1B,OAAO;AAAA,IACP,QAAQ,aAAa,IAAI;AAAA,EAC3B,EAAO,SAAI,UAAU;AAAA,IACnB,QAAQ,aAAa,MAAM,QAAQ;AAAA,EACrC;AAAA,EACA,MAAM,QAAQ,KAAK,UAAU;AAAA,EAC7B,OAAO,MAAM,SAAS,IAClB;AAAA,IACE,QAAQ,OAAO,UAAU;AAAA,IACzB;AAAA,IACA,OAAO,OAAO,QAAQ,KAAK;AAAA,IAC3B;AAAA,IACA;AAAA,EACF,IACA;AAAA;AASC,IAAM,qBAAqB,CAChC,MACA,aAAa,MACI;AAAA,EACjB,IAAI,EAAE,aAAa,KAAK,IAAI,KAAK,eAAe,KAAK,IAAI,IAAI;AAAA,IAC3D,OAAO,CAAC;AAAA,EACV;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,OAAO,WAAW,MAAM,EAAE,UAAU,kBAAkB,CAAC;AAAA,IACvD,MAAM;AAAA,IACN,OAAO,CAAC;AAAA;AAAA,EAEV,MAAM,OAAqB,CAAC;AAAA,EAC5B,MAAM,OAAO,CAAC,SAAsB;AAAA,IAClC,IACE,KAAK,SAAS,uBACd,KAAK,SAAS,qBACd;AAAA,MACA,MAAM,MAAM,WAAW,MAAM,UAAU;AAAA,MACvC,IAAI,KAAK;AAAA,QACP,KAAK,KAAK,GAAG;AAAA,MACf;AAAA,IACF;AAAA,IACA,IAAI,cAAc,MAAM;AAAA,MACtB,WAAW,SAAS,KAAK,UAAU;AAAA,QACjC,KAAK,KAAK;AAAA,MACZ;AAAA,IACF;AAAA;AAAA,EAEF,KAAK,IAAI;AAAA,EACT,OAAO;AAAA;;;AEvJT,oBAAS;;;ACKT,IAAM,kBAAkB;AAQxB,IAAM,sBAAsB;AAS5B,IAAM,YACJ;AAGK,IAAM,iBAAiB,CAAC,SAC7B,oBAAoB,KAAK,IAAI,KAAK,UAAU,KAAK,IAAI,IACjD,YACA,KAAK,MAAM,eAAe,GAAG,QAAQ;AAGpC,IAAM,sBAAsB,CAAC,SAAyB;AAAA,EAC3D,MAAM,QAAQ,eAAe,IAAI;AAAA,EAEjC,OAAO,UAAU,YAAY,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAAA;AAQ1D,IAAM,kBAAkB,CAAC,SAC9B,UAAU,KAAK,IAAI,KAAK,CAAC,oBAAoB,KAAK,IAAI,IAClD,KAAK,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,IAChC;;;ADzBN,IAAM,eAAe;AACrB,IAAM,aAAa;AAOZ,IAAM,cAAc,CAAC,OAAe,SACzC,SAAS,OAAO,UAAU,QAAQ,MAAM,WAAW,GAAG,OAAO;AAaxD,IAAM,YAAY,CAAC,KAAa,SACrC,YAAY,MAAM,IAAI,IAAI;AAM5B,IAAM,cAAc,CAAC,SACnB,KAAK,KAAK,QAAQ,QAAQ,KAAK,KAAK;AAOtC,IAAM,aAAa,IAAI,IAAI;AAAA,EACzB,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,YAAY,UAAU;AAAA,EACvB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,WAAW,SAAS;AAAA,EACrB,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,WAAW,SAAS;AAAA,EACrB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,MAAM,IAAI;AAAA,EACX,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AACjB,CAAC;AAQM,IAAM,YAAY,CAAC,SACxB,WAAW,IAAI,IAAI,KAAK,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC;AAErE,IAAM,WAAW,CAAC,YAChB,oBAAoB,OAAO,EACxB,MAAM,UAAU,EAChB,OAAO,OAAO,EACd,IAAI,SAAS,EACb,KAAK,GAAG;AAEb,IAAM,eAAe,CAAC,YAA4B;AAAA,EAChD,MAAM,QAAQ,eAAe,OAAO;AAAA,EACpC,OAAO,QAAQ,KAAK,MAAM,OAAO,KAAK,CAAC,IAAI,OAAO;AAAA;AASpD,IAAM,YAAY,CAAC,SAChB,IAAI,MAAM,YAAY,KAAK,oBAAoB,GAAG,EAAE,MAAM,YAAY,IACnE,QAAQ;AAOd,IAAM,cAAc,CAAC,QACnB,aACE,eAAe,GAAG,MAAM,YAAa,UAAU,GAAG,KAAK,MAAO,GAChE;AAGF,IAAM,aAAa,CAAC,QAClB,oBAAoB,UAAU,GAAG,KAAK,GAAG;AAO3C,IAAM,cAAc,CAAC,SACnB,oBAAoB,IAAI,MAAM;AAGhC,IAAM,SAAS,CAAC,aACd,SAAS,QAAQ,SAAQ,QAAQ,GAAG,EAAE;AAQxC,IAAM,UAAU,CAAC,YACf,OAAO,QAAQ,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,OAAO;AAOtC,IAAM,UAAU,CAAC,aACtB,WAAW,OAAO,QAAQ,CAAC;AAQtB,IAAM,kBAAkB,CAC7B,aAC6B;AAAA,EAC7B,MAAM,OAAO,IAAI;AAAA,EACjB,MAAM,MAAM,CAAC,OAAe,QAAsB;AAAA,IAChD,MAAM,WAAW,KAAK,IAAI,KAAK,KAAK,IAAI;AAAA,IACxC,SAAS,IAAI,GAAG;AAAA,IAChB,KAAK,IAAI,OAAO,QAAQ;AAAA;AAAA,EAE1B,WAAW,WAAW,UAAU;AAAA,IAC9B,MAAM,OAAO,QAAQ,MAAM,GAAG;AAAA,IAC9B,MAAM,WAAW,KAAK,IAAI,KAAK;AAAA,IAC/B,YAAY,OAAO,QAAQ,KAAK,QAAQ,GAAG;AAAA,MACzC,IAAI,KAAK,MAAM,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,WAAW,GAAG,CAAC;AAAA,IACrD;AAAA,IACA,IAAI,KAAK,KAAK,GAAG,GAAG,QAAQ,QAAQ,CAAC;AAAA,EACvC;AAAA,EACA,OAAO;AAAA;AAwDT,IAAM,cAAc,CAClB,KACA,MACA,OACA,WACkB;AAAA,EAClB,UAAU,CAAC;AAAA,EACX,OAAO,IAAI;AAAA,EACX;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,cAAc,CAClB,QACA,eACiB;AAAA,EACjB,MAAM,WAAW,OAAO,MAAM,IAAI,UAAU;AAAA,EAC5C,IAAI,UAAU;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,OAAO,OAAO,GAAG,OAAO,QAAQ,eAAe;AAAA,EAC5D,MAAM,QAAQ,YACZ,WAAW,UAAU,GACrB,MACA,SAAS,UAAU,UAAU,KAAK,UAAU,GAC5C,YAAY,UAAU,CACxB;AAAA,EACA,OAAO,MAAM,IAAI,YAAY,KAAK;AAAA,EAClC,OAAO,SAAS,KAAK,KAAK;AAAA,EAC1B,OAAO;AAAA;AAST,IAAM,YAAY,CAAC,MAAkB,aAAgC;AAAA,EACnE,IAAI,KAAK,KAAK,QAAQ,UAAU,WAAW;AAAA,IACzC,OAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,OAAO,iBAAiB,KAAK;AAAA,EACjE;AAAA,EACA,IAAI,YAAY,OAAO,QAAQ,CAAC,GAAG;AAAA,IACjC,OAAO,EAAE,OAAO,OAAO,mBAAmB,iBAAiB,MAAM;AAAA,EACnE;AAAA,EAMA,IAAI,KAAK,gBAAgB,aAAa;AAAA,IACpC,MAAM,MAAM,KAAK,KAAK,QAAQ,KAAK,KAAK,WAAW;AAAA,IACnD,MAAM,OAAO,MAAM,KAAK,MAAM,GAAG,IAAI,OAAO;AAAA,IAC5C,IAAI,CAAC,OAAO,MAAM,IAAI,GAAG;AAAA,MACvB,OAAO,EAAE,OAAO,CAAC,MAAM,iBAAiB,MAAM;AAAA,IAChD;AAAA,EACF;AAAA,EAIA,MAAM,QAAQ,aAAa,QAAQ;AAAA,EACnC,OAAO;AAAA,IACL;AAAA,IACA,iBAAiB,KAAK,gBAAgB,eAAe,OAAO,SAAS,KAAK;AAAA,EAC5E;AAAA;AAQF,IAAM,UAAU,CAAC,MAAc,eAA+B;AAAA,EAC5D,IAAI,CAAC,YAAY;AAAA,IACf,OAAO;AAAA,EACT;AAAA,EACA,OAAO,OAAO,GAAG,cAAc,SAAS;AAAA;AAe1C,IAAM,kBAAkB,CAAC,OAAqB,SAA2B;AAAA,EACvE,MAAM,QAAQ,KAAK,SAAS,MAAM;AAAA,EAClC,MAAM,OAAO,KAAK,QAAQ,MAAM;AAAA,EAChC,MAAM,QAAQ,KAAK,SAAS,MAAM;AAAA,EAClC,MAAM,YAAY,KAAK,aAAa,MAAM;AAAA,EAC1C,MAAM,YAAY,KAAK,aAAa,MAAM;AAAA;AAQ5C,IAAM,kBAAkB,CACtB,OACA,YACA,YACA,YACA,kBACA,cACA,YACA,aACS;AAAA,EAKT,MAAM,QAAQ,WAAW,IAAI,MAAM,IAAI;AAAA,EACvC,MAAM,cAAc,MAAM;AAAA,EAI1B,MAAM,aACJ,WAAW,IAAI,QAAQ,MAAM,MAAM,UAAU,CAAC,KAC9C,WAAW,IAAI,QAAQ,MAAM,MAAM,gBAAgB,CAAC;AAAA,EAMtD,MAAM,WAAW,eAAe;AAAA,EAChC,MAAM,OAAO,cAAc,SAAS,KAAK,MAAM,IAAI;AAAA,EAInD,MAAM,UACJ,aAAa,IAAI,MAAM,IAAI,MAC1B,WAAW,SAAS,aAAa,IAAI,MAAM,IAAI,IAAI,cACpD,MAAM;AAAA,EACR,IAAI,MAAM;AAAA,IACR,gBAAgB,OAAO,IAAI;AAAA,EAC7B;AAAA,EAEA,WAAW,SAAS,MAAM,UAAU;AAAA,IAClC,IAAI,MAAM,SAAS,SAAS;AAAA,MAC1B,gBACE,OACA,YACA,YACA,YACA,kBACA,cACA,YACA,QACF;AAAA,IACF;AAAA,EACF;AAAA,EAMA,IAAI,MAAM,OAAO;AAAA,IACf,MAAM,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAAA,IACzD,WAAW,SAAS,MAAM,UAAU;AAAA,MAClC,MAAM,WAAW,KAAK,IAAI,MAAM,GAAG;AAAA,MACnC,IAAI,aAAa,WAAW;AAAA,QAC1B,MAAM,QAAQ;AAAA,QACd,MAAM,SAAS;AAAA,QACf,IAAI,MAAM,SAAS,QAAQ;AAAA,UACzB,MAAM,kBAAkB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAmCF,IAAM,+BAA+B,CACnC,MACA,YACA,YACA,YACA,YACA,qBAC2B;AAAA,EAC3B,IACE,EAAE,KAAK,KAAK,SAAS,KAAK,KAAK,QAAQ,WACvC,KAAK,YACL,eAAe,IACf;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM,OACJ,WAAW,IAAI,QAAQ,YAAY,UAAU,CAAC,KAC9C,WAAW,IAAI,QAAQ,YAAY,gBAAgB,CAAC;AAAA,EACtD,IACE,CAAC,MAAM,SACP,KAAK,UAAU,KAAK,SACpB,KAAK,UAAU,KAAK,KAAK,QAAQ,OACjC;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,KAAK,cAAc,KAAK;AAAA,IAC9B,SAAS,eAAe,KAAK,uBAAuB,KAAK,2CAA2C,KAAK,mDAAmD,KAAK;AAAA,IACjK,UAAU;AAAA,IACV,YAAY,yGAAyG,KAAK;AAAA,EAC5H;AAAA;AAqBF,IAAM,mCAAmC,CACvC,OACA,oBACiB;AAAA,EACjB,MAAM,cAA4B,CAAC;AAAA,EACnC,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,CAAC,KAAK,KAAK,QAAQ,SAAS;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,MAAM,UAAU,YAAY,QAAQ,KAAK,OAAO,CAAC;AAAA,IACjD,IAAI,iBAAiB;AAAA,MACnB,YAAY,KAAK;AAAA,QACf,MAAM;AAAA,QACN,MAAM,KAAK,cAAc,KAAK;AAAA,QAC9B,SAAS,IAAI,KAAK;AAAA,QAClB,UAAU;AAAA,QACV,YACE;AAAA,MACJ,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA,IAAI,WAAW,CAAC,KAAK,QAAQ,SAAS,GAAG,GAAG;AAAA,MAC1C,YAAY,KAAK;AAAA,QACf,MAAM;AAAA,QACN,MAAM,KAAK,cAAc,KAAK;AAAA,QAC9B,SAAS,IAAI,KAAK;AAAA,QAClB,UAAU;AAAA,QACV,YACE;AAAA,MACJ,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA,IAAI,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,YAAY,KAAK;AAAA,MACf,MAAM;AAAA,MACN,MAAM,KAAK,cAAc,KAAK;AAAA,MAC9B,SAAS,IAAI,KAAK;AAAA,MAClB,UAAU;AAAA,MACV,YACE;AAAA,IACJ,CAAC;AAAA,EACH;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,kBAAkB,CAAC,SACvB,KAAK,SAAS,WAAW,KAAK;AAehC,IAAM,4BAA4B,CAAC,UAAuC;AAAA,EACxE,MAAM,UAAU,IAAI;AAAA,EACpB,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,CAAC,OAAO,SAAS,KAAK,KAAK,KAAK,CAAC,gBAAgB,IAAI,GAAG;AAAA,MAC1D;AAAA,IACF;AAAA,IACA,MAAM,MAAM,GAAG,KAAK,WAAW,QAAQ,KAAK;AAAA,IAC5C,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAAA,IAC7B,IAAI,OAAO;AAAA,MACT,MAAM,KAAK,KAAK,IAAI;AAAA,IACtB,EAAO;AAAA,MACL,QAAQ,IAAI,KAAK,EAAE,OAAO,KAAK,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AAAA;AAAA,EAExD;AAAA,EACA,MAAM,cAA4B,CAAC;AAAA,EACnC,aAAa,OAAO,UAAU,QAAQ,OAAO,GAAG;AAAA,IAC9C,IAAI,KAAK,SAAS,GAAG;AAAA,MACnB,MAAM,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,KAAK,QAAQ;AAAA,MAClD,MAAM,OACJ,MAAM,SAAS,IACX,GAAG,MAAM,MAAM,GAAG,EAAE,EAAE,KAAK,IAAI,UAAU,MAAM,GAAG,EAAE,MACpD,MAAM,KAAK,OAAO;AAAA,MACxB,MAAM,OAAO,KAAK,SAAS,IAAI,aAAa;AAAA,MAI5C,MAAM,OAAO,KAAK,KAChB,CAAC,SAA8B,KAAK,SAAS,MAC/C,GAAG;AAAA,MACH,YAAY,KAAK;AAAA,QACf,MAAM;AAAA,QACN;AAAA,QACA,SAAS,GAAG,QAAQ,sBAAsB;AAAA,QAC1C,UAAU;AAAA,QACV,YACE;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,YAAY,CAAC,OAAsB,gBAAoC;AAAA,EAC3E,YAAY,KAAK,GAAG,0BAA0B,KAAK,CAAC;AAAA,EACpD,MAAM,KAAK,CAAC,GAAG,MAAM;AAAA,IACnB,IAAI,EAAE,UAAU,EAAE,OAAO;AAAA,MACvB,OAAO,EAAE,QAAQ,EAAE;AAAA,IACrB;AAAA,IACA,OAAO,EAAE,MAAM,cAAc,EAAE,KAAK;AAAA,GACrC;AAAA,EACD,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,KAAK,SAAS,SAAS;AAAA,MACzB,UAAU,KAAK,UAAU,WAAW;AAAA,IACtC;AAAA,EACF;AAAA;AAcF,IAAM,aAAa,CACjB,OACA,SACA,UACS;AAAA,EACT,MAAM,SAAS,MAAM,OAAO,CAAC,SAAS,KAAK,SAAS,OAAO;AAAA,EAC3D,IAAI,SAAS,OAAO,KAAK,CAAC,WAAW,MAAM,WAAW,aAAa,MAAM,GAAG;AAAA,IAC1E,MAAM,QAAQ,MAAM,OAAO,CAAC,SAAS,KAAK,SAAS,MAAM;AAAA,IACzD,MAAM,OAAO,GAAG,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM;AAAA,EACnD;AAAA,EACA,WAAW,SAAS,QAAQ;AAAA,IAC1B,WAAW,MAAM,UAAU,SAAS,KAAK;AAAA,EAC3C;AAAA;AAeF,IAAM,mBAAmB,CACvB,OACA,UACA,YACS;AAAA,EACT,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,KAAK,SAAS,SAAS;AAAA,MACzB;AAAA,IACF;AAAA,IACA,IAAI,KAAK,cAAc,aAAa,SAAS,IAAI,KAAK,SAAS,GAAG;AAAA,MAChE,WAAW,KAAK,UAAU,SAAS,IAAI;AAAA,MACvC,MAAM,QAAQ,IAAI,IAAI,QAAQ;AAAA,MAC9B,MAAM,OAAO,KAAK,SAAS;AAAA,MAC3B,iBAAiB,KAAK,UAAU,OAAO,OAAO;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,iBAAiB,KAAK,UAAU,UAAU,OAAO;AAAA,EACnD;AAAA;AAOF,IAAM,YAAY,CAChB,MACA,SACA,uBACY;AAAA,EACZ,IAAI,KAAK,SAAS,QAAQ;AAAA,IACxB,OAAO;AAAA,MACL,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK,cAAc;AAAA,MAC/B,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,MACX,MAAM;AAAA,MACN,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK;AAAA,IACd;AAAA,EACF;AAAA,EACA,MAAM,YAAY,KAAK,aAAa;AAAA,EACpC,OAAO;AAAA,IACL,UAAU,KAAK,SAAS,IAAI,CAAC,UAC3B,UAAU,OAAO,SAAS,SAAS,CACrC;AAAA,IACA,WAAW,KAAK;AAAA,IAChB;AAAA,IACA,SAAS,KAAK,WAAW;AAAA,IACzB,MAAM,KAAK;AAAA,IACX,MAAM;AAAA,IACN,OAAO,KAAK;AAAA,IACZ,MAAM,KAAK;AAAA,IACX,OAAO,KAAK;AAAA,EACd;AAAA;AAIF,IAAM,yBAAyB,CAC7B,OACA,YACA,YACA,YACA,kBACA,SACA,UACA,cAA4B,CAAC,GAC7B,uBACc;AAAA,EACd,MAAM,OAAO,YAAY,IAAI,IAAI,IAAI,CAAC;AAAA,EAItC,MAAM,eAAe,IAAI;AAAA,EAGzB,MAAM,WAA+B;AAAA,IACnC,cAAc,IAAI;AAAA,IAClB,MAAM,CAAC,SACL,uBAAuB,YACnB,YACA,WAAW,IAAI,QAAQ,MAAM,kBAAkB,CAAC;AAAA,EACxD;AAAA,EAKA,MAAM,aAAa,IAAI;AAAA,EAEvB,WAAW,QAAQ,OAAO;AAAA,IAExB,MAAM,QAAQ,KAAK,QAAQ,MAAM,GAAG;AAAA,IACpC,MAAM,WAAW,MAAM,GAAG,EAAE,KAAK,KAAK;AAAA,IACtC,MAAM,OAAO,OAAO,QAAQ;AAAA,IAC5B,MAAM,OAAO,MAAM,MAAM,GAAG,EAAE;AAAA,IAK9B,IAAI,YAAY,IAAI,GAAG;AAAA,MACrB,MAAM,aAAa,6BACjB,MACA,KAAK,KAAK,GAAG,GACb,YACA,YACA,YACA,gBACF;AAAA,MACA,IAAI,YAAY;AAAA,QACd,YAAY,KAAK,UAAU;AAAA,MAC7B;AAAA,MAMA,IAAI,KAAK,KAAK,QAAQ,SAAS;AAAA,SAC5B,KAAK,WAAW,SAAS,eAAe,cAAc,IACrD,KAAK,KAAK,GAAG,GACb,KAAK,KAAK,QAAQ,OACpB;AAAA,MACF;AAAA,MACA,IAAI,KAAK,SAAS,GAAG;AAAA,QACnB,WAAW,IAAI,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK;AAAA,MAC3C;AAAA,IACF;AAAA,IAEA,IAAI,KAAK,KAAK,QAAQ,QAAQ;AAAA,MAC5B;AAAA,IACF;AAAA,IASA,MAAM,gBAAgB,KAAK,MAAM,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,IAC1D,MAAM,cAAc,YAAY,IAAI,IAChC,gBACA,cAAc,MAAM,GAAG,EAAE;AAAA,IAC7B,MAAM,gBAAgB,KAAK,OACzB,CAAC,QAAQ,UAAU,GAAG,MAAM,SAC9B,EAAE;AAAA,IACF,MAAM,SAAS,KAAK,IAAI,GAAG,YAAY,SAAS,aAAa;AAAA,IAO7D,MAAM,UAAU,KAAK,KAAK,SAAS;AAAA,IACnC,MAAM,UAAU,cAAc,MAC5B,GACA,KAAK,IACH,GACA,cAAc,SAAS,KAAK,WAAW,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,MACpE,CACF;AAAA,IAEA,IAAI,SAAS;AAAA,IACb,IAAI,WAAW;AAAA,IACf,MAAM,UAAoB,CAAC;AAAA,IAC3B,WAAW,OAAO,MAAM;AAAA,MACtB,SAAS,YAAY,QAAQ,GAAG;AAAA,MAChC,IAAI,UAAU,GAAG,MAAM,WAAW;AAAA,QAChC,YAAY;AAAA,QACZ,QAAQ,KAAK,oBAAoB,GAAG,CAAC;AAAA,MACvC;AAAA,MACA,IAAI,SAAS;AAAA,QACX,OAAO,eAAe,IAAI,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,KAAK,GAAG;AAAA,MAC7D,EAAO;AAAA,QACL,OAAO,cAAc,IAAI,YAAY,MAAM,GAAG,QAAQ,EAAE,KAAK,GAAG;AAAA;AAAA,IAEpE;AAAA,IAEA,QAAQ,OAAO,oBAAoB,UAAU,MAAM,QAAQ;AAAA,IAC3D,OAAO,SAAS,KAAK;AAAA,MACnB,OAAO,KAAK,KAAK,QAAQ;AAAA,MACzB,YAAY,KAAK,KAAK,cAAc;AAAA,MACpC,aAAa,KAAK;AAAA,MAClB,MAAM,KAAK;AAAA,MACX,MAAM,YAAY,IAAI;AAAA,MACtB,KAAK,WAAW,IAAI;AAAA,MACpB,MAAM;AAAA,MACN,OAAO,KAAK,KAAK,QAAQ,SAAS,KAAK;AAAA,MACvC;AAAA,MACA;AAAA,MACA,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAEA,gBACE,MACA,YACA,YACA,YACA,kBACA,cACA,YACA,QACF;AAAA,EACA,UAAU,KAAK,UAAU,WAAW;AAAA,EACpC,WAAW,KAAK,UAAU,SAAS,IAAI;AAAA,EACvC,iBAAiB,KAAK,UAAU,UAAU,OAAO;AAAA,EACjD,OAAO,KAAK,SAAS,IAAI,CAAC,UACxB,UAAU,OAAO,SAAS,KAAK,SAAS,CAC1C;AAAA;AAOK,IAAM,eAAe,CAAC,QAAwB;AAAA,EACnD,IAAI,QAAQ,SAAS;AAAA,IACnB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,YAAY,IAAI,WAAW,GAAG,IAAI,MAAM,IAAI;AAAA,EAIlD,MAAM,aAAa,UAAU,QAAQ,SAAS,EAAE;AAAA,EAChD,MAAM,UAAU,WAAW,SAAS,QAAQ,IACxC,WAAW,MAAM,GAAG,CAAC,SAAS,MAAM,IACpC;AAAA,EAEJ,OAAO,YAAY,KAAK,MAAM;AAAA;AAGhC,IAAM,cAAc,CAClB,KACA,SACA,aACuB;AAAA,EACvB,IAAI,CAAC,KAAK;AAAA,IACR;AAAA,EACF;AAAA,EACA,MAAM,aAAa,aAAa,GAAG;AAAA,EAGnC,OAAO,QAAQ,IAAI,UAAU,GAAG,SAAS,aAAa,UAAU,UAAU;AAAA;AAIrE,IAAM,YAAY,CAAC,SACxB,OAAO,SAAS;AAUX,IAAM,aAAa,CACxB,OACA,UACA,cAC4B;AAAA,EAC5B,MAAM,UAAU,IAAI,IAClB,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,iBAAiB,KAAK,OAAO,IAAI,CAAC,CAC1E;AAAA,EACA,IAAI,YAAY,CAAC,WAAW;AAAA,IAC1B,WAAW,QAAQ,OAAO;AAAA,MACxB,MAAM,OAAO,cAAc,UAAU,KAAK,KAAK;AAAA,MAC/C,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG;AAAA,QACtB,QAAQ,IAAI,MAAM,IAAI;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAQT,IAAM,mBAAmB,CACvB,MACA,SACA,aACmB;AAAA,EACnB,IAAI,UAAU,IAAI,GAAG;AAAA,IACnB,MAAM,OAAO,QAAQ,IAAI,aAAa,IAAI,CAAC;AAAA,IAC3C,IAAI,CAAC,MAAM;AAAA,MACT,OAAO;AAAA,IACT;AAAA,IACA,OAAO;AAAA,MACL,OAAO,KAAK,KAAK,QAAQ;AAAA,MACzB,YAAY,KAAK,KAAK,cAAc;AAAA,MACpC,aAAa,KAAK;AAAA,MAClB,MAAM,YAAY,IAAI;AAAA,MACtB,MAAM;AAAA,MACN,OAAO,KAAK,KAAK,QAAQ,SAAS,KAAK;AAAA,MACvC,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK;AAAA,IACd;AAAA,EACF;AAAA,EAEA,IAAI,KAAK,MAAM;AAAA,IACb,MAAM,OAAO,QAAQ,IAAI,aAAa,KAAK,IAAI,CAAC;AAAA,IAChD,OAAO;AAAA,MACL,OAAO,KAAK;AAAA,MACZ,YAAY,MAAM,KAAK,cAAc;AAAA,MACrC,MAAM,KAAK;AAAA,MACX,MAAM;AAAA,MACN,OAAO,KAAK;AAAA,MACZ,QAAQ,MAAM,MAAM;AAAA,MACpB,OAAO,MAAM,SAAS,aAAa,UAAU,aAAa,KAAK,IAAI,CAAC;AAAA,IACtE;AAAA,EACF;AAAA,EAEA,IAAI,KAAK,MAAM;AAAA,IACb,OAAO;AAAA,MACL,OAAO,KAAK;AAAA,MACZ,MAAM,KAAK;AAAA,MACX,MAAM;AAAA,MACN,OAAO,KAAK;AAAA,MACZ,QAAQ;AAAA,MACR,OAAO,aAAa,UAAU,KAAK,IAAI;AAAA,IACzC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAIT,IAAM,qBAAqB,CACzB,OACA,SACA,SACA,UACA,uBACc;AAAA,EACd,MAAM,QAAmB,CAAC;AAAA,EAC1B,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,CAAC,UAAU,IAAI,KAAK,KAAK,OAAO;AAAA,MAClC,MAAM,YAAY,KAAK,aAAa;AAAA,MACpC,MAAM,KAAK;AAAA,QACT,OAAO,KAAK;AAAA,QACZ,UAAU,mBACR,KAAK,OACL,SACA,SACA,UACA,SACF;AAAA,QACA,WAAW,KAAK;AAAA,QAChB;AAAA,QACA,SAAS,KAAK,WAAW;AAAA,QACzB,MAAM,KAAK;AAAA,QACX,MAAM;AAAA,QACN,OAAO,KAAK;AAAA,QACZ,OAAO,YAAY,KAAK,MAAM,SAAS,QAAQ;AAAA,MACjD,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA,MAAM,OAAO,iBAAiB,MAAM,SAAS,QAAQ;AAAA,IACrD,IAAI,MAAM;AAAA,MACR,MAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAkBT,IAAM,YAAY,CAAC,MAAc,SAAqC;AAAA,EACpE,IAAI,SAAS,KAAK;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,SAAS,MAAM;AAAA,IACjB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,KAAK,WAAW,GAAG,OAAO,IAAI,KAAK,MAAM,KAAK,MAAM,IAAI;AAAA;AAIjE,IAAM,YAAY,CAAC,MAAc,SAC/B,SAAS,MAAM,OAAO,GAAG,OAAO;AAsBlC,IAAM,iBAAiB,CACrB,SACA,MACA,aACA,UACA,UACW;AAAA,EACX,IAAI,YAAY,IAAI,IAAI,GAAG;AAAA,IACzB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,UAAU,MAAM,MAAM,IAAI;AAAA,EAGvC,IAAI,SAAS,OAAO,MAAM,SAAS,MAAM,MAAM;AAAA,IAC7C,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UACJ,SAAS,aAAa,SAAS,MAAM,OAAO,UAAU,MAAM,MAAM,IAAI;AAAA,EACxE,IAAI;AAAA,EACJ,MAAM,OAAO,CAAC,UAA8B;AAAA,IAC1C,WAAW,QAAQ,OAAO;AAAA,MACxB,QAAQ,UAAU;AAAA,MAClB,IAAI,UAAU,SAAS;AAAA,QACrB,OAAO;AAAA,MACT;AAAA,MAGA,IACE,UAAU,aACV,UAAU,aACV,YAAY,OAAO,OAAO,GAC1B;AAAA,QACA,QAAQ;AAAA,MACV;AAAA,MACA,IAAI,KAAK,SAAS,WAAW,KAAK,KAAK,QAAQ,GAAG;AAAA,QAChD,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,OAAO;AAAA;AAAA,EAET,IAAI,KAAK,OAAO,GAAG;AAAA,IACjB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,cAAc,UAAU,IAAI;AAAA,EACzC,IAAI,YAAY,IAAI,IAAI,GAAG;AAAA,IACzB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,SAAS,aAAa,YAAY,IAAI,IAAI,GAAG;AAAA,IAC/C,OAAO;AAAA,EACT;AAAA,EACA,OAAO,SAAS;AAAA;AAWlB,IAAM,eAAe,CACnB,MACA,SACA,aACA,UACA,UAEA,KAAK,IAAI,CAAC,QAAQ;AAAA,EAChB,MAAM,OACJ,IAAI,QACJ,eAAe,SAAS,IAAI,MAAM,aAAa,UAAU,KAAK;AAAA,EAChE,OAAO,SAAS,IAAI,OAAO,MAAM,KAAK,KAAK,KAAK;AAAA,CACjD;AAiBH,IAAM,kBAAkB,CACtB,UACA,YAOc;AAAA,EACd,MAAM,UAAU,QAAQ,WAAW,CAAC;AAAA,EACpC,MAAM,MAAM,QAAQ,OAAO;AAAA,EAC3B,MAAM,WAAW,QAAQ,YAAY,CAAC;AAAA,EACtC,MAAM,YAAY,QAAQ,aAAa,CAAC;AAAA,EACxC,MAAM,OAAO,QAAQ,QAAQ,CAAC;AAAA,EAC9B,IAAI,CAAC,UAAU;AAAA,IACb,OAAO,EAAE,SAAS,KAAK,UAAU,WAAW,KAAK;AAAA,EACnD;AAAA,EACA,MAAM,aAAa,CAA6B,UAAgB;AAAA,OAC3D;AAAA,IACH,MAAM,aAAa,UAAU,KAAK,IAAI;AAAA,EACxC;AAAA,EACA,MAAM,aAAa,CAA6B,UAAgB;AAAA,OAC3D;AAAA,IACH,MAAM,aAAa,UAAU,KAAK,IAAI;AAAA,EACxC;AAAA,EACA,OAAO;AAAA,IACL,SAAS,QAAQ,IAAI,UAAU;AAAA,IAC/B,KAAK,MAAM,WAAW,GAAG,IAAI;AAAA,IAC7B,UAAU,SAAS,IAAI,UAAU;AAAA,IACjC,WAAW,UAAU,IAAI,CAAC,cAAc;AAAA,SACnC;AAAA,MACH,OAAO,SAAS,MAAM,IAAI,UAAU;AAAA,IACtC,EAAE;AAAA,IACF,MAAM,KAAK,IAAI,CAAC,QAAQ;AAAA,MACtB,MAAM,UAAkB;AAAA,WACnB;AAAA,QACH,OAAO,IAAI,OAAO,IAAI,UAAU;AAAA,QAChC,MAAM,aAAa,UAAU,IAAI,IAAI;AAAA,MACvC;AAAA,MACA,IAAI,IAAI,MAAM;AAAA,QACZ,QAAQ,OAAO,aAAa,UAAU,IAAI,IAAI;AAAA,MAChD;AAAA,MACA,OAAO;AAAA,KACR;AAAA,EACH;AAAA;AAIK,IAAM,kBAAkB,CAC7B,OACA,YAqEe;AAAA,EACf,MAAM,WAAW,QAAQ,YAAY;AAAA,EACrC,MAAM,UAAU,QAAQ,WAAW;AAAA,EACnC,MAAM,aAAa,QAAQ,cAAc;AAAA,EACzC,MAAM,mBAAmB,QAAQ,oBAAoB;AAAA,EACrD,MAAM,mBAAmB,QAAQ,oBAAoB,IAAI;AAAA,EACzD,MAAM,cAAc,QAAQ,eAAe,IAAI;AAAA,EAK/C,QAAQ,SAAS,KAAK,UAAU,WAAW,SAAS,gBAClD,UACA,OACF;AAAA,EACA,MAAM,UAAU,WAAW,OAAO,UAAU,QAAQ,QAAQ,YAAY,CAAC;AAAA,EAYzE,MAAM,cAAc,aAAa,UAAU,QAAQ,iBAAiB,GAAG;AAAA,EACvE,MAAM,WAAqB;AAAA,IACzB,MAAM,aACJ,UACA,QAAQ,WAAW,QAAQ,iBAAiB,GAC9C;AAAA,IACA,MAAM;AAAA,EACR;AAAA,EAKA,MAAM,cAAc,QAAQ,eAAe,CAAC;AAAA,EAC5C,YAAY,KACV,GAAG,iCAAiC,OAAO,QAAQ,QAAQ,OAAO,CAAC,CACrE;AAAA,EAEA,IAAI,QAAQ,SAAS;AAAA,IACnB,MAAM,UAAU,mBACd,QAAQ,SACR,SACA,SACA,QACF;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,MAAM,aAAa,MAAM,SAAS,aAAa,UAAU,QAAQ;AAAA,IACnE;AAAA,EACF;AAAA,EAEA,MAAM,UAAU,uBACd,OACA,QAAQ,YACR,kBACA,YACA,kBACA,SACA,IAAI,IACF,KAAK,QAAQ,CAAC,QAAS,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAE,CACvE,GACA,aACA,QAAQ,kBACV;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA,MAAM,aAAa,MAAM,SAAS,aAAa,UAAU,QAAQ;AAAA,EACnE;AAAA;;;AE11CF,wCAA0B;AAU1B,IAAM,cAAc;AAMpB,IAAM,UAAU;AAGhB,IAAM,cAAc;AAEpB,IAAM,oBAAoB,CAAC,SACzB,KAAK,WAAW,aAAa,CAAC,UAC5B,MAAM,WAAW,IAAI,KAAK,UAAU,KACtC;AAGF,IAAM,mBAAmB,CAAC,WAA4B;AAAA,EACpD,YAAY,QAAQ,OAAO,SAAS,OAAO,GAAG;AAAA,IAC5C,IAAI,YAAY,KAAK,GAAG,GAAG;AAAA,MACzB,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAgBT,IAAM,UAAU,CAAC,SAAkB,WAAqC;AAAA,EACtE,MAAM,OAAO,QAAQ,SAAS,GAAG,EAAE;AAAA,EACnC,MAAM,QAAQ,MAAM,UAAU,MAAM;AAAA,EACpC,MAAM,MAAM,MAAM,UAAU,IAAI;AAAA,EAChC,IAAI,MAAM,SAAS,UAAU,UAAU,aAAa,QAAQ,WAAW;AAAA,IACrE;AAAA,EACF;AAAA,EACA,MAAM,SAAS,oBAAoB,KAAK,KAAK;AAAA,EAC7C,IACE,OAAO,OAAO,aACb,OAAO,SAAS,MAAM,QAAQ,SAAS,WAAW,GACnD;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAM,UAAU,oBAAoB,OAAO,MAAM,OAAO,GAAG,CAAC;AAAA,EAC5D,MAAM,OAAO,QAAQ,QAAQ,KAAK;AAAA,EAClC,MAAM,UAAU,OAAO,MAAM,MAAM,GAAG;AAAA,EACtC,IAAI,QAAQ,OAAO,aAAa,CAAC,YAAY,KAAK,OAAO,GAAG;AAAA,IAC1D;AAAA,EACF;AAAA,EACA,OAAO,EAAE,KAAK,MAAM,MAAM,kBAAkB,OAAO,EAAE;AAAA;AAIvD,IAAM,eAAe,CAAC,MAAa,QAAgB,UAAwB;AAAA,EACzE,IAAI,KAAK,SAAS,WAAW;AAAA,IAC3B,MAAM,OAAO,QAAQ,MAAM,MAAM;AAAA,IACjC,IAAI,MAAM;AAAA,MACR,MAAM,KAAK,IAAI;AAAA,IACjB;AAAA,IACA;AAAA,EACF;AAAA,EACA,IAAI,cAAc,MAAM;AAAA,IACtB,WAAW,SAAS,KAAK,UAAU;AAAA,MACjC,aAAa,OAAO,QAAQ,KAAK;AAAA,IACnC;AAAA,EACF;AAAA;AAGF,IAAM,QAAQ,CAAC,QAAgB,WAA4C;AAAA,EACzE,IAAI;AAAA,IACF,OAAO,WAAW,QACd,YAAW,QAAQ,EAAE,UAAU,kBAAkB,CAAC,IAClD,gBAAgB,QAAQ,EAAE,UAAU,uBAAuB,CAAC;AAAA,IAChE,MAAM;AAAA,IAEN;AAAA;AAAA;AAWG,IAAM,kBAAkB,CAC7B,QACA,WACW;AAAA,EACX,MAAM,OAAO,iBAAiB,MAAM,IAAI,MAAM,QAAQ,MAAM,IAAI;AAAA,EAChE,IAAI,CAAC,MAAM;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAgB,CAAC;AAAA,EACvB,aAAa,MAAM,QAAQ,KAAK;AAAA,EAChC,IAAI,UAAU;AAAA,EACd,IAAI,KAAK;AAAA,EACT,WAAW,QAAQ,OAAO;AAAA,IACxB,WAAW,OAAO,MAAM,IAAI,KAAK,IAAI,IAAI,KAAK;AAAA,IAC9C,KAAK,KAAK;AAAA,EACZ;AAAA,EACA,OAAO,UAAU,OAAO,MAAM,EAAE;AAAA;;;AC5H3B,IAAM,cAAc;AA0C3B,IAAM,SAAS,CAAC,UACd,OAAO,UAAU;AAEnB,IAAM,UAAU,CAAC,UAAgD;AAAA,EAC/D,IAAI,OAAO,KAAK,GAAG;AAAA,IACjB,OAAO,EAAE,MAAM,MAAM;AAAA,EACvB;AAAA,EACA,OAAO,SAAS,OAAO,QAAQ,KAAK;AAAA,EACpC,OAAO,QAAQ,EAAE,MAAM,MAAM,IAAI,OAAO,MAAM,GAAG,IAAI;AAAA;AAyDhD,IAAM,mBAAmB,CAC9B,aAEC,WAAW,CAAC,GAAG,QAAQ,CAAC,UAAU;AAAA,EACjC,MAAM,OAAO,QAAQ,KAAK,GAAG;AAAA,EAC7B,OAAO,QAAQ,CAAC,cAAc,IAAI,IAC9B,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,KAAK,CAAC,IACrC,CAAC;AAAA,CACN;;;ACjIH,cAAS;;;ACDT,cAAS;;;ACMF,IAAM,0BAA0B,CAAC,SACtC,mBAAmB,KAAK,SAAS,IAAI,MAAM,OAAO,KAC/C,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,CAAC,EAChC,KAAK,IAAI;;;ADEP,IAAM,2BAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAsBA,IAAM,aAAa,EAAE,SAAS,gBAAgB,KAAK,iBAAiB;AACpE,IAAM,gBAAgB,EAAE,SAAS,mBAAmB,KAAK,oBAAoB;AAC7E,IAAM,aAAa,EAAE,SAAS,gBAAgB,KAAK,iBAAiB;AACpE,IAAM,WAAW,EAAE,SAAS,aAAa,KAAK,cAAc;AA+B5D,IAAM,wBAAwB,IAAE,OAC9B,IAAE,OAAO,GACT,IAAE,OAAO,IAAE,OAAO,GAAG,IAAE,KAAK,CAAC,CAC/B;AAGO,IAAM,gBAAgB,CAAC,eAAuB;AAAA,EACnD,WAAW,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,SAAS;AAAA,EAC9C,SAAS,IAAE,OAAO,IAAE,OAAO,GAAG,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACnD,iBAAiB,sBAAsB,SAAS;AAClD;AAEA,IAAM,kBAAkB,IAAE,KAAK,wBAAwB,EAAE,SAAS;AAM3D,IAAM,sBAAsB;AAEnC,IAAM,wBAAwB;AA0B9B,IAAM,uBAAuB,IAAE,aAAa;AAAA,KACvC,cAAc,mBAAmB;AAAA,EACpC,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,qBAAqB;AAAA,EACtD,WAAW;AACb,CAAC;AAOM,IAAM,uBAAuB,wBAClC,WACA,oBACF;AASO,IAAM,UAAU,CACrB,UAAmC,CAAC,OACP;AAAA,EAC7B,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC,QAAQ,aAAa,mBAAmB;AAAA,EAC1D,aAAa,CAAC;AAChB;AAMO,IAAM,qBAAqB;AA2ClC,IAAM,sBAAsB,IAAE,aAAa;AAAA,KACtC,cAAc,kBAAkB;AAAA,EACnC,SAAS,IAAE,IAAI,EAAE,SAAS;AAAA,EAC1B,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACjC,WAAW;AACb,CAAC;AAOM,IAAM,sBAAsB,wBACjC,UACA,mBACF;AA8CA,IAAM,wBAAwB;AAe9B,IAAM,yBAAyB,IAAE,aAAa;AAAA,KACzC,cAAc,qBAAqB;AAAA,EACtC,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,WAAW;AACb,CAAC;AAOM,IAAM,yBAAyB,wBACpC,aACA,sBACF;AAmBA,IAAM,qBAAqB;AAc3B,IAAM,sBAAsB,IAAE,aAAa;AAAA,KACtC,cAAc,kBAAkB;AAAA,EACnC,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,WAAW;AACb,CAAC;AAOM,IAAM,sBAAsB,wBACjC,UACA,mBACF;AAmBA,IAAM,mBAAmB;AAazB,IAAM,oBAAoB,IAAE,aAAa;AAAA,KACpC,cAAc,gBAAgB;AAAA,EACjC,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,WAAW;AACb,CAAC;AAOM,IAAM,oBAAoB,wBAC/B,QACA,iBACF;AAiBA,IAAM,yBAAyB;AAc/B,IAAM,0BAA0B,IAAE,aAAa;AAAA,KAC1C,cAAc,sBAAsB;AAAA,EACvC,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,WAAW;AACb,CAAC;AAOM,IAAM,0BAA0B,wBACrC,cACA,uBACF;AAmBA,IAAM,yBAAyB;AAe/B,IAAM,0BAA0B,IAAE,aAAa;AAAA,KAC1C,cAAc,sBAAsB;AAAA,EACvC,SAAS,IAAE,IAAI,EAAE,QAAQ,8BAA8B;AAAA,EACvD,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,WAAW;AACb,CAAC;AAOM,IAAM,0BAA0B,wBACrC,cACA,uBACF;AAmBA,IAAM,qBAAqB;AAa3B,IAAM,sBAAsB,IAAE,aAAa;AAAA,KACtC,cAAc,kBAAkB;AAAA,EACnC,SAAS,IAAE,IAAI,EAAE,QAAQ,2BAA2B;AAAA,EACpD,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AACzB,CAAC;AAOM,IAAM,sBAAsB,wBACjC,UACA,mBACF;AAuCA,IAAM,sBAAsB,IAAI,IAAI;AAAA,EAClC,CAAC,aAAa,WAAW;AAAA,EACzB,CAAC,WAAW,SAAS;AAAA,EACrB,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,cAAc,YAAY;AAAA,EAC3B,CAAC,UAAU,QAAQ;AAAA,EAEnB,CAAC,qBAAqB,QAAQ;AAAA,EAC9B,CAAC,cAAc,YAAY;AAC7B,CAAC;AAGD,IAAM,oBAAyC,IAAI,IAAI;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,IAAM,6BAA6B,IAAE,YAAY;AAAA,EAC/C,UAAU,IAAE,MAAM;AAAA,IAChB,IAAE,OAAO;AAAA,IACT,IAAE,YAAY,EAAE,MAAM,IAAE,OAAO,EAAE,CAAC,EAAE,UAAU,GAAG,WAAW,IAAI;AAAA,EAClE,CAAC;AACH,CAAC;AAGD,IAAM,kBAAkB,CAAC,UAAuC;AAAA,EAC9D,MAAM,QAAQ,2BAA2B,UAAU,MAAM,KAAK;AAAA,EAC9D,OACG,MAAM,WAAW,oBAAoB,IAAI,MAAM,KAAK,QAAQ,KAAM;AAAA;AAUhE,IAAM,2BAA2B;AAAA,EACtC,OAAO,CAAC,UAAmD;AAAA,IACzD,IAAI,MAAM,SAAS,qBAAqB;AAAA,MACtC;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,MAAM,KAAK,OAAO,CAAC,QAAQ,kBAAkB,IAAI,GAAG,CAAC;AAAA,IACnE,IAAI,MAAM,WAAW,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,IACA,MAAM,SAAS,MAAM,IAAI,CAAC,QAAQ,gBAAgB,KAAK,EAAE,KAAK,IAAI;AAAA,IAClE,MAAM,OAAO,GAAG,uDAAuD,gBAAgB,KAAK,OAAO,MAAM,KAAK,IAAI;AAAA,IAClH,MAAM,SAAS,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,kBAAkB,IAAI,GAAG,CAAC;AAAA,IACrE,OAAO,OAAO,SAAS,IACnB,GAAG,QAAQ,wBAAwB,MAAM,MACzC;AAAA;AAER;AAGA,IAAM,oBAAoB,IAAE,OAAO;AAMnC,IAAM,4BAA4B,CAAC,UAAuC;AAAA,EACxE,MAAM,OAAO,kBAAkB,UAAU,MAAM,KAAK;AAAA,EACpD,MAAM,UAAU,KAAK,UAAU,oBAAoB,IAAI,KAAK,IAAI,IAAI;AAAA,EACpE,OAAO,UACH,4FAA4F,+GAC5F;AAAA;AAQC,IAAM,yBAAyB,IAAE,mBACtC,QACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACA;AAAA,EAIE,OAAO,CAAC,UACN,MAAM,SAAS,kBACX,YACA,0BAA0B,KAAK;AACvC,CACF;AAOO,IAAM,6BAA+C,QAAQ;AAiDpE,IAAM,aAAa,CAAC,QAAwB,aAAa,KAAK,UAAU,GAAG;AAS3E,IAAM,cAAc,CAAC,YACnB,WAAW,OAAO,KAAK,OAAO,EAAE,SAAS,IACrC;AAAA,aAAgB,KAAK,UAAU,OAAO,OACtC;AAGN,IAAM,WAAW,CAAC,QAAwB,UAAU,WAAW,GAAG;AAAA;AAAA,QAE1D,KAAK,UAAU,wCAAwC,MAAM;AAAA;AAAA;AAAA;AASrE,IAAM,aAAa,CAAC,YAGJ;AAAA,EACd,MAAM,SAAmB,CAAC;AAAA,EAC1B,IAAI,QAAQ,WAAW;AAAA,IACrB,OAAO,KAAK,cAAc,KAAK,UAAU,QAAQ,SAAS,GAAG;AAAA,EAC/D;AAAA,EACA,IAAI,QAAQ,iBAAiB;AAAA,IAC3B,OAAO,KAAK,oBAAoB,KAAK,UAAU,QAAQ,eAAe,GAAG;AAAA,EAC3E;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,iBAAiB,CACrB,aACgB;AAAA,EAChB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,IAGR,QAAQ,WAAW,OAAO;AAAA,IAI1B,SAAS;AAAA,MACP;AAAA,IACF;AAAA,IACA,UAAU;AAAA,UACJ,WAAW,QAAQ,SAAS;AAAA;AAAA,QAE9B,KAAK,UAAU,wCAAwC,QAAQ,4CAA4C;AAAA;AAAA;AAAA;AAAA,IAI/G,OAAO,WAAW,KAAK,UAAU,QAAQ,KAAK;AAAA,IAC9C,OAAO;AAAA;AAAA,YACC,WAAW,QAAQ,SAAS,KAAK,YAAY,QAAQ,OAAO;AAAA;AAAA;AAAA,EAEtE;AAAA,EACA,gBAAgB;AAClB;AAEA,IAAM,oBAAoB,CACxB,YACe;AAAA,EAIf,MAAM,WAAW,QAAQ,YACrB,4BAA4B,KAAK,UAAU,QAAQ,SAAS,UAC5D;AAAA,EACJ,OAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,MACR,QAAQ,WAAW,EAAE,iBAAiB,QAAQ,gBAAgB,CAAC;AAAA,MAC/D,SAAS;AAAA,QACP;AAAA,QACA;AAAA,MACF;AAAA,MACA,UAAU,SAAS,QAAQ,SAAS;AAAA,MACpC,OAAO,cAAc,KAAK,UAAU,QAAQ,KAAK,IAAI;AAAA,MACrD,OAAO;AAAA;AAAA,YACD,WAAW,QAAQ,SAAS,KAAK,YAAY,QAAQ,OAAO;AAAA;AAAA;AAAA,IAEpE;AAAA,IACA,gBAAgB;AAAA,EAClB;AAAA;AAQF,IAAM,0BAA0B,CAC9B,MACA,OACA,UACA,gBACA,aASgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,IACR,QAAQ,WAAW,OAAO;AAAA,IAC1B,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,SAAS,QAAQ,SAAS;AAAA,IACpC,OAAO,YAAY,KAAK,UAAU,QAAQ,KAAK;AAAA,IAG/C,OAAO;AAAA;AAAA,YACC,WAAW,QAAQ,SAAS;AAAA,aAC3B,KAAK,UAAU,QAAQ,OAAO,KAAK,YAAY,QAAQ,OAAO;AAAA,UACjE,KAAK,UAAU,QAAQ,IAAI;AAAA;AAAA;AAAA,EAEnC;AAAA,EACA;AACF;AAOA,IAAM,gBAAgB,CACpB,MACA,OACA,KACA,aAQgB;AAAA,EAChB,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,UAAU;AAAA,IACR,QAAQ,WAAW,OAAO;AAAA,IAC1B,SAAS;AAAA,MACP;AAAA,MACA,YAAY,IAAI,kBAAkB,KAAK,UAAU,IAAI,GAAG;AAAA,IAC1D;AAAA,IACA,UAAU,SAAS,QAAQ,SAAS;AAAA,IACpC,OAAO,YAAY,KAAK,UAAU,QAAQ,KAAK;AAAA,IAC/C,OAAO;AAAA,mBAAsB,IAAI;AAAA,YACzB,WAAW,QAAQ,SAAS,KAAK,YAAY,QAAQ,OAAO,IACpE,QAAQ,OAAO;AAAA,UAAa,KAAK,UAAU,QAAQ,IAAI,OAAO;AAAA;AAAA;AAAA,EAGhE;AAAA,EACA,gBAAgB;AAClB;AAQA,IAAM,gBAAgB,CACpB,YACe;AAAA,EACf,QAAQ,YAAY;AAAA,EACpB,OAAO,UACH,wBAAwB,UAAU,qBAAqB,MAAM,OAAO;AAAA,OAC/D;AAAA,IACH;AAAA,IACA,MAAM,QAAQ,QAAQ;AAAA,EACxB,CAAC,IACD,cAAc,UAAU,UAAU,YAAY,OAAO;AAAA;AAIpD,IAAM,oBAAoB,CAC/B,WAAmC,uBAAuB,MACxD,0BACF,MACe;AAAA,EACf,QAAQ,SAAS;AAAA,SACV,WAAW;AAAA,MACd,OAAO,eAAe,SAAS,OAAO;AAAA,IACxC;AAAA,SACK,aAAa;AAAA,MAChB,OAAO,cACL,aACA,aACA,eACA,SAAS,OACX;AAAA,IACF;AAAA,SACK,UAAU;AAAA,MACb,OAAO,cAAc,UAAU,UAAU,YAAY,SAAS,OAAO;AAAA,IACvE;AAAA,SACK,QAAQ;AAAA,MACX,OAAO,cAAc,QAAQ,QAAQ,UAAU,SAAS,OAAO;AAAA,IACjE;AAAA,SACK,cAAc;AAAA,MACjB,OAAO,kBAAkB,SAAS,OAAO;AAAA,IAC3C;AAAA,SACK,cAAc;AAAA,MACjB,OAAO,wBAAwB,cAAc,cAAc,MAAM,MAAM;AAAA,WAClE,SAAS;AAAA,QACZ,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AAAA,SACK,UAAU;AAAA,MAGb,OAAO,wBAAwB,UAAU,UAAU,OAAO,OAAO;AAAA,WAC5D,SAAS;AAAA,QACZ,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AAAA,aACS;AAAA,MACP,OAAO,cAAc,SAAS,OAAO;AAAA,IACvC;AAAA;AAAA;;;AEp8BJ,cAAS;;;ACAT,cAAS;AAeF,IAAM,qBAAqB,IAAE,aAAa;AAAA,EAC/C,KAAK,IAAE,OAAO,EAAE,IAAI,CAAC;AACvB,CAAC;AAIM,IAAM,qBAAqB,wBAChC,SACA,kBACF;;;ACxBA,cAAS;;;ACmBF,IAAM,eAAe,CAAC,MAAc,YACzC,uEAAuE,mDAAmD,mCAAmC;;;ADExJ,IAAM,yBAAyB,IACnC,OAAO;AAAA,EACN,KAAK,IAAE,OAAO,EAAE,IAAI,CAAC;AACvB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAIb,IAAM,yBAAyB,wBACpC,aACA,sBACF;;;AEjCA,cAAS;AAaF,IAAM,uBAAuB,IAAE,aAAa;AAAA,EACjD,IAAI,IAAE,OAAO,EAAE,IAAI,CAAC;AACtB,CAAC;AAIM,IAAM,uBAAuB,wBAClC,WACA,oBACF;;;ACtBA,cAAS;AAYF,IAAM,wBAAwB,IAAE,aAAa;AAAA,EAClD,KAAK,IAAE,OAAO,EAAE,IAAI,CAAC;AACvB,CAAC;AAIM,IAAM,wBAAwB,wBACnC,YACA,qBACF;;;ACrBA,cAAS;AAmBF,IAAM,qBAAqB,IAAE,aAAa;AAAA,EAC/C,gBAAgB,IAAE,QAAQ,EAAE,SAAS;AAAA,EACrC,sBAAsB,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC3C,WAAW,IAAE,OAAO,EAAE,IAAI,CAAC;AAC7B,CAAC;AAIM,IAAM,qBAAqB,wBAChC,SACA,kBACF;;;AC9BA,cAAS;AAwBF,IAAM,0BAA0B,IACpC,OAAO;AAAA,EACN,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AACzB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAOb,IAAM,0BAA0B,wBACrC,cACA,uBACF;;;ACtCA,cAAS;AAyBF,IAAM,yBAAyB,IACnC,OAAO;AAAA,EACN,UAAU,IAAE,OAAO,EAAE,IAAI,CAAC;AAC5B,CAAC,EACA,SAAS,IAAE,OAAO,CAAC;AAIf,IAAM,yBAAyB,wBACpC,aACA,sBACF;;;ACpCA,cAAS;AAwBF,IAAM,sBAAsB,IAChC,OAAO;AAAA,EACN,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC;AACxB,CAAC,EACA,SAAS,IAAE,OAAO,CAAC;AAIf,IAAM,sBAAsB,wBACjC,UACA,mBACF;;;ACnCA,cAAS;AAsBF,IAAM,+BAA+B,IACzC,OAAO;AAAA,EACN,IAAI,IAAE,OAAO,EAAE,IAAI,CAAC;AACtB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAOb,IAAM,+BAA+B,wBAC1C,oBACA,4BACF;;;ACpCA,cAAS;AAeF,IAAM,gCAAgC,IAAE,aAAa;AAAA,EAC1D,WAAW,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACtC,IAAI,IAAE,OAAO,EAAE,IAAI,CAAC;AACtB,CAAC;AAOM,IAAM,gCAAgC,wBAC3C,sBACA,6BACF;;;AC5BA,cAAS;AAsBF,IAAM,oBAAoB,IAC9B,OAAO;AAAA,EACN,IAAI,IAAE,OAAO,EAAE,IAAI,CAAC;AACtB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAIb,IAAM,oBAAoB,wBAC/B,QACA,iBACF;;;ACjCA,cAAS;AA0BF,IAAM,yBAAyB,IACnC,OAAO;AAAA,EACN,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACjC,KAAK,IAAE,OAAO,EAAE,IAAI,CAAC;AACvB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAIb,IAAM,yBAAyB,wBACpC,aACA,sBACF;AAmBA,IAAM,0BAA0B,aAC9B,wBACA,kBACF;;;AC5DA,cAAS;AAiBF,IAAM,sBAAsB,IAAE,aAAa;AAAA,EAChD,IAAI,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC9B,SAAS,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAChD,CAAC;AAIM,IAAM,sBAAsB,wBACjC,UACA,mBACF;;;AC3BA,cAAS;AA0BF,IAAM,yBAAyB,IACnC,OAAO;AAAA,EACN,IAAI,IAAE,OAAO,EAAE,IAAI,CAAC;AACtB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAIb,IAAM,yBAAyB,wBACpC,aACA,sBACF;;;ACrCA,cAAS;AAiCF,IAAM,wBAAwB,IAClC,OAAO;AAAA,EACN,QAAQ,IAAE,KAAK,CAAC,MAAM,MAAM,IAAI,CAAC,EAAE,SAAS;AAAA,EAC5C,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AACzB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAIb,IAAM,wBAAwB,wBACnC,YACA,qBACF;;;AC7CA,cAAS;AA4BF,IAAM,8BAA8B,IACxC,OAAO;AAAA,EACN,UAAU,IACP,OAAO,EACP,MAAM,mDAAmD;AAAA,IACxD,SACE;AAAA,EACJ,CAAC,EACA,SAAS;AACd,CAAC,EACA,SAAS,IAAE,OAAO,CAAC;AAOf,IAAM,8BAA8B,wBACzC,oBACA,2BACF;;;AChDA,cAAS;AAwBF,IAAM,sBAAsB,IAChC,OAAO;AAAA,EACN,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC;AACxB,CAAC,EACA,SAAS,IAAE,OAAO,CAAC;AAIf,IAAM,sBAAsB,wBACjC,UACA,mBACF;;;ACnCA,cAAS;AA6BF,IAAM,yBAAyB,IACnC,OAAO;AAAA,EACN,QAAQ,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACnC,CAAC,EACA,SAAS,IAAE,OAAO,CAAC;AAIf,IAAM,yBAAyB,wBACpC,aACA,sBACF;;;ACzCA,cAAS;AA2BF,IAAM,uBAAuB,IACjC,OAAO;AAAA,EACN,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,KAAK,IAAE,OAAO,EAAE,IAAI,CAAC;AACvB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAIb,IAAM,uBAAuB,wBAClC,WACA,oBACF;AAmBA,IAAM,wBAAwB,aAC5B,sBACA,+BACF;;;AC7DA,cAAS;AAmBF,IAAM,sBAAsB,IAChC,aAAa;AAAA,EACZ,YAAY,IAAE,OAAO,IAAE,OAAO,GAAG,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACtD,SAAS,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,KAAK,IAAE,OAAO,EAAE,SAAS;AAAA,EACzB,UAAU,IAAE,KAAK,CAAC,SAAS,OAAO,CAAC,EAAE,SAAS;AAChD,CAAC,EACA,OAAO,CAAC,UAAU,QAAQ,MAAM,GAAG,MAAM,QAAQ,MAAM,OAAO,GAAG;AAAA,EAChE,SAAS;AACX,CAAC;AAII,IAAM,sBAAsB,wBACjC,UACA,mBACF;;;ACnCA,cAAS;AA8BF,IAAM,uBAAuB,IACjC,OAAO;AAAA,EACN,KAAK,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAChC,KAAK,IAAE,OAAO,EAAE,IAAI,CAAC;AACvB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAIb,IAAM,uBAAuB,wBAClC,WACA,oBACF;AAeA,IAAM,wBAAwB,aAC5B,sBACA,mBACF;;;AC5DA,cAAS;AAwBF,IAAM,sBAAsB,IAChC,OAAO;AAAA,EACN,OAAO,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC5B,MAAM,IAAE,KAAK,CAAC,QAAQ,eAAe,YAAY,CAAC,EAAE,SAAS;AAC/D,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAIb,IAAM,sBAAsB,wBACjC,UACA,mBACF;;;AvBVO,IAAM,yBAAyB,IAAE,mBAAmB,QAAQ;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAID,IAAM,aACJ;AAOK,IAAM,wBAAwB,IAClC,MAAM,wBAAwB;AAAA,EAC7B,OAAO,CAAC,UAAW,MAAM,SAAS,iBAAiB,aAAa;AAClE,CAAC,EACA,QAAQ,CAAC,CAAC;;;AwBjEb,cAAS;;;ACAT,cAAS;AAWF,IAAM,wBAAwB,IAAE,aAAa;AAAA,EAClD,SAAS,IAAE,OAAO,EAAE,IAAI,CAAC;AAC3B,CAAC;AAIM,IAAM,wBAAwB,wBACnC,YACA,qBACF;;;ACpBA,cAAS;AAWF,IAAM,yBAAyB,IAAE,aAAa;AAAA,EACnD,SAAS,IAAE,OAAO,EAAE,IAAI,CAAC;AAC3B,CAAC;AAIM,IAAM,yBAAyB,wBACpC,aACA,sBACF;;;AFVO,IAAM,uBAAuB,IAAE,mBACpC,QACA,CAAC,uBAAuB,sBAAsB,GAC9C;AAAA,EACE,OACE;AACJ,CACF;AAWO,IAAM,kBAAkB,CAAC,aAA8C;AAAA,EAC5E,MAAM,QAAQ;AAAA,EACd,SAAS,QAAQ,QAAQ;AAC3B;;;AG/BA;AAoBA,IAAM,WAAW,CAAC,UAChB,OAAO,UAAU;AAyDnB,IAAM,cAAc;AAEpB,IAAM,gBAAgB;AAQf,IAAM,sBAAsB,CACjC,MACA,YACA,YACM;AAAA,EACN,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,cAAc,KAAK,KAAK,IAAI,GAAG;AAAA,EAC9C,IAAI,QAAQ,YAAY,SAAS;AAAA,IAC/B,OAAO;AAAA,EACT;AAAA,EAGA,MAAM,QAAQ,aAAa;AAAA,EAC3B,OAAO,QAAQ,OAAO,QAAQ,OAAO;AAAA;AA+BhC,IAAM,UAAU,CAAC,QACtB,YAAY,KAAK,GAAG,GAAG,QAAQ,QAAQ,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK;AAQ3D,IAAM,kBAAkB,CAAC,WAC9B,OAAO,OAAO,WAAW,KACzB,EAAE,OAAO,cAAc,OAAO,SAAS,OAAO,SAC1C,OAAO,MAAM,KACb;AAUC,IAAM,gBAAgB,CAC3B,SACA,WACe;AAAA,EACf,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,SAAS,gBAAgB,MAAM;AAAA,EACrC,IAAI,QAAQ;AAAA,IACV,QAAQ,OAAO,aAAa,QAAQ;AAAA,IACpC,OAAO,KAAK,cAAc,SAAS,MAAM,MAAM,IAAI;AAAA,EACrD;AAAA,EACA,IAAI,SAAS,OAAO,IAAI,GAAG;AAAA,IACzB,MAAM,OAAO,YAAY,KAAK,OAAO,IAAI,GAAG,QAAQ;AAAA,IACpD,MAAM,SAAS,OAAO,QAAQ,QAAQ;AAAA,IACtC,IAAI,QAAQ;AAAA,MACV,QAAQ,MAAM,SAAS,QAAQ;AAAA,MAC/B,OAAO,OAAO,KAAK,GAAG,EAAE,SAAS,IAAI,KAAK,WAAW,IAAI,IAAI;AAAA,IAC/D;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAaT,IAAM,mBAAmB,CAAC,SAAkD;AAAA,EAC1E,IAAI,CAAC,MAAM;AAAA,IACT,OAAO,CAAC;AAAA,EACV;AAAA,EACA,OAAO,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAAA;AAG3C,IAAM,eAAe,CAAC,SACpB,iBAAiB,IAAI,EAAE,OAAO,CAAC,MAAM,MAAM,MAAM;AAOnD,IAAM,aAAa,CAAC,WAAgC;AAAA,EAClD,MAAM,QAAQ,iBAAiB,OAAO,IAAI;AAAA,EAC1C,OAAO,MAAM,SAAS,KAAK,MAAM,MAAM,CAAC,SAAS,SAAS,MAAM;AAAA;AAW3D,IAAM,YAAY,CAAC,WAA+B;AAAA,EACvD,IAAI,SAAS,OAAO,IAAI,GAAG;AAAA,IACzB,OAAO,QAAQ,OAAO,IAAI;AAAA,EAC5B;AAAA,EACA,IAAI,OAAO,SAAS,OAAO,OAAO;AAAA,IAChC,MAAM,WAAW,OAAO,SAAS,OAAO,SAAS,CAAC;AAAA,IAClD,MAAM,UAAU,SAAS,OAAO,CAAC,WAAW,CAAC,WAAW,MAAM,CAAC;AAAA,IAC/D,IAAI,QAAQ,WAAW,KAAK,SAAS,SAAS,GAAG;AAAA,MAC/C,OAAO;AAAA,IACT;AAAA,IACA,MAAM,SAAS,QAAQ,IAAI,CAAC,WAAW,UAAU,MAAM,CAAC;AAAA,IACxD,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,KAAK;AAAA,EAC7C;AAAA,EACA,IAAI,OAAO,OAAO;AAAA,IAChB,MAAM,SAAS,gBAAgB,MAAM;AAAA,IACrC,OAAO,SAAS,UAAU,MAAM,IAAI;AAAA,EACtC;AAAA,EACA,MAAM,QAAQ,aAAa,OAAO,IAAI;AAAA,EACtC,MAAM,aAAa,MAAc,GAAG,UAAU,OAAO,SAAS,CAAC,CAAC;AAAA,EAChE,IAAI,MAAM,SAAS,GAAG;AAAA,IAEpB,OAAO,MACJ,IAAI,CAAC,SAAU,SAAS,UAAU,WAAW,IAAI,IAAK,EACtD,KAAK,KAAK;AAAA,EACf;AAAA,EACA,IAAI,MAAM,SAAS,OAAO,GAAG;AAAA,IAC3B,OAAO,WAAW;AAAA,EACpB;AAAA,EACA,IAAI,MAAM,WAAW,KAAK,WAAW,MAAM,GAAG;AAAA,IAC5C,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,MAAM,OAAO,OAAO,aAAa,WAAW;AAAA,EACzD,OAAO,OAAO,SAAS,GAAG,QAAQ,OAAO,YAAY;AAAA;AAOhD,IAAM,aAAa,CAAC,WACzB,OAAO,aAAa,QACnB,MAAM,QAAQ,OAAO,IAAI,KAAK,OAAO,KAAK,SAAS,MAAM,KAC1D,CAAC,GAAI,OAAO,SAAS,CAAC,GAAI,GAAI,OAAO,SAAS,CAAC,CAAE,EAAE,KAAK,UAAU;AAuC7D,IAAM,mBAAmB,CAC9B,QACA,YACsB;AAAA,EACtB,MAAM,aAAa,IAAI;AAAA,EACvB,MAAM,WAAW,IAAI;AAAA,EAGrB,MAAM,OAAO,IAAI;AAAA,EAEjB,MAAM,UAAU,CAAC,SAA2B;AAAA,IAC1C,IAAI,SAAS,KAAK,IAAI,GAAG;AAAA,MACvB,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG;AAAA,QACvB;AAAA,MACF;AAAA,MACA,KAAK,IAAI,KAAK,IAAI;AAAA,IACpB;AAAA,IACA,MAAM,WAAW,cAAc,SAAS,IAAI;AAAA,IAC5C,WAAW,QAAQ,SAAS,YAAY,CAAC,GAAG;AAAA,MAC1C,SAAS,IAAI,IAAI;AAAA,IACnB;AAAA,IACA,YAAY,MAAM,SAAS,OAAO,QAAQ,SAAS,cAAc,CAAC,CAAC,GAAG;AAAA,MACpE,WAAW,IAAI,MAAM,IAAI;AAAA,IAC3B;AAAA,IACA,WAAW,UAAU,SAAS,SAAS,CAAC,GAAG;AAAA,MACzC,QAAQ,MAAM;AAAA,IAChB;AAAA;AAAA,EAGF,QAAQ,MAAM;AAAA,EACd,OAAO,EAAE,YAAY,CAAC,GAAG,WAAW,QAAQ,CAAC,GAAG,SAAS;AAAA;AAM3D,IAAM,WAAW,CAAC,UAChB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAGrE,IAAM,gBAAgB,IAAI,IAAI;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,IAAM,iBAAiB,CAAC,SAAS,WAAW,WAAW,UAAU;AAUjE,IAAM,aAAa,CAAC,WAAiC;AAAA,EACnD,IAAI,MAAM,QAAQ,MAAM,GAAG;AAAA,IACzB,OAAO,OAAO,IAAI,UAAU;AAAA,EAC9B;AAAA,EACA,IAAI,CAAC,SAAS,MAAM,GAAG;AAAA,IACrB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,MAAiC,CAAC;AAAA,EACxC,YAAY,KAAK,UAAU,OAAO,QAAQ,MAAM,GAAG;AAAA,IACjD,IAAI,OAAO,cAAc,IAAI,GAAG,IAAI,QAAQ,WAAW,KAAK;AAAA,EAC9D;AAAA,EACA,QAAQ,MAAM,QAAQ,QAAQ;AAAA,EAC9B,IAAI,EAAE,SAAS,GAAG,KAAK,eAAe,KAAK,CAAC,SAAQ,OAAO,IAAG,IAAI;AAAA,IAChE,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,MAAM,QAAQ,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC;AAAA,EACxD,OAAO,KAAK,KAAK,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,GAAG,OAAO,EAAE;AAAA;AAItD,IAAM,oBAAoB,IAAI;AAK9B,IAAM,uBAAuB,CAC3B,YAC+B;AAAA,EAC/B,MAAM,SAAS,kBAAkB,IAAI,OAAO;AAAA,EAC5C,IAAI,QAAQ;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EAGA,MAAM,YAAY,WAAW,OAAO;AAAA,EACpC,kBAAkB,IAAI,SAAS,SAAS;AAAA,EACxC,OAAO;AAAA;AAYF,IAAM,eAAe,CAC1B,OACA,QACA,SACA,cACc;AAAA,EACd,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO;AAAA,EACT;AAAA,EACA,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,QAAQ,UAAU,cAAc,SAAS,MAAM;AAAA,IAC/C,OAAO,QACH,MAAM,IAAI,CAAC,SAAS,aAAa,MAAM,OAAO,SAAS,SAAS,CAAC,IACjE;AAAA,EACN;AAAA,EACA,IAAI,CAAC,SAAS,KAAK,GAAG;AAAA,IACpB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,aAAa,IAAI,IAAI,iBAAiB,QAAQ,OAAO,EAAE,UAAU;AAAA,EACvE,MAAM,UAAU,cAAc,YAAY,aAAa;AAAA,EACvD,MAAM,MAAiC,CAAC;AAAA,EACxC,YAAY,MAAM,WAAW,OAAO,QAAQ,KAAK,GAAG;AAAA,IAClD,MAAM,WAAW,WAAW,IAAI,IAAI;AAAA,IACpC,IACE,WAAW,aAAa,QACxB,cAAc,SAAS,QAAQ,EAAE,aAAa,MAC9C;AAAA,MACA;AAAA,IACF;AAAA,IACA,IAAI,QAAQ,aAAa,QAAQ,UAAU,SAAS,SAAS;AAAA,EAC/D;AAAA,EACA,OAAO;AAAA;AAcF,IAAM,eAAe,CAC1B,QACA,SACA,YAA8B,cAChB;AAAA,EACd,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO;AAAA,EACT;AAAA,EACA,MAAM,WAAW,cAAc;AAAA,EAC/B,IAAI;AAAA,IAGF,MAAM,QAAQ,OACZ,WAAW,MAAM,GACjB,EAAE,OAAO,MAAM,cAAc,CAAC,UAAU,eAAe,SAAS,GAChE,EAAE,YAAY,EAAE,SAAS,qBAAqB,OAAO,EAAE,EAAE,CAC3D;AAAA,IACA,OAAO,aAAa,OAAO,QAAQ,SAAS,SAAS;AAAA,IACrD,MAAM;AAAA,IAGN,OAAO;AAAA;AAAA;AAmBJ,IAAM,kBAAkB,CAC7B,SACA,eACc;AAAA,EACd,IAAI,QAAQ,YAAY,WAAW;AAAA,IACjC,OAAO,QAAQ;AAAA,EACjB;AAAA,EACA,QAAQ,aAAa;AAAA,EACrB,IAAI,CAAC,SAAS,QAAQ,GAAG;AAAA,IACvB;AAAA,EACF;AAAA,EACA,WAAW,SAAS,OAAO,OAAO,QAAQ,GAAG;AAAA,IAC3C,MAAM,UAAU,SAAS,KAAK,IAC1B,oBAAoB,OAAO,YAAY,UAAU,IACjD;AAAA,IACJ,IAAI,SAAS,UAAU,WAAW;AAAA,MAChC,OAAO,QAAQ;AAAA,IACjB;AAAA,EACF;AAAA,EACA;AAAA;AAWK,IAAM,eAAe,CAC1B,OACA,SACA,WACA,eACc;AAAA,EACd,MAAM,WAAW,gBAAgB,OAAO,UAAU;AAAA,EAClD,OAAO,aAAa,YAChB,aAAa,MAAM,QAAQ,SAAS,SAAS,IAC7C,aAAa,UAAU,MAAM,QAAQ,SAAS,SAAS;AAAA;AAQtD,IAAM,kBAAkB,CAC7B,OACA,SACA,eACc,aAAa,OAAO,SAAS,YAAY,UAAU;AAmB5D,IAAM,gBAAgB,CAC3B,OACA,SACA,WACA,eACmB;AAAA,EACnB,IAAI,MAAM,YAAY,aAAa,CAAC,SAAS,MAAM,QAAQ,GAAG;AAAA,IAC5D,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,QAAwB,CAAC;AAAA,EAC/B,YAAY,KAAK,UAAU,OAAO,QAAQ,MAAM,QAAQ,GAAG;AAAA,IACzD,MAAM,UAAU,SAAS,KAAK,IAC1B,oBAAoB,OAAO,YAAY,UAAU,IACjD;AAAA,IACJ,IAAI,SAAS,UAAU,WAAW;AAAA,MAChC;AAAA,IACF;AAAA,IACA,MAAM,KAAK;AAAA,MACT;AAAA,MACA,OACE,SAAS,QAAQ,OAAO,KAAK,QAAQ,UAAU,QAAQ,UAAU;AAAA,MACnE,OAAO,aAAa,QAAQ,OAAO,MAAM,QAAQ,SAAS,SAAS;AAAA,IACrE,CAAC;AAAA,EACH;AAAA,EACA,OAAO,MAAM,SAAS,IAAI,QAAQ,CAAC;AAAA;AAI9B,IAAM,SAAS,CAAI,UAAqB,KAAK,UAAU,OAAO,MAAM,CAAC;;;ACja5E,IAAM,cAAc,IAAI,IAAoB;AAAA,EAC1C,CAAC,QAAQ,mBAAmB;AAAA,EAC5B,CAAC,UAAU,SAAS;AAAA,EACpB,CAAC,wBAAwB,uBAAuB;AAAA,EAChD,CAAC,UAAU,aAAa;AAAA,EACxB,CAAC,cAAc,SAAS;AAAA,EACxB,CAAC,aAAa,YAAY;AAAA,EAC1B,CAAC,UAAU,qBAAqB;AAAA,EAChC,CAAC,iBAAiB,sBAAsB;AAAA,EACxC,CAAC,SAAS,YAAY;AAAA,EACtB,CAAC,eAAe,oBAAoB;AAAA,EACpC,CAAC,eAAe,oBAAoB;AAAA,EACpC,CAAC,uBAAuB,sBAAsB;AAAA,EAC9C,CAAC,gBAAgB,qBAAqB;AACxC,CAAC;;;AC1KM,IAAM,eAAe,CAAC,UAAU,SAAS,OAAO,MAAM;AAItD,IAAM,mBAAmB,CAAC,eAAe,UAAU,MAAM;AAIzD,IAAM,eACX;AAmCK,IAAM,mBAAmB,CAC9B,UAC8C;AAAA,EAC9C,MAAM,SAAS,aAAa,KAAK,MAAM,KAAK,CAAC,GAAG;AAAA,EAChD,OAAO,QAAQ,UAAU,OAAO,SAC5B,EAAE,QAAQ,OAAO,OAAO,YAAY,GAAG,QAAQ,OAAO,OAAO,IAC7D;AAAA;AAiCN,IAAM,aAAa,IAAI,IAAI;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;;;ACzGD,cAAS;;;ACAT,cAAS;AAmBF,IAAM,sBAAsB,IAAE,aAAa;AAAA,EAChD,QAAQ,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACnC,eAAe,IAAE,IAAI,EAAE,UAAU,YAAY,CAAC;AAAA,EAC9C,YAAY,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACzC,CAAC;AAIM,IAAM,sBAAsB,wBACjC,UACA,mBACF;;;AC9BA,cAAS;AAWF,IAAM,sBAAsB,IAAE,aAAa;AAAA,EAChD,QAAQ,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACrC,CAAC;AAIM,IAAM,sBAAsB,wBACjC,UACA,mBACF;;;ACpBA,cAAS;AAcF,IAAM,qBAAqB,IAAE,aAAa;AAAA,EAC/C,UAAU,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC1B,YAAY,IAAE,OAAO,EAAE,IAAI,CAAC;AAC9B,CAAC;AAIM,IAAM,qBAAqB,wBAChC,SACA,kBACF;;;AHlBA,IAAM,eACJ;AAOK,IAAM,uBAAuB,IAAE,mBACpC,QACA,CAAC,qBAAqB,qBAAqB,kBAAkB,GAC7D,EAAE,OAAO,aAAa,CACxB;AASO,IAAM,sBAAsB,qBAChC,SAAS,EACT,UAAU,CAAC,YAAY,WAAW,IAAI;;;AI7BzC,cAAS;;;ACAT,cAAS;AAmEF,IAAM,gBAAgB,IAAE,IAAI;AAAA,EACjC,OACE;AAAA,EACF,UAAU;AACZ,CAAC;AAGM,IAAM,sBAAsB,IAChC,OAAO;AAAA,EACN,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQ,IAAE,KAAK,CAAC,UAAU,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC9C,MAAM,cAAc,SAAS;AAC/B,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAEpB,IAAM,gBAAgB,IAAI,IAAI,CAAC,QAAQ,UAAU,MAAM,CAAC;AAOjD,IAAM,oBAAoB,CAC/B,SACA,gBAAmC,CAAC,MAEpC,OAAO,YACL,OAAO,QAAQ,OAAO,EAAE,OACtB,EAAE,SAAS,EAAE,cAAc,IAAI,GAAG,KAAK,cAAc,SAAS,GAAG,EACnE,CACF;AAOK,IAAM,oBAAoB,CAC/B,SACA,mBACc,QAAQ,WAAW,WAAW,CAAC,IAAI,CAAC,cAAc;;;ACtG3D,IAAM,6BAA6B;AAYnC,IAAM,2BAA0B;AAEhC,IAAM,2BAA0B,wBACrC,cACA,wBACF;AAWO,IAAM,aAAa,CACxB,UAA6B,CAAC,OACP;AAAA,EACvB,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,kBAAkB,SAAS,0BAA0B;AACpE;;;ACnCO,IAAM,0BAA0B;AAWhC,IAAM,uBAAuB;AAE7B,IAAM,uBAAuB,wBAClC,WACA,oBACF;AAOO,IAAM,UAAU,CAAC,UAA0B,CAAC,OAAuB;AAAA,EACxE,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,kBAAkB,SAAS,uBAAuB;AACjE;;;ACjCA,cAAS;AAOF,IAAM,uBAAuB;AAwC7B,IAAM,oBAAoB,oBAAoB,OAAO;AAAA,EAC1D,gBAAgB,IACb,MACC,IAAE,aAAa;AAAA,IACb,UAAU,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IACrC,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IACjC,UAAU,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACvC,CAAC,CACH,EACC,SAAS;AACd,CAAC;AAEM,IAAM,oBAAoB,wBAC/B,QACA,iBACF;AAOO,IAAM,OAAO,CAAC,UAAuB,CAAC,OAAoB;AAAA,EAC/D,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,kBAAkB,SAAS,oBAAoB;AAC9D;;;ACrEO,IAAM,yBAAyB;AAW/B,IAAM,uBAAsB;AAE5B,IAAM,uBAAsB,wBACjC,UACA,oBACF;AAQO,IAAM,SAAS,CAAC,UAAyB,CAAC,OAAsB;AAAA,EACrE,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,kBAAkB,SAAS,sBAAsB;AAChE;;;ALaA,IAAM,OACJ;AAOF,IAAM,yBAAyB,IAAE,aAC/B;AAAA,EACE,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAM,IAAE,QAAQ,QAAQ,EAAE,SAAS;AAAA,EACnC,MAAM,cAAc,SAAS;AAC/B,GACA;AAAA,EACE,OAAO,CAAC,UAAW,MAAM,SAAS,sBAAsB,OAAO;AACjE,CACF;AAGA,IAAM,wBAAwB,IAAE,mBAC9B,QACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACA;AAAA,EACE,OAAO,CAAC,UACN,MAAM,SAAS,mBAAmB,MAAM,SAAS,iBAC7C,OACA;AACR,CACF;AAGA,IAAM,cAAc,CAAC,aAAmD;AAAA,KACnE;AAAA,EACH,SAAS,KAAK,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,UAAU,SAAS;AAC5E;AAQO,IAAM,2BAA2B,sBAAsB,UAC5D,CAAC,UAA8B;AAAA,EAC7B,QAAQ,MAAM;AAAA,SACP,cAAc;AAAA,MACjB,OAAO,YAAY,WAAW,MAAM,OAAO,CAAC;AAAA,IAC9C;AAAA,SACK,WAAW;AAAA,MACd,OAAO,YAAY,QAAQ,MAAM,OAAO,CAAC;AAAA,IAC3C;AAAA,SACK,QAAQ;AAAA,MACX,OAAO,YAAY,KAAK,MAAM,OAAO,CAAC;AAAA,IACxC;AAAA,SACK,UAAU;AAAA,MACb,OAAO,YAAY,OAAO,MAAM,OAAO,CAAC;AAAA,IAC1C;AAAA,aACS;AAAA,MAIP;AAAA,IACF;AAAA;AAAA,EAEF,MAAM,UAAiC,EAAE,QAAQ,SAAS;AAAA,EAC1D,IAAI,MAAM,SAAS,WAAW;AAAA,IAC5B,QAAQ,OAAO,MAAM;AAAA,EACvB;AAAA,EACA,IAAI,MAAM,SAAS,WAAW;AAAA,IAC5B,QAAQ,OAAO,MAAM;AAAA,EACvB;AAAA,EACA,OAAO,EAAE,MAAM,UAAU,SAAS,iBAAiB,CAAC,GAAG,aAAa,CAAC,EAAE;AAAA,CAE3E;;;AM/HA,cAAS;AAUF,IAAM,0BAA0B;AAGhC,IAAM,0BAA0B;AAMhC,IAAM,oBAAoB;AAO1B,IAAM,iBAAiB,CAAC,QAAyB;AAAA,EACtD,MAAM,SAAS,IAAI,MAAM,GAAG;AAAA,EAC5B,OAAO,QAAQ,QAAQ,YAAY,QAAQ,QAAQ;AAAA;AAIrD,IAAM,gBAAgB;AAAA,EACpB,cAAc,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACzC,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,uBAAuB;AAC1D;AAEA,IAAM,yBAAyB,wBAC7B,WACA,IAAE,aAAa;AAAA,KACV,cAAc,mBAAmB;AAAA,KACjC;AAAA,EACH,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,uBAAuB;AAC1D,CAAC,CACH;AAEA,IAAM,wBAAwB,wBAC5B,UACA,IAAE,aAAa;AAAA,KACV,cAAc,kBAAkB;AAAA,KAChC;AAAA,EAGH,WAAW,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAEtC,SAAS,IACN,IAAI,EACJ,OAAO,CAAC,QAAQ,CAAC,eAAe,GAAG,GAAG;AAAA,IACrC,SACE;AAAA,EACJ,CAAC,EACA,SAAS;AAAA,EACZ,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AACzB,CAAC,CACH;AAcO,IAAM,0BAA0B,IACpC,mBAAmB,QAAQ,CAAC,wBAAwB,qBAAqB,CAAC,EAC1E,UAAU,CAAC,aAAa;AAAA,EACvB,IAAI,SAAS,SAAS,UAAU;AAAA,IAC9B,OAAO;AAAA,EACT;AAAA,EACA,QAAQ,YAAY;AAAA,EACpB,MAAM,YACJ,QAAQ,cAAc,QAAQ,UAAU,YAAY;AAAA,EACtD,OAAO;AAAA,OACF;AAAA,IACH,SAAS,YAAY,KAAK,SAAS,UAAU,IAAI;AAAA,IACjD,iBAAiB,YAAY,CAAC,SAAS,IAAI,CAAC;AAAA,IAC5C,aAAa,CAAC,iBAAiB;AAAA,EACjC;AAAA,CACD;;;AC7FH,cAAS;;;ACAT,cAAS;AAMF,IAAM,qBAAqB;AAe3B,IAAM,mCAAmC,IAAE,aAAa;AAAA,EAC7D,aAAa,IACV,OAAO,EACP,MAAM,eAAe,iDAAiD,EACtE,SAAS;AAAA,EACZ,UAAU,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC/C,QAAQ,IAAE,MAAM,CAAC,IAAE,QAAQ,EAAE,GAAG,IAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS;AAC3D,CAAC;AAOM,IAAM,mCAAmC,wBAC9C,cACA,gCACF;;;ACtCA,cAAS;AAmBF,IAAM,yBAAyB,IAAE,aAAa;AAAA,EACnD,UAAU,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC/C,QAAQ,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAC/C,CAAC;AAIM,IAAM,sBAAsB,wBACjC,UACA,sBACF;AAUO,IAAM,SAAS,CAAC,UAA4B,CAAC,OAAsB;AAAA,EACxE,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC;AAChB;;;AC5CA,cAAS;AAcF,IAAM,mBAAmB;AAezB,IAAM,qBAAqB,uBAAuB,OAAO;AAAA,EAC9D,WAAW,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAC/C,YAAY,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACvC,QAAQ,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,gBAAgB,EAAE,SAAS;AACrE,CAAC;AAIM,IAAM,qBAAqB,wBAChC,SACA,kBACF;;;ACxCA,cAAS;AA6BF,IAAM,uBAAuB,uBAAuB,OAAO;AAAA,EAChE,UAAU,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACrC,QAAQ,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACrC,CAAC;AAIM,IAAM,uBAAuB,wBAClC,WACA,oBACF;;;AJhCA,IAAM,gBACJ;AAGK,IAAM,yBAAyB,IAAE,mBAAmB,QAAQ;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAUM,IAAM,wBAAwB,IAClC,MAAM,CAAC,IAAE,QAAQ,KAAK,GAAG,sBAAsB,GAAG,EAAE,OAAO,cAAa,CAAC,EACzE,SAAS,EACT,UAAU,CAAC,YAAa,YAAY,QAAQ,OAAQ,WAAW,OAAO,CAAG;;;AK7B5E,cAAS;AAaT,IAAM,YAAY,CAAQ,UACxB,OAAO,UAAU;AAOZ,IAAM,wBAAwB,IAAE,aAAa;AAAA,EAElD,eAAe,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAEvC,iBAAiB,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAEzC,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAE3B,SAAS,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAElC,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAQ3B,sBAAsB,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAE9C,MAAM,IAAE,OAAO;AACjB,CAAC;AAgCM,IAAM,iBAAiB,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAGrD,IAAM,mBAAmB,CAAC,YAGlB,CAAC,QAAQ,YAAY,QAAQ,SAAS;AAG9C,IAAM,wBAAwB;AAAA,EACnC,SACE;AAAA,EACF,MAAM,CAAC,UAAU;AACnB;AAGO,IAAM,sBAAsB,sBAAsB,OAAO;AAAA,EAC9D,UAAU;AACZ,CAAC;AAkBM,IAAM,oBAAoB,IAAE,aAAa;AAAA,EAC9C,QAAQ,IAAE,KAAK,YAAY;AAAA,EAE3B,MAAM,IAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AAgBM,IAAM,sBAAsB,sBAAsB,OAAO;AAAA,EAE9D,MAAM,kBAAkB,SAAS;AAAA,EAEjC,UAAU,IAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAwBM,IAAM,mBAAmB,IAC7B,MAAM;AAAA,EACL,IAAE,QAAQ;AAAA,EACV,IAAE,aAAa;AAAA,IACb,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IACjC,OAAO,IAAE,MAAM,CAAC,IAAE,QAAQ,GAAG,IAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,KAAK;AAAA,EACzD,CAAC;AACH,CAAC,EACA,QAAQ,IAAI,EACZ,UAAU,CAAC,UACV,UAAU,KAAK,IAAI,EAAE,SAAS,OAAO,OAAO,MAAM,IAAI,KACxD;AAmBK,IAAM,wBACX;AAOK,IAAM,sBAAsB;AAAA,EACjC,OAAO,CAAC,UAAmD;AAAA,IACzD,IACE,MAAM,SAAS,uBACf,CAAC,MAAM,KAAK,SAAS,UAAU,GAC/B;AAAA,MACA;AAAA,IACF;AAAA,IACA,MAAM,SAAS,MAAM,KAAK,OAAO,CAAC,QAAQ,QAAQ,UAAU;AAAA,IAC5D,OAAO,OAAO,SAAS,IACnB,GAAG,yBAAyB,wBAAwB,MAAM,MAC1D;AAAA;AAER;AAOO,IAAM,iBAAgB,CAAC,cAGvB;AAAA,EAKL,aAAa,IACV,MAAM,CAAC,IAAE,QAAQ,KAAK,GAAG,IAAE,MAAM,IAAE,OAAO,CAAC,CAAC,CAAC,EAC7C,QAAQ,SAAS,WAAW;AAAA,EAE/B,YAAY;AAAA,EAEZ,OAAO,IAAE,OAAO,EAAE,QAAQ,SAAS,KAAK;AAAA,EAExC,MAAM,IAAE,OAAO,EAAE,SAAS;AAC5B;AAWO,IAAM,WACX,CACE,iBAEF;AAAA,EACE;AAAA,EACA;AAAA,KACG;AAAA,OAC+C;AAAA,KAC/C;AAAA,EACH,SACE,SAAS,YACL,QAAQ,UACR;AAAA,IACE,aAAa,MAAM,WAAW,EAAE,UAAU,KAAK,IAAI,EAAE,KAAK,CAAC;AAAA,IAC3D,GAAG,QAAQ;AAAA,EACb;AACR;AAGK,IAAM,aAAa,CAAC,YACzB,QAAQ,QAAQ,SAAS;AAGpB,IAAM,sBAAsB,CAAC,aAAqB;AAAA,EACvD,SAAS,GAAG;AAAA,EACZ,MAAM,CAAC,SAAS;AAClB;;;AChRA,cAAS;;;ACAT,cAAS;AAqCF,IAAM,wBAAwB,IAClC,aACC;AAAA,KAGK,eAAc,EAAE,aAAa,CAAC,GAAG,OAAO,UAAU,CAAC;AAAA,EAEtD,eAAe,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAExC,SAAS,IAAE,MAAM,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AACpD,GACA,mBACF,EACC,UAAU,SAAS,qBAAqB,CAAC,EACzC,OAAO,YAAY,oBAAoB,UAAU,CAAC;AAa9C,IAAM,wBAAwB,wBACnC,YACA,qBACF;;;ACnEA,cAAS;AA4DF,IAAM,uBAAuB,IACjC,aAAa;AAAA,KACT,eAAc;AAAA,IACf,aAAa,CAAC,QAAQ,MAAM,QAAQ;AAAA,IACpC,OAAO;AAAA,EACT,CAAC;AAAA,EAED,MAAM,kBAAkB,SAAS;AAAA,EAEjC,UAAU,IAAE,OAAO,EAAE,SAAS;AAAA,EAE9B,SAAS,IAAE,MAAM,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,EACA,UAAU,SAAS,mBAAmB,CAAC,EACvC,OAAO,YAAY,oBAAoB,SAAS,CAAC;AAa7C,IAAM,uBAAuB,wBAClC,WACA,oBACF;;;AC1FA,cAAS;AA+CF,IAAM,uBAAuB,IACjC,aACC;AAAA,KACK,eAAc;AAAA,IACf,aAAa,CAAC,QAAQ,MAAM,QAAQ;AAAA,IACpC,OAAO;AAAA,EACT,CAAC;AAAA,EAED,eAAe,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAExC,UAAU,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAEvC,SAAS,IAAE,MAAM,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AAClD,GACA,mBACF,EACC,OAAO,kBAAkB,qBAAqB,EAC9C,UAAU,SAAS,mBAAmB,CAAC,EACvC,OAAO,YAAY,oBAAoB,SAAS,CAAC;AAa7C,IAAM,uBAAuB,wBAClC,WACA,oBACF;;;ACjFA,cAAS;AAiBF,IAAM,sBAAyC,CAAC,eAAe;AAQ/D,IAAM,qBAAqB,IAAE,aAAa;AAAA,EAE/C,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAE3B,SAAS,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAKlC,UAAU;AAAA,EAEV,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAE3B,MAAM,IAAE,OAAO;AACjB,CAAC;AA+DM,IAAM,sBAAsB,IAChC,OAAO;AAAA,EAEN,UAAU,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAEvC,OAAO,IAAE,OAAO,EAAE,QAAQ,YAAY;AAAA,EAEtC,SAAS,IAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAE/C,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAE1B,OAAO,IAAE,OAAO,EAAE,SAAS;AAC7B,CAAC,EACA,SAAS,IAAE,KAAK,CAAC,EACjB,OAAO,kBAAkB,qBAAqB,EAC9C,UACC,GAAG,UAAU,MAAM,YAAY,eAAsC;AAAA,KAChE;AAAA,EACH,SACE,SAAS,YACL,UACA;AAAA,IACE,mBAAmB,MACjB,WAAW,EAAE,UAAU,KAAK,IAAI,EAAE,KAAK,CACzC;AAAA,IACA,GAAG;AAAA,EACL;AACR,EACF,EACC,OAAO,YAAY,oBAAoB,QAAQ,CAAC;AAU5C,IAAM,sBAAsB,wBACjC,UACA,mBACF;;;AJhHO,IAAM,yBAAyB,IACnC,mBAAmB,QAAQ;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,EACA,UAAU,CAAC,WAAqC;AAAA,KAC5C;AAAA,EACH,iBAAiB,CAAC;AAAA,EAGlB,aAAa,MAAM,SAAS,WAAW,CAAC,GAAG,mBAAmB,IAAI,CAAC;AACrE,EAAE;AAEJ,IAAM,YACJ;AAOK,IAAM,wBAAwB,IAClC,MAAM,wBAAwB;AAAA,EAC7B,OAAO,CAAC,UAAW,MAAM,SAAS,iBAAiB,YAAY;AACjE,CAAC,EACA,QAAQ,CAAC,CAAC;AAGb,IAAM,eAAkC,CAAC,YAAY,WAAW,SAAS;AAWlE,IAAM,2BAA2B,CACtC,SACuB;AAAA,EACvB,MAAM,UAAU,aAAa,OAAO,CAAC,QAAQ,KAAK,SAAS,GAAG,CAAC;AAAA,EAC/D,IAAI,QAAQ,WAAW,GAAG;AAAA,IACxB;AAAA,EACF;AAAA,EACA,MAAM,OAAO,QAAQ,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,KAAK,IAAI;AAAA,EACzD,MAAM,YAAY,QAAQ,IAAI,CAAC,QAAQ,GAAG,YAAY,EAAE,KAAK,IAAI;AAAA,EACjE,MAAM,OAAO,iBAAiB,gHAAgH;AAAA,EAC9I,MAAM,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,aAAa,SAAS,GAAG,CAAC;AAAA,EAC/D,OAAO,OAAO,SAAS,IACnB,GAAG,QAAQ,wBAAwB,MAAM,MACzC;AAAA;;;AKtFN,cAAS;AASF,IAAM,qBAAqB,IAAE,aAAa,CAAC,CAAC;AAQ5C,IAAM,QAAQ,CAAC,UAAwB,CAAC,OAAqB;AAAA,EAClE,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC,cAAc;AAC9B;;;ACvBA,cAAS;;;ACAT,cAAS;AA2BF,IAAM,uBAAuB,IACjC,OAAO;AAAA,EACN,QAAQ,IAAE,OAAO;AAAA,EACjB,OAAO,IAAE,OAAO;AAAA,EAChB,WAAW,IAAE,OAAO;AACtB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAMb,IAAM,UAAU,CAAC,aAA6C;AAAA,EACnE,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC,eAAe;AAC/B;;;AC7CA,cAAS;AAaF,IAAM,0BAA0B,IAAE,aAAa,CAAC,CAAC;AAOjD,IAAM,aAAa,CACxB,UAA6B,CAAC,OACP;AAAA,EACvB,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC,YAAY;AAC5B;;;AC5BA,cAAS;AAoBF,IAAM,0BAA0B,IACpC,OAAO;AAAA,EACN,SAAS,IAAE,OAAO;AACpB,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAQb,IAAM,aAAa,CAAC,aAAmD;AAAA,EAC5E,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC,oBAAoB;AAAA,EACtC,aAAa,CAAC,iBAAiB;AACjC;;;ACtCA,cAAS;AAgCF,IAAM,0BAA0B,IACpC,OAAO;AAAA,EACN,QAAQ,IAAE,OAAO;AAAA,EACjB,UAAU,IAAE,OAAO;AAAA,EACnB,SAAS,IAAE,OAAO,EAAE,SAAS;AAC/B,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAMb,IAAM,aAAa,CAAC,aAAmD;AAAA,EAC5E,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC,oBAAoB;AACpC;;;AClDA,cAAS;AAaF,IAAM,wBAAwB,IAAE,aAAa,CAAC,CAAC;AAO/C,IAAM,WAAW,CAAC,UAA2B,CAAC,OAAwB;AAAA,EAC3E,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC;AAChB;;;AC1BA,cAAS;AA4CF,IAAM,yBAAyB,IACnC,OAAO;AAAA,EACN,QAAQ,IAAE,OAAO;AAAA,EACjB,YAAY,IAAE,OAAO;AAAA,EACrB,MAAM,IAAE,OAAO;AAAA,EACf,QAAQ,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,MAAM,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC3C,UAAU,IAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,EAAE,SAAS;AAC/C,CAAC,EACA,SAAS,IAAE,KAAK,CAAC;AAOb,IAAM,YAAY,CAAC,aAAiD;AAAA,EACzE,MAAM;AAAA,EACN,MAAM;AAAA,EACN;AAAA,EACA,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC,WAAW;AAC3B;;;ANpBO,IAAM,sBAAyC;AAAA,EACpD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS,CAAC;AAAA,EACV,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC;AAChB;AASA,IAAM,aAAa,CAKjB,MACA,MACA,YACG,wBAAwB,MAAM,OAAO,EAAE,OAAO,EAAE,MAAM,IAAE,QAAQ,IAAI,EAAE,CAAC;AAG5E,IAAM,kBAAkB;AAAA,EACtB,WAAW,WAAW,UAAU,oBAAoB;AAAA,EACpD,WAAW,cAAc,UAAU,uBAAuB;AAAA,EAC1D,WAAW,cAAc,UAAU,uBAAuB;AAAA,EAC1D,WAAW,SAAS,UAAU,kBAAkB;AAAA,EAChD,WAAW,eAAe,UAAU,uBAAuB;AAAA,EAC3D,WAAW,YAAY,YAAY,qBAAqB;AAAA,EACxD,WAAW,aAAa,UAAU,sBAAsB;AAC1D;AAaO,IAAM,8BAA8B,IACxC,mBAAmB,QAAQ;AAAA,EAC1B,GAAG;AAAA,EACH,WAAW,QAAQ,QAAQ,IAAE,aAAa,CAAC,CAAC,CAAC;AAC/C,CAAC,EACA,UAAU,CAAC,UAAiC;AAAA,EAC3C,QAAQ,MAAM;AAAA,SACP,WAAW;AAAA,MACd,OAAO,QAAQ,MAAM,OAAO;AAAA,IAC9B;AAAA,SACK,cAAc;AAAA,MACjB,OAAO,WAAW,MAAM,OAAO;AAAA,IACjC;AAAA,SACK,cAAc;AAAA,MACjB,OAAO,WAAW,MAAM,OAAO;AAAA,IACjC;AAAA,SACK,QAAQ;AAAA,MACX,OAAO;AAAA,IACT;AAAA,SACK,SAAS;AAAA,MACZ,OAAO,MAAM,MAAM,OAAO;AAAA,IAC5B;AAAA,SACK,eAAe;AAAA,MAClB,OAAO,WAAW,MAAM,OAAO;AAAA,IACjC;AAAA,SACK,YAAY;AAAA,MACf,OAAO,SAAS,MAAM,OAAO;AAAA,IAC/B;AAAA,aACS;AAAA,MAKP;AAAA,IACF;AAAA;AAAA,EAEF,OAAO,UAAU,MAAM,OAAO;AAAA,CAC/B;;;AO1HH,IAAM,QACJ;AACF,IAAM,QAAQ;AACd,IAAM,cACJ;AACF,IAAM,YAAY;AAGlB,IAAM,QAAQ,IAAI,IAAI;AAAA,EACpB,CAAC,yBAAyB,SAAS;AAAA,EACnC,CAAC,0BAA0B,SAAS;AAAA,EACpC,CAAC,eAAe,WAAW;AAAA,EAC3B,CAAC,kBAAkB,WAAW;AAAA,EAC9B,CAAC,gBAAgB,sBAAsB;AAAA,EACvC,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,WAAW,SAAS;AAAA,EACrB,CAAC,UAAU,yDAAyD;AAAA,EACpE,CAAC,UAAU,uCAAuC;AAAA,EAClD,CAAC,gBAAgB,sCAAsC;AAAA,EACvD,CAAC,mBAAmB,uDAAuD;AAAA,EAC3E,CAAC,uBAAuB,WAAW;AAAA,EACnC,CAAC,gBAAgB,gBAAgB;AAAA,EACjC,CAAC,iBAAiB,KAAK;AAAA,EACvB,CAAC,YAAY,8BAA8B;AAC7C,CAAC;AAGD,IAAM,YAAY;AAMX,IAAM,eAAe,CAAC,SAAqC;AAAA,EAChE,MAAM,MAAM,KAAK,KAAK,EAAE,YAAY;AAAA,EACpC,OAAO,UAAU,KAAK,GAAG,IAAI,QAAQ,MAAM,IAAI,GAAG;AAAA;;;AC1CpD,IAAM,YAAW,CAAQ,UACvB,OAAO,UAAU;AAcZ,IAAM,mBAAmB,CAAQ,UAAqC;AAAA,EAC3E,IAAI,CAAC,UAAS,KAAK,GAAG;AAAA,IACpB;AAAA,EACF;AAAA,EACA,MAAM,SAAS,MAAM,KAAK,EAAE,QAAQ,QAAQ,EAAE;AAAA,EAC9C,OAAO,SAAS,IAAI,WAAW;AAAA;;;ACrBjC,cAAS;;;ACAT,cAAS;AAOF,IAAM,sBAAsB,IAAE,OACnC,CAAC,UACC,OAAO,UAAU,YACjB,UAAU,SACV,UAAU,UACV,OAAO,MAAM,SAAS,eACtB,UAAU,UACV,OAAO,MAAM,SAAS,UACxB,EAAE,SAAS,8DAA8D,CAC3E;AAIO,IAAM,sBAAsB,wBACjC,UACA,mBACF;AASO,IAAM,SAAS,CAAC,YAA0C;AAAA,EAC/D,MAAM;AAAA,EACN,SAAS;AAAA,EACT,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC;AAChB;;;ADMA,IAAM,mBAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,qBAAqB,IAAE,mBAAmB,QAAQ,gBAAe;AAcvE,IAAM,mBAAmB,IAAI,IAAI;AAAA,EAC/B,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,cAAc,YAAY;AAAA,EAC3B,CAAC,mBAAmB,gBAAgB;AAAA,EACpC,CAAC,cAAc,WAAW;AAAA,EAC1B,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,YAAY,UAAU;AAAA,EACvB,CAAC,UAAU,QAAQ;AACrB,CAAC;AAED,IAAM,iBACJ;AAEF,IAAM,cAAa;AAEnB,IAAM,eAAe,CAAC,UACpB,OAAO,UAAU,YAAY,UAAU;AAGzC,IAAM,oBAAoB,IAAE,YAAY,EAAE,MAAM,IAAE,OAAO,EAAE,CAAC;AAO5D,IAAM,YAAY,CAAC,SAAqC;AAAA,EACtD,IAAI,SAAS,WAAW;AAAA,IACtB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,iBAAiB,IAAI,IAAI;AAAA,EACzC,IAAI,CAAC,SAAS;AAAA,IACZ,OAAO,GAAG,mCAAmC;AAAA,EAC/C;AAAA,EACA,MAAM,OACJ,SAAS,WACL,0DACA,GAAG;AAAA,EACT,OAAO,GAAG,mCAAmC,kDAAkD;AAAA;AAQ1F,IAAM,8BAA8B,mBAAmB,UAC5D,CAAC,UAAgC;AAAA,EAC/B,QAAQ,MAAM;AAAA,SACP,cAAc;AAAA,MACjB,OAAO,KAAK,WAAW,MAAM,OAAO,GAAG,SAAS,MAAM,QAAQ;AAAA,IAChE;AAAA,SACK,mBAAmB;AAAA,MACtB,OAAO,KAAK,eAAe,MAAM,OAAO,GAAG,SAAS,MAAM,QAAQ;AAAA,IACpE;AAAA,SACK,cAAc;AAAA,MACjB,OAAO,KAAK,UAAU,MAAM,OAAO,GAAG,SAAS,MAAM,QAAQ;AAAA,IAC/D;AAAA,SACK,UAAU;AAAA,MACb,OAAO,KAAK,OAAO,MAAM,OAAO,GAAG,SAAS,MAAM,QAAQ;AAAA,IAC5D;AAAA,SACK,cAAc;AAAA,MACjB,OAAO,KAAK,WAAW,MAAM,OAAO,GAAG,SAAS,MAAM,QAAQ;AAAA,IAChE;AAAA,SACK,WAAW;AAAA,MACd,OAAO,KAAK,QAAQ,MAAM,OAAO,GAAG,SAAS,MAAM,QAAQ;AAAA,IAC7D;AAAA,SACK,UAAU;AAAA,MACb,OAAO,KAAK,OAAO,MAAM,OAAO,GAAG,SAAS,MAAM,QAAQ;AAAA,IAC5D;AAAA,SACK,YAAY;AAAA,MACf,OAAO,KAAK,SAAS,MAAM,OAAO,GAAG,SAAS,MAAM,QAAQ;AAAA,IAC9D;AAAA,SACK,UAAU;AAAA,MACb,OAAO,KAAK,OAAO,MAAM,OAAO,GAAG,SAAS,MAAM,QAAQ;AAAA,IAC5D;AAAA,aACS;AAAA,MAKP;AAAA,IACF;AAAA;AAAA,EAEF,OAAO,OAAO,MAAM,OAAO;AAAA,CAE/B;AAOA,IAAM,oBAAoB,IACvB,OACC,CAAC,UAAU,aAAa,KAAK,MAAK,UAAU,QAC5C;AAAA,EAKE,OAAO;AAAA,EACP,OAAO,CAAC,UAAU;AAAA,IAChB,MAAM,SAAS,kBAAkB,UAAU,MAAM,KAAK;AAAA,IACtD,OAAO,UAAU,OAAO,UAAU,OAAO,KAAK,OAAO,SAAS;AAAA;AAElE,CACF,EACC,KAAK,2BAA2B;AAM5B,IAAM,uBAAuB,IAAE,MAAM,mBAAmB;AAAA,EAC7D,OAAO,CAAC,UAAW,MAAM,SAAS,iBAAiB,cAAa;AAClE,CAAC;;;AEzFD,IAAM,YAAY;AAAA,EAChB,MAAM,CAAC,gBAAgB,WAAW,SAAS,WAAW;AAAA,EACtD,MAAM,CAAC,iBAAiB,aAAa,YAAY;AAAA,EACjD,OAAO,CAAC,YAAY,WAAW,OAAO;AACxC;AAGO,IAAM,eAAe;AAAA,EAC1B,WAAW,EAAE,UAAU,QAAQ,QAAQ,WAAW,SAAS,CAAC,UAAU,EAAE;AAAA,EACxE,SAAS;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,aAAa;AAAA,IACX,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,OAAO,EAAE,UAAU,QAAQ,QAAQ,SAAS,SAAS,CAAC,UAAU,EAAE;AAAA,EAClE,cAAc;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK,KAAK,GAAG;AAAA,EACzB;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,KAAK,KAAK,GAAG;AAAA,EACzB;AAAA,EACA,OAAO,EAAE,UAAU,QAAQ,QAAQ,SAAS,SAAS,CAAC,UAAU,EAAE;AAAA,EAClE,eAAe;AAAA,IACb,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,MAAM,EAAE,UAAU,SAAS,QAAQ,QAAQ,SAAS,CAAC,UAAU,EAAE;AAAA,EACjE,SAAS;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,cAAc;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,aAAa;AAAA,IACX,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,oBAAoB;AAAA,IAClB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,qBAAqB;AAAA,IACnB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,QAAQ,EAAE,UAAU,QAAQ,QAAQ,UAAU,SAAS,CAAC,UAAU,EAAE;AAAA,EACpE,eAAe;AAAA,IACb,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,mBAAmB;AAAA,IACjB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,cAAc,EAAE,UAAU,QAAQ,QAAQ,cAAc,SAAS,CAAC,KAAK,GAAG,EAAE;AAAA,EAC5E,aAAa;AAAA,IACX,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS,CAAC,UAAU;AAAA,EACtB;AACF;AAKO,IAAM,aAAa,OAAO,KAAK,YAAY;AAG3C,IAAM,aAAa,CAAC,UACzB,OAAO,OAAO,cAAc,KAAK;AAGnC,IAAM,yBAA8C,CAAC,KAAK,KAAK,KAAK,GAAG;AAQvE,IAAM,iBAAiB;AAAA,EACrB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,YAAY,cAAc;AAAA,EAC/B,IAAI,CAAC,UAAU;AAAA,EACf,IAAI,CAAC,UAAU;AAAA,EACf,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,YAAY,cAAc;AAAA,EAC/B,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,OAAO;AAAA,EACZ,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,YAAY,cAAc;AAAA,EAC/B,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,YAAY,cAAc;AAAA,EAC/B,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,UAAU;AAAA,EACf,IAAI,CAAC,YAAY,cAAc;AAAA,EAC/B,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,UAAU;AAAA,EACf,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,YAAY,WAAW;AAAA,EAC5B,IAAI,CAAC,YAAY,cAAc;AAAA,EAC/B,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,WAAW;AAAA,EAChB,IAAI,CAAC,YAAY,cAAc;AAAA,EAC/B,IAAI,CAAC,UAAU;AAAA,EACf,IAAI,CAAC,YAAY,WAAW;AAAA,EAC5B,IAAI,CAAC,YAAY;AAAA,EACjB,IAAI,CAAC,WAAW;AAClB;AAGA,IAAM,mBAAmB,CACvB,aAEA,OAAO,OAAO,gBAAgB,QAAQ;AAMxC,IAAM,iBAAiB;AAAA,EACrB,MAAM,CAAC,UAAU;AAAA,EACjB,MAAM,CAAC,WAAW;AACpB;AAGA,IAAM,iBAAiB,CACrB,WAEA,OAAO,OAAO,gBAAgB,MAAM;AAGtC,IAAM,eAAe;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAQO,IAAM,kBAAkB,CAAC,SAC9B,MAAM,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,KAAK,CAAC;AAO1C,IAAM,oBAAoB,CAAC,YAAgC;AAAA,EAChE,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;AAAA,EAChC,WAAW,UAAU,SAAS;AAAA,IAC5B,OAAO,WAAW,OAAO,WAAW,OAAO,YAAY,EAAE,MAAM,GAAG;AAAA,IAClE,IAAI,iBAAiB,QAAQ,GAAG;AAAA,MAC9B,WAAW,UAAU,eAAe,WAAW;AAAA,QAC7C,OAAO,IAAI,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,IACA,WAAW,UAAU,SAAS;AAAA,MAC5B,IAAI,eAAe,MAAM,GAAG;AAAA,QAC1B,WAAW,UAAU,eAAe,SAAS;AAAA,UAC3C,OAAO,IAAI,MAAM;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO,aAAa,OAAO,CAAC,WAAW,OAAO,IAAI,MAAM,CAAC;AAAA;AAQ3D,IAAM,mBAAmB,IAAI,IAAwB;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,kBAAkB,CAAC,SAC9B,KACG,YAAY,EACZ,WAAW,gBAAgB,GAAG,EAG9B,WAAW,WAAW,EAAE;AAG7B,IAAM,UAAU,CAAC,SAAyB,cAAc;AAExD,IAAM,QAAoB,CAAC,WAAW,QAAQ,MAAM;AAGpD,IAAM,eAAe,CAAC,SACpB,SAAS,SAAS,SAAS;AAG7B,IAAM,cAAc,CAAC,UACnB,OAAO,UAAU;AAOnB,IAAM,mBAAmB,CACvB,MACA,OACA,YACqB;AAAA,EACrB,IAAI,YAAY,KAAK,GAAG;AAAA,IACtB,IAAI,CAAC,WAAW,KAAK,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,IACA,MAAM,MAAM,aAAa;AAAA,IACzB,OAAO;AAAA,MACL,aAAa,QAAQ,KAAK;AAAA,MAC1B,WAAW,UAAU,IAAI;AAAA,MACzB,MAAM;AAAA,MACN,MAAM,IAAI;AAAA,MACV,UAAU;AAAA,MACV;AAAA,MACA,SAAS,IAAI;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,OAAO,gBAAgB,MAAM,IAAI;AAAA,EACvC,MAAM,YAAY,UAAU,MAAM,YAAY,aAAa,IAAI;AAAA,EAC/D,IAAI,cAAc,OAAO;AAAA,IACvB,OAAO;AAAA,MACL,aAAa,QAAQ,IAAI;AAAA,MACzB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,MACZ,UAAU,MAAM;AAAA,IAClB;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,aAAa,QAAQ,IAAI;AAAA,IACzB;AAAA,IACA,MAAM;AAAA,IACN,MAAM,MAAM;AAAA,IACZ,UAAU,MAAM,YAAY;AAAA,IAC5B,SAAS,MAAM,WAAW;AAAA,IAC1B,SAAS,MAAM,WAAW;AAAA,EAC5B;AAAA;AASF,IAAM,mBAAmB,CAAC,SAAoB,SAA+B;AAAA,EAC3E,IACE,QAAQ,SAAS,YACjB,KAAK,SAAS,YACd,QAAQ,aAAa,KAAK,YAC1B,QAAQ,SAAS,KAAK,MACtB;AAAA,IACA,OAAO;AAAA,SACF;AAAA,MACH,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,QAAQ,SAAS,GAAG,KAAK,OAAO,CAAC,CAAC;AAAA,MAC3D,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,QAAQ,SAAS,GAAG,KAAK,OAAO,CAAC,CAAC;AAAA,IAC7D;AAAA,EACF;AAAA,EACA,IACE,QAAQ,SAAS,WACjB,KAAK,SAAS,WACd,QAAQ,SAAS,KAAK,QACtB,KAAK,UAAU,QAAQ,QAAQ,MAAM,KAAK,UAAU,KAAK,QAAQ,GACjE;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,MAAM,IAAI,MACR,iBAAiB,KAAK,yBAAyB,QAAQ,6CAA6C,QAAQ,wFAC9G;AAAA;AAQK,IAAM,mBAAmB,CAC9B,OACA,UAAoB,CAAC,MACL;AAAA,EAChB,IAAI,CAAC,OAAO;AAAA,IACV,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,UAAU,kBAAkB,OAAO;AAAA,EACzC,MAAM,UAAU,IAAI;AAAA,EACpB,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,QAAQ,MAAM;AAAA,IACpB,IAAI,UAAU,WAAW;AAAA,MACvB;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,iBAAiB,MAAM,OAAO,OAAO;AAAA,IACnD,IAAI,CAAC,OAAO;AAAA,MACV;AAAA,IACF;AAAA,IACA,MAAM,UAAU,QAAQ,IAAI,MAAM,WAAW;AAAA,IAC7C,QAAQ,IACN,MAAM,aACN,UAAU,iBAAiB,SAAS,KAAK,IAAI,KAC/C;AAAA,EACF;AAAA,EACA,OAAO,CAAC,GAAG,QAAQ,OAAO,CAAC;AAAA;AAI7B,IAAM,WAAW,CAAC,UAAoC;AAAA,EACpD,IAAI,YAAY,KAAK,GAAG;AAAA,IACtB,OAAO,WAAW,KAAK,IAAI,QAAQ;AAAA,EACrC;AAAA,EACA,OAAO,gBAAgB,MAAM,IAAI;AAAA;AAQ5B,IAAM,gBAAgB,CAAC,UAA+B;AAAA,EAC3D,IAAI,CAAC,OAAO;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,MAAM,QAAQ,CAAC,SAAS;AAAA,IACpC,MAAM,QAAQ,MAAM;AAAA,IACpB,IAAI,UAAU,WAAW;AAAA,MACvB,OAAO,CAAC;AAAA,IACV;AAAA,IACA,MAAM,OAAO,SAAS,KAAK;AAAA,IAC3B,OAAO,OAAO,CAAC,kBAAkB,iBAAiB,QAAQ,IAAI,KAAK,IAAI,CAAC;AAAA,GACzE;AAAA,EACD,OAAO,MAAM,SAAS,IAClB;AAAA;AAAA,EAAwD,MAAM,KAAK;AAAA,CAAI;AAAA;AAAA,IACvE;AAAA;AAUN,IAAM,kBAAkB;AAAA,EACtB,MAAM,CAAC,KAAK,GAAG;AAAA,EACf,SAAS,CAAC,KAAK,GAAG;AAAA,EAClB,MAAM,CAAC,GAAG;AACZ;AAeA,IAAM,eAAe,CAAC,UACpB,MAAM,SAAS,WACX,MAAM,UACN,MAAM,SAAS,IAAI,CAAC,YAAY,QAAQ,MAAM;AASpD,IAAM,oBAAoB,CAAC,MAAgB,UAA+B;AAAA,EACxE,MAAM,YAAY,gBAAgB;AAAA,EAClC,MAAM,UAAU,aAAa,KAAK;AAAA,EAClC,MAAM,UAAU,QAAQ,OACtB,CAAC,WAA6B,OAAO,WAAW,QAClD;AAAA,EACA,MAAM,OAAO,UAAU,OAAO,CAAC,WAAW,QAAQ,SAAS,MAAM,CAAC;AAAA,EAClE,IAAI,KAAK,SAAS,GAAG;AAAA,IACnB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,QAAQ,WAAW,QAAQ,SAAS,UAAU;AAAA;AAQhD,IAAM,kBAAkB,CAC7B,OACA,UAAoB,CAAC,MACN;AAAA,EACf,IAAI,CAAC,OAAO;AAAA,IACV,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,iBAAiB,kBAAkB,OAAO;AAAA,EAChD,MAAM,QAAQ,IAAI;AAAA,EAIlB,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,QAAQ,MAAM;AAAA,IACpB,IAAI,UAAU,WAAW;AAAA,MACvB;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,iBAAiB,MAAM,OAAO,cAAc;AAAA,IAC1D,IAAI,CAAC,OAAO;AAAA,MACV;AAAA,IACF;AAAA,IACA,MAAM,OAAO,MAAM,IAAI,MAAM,WAAW,KAAK;AAAA,MAC3C,SAAS;AAAA,MACT,SAAS,IAAI;AAAA,IACf;AAAA,IACA,WAAW,UAAU,kBAAkB,MAAM,KAAK,GAAG;AAAA,MACnD,KAAK,QAAQ,IAAI,MAAM;AAAA,IACzB;AAAA,IACA,IAAI,MAAM,SAAS,YAAY,iBAAiB,IAAI,MAAM,QAAQ,GAAG;AAAA,MACnE,KAAK,YAAY,IAAI;AAAA,MACrB,WAAW,UAAU,MAAM,SAAS;AAAA,QAClC,KAAK,QAAQ,IAAI,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,IACA,MAAM,IAAI,MAAM,aAAa,IAAI;AAAA,EACnC;AAAA,EACA,OAAO,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,aAAa,UAAU;AAAA,IAC7C,MAAM,OAAiB;AAAA,MACrB;AAAA,MACA,gBAAgB,CAAC,GAAG,KAAK,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,IAC5D;AAAA,IACA,IAAI,KAAK,SAAS;AAAA,MAChB,KAAK,iBAAiB,CAAC,GAAG,KAAK,OAAO;AAAA,IACxC;AAAA,IACA,OAAO;AAAA,GACR;AAAA;;;AC1lBI,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACGO,IAAM,kBAAkB;AAExB,IAAM,iBAAiB;AAC9B,IAAM,kBAAkB;AAExB,IAAM,wBAAwB;AAG9B,IAAM,WAAW,CAAC,WAChB,GAAG,OAAO,SAAS,OAAO;AAGrB,IAAM,UAAU,CACrB,WACW,GAAG,OAAO,QAAQ,SAAS,MAAM;AAGvC,IAAM,cAAc,CACzB,WACW,GAAG,QAAQ,MAAM,UAAU,OAAO;AAQxC,IAAM,SAAS,CAAC,WAAuD;AAAA,EAC5E,IAAI,OAAO,KAAK;AAAA,IACd,OAAO,OAAO;AAAA,EAChB;AAAA,EACA,MAAM,MAAM,IAAI,IAAI,OAAO,IAAI;AAAA,EAC/B,QAAQ,aAAa;AAAA,EACrB,IACE,aAAa,mBACb,SAAS,SAAS,IAAI,iBAAiB,GACvC;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,SAAS,SAAS,qBAAqB,GAAG;AAAA,IAG5C,IAAI,WAAW,OAAO;AAAA,IACtB,OAAO,IAAI;AAAA,EACb;AAAA,EACA,OAAO,GAAG,OAAO;AAAA;;;ACtEnB,cAAS;AAYT,IAAM,kBAAkB,IAAE,OAAO;AAAA,EAC/B,SAAS,IACN,OAAO;AAAA,IACN,aAAa,IAAE,OAAO,EAAE,QAAQ,eAAe;AAAA,IAC/C,aAAa,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IAEhD,cAAc,IAAE,OAAO,EAAE,QAAQ,qBAAqB;AAAA,IACtD,YAAY,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IAC/C,QAAQ,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IACpC,gBAAgB,IAAE,OAAO,EAAE,QAAQ,0BAA0B;AAAA,IAC7D,UAAU,IAAE,OAAO,EAAE,QAAQ,WAAW;AAAA,IACxC,WAAW,IAAE,OAAO,EAAE,QAAQ,oBAAoB;AAAA,IAClD,YAAY,IAAE,OAAO,EAAE,QAAQ,aAAa;AAAA,IAC5C,cAAc,IAAE,OAAO,EAAE,QAAQ,kBAAkB;AAAA,IACnD,eAAe,IAAE,OAAO,EAAE,QAAQ,iBAAiB;AAAA,IACnD,MAAM,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IACzC,QAAQ,IAAE,OAAO,EAAE,QAAQ,QAAQ;AAAA,IACnC,YAAY,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IAC/C,WAAW,IAAE,OAAO,EAAE,QAAQ,eAAe;AAAA,IAC7C,YAAY,IAAE,OAAO,EAAE,QAAQ,aAAa;AAAA,IAE5C,QAAQ,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IAC3C,YAAY,IAAE,OAAO,EAAE,QAAQ,cAAc;AAAA,IAG7C,kBAAkB,IACf,OAAO,EACP,QAAQ,wDAAwD;AAAA,IACnE,aAAa,IAAE,OAAO,EAAE,QAAQ,eAAe;AAAA,EACjD,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,WAAW,IACR,OAAO;AAAA,IACN,IAAI,IAAE,OAAO,EAAE,QAAQ,IAAI;AAAA,IAC3B,OAAO,IAAE,OAAO,EAAE,QAAQ,oBAAoB;AAAA,IAC9C,OAAO,IAAE,OAAO,EAAE,QAAQ,OAAO;AAAA,IACjC,MAAM,IAAE,OAAO,EAAE,QAAQ,mBAAmB;AAAA,IAC5C,OAAO,IAAE,OAAO,EAAE,QAAQ,gCAAgC;AAAA,IAC1D,OAAO,IAAE,OAAO,EAAE,QAAQ,8BAA8B;AAAA,IAGxD,aAAa,IAAE,OAAO,EAAE,QAAQ,oBAAoB;AAAA,IACpD,OAAO,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IAE1C,MAAM,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IACzC,aAAa,IAAE,OAAO,EAAE,QAAQ,iBAAiB;AAAA,IAEjD,aAAa,IACV,OAAO,EACP,QACC,8DACF;AAAA,IAEF,YAAY,IAAE,OAAO,EAAE,QAAQ,aAAa;AAAA,IAC5C,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAG/B,SAAS,IAAE,OAAO,EAAE,QAAQ,iBAAiB;AAAA,IAC7C,gBAAgB,IAAE,OAAO,EAAE,QAAQ,wBAAwB;AAAA,IAC3D,KAAK,IAAE,OAAO,EAAE,QAAQ,uCAAuC;AAAA,IAC/D,OAAO,IAAE,OAAO,EAAE,QAAQ,WAAW;AAAA,IAErC,cAAc,IACX,OAAO,EACP,QAAQ,iDAAiD;AAAA,IAC5D,KAAK,IAAE,OAAO,EAAE,QAAQ,KAAK;AAAA,EAC/B,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,QAAQ,IACL,OAAO;AAAA,IACN,SAAS,IAAE,OAAO,EAAE,QAAQ,sBAAsB;AAAA,EACpD,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,WAAW,IACR,OAAO;AAAA,IACN,aAAa,IACV,OAAO,EACP,QACC,8DACF;AAAA,IAEF,OAAO,IAAE,OAAO,EAAE,QAAQ,2BAA2B;AAAA,IACrD,OAAO,IAAE,OAAO,EAAE,QAAQ,WAAW;AAAA,EACvC,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EAGd,SAAS,IACN,OAAO;AAAA,IACN,QAAQ,IAAE,OAAO,EAAE,QAAQ,QAAQ;AAAA,IACnC,SAAS,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IAErC,OAAO,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IAC1C,SAAS,IACN,OAAO,EACP,QACC,iEACF;AAAA,IACF,QAAQ,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IAC3C,UAAU,IAAE,OAAO,EAAE,QAAQ,iBAAiB;AAAA,EAChD,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,SAAS,IACN,OAAO;AAAA,IAEN,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAG/B,WAAW,IAAE,OAAO,EAAE,QAAQ,2BAA2B;AAAA,IACzD,YAAY,IAAE,OAAO,EAAE,QAAQ,aAAa;AAAA,IAE5C,SAAS,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IACrC,cAAc,IAAE,OAAO,EAAE,QAAQ,gCAAgC;AAAA,IAEjE,OAAO,IAAE,OAAO,EAAE,QAAQ,OAAO;AAAA,IAEjC,SAAS,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IAErC,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAE/B,WAAW,IAAE,OAAO,EAAE,QAAQ,YAAY;AAAA,IAE1C,YAAY,IAAE,OAAO,EAAE,QAAQ,aAAa;AAAA,IAE5C,UAAU,IAAE,OAAO,EAAE,QAAQ,WAAW;AAAA,IAGxC,UAAU,IAAE,OAAO,EAAE,QAAQ,WAAW;AAAA,IACxC,OAAO,IAAE,OAAO,EAAE,QAAQ,OAAO;AAAA,IAEjC,KAAK,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IAEjC,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAE/B,QAAQ,IAAE,OAAO,EAAE,QAAQ,QAAQ;AAAA,EACrC,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,UAAU,IACP,OAAO;AAAA,IAEN,SAAS,IAAE,OAAO,EAAE,QAAQ,yBAAyB;AAAA,IACrD,IAAI,IAAE,OAAO,EAAE,QAAQ,IAAI;AAAA,IAC3B,UAAU,IAAE,OAAO,EAAE,QAAQ,wBAAwB;AAAA,IACrD,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAC/B,QAAQ,IAAE,OAAO,EAAE,QAAQ,2BAA2B;AAAA,IACtD,KAAK,IAAE,OAAO,EAAE,QAAQ,KAAK;AAAA,EAC/B,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,kBAAkB,IACf,OAAO;AAAA,IACN,OAAO,IAAE,OAAO,EAAE,QAAQ,UAAU;AAAA,IACpC,cAAc,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,EACnD,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,WAAW,IACR,OAAO;AAAA,IAKN,WAAW,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IACvC,SAAS,IAAE,OAAO,EAAE,QAAQ,OAAO;AAAA,IACnC,SAAS,IAAE,OAAO,EAAE,QAAQ,OAAO;AAAA,IACnC,YAAY,IAAE,OAAO,EAAE,QAAQ,qBAAqB;AAAA,IACpD,SAAS,IAAE,OAAO,EAAE,QAAQ,WAAW;AAAA,IACvC,YAAY,IAAE,OAAO,EAAE,QAAQ,UAAU;AAAA,IACzC,QAAQ,IAAE,OAAO,EAAE,QAAQ,cAAc;AAAA,IACzC,QAAQ,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IACjC,YAAY,IAAE,OAAO,EAAE,QAAQ,UAAU;AAAA,IACzC,OAAO,IAAE,OAAO,EAAE,QAAQ,8BAA8B;AAAA,IAExD,QAAQ,IAAE,OAAO,EAAE,QAAQ,cAAc;AAAA,IACzC,OAAO,IAAE,OAAO,EAAE,QAAQ,qBAAqB;AAAA,IAE/C,SAAS,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IACrC,MAAM,IAAE,OAAO,EAAE,QAAQ,eAAe;AAAA,IACxC,OAAO,IAAE,OAAO,EAAE,QAAQ,OAAO;AAAA,IACjC,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAC/B,UAAU,IAAE,OAAO,EAAE,QAAQ,mBAAmB;AAAA,IAChD,UAAU,IAAE,OAAO,EAAE,QAAQ,oBAAoB;AAAA,IACjD,OAAO,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,IAC1C,MAAM,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,EAC3C,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,KAAK,IACF,OAAO;AAAA,IACN,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAC/B,YAAY,IAAE,OAAO,EAAE,QAAQ,YAAY;AAAA,IAC3C,iBAAiB,IAAE,OAAO,EAAE,QAAQ,kBAAkB;AAAA,IACtD,YAAY,IAAE,OAAO,EAAE,QAAQ,YAAY;AAAA,IAC3C,UAAU,IAAE,OAAO,EAAE,QAAQ,UAAU;AAAA,IACvC,kBAAkB,IAAE,OAAO,EAAE,QAAQ,mBAAmB;AAAA,IACxD,YAAY,IAAE,OAAO,EAAE,QAAQ,YAAY;AAAA,IAE3C,eAAe,IAAE,OAAO,EAAE,QAAQ,oBAAoB;AAAA,IACtD,SAAS,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IACrC,UAAU,IAAE,OAAO,EAAE,QAAQ,UAAU;AAAA,IACvC,kBAAkB,IAAE,OAAO,EAAE,QAAQ,mBAAmB;AAAA,IACxD,aAAa,IAAE,OAAO,EAAE,QAAQ,cAAc;AAAA,EAChD,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,UAAU,IACP,OAAO;AAAA,IAEN,KAAK,IAAE,OAAO,EAAE,QAAQ,qCAAqC;AAAA,IAC7D,aAAa,IACV,OAAO,EACP,QAAQ,+CAA+C;AAAA,IAC1D,MAAM,IAAE,OAAO,EAAE,QAAQ,cAAc;AAAA,IAEvC,MAAM,IAAE,OAAO,EAAE,QAAQ,qCAAqC;AAAA,IAE9D,SAAS,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IAErC,aAAa,IAAE,OAAO,EAAE,QAAQ,oBAAoB;AAAA,IACpD,OAAO,IAAE,OAAO,EAAE,QAAQ,gBAAgB;AAAA,EAC5C,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,MAAM,IACH,OAAO;AAAA,IACN,aAAa,IAAE,OAAO,EAAE,QAAQ,iBAAiB;AAAA,IACjD,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAC/B,YAAY,IAAE,OAAO,EAAE,QAAQ,YAAY;AAAA,IAC3C,UAAU,IAAE,OAAO,EAAE,QAAQ,UAAU;AAAA,IAEvC,SAAS,IAAE,OAAO,EAAE,QAAQ,eAAe;AAAA,IAC3C,eAAe,IAAE,OAAO,EAAE,QAAQ,iBAAiB;AAAA,EACrD,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,QAAQ,IACL,OAAO;AAAA,IACN,KAAK,IAAE,OAAO,EAAE,QAAQ,KAAK;AAAA,IAC7B,cAAc,IAAE,OAAO,EAAE,QAAQ,eAAe;AAAA,IAChD,aAAa,IAAE,OAAO,EAAE,QAAQ,cAAc;AAAA,IAC9C,WAAW,IAAE,OAAO,EAAE,QAAQ,WAAW;AAAA,IACzC,eAAe,IAAE,OAAO,EAAE,QAAQ,+BAA+B;AAAA,IACjE,QAAQ,IAAE,OAAO,EAAE,QAAQ,QAAQ;AAAA,IACnC,SAAS,IACN,OAAO,EACP,QAAQ,8CAA8C;AAAA,IAEzD,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAC/B,OAAO,IAAE,OAAO,EAAE,QAAQ,yCAAyC;AAAA,IACnE,OAAO,IAAE,OAAO,EAAE,QAAQ,aAAa;AAAA,IAGvC,QAAQ,IAAE,OAAO,EAAE,QAAQ,QAAQ;AAAA,IACnC,UAAU,IAAE,OAAO,EAAE,QAAQ,UAAU;AAAA,IACvC,WAAW,IAAE,OAAO,EAAE,QAAQ,mBAAmB;AAAA,IACjD,MAAM,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,IAC/B,aAAa,IAAE,OAAO,EAAE,QAAQ,uBAAuB;AAAA,IACvD,SAAS,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IACrC,SAAS,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,IACrC,SAAS,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,EACvC,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,KAAK,IACF,OAAO;AAAA,IACN,OAAO,IAAE,OAAO,EAAE,QAAQ,cAAc;AAAA,EAC1C,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,UAAU,IACP,OAAO;AAAA,IACN,QAAQ,IAAE,OAAO,EAAE,QAAQ,cAAc;AAAA,IAEzC,QAAQ,IACL,OAAO,EACP,QACC,oEACF;AAAA,IACF,UAAU,IAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,EACxC,CAAC,EACA,SAAS,CAAC,CAAC;AAChB,CAAC;AAEM,IAAM,kBAAkB,gBAAgB,SAAS,CAAC,CAAC;AAYnD,IAAM,QAAmB,gBAAgB,MAAM,CAAC,CAAC;AAOjD,IAAM,0BAA0B,IAAE,OACvC,IAAE,OAAO,GACT,IAAE,OAAO,IAAE,OAAO,GAAG,IAAE,OAAO,CAAC,CACjC;AASA,IAAM,kBAAkB,IAAI,IAAI;AAAA,EAC9B,CAAC,OAAO,WAAW;AAAA,EACnB,CAAC,gBAAgB,kBAAkB;AAAA,EACnC,CAAC,oBAAoB,sBAAsB;AAC7C,CAAC;AAGM,IAAM,0BAA0B,IACpC,OAAO,IAAE,OAAO,GAAG,uBAAuB,EAC1C,YAAY,CAAC,OAAO,QAAQ;AAAA,EAC3B,YAAY,QAAQ,aAAa,OAAO,QAAQ,KAAK,GAAG;AAAA,IACtD,MAAM,OAAO,OAAO,QAAQ,QAAQ,EAAE,QAAQ,EAAE,OAAO,aAAa;AAAA,MAClE;AAAA,MACA,GAAG,OAAO,KAAK,OAAO,EAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,KAAK;AAAA,IACxD,CAAC;AAAA,IACD,WAAW,OAAO,MAAM;AAAA,MACtB,MAAM,UAAU,gBAAgB,IAAI,GAAG;AAAA,MACvC,IAAI,SAAS;AAAA,QACX,IAAI,SAAS;AAAA,UACX,MAAM,IAAE,aAAa;AAAA,UACrB,SAAS,WAAW,UAAU,8BAA8B,UAAU;AAAA,UACtE,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,GAAG,CAAC;AAAA,QAClC,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAAA,CACD;AAGH,IAAM,UAAU,CAAC,MAAiB,aAA4C;AAAA,EAC5E,IAAI,CAAC,UAAU;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EACA,MAAM,MAAiB,gBAAgB,IAAI;AAAA,EAC3C,YAAY,OAAO,WAAW,OAAO,QAAQ,QAAQ,GAAG;AAAA,IAGtD,MAAM,SAAU,IAA+C;AAAA,IAC/D,IAAI,UAAU,QAAQ;AAAA,MACpB,OAAO,OAAO,QAAQ,MAAM;AAAA,IAC9B;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAYT,IAAM,iBAAoD,OAAO,YAC/D,OAAO,QAAQ,QAAQ,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,KAAK,YAAY,GAAG,IAAI,CAAC,CAC3E;AAQA,IAAM,UAAU,CAAC,SAAgD;AAAA,EAC/D,MAAM,QAAQ,KAAK,YAAY;AAAA,EAC/B,OACE,SAAS,SACT,eAAe,UACf,eAAe,MAAM,MAAM,OAAO,EAAE,MAAM;AAAA;AAK9C,IAAM,YAAY,CAAC,SACjB,KAAK,YAAY,EAAE,MAAM,OAAO,EAAE,OAAO;AAapC,IAAM,mBAAmB,CAC9B,QACA,YAIc;AAAA,EACd,QAAQ,eAAe,cAAc;AAAA,EACrC,IAAI,OAAO;AAAA,EACX,IAAI,CAAC,UAAU,MAAM,KAAK,UAAU,aAAa,GAAG;AAAA,IAClD,OAAO,QAAQ,MAAM,QAAQ,aAAa,CAAC;AAAA,IAC3C,OAAO,QAAQ,MAAM,YAAY,cAAc;AAAA,EACjD;AAAA,EACA,IAAI,WAAW,eAAe;AAAA,IAC5B,OAAO,QAAQ,MAAM,QAAQ,MAAM,CAAC;AAAA,IACpC,OAAO,QAAQ,MAAM,YAAY,OAAO;AAAA,EAC1C;AAAA,EACA,OAAO;AAAA;;;AC5ZF,IAAM,aAAa,CAAC,eAAe,SAAS,UAAU,QAAQ;AAyB9D,IAAM,qBAAqB,CAChC,WACwB,OAAO,WAAW;;;AC/BrC,IAAM,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACEO,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACoCO,IAAM,mBAAmB,CAAI,UAGlC,OACE,QACE,cAAc,aAAa;;;ACvC1B,IAAM,gBAAgB;AAG7B,IAAM,aAAY;AAGX,IAAM,eAAe,CAC1B,cAEA,cAAc,aAAa,OAAO,KAAK,SAAS,EAAE,SAAS;AAGtD,IAAM,sBAAsB,CACjC,MACA,cACW;AAAA,EACX,IAAI,EAAE,aAAa,SAAS,KAAK,KAAK,SAAS,IAAI,IAAI;AAAA,IACrD,OAAO;AAAA,EACT;AAAA,EACA,OAAO,KAAK,WAAW,YAAW,CAAC,OAAO,SACxC,OAAO,OAAO,WAAW,IAAI,IAAK,UAAU,SAAS,QAAS,KAChE;AAAA;AAIF,IAAM,eAAe;AAOd,IAAM,4BAA4B,CACvC,QACA,cACW;AAAA,EACX,MAAM,OAAO,aAAa,KAAK,MAAM,IAAI,MAAM;AAAA,EAC/C,OAAO,OAAO,oBAAoB,OAAO,MAAM,KAAK,MAAM,GAAG,SAAS;AAAA;AAUxE,IAAM,YAAY;AAQX,IAAM,qBAAqB,CAChC,MACA,cACwB;AAAA,EACxB,IAAI,EAAE,aAAa,SAAS,KAAK,KAAK,SAAS,IAAI,IAAI;AAAA,IACrD,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,QAA6B,CAAC;AAAA,EACpC,IAAI,QAAoB;AAAA,EACxB,YAAY,OAAO,SAAS,KAAK,MAAM;AAAA,CAAI,EAAE,QAAQ,GAAG;AAAA,IACtD,MAAM,aAAa,UAAU;AAAA,IAC7B,QAAQ,eAAe,MAAM,KAAK;AAAA,IAClC,IAAI,cAAc,UAAU,MAAM;AAAA,MAChC;AAAA,IACF;AAAA,IACA,WAAW,SAAS,KAAK,WAAW,WAAW,EAAE,EAAE,SAAS,UAAS,GAAG;AAAA,MACtE,MAAM,OAAO,MAAM,QAAQ,QAAQ;AAAA,MACnC,IAAI,CAAC,OAAO,OAAO,WAAW,IAAI,GAAG;AAAA,QACnC,MAAM,KAAK,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;;;A3EvCT,IAAM,gBAAgB,IAAE,IAAI,EAAE,UAAU,YAAY,CAAC;AAerD,IAAM,YAAW,CAAQ,UACvB,OAAO,UAAU;AAEnB,IAAM,aAAY,CAAQ,UACxB,OAAO,UAAU;AAEnB,IAAM,gBAAe,CAAQ,UAC3B,OAAO,UAAU,YAAY,UAAU;AAGzC,IAAM,WAAW,IAAE,OAAO,EAAE,IAAI,CAAC;AAQjC,IAAM,kBAAkB,CAAC,WAAmC;AAAA,EAC1D,OAAO,CAAC,UAAmD;AAAA,IACzD,IAAI,MAAM,SAAS,qBAAqB;AAAA,MACtC;AAAA,IACF;AAAA,IACA,MAAM,WAAW,MAAM,KAAK,QAAQ,CAAC,QACnC,OAAO,OAAO,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAC9C;AAAA,IACA,IAAI,SAAS,WAAW,GAAG;AAAA,MACzB;AAAA,IACF;AAAA,IAGA,MAAM,SAAS,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO,OAAO,OAAO,GAAG,CAAC;AAAA,IACpE,IAAI,OAAO,SAAS,GAAG;AAAA,MACrB,SAAS,KAAK,wBAAwB,MAAM,CAAC;AAAA,IAC/C;AAAA,IACA,OAAO,SAAS,KAAK,GAAG;AAAA;AAE5B;AAGA,IAAM,gBAAgB,IAAE,KAAK,CAAC,QAAQ,QAAQ,WAAW,SAAS,MAAM,CAAC;AAOzE,IAAM,aAAa,IAChB,MAAM,CAAC,IAAE,OAAO,GAAG,IAAE,KAAK,CAAC,CAAC,EAC5B,UAAU,CAAC,UAAW,iBAAiB,OAAO,MAAM,YAAY,IAAI,KAAM;AAS7E,IAAM,uBAAuB,IAAE,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC;AAS7D,IAAM,sBAAsB,IAAE,KAAK,CAAC,aAAa,QAAQ,MAAM,CAAC;AAOhE,IAAM,oBAAoB,IAAE,aAAa;AAAA,EACvC,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAM3B,SAAS,qBAAqB,SAAS;AAAA,EACvC,QAAQ,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,MAAM,SAAS,SAAS;AAAA,EACxB,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,OAAO,IAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAQD,IAAM,gBAAgB,IAAE,OAAO,EAAE,UAAU,gBAAgB,EAAE,SAAS;AAEtE,IAAM,gBAAgB,IAAE,aAAa;AAAA,EACnC,WAAW,IAAE,IAAI,EAAE,SAAS;AAAA,EAC5B,aAAa,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,SAAS,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAE3B,GAAG,IAAE,aAAa,EAAE,SAAS,cAAc,CAAC,EAAE,SAAS;AACzD,CAAC;AAED,IAAM,mBAAmB,IAAE,aAAa;AAAA,EAMtC,OAAO,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACtC,SAAS,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAElC,UAAU,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACvC,MAAM,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,SAAS;AACrC,CAAC;AAED,IAAM,eAAe,IAAE,aAAa;AAAA,EAElC,SAAS,IAAE,QAAQ,EAAE,QAAQ,KAAK;AACpC,CAAC;AAED,IAAM,sBAAsB,IAAE,aAAa;AAAA,EACzC,UAAU,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAM,WAAW,SAAS;AAAA,EAC1B,SAAS,IAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAQD,IAAM,eAAe,IAAE,MAAM;AAAA,EAC3B,IAAE,OAAO;AAAA,EACT,IACG,OAAO;AAAA,IACN,QAAQ,IAAE,OAAO,EAAE,SAAS;AAAA,IAC5B,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,MAAM,IAAE,OAAO;AAAA,IACf,KAAK,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,CAAC,EACA,SAAS,IAAE,QAAQ,CAAC;AACzB,CAAC;AAQD,IAAM,oBAAoB,IACvB,OAAO,EACP,OAAO,CAAC,SAAS,KAAK,WAAW,GAAG,KAAK,cAAc,IAAI,GAAG;AAAA,EAC7D,SACE;AACJ,CAAC;AAGH,IAAM,qBAAqB,IAAE,aAAa;AAAA,EACxC,IAAI,aAAa,SAAS,CAAC,CAAC;AAAA,EAM5B,KAAK,IACF,OAAO,EACP,OAAO,CAAC,UAAU,aAAa,KAAK,MAAM,KAAK,CAAC,GAAG;AAAA,IAClD,SACE;AAAA,EACJ,CAAC,EACA,SAAS;AAAA,EAEZ,YAAY,IAAE,KAAK,YAAY,EAAE,SAAS;AAAA,EAE1C,SAAS,IAAE,MAAM,CAAC,cAAc,IAAE,MAAM,YAAY,CAAC,CAAC,EAAE,SAAS;AAAA,EACjE,WAAW,oBAAoB,SAAS;AAAA,EAExC,MAAM,WAAW,SAAS;AAAA,EAC1B,YAAY,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACrC,aAAa,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,OAAO,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAChC,QAAQ,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACjC,MAAM,SAAS,SAAS;AAAA,EAExB,cAAc,WAAW,SAAS;AAAA,EAElC,MAAM,IAAE,KAAK,UAAU,EAAE,SAAS;AAAA,EAElC,WAAW,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACnC,SAAS,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAElC,YAAY,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAEpC,YAAY,IAAE,KAAK,gBAAgB,EAAE,SAAS;AAAA,EAK9C,SAAS,IACN,MAAM;AAAA,IACL,IAAE,QAAQ,KAAK;AAAA,IACf,IACG,MACC,IAAE,MAAM;AAAA,MACN;AAAA,MACA,IACG,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC,GAAG,iBAAiB,EAC3C,OAAO,CAAC,UAAU,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;AAAA,QAClD,SACE;AAAA,MACJ,CAAC;AAAA,IACL,CAAC,CACH,EACC,IAAI,WAAW;AAAA,EACpB,CAAC,EACA,SAAS;AAAA,EACZ,QAAQ,iBAAiB,SAAS,CAAC,CAAC;AAAA,EACpC,KAAK,cAAc,SAAS,CAAC,CAAC;AAAA,EAC9B,SAAS,kBAAkB,SAAS,CAAC,CAAC;AAAA,EACtC,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAE3B,MAAM,IAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AAYD,IAAM,iBAAiB,CAAwB,UAAsB;AAAA,KAChE;AAAA,EACH,KAAK,KAAK,KAAK,KAAK,SAAS,KAAK,IAAI,WAAW,KAAK,QAAQ;AAAA,EAC9D,SAAS,KAAK,KAAK,SAAS,QAAQ,KAAK,QAAQ,UAAU,KAAK,OAAO;AACzE;AAEO,IAAM,iBAAiB,mBAAmB,UAAU,cAAc;AAGzE,IAAM,kBAA4B,mBAAmB,MAAM,CAAC,CAAC;AAatD,IAAM,uBAAuB,mBACjC,MAAM,EACN,UAAU,cAAc,EAExB,MAAM,MAAM,eAAe;AAGvB,IAAM,0BAA+C,IAAI,IAC9D,mBAAmB,MAAM,EAAE,OAC7B;AAWA,IAAM,wBAAwB,CAAC,UAC7B,IACG,OACC,IAAE,OAAO,GACT,IAAE,OAAuB,kBAAkB;AAAA,EACzC,SACE;AACJ,CAAC,CACH,EACC,QAAQ,CAAC,CAAC,EACV,YAAY,CAAC,OAAO,QAAQ;AAAA,EAC3B,WAAW,OAAO,OAAO,KAAK,KAAK,GAAG;AAAA,IACpC,IAAI,wBAAwB,IAAI,GAAG,GAAG;AAAA,MACpC,IAAI,SAAS;AAAA,QACX,MAAM,IAAE,aAAa;AAAA,QACrB,SAAS,IAAI,qEAAqE;AAAA,QAClF,MAAM,CAAC,GAAG;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF;AAAA,CACD;AAME,IAAM,mBAAmB,IAAE,aAAa;AAAA,EAC7C,WAAW,IAAE,QAAQ,EAAE,SAAS;AAAA,EAEhC,WAAW,oBAAoB,SAAS;AAAA,EAExC,SAAS,qBAAqB,SAAS;AAAA,EACvC,MAAM,SAAS,SAAS;AAAA,EACxB,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAE3B,OAAO,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACpC,OAAO,IAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AASD,IAAM,kBAAkB,IAAE,MAAM;AAAA,EAC9B,IAAE,OAAO;AAAA,EACT,IAAE,aAAa;AAAA,IACb,KAAK,IAAE,OAAO,EAAE,SAAS;AAAA,IACzB,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AACH,CAAC;AASD,IAAM,mBAAmB,IAAE,MAAM;AAAA,EAC/B,IAAE,OAAO;AAAA,EACT,IAAE,aAAa;AAAA,IACb,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,OAAO,gBAAgB,SAAS;AAAA,IAChC,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,CAAC;AACH,CAAC;AAUD,IAAM,yBAAyB,IAAE,MAAM;AAAA,EACrC,IAAE,OAAO;AAAA,EACT,IACG,OAAO,IAAE,OAAO,GAAG,IAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,UAAU,OAAO,KAAK,KAAK,EAAE,SAAS,GAAG;AAAA,IAChD,SAAS;AAAA,EACX,CAAC;AACL,CAAC;AAQD,IAAM,qBAAqB,IAAE,MAAM;AAAA,EACjC,IAAE,OAAO;AAAA,EACT,IAAE,aAAa;AAAA,IACb,SAAS;AAAA,IAET,aAAa,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IAKtC,IAAI,IAAE,OAAO,EAAE,SAAS;AAAA,IACxB,MAAM,IACH,aAAa,EAAE,MAAM,IAAE,OAAO,GAAG,MAAM,uBAAuB,CAAC,EAC/D,SAAS;AAAA,EACd,CAAC;AACH,CAAC;AAOD,IAAM,kBAAkB,IAAE,aAAa;AAAA,EACrC,MAAM,IACH,aAAa;AAAA,IACZ,QAAQ,IAAE,KAAK,YAAY;AAAA,IAE3B,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,CAAC,EACA,SAAS;AAAA,EACZ,YAAY;AAAA,EAEZ,QAAQ,IAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAOD,IAAM,qBAAqB,IAAE,aAAa;AAAA,EAExC,WAAW,uBAAuB,SAAS;AAAA,EAE3C,OAAO,IACJ,MAAM,IAAE,aAAa,EAAE,MAAM,IAAE,OAAO,GAAG,OAAO,uBAAuB,CAAC,CAAC,EACzE,QAAQ,CAAC,CAAC;AAAA,EAEb,SAAS,IAAE,cAAc,IAAE,KAAK,cAAc,GAAG,IAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC;AAOD,IAAM,wBAAwB,IAAE,aAAa;AAAA,EAC3C,aAAa,uBAAuB,SAAS;AAAA,EAC7C,OAAO,uBAAuB,SAAS;AACzC,CAAC;AAUD,IAAM,0BAA0B,IAAE,aAAa;AAAA,EAS7C,QAAQ,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAOtC,aAAa,sBAAsB,eAAe;AACpD,CAAC;AAGD,IAAM,4BAA4B,CAAC,WAAW,WAAW,MAAM;AAS/D,IAAM,sBAAsB,IACzB,aAAa;AAAA,EACZ,aAAa,IAAE,OAAO,EAAE,QAAQ,KAAK;AAAA,EACrC,SAAS,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACtC,SAAS,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACtC,OAAO,IAAE,OAAO,EAAE,QAAQ,OAAO;AAAA,EACjC,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,SAAS,qBAAqB,SAAS;AAAA,EAKvC,OAAO,IAAE,OAAO,IAAE,OAAO,GAAG,uBAAuB,EAAE,QAAQ,CAAC,CAAC;AACjE,CAAC,EACA,YACC,CAAC,OAAO,QAAQ;AAAA,EACd,IAAI,CAAC,MAAM,SAAS;AAAA,IAClB;AAAA,EACF;AAAA,EACA,WAAW,OAAO,2BAA2B;AAAA,IAC3C,IAAI,MAAM,SAAS,WAAW;AAAA,MAC5B,IAAI,SAAS;AAAA,QACX,MAAM,IAAE,aAAa;AAAA,QACrB,SAAS,WAAW,8HAA8H;AAAA,QAClJ,MAAM,CAAC,GAAG;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF;AAAA,GAMF,EAAE,MAAM,CAAC,YAAY,cAAa,QAAQ,KAAK,EAAE,CACnD,EACC,UAAU,GAAG,SAAS,SAAS,MAAM,YAAY,YAAY;AAAA,KACzD;AAAA,EACH,SAAS,WAAW;AAAA,IAElB,4BAA4B,MAAM,WAAW,EAAE,SAAS,SAAS,KAAK,CAAC,CAAC;AAAA,EAC1E;AACF,EAAE;AAEJ,IAAM,eAAe,IAAE,aAAa;AAAA,EAIlC,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACjC,MAAM,SAAS,SAAS;AAAA,EACxB,OAAO,IACJ,MACC,IAAE,aAAa;AAAA,IACb,aAAa,IAAE,OAAO,EAAE,SAAS;AAAA,IACjC,MAAM,SAAS,SAAS;AAAA,IACxB,OAAO;AAAA,IACP,MAAM,IAAE,OAAO;AAAA,IACf,KAAK,IAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,CAAC,CACH,EACC,SAAS;AAAA,EACZ,OAAO;AAAA,EAKP,MAAM,IAAE,OAAO,EAAE,UAAU,cAAc;AAC3C,CAAC;AAED,IAAM,wBAAwB,IAAE,aAAa;AAAA,EAC3C,aAAa,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,MAAM,SAAS,SAAS;AAAA,EACxB,OAAO,IAAE,OAAO;AAAA,EAChB,MAAM,IAAE,OAAO;AAAA,EACf,KAAK,IAAE,OAAO,EAAE,SAAS;AAC3B,CAAC;AAED,IAAM,oBAAoB,IAAE,aAAa;AAAA,EACvC,OAAO,IAAE,MAAM,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAChD,MAAM,IAAE,KAAK,CAAC,YAAY,YAAY,WAAW,SAAS,CAAC;AAAA,EAC3D,OAAO,IAAE,OAAO;AAClB,CAAC;AAoBD,IAAM,oBACJ,IAAE,KAAK,MACL,IAAE,MAAM;AAAA,EACN,IAAE,OAAO;AAAA,EACT,IAAE,aAAa;AAAA,IACb,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,WAAW,IAAE,QAAQ,EAAE,SAAS;AAAA,IAChC,WAAW,oBAAoB,SAAS;AAAA,IACxC,SAAS,qBAAqB,SAAS;AAAA,IACvC,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,MAAM,SAAS,SAAS;AAAA,IACxB,OAAO,IAAE,MAAM,iBAAiB,EAAE,SAAS;AAAA,IAC3C,OAAO,IAAE,OAAO;AAAA,IAChB,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,CAAC;AACH,CAAC,CACH;AAEF,IAAM,qBAAqB,IAAE,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC;AAG3D,IAAM,mBAAmB,IAAE,aAAa;AAAA,EACtC,UAAU,mBAAmB,SAAS;AAAA,EACtC,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,UAAU,IACP,KAAK,CAAC,UAAU,cAAc,SAAS,WAAW,CAAC,EACnD,QAAQ,QAAQ;AAAA,EAEnB,SAAS,IAAE,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS;AAAA,EACxD,SAAS,IACN,MACC,IAAE,MAAM,CAAC,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,IAAE,OAAO,EAAE,MAAM,eAAe,CAAC,CAAC,CAC1E,EACC,SAAS,EACT,SAAS;AACd,CAAC;AAGD,IAAM,yBAAyB,IAAE,aAAa;AAAA,EAC5C,KAAK,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACrB,OAAO,IAAE,KAAK,CAAC,UAAU,UAAU,SAAS,CAAC,EAAE,SAAS;AAAA,EACxD,QAAQ,IACL,MAAM;AAAA,IACL,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IAC1B,IAAE,OAAO,EAAE,MAAM,oBAAoB;AAAA,EACvC,CAAC,EACA,SAAS;AACd,CAAC;AAGD,IAAM,kBAAkB,IAAE,aAAa;AAAA,EACrC,UAAU,mBAAmB,SAAS;AAAA,EACtC,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,UAAU,IAAE,MAAM,sBAAsB,EAAE,SAAS;AACrD,CAAC;AAOD,IAAM,kBAAkB,IACrB,MAAM,CAAC,IAAE,OAAO,GAAG,kBAAkB,eAAe,CAAC,EACrD,YAAY,CAAC,OAAO,QAAQ;AAAA,EAC3B,IAAI,UAAS,KAAK,KAAK,CAAC,WAAW,KAAK,GAAG;AAAA,IACzC,IAAI,SAAS;AAAA,MACX,MAAM,IAAE,aAAa;AAAA,MACrB,SAAS,iBAAiB,4BAA4B,WAAW,KAAK,IAAI;AAAA,IAC5E,CAAC;AAAA,EACH;AAAA,CACD;AAOH,IAAM,qBAAqB,IACxB,MAAM;AAAA,EACL,IAAE,OAAO;AAAA,EACT,IAAE,aAAa;AAAA,IACb,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,IAC1B,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,CAAC;AACH,CAAC,EACA,SAAS,EACT,UAAU,CAAC,UACV,UAAS,KAAK,IAAI,EAAE,MAAM,OAAO,OAAO,MAAM,IAAI,KACpD;AAEF,IAAM,oBAAoB;AAAA,EACxB,QAAQ,IACL,MAAM;AAAA,IACL,IAAE,OAAO;AAAA,IACT,IAAE,aAAa,EAAE,MAAM,IAAE,OAAO,GAAG,OAAO,IAAE,OAAO,EAAE,CAAC;AAAA,EACxD,CAAC,EACA,QAAQ,MAAM,EACd,UAAU,CAAC,UACV,UAAS,KAAK,IAAI,EAAE,MAAM,OAAO,OAAO,MAAM,IAAI,KACpD;AAAA,EACF,QAAQ,IAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,OAAO,IACJ,aAAa;AAAA,IACZ,MAAM,gBAAgB,QAAQ,OAAO;AAAA,IACrC,SAAS,gBAAgB,QAAQ,OAAO;AAAA,IACxC,MAAM,gBAAgB,QAAQ,eAAe;AAAA,EAC/C,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EACd,MAAM,IAAE,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,EAAE,QAAQ,QAAQ;AAAA,EAC1D,QAAQ,IAAE,KAAK,CAAC,QAAQ,MAAM,MAAM,IAAI,CAAC,EAAE,QAAQ,IAAI;AACzD;AAEA,IAAM,oBAAoB,IAAE,aAC1B,mBACA,gBAAgB;AAAA,EACd,QACE;AACJ,CAAC,CACH;AAGA,IAAM,0BAA0B,IAAE,aAAa;AAAA,EAC7C,MAAM,IAAE,OAAO;AAAA,EACf,MAAM,SAAS,SAAS;AAAA,EACxB,OAAO,IAAE,OAAO;AAClB,CAAC;AAQD,IAAM,uBAAuB,IAC1B,OAGC,CAAC,UAAU,UAAU,SAAS,cAAa,KAAK,GAChD;AAAA,EACE,SACE;AACJ,CACF,EACC,UAAU,CAAC,UAAW,UAAU,QAAQ,sBAAsB,KAAM,EACpE,KAAK,2BAA2B;AAGnC,IAAM,uBAAuB,IAC1B,aAAa;AAAA,EACZ,mBAAmB,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC5C,oBAAoB,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAC/C,CAAC,EACA,SAAS,CAAC,CAAC;AAGd,IAAM,wBAAwB,IAC3B,aAAa;AAAA,EACZ,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AACnC,CAAC,EACA,SAAS,CAAC,CAAC;AAGd,IAAM,sBAAsB,IAAE,aAC5B;AAAA,EACE,WAAW;AAAA,EACX,UAAU;AAAA,EAEV,SAAS,IAAE,MAAM,uBAAuB,EAAE,QAAQ,CAAC,CAAC;AAAA,EACpD,UAAU,qBAAqB,QAAQ,MAAM,MAAM,CAAC;AACtD,GAEA,gBAAgB;AAAA,EACd,SACE;AAAA,EACF,YACE;AAAA,EACF,YACE;AAAA,EACF,WACE;AACJ,CAAC,CACH;AAgBA,IAAM,qBAAqB,IACxB,OAGC,CAAC,UAAU,UAAU,SAAS,cAAa,KAAK,GAChD;AAAA,EACE,SACE;AACJ,CACF,EACC,UAAU,CAAC,UACV,UAAU,UAAS,UAAU,SAAQ,EAAE,UAAU,MAAM,IAAI,KAC7D,EACC,KAAK,mBAAmB;AAQ3B,IAAM,qBAAqB,CAAC,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,OAAO,GAAG;AAOvE,IAAM,kBAAkB,IACrB,OAAO,IAAE,OAAO,GAAG,IAAE,QAAQ,CAAC,EAC9B,YAAY,CAAC,KAAK,QAAQ;AAAA,EACzB,IAAI,CAAC,UAAS,IAAI,GAAG,KAAK,IAAI,IAAI,WAAW,GAAG;AAAA,IAC9C,IAAI,SAAS;AAAA,MACX,MAAM,IAAE,aAAa;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EACA,MAAM,SAAS,mBAAmB,OAAO,CAAC,WAAU,SAAS,IAAG;AAAA,EAChE,IAAI,OAAO,SAAS,GAAG;AAAA,IACrB,IAAI,SAAS;AAAA,MACX,MAAM,IAAE,aAAa;AAAA,MACrB,SAAS,2CAA2C,OAAO,KAAK,MAAM;AAAA,IACxE,CAAC;AAAA,EACH;AAAA,CACD;AAIH,IAAM,uBAAuB,IAAE,MAC7B;AAAA,EACE,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACvB,IACG,OAAO,IAAE,OAAO,GAAG,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAC3C,OAAO,CAAC,UAAU,OAAO,KAAK,KAAK,EAAE,SAAS,GAAG;AAAA,IAChD,SAAS;AAAA,EACX,CAAC;AACL,GACA,EAAE,OAAO,qDAAqD,CAChE;AAIA,IAAM,wBAAwB,IAAE,aAAa;AAAA,EAC3C,SAAS,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAChC,MAAM,SAAS,SAAS;AAAA,EACxB,OAAO;AACT,CAAC;AAED,IAAM,uBAAuB,GAAG,WAAW,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,KAAK,IAAI;AAG7E,IAAM,eAAe,CACnB,UAC0C,MAAM,SAAS;AAQ3D,IAAM,kBAAkB,CAAC,UAAuC;AAAA,EAC9D,MAAM,cAAc,MAAM,SAAS,kBAAkB,MAAM,SAAS,CAAC,GAClE,KAAK,EACL,OAAO,YAAY,EACnB,KAAK,CAAC,WAAW,OAAO,UAAU,OAAO,KAAK,EAAE,CAAC;AAAA,EACpD,IAAI,CAAC,YAAY;AAAA,IACf,OAAO,0EAA0E;AAAA,EACnF;AAAA,EACA,MAAM,QAAQ,OAAO,WAAW,KAAK,EAAE;AAAA,EACvC,MAAM,KAAK,sBAAsB,OAAO,KAAK;AAAA,EAC7C,MAAM,QAAQ,MAAM,QAAQ,MAAM,KAAK,IAAI,MAAM,MAAM,SAAS;AAAA,EAChE,IAAI,UAAS,KAAK,GAAG;AAAA,IACnB,OAAO,GAAG,UAAU,8CAA8C;AAAA,EACpE;AAAA,EACA,MAAM,aAAa,WAAW,OAC3B,KAAK,EACL,KAAK,CAAC,WAAW,OAAO,KAAK,SAAS,CAAC;AAAA,EAC1C,OAAO,aACH,GAAG,MAAM,WAAW,KAAK,IAAI,MAAM,EAAE,KAAK,GAAG,MAAM,WAAW,2DAC9D,GAAG,YAAY;AAAA;AAGrB,IAAM,kBAAkB,IAAE,aAAa;AAAA,EAOrC,SAAS,IACN,MACC;AAAA,IACE,IAAE,QAAQ;AAAA,IACV,IAAE,MAAM,IAAE,MAAM,CAAC,IAAE,KAAK,UAAU,GAAG,qBAAqB,CAAC,CAAC,EAAE,OAC5D,CAAC,UAAU;AAAA,MACT,MAAM,OAAO,MAAM,OAAO,kBAAkB;AAAA,MAC5C,OAAO,IAAI,IAAI,IAAI,EAAE,SAAS,KAAK;AAAA,OAErC,EAAE,SAAS,wDAAwD,CACrE;AAAA,EACF,GACA,EAAE,OAAO,gBAAgB,CAC3B,EACC,QAAQ,IAAI,EACZ,UAAU,CAAC,UAAU;AAAA,IACpB,IAAI,WAAU,KAAK,GAAG;AAAA,MACpB,OAAO,QAAQ,CAAC,GAAG,UAAU,IAAI,CAAC;AAAA,IACpC;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EACH,SAAS,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAElC,cAAc,IAAE,OAAO,EAAE,SAAS;AAAA,EAElC,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAK1B,OAAO,IAAE,OAAO,EAAE,QAAQ,MAAM,EAAE,UAAU,cAAc;AAC5D,CAAC;AAED,IAAM,0BAA0B,IAC7B,OAAO,EACP,KAAK,EACL,IAAI,CAAC,EACL,OACC,CAAC,UAAU;AAAA,EACT,IAAI,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,WAAW,IAAI,GAAG;AAAA,IACpD,OAAO;AAAA,EACT;AAAA,EACA,IAAI;AAAA,IACF,MAAM,MAAM,IAAI,IAAI,KAAK;AAAA,IACzB,OAAO,IAAI,aAAa,WAAW,IAAI,aAAa;AAAA,IACpD,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,GAGX;AAAA,EACE,SACE;AACJ,CACF;AAGF,IAAM,sBAAsB,IAAE,aAAa;AAAA,EAMzC,SAAS,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC3C,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACjC,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AACnC,CAAC;AAKD,IAAM,wBAAwB,IAAE,aAAa;AAAA,EAC3C,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAQjC,SAAS,IACN,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAE,MAAM,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAClE,QAAQ,CAAC,CAAC;AACf,CAAC;AASD,IAAM,kBAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,qBAAqB,CAAC,SAC1B,OAAO,YACL,gBAAgB,IAAI,CAAC,QAAQ;AAAA,EAC3B;AAAA,EACA,GAAG,QAAQ,uBAAuB;AACpC,CAAC,CACH;AAGF,IAAM,iBAAiB;AAAA,EACrB,WAAW,IACR,aACC;AAAA,IAQE,SAAS,qBAAqB,SAAS;AAAA,IACvC,MAAM,IACH,MACC,IAAE,MAAM;AAAA,MACN,IAAE,QAAQ,GAAG;AAAA,MACb,IACG,IAAI,EAAE,UAAU,YAAY,CAAC,EAC7B,UAAU,CAAC,UAAU,IAAI,IAAI,KAAK,EAAE,MAAM;AAAA,IAC/C,CAAC,CACH,EACC,SAAS;AAAA,IACZ,SAAS,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IAIlC,UAAU,wBAAwB,SAAS;AAAA,IAI3C,cAAc,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IAMhD,UAAU,uBAAuB,SAAS,0BAA0B;AAAA,IAOpE,WAAW,IACR,aAAa;AAAA,MACZ,eAAe,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,MACpD,cAAc,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,MACnD,YAAY,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,IACnD,CAAC,EACA,SAAS;AAAA,IAGZ,aAAa,IACV,MACC,IAAE,aAAa;AAAA,MACb,MAAM,SAAS,SAAS;AAAA,MACxB,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACzB,CAAC,CACH,EACC,QAAQ,CAAC,CAAC;AAAA,IAIb,SAAS,IACN,OAAO,EACP,OACC,CAAC,SACC,KAAK,WAAW,SAAS,KACzB,KAAK,WAAW,GAAG,KACnB,cAAc,IAAI,GACpB;AAAA,MACE,SACE;AAAA,IACJ,CACF,EACC,SAAS;AAAA,IAKZ,OAAO,IAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,GACA,wBACF,EACC,YAAY,CAAC,OAAO,QAAQ;AAAA,IAG3B,IAAI,MAAM,QAAQ,MAAM,UAAU;AAAA,MAChC,IAAI,SAAS;AAAA,QACX,MAAM,IAAE,aAAa;AAAA,QACrB,SACE;AAAA,QACF,MAAM,CAAC,MAAM;AAAA,MACf,CAAC;AAAA,IACH;AAAA,GACD,EACA,SAAS;AAAA,EAOZ,YAAY,IACT,MAAM;AAAA,IACL,IAAE,QAAQ;AAAA,IACV,IACG,MAAM,IAAE,KAAK,mBAAmB,CAAC,EACjC,OAAO,CAAC,UAAU,IAAI,IAAI,KAAK,EAAE,SAAS,MAAM,QAAQ;AAAA,MACvD,SAAS;AAAA,IACX,CAAC;AAAA,EACL,CAAC,EACA,QAAQ,IAAI,EACZ,UAAU,CAAC,UAAU;AAAA,IACpB,IAAI,WAAU,KAAK,GAAG;AAAA,MACpB,OAAO,QAAQ,CAAC,GAAG,mBAAmB,IAAI,CAAC;AAAA,IAC7C;AAAA,IACA,OAAO;AAAA,GACR;AACL;AAEA,IAAM,iBAAiB,IAAE,aACvB,gBACA,gBAAgB;AAAA,KACX,mBAAmB,IAAI;AAAA,EAC1B,KAAK;AACP,CAAC,CACH;AAOA,IAAM,qBAAqB,IAAE,aAAa;AAAA,EACxC,MAAM,IAAE,OAAO;AAAA,EACf,MAAM,SAAS,SAAS;AAAA,EACxB,OAAO;AACT,CAAC;AAOD,IAAM,qBAAqB,IAAE,aAAa;AAAA,EACxC,MAAM,IAAE,OAAO;AAAA,EACf,OAAO;AACT,CAAC;AAED,IAAM,yBAAyB,IAAE,aAAa;AAAA,EAE5C,SAAS,IAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAQ/C,KAAK,mBAAmB,SAAS;AAAA,EAEjC,UAAU,IAAE,MAAM,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAQhD,MAAM,IAAE,MAAM,CAAC,IAAE,QAAQ,GAAG,aAAa,CAAC,EAAE,QAAQ,IAAI;AAAA,EACxD,WAAW,IAAE,MAAM,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAOhD,SAAS,IACN,MAAM;AAAA,IACL,IAAE,MAAM,iBAAiB;AAAA,IACzB,IAAE,aAAa;AAAA,MACb,SAAS,qBAAqB,QAAQ,MAAM;AAAA,MAC5C,OAAO,IAAE,MAAM,iBAAiB,EAAE,SAAS;AAAA,IAC7C,CAAC;AAAA,EACH,CAAC,EACA,SAAS,CAAC,CAAC,EACX,UAAU,CAAC,UACV,MAAM,QAAQ,KAAK,IAAI,EAAE,SAAS,QAAiB,OAAO,MAAM,IAAI,KACtE;AAAA,EACF,MAAM,IAAE,MAAM,YAAY,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAgBD,IAAM,qBAAqB,IACxB,MAAM;AAAA,EACL,IAAE,QAAQ;AAAA,EACV,IAAE,aAAa;AAAA,IACb,MAAM,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IAC/B,KAAK,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAChC,CAAC;AACH,CAAC,EACA,UAAU,CAAC,UACV,WAAU,KAAK,IAAI,EAAE,MAAM,OAAO,KAAK,MAAM,IAAI,KACnD;AAMF,IAAM,uBAAuB,IAC1B,MAAM;AAAA,EACL,IAAE,QAAQ;AAAA,EACV,IAAE,aAAa;AAAA,IACb,UAAU,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,IACnC,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACnC,CAAC;AACH,CAAC,EAEA,UAAU,CAAC,UACV,WAAU,KAAK,IACX,EAAE,UAAU,OAAO,SAAS,MAAM,IAClC,EAAE,UAAU,MAAM,WAAW,MAAM,UAAU,SAAS,MAAM,QAAQ,CAC1E;AAQF,IAAM,wBAAwB,IAC3B,MAAM;AAAA,EACL,IAAE,QAAQ;AAAA,EACV,IAAE,aAAa;AAAA,IACb,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,IACjC,UAAU,wBAAwB,SAAS;AAAA,EAC7C,CAAC;AACH,CAAC,EACA,UAAU,CAAC,UACV,WAAU,KAAK,IACX,EAAE,SAAS,OAAO,UAAU,KAAK,IACjC,EAAE,SAAS,MAAM,SAAS,UAAU,MAAM,YAAY,KAAK,CACjE;AAGF,IAAM,eAAe,IAAE,aAAa;AAAA,EAClC,MAAM,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAEtB,KAAK,IAAE,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,QAAQ,KAAK;AAAA,EACzC,OAAO,IAAE,OAAO;AAAA,EAMhB,OAAO,IAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAOD,IAAM,mBAAmB,IACtB,aAAa;AAAA,EACZ,eAAe,IAAE,OAAO,EAAE,QAAQ,IAAI;AAAA,EAEtC,gBAAgB,IAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAE/C,yBAAyB,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACjD,SAAS,IAAE,MAAM,YAAY,EAAE,IAAI,CAAC;AAAA,EAEpC,QAAQ,IAAE,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,QAAQ,KAAK;AAAA,EAM5C,wBAAwB,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAEjD,IAAI,wBAAwB,SAAS;AACvC,CAAC,EACA,YAAY,CAAC,OAAO,QAAQ;AAAA,EAC3B,MAAM,QAAQ,IAAI,IAAI,MAAM,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,CAAC;AAAA,EAChE,IAAI,CAAC,MAAM,IAAI,MAAM,aAAa,GAAG;AAAA,IACnC,IAAI,SAAS;AAAA,MACX,MAAM,IAAE,aAAa;AAAA,MACrB,SAAS,uBAAuB,MAAM;AAAA,MACtC,MAAM,CAAC,eAAe;AAAA,IACxB,CAAC;AAAA,EACH;AAAA,EACA,IACE,MAAM,mBAAmB,QACzB,MAAM,mBAAmB,aACzB,CAAC,MAAM,IAAI,MAAM,cAAc,GAC/B;AAAA,IACA,IAAI,SAAS;AAAA,MACX,MAAM,IAAE,aAAa;AAAA,MACrB,SAAS,wBAAwB,MAAM;AAAA,MACvC,MAAM,CAAC,gBAAgB;AAAA,IACzB,CAAC;AAAA,EACH;AAAA,CACD;AAQI,IAAM,aAAa;AAG1B,IAAM,wBAAwB,IAAE,aAAa;AAAA,EAK3C,QAAQ,IAAE,MAAM,CAAC,IAAE,QAAQ,GAAG,IAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,IAAI;AAAA,EAOvD,WAAW,IAAE,KAAK,CAAC,UAAU,MAAM,CAAC,EAAE,QAAQ,QAAQ;AAAA,EAEtD,IAAI,IACD,OAAO,EACP,MACC,YACA,sHACF;AAAA,EAEF,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,EAE3B,SAAS,IAAE,QAAQ,EAAE,QAAQ,KAAK;AACpC,CAAC;AAQD,IAAM,uBAAuB,IAC1B,aAAa;AAAA,EAEZ,UAAU,IAAE,MAAM,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAAA,EAEnD,SAAS,IAAE,aAAa;AAAA,IAEtB,OAAO,IAAE,OAAO,EAAE,SAAS;AAAA,IAC3B,OAAO,IAAE,OAAO;AAAA,EAClB,CAAC;AAAA,EACD,UAAU,IACP,aAAa;AAAA,IAMZ,UAAU,IAAE,KAAK,CAAC,aAAa,MAAM,CAAC,EAAE,QAAQ,WAAW;AAAA,EAC7D,CAAC,EACA,SAAS,CAAC,CAAC;AAChB,CAAC,EACA,YAAY,CAAC,OAAO,QAAQ;AAAA,EAC3B,MAAM,OAAO,IAAI;AAAA,EACjB,YAAY,UAAU,YAAY,MAAM,SAAS,QAAQ,GAAG;AAAA,IAC1D,IAAI,KAAK,IAAI,QAAQ,EAAE,GAAG;AAAA,MACxB,IAAI,SAAS;AAAA,QACX,MAAM,IAAE,aAAa;AAAA,QACrB,SAAS,+BAA+B,QAAQ;AAAA,QAChD,MAAM,CAAC,YAAY,UAAU,IAAI;AAAA,MACnC,CAAC;AAAA,IACH;AAAA,IACA,KAAK,IAAI,QAAQ,EAAE;AAAA,EACrB;AAAA,CACD;AAEH,IAAM,aAAa;AAOnB,IAAM,iBAAiB;AAAA,EACrB,MAAM;AAAA,IACJ,QAAQ,CAAC,SAAiB,KAAK,WAAW,GAAG;AAAA,IAC7C,SACE;AAAA,EACJ;AAAA,EACA,IAAI;AAAA,IACF,QAAQ,CAAC,SAAiB,KAAK,WAAW,GAAG,KAAK,WAAW,KAAK,IAAI;AAAA,IACtE,SACE;AAAA,EACJ;AACF;AAEA,IAAM,eAAe,CAAC,QACpB,IAAE,OAAO,EAAE,OAAO,eAAe,KAAK,QAAQ;AAAA,EAC5C,SAAS,eAAe,KAAK;AAC/B,CAAC;AAMH,IAAM,iBAAiB,IACpB,aAAa;AAAA,EACZ,MAAM,aAAa,MAAM;AAAA,EACzB,QAAQ,IACL,MAAM,CAAC,IAAE,QAAQ,GAAG,GAAG,IAAE,QAAQ,GAAG,GAAG,IAAE,QAAQ,GAAG,GAAG,IAAE,QAAQ,GAAG,CAAC,CAAC,EACtE,QAAQ,GAAG;AAAA,EACd,IAAI,aAAa,IAAI;AACvB,CAAC,EACA,YAAY,CAAC,UAAU,QAAQ;AAAA,EAC9B,MAAM,QAAQ,qBAAqB,SAAS,MAAM,SAAS,EAAE;AAAA,EAC7D,IAAI,OAAO;AAAA,IACT,IAAI,SAAS;AAAA,MACX,MAAM,IAAE,aAAa;AAAA,MACrB,SAAS,MAAM;AAAA,MACf,MAAM,CAAC,MAAM,GAAG;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,CACD;AAQH,IAAM,2BAA2B,IAAE,aAAa;AAAA,EAC9C,UAAU,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAU,IAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,UAAU,IAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AASD,IAAM,oBAAoB,IAAE,aAAa;AAAA,EAEvC,SAAS,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAEvC,gBAAgB,IAAE,MAAM,wBAAwB,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAQD,IAAM,gBAAgB,IAAE,aAAa;AAAA,EAEnC,SAAS;AAAA,EAET,QAAQ;AACV,CAAC;AASD,IAAM,gBAAgB,IAAE,OAAO;AAE/B,IAAM,kBAAkB,IAAE,aAAa;AAAA,EACrC,QAAQ,cAAc,SAAS;AAAA,EAC/B,YAAY,cAAc,SAAS;AAAA,EACnC,QAAQ,cAAc,SAAS;AAAA,EAC/B,YAAY,cAAc,SAAS;AAAA,EACnC,OAAO,cAAc,SAAS;AAChC,CAAC;AAUD,IAAM,qBAAqB,IAAE,MAAM;AAAA,EACjC,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC1B,IAAE,MAAM,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC;AAAA,EACnC,IAAE,OAAO,EAAE,MAAM,eAAe;AAClC,CAAC;AACD,IAAM,oBAAoB,IAAE,KAAK,CAAC,UAAU,QAAQ,CAAC;AACrD,IAAM,eAAe,IAAE,MAAM;AAAA,EAC3B,IAAE,OAAO;AAAA,EACT,IAAE,aAAa;AAAA,IACb,MAAM,IAAE,OAAO;AAAA,IACf,OAAO,IAAE,MAAM,CAAC,mBAAmB,IAAE,MAAM,iBAAiB,CAAC,CAAC,EAAE,SAAS;AAAA,IACzE,QAAQ,mBAAmB,SAAS;AAAA,EACtC,CAAC;AAAA,EAED,IAAE,aAAa;AAAA,IACb,MAAM,IAAE,OAAO;AAAA,IACf,KAAK,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACrB,OAAO,kBAAkB,SAAS;AAAA,IAClC,QAAQ,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC/C,CAAC;AACH,CAAC;AAED,IAAM,iBAAiB,IAAE,aAAa;AAAA,EAMpC,aAAa,IAAE,MAAM,CAAC,IAAE,OAAO,GAAG,IAAE,QAAQ,KAAK,CAAC,CAAC,EAAE,SAAS;AAAA,EAQ9D,SAAS,IAAE,QAAQ,EAAE,SAAS;AAAA,EAM9B,OAAO,IAAE,MAAM,YAAY,EAAE,SAAS;AAAA,EAOtC,OAAO,uBAAuB,SAAS;AAAA,EAKvC,MAAM,IAAE,MAAM,CAAC,IAAE,OAAO,GAAG,IAAE,QAAQ,KAAK,CAAC,CAAC,EAAE,SAAS;AAAA,EAEvD,SAAS,gBAAgB,SAAS;AAAA,EAMlC,MAAM,IAAE,MAAM,CAAC,IAAE,OAAO,GAAG,IAAE,QAAQ,KAAK,CAAC,CAAC,EAAE,SAAS;AAAA,EAOvD,QAAQ,IAAE,OAAO,IAAE,OAAO,GAAG,IAAE,OAAO,CAAC,EAAE,SAAS;AACpD,CAAC;AAED,IAAM,kBAAkB,IAAE,aAAa;AAAA,EACrC,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAEjC,OAAO,IAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE;AAAA,EAE7C,OAAO,IAAE,MAAM,IAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,QAAQ,WAAW,CAAC;AAC1D,CAAC;AAUD,IAAM,6BAA6B,IAAE,aAAa;AAAA,EAChD,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACjC,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACjC,QAAQ,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAClC,CAAC;AASD,IAAM,uBAAuB,IAC1B,MAAM,CAAC,IAAE,QAAQ,GAAG,0BAA0B,CAAC,EAC/C,UAAU,CAAC,UAAU;AAAA,EACpB,IAAI,UAAU,MAAM;AAAA,IAClB,OAAO,2BAA2B,MAAM,CAAC,CAAC;AAAA,EAC5C;AAAA,EACA,IAAI,UAAU,OAAO;AAAA,IACnB,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA,CACR;AAGH,IAAM,sBAAsB,IAAE,aAAa;AAAA,EACzC,gBAAgB,IAAE,OAAO,EAAE,SAAS;AAAA,EACpC,iBAAiB,IAAE,OAAO,EAAE,SAAS;AAAA,EACrC,eAAe,IAAE,OAAO,EAAE,SAAS;AAAA,EACnC,YAAY,IAAE,OAAO,EAAE,SAAS;AAAA,EAChC,eAAe,IAAE,OAAO,EAAE,SAAS;AACrC,CAAC;AAQD,IAAM,2BAA2B,IAAE,aAAa;AAAA,EAC9C,SAAS,oBAAoB,SAAS;AAAA,EACtC,aAAa,IAAE,OAAO,EAAE,QAAQ,kBAAkB;AAAA,EAClD,OAAO,IAAE,MAAM,EAAE,SAAS;AAAA,EAC1B,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,QAAQ,IAAE,MAAM,IAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACnC,WAAW,IAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,KAAK,IAAE,IAAI,EAAE,SAAS;AACxB,CAAC;AAOD,IAAM,uBAAuB,IAAE,aAAa;AAAA,EAC1C,qBAAqB,IAAE,OAAO,EAAE,QAAQ,sBAAsB;AAAA,EAC9D,aAAa,IAAE,OAAO,EAAE,SAAS;AAAA,EACjC,SAAS,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,iBAAiB,IAAE,OAAO,EAAE,SAAS;AAAA,EACrC,OAAO,IAAE,MAAM,CAAC,IAAE,OAAO,EAAE,YAAY,GAAG,IAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,EAChE,eAAe,IAAE,OAAO,EAAE,QAAQ,KAAK;AAAA,EACvC,QAAQ,IAAE,MAAM,IAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAKD,IAAM,kBAAkB;AAAA,EAKtB,eAAe,IAAE,MAAM,CAAC,IAAE,QAAQ,KAAK,GAAG,IAAE,QAAQ,KAAK,CAAC,CAAC,EAAE,QAAQ,KAAK;AAAA,EAK1E,QAAQ,IACL,aAAa;AAAA,IAEZ,QAAQ,IAAE,aAAa,EAAE,OAAO,IAAE,IAAI,EAAE,CAAC,EAAE,SAAS;AAAA,IAEpD,gBAAgB,IAAE,IAAI,EAAE,SAAS;AAAA,IAEjC,WAAW,IAAE,aAAa,EAAE,OAAO,IAAE,IAAI,EAAE,CAAC,EAAE,SAAS;AAAA,IAEvD,SAAS,IAAE,QAAQ,EAAE,SAAS;AAAA,IAE9B,WAAW,IAAE,IAAI,EAAE,SAAS;AAAA,EAC9B,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EAMd,UAAU,IACP,OAAO,IAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAE,OAAO,CAAC,EACpC,SAAS,EACT,YAAY,CAAC,MAAM,QAAQ;AAAA,IAC1B,WAAW,QAAQ,OAAO,KAAK,QAAQ,CAAC,CAAC,GAAG;AAAA,MAC1C,MAAM,QAAQ,aAAa,IAAI;AAAA,MAC/B,IAAI,OAAO;AAAA,QACT,IAAI,SAAS;AAAA,UACX,MAAM;AAAA,UACN,SAAS,2BAA2B,6CAA6C;AAAA,UACjF,MAAM,CAAC,IAAI;AAAA,QACb,CAAC;AAAA,MACH;AAAA,IACF;AAAA,GACD;AAAA,EACH,IAAI,eAAe,QAAQ,CAAC,CAAC;AAAA,EAE7B,cAAc,yBAAyB,SAAS;AAAA,EAEhD,QAAQ,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAChC,KAAK,gBAAgB,SAAS,CAAC,CAAC;AAAA,EAKhC,SAAS,IACN,MAAM;AAAA,IACL,IAAE,QAAQ;AAAA,IACV,IAAE,aAAa,EAAE,YAAY,IAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,CAAC;AAAA,EAC3D,CAAC,EACA,QAAQ,IAAI;AAAA,EAEf,UAAU,IACP,MAAM,CAAC,IAAE,QAAQ,GAAG,oBAAoB,CAAC,EACzC,SAAS,EACT,UAAU,CAAC,UAAwC;AAAA,IAClD,IAAI,UAAU,MAAM;AAAA,MAClB,OAAO,qBAAqB,MAAM,CAAC,CAAC;AAAA,IACtC;AAAA,IACA,OAAO,UAAU,QAAQ,YAAY;AAAA,GACtC;AAAA,EAEH,gBAAgB,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAExC,GAAG,cAAc,QAAQ,CAAC,CAAC;AAC7B;AAEA,IAAM,kBAAkB,IAAE,aACxB,iBACA,gBAAgB;AAAA,EACd,kBAAkB;AAAA,EAClB,gBAAgB;AAClB,CAAC,CACH;AAQA,IAAM,qBAAqB,IAAE,aAAa;AAAA,EAMxC,kBAAkB,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAO1C,KAAK,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAU7B,SAAS,IACN,MAAM,CAAC,IAAE,QAAQ,GAAG,qBAAqB,CAAC,EAC1C,QAAQ,IAAI,EACZ,UAAU,CAAC,UACV,WAAU,KAAK,IAAI,EAAE,SAAS,OAAO,SAAS,CAAC,EAAE,IAAI,KACvD;AAAA,EAEF,gBAAgB,qBAAqB,SAAS,IAAI;AAAA,EAQlD,SAAS,IACN,MAAM,CAAC,IAAE,QAAQ,GAAG,mBAAmB,CAAC,EACxC,QAAQ,IAAI,EACZ,UAAU,CAAC,UACV,WAAU,KAAK,IAAI,EAAE,SAAS,OAAO,SAAS,KAAK,IAAI,KACzD;AAAA,EAQF,oBAAoB,IACjB,OACC,IAAE,OAAO,GACT,IAAE,OACA,CAAC,UAAsC,OAAO,UAAU,YACxD;AAAA,IACE,SAAS;AAAA,EACX,CACF,CACF,EACC,QAAQ,CAAC,CAAC;AAAA,EAEb,KAAK,gBAAgB,SAAS,CAAC,CAAC;AAAA,EAQhC,SAAS,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EASjC,QAAQ,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAQnC,YAAY,IACT,aAAa;AAAA,IACZ,MAAM,IAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC3C,CAAC,EACA,SAAS,CAAC,CAAC;AAAA,EAOd,QAAQ,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAClC,CAAC;AAQD,IAAM,qBAAqB,cAAc,UACvC,CAAC,UAAU,IAAI,IAAI,KAAK,EAAE,MAC5B;AASA,IAAM,kBAAkB,cAAc,UAAU,CAAC,UAAU;AAAA,EACzD,QAAQ,QAAQ,aAAa,IAAI,IAAI,KAAK;AAAA,EAC1C,OAAO,QAAQ,GAAG,SAAS,YAAY,GAAG;AAAA,CAC3C;AAED,IAAM,qBAAqB,IAAE,aAAa;AAAA,EAExC,KAAK,gBAAgB,SAAS;AAAA,EAC9B,QAAQ,IAAE,OAAO,EAAE,QAAQ,MAAM;AAAA,EAEjC,KAAK,IAAE,OAAO,EAAE,SAAS;AAAA,EAEzB,MAAM,mBAAmB,QAAQ,eAAe;AAAA,EAChD,OAAO,IAAE,OAAO;AAAA,EAChB,MAAM,IAAE,OAAO;AACjB,CAAC;AAUD,IAAM,gBAAgB,CAAQ,UAC5B,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAErE,IAAM,kBAAkB,IAAE,OAAkB,CAAC,UAAU;AAAA,EACrD,IAAI,UAAS,KAAK,GAAG;AAAA,IACnB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,CAAC,cAAc,KAAK,GAAG;AAAA,IACzB,OAAO;AAAA,EACT;AAAA,EAMA,MAAM,gBACJ,MAAM,aAAa,aAAa,MAAM,QAAQ,MAAM,QAAQ;AAAA,EAC9D,MAAM,mBACJ,MAAM,gBAAgB,aAAa,MAAM,QAAQ,MAAM,WAAW;AAAA,EACpE,MAAM,cAAc,MAAM,WAAW,aAAa,cAAc,MAAM,MAAM;AAAA,EAC5E,MAAM,aACJ,MAAM,aAAa,aACnB,MAAM,gBAAgB,aACtB,MAAM,WAAW;AAAA,EACnB,OAAO,iBAAiB,oBAAoB,eAAe;AAAA,GAC1D,oDAAoD;AAEvD,IAAM,uBAAuB,IAAE,aAAa;AAAA,EAC1C,MAAM,gBAAgB,QAAQ,aAAa;AAAA,EAC3C,OAAO,gBAAgB,QAAQ,cAAc;AAC/C,CAAC;AAmBD,IAAM,uBAAuB,IAC1B,MAAM;AAAA,EACL,IAAE,OAAO;AAAA,EACT,IAAE,aAAa;AAAA,IACb,KAAK,IAAE,OAAO,EAAE,SAAS;AAAA,IACzB,QAAQ,IAAE,OAAO,EAAE,QAAQ,UAAU;AAAA,EACvC,CAAC;AACH,CAAC,EACA,UAAU,CAAC,UACV,UAAS,KAAK,IAAI,EAAE,QAAQ,MAAM,IAAI,KACxC;AASF,IAAM,2BAA2B,IAAE,MACjC,CAAC,IAAE,QAAQ,KAAK,GAAG,IAAE,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC,GACjD;AAAA,EACE,OAAO,CAAC,UACN,MAAM,SAAS,kBACX,uHACA;AACR,CACF;AAWA,IAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAOA,IAAM,kBAAkB,CAAC,aAA8B;AAAA,EACrD,IAAI;AAAA,IACF,KAAK,eAAe,MAAM,EAAE,SAAS,CAAC;AAAA,IACtC,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAIX,IAAM,yBAAyB,IAC5B,aAAa;AAAA,EAEZ,UAAU,IAAE,OAAO,EAAE,SAAS;AAAA,EAE9B,WAAW,IAAE,KAAK,CAAC,QAAQ,QAAQ,UAAU,OAAO,CAAC,EAAE,SAAS;AAAA,EAEhE,KAAK,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC,EAAE,SAAS;AAAA,EAE7C,KAAK,IAAE,KAAK,CAAC,QAAQ,SAAS,QAAQ,CAAC,EAAE,SAAS;AAAA,EAElD,OAAO,IAAE,KAAK,CAAC,WAAW,WAAW,QAAQ,SAAS,QAAQ,CAAC,EAAE,SAAS;AAAA,EAE1E,iBAAiB,IAAE,OAAO,EAAE,SAAS;AAAA,EAErC,UAAU,IACP,OAAO,EACP,OAAO,iBAAiB;AAAA,IACvB,SACE;AAAA,EACJ,CAAC,EACA,SAAS;AAAA,EAEZ,SAAS,IAAE,KAAK,CAAC,QAAQ,SAAS,QAAQ,CAAC,EAAE,SAAS;AAAA,EAEtD,MAAM,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC,EAAE,SAAS;AAChD,CAAC,EACA,OACC,CAAC,UACC,MAAM,cAAc,aACnB,MAAM,YAAY,aACjB,MAAM,QAAQ,aACd,MAAM,SAAS,aACf,MAAM,UAAU,aAChB,MAAM,QAAQ,WAClB;AAAA,EACE,SACE;AACJ,CACF,EAIC,UAAU,CAAC,UACV,iBAAiB,KAAK,CAAC,UAAU,MAAM,WAAW,SAAS,IACvD,QACA,KAAK,OAAO,WAAW,OAAgB,CAC7C;AAGF,IAAM,mBAAmB,IAAE,aAAa;AAAA,EAKtC,OAAO,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAK/B,OAAO,qBAAqB,SAAS,CAAC,CAAC;AAAA,EAKvC,MAAM,IAAE,QAAQ,EAAE,QAAQ,KAAK;AACjC,CAAC;AAED,IAAM,uBAAuB;AAAA,EAE3B,MAAM,iBAAiB,SAAS,CAAC,CAAC;AAAA,EAQlC,eAAe,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAMxC,gBAAgB,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAKxC,WAAW,IAAE,QAAQ,EAAE,QAAQ,IAAI;AACrC;AAEA,IAAM,uBAAuB,IAAE,aAC7B,sBACA,gBAAgB;AAAA,EACd,YACE;AACJ,CAAC,CACH;AAGA,IAAM,oBAAoB,IAAE,aAAa;AAAA,EAOvC,UAAU,IAAE,QAAQ,EAAE,QAAQ,IAAI;AACpC,CAAC;AAcD,IAAM,0BAA0B,IAAE,aAAa;AAAA,EAC7C,QAAQ,sBAAsB,oBAAoB;AACpD,CAAC;AAQD,IAAM,kBAAkB,IACrB,MAAM;AAAA,EACL,IAAE,QAAQ;AAAA,EACV,IAAE,aAAa;AAAA,IACb,iBAAiB,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IACzD,iBAAiB,IAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC3D,CAAC;AACH,CAAC,EACA,QAAQ,IAAI,EACZ,UAAU,CAAC,UAAU;AAAA,EACpB,IAAI,WAAU,KAAK,GAAG;AAAA,IACpB,OAAO,EAAE,SAAS,OAAO,UAAU,GAAG,UAAU,EAAE;AAAA,EACpD;AAAA,EACA,OAAO;AAAA,IACL,SAAS;AAAA,IACT,UAAU,MAAM,mBAAmB;AAAA,IACnC,UAAU,MAAM,mBAAmB;AAAA,EACrC;AAAA,CACD,EAGA,OAAO,CAAC,UAAU,MAAM,YAAY,MAAM,UAAU;AAAA,EACnD,SACE;AACJ,CAAC;AAEI,IAAM,oBAAoB,IAC9B,aACC;AAAA,EACE,QAAQ,mBAAmB,SAAS,CAAC,CAAC;AAAA,EACtC,IAAI,eAAe,SAAS,CAAC,CAAC;AAAA,EAE9B,WAAW;AAAA,EACX,KAAK,gBAAgB,SAAS,CAAC,CAAC;AAAA,EAChC,QAAQ,mBAAmB,SAAS;AAAA,EAOpC,UAAU,IACP,OAAO,EAGP,OAAO,CAAC,UAAU,CAAC,WAAW,KAAK,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,GAAG;AAAA,IAClE,SACE;AAAA,EACJ,CAAC,EACA,SAAS,EACT,UAAU,CAAC,UAAU,kBAAkB,KAAK,CAAC;AAAA,EAChD,WAAW,sBAAsB,SAAS;AAAA,EAE1C,SAAS;AAAA,EACT,SAAS,oBAAoB,SAAS,CAAC,CAAC;AAAA,EAKxC,YAAY,uBAAuB,QAAQ,EAAE,WAAW,OAAO,CAAC;AAAA,EAOhE,YAAY,yBAAyB,SAAS,CAAC,CAAC;AAAA,EAChD,aAAa,IAAE,OAAO,EAAE,SAAS;AAAA,EAQjC,UAAU,qBAAqB,SAAS,UAAU;AAAA,EAClD,QAAQ,mBAAmB,SAAS,KAAK;AAAA,EACzC,UAAU,qBAAqB,SAAS,IAAI;AAAA,EAC5C,QAAQ,mBAAmB,SAAS;AAAA,EAEpC,aAAa,wBAAwB,SAAS,CAAC,CAAC;AAAA,EAChD,QAAQ,mBAAmB,SAAS;AAAA,EACpC,MAAM,iBAAiB,SAAS;AAAA,EAChC,OAAO,kBAAkB,SAAS,CAAC,CAAC;AAAA,EACpC,cAAc,IAAE,MAAM,IAAE,OAAyB,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC9D,cAAc,yBAAyB,QAAQ,KAAK;AAAA,EACpD,MAAM,iBAAiB,SAAS;AAAA,EAChC,UAAU,qBAAqB,SAAS,CAAC,CAAC;AAAA,EAC1C,WAAW,sBAAsB,SAAS,KAAK;AAAA,EAC/C,YAAY,uBAAuB,SAAS,CAAC,CAAC;AAAA,EAC9C,WAAW,IAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAEnC,WAAW;AAAA,EACX,OAAO,kBAAkB,SAAS,CAAC,CAAC;AAAA,EACpC,WAAW,IAAE,MAAM,cAAc,EAAE,QAAQ,CAAC,CAAC;AAAA,EAE7C,WAAW;AAAA,EACX,QAAQ,mBAAmB,SAAS,CAAC,CAAC;AAAA,EACtC,KAAK,gBAAgB,SAAS,CAAC,CAAC;AAAA,EAChC,OAAO,kBAAkB,SAAS,CAAC,CAAC;AAAA,EACpC,OAAO,IAAE,OAAO,EAAE,QAAQ,eAAe;AAAA,EACzC,KAAK;AAAA,EAOL,WAAW,IACR,OACC,IAAE,OAAO,EAAE,MAAM,eAAe;AAAA,IAC9B,SACE;AAAA,EACJ,CAAC,GACD,IAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,KAAK,KAAK,GAAG;AAAA,IACnD,SAAS;AAAA,EACX,CAAC,CACH,EACC,QAAQ,CAAC,CAAC;AAAA,EACb,UAAU,qBAAqB,SAAS;AAC1C,GACA;AAAA,EAGE,OAAO,CAAC,UACN,MAAM,SAAS,sBACX,yBAAyB,MAAM,IAAI,IACnC;AACR,CACF,EACC,YAAY,CAAC,QAAQ,QAAQ;AAAA,EAI5B,IAAI,OAAO,YAAY,OAAO,MAAM;AAAA,IAClC,MAAM,cAAc,IAAI,IACtB,OAAO,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,KAAK,YAAY,CAAC,CAC/D;AAAA,IACA,YAAY,UAAU,YAAY,OAAO,SAAS,SAAS,QAAQ,GAAG;AAAA,MACpE,IAAI,YAAY,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG;AAAA,QAC7C,IAAI,SAAS;AAAA,UACX,MAAM,IAAE,aAAa;AAAA,UACrB,SAAS,eAAe,QAAQ,qEAAqE,QAAQ;AAAA,UAC7G,MAAM,CAAC,YAAY,YAAY,UAAU,IAAI;AAAA,QAC/C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAAA,EAIA,YAAY,UAAU,eAAe,OAAO,QAAQ,OAAO,QAAQ,KAAK,GAAG;AAAA,IACzE,WAAW,OAAO,OAAO,KAAK,WAAW,WAAW,GAAG;AAAA,MACrD,IAAI,OAAO,OAAO,OAAO,YAAY,QAAQ,GAAG,GAAG;AAAA,QACjD,IAAI,SAAS;AAAA,UACX,MAAM,IAAE,aAAa;AAAA,UACrB,SAAS,IAAI,qFAAqF;AAAA,UAClG,MAAM,CAAC,WAAW,SAAS,UAAU,eAAe,GAAG;AAAA,QACzD,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IAIA,YAAY,UAAU,UAAU,WAAW,OAAO,QAAQ,GAAG;AAAA,MAC3D,IACE,EACE,OAAO,OAAO,WAAW,aAAa,KAAK,KAC3C,OAAO,OAAO,OAAO,YAAY,QAAQ,KAAK,IAEhD;AAAA,QACA,IAAI,SAAS;AAAA,UACX,MAAM,IAAE,aAAa;AAAA,UACrB,SAAS,UAAU,oBAAoB;AAAA,UACvC,MAAM,CAAC,WAAW,SAAS,UAAU,UAAU,QAAQ;AAAA,QACzD,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAAA,EAGA,IACE,OAAO,WAAW,SAAS,gBAC3B,OAAO,WAAW,SAAS,cAC3B;AAAA,IACA,IAAI,SAAS;AAAA,MACX,MAAM,IAAE,aAAa;AAAA,MACrB,SACE;AAAA,MACF,MAAM,CAAC,WAAW;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,CACD;;;A4E50EI,IAAM,eAAe;AAmDrB,IAAM,gBAAgB,CAC3B,OACA,aACoB;AAAA,EACpB,OAAO,SAAS;AAAA,EAChB,IAAI,SAAS,SAAS,SAAS,KAAK,CAAC,YAAY,QAAQ,OAAO,KAAK,GAAG;AAAA,IACtE,OAAO,EAAE,MAAM,MAAM,MAAM,CAAC,GAAG,SAAS,MAAM;AAAA,EAChD;AAAA,EACA,OAAO,EAAE,MAAM,OAAO,SAAS,GAAG;AAAA;AAQ7B,IAAM,mBAAmB,CAC9B,KACA,aACuB;AAAA,EACvB,QAAQ,SAAS,SAAS,cAAc,IAAI,MAAM,GAAG,GAAG,QAAQ;AAAA,EAChE,OAAO,EAAE,MAAM,KAAK,KAAK,GAAG,GAAG,QAAQ;AAAA;AAQlC,IAAM,kBAAkB,CAC7B,cACA,YACW;AAAA,EACX,IAAI,CAAC,SAAS;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,OAAO,iBAAiB,MAAM,IAAI,YAAY,IAAI,UAAU;AAAA;AA0BvD,IAAM,sBAAsB,CACjC,OACA,aACiB;AAAA,EAKjB,MAAM,aAAa,IAAI,IAAI,SAAS,SAAS,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;AAAA,EACzE,MAAM,OAAO,IAAI;AAAA,EACjB,MAAM,cAA4B,CAAC;AAAA,EACnC,WAAW,QAAQ,OAAO;AAAA,IAKxB,OAAO,UAAU,QAAQ,KAAK,OAAO,IAAI,MAAM,GAAG;AAAA,IAClD,IACE,SACA,KAAK,SAAS,KACd,CAAC,KAAK,IAAI,KAAK,KACf,aAAa,KAAK,KAAK,KACvB,CAAC,WAAW,IAAI,KAAK,GACrB;AAAA,MACA,KAAK,IAAI,KAAK;AAAA,MACd,YAAY,KAAK;AAAA,QACf,MAAM;AAAA,QACN,SAAS,WAAW,sCAAsC,6FAA6F;AAAA,QACvJ,UAAU;AAAA,QACV,YAAY,cAAc;AAAA,MAC5B,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;;;ArF/HT,IAAM,gBAAe;AACrB,IAAM,cAAa;AAGnB,IAAM,qBAAqB,CAAC,YAC1B,oBAAoB,OAAO;AAG7B,IAAM,aAAa,CAAC,YAClB,QAAQ,MAAM,aAAY,GAAG,QAAQ,SAAS;AAOhD,IAAM,oBAAoB,CAAC,YACzB,WAAW,OAAO,KAAK,WAAW,mBAAmB,OAAO,CAAC;AAcxD,IAAM,UAAU,CAAC,SACtB,KACG,UAAU,KAAK,EACf,YAAY,EACZ,KAAK,EACL,WAAW,4BAA4B,EAAE,EACzC,WAAW,YAAY,GAAG,EAC1B,WAAW,QAAQ,GAAG,EACtB,WAAW,WAAW,EAAE;AAQtB,IAAM,cAAc,CAAC,SAC1B,KAAK,MAAM,GAAG,EAAE,IAAI,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAGvD,IAAM,YAAY,CAAC,UACjB,MAAM,MAAM,WAAU,EAAE,OAAO,OAAO,EAAE,IAAI,SAAS,EAAE,KAAK,GAAG;AAkBjE,IAAM,kBAAkB,CAAC,YACvB,QAAQ,WAAW,kBAAkB,EAAE;AAKzC,IAAM,kBAAkB;AAUjB,IAAM,2BAA2B,CACtC,MACA,SAEA,gBAAgB,KAAK,IAAI,IACrB;AAAA,EACE,MAAM;AAAA,EACN;AAAA,EACA,SAAS,IAAI;AAAA,EACb,UAAU;AAAA,EACV,YACE;AACJ,IACA;AAWC,IAAM,4BAA4B,CACvC,OACA,UACgB;AAAA,EAChB,MAAM;AAAA,EACN,QAAQ,MAAM,OAAO,MAAM,KAAK,SAAS,IAAI;AAAA,EAC7C;AAAA,EACA,MAAM,MAAM,OAAO,MAAM,KAAK,OAAO,IAAI;AAAA,EACzC,SAAS,kCAAkC,MAAM;AAAA,EACjD,UAAU;AAAA,EACV,YACE;AACJ;AAOA,IAAM,YAAY,CAAC,MAAc,YAC9B,SAAS,gBAAgB,IAAI,IAAI,cAAc,mBAAmB,IAAI;AAMzE,IAAM,kBAAkB,CACtB,MACA,UACA,QACA,SACA,WACS;AAAA,EAGT,IAAI,SAAS,IAAI;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,UAAU,kBAAkB,IAAI,IAAI,WAAW,IAAI;AAAA,EACjE,IAAI,UAAU,MAAM;AAAA,IAClB,OAAO,KAAK,KAAK;AAAA,IACjB;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,UAAU,UAAU,MAAM,MAAM,IAAI;AAAA,EAClD,IAAI,UAAU,SAAS;AAAA,IACrB;AAAA,EACF;AAAA,EACA,MAAM,OAAO,gBAAgB,KAAK;AAAA,EAElC,IAAI,SAAS,IAAI;AAAA,IACf;AAAA,EACF;AAAA,EACA,SAAS,KAAK,IAAI;AAAA;AAmBpB,IAAM,WAAW,CACf,QACA,cACA,SACA,SAAS,UACO;AAAA,EAChB,MAAM,aAAa,aAAa,MAC9B,GACA,aAAa,SAAS,SAAQ,YAAY,EAAE,MAC9C;AAAA,EAEA,MAAM,WAAqB,CAAC;AAAA,EAC5B,MAAM,SAAmB,CAAC;AAAA,EAE1B,WAAW,QAAQ,SAAS,OAAO,MAAM,GAAG,IAAI,CAAC,GAAG;AAAA,IAClD,gBAAgB,MAAM,UAAU,QAAQ,OAAO,KAAK;AAAA,EACtD;AAAA,EACA,WAAW,QAAQ,WAAW,MAAM,GAAG,GAAG;AAAA,IACxC,gBAAgB,MAAM,UAAU,QAAQ,SAAS,MAAM;AAAA,EACzD;AAAA,EAEA,MAAM,QAAQ,SAAS,WAAW,IAAI,MAAM,IAAI,SAAS,KAAK,GAAG;AAAA,EACjE,OAAO,EAAE,QAAQ,OAAO,SAAS;AAAA;AAMnC,IAAM,cAAc;AAIpB,IAAM,mBAAmB;AAKzB,IAAM,sBAAsB;AAC5B,IAAM,iBACJ;AAYF,IAAM,cAAc;AAGpB,IAAM,eAAe;AAWrB,IAAM,oBACJ;AAIK,IAAM,YAAY,OAAO;AAChC,IAAM,aAAa,IAAI,OAAO,WAAW,IAAI;AAO7C,IAAM,yBAAyB,IAAI,OACjC,OAAO,iCAAiC,qBAAqB,2DAC7D,GACF;AAkBO,IAAM,sBAAsB,CACjC,SACoC;AAAA,EACpC,MAAM,OAAO,kBAAkB,KAAK,IAAI;AAAA,EACxC,IAAI,MAAM,QAAQ,OAAO,aAAa,KAAK,OAAO,WAAW,WAAW;AAAA,IACtE,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,IAAI,KAAK,OAAO;AAAA,MAChB,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK,OAAO;AAAA,IACtB;AAAA,EACF;AAAA,EACA,MAAM,OAAO,uBAAuB,KAAK,IAAI;AAAA,EAC7C,MAAM,SAAS,MAAM,QAAQ,UAAU;AAAA,EACvC,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,UAAU,CAAC,EACvC,KAAK,EAAE,eAAe,UAAU,WAAW,GAAG,CAAC,IAAI,GACnD,MAAM,CAAC;AAAA,EACV,OAAO,QAAQ,OAAO,YAClB,EAAE,YAAY,MAAM,IAAI,OAAO,KAAK,OAAO,OAAO,IAClD;AAAA;AAgBN,IAAM,UACJ;AAKF,IAAM,cACJ;AAIK,IAAM,eAAe;AACrB,IAAM,cAAc;AAkD3B,IAAM,kBAAkB,CACtB,MACA,OACA,UACS;AAAA,EACT,MAAM,MAAM,KAAK,QAAQ,KAAK,KAAK;AAAA,EACnC,IAAI,QAAQ,IAAI;AAAA,IACd,MAAM,YAAY;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAM,YAAY;AAAA,EAClB,IAAI,KAAK,MAAM,OAAO,OAAO,KAAK,SAAS,aAAa,GAAG,GAAG;AAAA,IAC5D;AAAA,EACF;AAAA,EACA,MAAM,eAAe;AAAA;AAsBvB,IAAM,mBAAmB;AAAA,KACpB;AAAA,EACH,aAAa;AAAA,EACb,KAAK;AACP;AACA,IAAM,gBAAgB;AAAA,EACpB,UAAU,KAAK,kBAAkB,kBAAkB,KAAK;AAC1D;AACA,IAAM,qBAAqB;AAAA,EACzB,UAAU,KAAK,kBAAkB,kBAAkB,MAAM;AAC3D;AAOA,IAAM,gBAAgB;AAEtB,IAAM,oBAAoB;AAa1B,IAAM,iBACJ;AAGF,IAAM,WAAW,CAAC,UAChB,MAAM,KAAK,EAAE,WAAW,SAAS,GAAG,EAAE,YAAY;AAmBpD,IAAM,sBAAsB,CAAC,UAA0C;AAAA,EACrE,MAAM,SAAS,IAAI;AAAA,EACnB,IAAI,QAAoB;AAAA,EACxB,YAAY,OAAO,SAAS,MAAM,QAAQ,GAAG;AAAA,IAC3C,MAAM,OAAO,eAAe,MAAM,KAAK;AAAA,IACvC,IAAI,UAAU,QAAQ,SAAS,MAAM;AAAA,MACnC,QAAQ;AAAA,MACR;AAAA,IACF;AAAA,IACA,MAAM,SAAS,KAAK,MAAM,cAAc,GAAG;AAAA,IAC3C,IAAI,QAAQ,UAAU,aAAa,OAAO,MAAM,KAAK,MAAM,IAAI;AAAA,MAC7D;AAAA,IACF;AAAA,IACA,MAAM,cAAc,OAAO,QAAQ;AAAA,IACnC,IAAI,gBAAgB,OAAO,MAAM,QAAQ,MAAM,IAAI,KAAK,MAAM,IAAI;AAAA,MAChE;AAAA,IACF;AAAA,IACA,OAAO,IAAI,SAAS,OAAO,KAAK,CAAC;AAAA,EACnC;AAAA,EACA,OAAO;AAAA;AAUT,IAAM,iBAAiB,CAAC,KAAa,WAAwC;AAAA,EAC3E,IAAI,CAAC,IAAI,SAAS,GAAG,GAAG;AAAA,IACtB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,IAAI,WAAW,SAAS,GAAG,EAAE,YAAY;AAAA,EACxD,IAAI,cAAc;AAAA,EAClB,WAAW,SAAS,QAAQ;AAAA,IAC1B,IAAI,OAAO,SAAS,KAAK,GAAG;AAAA,MAC1B,eAAe;AAAA;AAAA,GAAQ;AAAA,IACzB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAUT,IAAM,kBAAkB,CAAC,SAAsC;AAAA,EAC7D,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAQ,CAAC,UAAkC;AAAA,IAC/C,WAAW,QAAQ,OAAO;AAAA,MACxB,IAAI,KAAK,SAAS,qBAAqB;AAAA,QACrC,IAAI,CAAC,QAAQ,IAAI,KAAK,UAAU,GAAG;AAAA,UACjC,QAAQ,IAAI,KAAK,YAAY,QAAQ,OAAO,CAAC;AAAA,QAC/C;AAAA,MACF,EAAO,SAAI,KAAK,SAAS,wBAAwB,cAAc,MAAM;AAAA,QACnE,MAAM,KAAK,QAAQ;AAAA,MACrB;AAAA,IACF;AAAA;AAAA,EAEF,MAAM,OAAO,iBAAgB,MAAM,aAAa;AAAA,EAChD,MAAM,cAAc,OAAO,KAAK,WAAW,CAAC,CAAC;AAAA,EAC7C,OAAO;AAAA;AAqBT,IAAM,aAAa,CAAC,OAAyB,YAC3C,MACG,IAAI,CAAC,SAAS;AAAA,EACb,IACE,KAAK,SAAS,UACd,KAAK,SAAS,WACd,KAAK,SAAS,kBACd;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,KAAK,SAAS,SAAS;AAAA,IACzB,OAAO;AAAA;AAAA,EACT;AAAA,EACA,IAAI,KAAK,SAAS,qBAAqB;AAAA,IAGrC,MAAM,SAAS,QAAQ,UAAU,EAAE,IAAI,KAAK,UAAU;AAAA,IACtD,OAAO,WAAW,YACd,KAAK,KAAK,SAAS,KAAK,gBACxB,OAAO,MAAM;AAAA,EACnB;AAAA,EACA,IAAI,cAAc,MAAM;AAAA,IACtB,OAAO,WAAW,KAAK,UAAU,OAAO;AAAA,EAC1C;AAAA,EACA,OAAO,WAAW,OAAO,KAAK,QAAQ;AAAA,CACvC,EACA,KAAK,EAAE;AAUZ,IAAM,gBAAgB,CAAC,SACrB,MAAM,SAAS,UAAU,cAAc,KAAK,KAAK,EAAE,SAAS;AAU9D,IAAM,iBAAiB,CACrB,UACA,YACmB;AAAA,EACnB,MAAM,SAA4B,CAAC;AAAA,EACnC,IAAI;AAAA,EACJ,IAAI,OAAO;AAAA,EACX,IAAI,SAAS;AAAA,EACb,IAAI,aAAa;AAAA,EACjB,IAAI,eAAe;AAAA,EACnB,YAAY,OAAO,UAAU,SAAS,QAAQ,GAAG;AAAA,IAC/C,IAAI,cAAc;AAAA,MAChB,eAAe;AAAA,MACf;AAAA,IACF;AAAA,IACA,MAAM,MAAM,MAAM,SAAS,SAAS,cAAc,MAAM,KAAK,IAAI;AAAA,IACjE,IACE,KAAK,SAAS,kBACb,IAAI,eAAe,cAAc,SAAS,QAAQ,EAAE,IACrD;AAAA,MACA,WAAW,IAAI;AAAA,MACf,eAAe,CAAC,IAAI;AAAA,MACpB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,IACR,IAAI,KAAK,SAAS,SAAS;AAAA,MACzB,SAAS;AAAA,MACT,OAAO,KAAK,IAAI;AAAA,MAChB,IAAI,CAAC,IAAI,aAAa;AAAA,QACpB,aAAa,KAAK,IAAI,GAAG,cAAc,IAAI,UAAU,KAAK,EAAE;AAAA,MAC9D;AAAA,IACF,EAAO,SAAI,eAAe,GAAG;AAAA,MAC3B,OAAO,KAAK,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC;AAAA,IAC1C;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,SAAS,IAAI,YAAY;AAAA,IACjC,MAAM,SAAS,gBAAgB,MAAM,IAAI,OAAO,KAAK,EAAE;AAAA,EACzD;AAAA;AAgBF,IAAM,eAAe,CAAC,QAAiC;AAAA,EACrD,MAAM,UAAU,oBAAoB,GAAG;AAAA,EAEvC,OAAO,QAAQ,SAAS,KACpB,EAAE,MAAM,IAAI,IACZ,EAAE,IAAI,QAAQ,IAAI,MAAM,QAAQ,MAAM,KAAK,QAAQ,IAAI;AAAA;AAc7D,IAAM,gBAAgB,CACpB,KACA,MACA,SACA,UACoB;AAAA,EACpB,IAAI,CAAC,cAAc,KAAK,GAAG,GAAG;AAAA,IAC5B,OAAO,aAAa,GAAG;AAAA,EACzB;AAAA,EACA,MAAM,SAAS,SAAS,QAAQ,KAAK,QAAQ,GAAG;AAAA;AAAA,EAChD,MAAM,OAAO,iBACX,gBACE,GAAG,SAAS,eAAe,KAAK,QAAQ,MAAM,KAC9C,UACF,GACA,KACF;AAAA,EACA,MAAM,UAAU,cAAc,OAAO,KAAK,SAAS,GAAG,CAAC,IAAI;AAAA,EAI3D,IAAI,SAAS,SAAS,WAAW;AAAA,IAC/B,OAAO,aAAa,GAAG;AAAA,EACzB;AAAA,EACA,QAAQ,aAAa;AAAA,EACrB,QAAQ,QAAQ,SAAS,eAAe,UAAU,OAAO;AAAA,EACzD,MAAM,OAAO,SAAS,GAAG,EAAE;AAAA,EAC3B,IAAI,MAAM,SAAS,QAAQ;AAAA,IACzB,OAAO,EAAE,IAAI,QAAQ,KAAK;AAAA,EAC5B;AAAA,EACA,MAAM,UAAU,oBAAoB,KAAK,KAAK;AAAA,EAC9C,MAAM,WAAW,KAAK,MAAM,SAAS,QAAQ,KAAK;AAAA,EAClD,IAAI,aAAa,KAAM,QAAQ,SAAS,MAAM,SAAS,WAAW,GAAI;AAAA,IACpE,OAAO,EAAE,IAAI,QAAQ,KAAK;AAAA,EAC5B;AAAA,EACA,OAAO;AAAA,IACL,IAAI,QAAQ,MAAM;AAAA,IAClB,MAAM,KAAK,MAAM,GAAG,KAAK,SAAS,QAAQ;AAAA,IAC1C,KAAK,QAAQ;AAAA,EACf;AAAA;AAyBF,IAAM,YAAY,CAChB,OACA,KACA,MACA,SACA,YACmB;AAAA,EACnB,MAAM,WAAW,cAAc,KAAK,MAAM,SAAS,aAAa;AAAA,EAChE,MAAM,UAAU,kBAAkB,KAAK,GAAG,IACtC,cAAc,KAAK,MAAM,SAAS,kBAAkB,EAAE,OACtD,SAAS;AAAA,EACb,MAAM,OAAO,QAAQ,WAAW,kBAAkB,GAAG,EAAE,KAAK;AAAA,EAC5D,IAAI,SAAS,OAAO,WAAW;AAAA,IAC7B,WAAW,SAAS,SAAS,EAAE;AAAA,IAC/B,OAAO,EAAE,SAAS,EAAE,OAAO,MAAM,SAAS,IAAI,KAAK,GAAG,QAAQ,KAAK;AAAA,EACrE;AAAA,EACA,OAAO;AAAA,IACL,SAAS,EAAE,OAAO,MAAM,YAAY,SAAS,SAAS,IAAI,GAAG,KAAK;AAAA,IAClE,QAAQ;AAAA,EACV;AAAA;AAIF,IAAM,cAAc,CAClB,UACA,OACA,SACA,SACS;AAAA,EACT,SAAS,KAAK,QAAQ,OAAO;AAAA,EAC7B,MAAM,MAAM,KAAK,EAAE,MAAM,QAAQ,QAAQ,OAAO,CAAC;AAAA;AAInD,IAAM,kBAAkB,CACtB,MACA,MACA,UACS;AAAA,EACT,MAAM,QAAQ,oBAAoB,IAAI;AAAA,EACtC,IAAI,OAAO;AAAA,IACT,QAAQ,YAAY,IAAI,WAAW;AAAA,IACnC,MAAM,aAAa,KAAK,EAAE,YAAY,IAAI,MAAM,OAAO,CAAC;AAAA,EAC1D;AAAA;AAIF,IAAM,kBAAkB,CACtB,MACA,OACA,SACA,UACA,YACS;AAAA,EAET,MAAM,YAAY,KAAK,KAAK,WAAW,aAAa,EAAE,CAAC;AAAA,EACvD,MAAM,MAAM,KAAK,MAAM,WAAW;AAAA,EAClC,IAAI,KAAK,QAAQ;AAAA,IACf,MAAM,QAAQ,IAAI,OAAO,QAAQ,UAAU;AAAA,IAC3C,MAAM,QAAQ,IAAI,OAAO,QAAQ,IAAI,KAAK;AAAA,IAC1C,YACE,UACA,OACA,UAAU,OAAO,MAAM,OAAO,SAAS,OAAO,GAC9C,MAAM,IACR;AAAA,IACA,gBAAgB,MAAM,MAAM,MAAM,KAAK;AAAA,IACvC,MAAM,YAAY,CAAC;AAAA,IACnB;AAAA,EACF;AAAA,EACA,MAAM,SAAS,KAAK,MAAM,gBAAgB;AAAA,EAC1C,IAAI,QAAQ,UAAU,MAAM,UAAU,SAAS,GAAG;AAAA,IAKhD,MAAM,QAAQ,OAAO,OAAO,QAAQ,WAAW,GAAG,IAAI,IAAI;AAAA,IAC1D,MAAM,OAAO,MAAM,UAAU,KAAK;AAAA,CAAI;AAAA,IAGtC,YACE,UACA,OACA,UAAU,OAAO,MAAM,UAAU,SAAS,OAAO,GACjD,MAAM,OAAO,CACf;AAAA,IACA,gBAAgB,MAAM,MAAM,gBAAgB,KAAK;AAAA,IACjD,MAAM,YAAY,CAAC;AAAA,IACnB;AAAA,EACF;AAAA,EACA,IACE,KAAK,KAAK,MAAM,MAChB,eAAe,KAAK,IAAI,KACxB,oBAAoB,KAAK,IAAI,GAC7B;AAAA,IACA,MAAM,YAAY,CAAC;AAAA,IACnB;AAAA,EACF;AAAA,EACA,IAAI,MAAM,UAAU,WAAW,GAAG;AAAA,IAChC,MAAM,iBAAiB,MAAM;AAAA,EAC/B;AAAA,EACA,MAAM,UAAU,KAAK,KAAK,KAAK,CAAC;AAAA;AAOlC,IAAM,oBAAoB;AAC1B,IAAM,mBAAmB;AACzB,IAAM,oBAAoB;AAW1B,IAAM,kBAAkB,CAAC,MAAc,UAAqC;AAAA,EAC1E,IAAI,MAAM,YAAY,QAAQ;AAAA,IAC5B,IAAI,KAAK,SAAS,KAAK,GAAG;AAAA,MACxB,MAAM,UAAU;AAAA,IAClB;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,MAAM,YAAY,OAAO;AAAA,IAC3B,IAAI,kBAAkB,KAAK,IAAI,GAAG;AAAA,MAChC,MAAM,UAAU;AAAA,IAClB;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,kBAAkB,KAAK,IAAI,KAAK,CAAC,KAAK,SAAS,KAAK,GAAG;AAAA,IACzD,MAAM,UAAU;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,MAAM,iBAAiB,KAAK,IAAI;AAAA,EACtC,IAAI,OAAO,CAAC,kBAAkB,KAAK,KAAK,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG;AAAA,IAC7D,MAAM,UAAU;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,kBAAkB,CACtB,MACA,OACA,SACA,UACA,YACS;AAAA,EAGT,IACE,MAAM,UAAU,QAChB,MAAM,gBAAgB,KACtB,CAAC,MAAM,aACP,gBAAgB,MAAM,KAAK,GAC3B;AAAA,IACA,MAAM,YAAY,KAAK,KAAK,WAAW,aAAa,EAAE,CAAC;AAAA,IACvD,MAAM,YAAY,CAAC;AAAA,IACnB;AAAA,EACF;AAAA,EACA,MAAM,OAAO,eAAe,MAAM,MAAM,KAAK;AAAA,EAG7C,IAAI,MAAM,UAAU,QAAQ,SAAS,MAAM;AAAA,IACzC,MAAM,QAAQ;AAAA,IACd,MAAM,YAAY,CAAC;AAAA,IACnB;AAAA,EACF;AAAA,EAKA,MAAM,UAAU,KAAK,UAAU;AAAA,EAC/B,IAAI,MAAM,WAAW;AAAA,IACnB,gBAAgB,SAAS,GAAG,KAAK;AAAA,IACjC,MAAM,YAAY,CAAC;AAAA,IACnB;AAAA,EACF;AAAA,EACA,IAAI,YAAY,KAAK,OAAO,GAAG;AAAA,IAC7B,gBAAgB,SAAS,UAAU,QAAQ,KAAK;AAAA,IAChD,MAAM,YAAY,CAAC;AAAA,IACnB;AAAA,EACF;AAAA,EACA,IAAI,MAAM,cAAc,GAAG;AAAA,IACzB,IAAI,aAAa,KAAK,IAAI,GAAG;AAAA,MAC3B,MAAM,eAAe;AAAA,IACvB;AAAA,IACA,MAAM,YAAY,CAAC;AAAA,IACnB;AAAA,EACF;AAAA,EACA,gBAAgB,MAAM,OAAO,SAAS,UAAU,OAAO;AAAA;AAmClD,IAAM,WAAW,CAAC,SAA2B;AAAA,EAClD,MAAM,WAAsB,CAAC;AAAA,EAC7B,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAA0B;AAAA,IAC9B,aAAa,CAAC;AAAA,IACd,SAAS;AAAA,IACT,cAAc,CAAC;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,IACN,WAAW,CAAC;AAAA,IACZ,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO,CAAC;AAAA,EACV;AAAA,EAEA,MAAM,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,EAC7B,IAAI;AAAA,EACJ,MAAM,UAA0B;AAAA,IAC9B,WAAW,MAAM;AAAA,MACf,cAAc,gBAAgB,MAAM,KAAK;AAAA,CAAI,CAAC;AAAA,MAC9C,OAAO;AAAA;AAAA,IAET,QAAQ,oBAAoB,KAAK;AAAA,EACnC;AAAA,EACA,YAAY,OAAO,SAAS,MAAM,QAAQ,GAAG;AAAA,IAC3C,MAAM,OAAO,QAAQ;AAAA,IACrB,gBAAgB,MAAM,OAAO,SAAS,UAAU,OAAO;AAAA,EACzD;AAAA,EAEA,MAAM,UAAU,IAAI;AAAA,EAIpB,MAAM,SAAS,MAAM,YAAY,KAAK;AAAA,CAAI,EAAE,WAAW,cAAc,GAAG;AAAA,EACxE,WAAW,SAAS;AAAA,IAClB,GAAG,OAAO,SAAS,OAAO;AAAA,IAC1B,GAAG,OAAO,SAAS,WAAW;AAAA,EAChC,EAAE,SAAS,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG;AAAA,IACvC,MAAM,KAAK,MAAM,QAAQ,UAAU,MAAM,QAAQ,OAAO,MAAM,QAAQ;AAAA,IACtE,IAAI,OAAO,WAAW;AAAA,MACpB,QAAQ,IAAI,EAAE;AAAA,IAChB;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,SAAS,CAAC,GAAG,OAAO;AAAA,IACpB,cAAc,MAAM;AAAA,IACpB;AAAA,IACA,OAAO,MAAM;AAAA,EACf;AAAA;AAGK,IAAM,kBAAkB,CAAC,SAC9B,SAAS,IAAI,EAAE;AAIjB,IAAM,UAAU;AAKhB,IAAM,mBAAmB,OAAO;AAMhC,IAAM,cAAc,OAAO,2EAA2E,yBAAyB;AAG/H,IAAM,mBAAmB,IAAI,OAC3B,OAAO,eAAe,yBAAyB,2BAC/C,GACF;AAIA,IAAM,SAAQ,OAAO;AAKrB,IAAM,mBAAmB,OAAO,wBAAwB,iCAAiC;AAOzF,IAAM,UAAU,IAAI,OAClB,OAAO,0CAA0C,oBACjD,KACF;AAGA,IAAM,cAAc,IAAI,OACtB,OAAO,iBAAiB,oBACxB,KACF;AAIA,IAAM,WAAW,IAAI,OACnB,OAAO,iCAAiC,oBACxC,KACF;AAGA,IAAM,cAAc,CAAC,WAClB,MAAM,SAAS,QAAQ,SAAS,MAAM,MAAM,SAAS,MAAM,MAAM,SAAS;AAgB7E,IAAM,kBAAkB,CAAC,YAAqC;AAAA,EAC5D,MAAM,SAAS,QAAQ,WAAW,GAAG;AAAA,EACrC,MAAM,SAAS,SAAS,QAAQ,MAAM,GAAG,EAAE,IAAI;AAAA,EAC/C,OAAO,EAAE,QAAQ,QAAQ,QAAQ,OAAO,WAAW,SAAS,SAAS,EAAE;AAAA;AASzE,IAAM,mBAAmB,CAAC,QAAgB,WAA4B;AAAA,EACpE,IAAI,CAAC,UAAU,iBAAiB,KAAK,MAAM,KAAK,CAAC,OAAO,SAAS,IAAI,GAAG;AAAA,IACtE,OAAO;AAAA,EACT;AAAA,EACA,IAAI,EAAE,UAAU,UAAU,KAAK,MAAM,IAAI;AAAA,IACvC,OAAO,OAAO,WAAW,YAAY,OAAO,QAAQ;AAAA,EACtD;AAAA,EACA,OAAO,IAAI,OAAO,WAAW,YAAY,OAAO,QAAQ;AAAA;AAWnD,IAAM,sBAAsB,CACjC,MACA,YACW;AAAA,EACX,MAAM,SAAS,KAAK,WAAW,aAAa,CAAC,SAC3C,IAAI,OAAO,KAAK,MAAM,CACxB;AAAA,EACA,IAAI,MAAM;AAAA,EACV,IAAI,SAAS;AAAA,EACb,WAAW,SAAS,OAAO,SAAS,QAAQ,GAAG;AAAA,IAC7C,MAAM,UAAU,MAAM,QAAQ,UAAU;AAAA,IACxC,QAAQ,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IAClD,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC3B,IAAI,SAAS,MAAM;AAAA,MACjB;AAAA,IACF;AAAA,IACA,MAAM,KAAK,MAAM,QAAQ,YAAY,KAAK;AAAA,IAC1C,OAAO,KAAK,MAAM,QAAQ,EAAE,IAAI,iBAAiB,MAAM,MAAM;AAAA,IAC7D,SAAS,KAAK,QAAQ;AAAA,EACxB;AAAA,EACA,OAAO,MAAM,KAAK,MAAM,MAAM;AAAA;AAShC,IAAM,kBAAkB,CACtB,SACA,OACyB;AAAA,EACzB,QAAQ,QAAQ,QAAQ,WAAW,gBAAgB,OAAO;AAAA,EAC1D,IAAI,WAAW,IAAI;AAAA,IACjB;AAAA,EACF;AAAA,EACA,MAAM,OAAiB;AAAA,IACrB,QAAQ,GAAG,UAAU,SAAS,IAAI;AAAA,IAClC,MAAM,GAAG;AAAA,IACT;AAAA,EACF;AAAA,EACA,IAAI,OAAO,WAAW,OAAO,QAAQ;AAAA,IACnC,KAAK,eAAe,OAAO;AAAA,EAC7B;AAAA,EACA,OAAO;AAAA;AAOT,IAAM,yBAAyB,IAAI,OACjC,OAAO,UAAU,wBACjB,GACF;AAGA,IAAM,kBAAkB,IAAI,OAC1B,OAAO,UAAU,2BAA2B,oBAC5C,GACF;AAMA,IAAM,WAAW;AAWjB,IAAM,iBAAiB,CACrB,MACA,YACA,OACA,YACY;AAAA,EACZ,MAAM,SAAS,KAAK,MAAM,cAAc,GAAG;AAAA,EAC3C,IAAI,QAAQ,UAAU,aAAa,OAAO,MAAM,WAAW,GAAG,GAAG;AAAA,IAC/D,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,OAAO,QAAQ;AAAA,EAC5B,MAAM,UAAU,KAAK,MAAM,sBAAsB,IAAI;AAAA,EACrD,MAAM,MAAM,SAAS,OAAO,KAAK;AAAA,EACjC,IAAI,YAAY,aAAa,QAAQ,IAAI;AAAA,IACvC,OAAO;AAAA,EACT;AAAA,EACA,IAAI,CAAC,QAAQ,IAAI,GAAG,GAAG;AAAA,IACrB,QAAQ,IAAI,GAAG;AAAA,IAGf,MAAM,OAAO,gBAAgB,SAAS;AAAA,MACpC,QAAQ,KAAK,SAAS,KAAK,SAAS;AAAA,MACpC,MAAM;AAAA,IACR,CAAC;AAAA,IACD,IAAI,MAAM;AAAA,MACR,MAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAQT,IAAM,eAAe,CACnB,QACA,YACA,OACA,YACS;AAAA,EACT,WAAW,SAAS,OAAO,SAAS,OAAO,GAAG;AAAA,IAC5C,MAAM,UAAU,MAAM,QAAQ;AAAA,IAC9B,IAAI,YAAY,aAAa,MAAM,UAAU,WAAW;AAAA,MACtD;AAAA,IACF;AAAA,IAIA,MAAM,QAAQ,gBAAgB,SAAS;AAAA,MACrC,QAAQ,MAAM,QAAQ,YAAY,KAAK,IAAI;AAAA,MAC3C,MAAM;AAAA,IACR,CAAC;AAAA,IACD,IAAI,OAAO;AAAA,MAIT,IAAI,OAAO,MAAM,QAAQ,OAAO,KAAK;AAAA,QACnC,MAAM,QAAQ;AAAA,MAChB;AAAA,MACA,MAAM,KAAK,KAAK;AAAA,IAClB;AAAA,IAGA,MAAM,QAAQ,IAAI,MAAM,QAAQ,SAAS;AAAA,IACzC,WAAW,SAAS,MAAM,SAAS,WAAW,GAAG;AAAA,MAC/C,MAAM,eAAe,MAAM,QAAQ;AAAA,MACnC,IAAI,iBAAiB,aAAa,MAAM,UAAU,WAAW;AAAA,QAC3D;AAAA,MACF;AAAA,MACA,MAAM,YAAY,gBAAgB,cAAc;AAAA,QAC9C,QAAQ,MAAM,QAAQ,MAAM,QAAQ,YAAY,KAAK,IAAI;AAAA,QACzD,MAAM;AAAA,MACR,CAAC;AAAA,MACD,IAAI,WAAW;AAAA,QACb,MAAM,KAAK,KAAK,WAAW,OAAO,KAAK,CAAC;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI,eAAe,QAAQ,YAAY,OAAO,OAAO,GAAG;AAAA,IACtD;AAAA,EACF;AAAA,EACA,WAAW,SAAS,OAAO,SAAS,QAAQ,GAAG;AAAA,IAC7C,MAAM,SAAS,MAAM,QAAQ,UAAU;AAAA,IACvC,MAAM,KAAK,EAAE,QAAQ,MAAM,QAAQ,GAAG,MAAM,YAAY,OAAO,CAAC;AAAA,EAClE;AAAA;AAWF,IAAM,eACJ;AASF,IAAM,cACJ;AAQF,IAAM,WACJ;AAOF,IAAM,cACJ;AAUF,IAAM,aAAa,IAAI,IAAI,CAAC,SAAS,OAAO,UAAU,OAAO,CAAC;AAQvD,IAAM,mBAAmB,CAAC,QAC/B,IAAI,cAAc,QACd,WAAW,IAAI,IAAI,GAAG,IACtB,IAAI,cAAc,WAAW,IAAI,QAAQ,OAAO,UAAU,KAAK,IAAI,GAAG;AAQ5E,IAAM,eAAe,IAAI,OACvB,OAAO,qDAAqD,oBAC5D,KACF;AAGA,IAAM,cAAc;AAIpB,IAAM,WAAW,EAAE,IAAI,cAAc,KAAK,YAAY;AAMtD,IAAM,WAAW,CAAC,OAA0B,WAAkC;AAAA,EAC5E,IAAI,QAAoB;AAAA,EACxB,MAAM,SAAS,MAAM,IAAI,CAAC,SAAS;AAAA,IACjC,MAAM,OAAO,eAAe,MAAM,KAAK;AAAA,IACvC,MAAM,UAAU,UAAU,QAAQ,SAAS;AAAA,IAC3C,QAAQ;AAAA,IACR,OAAO,UACH,IAAI,OAAO,KAAK,MAAM,IACtB,KAAK,WAAW,aAAa,CAAC,SAAS,IAAI,OAAO,KAAK,MAAM,CAAC;AAAA,GACnE;AAAA,EACD,MAAM,OAAO,OAAO,KAAK;AAAA,CAAI;AAAA,EAC7B,OAAO,WAAW,YACd,OACA,KAAK,WAAW,SAAS,SAAS,CAAC,YACjC,QAAQ,WAAW,WAAW,GAAG,CACnC;AAAA;AAIN,IAAM,eAAe,CAAC,UAAuC;AAAA,EAC3D,MAAM,SAAmB,CAAC;AAAA,EAC1B,IAAI,KAAK;AAAA,EACT,WAAW,QAAQ,OAAO;AAAA,IACxB,OAAO,KAAK,EAAE;AAAA,IACd,MAAM,KAAK,SAAS;AAAA,EACtB;AAAA,EACA,OAAO;AAAA;AAQT,IAAM,aAAa,CACjB,YACA,IACA,eACsC;AAAA,EACtC,IAAI,MAAM;AAAA,EACV,IAAI,OAAO,WAAW,SAAS;AAAA,EAC/B,OAAO,MAAM,MAAM;AAAA,IACjB,MAAM,MAAM,KAAK,MAAM,MAAM,QAAQ,CAAC;AAAA,IACtC,KAAK,WAAW,QAAQ,MAAM,IAAI;AAAA,MAChC,MAAM;AAAA,IACR,EAAO;AAAA,MACL,OAAO,MAAM;AAAA;AAAA,EAEjB;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,MAAM,WAAW,QAAQ,KAAK;AAAA,IACtC,MAAM,aAAa,MAAM;AAAA,EAC3B;AAAA;AASF,IAAM,mBAAmB,CACvB,MACA,YACA,eAEA,CAAC,GAAG,KAAK,SAAS,WAAW,CAAC,EAAE,QAAQ,CAAC,UAAsB;AAAA,EAC7D,MAAM,SAAS,MAAM,QAAQ,UAAU,MAAM,QAAQ,UAAU;AAAA,EAC/D,MAAM,MAAM,MAAM,QAAQ;AAAA,EAC1B,IAAI,WAAW,MAAM,QAAQ,WAAW;AAAA,IACtC,OAAO,CAAC;AAAA,EACV;AAAA,EAEA,MAAM,KAAK,MAAM,QAAQ,MAAM,GAAG,SAAS,OAAO,SAAS;AAAA,EAC3D,OAAO;AAAA,IACL;AAAA,SACK,WAAW,YAAY,IAAI,UAAU;AAAA,MACxC,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,IACF;AAAA,EACF;AAAA,CACD;AAGH,IAAM,aAAa,CAAC,SAClB,CAAC,GAAG,KAAK,SAAS,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU;AAAA,EAC1C,MAAM,SAAS,MAAM,QAAQ,UAAU,MAAM,QAAQ,UAAU;AAAA,EAE/D,OAAO,EAAE,IAAI,MAAM,QAAQ,MAAM,GAAG,SAAS,OAAO,SAAS,GAAG,OAAO;AAAA,CACxE;AASI,IAAM,oBAAoB,CAC/B,MACA,YACW;AAAA,EACX,IAAI,CAAC,KAAK,SAAS,OAAO,GAAG;AAAA,IAC3B,OAAO;AAAA,EACT;AAAA,EACA,IAAI,MAAM;AAAA,EACV,IAAI,SAAS;AAAA,EACb,aAAa,IAAI,YAAY,WAAW,SAAS,KAAK,MAAM;AAAA,CAAI,CAAC,CAAC,GAAG;AAAA,IACnE,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC3B,IAAI,SAAS,MAAM;AAAA,MACjB,OAAO,KAAK,MAAM,QAAQ,EAAE,IAAI;AAAA,MAChC,SAAS,KAAK,OAAO;AAAA,IACvB;AAAA,EACF;AAAA,EACA,OAAO,MAAM,KAAK,MAAM,MAAM;AAAA;AAWhC,IAAM,eAAe,CAAC,MAAc,YAAuC;AAAA,EACzE,IAAI,MAAM;AAAA,EACV,IAAI,SAAS;AAAA,EACb,WAAW,UAAU,QAAQ,SAAS,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG;AAAA,IAC5D,OAAO,KAAK,MAAM,QAAQ,OAAO,EAAE,IAAI,OAAO;AAAA,IAC9C,SAAS,OAAO,KAAK,OAAO;AAAA,EAC9B;AAAA,EACA,OAAO,MAAM,KAAK,MAAM,MAAM;AAAA;AAUzB,IAAM,qBAAqB,CAChC,MACA,YACW;AAAA,EACX,IAAI,EAAE,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,MAAM,IAAI;AAAA,IACtD,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAoB,CAAC;AAAA,EAC3B,WAAW,SAAS,SAAS,KAAK,MAAM;AAAA,CAAI,CAAC,EAAE,SAAS,WAAW,GAAG;AAAA,IACpE,MAAM,QAAQ,MAAM,QAAQ,UAAU,MAAM,QAAQ,UAAU;AAAA,IAC9D,MAAM,OAAO,QAAQ;AAAA,MACnB,WAAW,MAAM,QAAQ,aAAa;AAAA,MACtC,KAAK,MAAM,QAAQ,OAAO;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,IACD,IAAI,SAAS,MAAM;AAAA,MAEjB,MAAM,KAAK,MAAM,QAAQ,MAAM,GAAG,SAAS,MAAM,SAAS;AAAA,MAC1D,QAAQ,KAAK,EAAE,IAAI,QAAQ,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,IACvD;AAAA,EACF;AAAA,EACA,OAAO,aAAa,MAAM,OAAO;AAAA;AAanC,IAAM,wBAAwB,CAC5B,SACmC;AAAA,EACnC,MAAM,SAAS,KAAK,MAAM,cAAc,GAAG;AAAA,EAC3C,MAAM,OAAO,QAAQ,OAAO,WAAW,GAAG,IAAI,KAAM,QAAQ,QAAQ;AAAA,EACpE,MAAM,UAAU,KAAK,MAAM,sBAAsB,IAAI;AAAA,EACrD,OAAO,YAAY,YACf,YACA,EAAE,IAAI,KAAK,SAAS,KAAK,QAAQ,QAAQ;AAAA;AAWxC,IAAM,qBAAqB,CAChC,MACA,YACW;AAAA,EACX,IAAI,EAAE,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI;AAAA,IACjD,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAoB,CAAC;AAAA,EAC3B,MAAM,MAAM,CAAC,IAAY,YAA0B;AAAA,IACjD,QAAQ,QAAQ,WAAW,gBAAgB,OAAO;AAAA,IAClD,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC3B,IAAI,SAAS,MAAM;AAAA,MACjB,QAAQ,KAAK;AAAA,QACX;AAAA,QACA,QAAQ,QAAQ;AAAA,QAChB,MAAM,iBAAiB,MAAM,MAAM;AAAA,MACrC,CAAC;AAAA,IACH;AAAA;AAAA,EAEF,MAAM,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,EAC7B,MAAM,SAAS,SAAS,KAAK;AAAA,EAC7B,MAAM,aAAa,aAAa,KAAK;AAAA,EACrC,YAAY,OAAO,SAAS,OAAO,MAAM;AAAA,CAAI,EAAE,QAAQ,GAAG;AAAA,IACxD,MAAM,QAAQ,WAAW,UAAU;AAAA,IACnC,WAAW,SAAS,KAAK,SAAS,OAAO,GAAG;AAAA,MAC1C,IAAI,KAAK,MAAM,QAAQ,OAAO,KAAK;AAAA,QACjC,IACE,QAAQ,MAAM,QAAQ,YAAY,KAAK,GACvC,MAAM,QAAQ,UAAU,EAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM,aAAa,sBAAsB,IAAI;AAAA,IAC7C,IAAI,YAAY;AAAA,MACd,IAAI,QAAQ,WAAW,IAAI,WAAW,OAAO;AAAA,IAC/C;AAAA,EACF;AAAA,EACA,WAAW,SAAS,OAAO,SAAS,YAAY,GAAG;AAAA,IACjD,IAAI,OAAO,MAAM,QAAQ,OAAO,KAAK;AAAA,MACnC,IAAI,MAAM,QAAQ,YAAY,KAAK,GAAG,MAAM,QAAQ,UAAU,EAAE;AAAA,IAClE;AAAA,EACF;AAAA,EACA,OAAO,aAAa,MAAM,OAAO;AAAA;AAkDnC,IAAM,iBAAiB,CACrB,MACA,OACA,eACe;AAAA,EACf,MAAM,QAAoB,CAAC;AAAA,EAC3B,MAAM,aAAa,aAAa,KAAK;AAAA,EACrC,WAAW,SAAS,KAAK,SAAS,YAAY,GAAG;AAAA,IAC/C,MAAM,SAAS,MAAM,QAAQ,UAAU,MAAM,QAAQ,UAAU;AAAA,IAE/D,MAAM,KAAK,MAAM,QAAQ,MAAM,GAAG,SAAS,OAAO,SAAS;AAAA,IAC3D,MAAM,OAAiB;AAAA,SAClB,WAAW,YAAY,IAAI,UAAU;AAAA,MACxC;AAAA,IACF;AAAA,IACA,IAAI,MAAM,QAAQ,QAAQ;AAAA,MACxB,KAAK,MAAM;AAAA,IACb;AAAA,IACA,MAAM,KAAK,IAAI;AAAA,EACjB;AAAA,EACA,MAAM,KACJ,GAAG,iBAAiB,MAAM,YAAY,UAAU,GAChD,GAAG,WAAW,IAAI,EAAE,QAAQ,GAAG,IAAI,aACjC,WAAW,KACP,CAAC,IACD,CAAC,KAAK,WAAW,YAAY,IAAI,UAAU,GAAG,OAAO,MAAM,OAAO,CAAC,CACzE,CACF;AAAA,EACA,WAAW,SAAS,KAAK,SAAS,YAAY,GAAG;AAAA,IAC/C,MAAM,UAAU,MAAM,QAAQ,UAAU;AAAA,IACxC,MAAM,KAAK,MAAM,QAAQ,YAAY,KAAK;AAAA,IAC1C,MAAM,OAAO,gBACX,SACA,WAAW,YAAY,IAAI,UAAU,CACvC;AAAA,IACA,IAAI,MAAM;AAAA,MAER,IAAI,KAAK,MAAM,QAAQ,OAAO,KAAK;AAAA,QACjC,KAAK,QAAQ;AAAA,MACf;AAAA,MACA,MAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAUF,IAAM,eAAe,CAC1B,MACA,aAAa,GACb,WACe;AAAA,EACf,MAAM,QAAoB,CAAC;AAAA,EAC3B,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,EAC7B,MAAM,OAAO,SAAS,OAAO,MAAM;AAAA,EACnC,YAAY,OAAO,SAAS,KAAK,MAAM;AAAA,CAAI,EAAE,QAAQ,GAAG;AAAA,IACtD,aAAa,MAAM,aAAa,QAAQ,GAAG,OAAO,OAAO;AAAA,EAC3D;AAAA,EACA,OAAO,CAAC,GAAG,OAAO,GAAG,eAAe,MAAM,OAAO,UAAU,CAAC;AAAA;AAS9D,IAAM,iBACJ;AAOK,IAAM,qBAAqB,CAChC,MACA,aAAa,MACI;AAAA,EACjB,IAAI,CAAC,KAAK,SAAS,YAAY,GAAG;AAAA,IAChC,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,EAC7B,MAAM,aAAa,aAAa,KAAK;AAAA,EACrC,OAAO,CAAC,GAAG,SAAS,KAAK,EAAE,SAAS,cAAc,CAAC,EAAE,IAAI,CAAC,UAAU;AAAA,IAClE,MAAM,OAAO,MAAM,QAAQ,UAAU,MAAM,QAAQ,UAAU;AAAA,IAE7D,MAAM,KAAK,MAAM,QAAQ,MAAM,GAAG,SAAS,KAAK,SAAS;AAAA,IACzD,OAAO,KAAK,WAAW,YAAY,IAAI,UAAU,GAAG,KAAK;AAAA,GAC1D;AAAA;AAOH,IAAM,gBAAgB;AAGtB,IAAM,WAAW;AASjB,IAAM,cAAc,CAClB,MACA,OACA,SACe;AAAA,EACf,MAAM,OAAO,eAAe,MAAM,KAAK;AAAA,EAEvC,IAAI,UAAU,QAAQ,SAAS,MAAM;AAAA,IACnC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,KAAK,WAAW,aAAa,EAAE,EAAE,WAAW,eAAe,EAAE;AAAA,EAC3E,WAAW,SAAS,MAAM,SAAS,QAAQ,GAAG;AAAA,IAC5C,MAAM,MAAM,MAAM,QAAQ;AAAA,IAC1B,IAAI,KAAK;AAAA,MACP,KAAK,IAAI,GAAG;AAAA,IACd;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,uBAAuB,CAAC,SAA2B;AAAA,EAC9D,MAAM,OAAO,IAAI;AAAA,EACjB,IAAI,QAAoB;AAAA,EACxB,WAAW,QAAQ,KAAK,MAAM;AAAA,CAAI,GAAG;AAAA,IACnC,QAAQ,YAAY,MAAM,OAAO,IAAI;AAAA,EACvC;AAAA,EACA,OAAO,CAAC,GAAG,IAAI;AAAA;AASV,IAAM,qBAAqB,CAChC,KACA,SAEA,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM;AAAA,CAAI,EAAE,SAAS,KAAK,MAAM;AAAA,CAAI,EAAE,MAAM,IAAI;AAOxE,IAAM,kBAAkB,CAAC,UACvB,MAAM,kBAAkB,mBAAmB,MAAM,KAAK,MAAM,KAAK,IAAI;AAcvE,IAAM,qBAAqB,CACzB,OACA,SACA,eAEA,MAAM,IAAI,CAAC,SAAS;AAAA,EAClB,MAAM,SAAS,QAAQ,KAAK,OAAO;AAAA,EACnC,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO;AAAA,EACT;AAAA,EACA,MAAM,WAAc,KAAK,MAAM,MAAM,OAAO,KAAK;AAAA,EACjD,IAAI,OAAO,SAAS,YAAY;AAAA,IAC9B,SAAS,OAAO,OAAO;AAAA,EACzB;AAAA,EACA,OAAO;AAAA,CACR;AAGH,IAAM,gBAAgB,CAAC,UACrB,MAAM,YAAY,MAAM,SAAS,SAAS,SAAS,IAC/C,MAAM,SAAS,WACf;AAQN,IAAM,aAAa,CACjB,OACA,YAEA,MAAM,WACF,mBACE,QAAQ,MAAM,SAAS,IAAI,GAC3B,MAAM,SAAS,SACf,MAAM,UACR,IACA,QAAQ,MAAM,KAAK,MAAM,gBAAgB,KAAK,CAAC;AAerD,IAAM,yBAAyB,CAC7B,OACA,SACA,eAEA,QACG,OAAO,GAAG,iBAAiB,CAAC,UAAU,EACtC,IAAI,GAAG,IAAI,MAAM,aAAa;AAAA,EAC7B,MAAM,SAAS,MAAM,UAAU,QAAQ,OAAO;AAAA,EAC9C,MAAM,OAAO,MAAM,cAAc,GAAG,cAAc,MAAM;AAAA,EACxD,MAAM,YACJ,WAAW,aAAa,OAAO,SAAS,MAAM;AAAA,EAChD,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,QAAQ,QAAQ,OAAO,gBAAgB,KAAK;AAAA,IAClD,SAAS,YACL,KAAK,iEAAiE,gDACtE,KAAK;AAAA,IACT,UAAU;AAAA,IACV,YAAY,aAAa,+BAA+B;AAAA,EAC1D;AAAA,CACD;AAWL,IAAM,2BAA2B,CAC/B,OACA,SACA,eAEA,QACG,OAAO,GAAG,IAAI,aAAa,WAAW,KAAK,KAAK,EAChD,IAAI,GAAG,YAAY,IAAI,MAAM,aAAa;AAAA,EACzC,MAAM,SAAS,MAAM,UAAU,QAAQ,OAAO;AAAA,EAC9C,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,QAAQ,QAAQ,MAAM,cAAc,GAAG,cAAc,MAAM;AAAA,IACjE,MAAM,QAAQ,QAAQ,OAAO,gBAAgB,KAAK;AAAA,IAClD,SAAS,KAAK,yDAAyD;AAAA,IACvE,UAAU;AAAA,IACV,YAAY,aAAa,gBAAgB,8BAA8B,QACrE,aACI,6DACA;AAAA,EAER;AAAA,CACD;AAEL,IAAM,OAAO,IAAI,KAAK,WAAW,MAAM,EAAE,MAAM,cAAc,CAAC;AAU9D,IAAM,0BAA0B,CAC9B,OACA,UACA,eAEA,SAAS,IAAI,GAAG,QAAQ,MAAM,MAAM,OAAO,UAAU;AAAA,EACnD,MAAM,QAAQ,KAAK,OAAO,MAAM,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC;AAAA,EAC5D,OAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM,QAAQ,MAAM,cAAc,GAAG,cAAc,MAAM;AAAA,IACzD;AAAA,IACA,SAAS,GAAG,eAAe,UAAU,MAAM,WAAW,IAAI,6BAA6B;AAAA,IACvF,UAAU;AAAA,IACV,YACE;AAAA,EACJ;AAAA,CACD;AAEH,IAAM,cAAc,CAClB,MACA,UACA,OACW;AAAA,EACX,IAAI,KAAK,OAAO;AAAA,IACd,OAAO,KAAK;AAAA,EACd;AAAA,EACA,MAAM,eAAe,SAAS,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,SAAS;AAAA,EACrE,IAAI,cAAc;AAAA,IAChB,OAAO,aAAa;AAAA,EACtB;AAAA,EACA,MAAM,QAAQ,GAAG,MAAM,GAAG;AAAA,EAC1B,MAAM,OAAO,MAAM,GAAG,EAAE,KAAK;AAAA,EAC7B,MAAM,OAAO,mBAAmB,KAAK,QAAQ,SAAQ,IAAI,GAAG,EAAE,CAAC;AAAA,EAI/D,MAAM,SAAS,SAAS,UAAU,MAAM,GAAG,EAAE,IAAI;AAAA,EACjD,IAAI,WAAW,WAAW;AAAA,IACxB,OAAO,UAAU,mBAAmB,kBAAkB,MAAM,KAAK,MAAM,CAAC;AAAA,EAC1E;AAAA,EACA,OAAO,UAAU,IAAI;AAAA;AAIvB,IAAM,cAAc,CAAC,UAA0B,SAAS,OAAO,GAAG;AAG3D,IAAM,gBAAgB,CAC3B,UACoB,OAAO,UAAU;AAGvC,IAAM,aAAa,CAAC,QAA4B,SAAyB;AAAA,EACvE,MAAM,QAAQ,SAAS,YAAY,MAAM,IAAI;AAAA,EAC7C,OAAO,QAAQ,GAAG,SAAS,SAAS;AAAA;AAuC/B,IAAM,gBAAgB,CAC3B,KACA,KACA,QACmB;AAAA,EACnB,QAAQ,SAAS,SAAS,IAAI,WAC1B,iBAAiB,KAAK,IAAI,QAAQ,IAClC,EAAE,MAAM,KAAK,SAAS,GAAG;AAAA,EAC7B,QAAQ,SAAS,YAAY,IAAI,OAC7B,gBAAgB,MAAM,KAAK,IAAI,IAAI,IACnC,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,KAAK;AAAA,EACnC,OAAO,EAAE,SAAS,SAAS,QAAQ;AAAA;AA8C9B,IAAM,oBAAoB,CAC/B,OACA,KACA,iBACA,QACe;AAAA,EACf,QAAQ,SAAS,SAAS,YAAY,cAAc,MAAM,KAAK,KAAK,GAAG;AAAA,EACvE,MAAM,YAAY,mBAAmB,MAAM;AAAA,EAC3C,MAAM,OAAO,YAAY,YAAY,SAAS,IAAI;AAAA,EAIlD,MAAM,UAAU,OACZ,IAAI,qBAAqB,QAAQ,oBAAoB,YACrD,IAAI,qBAAqB;AAAA,EAC7B,MAAM,QAAQ,OAAO,GAAG,OAAO,QAAQ;AAAA,EACvC;AAAA,IACE;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACL,SAAS,IAAI,QAAQ,OAAO,OAAO;AAAA,EACvC,MAAM,SAAS,UACX,SAAS,IAAI,QAAQ,OAAO,MAAM,IAAI,EAAE,QACxC;AAAA,EACJ,OAAO;AAAA,IACL,oBACE,WAAW,aAAa,YAAY,gBAAgB,QAAQ,OAAO;AAAA,IACrE;AAAA,IACA;AAAA,IACA,cAAc,gBAAgB,YAAY,OAAO;AAAA,IACjD,SAAS,WAAW,IAAI,QAAQ,OAAO;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA;AAIK,IAAM,iBAAiB,CAC5B,cACA,QACA,SACY,OAAO,cAAc,cAAc,QAAQ,IAAI,IAAI;AAejE,IAAM,eAAe,CACnB,YAEA,OAAO,YAAY,YAAY,YAAY;AAE7C,IAAM,cAAc,CAAC,QACnB,OAAO,QAAQ;AAGjB,IAAM,cAAa,CACjB,YACoB;AAAA,EACpB,MAAM,MAAM,aAAa,OAAO,IAAI,QAAQ,MAAM;AAAA,EAClD,OAAO,YAAY,GAAG,IAAI,OAAO,GAAG,IAAI;AAAA;AAY1C,IAAM,qBAAqB,CACzB,MACA,WACwB;AAAA,EACxB,MAAM,SAA4C,CAAC;AAAA,EACnD,MAAM,SAA2B,CAAC;AAAA,EAClC,YAAY,KAAK,WAAW,OAAO,QAAQ,MAAM,GAAG;AAAA,IAClD,MAAM,UAAU,OAAO,aAAa,SAAS,KAAK,IAAI;AAAA,IACtD,IAAI,mBAAmB,SAAS;AAAA,MAC9B,OAAO,KAAK;AAAA,QACV,SAAS;AAAA,QACT,MAAM,CAAC,GAAG;AAAA,MACZ,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA,IAAI,QAAQ,WAAW,WAAW;AAAA,MAChC,OAAO,KACL,GAAG,QAAQ,OAAO,IAAI,CAAC,WAAW;AAAA,QAChC,SAAS,MAAM;AAAA,QACf,MAAM,CAAC,KAAK,IAAI,MAAM,QAAQ,CAAC,GAAG,IAAI,WAAU,CAAC;AAAA,MACnD,EAAE,CACJ;AAAA,MACA;AAAA,IACF;AAAA,IAGA,IAAI,QAAQ,UAAU,aAAa,OAAO,OAAO,MAAM,GAAG,GAAG;AAAA,MAC3D,OAAO,OAAO,QAAQ;AAAA,IACxB;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,OAAO,KAAK,MAAM,EAAE,SAAS,IAAI,SAAS;AAAA,IAClD;AAAA,EACF;AAAA;AAIF,IAAM,cAAc;AAQpB,IAAM,aAAa,CAAC,SAClB,SAAS,aAAa,YAAY,KAAK,IAAI,IACvC;AAAA,EACE;AAAA,IACE,SAAS,IAAI;AAAA,IACb,MAAM,CAAC,MAAM;AAAA,EACf;AACF,IACA,CAAC;AAWP,IAAM,iBAAiB,CACrB,OACA,QAGiD;AAAA,EAIjD,MAAM,YAAY,cAAc,MAAM,KAAK,IAAI,IAC3C,MAAM,KAAK,OACX,IAAI;AAAA,EACR,MAAM,aAAa,IAAI,kBAAkB;AAAA,EAGzC,MAAM,SACJ,IAAI,qBAAqB,aACrB,KAAK,IAAI,sBAAsB,WAAW,IAC1C;AAAA,EACN,MAAM,QAAQ,SACV,OAAO,YACL,OAAO,QAAQ,MAAM,IAAI,EAAE,OACzB,EAAE,SAAS,CAAC,OAAO,OAAO,QAAQ,GAAG,CACvC,CACF,IACA,MAAM;AAAA,EAEV,MAAM,SAAS,eAAe,UAAU,KAAK;AAAA,EAC7C,MAAM,eAAe,SAAS,mBAAmB,MAAM,MAAM,MAAM,IAAI;AAAA,EACvE,MAAM,SAAS;AAAA,IACb,GAAI,OAAO,UAAU,WAAW,OAAO,KAAK,IAAI,IAAI,CAAC;AAAA,IACrD,GAAI,cAAc,UAAU,CAAC;AAAA,EAC/B;AAAA,EAEA,IAAI,OAAO,WAAW,OAAO,WAAW,GAAG;AAAA,IACzC,OAAO,EAAE,QAAQ,cAAc,QAAQ,MAAM,OAAO,KAAK;AAAA,EAC3D;AAAA,EAKA,MAAM,SACJ,MAAM,QACL,MAAM,cAAc,YAAW,MAAM,UAAU,IAC5C,cAAa,MAAM,YAAY,OAAO,IACtC;AAAA,EACN,MAAM,WAAW;AAAA,IACf,MAAM;AAAA,IACN,MAAM,MAAM,cAAc,GAAG,IAAI,OAAO,QAAQ,MAAM;AAAA,IACtD;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,aAAa;AAAA,MACX,GAAI,OAAO,UAAU,CAAC,IAAI,mBAAmB,OAAO,OAAO,QAAQ;AAAA,MACnE,GAAG,sBAAsB,QAAQ,QAAQ;AAAA,IAC3C;AAAA,EACF;AAAA;AAcK,IAAM,iBAAiB,CAC5B,OACA,QACoB;AAAA,EACpB,QAAQ,WAAW,MAAM;AAAA,EACzB,MAAM,MAAM,WAAW,QAAQ,SAAS;AAAA,EAExC,MAAM,SAAS,eAAe,OAAO,GAAG;AAAA,EACxC,IAAI,OAAO,aAAa;AAAA,IACtB,OAAO,EAAE,aAAa,OAAO,aAAa,OAAO,CAAC,EAAE;AAAA,EACtD;AAAA,EAIA,QAAQ,SAAS;AAAA,EAEjB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,kBAAkB,OAAO,KAAK,KAAK,MAAM;AAAA,IAC3C,MAAM,IAAI;AAAA,IACV,kBAAkB,CAAC,IAAI,OAAO,UAAU,IAAI,OAAO,iBAAiB;AAAA,IACpE,QAAQ,IAAI,OAAO;AAAA,IACnB,UAAU,IAAI;AAAA,EAChB,CAAC;AAAA,EAID,MAAM,WAAW,MAAM,UAAU,QAAQ,MAAM,KAAK;AAAA,EACpD,QAAQ,SAAS,cAAc,aAAa,SAAS,QAAQ;AAAA,EAC7D,QAAQ,WAAW,IAAI;AAAA,EACvB,MAAM,WACJ,WAAW,QAAQ,WAAW,OAAO,kBAAkB,IAAI,CAAC;AAAA,EAC9D,MAAM,eAAe,SAAS,OAAO,CAAC,QAAQ,IAAI,SAAS,MAAM;AAAA,EAEjE,MAAM,OAAO;AAAA,IACX;AAAA,IACA,MAAM,SAAS,EAAE,QAAQ,MAAM,MAAM,OAAO,MAAM,KAAK,KAAK,IAAI;AAAA,IAChE,YAAY,SAAS,WAAW;AAAA,IAChC,gBACE,WAAW,QAAQ,qBAAqB,QAAQ,IAAI;AAAA,IACtD,aAAa,KAAK,QAAQ,IAAI;AAAA,IAC9B,QAAQ,OAAO;AAAA,IACf,aAAa,KAAK;AAAA,IAClB,SAAS,MAAM;AAAA,IACf,SAAS,SAAS,GAAG,IAAI,OAAO,QAAQ,MAAM,QAAQ;AAAA,IACtD,cACE,WAAW,QAAQ,WAAW,OAAO,kBAAkB,IAAI;AAAA,IAC7D;AAAA,IACA;AAAA,IACA;AAAA,IACA,IAAI,GAAG,IAAI,OAAO,QAAQ,MAAM;AAAA,IAChC,UAAU,cAAc,KAAK;AAAA,IAC7B,cAAc,KAAK,gBAAgB,MAAM;AAAA,IACzC,OAAO;AAAA,MACL,GAAG,WAAW,OAAO,CAAC,MAAM,eAC1B,aAAa,MAAM,YAAY,MAAM,CACvC;AAAA,MACA,GAAG,iBAAiB,KAAK,OAAO;AAAA,IAClC;AAAA,IACA;AAAA,IACA,aAAa,IAAI,OAAO;AAAA,IACxB;AAAA,IACA;AAAA,IACA,QAAQ,EAAE,MAAM,IAAI,OAAO,MAAM,KAAK,MAAM,IAAI;AAAA,IAChD,YAAY,MAAM;AAAA,IAClB,OAAO,YAAY,MAAM,UAAU,OAAO;AAAA,IAC1C,gBAAgB;AAAA,IAChB,cAAc,aAAa,SAAS,IAAI,eAAe;AAAA,IACvD;AAAA,IACA;AAAA,EACF;AAAA,EASA,MAAM,UAAU,CAAC,SAAiB,WAChC,cACE,IAAI,YAAY,IAChB,eAAe,SAAS,QAAQ,IAAI,IAAI,CAC1C;AAAA,EACF,MAAM,QAAQ,QAAQ,IAAI,CAAC,YAAY;AAAA,OAClC;AAAA,IACH,aACE,uBAAuB,YACnB,YACA,QAAQ,oBAAoB,MAAM;AAAA,IACxC;AAAA,IACA,OAAO,QAAQ,cAAc,MAAM;AAAA,EACrC,EAAE;AAAA,EAEF,OAAO;AAAA,IACL,aACE,WAAW,QACP;AAAA,MACE,GAAG,uBAAuB,OAAO,cAAc,IAAI,OAAO,IAAI;AAAA,MAC9D,GAAG,wBACD,OACA,SAAS,OAAO,CAAC,QAAQ,IAAI,SAAS,SAAS,GAC/C,IAAI,OAAO,IACb;AAAA,IACF,IACA,yBAAyB,OAAO,cAAc,IAAI,OAAO,IAAI;AAAA,IACnE;AAAA,EACF;AAAA;;;AsFp7EF,qBAAS;;;ACAT,qBAAS;AAET,oBAAS,qBAAS,kBAAS,mBAAM,sBAAU;AAoC3C,IAAM,qBAAqB,IAAI,IAAI,CAAC,OAAO,MAAM,CAAC;AAelD,IAAM,oBACJ;AAGF,IAAM,oBACJ;AAMK,IAAM,uBAAuB,CAAC,SACnC,KAAK,SAAS,UAAU;AAI1B,IAAM,gBAAgB;AAItB,IAAM,oBAAmB;AAGzB,IAAM,qBAAqB;AAAA,EACzB,IAAI,EAAE,OAAO,OAAO,MAAM,OAAO;AAAA,EACjC,KAAK,EAAE,OAAO,OAAO,MAAM,MAAM;AACnC;AAQA,IAAM,sBAAsB,CAC1B,MACA,YACA,cACY;AAAA,EACZ,IAAI,SAAS;AAAA,EACb,IAAI,SAAS;AAAA,EACb,UAAS;AAAA,IACP,MAAM,SAAS,SAAS,WAAW,QAAQ,WAAW;AAAA,IACtD,MAAM,QAAQ,KAAK,QAAQ,QAAQ,MAAM;AAAA,IACzC,IAAI,UAAU,IAAI;AAAA,MAChB,OAAO;AAAA,IACT;AAAA,IACA,SAAS,CAAC;AAAA,IACV,SAAS,QAAQ,OAAO;AAAA,EAC1B;AAAA;AA4BK,IAAM,wBAAwB,CACnC,SAC4B;AAAA,EAC5B,MAAM,QAAQ,kBAAkB,KAAK,IAAI;AAAA,EACzC,IAAI,CAAC,OAAO,QAAQ;AAAA,IAClB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,aAAgC,CAAC;AAAA,EACvC,WAAW,SAAS,MAAM,OAAO,SAAS,IAAI,SAAS,iBAAiB,GAAG;AAAA,IACzE,MAAM,OAAO,KAAK,QAAQ;AAAA,IAC1B,MAAM,QAAQ,KAAK,QAAQ,UAAU,KAAK,QAAQ;AAAA,IAClD,IAAI,SAAS,UAAU,OAAO;AAAA,MAC5B,WAAW,OAAO;AAAA,IACpB;AAAA,IACA,IAAI,SAAS,UAAU,OAAO;AAAA,MAC5B,WAAW,OAAO;AAAA,IACpB;AAAA,IACA,IAAI,QAAQ,SAAS,UAAU,SAAS,UAAU,UAAU,WAAW;AAAA,MACrE,WAAW,QAAQ,KAAK,WAAW,QAAQ,OAAO,MAAM;AAAA,IAC1D;AAAA,EACF;AAAA,EACA,OAAO,EAAE,YAAY,QAAQ,MAAM,OAAO,UAAU,GAAG;AAAA;AAazD,IAAM,eAAe;AAGrB,IAAM,gBAAgB;AAOtB,IAAM,sBAAsB;AA8BrB,IAAM,wBAAwB,CACnC,OACA,OACA,WACiB;AAAA,EACjB,MAAM,QAAQ,MAAM,UAAU;AAAA,EAC9B,IAAI,WAAW,QAAQ,cAAc,KAAK,KAAK,GAAG;AAAA,IAChD,OAAO,EAAE,MAAM,OAAO;AAAA,EACxB;AAAA,EACA,MAAM,UAAU,MAAM,KAAK;AAAA,EAC3B,IAAI,CAAC,aAAa,KAAK,OAAO,GAAG;AAAA,IAC/B,OAAO,EAAE,MAAM,OAAO;AAAA,EACxB;AAAA,EACA,MAAM,SAAS,sBAAsB,OAAO;AAAA,EAC5C,IAAI,QAAQ;AAAA,IACV,OAAO,EAAE,KAAK,OAAO,MAAM,aAAa,WAAW,OAAO;AAAA,EAC5D;AAAA,EACA,MAAM,QAAQ,CAAC,OAAO;AAAA,EACtB,MAAM,OAAO,KAAK,IAAI,MAAM,QAAQ,QAAQ,mBAAmB,IAAI;AAAA,EACnE,SAAS,MAAM,QAAQ,EAAG,OAAO,MAAM,OAAO,GAAG;AAAA,IAC/C,MAAM,QAAQ,MAAM,QAAQ,IAAI,KAAK;AAAA,IACrC,IAAI,SAAS,IAAI;AAAA,MACf;AAAA,IACF;AAAA,IACA,MAAM,KAAK,IAAI;AAAA,IACf,IAAI,cAAc,KAAK,IAAI,GAAG;AAAA,MAC5B,MAAM,YAAY,sBAAsB,MAAM,KAAK,GAAG,CAAC;AAAA,MACvD,OAAO,YACH,EAAE,KAAK,MAAM,aAAa,UAAU,IACpC,EAAE,MAAM,YAAY;AAAA,IAC1B;AAAA,EACF;AAAA,EACA,OAAO,EAAE,MAAM,YAAY;AAAA;AAOtB,IAAM,6BAA6B,CACxC,MACA,UACgB;AAAA,EAChB,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA,SACE;AAAA,EACF,UAAU;AAAA,EACV,YACE;AACJ;AAwCA,IAAM,kBACJ;AAEF,IAAM,eAAe,CACnB,MACA,SACA,MACA,MACA,gBACgB,EAAE,MAAM,MAAM,MAAM,SAAS,UAAU,SAAS,WAAW;AAO7E,IAAM,cAAc,CAAC,MAAc,SAA0B;AAAA,EAC3D,MAAM,MAAM,UAAS,MAAM,IAAI;AAAA,EAC/B,OAAO,QAAQ,QAAQ,IAAI,WAAW,KAAK;AAAA;AAY7C,IAAM,qBAAqB,CACzB,QACA,UACA,KACA,SAC6C;AAAA,EAC7C,IAAI,OAAO,WAAW,GAAG,GAAG;AAAA,IAC1B,IAAI,CAAC,IAAI,aAAa;AAAA,MACpB,OAAO;AAAA,QACL,OAAO,aACL,8BACA,kBAAkB,oEAClB,UACA,MACA,oDACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM,OAAO,MAAK,IAAI,aAAa,MAAM;AAAA,IACzC,IAAI,YAAY,IAAI,aAAa,IAAI,GAAG;AAAA,MACtC,OAAO;AAAA,QACL,OAAO,aACL,8BACA,kBAAkB,6CAClB,UACA,MACA,sFACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO,EAAE,KAAK;AAAA,EAChB;AAAA,EACA,MAAM,OAAO,SAAQ,SAAQ,QAAQ,GAAG,MAAM;AAAA,EAC9C,IAAI,IAAI,eAAe,YAAY,IAAI,aAAa,IAAI,GAAG;AAAA,IACzD,OAAO;AAAA,MACL,OAAO,aACL,8BACA,kBAAkB,6CAClB,UACA,MACA,oGACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO,EAAE,KAAK;AAAA;AAIhB,IAAM,WAAW,CAAC,MAAc,SAAiB,UAA0B;AAAA,EACzE,MAAM,QAAQ,UAAS,OAAO,SAAQ,SAAS,IAAI,CAAC;AAAA,EACpD,OAAO,MAAM,WAAW,GAAG,IAAI,QAAQ,KAAK;AAAA;AAS9C,IAAM,oBAAoB,CACxB,QACA,SACA,UAEA,OAAO,WAAW,GAAG,KAAK,OAAO,WAAW,GAAG,KAAK,IAAI,SAAS,MAAM,IACnE,OACA,SAAS,QAAQ,SAAS,KAAK;AASrC,IAAM,mBAAmB,CACvB,QACA,SACA,UACkB;AAAA,EAClB,MAAM,OAAO,oBAAoB,SAAS,MAAM;AAAA,EAChD,IAAI,SAAS,MAAM;AAAA,IACjB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,OAAO,MAAM,GAAG,OAAO,SAAS,KAAK,OAAO,MAAM;AAAA,EAC/D,OAAO,GAAG,SAAS,MAAM,SAAS,KAAK,IAAI,KAAK;AAAA;AAalD,IAAM,eAAe,CACnB,OACA,SACA,UACa;AAAA,EACb,IAAI,YAAY,OAAO;AAAA,IACrB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,QAAoB;AAAA,EACxB,MAAM,UAAU,MAAM,IAAI,CAAC,SAAS;AAAA,IAClC,MAAM,OAAO,eAAe,MAAM,KAAK;AAAA,IACvC,MAAM,UAAU,UAAU,QAAQ,SAAS;AAAA,IAC3C,QAAQ;AAAA,IACR,OAAO,UACH,OACA,oBAAoB,MAAM,CAAC,WACzB,kBAAkB,QAAQ,SAAS,KAAK,CAC1C;AAAA,GACL;AAAA,EAGD,MAAM,SAAS,CAAC,WACd,iBAAiB,QAAQ,SAAS,KAAK;AAAA,EACzC,OAAO,mBACL,mBACE,kBAAkB,QAAQ,KAAK;AAAA,CAAI,GAAG,CAAC,WACrC,kBAAkB,QAAQ,SAAS,KAAK,CAC1C,GACA,MACF,GACA,CAAC,QAAS,iBAAiB,GAAG,IAAI,OAAO,IAAI,KAAK,IAAI,IACxD,EAAE,MAAM;AAAA,CAAI;AAAA;AAYd,IAAM,oBAAoB,CAAC,UAAuC;AAAA,EAChE,IAAI,QAAoB;AAAA,EACxB,IAAI,YAAY;AAAA,EAChB,OAAO,MAAM,IAAI,CAAC,SAAS;AAAA,IACzB,IAAI,CAAC,WAAW;AAAA,MACd,MAAM,OAAO,eAAe,MAAM,KAAK;AAAA,MACvC,MAAM,UAAU,UAAU,QAAQ,SAAS;AAAA,MAC3C,QAAQ;AAAA,MACR,IAAI,SAAS;AAAA,QACX,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,MAAM,SAAS,KAAK,WAAW,aAAa,CAAC,SAC3C,IAAI,OAAO,KAAK,MAAM,CACxB;AAAA,IACA,IAAI,MAAM;AAAA,IACV,IAAI,KAAK;AAAA,IACT,OAAO,KAAK,KAAK,QAAQ;AAAA,MACvB,IAAI,WAAW;AAAA,QACb,MAAM,QAAQ,KAAK,QAAQ,OAAO,EAAE;AAAA,QACpC,MAAM,MAAM,UAAU,KAAK,KAAK,SAAS;AAAA,QACzC,OAAO,KAAK,MAAM,IAAI,GAAG,EAAE,WAAW,MAAM,KAAK;AAAA,QACjD,IAAI,UAAU,IAAI;AAAA,UAChB;AAAA,QACF;AAAA,QACA,OAAO;AAAA,QACP,KAAK,QAAQ,MAAM;AAAA,QACnB,YAAY;AAAA,MACd,EAAO;AAAA,QACL,MAAM,OAAO,OAAO,QAAQ,QAAQ,EAAE;AAAA,QACtC,IAAI,SAAS,IAAI;AAAA,UACf,OAAO,KAAK,MAAM,EAAE;AAAA,UACpB;AAAA,QACF;AAAA,QACA,OAAO,GAAG,KAAK,MAAM,IAAI,IAAI;AAAA,QAC7B,KAAK,OAAO,OAAO;AAAA,QACnB,YAAY;AAAA;AAAA,IAEhB;AAAA,IACA,OAAO;AAAA,GACR;AAAA;AAKH,IAAM,iBAAiB,CACrB,SACA,MACA,eACa;AAAA,EACb,MAAM,OAAO,QAAQ,QAAQ,QAAQ,EAAE;AAAA,EACvC,IAAI,aAAa;AAAA,EACjB,WAAW,OAAO,KAAK,MAAM,MAAM,KAAK,CAAC,GAAG;AAAA,IAC1C,aAAa,KAAK,IAAI,YAAY,IAAI,MAAM;AAAA,EAC9C;AAAA,EACA,MAAM,QAAQ,IAAI,OAAO,KAAK,IAAI,GAAG,aAAa,CAAC,CAAC;AAAA,EACpD,MAAM,MAAM,SAAQ,IAAI;AAAA,EACxB,MAAM,OAAO,WAAW,SAAS,MAAM,IAAI,MAAM,CAAC,IAAI;AAAA,EACtD,MAAM,OAAO,WAAW,OAAO,IAAI,WAAW,SAAS;AAAA,EACvD,OAAO,CAAC,GAAG,QAAQ,OAAO,QAAQ,GAAG,KAAK,MAAM;AAAA,CAAI,GAAG,KAAK;AAAA;AAc9D,IAAM,kBAAkB,OACtB,WACA,UACA,MACA,KACA,UACmD;AAAA,EACnD,MAAM,WAAW,mBAAmB,UAAU,QAAQ,UAAU,KAAK,IAAI;AAAA,EACzE,IAAI,WAAW,UAAU;AAAA,IACvB,OAAO;AAAA,EACT;AAAA,EACA,QAAQ,SAAS;AAAA,EACjB,IAAI,MAAM,SAAS,IAAI,GAAG;AAAA,IACxB,OAAO;AAAA,MACL,OAAO,aACL,uBACA,qBAAqB,CAAC,GAAG,OAAO,IAAI,EACjC,IAAI,CAAC,UAAU,UAAS,IAAI,eAAe,SAAQ,IAAI,GAAG,KAAK,CAAC,EAChE,KAAK,MAAM,MACd,UACA,MACA,oDACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,UAAU,MAAM,UAAS,MAAM,OAAO;AAAA,IACtC,OAAO,OAAO;AAAA,IACd,OAAO;AAAA,MACL,OAAO,aACL,2BACA,kBAAkB,UAAU,mCAAmC,UAC7D,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,MAEvD,UACA,MACA,eACF;AAAA,IACF;AAAA;AAAA,EAEF,IAAI,SAAS,IAAI,IAAI;AAAA,EAErB,MAAM,YACJ,CAAC,UAAU,WAAW,QACtB,mBAAmB,IAAI,SAAQ,IAAI,EAAE,YAAY,CAAC;AAAA,EACpD,IAAI,CAAC,WAAW;AAAA,IACd,MAAM,QAAQ,eAAe,SAAS,MAAM,UAAU,UAAU;AAAA,IAGhE,OAAO;AAAA,MACL;AAAA,MACA,SAAS,MAAM,IAAI,CAAC,GAAG,OAAO,EAAE,MAAM,MAAM,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE;AAAA,IACrE;AAAA,EACF;AAAA,EAEA,MAAM,SAAS,oBAAO,OAAO;AAAA,EAC7B,MAAM,OAAO,OAAO;AAAA,EACpB,MAAM,iBAAiB,KAAK,IAC1B,GACA,QAAQ,MAAM;AAAA,CAAI,EAAE,SAAS,KAAK,MAAM;AAAA,CAAI,EAAE,MAChD;AAAA,EAIA,MAAM,WAAW,MAAM,YAAY,MAAM,MAAM,gBAAgB,KAAK;AAAA,IAClE,GAAG;AAAA,IACH;AAAA,EACF,CAAC;AAAA,EAID,MAAM,QAAQ,CAAC,GAAG,SAAS,KAAK;AAAA,EAChC,MAAM,UAAU,CAAC,GAAG,SAAS,OAAO;AAAA,EACpC,OAAO,MAAM,GAAG,EAAE,GAAG,KAAK,MAAM,IAAI;AAAA,IAClC,MAAM,IAAI;AAAA,IACV,QAAQ,IAAI;AAAA,EACd;AAAA,EACA,OAAO,MAAM,IAAI,KAAK,MAAM,IAAI;AAAA,IAC9B,MAAM,MAAM;AAAA,IACZ,QAAQ,MAAM;AAAA,EAChB;AAAA,EAGA,QAAQ,UAAU,UAAU;AAAA,EAC5B,MAAM,UAAU,aACd,QAAQ,MAAM,IAAI,CAAC,SAAS,oBAAoB,MAAM,KAAK,CAAC,IAAI,OAChE,SAAQ,IAAI,GACZ,SAAQ,QAAQ,CAClB;AAAA,EACA,OAAO;AAAA,IACL,OACE,SAAQ,IAAI,EAAE,YAAY,MAAM,SAChC,SAAQ,QAAQ,EAAE,YAAY,MAAM,SAChC,kBAAkB,OAAO,IACzB;AAAA,IACN;AAAA,EACF;AAAA;AAWF,IAAM,iBAAiB,CACrB,aACA,UAC4B;AAAA,EAC5B,MAAM,aAAa,mBAAmB,QAAQ,QAAQ;AAAA,EACtD,MAAM,SAAS,QAAQ,QAAQ;AAAA,EAC/B,MAAM,UAAmC,YAAY,IAAI,MAAM,IAAI;AAAA,EACnE,IAAI,QAAoB;AAAA,EACxB,IAAI,YAAY;AAAA,EAChB,SAAS,QAAQ,EAAG,QAAQ,YAAY,QAAQ,SAAS,GAAG;AAAA,IAC1D,MAAM,OAAO,YAAY,UAAU;AAAA,IACnC,IAAI,WAAW;AAAA,MACb,YAAY,oBAAoB,MAAM,YAAY,IAAI;AAAA,MACtD;AAAA,IACF;AAAA,IACA,MAAM,OAAO,eAAe,MAAM,KAAK;AAAA,IACvC,MAAM,UAAU,UAAU,QAAQ,SAAS;AAAA,IAC3C,QAAQ;AAAA,IACR,IAAI,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,YAAY,oBAAoB,MAAM,YAAY,KAAK;AAAA,IACvD,IAAI,aAAa,CAAC,qBAAqB,IAAI,GAAG;AAAA,MAC5C;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,sBAAsB,aAAa,OAAO,MAAM;AAAA,IAG9D,IACE,MAAM,SAAS,eACf,CAAC,SACD,kBAAiB,KAAK,YAAY,MAAM,MAAM,MAAM,EAAE,GACtD;AAAA,MACA;AAAA,IACF;AAAA,IACA,QAAQ,SAAS;AAAA,IACjB,IAAI,MAAM,SAAS,aAAa;AAAA,MAE9B,QAAQ,MAAM;AAAA,IAChB;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAUT,IAAM,cAAc,OAClB,MACA,UACA,YACA,KACA,UAC2B;AAAA,EAC3B,MAAM,cAAc,KAAK,MAAM;AAAA,CAAI;AAAA,EACnC,MAAM,QAAQ,SAAQ,QAAQ,EAAE,YAAY,MAAM;AAAA,EAClD,MAAM,UAAU,eAAe,aAAa,KAAK;AAAA,EAIjD,MAAM,aAAa,MAAM,QAAQ,IAC/B,QAAQ,IAAI,CAAC,OAAO,UAClB,OAAO,SAAS,cACZ,gBACE,MAAM,WACN,UACA,aAAa,QAAQ,GACrB,KACA,KACF,IACA,IACN,CACF;AAAA,EAIA,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,UAAwB,CAAC;AAAA,EAC/B,SAAS,QAAQ,EAAG,QAAQ,YAAY,QAAQ,SAAS,GAAG;AAAA,IAC1D,MAAM,OAAO,YAAY,UAAU;AAAA,IACnC,MAAM,UAAU,aAAa,QAAQ;AAAA,IACrC,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,WAAW,WAAW;AAAA,IAC5B,IAAI,OAAO,SAAS,aAAa;AAAA,MAC/B,IAAI,OAAO,KAAK,2BAA2B,UAAU,OAAO,CAAC;AAAA,IAC/D;AAAA,IACA,IAAI,CAAC,YAAY,WAAW,UAAU;AAAA,MACpC,IAAI,UAAU;AAAA,QACZ,IAAI,OAAO,KAAK,SAAS,KAAK;AAAA,MAChC;AAAA,MACA,MAAM,KAAK,IAAI;AAAA,MACf,QAAQ,KAAK,EAAE,MAAM,UAAU,MAAM,QAAQ,CAAC;AAAA,MAC9C;AAAA,IACF;AAAA,IACA,MAAM,MAAM,MAAY;AAAA,MACtB,MAAM,KAAK,EAAE;AAAA,MACb,QAAQ,KAAK,EAAE,MAAM,UAAU,MAAM,QAAQ,CAAC;AAAA;AAAA,IAEhD,IAAI,MAAM,GAAG,EAAE,GAAG,KAAK,GAAG;AAAA,MACxB,IAAI;AAAA,IACN;AAAA,IACA,MAAM,KAAK,GAAG,SAAS,KAAK;AAAA,IAC5B,QAAQ,KAAK,GAAG,SAAS,OAAO;AAAA,IAEhC,IAAI,OAAO,SAAS,aAAa;AAAA,MAC/B,QAAQ,MAAM;AAAA,IAChB;AAAA,IACA,IAAI,YAAY,QAAQ,IAAI,KAAK,GAAG;AAAA,MAClC,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA,OAAO,EAAE,OAAO,QAAQ;AAAA;AAUnB,IAAM,iBAAiB,OAC5B,MACA,YAQ8B;AAAA,EAC9B,MAAM,MAAqB;AAAA,IACzB,aAAa,QAAQ;AAAA,IACrB,QAAQ,CAAC;AAAA,IACT,UAAU,IAAI;AAAA,EAChB;AAAA,EACA,QAAQ,OAAO,YAAY,MAAM,YAC/B,MACA,QAAQ,YACR,QAAQ,cAAc,GACtB,KACA,CAAC,QAAQ,UAAU,CACrB;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,IAAI;AAAA,IACZ,UAAU,CAAC,GAAG,IAAI,QAAQ;AAAA,IAC1B;AAAA,IACA,MAAM,MAAM,KAAK;AAAA,CAAI;AAAA,EACvB;AAAA;AAqFK,IAAM,oBAAoB,CAC/B,UACG;AAAA,EACH,MAAM,QAAkC,CAAC;AAAA,EACzC,WAAW,QAAQ,OAAO;AAAA,IACxB,QAAQ,eAAe;AAAA,IACvB,IAAI,CAAC,YAAY;AAAA,MACf;AAAA,IACF;AAAA,IACA,WAAW,WAAW,KAAK,YAAY,CAAC,GAAG;AAAA,MACzC,MAAM,YAAY,MAAM,YAAY,CAAC;AAAA,MACrC,MAAM,WAAW;AAAA,MACjB,IAAI,CAAC,UAAU,SAAS,UAAU,GAAG;AAAA,QACnC,UAAU,KAAK,UAAU;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;;;ADh3BF,IAAM,gBAAgB,OAC3B,KACA,SACoB;AAAA,EACpB,IAAI,KAAK,MAAM;AAAA,IACb,OAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,MAAM,OAAO,KAAK,QAAQ;AAAA,EAC1B,MAAM,SAAS,OACX,IAAI,SAAS,KAAK,CAAC,cAAc,UAAU,SAAS,IAAI,IACxD;AAAA,EACJ,IAAI,QAAQ,MAAM;AAAA,IAChB,OAAO,MAAM,OAAO,KAAK,KAAK,OAAO,GAAG;AAAA,EAC1C;AAAA,EACA,IAAI,KAAK,YAAY;AAAA,IACnB,OAAO,MAAM,UAAS,KAAK,YAAY,OAAO;AAAA,EAChD;AAAA,EACA,OAAO;AAAA;AAWF,IAAM,wBAAwB,OACnC,KACA,SACoB;AAAA,EACpB,MAAM,YAAY,IAAI,QAAQ;AAAA,EAC9B,MAAM,MAAM,MAAM,cAAc,KAAK,IAAI;AAAA,EACzC,IAAI,EAAE,KAAK,cAAc,qBAAqB,GAAG,IAAI;AAAA,IACnD,OAAO,0BAA0B,KAAK,SAAS;AAAA,EACjD;AAAA,EACA,MAAM,SAAS,IAAI,SAAS,KAC1B,CAAC,cAAc,UAAU,SAAS,KAAK,OAAO,IAChD;AAAA,EAMA,IAAI,CAAC,UAAU,OAAO,UAAU,CAAC,OAAO,aAAa;AAAA,IACnD,OAAO,0BAA0B,KAAK,SAAS;AAAA,EACjD;AAAA,EACA,MAAM,YAAY,MAAM,eAAe,KAAK;AAAA,IAC1C,aAAa,OAAO;AAAA,IACpB,YAAY,KAAK;AAAA,EACnB,CAAC;AAAA,EACD,OAAO,0BAA0B,UAAU,MAAM,SAAS;AAAA;;;AzFlCrD,IAAM,wBAAwB;AAQ9B,IAAM,oBAAoB,CAC/B,aACA,YACW;AAAA,EACX,MAAM,MAAM,UAAS,aAAa,OAAO;AAAA,EACzC,IAAI,IAAI,WAAW,IAAI,GAAG;AAAA,IACxB,OAAO,KAAK,SAAS,OAAO,IAAI,SAAQ,OAAO;AAAA,EACjD;AAAA,EACA,OAAO;AAAA;AAQF,IAAM,kBAAkB,CAAC,OAAe,eAC7C,GAAG,kBAAkB,UAAU,IAAI,yBAAyB,MACzD,MAAM,GAAG,EACT,IAAI,kBAAkB,EACtB,KAAK,GAAG;AAQb,IAAM,uBAAuB;AAC7B,IAAM,uBAAuB;AAUtB,IAAM,wBAAwB,CAAC,YAMxB;AAAA,EACZ,QAAQ,QAAQ,YAAY,aAAa,YAAY,aAAa;AAAA,EAClE,MAAM,YAAY,SAAQ,UAAU;AAAA,EACpC,MAAM,SAAS,CAAC,QAAwB;AAAA,IACtC,MAAM,QAAQ,kBAAkB,aAAa,GAAG;AAAA,IAChD,WAAW,OAAO,GAAG;AAAA,IACrB,OAAO,gBAAgB,OAAO,UAAU;AAAA;AAAA,EAE1C,MAAM,QAAQ,CAAC,WAAkC;AAAA,IAC/C,MAAM,MAAM,qBAAqB,WAAW,MAAM;AAAA,IAClD,OAAO,QAAQ,OAAO,OAAO,OAAO,GAAG;AAAA;AAAA,EAEzC,MAAM,YAAY,CAAC,WAAkC;AAAA,IACnD,MAAM,OAAO,oBAAoB,WAAW,MAAM;AAAA,IAClD,OAAO,SAAS,OAAO,OAAO,GAAG,OAAO,KAAK,IAAI,IAAI,KAAK;AAAA;AAAA,EAG5D,IAAI,QAAoB;AAAA,EACxB,MAAM,QAAQ,OAAO,MAAM;AAAA,CAAI,EAAE,IAAI,CAAC,SAAS;AAAA,IAC7C,MAAM,OAAO,eAAe,MAAM,KAAK;AAAA,IACvC,MAAM,UAAU,UAAU,QAAQ,SAAS;AAAA,IAC3C,QAAQ;AAAA,IAGR,OAAO,UAAU,OAAO,oBAAoB,MAAM,KAAK;AAAA,GACxD;AAAA,EAKD,MAAM,YAAY,kBAAkB,MAAM,KAAK;AAAA,CAAI,GAAG,KAAK;AAAA,EAC3D,MAAM,YAAY,qBAAqB,KAAK,SAAS,IACjD,mBAAmB,WAAW,SAAS,IACvC;AAAA,EACJ,OAAO,qBAAqB,KAAK,SAAS,IACtC,mBAAmB,WAAW,CAAC,QAC7B,iBAAiB,GAAG,IAAI,UAAU,IAAI,KAAK,IAAI,IACjD,IACA;AAAA;AAYC,IAAM,uBAAuB,OAAO,YAKJ;AAAA,EACrC,MAAM,WAAW,IAAI,IAAI,QAAQ,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AAAA,EAC3E,MAAM,QAAgC,CAAC;AAAA,EACvC,MAAM,QAAQ,IACZ,QAAQ,SAAS,OAAO,IAAI,OAAO,UAAU;AAAA,IAC3C,IAAI,CAAC,MAAM,YAAY;AAAA,MACrB;AAAA,IACF;AAAA,IACA,MAAM,OAAO,SAAS,IAAI,MAAM,EAAE;AAAA,IAClC,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,SAAS,OACL,MAAM,sBAAsB,SAAS,IAAI,IACzC,MAAM,UAAS,MAAM,YAAY,OAAO;AAAA,MAC5C,MAAM;AAAA,MACN;AAAA;AAAA,IAEF,sBAAsB;AAAA,MACpB,aAAa,QAAQ,QAAQ;AAAA,MAC7B,UAAU,CAAC,OAAO,QAAQ;AAAA,QACxB,MAAM,SAAS;AAAA;AAAA,MAEjB;AAAA,MACA,YAAY,MAAM;AAAA,IACpB,CAAC;AAAA,GACF,CACH;AAAA,EACA,OAAO;AAAA;;;A2FvJF,IAAM,YAAY,CACvB,SACA,cAEA,QAAQ,OAAO,OAAO,IAAI,WAC1B,CAAC,aACC,WACA,QAAQ,MAAM,OACd,QAAQ,OAAO,OAAO,IAAI,KAC5B;AAUK,IAAM,mBAAmB,CAC9B,QACA,aACoB;AAAA,KACjB;AAAA,EACH,QAAQ;AAAA,OACH,OAAO;AAAA,IACV,KAAK;AAAA,SACA,OAAO,OAAO;AAAA,MACjB,SAAS,OAAO,OAAO,IAAI,WAAW,QAAQ;AAAA,IAChD;AAAA,IACA,SAAS,OAAO,OAAO,WAAW,QAAQ;AAAA,IAC1C,QAAQ,QAAQ,SAAS,OAAO,OAAO,SAAS;AAAA,EAClD;AACF;;;ACrCO,IAAM,qBAAqB,CAChC,UACgB;AAAA,EAChB,IAAI,UAAU,QAAQ,UAAU,WAAW;AAAA,IACzC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,iBAAiB,OAAO,QAAQ,IAAI,KAAK,KAAK;AAAA,EAC3D,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO;AAAA;AAQxC,IAAM,wBAAwB,CAAC,GAAgB,OACnD,GAAG,QAAQ,KAAK,MAAM,GAAG,QAAQ,KAAK;AAiBlC,IAAM,sBAAsB,CACjC,OACA,WAC4B;AAAA,EAC5B,MAAM,SAAkC,CAAC;AAAA,EACzC,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,OAAO,OAAO,IAAI;AAAA,IACxB,MAAM,OAAO,OAAO,GAAG,EAAE;AAAA,IACzB,IAAI,QAAQ,KAAK,SAAS,MAAM;AAAA,MAC9B,KAAK,MAAM,KAAK,IAAI;AAAA,IACtB,EAAO;AAAA,MACL,OAAO,KAAK,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;AAAA;AAAA,EAEvC;AAAA,EACA,OAAO;AAAA;;;ACxCT,IAAM,WAAW,CAAC,SAAuB,UAA0B;AAAA,EACjE,QAAQ,MAAM,SAAS,QAAQ,OAAO,WAAW;AAAA,EACjD,MAAM,OAAO,cAAc,kBAAkB,IAAI,GAAG,KAAK;AAAA,EACzD,OAAO,UAAU,OAAO,aAAY,MAAM,IAAI,IAAI,IAAI;AAAA;AAGxD,IAAM,UAAU,CAAC,WAAyB,MAAM,WAA6B;AAAA,EAC3E,MAAM,UAAU;AAAA,IACd,OAAO,KAAK,YAAY,EAAE,MAAM,GAAG,EAAE,IAAI;AAAA,IACzC,KAAK,KAAK,WAAW,YAAY;AAAA,EACnC,EAAE,OAAO,OAAO;AAAA,EAChB,MAAM,QAAQ,KAAK,MAAM,WAAW,WAAW,OAAO,QAAQ;AAAA,EAC9D,MAAM,OAAO,QAAQ,SAAS,IAAI,MAAM,QAAQ,KAAK,IAAI,MAAM;AAAA,EAC/D,OAAO,MAAM,UAAU,SAAS,SAAS,KAAK,KAAK,KAAK;AAAA;AAcnD,IAAM,uBAAuB,CAAC,YAAoC;AAAA,EACvE,QAAQ,SAAS,QAAQ;AAAA,EACzB,MAAM,OAAmB,QAAQ,MAAM,MACpC,OACC,CAAC,SACC,KAAK,gBAAgB,eACrB,CAAC,KAAK,KAAK,SACX,CAAC,KAAK,KAAK,QAAQ,UACnB,CAAC,KAAK,YACN,KAAK,YAAY,OAChB,CAAC,QAAQ,KAAK,WAAW,KAAK,cACnC,EACC,IAAI,CAAC,UAAU;AAAA,IACd,MAAM,mBAAmB,KAAK,KAAK,QAAQ,KAAK,KAAK,WAAW,IAAI;AAAA,IACpE;AAAA,EACF,EAAE,EACD,SAAS,CAAC,GAAG,MAAM,sBAAsB,EAAE,MAAM,EAAE,IAAI,CAAC;AAAA,EAG3D,OAAO,oBAAoB,MAAM,CAAC,QAChC,IAAI,OAAO,OAAO,IAAI,KAAK,eAAe,CAAC,IAAI,IACjD,EAAE,QAAQ,CAAC,UAAU;AAAA,IACnB,MAAM,MAAM,QAAQ;AAAA,IACpB,MAAM,MAAM,IAAI,CAAC,QAAQ,QAAQ,SAAS,GAAG,CAAC,EAAE,KAAK;AAAA,CAAI;AAAA,EAC3D,CAAC;AAAA;AAGI,IAAM,8BAA8B,CAAC,YAAkC;AAAA,EAC5E,QAAQ,SAAS,QAAQ;AAAA,EACzB,MAAM,KAAK,uBACT,QAAQ,QACR,OACI,iBAAiB,KAAK,eAAe;AAAA,IACnC,eAAe,KAAK;AAAA,IACpB,WAAW,KAAK;AAAA,EAClB,CAAC,IACD,OACJ,MAAM,aACR;AAAA,EACA,MAAM,SAAS;AAAA,IACb,KAAK,GAAG,UAAU;AAAA,IAClB,GAAG,UAAU;AAAA,IACb,GAAG,qBAAqB,OAAO;AAAA,EACjC;AAAA,EACA,OAAO,GAAG,OAAO,KAAK;AAAA;AAAA,CAAM;AAAA;AAAA;;;AClG9B;AACA,uBAAS;;;ACSF,IAAM,kBAAkB,CAAC,QAAQ,SAAS,UAAU,MAAM;;;ACHjE,IAAM,UAAU;AAKhB,IAAM,SACJ;AAIF,IAAM,WACJ;AAOK,IAAM,iBAAiB,CAAC,UAAiC;AAAA,EAC9D,MAAM,QAAQ,MAAM,KAAK;AAAA,EACzB,IAAI,CAAC,OAAO;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,IAAI,QAAQ,KAAK,KAAK,GAAG;AAAA,IACvB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,OAAO,KAAK,KAAK,GAAG,QAAQ,MAAM;AAAA;AAQpC,IAAM,uBAAuB,CAAC,UACnC,SAAS,KAAK,MAAM,KAAK,CAAC,GAAG,QAAQ,QAAQ;AAG/C,IAAM,aAAa,CAAC,UAClB,SAAS,QAAQ,IAAI,EAAE,OAAO,OAAO,KAAK,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC;AAMxD,IAAM,kBAAkB,CAC7B,IACA,UAA8B,CAAC,MACpB;AAAA,EACX,MAAM,OAAO,0CAA0C;AAAA,EACvD,MAAM,SAAS,IAAI,gBAAgB,WAAW,QAAQ,KAAK,CAAC;AAAA,EAC5D,OAAO,OAAO,OAAO,IAAI,GAAG,QAAQ,OAAO,SAAS,MAAM;AAAA;AAOrD,IAAM,0BAA0B,CACrC,MACA,UAA8B,CAAC,MACpB;AAAA,EACX,MAAM,SAAS,IAAI,gBAAgB,EAAE,SAAS,WAAW,QAAQ,KAAK,EAAE,CAAC;AAAA,EACzE,OAAO,sDAAsD,OAAO,SAAS;AAAA;AAOxE,IAAM,kBAAkB,CAC7B,OACA,UAA8B,CAAC,MACb;AAAA,EAClB,MAAM,KAAK,eAAe,KAAK;AAAA,EAC/B,IAAI,IAAI;AAAA,IACN,OAAO,gBAAgB,IAAI,OAAO;AAAA,EACpC;AAAA,EACA,MAAM,OAAO,qBAAqB,KAAK;AAAA,EACvC,OAAO,OAAO,wBAAwB,MAAM,OAAO,IAAI;AAAA;;;ACzDzD,IAAM,YAAY,MAAa;AAAA,EAC7B,MAAM,IAAI,MAAM,yBAAyB;AAAA;AAG3C,IAAM,SAAS,CAAC,UACd,OAAO,UAAU;AAEnB,IAAM,WAAW,CAAC,UAChB,OAAO,UAAU;AAGnB,IAAM,aAAa,CACjB,UAEA,OAAO,UAAU,YACjB,UAAU,QACV,CAAC,MAAM,QAAQ,KAAK,KACpB,EAAE,iBAAiB;AAGrB,IAAM,QAAQ;AAGd,IAAM,aAAa;AAQnB,IAAM,SACJ;AAGF,IAAM,eAAe;AAErB,IAAM,QAAQ;AACd,IAAM,aAAa;AAGnB,IAAM,QAAQ;AAGd,IAAM,iBAAiB;AAGvB,IAAM,kBAAkB,IAAI,IAAI;AAAA,EAC9B,OAAO,cAAc,IAAO;AAAA,EAC5B,OAAO,cAAc,IAAO;AAC9B,CAAC;AAED,IAAM,iBAAiB,IAAI,IAAI;AAAA,EAC7B,CAAC,KAAK,IAAI;AAAA,EACV,CAAC,KAAK,IAAI;AAAA,EACV,CAAC,KAAK;AAAA,CAAI;AAAA,EACV,CAAC,KAAK,IAAI;AAAA,EACV,CAAC,KAAK,IAAI;AAAA,EACV,CAAC,KAAK,IAAI;AACZ,CAAC;AAGD,IAAM,YAAY;AAQlB,IAAM,SAAS,CAAC,MAAsB,QAAgC;AAAA,EACpE,IAAI,SAAS,QAAQ,SAAS,WAAW;AAAA,IACvC,OAAO,UAAU;AAAA,EACnB;AAAA,EACA,IAAI,OAAO,IAAI,KAAK,MAAM,QAAQ,IAAI,GAAG;AAAA,IACvC,IAAI,QAAQ,UAAU;AAAA,MACpB,OAAO,KAAK;AAAA,IACd;AAAA,IACA,OAAO,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,GAAG,KAAK;AAAA,EAC/C;AAAA,EACA,OAAO,WAAW,IAAI,KAAK,OAAO,OAAO,MAAM,GAAG,IAAI,KAAK,OAAO;AAAA;AAAA;AAIpE,MAAM,OAAO;AAAA,EACF;AAAA,EACT,MAAM;AAAA,EACG;AAAA,EAET,WAAW,CACT,QACA,aACA;AAAA,IACA,KAAK,SAAS;AAAA,IACd,KAAK,cAAc;AAAA;AAAA,MAIjB,IAAI,GAAW;AAAA,IACjB,OAAO,KAAK,OAAO,OAAO,KAAK,GAAG;AAAA;AAAA,MAGhC,IAAI,GAAY;AAAA,IAClB,OAAO,KAAK,OAAO,KAAK,OAAO;AAAA;AAAA,EAIjC,KAAK,CAAC,SAAqC;AAAA,IACzC,QAAQ,YAAY,KAAK;AAAA,IACzB,MAAM,QAAQ,QAAQ,KAAK,KAAK,MAAM,IAAI;AAAA,IAC1C,IAAI,UAAU,WAAW;AAAA,MACvB,KAAK,OAAO,MAAM;AAAA,IACpB;AAAA,IACA,OAAO;AAAA;AAAA,EAIT,KAAK,GAAS;AAAA,IACZ,IAAI,UAAU,KAAK,MAAM,KAAK;AAAA,IAC9B,OAAO,YAAY,WAAW;AAAA,MAC5B,UAAU,KAAK,MAAM,KAAK;AAAA,IAC5B;AAAA;AAAA,EAIF,MAAM,CAAC,UAAwB;AAAA,IAC7B,KAAK,MAAM;AAAA,IACX,IAAI,CAAC,KAAK,OAAO,WAAW,UAAU,KAAK,GAAG,GAAG;AAAA,MAC/C,UAAU;AAAA,IACZ;AAAA,IACA,KAAK,OAAO,SAAS;AAAA;AAAA,EAGvB,KAAK,GAAmB;AAAA,IACtB,KAAK,MAAM;AAAA,IACX,QAAQ,SAAS;AAAA,IACjB,IAAI,SAAS,KAAK;AAAA,MAChB,OAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IACA,IAAI,SAAS,KAAK;AAAA,MAChB,OAAO,KAAK,MAAM;AAAA,IACpB;AAAA,IACA,IAAI,SAAS,OAAO,SAAS,KAAK;AAAA,MAChC,OAAO,KAAK,OAAO,IAAI;AAAA,IACzB;AAAA,IACA,IAAI,SAAS,KAAK;AAAA,MAChB,OAAO,KAAK,SAAS;AAAA,IACvB;AAAA,IACA,IAAI,SAAS,KAAK;AAAA,MAChB,KAAK,OAAO;AAAA,MAEZ,MAAM,UAAU,KAAK,SAAS,MAAM,UAAU,IAAI,KAAK,MAAM;AAAA,MAC7D,OAAO,SAAS,OAAO,IAAI,CAAC,UAAU,UAAU;AAAA,IAClD;AAAA,IACA,OAAO,KAAK,OAAO,KAAK,KAAK,KAAK;AAAA;AAAA,EAGpC,MAAM,GAAuB;AAAA,IAC3B,MAAM,OAAO,KAAK,MAAM,MAAM;AAAA,IAC9B,IAAI,SAAS,WAAW;AAAA,MACtB;AAAA,IACF;AAAA,IACA,IACE,aAAa,KAAK,KAAK,IAAI,KAC1B,SAAS,OAAO,MAAM,KAAK,KAAK,IAAI,GACrC;AAAA,MACA,OAAO,UAAU;AAAA,IACnB;AAAA,IACA,OAAO,OAAO,KAAK,WAAW,KAAK,EAAE,CAAC;AAAA;AAAA,EAIxC,IAAI,GAAmB;AAAA,IACrB,MAAM,OAAO,KAAK,MAAM,UAAU;AAAA,IAClC,IAAI,SAAS,QAAQ;AAAA,MACnB,OAAO;AAAA,IACT;AAAA,IACA,IAAI,SAAS,SAAS;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IACA,IAAI,SAAS,QAAQ;AAAA,MACnB,OAAO;AAAA,IACT;AAAA,IACA,IAAI,SAAS,aAAa;AAAA,MACxB;AAAA,IACF;AAAA,IACA,IAAI,SAAS,eAAe;AAAA,MAC1B,OAAO,UAAU;AAAA,IACnB;AAAA,IACA,IAAI,UAA0B,KAAK;AAAA,IACnC,UAAS;AAAA,MACP,KAAK,MAAM;AAAA,MACX,IAAI,KAAK,SAAS,KAAK;AAAA,QACrB,KAAK,OAAO;AAAA,QACZ,KAAK,MAAM;AAAA,QACX,UAAU,OAAO,SAAS,KAAK,MAAM,UAAU,KAAK,UAAU,CAAC;AAAA,MACjE,EAAO,SAAI,KAAK,SAAS,KAAK;AAAA,QAC5B,KAAK,OAAO;AAAA,QACZ,MAAM,MAAM,KAAK,MAAM;AAAA,QACvB,KAAK,OAAO,GAAG;AAAA,QACf,UAAU,OACR,SACA,OAAO,GAAG,KAAK,SAAS,GAAG,IAAI,OAAO,GAAG,IAAI,UAAU,CACzD;AAAA,MACF,EAAO;AAAA,QACL,OAAO;AAAA;AAAA,IAEX;AAAA;AAAA,EAGF,MAAM,GAAmB;AAAA,IACvB,KAAK,OAAO;AAAA,IACZ,MAAM,MAAyC,CAAC;AAAA,IAChD,UAAS;AAAA,MACP,KAAK,MAAM;AAAA,MACX,IAAI,KAAK,SAAS,KAAK;AAAA,QACrB,KAAK,OAAO;AAAA,QACZ,OAAO;AAAA,MACT;AAAA,MACA,MAAM,MAAM,KAAK,IAAI;AAAA,MACrB,KAAK,OAAO,GAAG;AAAA,MACf,IAAI,OAAO,KAAK,MAAM;AAAA,MACtB,KAAK,MAAM;AAAA,MACX,IAAI,KAAK,SAAS,KAAK;AAAA,QACrB,KAAK,OAAO;AAAA,MACd,EAAO,SAAI,KAAK,SAAS,KAAK;AAAA,QAC5B,OAAO,UAAU;AAAA,MACnB;AAAA,IACF;AAAA;AAAA,EAIF,GAAG,GAAW;AAAA,IACZ,QAAQ,SAAS;AAAA,IACjB,IAAI;AAAA,IACJ,IAAI,SAAS,OAAO,SAAS,KAAK;AAAA,MAChC,MAAM,KAAK,OAAO,IAAI;AAAA,IACxB,EAAO;AAAA,MACL,MAAM,SAAS,KAAK,OAAO;AAAA,MAC3B,MACE,WAAW,YACN,KAAK,MAAM,UAAU,KAAK,UAAU,IACrC,OAAO,MAAM;AAAA;AAAA,IAGrB,OAAO,QAAQ,YAAY,UAAU,IAAI;AAAA;AAAA,EAG3C,KAAK,GAAqB;AAAA,IACxB,KAAK,OAAO;AAAA,IACZ,MAAM,MAAwB,CAAC;AAAA,IAC/B,UAAS;AAAA,MACP,KAAK,MAAM;AAAA,MACX,IAAI,KAAK,SAAS,KAAK;AAAA,QACrB,KAAK,OAAO;AAAA,QACZ,OAAO;AAAA,MACT;AAAA,MACA,IAAI,KAAK,KAAK,MAAM,CAAC;AAAA,MACrB,KAAK,MAAM;AAAA,MACX,IAAI,KAAK,SAAS,KAAK;AAAA,QACrB,KAAK,OAAO;AAAA,MACd,EAAO,SAAI,KAAK,SAAS,KAAK;AAAA,QAC5B,OAAO,UAAU;AAAA,MACnB;AAAA,IACF;AAAA;AAAA,EAGF,MAAM,CAAC,OAAuB;AAAA,IAC5B,KAAK,OAAO;AAAA,IACZ,IAAI,MAAM;AAAA,IACV,UAAS;AAAA,MACP,QAAQ,SAAS;AAAA,MACjB,IAAI,KAAK,QAAQ,SAAS;AAAA,KAAQ,SAAS,MAAM;AAAA,QAC/C,OAAO,UAAU;AAAA,MACnB;AAAA,MACA,KAAK,OAAO;AAAA,MACZ,IAAI,SAAS,OAAO;AAAA,QAClB,OAAO;AAAA,MACT;AAAA,MACA,OAAO,SAAS,OAAO,KAAK,OAAO,IAAI;AAAA,IACzC;AAAA;AAAA,EAGF,QAAQ,GAAW;AAAA,IACjB,KAAK,OAAO;AAAA,IACZ,IAAI,MAAM;AAAA,IACV,UAAS;AAAA,MACP,IAAI,KAAK,MAAM;AAAA,QACb,OAAO,UAAU;AAAA,MACnB;AAAA,MACA,QAAQ,SAAS;AAAA,MACjB,KAAK,OAAO;AAAA,MACZ,IAAI,SAAS,KAAK;AAAA,QAChB,OAAO;AAAA,MACT;AAAA,MACA,IAAI,SAAS,MAAM;AAAA,QACjB,OAAO,KAAK,OAAO;AAAA,MACrB,EAAO,SAAI,SAAS,OAAO,KAAK,SAAS,KAAK;AAAA,QAC5C,KAAK,OAAO;AAAA,QACZ,OAAO,OAAO,KAAK,MAAM,CAAC;AAAA,QAC1B,KAAK,OAAO,GAAG;AAAA,MACjB,EAAO,SAAI,SAAS,MAAM;AAAA,QAExB,IAAI,KAAK,SAAS;AAAA,GAAM;AAAA,UACtB,KAAK,OAAO;AAAA,QACd;AAAA,QACA,OAAO;AAAA;AAAA,MACT,EAAO;AAAA,QACL,OAAO;AAAA;AAAA,IAEX;AAAA;AAAA,EAIF,MAAM,GAAW;AAAA,IACf,IAAI,KAAK,MAAM;AAAA,MACb,OAAO,UAAU;AAAA,IACnB;AAAA,IACA,QAAQ,SAAS;AAAA,IACjB,KAAK,OAAO;AAAA,IACZ,IAAI,MAAM,KAAK,IAAI,GAAG;AAAA,MAEpB,OAAO,SAAS,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,SAAO,UAAU;AAAA,IACnE;AAAA,IACA,IAAI,SAAS,KAAK;AAAA,MAChB,OAAO,OAAO,cAAc,KAAK,IAAI,CAAC,CAAC;AAAA,IACzC;AAAA,IACA,IAAI,SAAS,KAAK;AAAA,MAChB,OAAO,OAAO,cACZ,KAAK,SAAS,MAAM,KAAK,UAAU,IAAI,KAAK,IAAI,CAAC,CACnD;AAAA,IACF;AAAA,IACA,IAAI,SAAS,MAAM;AAAA,MAEjB,IAAI,KAAK,SAAS;AAAA,GAAM;AAAA,QACtB,KAAK,OAAO;AAAA,MACd;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IACA,IAAI,SAAS;AAAA,KAAQ,gBAAgB,IAAI,IAAI,GAAG;AAAA,MAC9C,OAAO;AAAA,IACT;AAAA,IACA,OAAO,eAAe,IAAI,IAAI,KAAK;AAAA;AAAA,EAIrC,GAAG,CAAC,QAAwB;AAAA,IAC1B,MAAM,SAAS,KAAK,OAAO,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM;AAAA,IAC5D,IAAI,OAAO,WAAW,UAAU,CAAC,WAAW,KAAK,MAAM,GAAG;AAAA,MACxD,OAAO,UAAU;AAAA,IACnB;AAAA,IACA,KAAK,OAAO;AAAA,IACZ,OAAO,OAAO,SAAS,QAAQ,EAAE;AAAA;AAAA,EAInC,SAAS,GAAW;AAAA,IAClB,MAAM,MAAM,KAAK,OAAO,QAAQ,KAAK,KAAK,GAAG;AAAA,IAC7C,MAAM,SAAS,QAAQ,KAAK,KAAK,KAAK,OAAO,MAAM,KAAK,MAAM,GAAG,GAAG;AAAA,IACpE,MAAM,OAAO,WAAW,KAAK,MAAM,IAAI,OAAO,SAAS,QAAQ,EAAE,IAAI;AAAA,IACrE,IAAI,OAAO,KAAK,OAAO,gBAAgB;AAAA,MACrC,OAAO,UAAU;AAAA,IACnB;AAAA,IACA,KAAK,MAAM,MAAM;AAAA,IACjB,OAAO;AAAA;AAEX;AAOO,IAAM,uBAAuB,CAClC,KACA,gBAC2B;AAAA,EAC3B,MAAM,SAAS,IAAI,OAAO,KAAK,WAAW;AAAA,EAC1C,IAAI;AAAA,IACF,MAAM,QAAQ,OAAO,MAAM;AAAA,IAC3B,OAAO,MAAM;AAAA,IACb,OAAO,OAAO,OAAO,EAAE,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,OAAO,OAAO,UAAU;AAAA,IACzE,MAAM;AAAA,IAEN,OAAO,EAAE,IAAI,OAAO,OAAO,UAAU;AAAA;AAAA;;;AH/VzC,IAAM,iBAAiB;AAiBhB,IAAM,YAAW,CAAQ,UAC9B,OAAO,UAAU;AAEnB,IAAM,YAAW,CAAQ,UACvB,OAAO,UAAU;AAGnB,IAAM,cAAa,CACjB,UAEA,OAAO,UAAU,YACjB,UAAU,QACV,CAAC,MAAM,QAAQ,KAAK,KACpB,EAAE,iBAAiB;AAiErB,IAAM,YAAY,CAChB,MACA,gBACmB;AAAA,EACnB,MAAM,QAAwC,CAAC;AAAA,EAC/C,IAAI,QAAQ;AAAA,EACZ,WAAW,aAAa,KAAK,cAAc,CAAC,GAAG;AAAA,IAE7C,IAAI,UAAU,SAAS,qBAAqB,CAAC,UAAU,MAAM;AAAA,MAC3D,QAAQ;AAAA,MACR;AAAA,IACF;AAAA,IACA,IAAI,UAAU,UAAU,QAAQ,UAAU,UAAU,WAAW;AAAA,MAE7D,MAAM,UAAU,QAAQ;AAAA,IAC1B,EAAO,SAAI,UAAS,UAAU,KAAK,GAAG;AAAA,MACpC,MAAM,UAAU,QAAQ,UAAU;AAAA,IACpC,EAAO;AAAA,MACL,MAAM,SAAS,qBAAqB,UAAU,MAAM,OAAO,WAAW;AAAA,MACtE,IAAI,OAAO,IAAI;AAAA,QACb,MAAM,UAAU,QAAQ,OAAO;AAAA,MACjC,EAAO;AAAA,QACL,QAAQ;AAAA;AAAA;AAAA,EAGd;AAAA,EACA,OAAO,EAAE,OAAO,MAAM;AAAA;AAMxB,IAAM,aAAa,CAAC,SAClB,OAAO,KAAK,UAAU,OAAO,WAAW,YACxC,OAAO,KAAK,UAAU,KAAK,WAAW;AAGxC,IAAM,gBAAe,CAAC,MAAc,YAA8B;AAAA,EAChE,IAAI,SAAS;AAAA,EACb,WAAW,UAAU,CAAC,GAAG,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG;AAAA,IAIvE,MAAM,YAAY,OAAO,YAAY;AAAA,GAAM,OAAO,QAAQ,CAAC,IAAI;AAAA,IAC/D,MAAM,SAAS,OAAO,MAAM,WAAW,OAAO,KAAK;AAAA,IACnD,MAAM,SAAS,YAAY,KAAK,MAAM,IAAI,SAAS;AAAA,IAKnD,MAAM,UACJ,OAAO,SACP,OAAO,SAAS,MAChB,eAAe,KAAK,OAAO,MAAM,OAAO,GAAG,CAAC,IACxC,GAAG,OAAO;AAAA,IACV,OAAO;AAAA,IACb,MAAM,cAAc,SAChB,QACG,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,MAAM,UACV,UAAU,KAAK,SAAS,KAAK,OAAO,GAAG,SAAS,MAClD,EACC,KAAK;AAAA,CAAI,IACZ;AAAA,IACJ,SACE,OAAO,MAAM,GAAG,OAAO,KAAK,IAAI,cAAc,OAAO,MAAM,OAAO,GAAG;AAAA,EACzE;AAAA,EACA,OAAO;AAAA;AAaT,IAAM,SAAS,CAAC,MAAc,gBAAiC;AAAA,EAC7D,MAAM,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,EAC7B,MAAM,OAAO,MAAM,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,KAAK,KAAK,MAAM,EAAE;AAAA,EAC/D,IAAI,KAAK,WAAW,GAAG;AAAA,IACrB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,KAAK,IAClB,GAAG,KAAK,IAAI,CAAC,SAAS,KAAK,SAAS,KAAK,UAAU,EAAE,MAAM,GAC3D,GAAI,gBAAgB,YAAY,CAAC,IAAI,CAAC,WAAW,CACnD;AAAA,EACA,IAAI,WAAW,GAAG;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,GAAG,MACA,MAAM,CAAC,EACP,IAAI,CAAC,SAAU,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,MAAM,CAAE;AAAA,EACjE,EAAE,KAAK;AAAA,CAAI;AAAA;AAOb,IAAM,WAAW,CAAC,QAAgB,WAAuC;AAAA,EACvE,MAAM,YAAY,OAAO,YAAY;AAAA,GAAM,SAAS,CAAC,IAAI;AAAA,EACzD,MAAM,SAAS,OAAO,MAAM,WAAW,MAAM;AAAA,EAC7C,OAAO,YAAY,KAAK,MAAM,IAAI,OAAO,SAAS;AAAA;AAGpD,IAAM,eAAe,CAAC,SACpB,KAAK,SAAS,uBAAuB,KAAK,SAAS;AAGrD,IAAM,WAAW,CAAC,UAChB,OAAO,SAAS,EAAE,EACf,WAAW,cAAc,GAAG,EAC5B,WAAW,KAAK,KAAK,EACrB,KAAK;AAGV,IAAM,WAAW,CAAC,UAAkC;AAAA,EAClD,MAAM,OAAO,SAAS,KAAK;AAAA,EAC3B,OAAO,QAAQ,CAAC,KAAK,SAAS,GAAG,IAAI,KAAK,WAAW;AAAA;AAsBvD,IAAM,iBAAiB,CACrB,UAEA,OAAO,UAAU,YAAY,UAAU;AAEzC,IAAM,YAA+B,GAAG,UAAU,YAAY;AAAA,EAC5D,QAAQ,SAAS;AAAA,EACjB,IAAI,CAAC,eAAe,IAAI,GAAG;AAAA,IAEzB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,OAAO,QAAQ,IAAI;AAAA,EACnC,MAAM,OAAO,QAAQ,IAAI,EAAE,MAAM,UAAU;AAAA,IACzC,MAAM,OAAO,SAAS,GAAG,OAAO,KAAK,WAAW,KAAK,KAAK;AAAA,IAC1D,MAAM,WAAW,KAAK,sBAClB,IAAI,SAAS,KAAK,IAAI,MAAM,SAAS,KAAK,mBAAmB,OAC7D,SAAS,KAAK,IAAI;AAAA,IACtB,MAAM,cACJ,KAAK,YAAY,YAAY,MAAM,SAAS,KAAK,OAAO;AAAA,IAC1D,MAAM,cAAc,SAClB,CAAC,KAAK,aAAa,KAAK,eAAe,EACpC,OAAO,CAAC,SAAS,UAAS,IAAI,KAAK,SAAS,EAAE,EAC9C,KAAK,GAAG,CACb;AAAA,IACA,OAAO,CAAC,MAAM,UAAU,aAAa,WAAW;AAAA,GACjD;AAAA,EACD,MAAM,QACJ,KAAK,SAAS,IACV,cAAc,CAAC,CAAC,QAAQ,QAAQ,WAAW,aAAa,GAAG,GAAG,IAAI,GAAG;AAAA,IAGnE,iBAAiB;AAAA,EACnB,CAAC,IACD;AAAA,EAEN,OAAO,CAAC,OAAO,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA;AAAA,CAAM;AAAA;AAGtD,IAAM,UAA6B,GAAG,UAAU,YAAY;AAAA,EAC1D,MAAM,OAAO,UAAS,MAAM,IAAI,IAAI,MAAM,OAAO;AAAA,EACjD,MAAM,QACJ,UAAS,MAAM,KAAK,KAAK,MAAM,UAAU,KACrC,MAAM,QACN,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC;AAAA,EACjD,IAAI,CAAC,UAAU;AAAA,IACb,OAAO,OAAO;AAAA,EAChB;AAAA,EACA,MAAM,OAAO,SACV,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,SAAU,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAO,EACtD,KAAK;AAAA,CAAI;AAAA,EACZ,OAAO,OAAO;AAAA;AAAA,EAAe;AAAA;AAI/B,IAAM,YAAW,CAAC,OAAe,YAA4B;AAAA,EAC3D,MAAM,SAAS,GAAG;AAAA,EAClB,OAAO,QACJ,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,MAAM,cAAc;AAAA,IACxB,IAAI,cAAc,GAAG;AAAA,MACnB,OAAO,GAAG,SAAS;AAAA,IACrB;AAAA,IACA,OAAO,SAAS,KAAK,KAAK,OAAO;AAAA,GAClC,EACA,KAAK;AAAA,CAAI;AAAA;AAGd,IAAM,QAA2B,GAAG,iBAAiB,eAAe;AAAA,EAClE,MAAM,QAAQ,gBAAgB,MAAM;AAAA,EACpC,IAAI,MAAM,WAAW,GAAG;AAAA,IACtB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,MACJ,IAAI,CAAC,MAAM,UAAU;AAAA,IACpB,MAAM,QACJ,UAAS,KAAK,MAAM,KAAK,KAAK,KAAK,MAAM,UAAU,KAC/C,KAAK,KAAK,MAAM,YAChB;AAAA,IACN,MAAM,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA;AAAA,CAAM;AAAA,IAClE,OAAO,UAAS,QAAQ,GAAG,OAAO;AAAA,GACnC,EACA,KAAK;AAAA;AAAA,CAAM;AAAA;AAGhB,IAAM,OAA0B,GAAG,iBAAiB,eAAe;AAAA,EACjE,MAAM,QAAQ,gBAAgB,KAAK;AAAA,EACnC,IAAI,MAAM,WAAW,GAAG;AAAA,IACtB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,MACJ,IAAI,CAAC,KAAK,UAAU;AAAA,IACnB,MAAM,QACJ,UAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,UAAU,KAC7C,IAAI,MAAM,QACV,OAAO,QAAQ;AAAA,IACrB,OAAO,IAAI,WAAW,KAAK;AAAA;AAAA,EAAc,IAAI,aAAa,KAAK;AAAA,GAChE,EACA,KAAK;AAAA;AAAA,CAAM;AAAA;AAOhB,IAAM,OAA0B,GAAG,UAAU,YAAY;AAAA,EACvD,MAAM,QAAQ,UAAS,MAAM,KAAK,KAAK,MAAM,UAAU,KAAK,MAAM,QAAQ;AAAA,EAC1E,IAAI,CAAC,OAAO;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,OAAO,WAAW,KAAK;AAAA;AAAA,EAAc,aAAa,KAAK;AAAA;AAIzD,IAAM,WAAW,CAAC,UAChB,MAAM,WAAW,WAAW,OAAO,QAAQ;AAOtC,IAAM,kBAAkB,CAAC,SAC9B,YAAY,KAAK,IAAI,IACjB,IAAI,KAAK,WAAW,UAAU,OAAO,QAAQ,OAC7C;AAGN,IAAM,WAAW,CAAC,UAAkC;AAAA,EAClD,IAAI,UAAS,KAAK,GAAG;AAAA,IACnB,OAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EACA,OAAO,UAAS,KAAK,IAAI,OAAO,KAAK,IAAI;AAAA;AAI3C,IAAM,SAAS,CAAC,UACd,UAAU,QAAQ,UAAU;AAG9B,IAAM,YAAY,CAAC,WAChB,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,QAAQ,EAAE,OAAO,OAAO;AAQvE,IAAM,WAAW,GACb,UAAU,OAAO,SACnB,MACA,aACkB;AAAA,EAClB,IAAI,SAAS,SAAS,IAAI;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,MAAM;AAAA,EACpB,MAAM,OAAO;AAAA,IACX,GAAG,UAAU,MAAM,GAAG;AAAA,IACtB,KAAK,SAAS,IAAI;AAAA,IAClB,GAAG,UAAU,MAAM,IAAI;AAAA,IACvB;AAAA,IACA,SAAS,MAAM,IAAI,KAAK,SAAS,MAAM,IAAI;AAAA,IAC3C,OAAO,MAAM,QAAQ,IAAI,aAAa;AAAA,IACtC,OAAO,MAAM,UAAU,IAAI,eAAe;AAAA,IAC1C,UAAU,aAAa,UAAU,QAAQ,UAAU,KAC/C,KACA,WAAW,SAAS,UAAS,KAAK,IAAI,QAAQ,KAAK,UAAU,KAAK,CAAC;AAAA,EACzE,EAAE,OAAO,OAAO;AAAA,EAChB,MAAM,OAAO,KAAK,KAAK,KAAK,KAAK;AAAA,EACjC,IAAI,CAAC,UAAU;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,SACV,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,SAAU,SAAS,KAAK,KAAK,KAAK,MAAO,EAC9C,KAAK;AAAA,CAAI;AAAA,EACZ,OAAO,GAAG;AAAA;AAAA,EAAW;AAAA;AAIvB,IAAM,qBAAwC,CAAC,YAAY;AAAA,EACzD,MAAM,WAAW,gBAAgB,KAAK,CAAC,QAAQ,UAAS,QAAQ,MAAM,IAAI,CAAC;AAAA,EAC3E,OAAO,WACH,SAAS,SAAS,SAAS,QAAQ,MAAM,SAAS,GAAG,QAAQ,IAC7D,SAAS,SAAS,SAAS,QAAQ,MAAM,IAAI,CAAC;AAAA;AAGpD,IAAM,wBAA2C,CAAC,YAChD,SAAS,SAAS,SAAS,QAAQ,MAAM,IAAI,CAAC;AAehD,IAAM,OAA0B,GAAG,UAAU,OAAO,YAAY;AAAA,EAC9D,IAAI,OAAO;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,SAAS,MAAM,KAAK;AAAA,EAClC,MAAM,OAAO,UAAS,MAAM,IAAI,IAAI,MAAM,KAAK,KAAK,IAAI;AAAA,EACxD,MAAM,OAAO,SAAS,KAAK;AAAA,EAC3B,MAAM,MAAM,SAAS,MAAM,GAAG;AAAA,EAC9B,MAAM,QAAQ,SAAS;AAAA,EACvB,IAAI,UAAU,IAAI;AAAA,IAEhB,MAAM,OAAO,CAAC,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA;AAAA,CAAM;AAAA,IAEpD,OAAO,SAAS,KAAK,OAAO;AAAA,EAC9B;AAAA,EACA,MAAM,OACJ,SAAS,KACL,KAAK,YACL,MAAM,SAAS,KAAK,MAAM,gBAAgB,IAAI;AAAA,EACpD,OAAO,CAAC,MAAM,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA;AAAA,CAAM;AAAA;AAkBtD,IAAM,YAA+B,GAAG,kBACtC,YAAY,EACT,IAAI,CAAC,UAAU,MAAM,QAAQ,EAC7B,OAAO,OAAO,EACd,KAAK;AAAA;AAAA,CAAM;AAEhB,IAAM,UAA6B,GAAG,YAAY;AAAA,EAChD,IAAI,QAAQ;AAAA,EACZ,IAAI,UAAS,MAAM,EAAE,GAAG;AAAA,IACtB,QAAQ,MAAM;AAAA,EAChB,EAAO,SAAI,UAAS,MAAM,GAAG,GAAG;AAAA,IAC9B,QAAQ,MAAM;AAAA,EAChB;AAAA,EACA,MAAM,QACJ,UAAS,MAAM,KAAK,KAAK,MAAM,UAAU,KACrC,MAAM,QACN;AAAA,EACN,MAAM,UAAU,eAAe,KAAK;AAAA,EACpC,IAAI,CAAC,SAAS;AAAA,IACZ,MAAM,OAAO,qBAAqB,KAAK;AAAA,IACvC,OAAO,OACH,IAAI,gDAAgD,UACpD;AAAA,EACN;AAAA,EACA,MAAM,QACJ,UAAS,MAAM,KAAK,KAAK,MAAM,QAAQ,IACnC,MAAM,KAAK,MAAM,MAAM,KAAK,OAC5B;AAAA,EACN,OAAO,IAAI,0CAA0C,UAAU;AAAA;AAS1D,IAAM,aAAa,CAAC,SAAyB;AAAA,EAClD,MAAM,OAAO,KAAK,MAAM,MAAM;AAAA,EAC9B,MAAM,UAAU,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI;AAAA,EACpE,MAAM,YAAY,IAAI,OAAO,UAAU,CAAC;AAAA,EACxC,MAAM,SACJ,KAAK,WAAW,GAAG,KAAK,KAAK,SAAS,GAAG,IAAI,IAAI,UAAU;AAAA,EAC7D,OAAO,GAAG,YAAY,SAAS;AAAA;AAI1B,IAAM,cAAc,CAAC,MAAc,SAAyB;AAAA,EACjE,MAAM,UAAU,KAAK,QAAQ,gBAAgB,EAAE;AAAA,EAC/C,MAAM,OAAO,QAAQ,MAAM,MAAM;AAAA,EACjC,MAAM,UAAU,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI;AAAA,EACpE,MAAM,QAAQ,IAAI,OAAO,KAAK,IAAI,GAAG,UAAU,CAAC,CAAC;AAAA,EACjD,OAAO,GAAG,QAAQ;AAAA,EAAS;AAAA,EAAY;AAAA;AAWlC,IAAM,8BAA8B,CAAC,cACzC;AAAA,EACC,WAAW,GAAG,YAAY;AAAA,IACxB,MAAM,OAAO,UAAS,MAAM,IAAI,IAAI,MAAM,OAAO;AAAA,IACjD,MAAM,UAAU,SAAS,YAAY,YAAY,SAAS;AAAA,IAC1D,OAAO,UAAU,YAAY,QAAQ,MAAM,QAAQ,MAAM,IAAI;AAAA;AAEjE;AAGF,IAAM,UAAU,CAAC,UAAkB,UACjC,CAAC,UAAU,KAAK,KAAK,KAAK,WAAW,GAAG,KAAK,EAC1C,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB,OAAO,OAAO,EACd,KAAK;AAAA;AAAA,CAAM;AAOhB,IAAM,aAAa,GACf,UAAU,OAAO,SACnB,kBAEA,QACI,OACA,QACE,SAAS,MAAM,KAAK,KAAK,eACzB,SAAS,MAAM,WAAW,GAC1B,QACF;AAEN,IAAM,gBAAmC,CAAC,YAAY,WAAW,SAAS,EAAE;AAE5E,IAAM,aAAgC,CAAC,YACrC,WAAW,SAAS,WAAW;AAGjC,IAAM,QAA2B,GAAG,UAAU,YAC5C,CAAC,SAAS,MAAM,IAAI,GAAG,UAAU,SAAS,MAAM,OAAO,CAAC,EACrD,OAAO,OAAO,EACd,KAAK;AAAA;AAAA,CAAM;AAGhB,IAAM,OAA0B,GAAG,eAAe;AAGlD,IAAM,QAA2B,GAAG,UAAU,YAC5C,QAAQ,SAAS,MAAM,KAAK,GAAG,QAAQ;AAMzC,IAAM,OAA0B,GAAG,UAAU,OAAO,YAAY;AAAA,EAC9D,IAAI,OAAO;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,SAAS,MAAM,KAAK;AAAA,EAClC,MAAM,OAAO,UAAS,MAAM,IAAI,IAAI,MAAM,KAAK,KAAK,IAAI;AAAA,EACxD,MAAM,QAAQ,SAAS;AAAA,EACvB,MAAM,OACJ,SAAS,KACL,QAAQ,KAAK,IACb,MAAM,SAAS,KAAK,MAAM,gBAAgB,IAAI;AAAA,EACpD,MAAM,OAAO,CAAC,MAAM,SAAS,MAAM,WAAW,GAAG,QAAQ,EACtD,OAAO,OAAO,EACd,KAAK;AAAA;AAAA,CAAM;AAAA,EACd,OAAO,SAAS,KAAK,OAAO;AAAA;AAO9B,IAAM,SAA4B,GAAG,UAAU,OAAO,YAAY;AAAA,EAChE,IAAI,OAAO;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,SAAS,MAAM,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK;AAAA,EAChE,MAAM,OAAO,UAAS,MAAM,IAAI,IAAI,MAAM,KAAK,KAAK,IAAI;AAAA,EACxD,MAAM,OACJ,SAAS,KACL,KAAK,YACL,MAAM,SAAS,KAAK,MAAM,gBAAgB,IAAI;AAAA,EACpD,MAAM,QAAQ,MAAM,QAAQ,MAAM,IAAI,IAAI,MAAM,OAAO,CAAC,MAAM,IAAI,GAC/D,IAAI,QAAQ,EACZ,OAAO,OAAO;AAAA,EACjB,OAAO;AAAA,IACL;AAAA,IACA,SAAS,MAAM,WAAW;AAAA,IAC1B,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,IAAI,MAAM;AAAA,IAC/C;AAAA,EACF,EACG,OAAO,OAAO,EACd,KAAK;AAAA;AAAA,CAAM;AAAA;AAOhB,IAAM,SAA4B,GAAG,UAAU,YAAY;AAAA,EACzD,MAAM,SAAS,SACZ,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,SAAU,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAO,EACtD,KAAK;AAAA,CAAI;AAAA,EACZ,OAAO,QACL,SAAS,MAAM,WAAW,KAAK,UAC/B,WAAW,SAAS,EACtB;AAAA;AAQF,IAAM,aAAgC,GAAG,OAAO,YAAY;AAAA,EAC1D,MAAM,QAAQ,SAAS,MAAM,KAAK;AAAA,EAClC,MAAM,OAAO,SAAS,MAAM,IAAI;AAAA,EAChC,IAAI,SAAS,UAAU,MAAM,SAAS,IAAI;AAAA,IACxC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,SAAS,MAAM,IAAI,KAAK,sBAAsB,QAC1D,SACA,EACF;AAAA,EACA,OAAO,IAAI,SAAS,GAAG,SAAS,MAAM,MAAM,gBAAgB,GAAG,QAAQ,SAAS,MAAM;AAAA;AAQxF,IAAM,YAA+B,GAAG,UAAU,OAAO,YAAY;AAAA,EACnE,IAAI,OAAO;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,IAAI,CAAC,UAAS,MAAM,IAAI,GAAG;AAAA,IACzB,OAAO,MAAM,SAAS,aAAa,aAAa,KAAK,WAAW;AAAA,EAClE;AAAA,EACA,MAAM,OAAO,SAAS,MAAM,IAAI,KAAK;AAAA,EACrC,MAAM,QAAQ,SAAS,MAAM,KAAK;AAAA,EAClC,OAAO,YACL,UAAU,KAAK,OAAO,GAAG,cAAc,KAAK,UAAU,KAAK,KAC3D,MAAM,IACR;AAAA;AAQF,IAAM,OAA0B,GAAG,OAAO,YAAY;AAAA,EACpD,IAAI,OAAO;AAAA,IACT,OAAO;AAAA,EACT;AAAA,EACA,IAAI,UAAS,MAAM,KAAK,GAAG;AAAA,IACzB,OAAO,YAAY,QAAQ,MAAM,KAAK;AAAA,EACxC;AAAA,EACA,IAAI,UAAS,MAAM,GAAG,KAAK,UAAS,MAAM,GAAG,GAAG;AAAA,IAC9C,MAAM,OAAO,SAAS,MAAM,IAAI;AAAA,IAChC,OAAO;AAAA,MACL,QAAQ,UAAU,YAAY,MAAM,MAAM,GAAG,CAAC;AAAA,MAC9C,QAAQ,SAAS,YAAY,MAAM,MAAM,GAAG,CAAC;AAAA,IAC/C,EAAE,KAAK;AAAA;AAAA,CAAM;AAAA,EACf;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,OAA0B,GAAG,OAAO,YAAY;AAAA,EACpD,IAAI,SAAS,CAAC,UAAS,MAAM,IAAI,GAAG;AAAA,IAClC,OAAO;AAAA,EACT;AAAA,EACA,OAAO,MAAM,YAAY,OAAO;AAAA,EAAO,MAAM;AAAA,MAAa,IAAI,MAAM;AAAA;AAItE,IAAM,OAA0B,GAAG,YAAY,SAAS,MAAM,KAAK;AAGnE,IAAM,QAA2B,GAAG,eAAe;AAMnD,IAAM,UAA6B,GAAG,UAAU,OAAO,YAAY;AAAA,EACjE,MAAM,MAAM,CAAC,SAAS,MAAM,QAAQ,GAAG,SAAS,MAAM,GAAG,CAAC,EACvD,OAAO,OAAO,EACd,KAAK,IAAI;AAAA,EACZ,IAAI,SAAS,QAAQ,IAAI;AAAA,IACvB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,WAAW,GAAG,aAAa,SAAS;AAAA;AAI7C,IAAM,SAAS,CAAC,UACd,MACG,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,SAAU,SAAS,KAAK,OAAO,KAAK,MAAO,EAChD,KAAK;AAAA,CAAI;AAMd,IAAM,WAA8B,GAAG,kBACrC,YAAY,EACT,IAAI,CAAC,UAAU,MAAM,QAAQ,EAC7B,KAAK;AAAA,CAAI;AAEd,IAAM,aAAgC,GAAG,aAAa,OAAO,YAAY;AAAA,EACvE,MAAM,OAAO,SAAS,MAAM,IAAI;AAAA,EAChC,IAAI,SAAS,SAAS,IAAI;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,YAAY,EACzB,IAAI,CAAC,UAAU,OAAO,MAAM,QAAQ,CAAC,EACrC,KAAK;AAAA,CAAI;AAAA,EACZ,OAAO,YAAY,KAAK,KAAK,UAAU,KAAK;AAAA,EAAU;AAAA;AAGxD,IAAM,WAA8B,GAAG,OAAO,YAAY;AAAA,EACxD,MAAM,OAAO,SAAS,MAAM,IAAI;AAAA,EAChC,OAAO,SAAS,SAAS,KAAK,OAAO,KAAK;AAAA;AAO5C,IAAM,YAA+B,GAAG,OAAO,YAAY;AAAA,EACzD,MAAM,OAAO,SAAS,MAAM,IAAI;AAAA,EAChC,QAAQ,UAAU;AAAA,EAClB,IAAI,SAAS,SAAS,IAAI;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,UAAS,KAAK,GAAG;AAAA,IACnB,OAAO,OAAO,WAAW,WAAW,KAAK;AAAA,EAC3C;AAAA,EACA,IAAI,CAAC,YAAW,KAAK,GAAG;AAAA,IACtB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,SAAS,MAAM,KAAK;AAAA,EAClC,MAAM,OAAO,SAAS,MAAM,IAAI;AAAA,EAChC,IAAI,UAAU,MAAM,SAAS,IAAI;AAAA,IAC/B,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QACJ,SAAS,QAAQ,UAAU,OACvB,GAAG,WAAW,KAAK,cAAc,WAAW,IAAI,aAChD,WAAW,SAAS,IAAI;AAAA,EAC9B,OAAO,OAAO,WAAW;AAAA;AAG3B,IAAM,WAA8B,GAAG,aAAa,YAClD,QACE,SAAS,MAAM,KAAK,GACpB,YAAY,EACT,IAAI,CAAC,UAAU,MAAM,QAAQ,EAC7B,KAAK;AAAA,CAAI,CACd;AASF,IAAM,cAAc;AAAA,EAClB,WAAW;AAAA,EACX,eAAe;AAAA,EACf,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,cAAc;AAAA,EACd,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,aAAa;AAAA,EACb,eAAe;AAAA,EACf,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AACX;AAMA,IAAM,oBAAoB,IAAI,IAAI,CAAC,SAAS,QAAQ,QAAQ,SAAS,CAAC;AAEtE,IAAM,eAAe,CAAC,UACpB,MAAM,WAAW,wBAAwB,OAAO,QAAQ;AAK1D,IAAM,gBAAgB,CAAC,aACrB,IAAI,OACF,OAAO,OAAO,KAAK,QAAQ,EAAE,IAAI,YAAY,EAAE,KAAK,GAAG,aACvD,GACF;AAEF,IAAM,gBAAgB,cAAc,WAAW;AAYxC,IAAM,oBAAoB,CAC/B,eAEA,cAAc,OAAO,KAAK,UAAU,EAAE,SAAS,IAC3C,KAAK,gBAAgB,WAAW,IAChC;AAQN,IAAM,cAAc,CAClB,MACA,OACA,KACA,UACW;AAAA,EACX,MAAM,UAAoB,CAAC;AAAA,EAE3B,eAAe,MAAM,OAAO,OAAO;AAAA,EAKnC,MAAM,SAAS,SAAS,KAAK,QAAQ,KAAK;AAAA,EAC1C,MAAM,OAAO,SAAS,UAAU;AAAA,EAChC,MAAM,UAAU,cACd,KAAK,OAAO,MAAM,MAAM,GAAG,GAC3B,QAAQ,IAAI,CAAC,YAAY;AAAA,OACpB;AAAA,IACH,KAAK,OAAO,MAAM;AAAA,IAClB,OAAO,OAAO,QAAQ;AAAA,EACxB,EAAE,CACJ;AAAA,EACA,OAAO,OAAO,SAAS,MAAM,EAAE,KAAK;AAAA;AAItC,IAAM,iBAAiB,CAAC,MAAY,SAA4B;AAAA,EAC9D,MAAM,YAAY,KAAK,YAAY,CAAC,GAAG,OAAO,UAAU;AAAA,EACxD,OAAO,SAAS;AAAA,EAChB,IAAI,CAAC,OAAO;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,MAAM,SAAS,MAAM;AAAA,EACnC,OAAO,YACL,MACA,OACA,SAAS,GAAG,EAAE,GAAG,SAAS,IAAI,UAAU,OACxC,QACF;AAAA;AAQF,IAAM,cAAc,CAAC,MAAY,SAA6B;AAAA,EAC5D,MAAM,aACJ,aAAa,IAAI,KAAK,KAAK,OAAO,KAAK,SAAS,KAAK,QAAQ;AAAA,EAC/D,MAAM,OAAO,aAET,iBAAiB,YAAY,MAAM,IAAI,IACvC;AAAA,EACJ,OACE,QACA,YACE,MACA,KAAK,SAAS,MAAM,QACpB,KAAK,SAAS,IAAI,QAClB,KAAK,YAAY,CAAC,CACpB;AAAA;AAKJ,IAAM,mBAAmB,CACvB,YACA,MACA,SAEA,WAAW;AAAA,KACN,UAAU,MAAM,KAAK,WAAW;AAAA,EACnC,aAAa,OACV,KAAK,YAAY,CAAC,GAAG,OAAO,UAAU,EAAE,IAAI,CAAC,WAAW;AAAA,IACvD,UAAU,YAAY,MAAM,KAAK;AAAA,IACjC,MAAM,aAAa,KAAK,IAAI,MAAM,OAAO;AAAA,EAC3C,EAAE;AAAA,EACJ,iBAAiB,CAAC,UACf,KAAK,YAAY,CAAC,GAChB,OAAO,CAAC,UAAU,aAAa,KAAK,KAAK,MAAM,SAAS,IAAI,EAC5D,IAAI,CAAC,WAAW;AAAA,OACZ,UAAU,OAAO,KAAK,WAAW;AAAA,IACpC,UAAU,eAAe,MAAM,KAAK;AAAA,EACtC,EAAE;AAAA,EACN,UAAU,eAAe,MAAM,IAAI;AAAA,EACnC,aAAa,KAAK,eAAe,CAAC;AACpC,CAAC;AAaI,IAAM,yBAAyB,CACpC,MACA,SACkB;AAAA,EAClB,MAAM,QACJ,KAAK,SAAS,uBACb,KAAK,SAAS,uBACb,kBAAkB,IAAI,KAAK,QAAQ,EAAE;AAAA,EACzC,MAAM,aAAa,SAAS,KAAK,OAAO,KAAK,SAAS,KAAK,QAAQ;AAAA,EACnE,OAAO,cAAc,WAAW,IAAI,IAChC,iBAAiB,YAAY,MAAM,IAAI,IACvC;AAAA;AAGN,IAAM,iBAAiB,CACrB,MACA,OACA,QACS;AAAA,EACT,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,OAAO,WAAW,IAAI,IAAI,uBAAuB,MAAM,IAAI,IAAI;AAAA,IACrE,IAAI,SAAS,QAAQ,WAAW,IAAI,GAAG;AAAA,MACrC,IAAI,KAAK;AAAA,QACP,OAAO,KAAK,SAAS;AAAA,QACrB,KAAK,KAAK,SAAS,IAAI;AAAA,QACvB,OAAO,KAAK,SAAS,MAAM;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA,eAAe,MAAM,KAAK,YAAY,CAAC,GAAG,GAAG;AAAA,EAC/C;AAAA;AAiBK,IAAM,sBAAsB,CACjC,QACA,YACA,gBACW;AAAA,EACX,MAAM,WAAW,kBAAkB,UAAU;AAAA,EAC7C,MAAM,OACJ,aAAa,cAAc,gBAAgB,cAAc,QAAQ;AAAA,EACnE,IAAI,CAAC,KAAK,KAAK,MAAM,GAAG;AAAA,IACtB,OAAO;AAAA,EACT;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,IAGF,OAAO,YAAW,QAAQ,EAAE,UAAU,aAAa,CAAC;AAAA,IACpD,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAET,MAAM,UAAoB,CAAC;AAAA,EAC3B,eACE,EAAE,aAAa,UAAU,OAAO,GAChC,KAAK,YAAY,CAAC,GAClB,OACF;AAAA,EACA,OAAO,QAAQ,SAAS,IAAI,cAAa,QAAQ,OAAO,IAAI;AAAA;;;AInnC9D,mBAAS;AA+BT,IAAM,aAAa,CAAC,UAClB,MAAM,OAAO,CAAC,EAAE,YAAY,IAAI,MAAM,MAAM,CAAC;AAG/C,IAAM,WAAW,CAAC,SAAuC;AAAA,EACvD,MAAM,MAAM,KAAK,KAAK,QAAQ,KAAK,KAAK,WAAW;AAAA,EACnD,IAAI,CAAC,KAAK;AAAA,IACR;AAAA,EACF;AAAA,EACA,MAAM,OAAO,IAAI,KAAK,GAAG;AAAA,EACzB,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,YAAY;AAAA;AAQ7C,IAAM,gBAAgB,CAAC,YAAqC;AAAA,EACjE,QAAQ,WAAW;AAAA,EACnB,QAAQ,QAAQ,OAAO;AAAA,EACvB,QAAQ,SAAS,OAAO,WAAW;AAAA,EACnC,IAAI,EAAE,IAAI,WAAW,OAAO;AAAA,IAC1B,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,OAAO,SAAS,IAAI;AAAA,EAK1B,MAAM,aAAa,kBAAkB,OAAO,WAAW,QAAQ,IAAI;AAAA,EACnE,MAAM,WAAW,GAAG,OAAO;AAAA,EAE3B,MAAM,QAAmB,CAAC;AAAA,EAC1B,WAAW,QAAQ,IAAI,OAAO;AAAA,IAC5B,MAAM,QAAQ,QAAQ,MAAM,MAAM,OAChC,CAAC,SACC,KAAK,gBAAgB,QACrB,EAAE,KAAK,KAAK,SAAS,KAAK,KAAK,QAAQ,OAC3C;AAAA,IACA,IAAI,MAAM,WAAW,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,IAEA,MAAM,QAAmB,MACtB,IAAI,CAAC,UAAU;AAAA,MACd,MAAM,SAAS,IAAI;AAAA,MAGnB,aAAa,KAAK,eAAe,KAAK,KAAK,IAAI;AAAA,MAG/C,MAAM,UAAU,GAAG,OAAO,cAAc,YAAY,KAAK,KAAK,GAAG;AAAA,MACjE,OAAO,KAAK;AAAA,IACd,EAAE,EACD,SAAS,CAAC,GAAG,OAAO,EAAE,MAAM,QAAQ,KAAK,MAAM,EAAE,MAAM,QAAQ,KAAK,EAAE,EACtE,MAAM,GAAG,IAAI,KAAK;AAAA,IAErB,MAAM,KAAK;AAAA,MACT,aAAa,OAAO;AAAA,MACpB;AAAA,MACA,MAAM;AAAA,MACN,MAAM,IAAI;AAAA,MACV,OAAO,GAAG,OAAO,WAAW,WAAW,IAAI;AAAA,MAC3C;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,aAAa,CAAC,SAA0B;AAAA,EAC5C,MAAM,QAAQ;AAAA,IACZ,cAAc,UAAU,KAAK,KAAK;AAAA,IAClC,aAAa,UAAU,KAAK,IAAI;AAAA,IAChC,gCAAgC,UAAU,KAAK,IAAI;AAAA,EACrD;AAAA,EACA,IAAI,KAAK,aAAa;AAAA,IACpB,MAAM,KAAK,oBAAoB,UAAU,KAAK,WAAW,iBAAiB;AAAA,EAC5E;AAAA,EACA,IAAI,KAAK,MAAM;AAAA,IACb,MAAM,KAAK,gBAAgB,KAAK,KAAK,YAAY,aAAa;AAAA,EAChE;AAAA,EACA,OAAO;AAAA,EAAa,MAAM,KAAK;AAAA,CAAI;AAAA;AAAA;AAI9B,IAAM,gBAAgB,CAAC,SAA0B;AAAA,EACtD,MAAM,eAAe,GAAG,KAAK,OAAO,KAAK;AAAA,EACzC,MAAM,UAAU;AAAA,IACd,YAAY,UAAU,KAAK,KAAK;AAAA,IAChC,WAAW,UAAU,KAAK,IAAI;AAAA,IAC9B,kBAAkB,UAAU,KAAK,eAAe,KAAK,KAAK;AAAA,IAC1D,sBAAsB,UAAU,YAAY;AAAA,EAC9C;AAAA,EACA,MAAM,QAAQ,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK;AAAA,CAAI;AAAA,EAClD,OAAO;AAAA;AAAA;AAAA,EAGP,QAAQ,KAAK;AAAA,CAAI;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;;;AChIK,IAAM,YAAW,CAAC,UACvB,MAAM,WAAW,aAAa,OAAO,QAAQ;;;ACL/C,qBAAS;AAqFT,IAAM,iBACJ;AAOF,IAAM,kBACJ;AAMF,IAAM,kBACJ;AASF,IAAM,aAAa,CAAC,MAAc,YAAuC;AAAA,EACvE,IAAI,MAAM;AAAA,EACV,WAAW,UAAU,QAAQ,SAAS,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;AAAA,IACpE,MACE,IAAI,MAAM,GAAG,OAAO,MAAM,IAC1B,OAAO,OACP,IAAI,MAAM,OAAO,SAAS,OAAO,MAAM;AAAA,EAC3C;AAAA,EACA,OAAO;AAAA;AAST,IAAM,kBAAiB,CACrB,MACA,QACA,WAC0B;AAAA,EAC1B,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,MAAM,CAAC,OAAe,WAAyB;AAAA,IACnD,QAAQ,IAAI,OAAO,CAAC,GAAI,QAAQ,IAAI,KAAK,KAAK,CAAC,GAAI,MAAM,CAAC;AAAA;AAAA,EAE5D,WAAW,QAAQ,aAAa,IAAI,GAAG;AAAA,IACrC,MAAM,QAAQ,KAAK,QACf,OAAO,KAAK,MAAM,IAClB,OAAO,KAAK,QAAQ,KAAK,QAAQ,IAAI;AAAA,IACzC,IAAI,UAAU,WAAW;AAAA,MACvB,IAAI,KAAK,OAAO,GAAG;AAAA,QACjB,QAAQ,KAAK,SAAS;AAAA,QACtB,QAAQ,KAAK,gBAAgB,KAAK,OAAO;AAAA,QACzC,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAaT,IAAM,cAAc,IAAI;AAQxB,IAAM,YAAY,CAAC,YAAqC;AAAA,EACtD,IAAI,QAAQ,YAAY,IAAI,OAAO;AAAA,EACnC,IAAI,CAAC,OAAO;AAAA,IACV,QAAQ,QAAQ,OAAO,aAAa;AAAA,IACpC,QAAQ;AAAA,MACN,YAAY,oBAAoB,MAAM,OAAO,OAAO,QAAQ,IAAI;AAAA,MAChE,eAAe,IAAI,IACjB,SAAS,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,MAAM,MAAM,MAAM,CAAC,CAC3D;AAAA,MACA,iBAAiB,IAAI,IACnB,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,YAAY,KAAK,OAAO,CAAC,CAC3D;AAAA,MACA,QAAQ,IAAI,IAAI,SAAS,OAAO,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC;AAAA,IAC5D;AAAA,IACA,YAAY,IAAI,SAAS,KAAK;AAAA,EAChC;AAAA,EACA,OAAO;AAAA;AAST,IAAM,gBAAgB,CAAC,YAAuD;AAAA,EAC5E,MAAM,aAAa,IAAI,IACrB,QAAQ,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CACzD;AAAA,EACA,MAAM,WAAW,IAAI;AAAA,EACrB,WAAW,SAAS,QAAQ,SAAS,QAAQ;AAAA,IAC3C,MAAM,OAAO,MAAM,WAAW,WAAW,IAAI,MAAM,EAAE,IAAI;AAAA,IACzD,IAAI,SAAS,WAAW;AAAA,MACtB,SAAS,IAAI,MAAM,MAAM,IAAI;AAAA,IAC/B;AAAA,EACF;AAAA,EACA,OAAO,CAAC,UAAU;AAAA,IAChB,MAAM,WAAW,MAAM,OAAO,OAAO;AAAA,IACrC,MAAM,OAAO,aAAa,KAAK,QAAQ,MAAM,MAAM,GAAG,QAAQ;AAAA,IAC9D,MAAM,OAAO,SAAS,IAAI,IAAI;AAAA,IAC9B,OAAO,SAAS,YAAY,QAAQ,GAAG,OAAO,MAAM,MAAM,KAAK,MAAM;AAAA;AAAA;AAQlE,IAAM,uBAAuB,CAClC,SACA,UAA+B,CAAC,MACP;AAAA,EACzB,QAAQ,UAAU,YAAY,SAAS,QAAQ;AAAA,EAG/C,MAAM,aAAa,kBAAkB,WAAW,QAAQ,IAAI;AAAA,EAC5D,MAAM,cAAc,sBAClB,QAAQ,QACR,QAAQ,QAAQ,IAClB,EAAE;AAAA,EACF,MAAM,eAAe,OACjB,CAAC,KAAK,GAAG,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,CAAC,IAClD,CAAC;AAAA,EACL,QAAQ,YAAY,eAAe,iBAAiB,WAClD,UAAU,OAAO;AAAA,EACnB,MAAM,WAAW,CAAC,SAA0B,OAAO,IAAI,IAAI;AAAA,EAK3D,MAAM,OAAO,QAAQ,YACjB,cAAc,OAAO,IACrB,CAAC,UAA0B,cAAc,YAAY,KAAK;AAAA,EAQ9D,MAAM,cAAc,CAClB,UACmD;AAAA,IACnD,IAAI,QAAQ,WAAW;AAAA,MACrB;AAAA,IACF;AAAA,IACA,MAAM,SAAS,cAAc,IAAI,KAAK;AAAA,IACtC,MAAM,WACJ,QAAQ,WAAW,aAAa,aAAa,QAAQ,IAAI,MAAM,KAC3D,EAAE,UAAU,YAAY,MAAM,QAAQ,OAAO,IAC7C;AAAA,IACN,OAAO,eAAe,MAAM,aAAa,MAAM,aAAa,YACxD,EAAE,SAAS,IACX;AAAA;AAAA,EAON,MAAM,gBAAgB,CACpB,SACyD;AAAA,IACzD,QAAQ,SAAS,eAAe;AAAA,IAChC,MAAM,OAAO,cAAc;AAAA,IAC3B,IAAI,CAAC,MAAM;AAAA,MACT;AAAA,IACF;AAAA,IACA,MAAM,OAAyB;AAAA,MAC7B,SAAS,gBAAgB,UAAS,IAAI,GAAG,YAAY;AAAA,MACrD,OAAO,KAAK;AAAA,IACd;AAAA,IAGA,IAAI;AAAA,IACJ,IAAI,YAAY;AAAA,MACd,MAAM,UAAU,gBAAgB,IAAI,UAAU,KAAK,UAAS,UAAU;AAAA,MACtE,cAAc,CAAC,SACb,kBAAkB,YAAY,EAAE,SAAS,WAAW,GAAG,IAAI;AAAA,IAC/D,EAAO;AAAA,MACL,cAAc,CAAC,SAAS,mBAAmB,YAAY,MAAM,IAAI;AAAA;AAAA,IAEnE,OAAO,CAAC,WAAW,oBAAoB,QAAQ,MAAM,aAAa,QAAQ;AAAA;AAAA,EAI5E,MAAM,aAAa,CAAC,UAA2B,YAAY,QAAQ,KAAK;AAAA,EAExE,OAAO,CAAC,MAAM,SAAS;AAAA,IACrB,MAAM,YAAY,YAAY,KAAK,KAAK;AAAA,IACxC,MAAM,WAAW,WAAW;AAAA,IAC5B,IACE,EAAE,KAAK,cAAc,KAAK,WAAW,cACrC,GACG,YAAY,kBAAkB,gBAAgB,KAAK,IAAI,KACxD,gBAAgB,KAAK,IAAI,IAE3B;AAAA,MACA,OAAO;AAAA,IACT;AAAA,IACA,MAAM,WAAW,cAAc,IAAI;AAAA,IAInC,MAAM,SAAS,CAAC,WAAuC;AAAA,MACrD,MAAM,QAAQ,qBACZ,YACA,UACA,QACA,UACF;AAAA,MACA,MAAM,OAAO,WAAW,aAAa,OAAO,QAAQ,IAAI;AAAA,MACxD,OAAO,SAAS,SAAS,YAAY;AAAA;AAAA,IAKvC,MAAM,WAAW,CAAC,WAAuC;AAAA,MACvD,MAAM,QAAQ,oBAAoB,QAAQ;AAAA,QACxC;AAAA,QACA;AAAA,QACA,aAAa,CAAC,SAAS,WAAW,SAAS,IAAI,IAAI;AAAA,MACrD,CAAC;AAAA,MACD,IAAI,UAAU,WAAW;AAAA,QACvB;AAAA,MACF;AAAA,MACA,MAAM,SAAS,KAAK,KAAK;AAAA,MACzB,OAAO,WAAW,aAAa,QAAQ,QAAQ,IAAI;AAAA;AAAA,IAErD,MAAM,SAAS,CAAC,QAAgB,QAAqC;AAAA,MACnE,IAAI,CAAC,eAAe,MAAM,GAAG;AAAA,QAC3B,MAAM,QAAQ,MACV,uBAAuB,QAAQ,KAAK,OAAO,QAAQ,IACnD,WAAW,MAAM;AAAA,QACrB,OAAO,UAAU,YAAY,YAAY,KAAK,KAAK;AAAA,MACrD;AAAA,MACA,MAAM,OAAO,MAAM,YAAY,SAAS,MAAM;AAAA,MAC9C,OAAO,SAAS,YAAY,OAAO,MAAM,IAAI;AAAA;AAAA,IAK/C,MAAM,SAAS,CAAC,WAAuC;AAAA,MACrD,MAAM,QAAQ,YAAY,aAAa,YAAY,MAAM,IAAI;AAAA,MAC7D,OAAO,UAAU,SAAS,YAAY;AAAA;AAAA,IAGxC,MAAM,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,IAC7B,MAAM,UAAU,gBAAe,MAAM,QAAQ,MAAM;AAAA,IAEnD,OAAO,MACJ,IAAI,CAAC,MAAM,UAAU;AAAA,MACpB,MAAM,cAAc,QAAQ,IAAI,KAAK;AAAA,MACrC,OAAO,cAAc,WAAW,MAAM,WAAW,IAAI;AAAA,KACtD,EACA,KAAK;AAAA,CAAI;AAAA;AAAA;;;ACjVhB,IAAM,cAAc,CAClB,SACA,WAEA,OAAO,QAAQ,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,OAAO,KAAK,KAAK,CAAC;AAOlE,IAAM,aAAa,CAAC,UAClB,IAAI,MAAM,WAAW,KAAK,OAAO,SAAS;AAQ5C,IAAM,gBAAgB,CAAC,UAA0B,KAAK,UAAU,KAAK;AAErE,IAAM,cAAc,CAAC,WAAkC;AAAA,EACrD,MAAM,QAAQ;AAAA,IAGZ,OAAO,WAAW,SACd,eAAe,WAAW,OAAO,GAAG,MACpC,WAAW,OAAO,UAAU,WAAW,OAAO,GAAG;AAAA,IACrD,GAAG,YACD,OAAO,SACP,CAAC,KAAK,UAAU,QAAQ,WAAW,GAAG,QAAQ,OAAO,GACvD;AAAA,EACF;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,MAAM,KAAK,QAAQ,WAAW,OAAO,IAAI,GAAG;AAAA,EAC9C;AAAA,EAGA,YAAY,MAAM,UAAU,OAAO,YAAY,CAAC,GAAG;AAAA,IACjD,MAAM,KAAK,mBAAmB,WAAW,GAAG,QAAQ,OAAO,GAAG;AAAA,EAChE;AAAA,EACA,OAAO,MAAM,KAAK,OAAO;AAAA;AASpB,IAAM,qBAAqB,CAAC,WACjC,WAAW;AAMb,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK;AAAA,CAAI;AAEX,IAAM,YAAY,CAAC,QAAuB,gBAAgC;AAAA,EACxE,IAAI,mBAAmB,OAAO,MAAM,GAAG;AAAA,IACrC,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,CAAC,aAAa,cAAc,OAAO,MAAM,GAAG;AAAA,EAC5D,IAAI,OAAO,KAAK,OAAO,OAAO,EAAE,SAAS,GAAG;AAAA,IAC1C,MAAM,UAAU,YACd,OAAO,SACP,CAAC,KAAK,UAAU,OAAO,cAAc,GAAG,MAAM,cAAc,KAAK,GACnE,EAAE,KAAK;AAAA,CAAK;AAAA,IACZ,QAAQ,KAAK;AAAA,EAAiB;AAAA,IAAc;AAAA,EAC9C;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IAQf,QAAQ,KAAK,WAAW,cAAc,OAAO,IAAI,GAAG;AAAA,EACtD;AAAA,EAEA,IAAI,OAAO;AAAA,EACX,IAAI,OAAO,UAAU;AAAA,IACnB,OAAO;AAAA,MACL;AAAA;AAAA,MACA,GAAG,OAAO,SAAS,IACjB,EAAE,MAAM,WACN,eAAe,cAAc,IAAI,MAAM,cAAc,KAAK;AAAA,CAC9D;AAAA,MACA;AAAA;AAAA,IACF,EAAE,KAAK,EAAE;AAAA,IACT,QAAQ,KAAK,cAAc;AAAA,EAC7B;AAAA,EACA,OAAO,GAAG,aAAa,6BAA6B,cAAc,OAAO,GAAG;AAAA,EAAS,QAAQ,KAC3F;AAAA,CACF;AAAA;AAAA;AAGF,IAAM,eAAe,CAAC,WACpB,UAAU,QAAQ,UAAU;AAE9B,IAAM,oBAAoB,CAAC,WACzB,UAAU,QAAQ,oBAAoB;AAGxC,IAAM,iBAAiB,IAAI,IAAI;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,gBAAgB,CAAC,WAAkC;AAAA,EACvD,MAAM,OAAO,CAAC,OAAO,cAAc,OAAO,GAAG,GAAG;AAAA,EAChD,IAAI,OAAO,KAAK,OAAO,OAAO,EAAE,SAAS,GAAG;AAAA,IAC1C,MAAM,UAAU,YACd,OAAO,SACP,CAAC,KAAK,UAAU,WAAW,cAAc,GAAG,MAAM,cAAc,KAAK,GACvE,EAAE,KAAK;AAAA,CAAK;AAAA,IACZ,KAAK,KAAK;AAAA,EAAkB;AAAA,MAAgB;AAAA,EAC9C;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IAIf,KAAK,KAAK,YAAY,cAAc,OAAO,IAAI,GAAG;AAAA,EACpD;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IAGnB,MAAM,QAAQ,OAAO,SAAS,IAC5B,EAAE,MAAM,WACN,YAAY,cAAc,IAAI,aAAa,cAAc,KAAK;AAAA,CAClE;AAAA,IACA,KAAK,KAAK;AAAA,EAAgB,MAAM,KAAK,EAAE,QAAQ;AAAA,EACjD;AAAA,EAGA,MAAM,SAAS,OAAO,OAAO,YAAY;AAAA,EACzC,IAAI,OAAO,YAAY;AAAA,EACvB,IAAI,CAAC,eAAe,IAAI,MAAM,GAAG;AAAA,IAC/B,OAAO;AAAA,IACP,KAAK,QAAQ,OAAO,cAAc,OAAO,MAAM,GAAG;AAAA,EACpD;AAAA,EACA,OAAO;AAAA;AAAA,aAAiC;AAAA,EAAU,KAAK,KAAK;AAAA,CAAK;AAAA;AAAA;AAOnE,IAAM,MAAM,CAAC,MAAc,UACzB,KAAK,SAAS,EAAE,EAAE,SAAS,OAAO,GAAG;AAUvC,IAAM,SAAS,CACb,OACA,SACA,SAAS,IACT,YAAY,QACD;AAAA,EACX,IAAI,MAAM;AAAA,EACV,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,OAAO,KAAK,YAAY,CAAC,KAAK;AAAA,IACpC,IAAI,SAAS,aAAa,SAAS,QAAQ,OAAO,SAAS,IAAI,GAAG;AAAA,MAChE,OAAO,KAAK;AAAA,IACd,EAAO,SAAI,SAAS;AAAA,GAAM;AAAA,MACxB,OAAO,OAAO;AAAA,IAChB,EAAO,SAAI,SAAS,MAAM;AAAA,MACxB,OAAO,OAAO;AAAA,IAChB,EAAO,SAAI,SAAS,MAAM;AAAA,MACxB,OAAO,OAAO;AAAA,IAChB,EAAO,SAAI,OAAO,MAAQ,SAAS,KAAM;AAAA,MACvC,OAAO,QAAQ,IAAI;AAAA,IACrB,EAAO;AAAA,MACL,OAAO;AAAA;AAAA,EAEX;AAAA,EACA,OAAO,GAAG,MAAM;AAAA;AAGlB,IAAM,WAAW,CAAC,UAChB,OAAO,OAAO,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,GAAG;AAI9C,IAAM,aAAa,CAAC,UAClB,OAAO,OAAO,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,GAAG;AAC9C,IAAM,eAAe;AAIrB,IAAM,UAAU,CAAC,UACf,OAAO,OAAO,CAAC,SAAS,KAAK,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG,GAAG,EAAE,WAChE,cACA,KACF;AACF,IAAM,cAAc,CAAC,UACnB,OAAO,OAAO,CAAC,SAAS,OAAO,IAAI,MAAM,CAAC,IAAI;AAChD,IAAM,eAAe,CAAC,UACpB,OAAO,OAAO,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG;AACnD,IAAM,aAAa,CAAC,UAClB,OAAO,OAAO,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG;AACnD,IAAM,aAAa,CAAC,UAClB,OAAO,OAAO,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,GAAG;AAMxD,IAAM,YAAY,CAAC,UACjB,IAAI,MAAM,WAAW,MAAM,MAAM,EAAE,WAAW,KAAK,OAAO,OAAO;AAOnE,IAAM,mBAAmB,CAAC,UACxB,IAAI,MAAM,WAAW,aAAa,CAAC,UAAU,QAAQ,KAAK;AAS5D,IAAM,mBAAmB,CACvB,YACqB;AAAA,EACrB,MAAM,UAAU,OAAO,QAAQ,OAAO;AAAA,EACtC,MAAM,QAAQ,QAAQ,KAAK,EAAE,SAAS,IAAI,YAAY,MAAM,cAAc;AAAA,EAC1E,OAAO;AAAA,IACL,aAAa,QAAQ;AAAA,IACrB,MAAM,QAAQ,OAAO,EAAE,SAAS,IAAI,YAAY,MAAM,cAAc;AAAA,EACtE;AAAA;AAOF,IAAM,qBAAqB;AAG3B,IAAM,gBAAgB,CAAC,UACrB;AAAA,EACE,GAAG,MAAM,IACP,EAAE,MAAM,WACN,KAAK;AAAA,wCAA+D,KACjE,WAAW,KAAK,KAAK,EACrB,WAAW,MAAM,KAAK,EACtB,WAAW;AAAA,GAAM,KAAK;AAAA;AAAA,EAAa;AAAA,CAC1C;AAAA,EACA,KAAK;AAAA;AACP,EAAE,KAAK,EAAE;AAGX,IAAM,oBAAoB,CACxB,SACA,QACA,WAEA,GAAG,WAAW,iBAAiB;AAAA,EAAiD;AAMlF,IAAM,cAAc,CAAC,WAAkC;AAAA,EACrD,MAAM,SAAS;AAAA,IACb,aAAa,cAAc,OAAO,MAAM;AAAA,IACxC,UAAU,cAAc,OAAO,GAAG;AAAA,EACpC;AAAA,EACA,IAAI,OAAO,KAAK,OAAO,OAAO,EAAE,SAAS,GAAG;AAAA,IAC1C,MAAM,UAAU,YACd,OAAO,SACP,CAAC,KAAK,UAAU,OAAO,cAAc,GAAG,MAAM,cAAc,KAAK,GACnE,EAAE,KAAK;AAAA,CAAK;AAAA,IACZ,OAAO,KAAK;AAAA,EAAiB;AAAA,IAAc;AAAA,EAC7C;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,OAAO,KAAK,WAAW,cAAc,OAAO,IAAI,GAAG;AAAA,EACrD;AAAA,EACA,IAAI,OAAO;AAAA,EACX,IAAI,OAAO,UAAU;AAAA,IACnB,OAAO;AAAA,MACL;AAAA;AAAA,MACA,GAAG,OAAO,SAAS,IACjB,EAAE,MAAM,WACN,eAAe,cAAc,IAAI,MAAM,cAAc,KAAK;AAAA,CAC9D;AAAA,MACA;AAAA;AAAA,IACF,EAAE,KAAK,EAAE;AAAA,IACT,OAAO,KAAK,cAAc;AAAA,EAC5B;AAAA,EACA,OAAO;AAAA;AAAA,EAAiC;AAAA,EAA+C,OAAO,KAAK;AAAA,CAAK;AAAA;AAAA;AAO1G,IAAM,aAAa,CAAC,WAAkC;AAAA,EACpD,MAAM,UAAU;AAAA,IACd,oBAAoB,UAAU,OAAO,GAAG;AAAA,IACxC;AAAA,IAEA,OAAO,WAAW,SACd,6BACA,8BAA8B,UAAU,OAAO,MAAM;AAAA,EAC3D;AAAA,EACA,MAAM,UAAU,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC7C,IAAI,QAAQ,SAAS,GAAG;AAAA,IACtB,MAAM,QAAQ,QAAQ,IACpB,EAAE,KAAK,WAAW,OAAO,UAAU,GAAG,QAAQ,OAAO;AAAA,CACvD;AAAA,IACA,QAAQ,KAAK;AAAA,EAA8B,MAAM,KAAK,EAAE,MAAM;AAAA,EAChE;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,QAAQ,KAAK,2BAA2B,UAAU,OAAO,IAAI,GAAG;AAAA,EAClE;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IAEnB,MAAM,SAAS,OAAO,SAAS,IAC7B,EAAE,MAAM,WAAW,OAAO,UAAU,IAAI,QAAQ,UAAU,KAAK;AAAA,CACjE;AAAA,IACA,QAAQ,KAAK;AAAA,EAA8B,OAAO,KAAK,EAAE,MAAM;AAAA,EACjE;AAAA,EACA,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAAgE,QAAQ,KAAK;AAAA,CAAK;AAAA;AAAA;AAAA;AAAA;AAO3F,IAAM,YAAY,CAAC,WAAkC;AAAA,EACnD,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,MAAM,UAAU,CAAC;AAAA,EACjD,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,OAAO;AAAA,EACX,IAAI,OAAO,UAAU;AAAA,IACnB,QAAQ,IAAI,OAAO;AAAA,IACnB,QAAQ,IAAI,gBAAgB;AAAA,IAC5B,MAAM,KACJ,2BACA,wCACA,GAAG,OAAO,SAAS,IACjB,EAAE,MAAM,WACN,oBAAqB,SAAS,IAAI,MAAM,SAAS,KAAK,IAC1D,GACA,kBACA,EACF;AAAA,IACA,OAAO;AAAA,EACT,EAAO,SAAI,OAAO,MAAM;AAAA,IACtB,QAAQ,IAAI,SAAS;AAAA,IACrB,MAAM,KAAK,8BAA+B,SAAS,OAAO,IAAI,IAAI;AAAA,IAClE,OAAO;AAAA,EACT;AAAA,EACA,MAAM,KACJ,gCAAiC,SAAS,OAAO,MAAM,MAAM,SAAS,OAAO,GAAG,MAAM,SACtF,qBACA,kBACA,KACF;AAAA,EACA,YAAY,KAAK,UAAU,OAAO,QAAQ,OAAO,OAAO,GAAG;AAAA,IACzD,MAAM,KAAK,mBAAoB,SAAS,GAAG,MAAM,SAAS,KAAK,IAAI;AAAA,EACrE;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,KAAK,8DAA8D;AAAA,EAC3E;AAAA,EACA,MAAM,KACJ,IACA,4CACA,qBACA,kBACA,OACA,4BACA,IACA,qCACA,6BACF;AAAA,EACA,MAAM,cAAc,CAAC,GAAG,OAAO,EAC5B,SAAS,EACT,IAAI,CAAC,SAAS,KAAM,OAAO,EAC3B,KAAK;AAAA,CAAI;AAAA,EACZ,OAAO;AAAA;AAAA;AAAA,EAA6B;AAAA;AAAA;AAAA;AAAA,EAAoC,MAAM,KAAK;AAAA,CAAI;AAAA;AAAA;AAOzF,IAAM,cAAc,CAAC,WAAkC;AAAA,EACrD,MAAM,UAAU,CAAC,uBAAuB,WAAW,OAAO,GAAG,KAAK;AAAA,EAClE,YAAY,KAAK,UAAU,OAAO,QAAQ,OAAO,OAAO,GAAG;AAAA,IACzD,QAAQ,KAAK,eAAe,WAAW,GAAG,MAAM,WAAW,KAAK,IAAI;AAAA,EACtE;AAAA,EACA,IAAI,OAAO;AAAA,EACX,IAAI,OAAO,UAAU;AAAA,IACnB,QAAQ,KACN,+BAA+B,WAAW,iCAAiC,oBAAoB,IACjG;AAAA,IACA,OAAO,uCAAuC,WAAW,cAAc,OAAO,QAAQ,CAAC;AAAA,EACzF,EAAO,SAAI,OAAO,MAAM;AAAA,IACtB,OAAO,uCAAuC,WAAW,OAAO,IAAI;AAAA,EACtE;AAAA,EACA,QAAQ,KACN,eAAe,WAAW,OAAO,MAAM,MAAM,SAC7C,eACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF,EAAE,KAAK;AAAA,CAAI;AAAA;AAQb,IAAM,eAAe,IAAI,IAAI;AAAA,EAC3B,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,WAAW,SAAS;AAAA,EACrB,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,OAAO;AACnB,CAAC;AAED,IAAM,cAAc,CAAC,WAAkC;AAAA,EACrD,MAAM,QAAQ,aAAa,IAAI,OAAO,MAAM;AAAA,EAC5C,MAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA,aAAa,WAAW,OAAO,GAAG;AAAA,IAClC,QACI,wBAAwB,mBACxB,yCAAyC,WAAW,OAAO,MAAM;AAAA,EACvE;AAAA,EACA,YAAY,KAAK,UAAU,OAAO,QAAQ,OAAO,OAAO,GAAG;AAAA,IACzD,MAAM,KAAK,WAAW,WAAW,GAAG,QAAQ,WAAW,KAAK,GAAG;AAAA,EACjE;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,MAAM,KAAK,kBAAkB,WAAW,OAAO,IAAI,GAAG;AAAA,EACxD;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,SAAS,OAAO,SACnB,IAAI,EAAE,MAAM,WAAW,IAAI,WAAW,IAAI,MAAM,WAAW,KAAK,IAAI,EACpE,KAAK,IAAI;AAAA,IACZ,MAAM,KAAK,qBAAqB,iCAAiC;AAAA,EACnE;AAAA,EACA,MAAM,KACJ,IACA,gGACA,2BACA,KACF;AAAA,EACA,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAQxB,IAAM,qBAAqB,IAAI,IAAI;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,oBAAoB,CAAC,WAAkC;AAAA,EAC3D,QAAQ,aAAa,SAAS,iBAAiB,OAAO,OAAO;AAAA,EAC7D,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,OAAO;AAAA,IACX,QAAQ,iBAAiB,OAAO,GAAG;AAAA,IACnC,mBAAmB,IAAI,OAAO,MAAM,IAChC,WAAW,OAAO,WAClB,iBAAiB,iBAAiB,OAAO,MAAM;AAAA,EACrD;AAAA,EACA,IAAI,KAAK,SAAS,GAAG;AAAA,IACnB,MAAM,KACJ,iBACA,GAAG,KAAK,IACN,EAAE,KAAK,WACL,KAAK,iBAAiB,GAAG,OAAO,iBAAiB,KAAK,GAC1D,GACA,GACF;AAAA,IACA,KAAK,KAAK,mBAAmB;AAAA,EAC/B;AAAA,EAEA,IAAI,aAAa;AAAA,IACf,KAAK,KAAK,gBAAgB,iBAAiB,WAAW,GAAG;AAAA,EAC3D;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,KAAK,KAAK,SAAS,iBAAiB,OAAO,IAAI,GAAG;AAAA,EACpD;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,KACJ,cACA,GAAG,OAAO,SAAS,IACjB,EAAE,MAAM,WACN,KAAK,iBAAiB,IAAI,OAAO,iBAAiB,KAAK,GAC3D,GACA,GACF;AAAA,IACA,KAAK,KAAK,aAAa;AAAA,EACzB;AAAA,EACA,MAAM,KAAK,iCAAiC,KAAK,KAAK,GAAG,GAAG;AAAA,EAC5D,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAOxB,IAAM,eAAe,CAAC,WAAkC;AAAA,EACtD,MAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA,6CAA6C,YAAY,OAAO,GAAG;AAAA,IACnE,wBAAwB,YAAY,OAAO,MAAM;AAAA,EACnD;AAAA,EACA,YAAY,KAAK,UAAU,OAAO,QAAQ,OAAO,OAAO,GAAG;AAAA,IACzD,MAAM,KACJ,oBAAoB,YAAY,KAAK,0BAA0B,YAAY,GAAG,IAChF;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,KACJ,oBAAoB,YAAY,iCAAiC,oBAAoB,0CACrF,2BAA2B,YAAY,cAAc,OAAO,QAAQ,CAAC,SACvE;AAAA,EACF,EAAO,SAAI,OAAO,MAAM;AAAA,IACtB,MAAM,KAAK,2BAA2B,YAAY,OAAO,IAAI,SAAS;AAAA,EACxE;AAAA,EACA,MAAM,KACJ,IACA,uEACF;AAAA,EACA,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAOxB,IAAM,gBAAgB,CAAC,WAAkC;AAAA,EACvD,QAAQ,aAAa,SAAS,iBAAiB,OAAO,OAAO;AAAA,EAC7D,MAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,uDAAuD,aAAa,OAAO,MAAM,OAAO,aAAa,OAAO,GAAG;AAAA,EACjH;AAAA,EAEA,YAAY,KAAK,UAAU,MAAM;AAAA,IAC/B,MAAM,KACJ,2CAA2C,aAAa,GAAG,MAAM,aAAa,KAAK,KACrF;AAAA,EACF;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,MAAM,KACJ,uCAAuC,aAAa,OAAO,IAAI,KACjE;AAAA,IAEA,IAAI,aAAa;AAAA,MACf,MAAM,KACJ,oEAAoE,aAAa,WAAW,KAC9F;AAAA,IACF;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,KACJ,8CACA,GAAG,OAAO,SAAS,IACjB,EAAE,MAAM,WACN,8BAA8B,aAAa,KAAK,OAAO,aAAa,IAAI,KAC5E,GACA,yBACF;AAAA,EACF;AAAA,EACA,MAAM,KACJ,IACA,mDACA,wDACF;AAAA,EACA,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAQxB,IAAM,oBAAoB,IAAI,IAAI;AAAA,EAChC,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,WAAW,SAAS;AAAA,EACrB,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,OAAO,KAAK;AACf,CAAC;AAED,IAAM,gBAAgB,CAAC,WAAkC;AAAA,EACvD,MAAM,SAAS,kBAAkB,IAAI,OAAO,MAAM;AAAA,EAClD,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO,kBAAkB,MAAM,aAAa,OAAO,MAAM;AAAA,EAC3D;AAAA,EACA,QAAQ,aAAa,SAAS,iBAAiB,OAAO,OAAO;AAAA,EAC7D,MAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA,iCAAiC,aAAa,OAAO,GAAG,aAAa;AAAA,EACvE;AAAA,EACA,YAAY,KAAK,UAAU,MAAM;AAAA,IAC/B,MAAM,KACJ,qBAAqB,aAAa,GAAG,MAAM,aAAa,KAAK,KAC/D;AAAA,EACF;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IAEf,MAAM,KACJ,yBAAyB,aAAa,OAAO,IAAI,MAAM,aAAa,eAAe,YAAY,KACjG;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,KACJ,2CACA,GAAG,OAAO,SAAS,IACjB,EAAE,MAAM,WACN,wBAAwB,aAAa,IAAI,MAAM,aAAa,KAAK,KACrE,CACF;AAAA,EACF;AAAA,EACA,MAAM,KAAK,IAAI,oDAAoD;AAAA,EACnE,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAOxB,IAAM,WAAW,CAAC,WAAkC;AAAA,EAClD,MAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAM,UAAU,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC7C,IAAI,QAAQ,SAAS,GAAG;AAAA,IACtB,MAAM,KAAK,sCAAsC;AAAA,IACjD,YAAY,KAAK,UAAU,SAAS;AAAA,MAClC,MAAM,KACJ,0CAA0C,QAAQ,GAAG,QAAQ,OAAO,KACtE;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM,KACJ,IACA,yCAAyC,QAAQ,OAAO,GAAG,OAE3D,OAAO,WAAW,SACd,kDACA,mDAAmD,QAAQ,OAAO,MAAM,KAC9E;AAAA,EACA,IAAI,QAAQ,SAAS,GAAG;AAAA,IACtB,MAAM,KAAK,wDAAwD;AAAA,EACrE;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,MAAM,KACJ,gDAAgD,QAAQ,OAAO,IAAI,KACrE;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,KACJ,IACA,6CACA,wBACF;AAAA,IACA,YAAY,MAAM,UAAU,OAAO,UAAU;AAAA,MAC3C,MAAM,KACJ,qCACA,0BAA0B,QAAQ,IAAI,OACtC,0BAA0B,QAAQ,KAAK,2BACzC;AAAA,IACF;AAAA,IACA,MAAM,KAAK,mDAAmD;AAAA,EAChE;AAAA,EACA,MAAM,KAAK,IAAI,gDAAgD,EAAE;AAAA,EACjE,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,KAAK,yBAAyB;AAAA,EACtC;AAAA,EACA,IAAI,QAAQ,SAAS,GAAG;AAAA,IACtB,MAAM,KAAK,iCAAiC;AAAA,EAC9C;AAAA,EACA,MAAM,KACJ,8BACA,wCACA,GACF;AAAA,EACA,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAQxB,IAAM,cAAc,IAAI,IAAI;AAAA,EAC1B,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,WAAW,SAAS;AAAA,EACrB,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,OAAO,KAAK;AACf,CAAC;AAED,IAAM,aAAa,CAAC,WAAkC;AAAA,EACpD,MAAM,SAAS,YAAY,IAAI,OAAO,MAAM;AAAA,EAC5C,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO,kBAAkB,MAAM,OAAO,OAAO,MAAM;AAAA,EACrD;AAAA,EACA,MAAM,OAAO,CAAC,kBAAkB,QAAQ,OAAO,GAAG,IAAI;AAAA,EACtD,MAAM,UAAU,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC7C,IAAI,QAAQ,SAAS,GAAG;AAAA,IACtB,MAAM,QAAQ,QACX,IAAI,EAAE,KAAK,WAAW,IAAI,QAAQ,GAAG,MAAM,QAAQ,KAAK,IAAI,EAC5D,KAAK,IAAI;AAAA,IACZ,KAAK,KAAK,qBAAqB,QAAQ;AAAA,EACzC;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,KAAK,KAAK,mBAAmB,QAAQ,OAAO,IAAI,IAAI;AAAA,EACtD;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,QAAQ,OAAO,SAClB,IAAI,EAAE,MAAM,WAAW,IAAI,QAAQ,IAAI,MAAM,QAAQ,KAAK,IAAI,EAC9D,KAAK,IAAI;AAAA,IACZ,KAAK,KAAK,wBAAwB,QAAQ;AAAA,EAC5C;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,mCAAmC;AAAA,IACnC,GAAG,KAAK,KAAK;AAAA,CAAK;AAAA,IAClB;AAAA,EACF,EAAE,KAAK;AAAA,CAAI;AAAA;AAQb,IAAM,iBAAiB,IAAI,IAAI,CAAC,OAAO,MAAM,CAAC;AAC9C,IAAM,oBAAoB,IAAI,IAAI,CAAC,SAAS,QAAQ,KAAK,CAAC;AAE1D,IAAM,gBAAgB,CAAC,WAAkC;AAAA,EACvD,QAAQ,aAAa,SAAS,iBAAiB,OAAO,OAAO;AAAA,EAC7D,MAAM,UAAU,IAAI,IAAI,CAAC,wBAAwB,iBAAiB,CAAC;AAAA,EACnE,IAAI,OAAO;AAAA,EACX,IAAI,OAAO,UAAU;AAAA,IACnB,QAAQ,IAAI,uBAAuB;AAAA,IACnC,MAAM,QAAQ,OAAO,SAClB,IACC,EAAE,MAAM,WACN;AAAA,uBAA0B,aAAa,IAAI,MAAM,aAAa,KAAK,IACvE,EACC,KAAK,EAAE;AAAA,IACV,OAAO;AAAA,kCAA4D;AAAA;AAAA,EACrE,EAAO,SAAI,OAAO,QAAQ,CAAC,eAAe,IAAI,OAAO,MAAM,GAAG;AAAA,IAC5D,QAAQ,IAAI,6CAA6C;AAAA,IAEzD,IAAI,YAAY;AAAA,IAChB,IAAI,aAAa;AAAA,MACf,QAAQ,IAAI,yCAAyC;AAAA,MACrD,YAAY,GAAG,aAAa,WAAW;AAAA,IACzC;AAAA,IACA,OAAO,GAAG,aAAa,OAAO,IAAI,mBAAmB;AAAA,EACvD,EAAO,SAAI,kBAAkB,IAAI,OAAO,MAAM,GAAG;AAAA,IAC/C,QAAQ,IAAI,6CAA6C;AAAA,IACzD,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,CAAC,UAAU,aAAa,OAAO,GAAG,IAAI;AAAA,EACtD,QAAQ,KACN,aAAa,aAAa,OAAO,MAAM,MAAM,KAAK,WAAW;AAAA,GAAM;AAAA,GAAM,IAC3E;AAAA,EACA,YAAY,KAAK,UAAU,MAAM;AAAA,IAC/B,QAAQ,KAAK,gBAAgB,aAAa,GAAG,MAAM,aAAa,KAAK,IAAI;AAAA,EAC3E;AAAA,EACA,QAAQ,KAAK,YAAY;AAAA,EACzB,MAAM,cAAc,CAAC,GAAG,OAAO,EAC5B,SAAS,EACT,IAAI,CAAC,SAAS,UAAU,MAAM,EAC9B,KAAK;AAAA,CAAI;AAAA,EACZ,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK;AAAA,CAAI;AAAA;AAQb,IAAM,eAAe,IAAI,IAAI;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,cAAc,CAAC,WAAkC;AAAA,EACrD,MAAM,SAAS,aAAa,IAAI,OAAO,MAAM,IACzC,oBAAoB,OAAO,WAC3B,+BAA+B,YAAY,OAAO,MAAM;AAAA,EAC5D,MAAM,QAAQ,CAAC,oBAAoB,WAAW,YAAY,OAAO,GAAG,IAAI;AAAA,EACxE,YAAY,KAAK,UAAU,OAAO,QAAQ,OAAO,OAAO,GAAG;AAAA,IACzD,MAAM,KAAK,mBAAmB,YAAY,GAAG,MAAM,YAAY,KAAK,IAAI;AAAA,EAC1E;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,MAAM,KAAK,iBAAiB,YAAY,OAAO,IAAI,IAAI;AAAA,EACzD;AAAA,EACA,MAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IAEnB,MAAM,QAAQ,OAAO,SAClB,IACC,EAAE,MAAM,WACN;AAAA,gBAAmB,YAAY,IAAI,MAAM,YAAY,KAAK,IAC9D,EACC,KAAK,EAAE;AAAA,IACV,MAAM,KAAK,iDAAiD,UAAU,EAAE;AAAA,IACxE,MAAM,KAAK,0BAA0B;AAAA,EACvC;AAAA,EACA,MAAM,KACJ,6CACA,GAAG,OACH,mBACA,oBACA,IACA,+CACA,cACA,GACF;AAAA,EACA,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAOxB,IAAM,cAAc,CAAC,WAAkC;AAAA,EACrD,MAAM,QAAQ,CAAC,4CAA4C,EAAE;AAAA,EAC7D,MAAM,SAAS,GAAG,WAAW,OAAO,MAAM,gBAAgB,WAAW,OAAO,GAAG;AAAA,EAC/E,IAAI,OAAO,UAAU;AAAA,IACnB,MAAM,KAAK,yCAAyC,UAAU;AAAA,IAC9D,YAAY,MAAM,UAAU,OAAO,UAAU;AAAA,MAC3C,MAAM,KAAK,kBAAkB,WAAW,IAAI,QAAQ,WAAW,KAAK,IAAI;AAAA,IAC1E;AAAA,EACF,EAAO;AAAA,IACL,MAAM,KAAK,gCAAgC,UAAU;AAAA;AAAA,EAEvD,MAAM,UAAU,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC7C,IAAI,QAAQ,SAAS,GAAG;AAAA,IACtB,MAAM,KACJ,4BACA,GAAG,QAAQ,IACT,EAAE,KAAK,WAAW,KAAK,WAAW,GAAG,MAAM,WAAW,KAAK,IAC7D,GACA,KACF;AAAA,EACF;AAAA,EACA,IAAI,OAAO,MAAM;AAAA,IACf,MAAM,KAAK,kBAAkB,WAAW,OAAO,IAAI,IAAI;AAAA,EACzD;AAAA,EACA,MAAM,KACJ,IACA,0CACA,+CACF;AAAA,EACA,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAWxB,IAAM,YAA8B;AAAA,EAClC,EAAE,OAAO,aAAa,IAAI,QAAQ,OAAO,QAAQ,MAAM,OAAO;AAAA,EAC9D,EAAE,OAAO,eAAe,IAAI,UAAU,OAAO,UAAU,MAAM,SAAS;AAAA,EACtE,EAAE,OAAO,cAAc,IAAI,MAAM,OAAO,cAAc,MAAM,KAAK;AAAA,EACjE,EAAE,OAAO,aAAa,IAAI,QAAQ,OAAO,WAAW,MAAM,KAAK;AAAA,EAC/D;AAAA,IACE,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,EAAE,OAAO,YAAY,IAAI,OAAO,OAAO,OAAO,MAAM,MAAM;AAAA,EAC1D,EAAE,OAAO,WAAW,IAAI,MAAM,OAAO,MAAM,MAAM,KAAK;AAAA,EACtD,EAAE,OAAO,aAAa,IAAI,QAAQ,OAAO,QAAQ,MAAM,OAAO;AAAA,EAC9D,EAAE,OAAO,aAAa,IAAI,QAAQ,OAAO,QAAQ,MAAM,OAAO;AAAA,EAC9D;AAAA,IACE,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,EAAE,OAAO,cAAc,IAAI,SAAS,OAAO,SAAS,MAAM,QAAQ;AAAA,EAClE,EAAE,OAAO,eAAe,IAAI,UAAU,OAAO,MAAM,MAAM,SAAS;AAAA,EAClE,EAAE,OAAO,eAAe,IAAI,UAAU,OAAO,QAAQ,MAAM,SAAS;AAAA,EACpE,EAAE,OAAO,UAAU,IAAI,KAAK,OAAO,KAAK,MAAM,IAAI;AAAA,EAClD,EAAE,OAAO,YAAY,IAAI,OAAO,OAAO,OAAO,MAAM,MAAM;AAAA,EAC1D,EAAE,OAAO,eAAe,IAAI,UAAU,OAAO,UAAU,MAAM,SAAS;AAAA,EACtE,EAAE,OAAO,aAAa,IAAI,QAAQ,OAAO,QAAQ,MAAM,OAAO;AAAA,EAC9D,EAAE,OAAO,aAAa,IAAI,QAAQ,OAAO,QAAQ,MAAM,OAAO;AAChE;AAGO,IAAM,sBAAsB,UAAU,IAAI,CAAC,aAAa,SAAS,EAAE;AAM1E,IAAM,UAAU,IAAI,IAAI;AAAA,EACtB,CAAC,QAAQ,QAAQ;AAAA,EACjB,CAAC,QAAQ,MAAM;AAAA,EACf,CAAC,MAAM,QAAQ;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,aAAa,KAAK;AAAA,EACnB,CAAC,MAAM,QAAQ;AAAA,EACf,CAAC,WAAW,QAAQ;AAAA,EACpB,CAAC,WAAW,MAAM;AAAA,EAClB,CAAC,UAAU,IAAI;AAAA,EACf,CAAC,cAAc,IAAI;AAAA,EACnB,CAAC,MAAM,QAAQ;AAAA,EACf,CAAC,WAAW,MAAM;AAAA,EAClB,CAAC,UAAU,MAAM;AAAA,EACjB,CAAC,OAAO,YAAY;AAAA,EACpB,CAAC,MAAM,QAAQ;AAAA,EACf,CAAC,MAAM,MAAM;AAAA,EACb,CAAC,MAAM,MAAM;AAAA,EACb,CAAC,MAAM,MAAM;AAAA,EACb,CAAC,SAAS,MAAM;AAAA,EAChB,CAAC,MAAM,YAAY;AACrB,CAAC;AAGM,IAAM,mBAAmB,CAAC,QAAwB;AAAA,EACvD,MAAM,QAAQ,IAAI,YAAY;AAAA,EAC9B,OAAO,QAAQ,IAAI,KAAK,KAAK;AAAA;AAaxB,IAAM,qBAAqB,CAAC,QAA2C;AAAA,EAC5E,MAAM,KAAK,iBAAiB,GAAG;AAAA,EAC/B,MAAM,WAAW,UAAU,KAAK,CAAC,UAAU,MAAM,OAAO,EAAE;AAAA,EAC1D,OAAO,WAAW,EAAE,OAAO,SAAS,OAAO,MAAM,SAAS,KAAK,IAAI;AAAA;AAU9D,IAAM,yBAAyB,CAAC,QACrC,QAAQ,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,mBAAmB,GAAG,MAAM,IAAI;;;ACjgCpE,IAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKA,IAAM,WAAW;AAGjB,IAAM,oBAAoB;AAG1B,IAAM,gBAAgB;AAEtB,IAAM,mBAAmB;AAWzB,IAAM,kBAAkB,CAAC,eACvB,WACG,QAAQ,eAAe,sBAAsB,EAC7C,QAAQ,kBAAkB,oBAAoB;AAG5C,IAAM,eAAe,CAC1B,QACA,MACA,gBACW;AAAA,EACX,MAAM,SAAS,cAAc,SAAQ,gBAAgB,WAAW,CAAC,IAAI;AAAA,EACrE,OAAO,UAAU,SAAQ,GAAG,UAAU,MAAM;AAAA;AA8FvC,IAAM,SAAS,CACpB,OACA,WAEA,OAAO,OAAO,OAAO,MAAM,IAAI,MAAM,UAAU;AAG1C,IAAM,cAAc,CACzB,MACA,OAEA,OAAO,OAAO,KAAK,YAAY,EAAE,IAAI,KAAK,WAAW,MAAM;AAetD,IAAM,gBAAgB,CAAC,SAAqC;AAAA,EACjE,MAAM,YAAsB,CAAC;AAAA,EAC7B,IAAI,KAAK,SAAS,WAAW;AAAA,IAC3B,IAAI,KAAK,UAAU;AAAA,MACjB,UAAU,KAAK,KAAK,QAAQ;AAAA,IAC9B;AAAA,IACA,OAAO,EAAE,WAAW,OAAO,WAAW;AAAA,EACxC;AAAA,EACA,IAAI,KAAK,SAAS,YAAY;AAAA,IAG5B,MAAM,UAAW,KAAK,SAA8B,WAAW,CAAC;AAAA,IAChE,WAAW,UAAU,OAAO,OAAO,OAAO,GAAG;AAAA,MAC3C,IAAI,QAAQ,MAAM;AAAA,QAChB,UAAU,KACR,GAAG,OAAO,WAAW,GAAG,OAAO,gBAAgB,KAAK,OAAO,OAAO,OAAO,YAAY,IACvF;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO,EAAE,WAAW,OAAO,UAAU;AAAA,EACvC;AAAA,EAMA,MAAM,WAAY,KAAK,SAA8C;AAAA,EACrE,WAAW,UAAU,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,GAAG;AAAA,IAC5D,IAAI,OAAO,KAAK;AAAA,MACd,UAAU,KAAK,OAAO,GAAG;AAAA,IAC3B;AAAA,EACF;AAAA,EACA,OAAO,EAAE,WAAW,OAAO,WAAW;AAAA;AAGxC,IAAM,kBAAkB;AAExB,IAAM,mBAAmB,CACvB,UAEA,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAGrE,IAAM,oBAAoB,CACxB,UAEA,OAAO,UAAU,YAAY,OAAO,UAAU;AAUzC,IAAM,qBAAqB,CAChC,UACA,cAEA,SAAS,WAAW,iBAAiB,CAAC,OAAO,SAAiB;AAAA,EAC5D,MAAM,WACJ,iBAAiB,SAAS,KAAK,OAAO,OAAO,WAAW,IAAI,IACxD,UAAU,QACV;AAAA,EACN,MAAM,QAAQ,iBAAiB,QAAQ,IAAI,SAAS,UAAU;AAAA,EAC9D,OAAO,kBAAkB,KAAK,IAAI,OAAO,KAAK,IAAI;AAAA,CACnD;AAKH,IAAM,cAAc,CAClB,UAC6B,OAAO,UAAU,YAAY,UAAU;AAGtE,IAAM,UAAS,CAAQ,UACrB,OAAO,UAAU,YAAY,OAAO,UAAU;AAQhD,IAAM,WAAW,CAAQ,UACvB,QAAO,KAAK,IAAI,OAAO,KAAK,IAAI;AAMlC,IAAM,WAAW,CAAC,SAAyB,SAAQ,gBAAgB,IAAI,CAAC;AAajE,IAAM,aAAa,CACxB,OAAiC,aACF;AAAA,EAC/B,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,QAAQ,IAAI;AAAA,EAClB,OAAO,CAAC,SAAS;AAAA,IACf,MAAM,WAAW,SAAS,IAAI,IAAI;AAAA,IAClC,IAAI,UAAU;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,MAAM,OAAO,KAAK,IAAI,KAAK;AAAA,IAC3B,IAAI,SAAS;AAAA,IACb,SAAS,SAAS,EAAG,MAAM,IAAI,MAAM,GAAG,UAAU,GAAG;AAAA,MACnD,SAAS,GAAG,QAAQ;AAAA,IACtB;AAAA,IACA,MAAM,IAAI,MAAM;AAAA,IAChB,SAAS,IAAI,MAAM,MAAM;AAAA,IACzB,OAAO;AAAA;AAAA;AAQJ,IAAM,iBAAiB,CAC5B,MACA,QACA,YAEA,UACI,YAAY,UAAU,OAAO,YAAY,OACzC,GAAG,OAAO,YAAY,KAAK;AAkE1B,IAAM,qBAAqB,CAChC,WACA,YACuB;AAAA,EACvB,MAAM,aAAgC,CAAC;AAAA,EACvC,MAAM,QAAsB,CAAC;AAAA,EAC7B,MAAM,WAAqB,CAAC;AAAA,EAC5B,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,OAAO,IAAI;AAAA,EAEjB,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,aAAa,WAAW;AAAA,EAC9B,MAAM,mBAAmB,WAAW,QAAO;AAAA,EAE3C,MAAM,OAAO,cAAc,MAAM,KAAK;AAAA,EACtC,MAAM,QAAQ,CAAC,SACb,QAAQ,IAAI,IAAI,GAAG,eAAe;AAAA,EAEpC,MAAM,MAAM,CAAC,UAA+C;AAAA,IAC1D,MAAM,UAAU,WAAW,MAAM,GAAG;AAAA,IACpC,IAAI,CAAC,SAAS,IAAI,MAAM,GAAG,GAAG;AAAA,MAC5B,SAAS,IAAI,MAAM,GAAG;AAAA,MACtB,SAAS,KAAK,MAAM,GAAG;AAAA,IACzB;AAAA,IACA,MAAM,QAAQ;AAAA,IACd,OAAO,KAAK,IAAI,GAAG,GAAG;AAAA,MACpB,MAAM,GAAG,OAAO,MAAM;AAAA,IACxB;AAAA,IACA,KAAK,IAAI,GAAG;AAAA,IACZ,MAAM,QAAQ,SAAS,IAAI,OAAO,KAAK,IAAI;AAAA,IAC3C,SAAS,IAAI,SAAS,KAAK;AAAA,IAC3B,IAAI,UAAU,MAAM;AAAA,IACpB,OAAO,MAAM,IAAI,OAAO,GAAG;AAAA,MACzB,UAAU,GAAG,WAAW,MAAM;AAAA,IAChC;AAAA,IACA,MAAM,IAAI,OAAO;AAAA,IACjB,MAAM,QAAQ,GAAG,QAAQ,WAAW;AAAA,IACpC,MAAM,SAAS,GAAG,QAAQ,iBAAiB,MAAM,GAAG,KAAK;AAAA,IACzD,IAAI,WAAW,OAAO;AAAA,MACpB,MAAM,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,CAAC;AAAA,IACxC;AAAA,IACA,MAAM,YAA6B;AAAA,SAC9B;AAAA,MACH;AAAA,MACA;AAAA,MACA,KAAK,MAAM,MAAM,GAAG;AAAA,MACpB;AAAA,IACF;AAAA,IACA,WAAW,KAAK,SAAS;AAAA,IACzB,OAAO;AAAA;AAAA,EAOT,MAAM,WAAW,CAAC,GAAG,QAAQ,KAAK,CAAC;AAAA,EACnC,MAAM,OAAO,CAAC,SAAyB;AAAA,IACrC,MAAM,QAAQ,SAAS,QAAQ,IAAI;AAAA,IACnC,OAAO,UAAU,KAAK,SAAS,SAAS;AAAA;AAAA,EAG1C,MAAM,SAAS,OAA4B;AAAA,IACzC;AAAA,IACA;AAAA,IACA,MAAM,SACH,SAAS,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,EACpC,IAAI,CAAC,UAAU;AAAA,MACd,aAAa,QAAQ,IAAI,IAAI,GAAG,eAAe;AAAA,MAC/C,MAAM,MAAM,IAAI;AAAA,MAGhB,MAAM,WAAW,IAAI;AAAA,IACvB,EAAE;AAAA,EACN;AAAA,EAEA,OAAO,EAAE,KAAK,OAAO;AAAA;AASvB,IAAM,eAAe,CAAC,aACpB,IAAI,KACD,SAAS,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAgC;AAAA,EAC7D,MAAM,OAAO,SAAS,IAAI,IAAI;AAAA,EAC9B,IAAI,SAAS,WAAW;AAAA,IACtB,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,OAAmB,EAAE,aAAa,IAAI,eAAe,GAAG;AAAA,EAC9D,MAAM,cAAc,SAAS,IAAI,gBAAgB;AAAA,EACjD,IAAI,aAAa;AAAA,IACf,KAAK,cAAc;AAAA,EACrB;AAAA,EACA,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC;AAAA,CACrB,CACH;AAcK,IAAM,oBAAoB,CAC/B,UACA,cAC2B;AAAA,EAC3B,MAAM,WAAqB,CAAC;AAAA,EAC5B,MAAM,SAAsB,CAAC;AAAA,EAC7B,MAAM,YAAY,mBAAmB,WAAW,aAAa,QAAQ,CAAC;AAAA,EAGtE,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,cAAc,IAAI;AAAA,EACxB,IAAI,SAAS;AAAA,EAIb,MAAM,cAAc,CAClB,MACA,MACA,YACS;AAAA,IAET,IAAI,CAAC,MAAM;AAAA,MACT;AAAA,IACF;AAAA,IACA,IAAI,UAAU,MAAM;AAAA,MAClB,SAAS,KACP,UACI,YAAY,4KACZ,SAAS,mLACf;AAAA,MACA;AAAA,IACF;AAAA,IACA,MAAM,UAAU,OAAO,KAAK,IAAI;AAAA,IAChC,MAAM,SAAS;AAAA,IACf,UAAU,QAAQ;AAAA,IAClB,WAAW,UAAU,cAAc;AAAA,MACjC,MAAM,YAAY,KAAK;AAAA,MACvB,IAAI,CAAC,YAAY,SAAS,GAAG;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,MAAM,cAAc,SAAS,UAAU,WAAW;AAAA,MAClD,MAAM,QAA4B;AAAA,QAChC,YAAY,UAAU,cAAc;AAAA,QACpC,aAAa,SAAS,UAAU,WAAW,KAAK;AAAA,QAGhD,KAAK,aACH,QACA,MACA,gBAAgB,UAAU,OAAO,UACnC;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,SAAS,SAAS,UAAU,OAAO,KAAK;AAAA,QACxC,KACE,SAAS,UAAU,OAAO,EAAE,MAC3B,UAAU,oBAAoB;AAAA,MACnC;AAAA,MACA,MAAM,QAAQ,UAAU,IACtB,UAAU,KAAK,OAAO,SAAS,KAAK,IAAI,KAC1C;AAAA,MACA,SAAS,IAAI,OAAO,SAAS,QAAQ,QAAQ,MAAM,CAAC;AAAA,MACpD,IAAI,gBAAgB,WAAW;AAAA,QAC7B;AAAA,MACF;AAAA,MACA,MAAM,QAAQ,eAAe,MAAM,QAAQ,OAAO;AAAA,MAClD,MAAM,QAAQ,YAAY,IAAI,WAAW;AAAA,MACzC,IAAI,UAAU,WAAW;AAAA,QACvB,YAAY,IAAI,aAAa,KAAK;AAAA,QAClC;AAAA,MACF;AAAA,MAEA,MAAM,MAAM,MAAM,MAAM,SAAS,IAAI,MAAM,KAAK,IAC5C,KACA,2BAA2B,MAAM;AAAA,MACrC,OAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,SAAS,GAAG,aAAa,gCAAgC,gFAAgF,MAAM,6BAA6B;AAAA,QAC5K,YAAY;AAAA,MACd,CAAC;AAAA,IACH;AAAA;AAAA,EAGF,YAAY,MAAM,SAAS,OAAO,QAAQ,SAAS,SAAS,CAAC,CAAC,GAAG;AAAA,IAC/D,YAAY,MAAM,MAAM,KAAK;AAAA,EAC/B;AAAA,EAGA,YAAY,MAAM,SAAS,OAAO,QAAQ,SAAS,YAAY,CAAC,CAAC,GAAG;AAAA,IAClE,YAAY,MAAM,MAAM,IAAI;AAAA,EAC9B;AAAA,EAEA,MAAM,YAAY,UAAU,OAAO;AAAA,EACnC,OAAO;AAAA,OACF;AAAA,IACH;AAAA,IAEA,YAAY,UAAU,WAAW,SAC/B,CAAC,GAAG,OAAO,SAAS,IAAI,CAAC,KAAK,MAAM,SAAS,IAAI,CAAC,KAAK,EACzD;AAAA,IACA;AAAA,EACF;AAAA;AAIK,IAAM,kBAAkB,CAC7B,MACA,QACgC;AAAA,EAGhC,MAAM,SAAS,aAAa,KAAK,CAAC,cAAc,cAAc,IAAI,MAAM;AAAA,EAIxE,MAAM,WAAW,KAAK;AAAA,EACtB,MAAM,OAAO,IAAI,UACb,SAAS,WAAW,IAAI,QACxB,SAAS,QAAQ,IAAI;AAAA,EACzB,MAAM,YAAY,WAAW,YAAY,YAAY,OAAO;AAAA,EAC5D,OAAO,YAAY,SAAS,IAAI,YAAY;AAAA;;;ACnnBvC,IAAM,mBAAmB,CAAC,QAAQ,SAAS;AAmFlD,IAAM,kBAAkB,CAAC,UACvB,MAAM,WAAW,MAAM,GAAG,EAAE,WAAW,MAAM,GAAG;AAElD,IAAM,cAAc;AAEpB,IAAM,YAAW,CAAC,UAChB,OAAO,UAAU;AAGZ,IAAM,cAAc,CAAC,YAAkD;AAAA,EAC5E,MAAM,KAAK,YAAY,KAAK,SAAS,QAAQ,EAAE,GAAG,QAAQ;AAAA,EAC1D,OAAO,OAAO,YAAY,YAAY,gBAAgB,EAAE;AAAA;AAQnD,IAAM,iBAAiB,CAC5B,WACA,YACW;AAAA,EACX,MAAM,UAAU,SAAS;AAAA,EACzB,OAAO,UAAS,OAAO,KAAK,YAAY,KAAK,UAAU;AAAA;AAGzD,IAAM,WAAW,CACf,UAEA,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAErE,IAAM,wBACJ;AASF,IAAM,sBAAsB,CAAC,aAAqC;AAAA,EAChE,MAAM,OAAkE;AAAA,IACtE,CAAC,SAAS,UAAU,UAAU;AAAA,IAC9B,CAAC,SAAS,YAAY,YAAY;AAAA,EACpC;AAAA,EACA,YAAY,KAAK,YAAY,MAAM;AAAA,IACjC,IAAI,CAAC,SAAS,GAAG,GAAG;AAAA,MAClB;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,SAAS,aAAa;AAAA,IACpC,YAAY,IAAI,UAAU,OAAO,QAAQ,GAAG,GAAG;AAAA,MAC7C,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,UAAS,MAAM,IAAI,GAAG;AAAA,QAC7C;AAAA,MACF;AAAA,MACA,MAAM,SAAS,sBAAsB,KAAK,MAAM,IAAI,GAAG;AAAA,MACvD,IAAI,QAAQ,YAAY,SAAS;AAAA,QAC/B;AAAA,MACF;AAAA,MACA,MAAM,WAAW,SAAS,KAAK,IAC3B,MAAM,gBAAgB,OAAO,QAAQ,EAAE,KACvC;AAAA,MAIJ,IAAI,SAAS,QAAQ,KAAK,CAAC,UAAS,SAAS,IAAI,GAAG;AAAA,QAClD,IAAI,MAAM,KAAK,SAAS;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAAA;AAGF,IAAM,YACJ;AAUK,IAAM,sBAAsB,CACjC,aACqB;AAAA,EACrB,MAAM,eAAe,CACnB,UACkD;AAAA,IAClD,IAAI,CAAC,SAAS,KAAK,GAAG;AAAA,MACpB;AAAA,IACF;AAAA,IACA,IAAI,CAAC,UAAS,MAAM,IAAI,GAAG;AAAA,MACzB,OAAO;AAAA,IACT;AAAA,IACA,MAAM,SAAS,UAAU,KAAK,MAAM,IAAI,GAAG;AAAA,IAC3C,MAAM,UAAU,QAAQ,UACpB,SAAS,aAAa,OAAO,WAC7B;AAAA,IACJ,MAAM,WAAW,UAAU,QAAQ,QAAQ;AAAA,IAC3C,OAAO,SAAS,QAAQ,IAAI,WAAW;AAAA;AAAA,EAGzC,MAAM,cAAc,CAAC,SAAkD;AAAA,IACrE,QAAQ,WAAW;AAAA,IACnB,IAAI,CAAC,MAAM,QAAQ,MAAM,GAAG;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,OAAO,KAAK;AAAA,IACZ,MAAM,SAA4C,CAAC;AAAA,IACnD,WAAW,SAAS,QAAQ;AAAA,MAC1B,OAAO,OAAO,QAAQ,aAAa,KAAK,CAAC;AAAA,IAC3C;AAAA,IACA,YAAY,KAAK,UAAU,OAAO,QAAQ,MAAM,GAAG;AAAA,MACjD,IAAI,EAAE,OAAO,OAAO;AAAA,QAClB,KAAK,OAAO;AAAA,MACd;AAAA,IACF;AAAA;AAAA,EAGF,WAAW,aAAa,OAAO,OAAO,SAAS,cAAc,CAAC,CAAC,GAAG;AAAA,IAChE,IAAI,SAAS,SAAS,GAAG;AAAA,MACvB,YAAY,SAAS;AAAA,IACvB;AAAA,EACF;AAAA,EACA,MAAM,cAAc;AAAA,IAClB,GAAG,OAAO,OAAO,SAAS,YAAY,CAAC,CAAC;AAAA,IAGxC,GAAG,OAAO,OAAO,SAAS,YAAY,YAAY,CAAC,CAAC;AAAA,EACtD;AAAA,EACA,MAAM,cAAc;AAAA,IAClB,GAAG,YAAY,IAAI,CAAC,YAClB,SAAS,OAAO,IAAI,QAAQ,WAAW,SACzC;AAAA,IACA,SAAS,YAAY;AAAA,EACvB;AAAA,EACA,WAAW,YAAY,aAAa;AAAA,IAClC,IAAI,CAAC,SAAS,QAAQ,GAAG;AAAA,MACvB;AAAA,IACF;AAAA,IACA,WAAW,WAAW,OAAO,OAAO,QAAQ,GAAG;AAAA,MAG7C,IAAI,SAAS,OAAO,KAAK,CAAC,UAAS,QAAQ,IAAI,GAAG;AAAA,QAChD,YAAY,OAAO;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAQF,IAAM,4BAA4B,CACvC,aACqB;AAAA,EACrB,oBAAoB,QAAQ;AAAA,EAC5B,OAAO,oBAAoB,QAAQ;AAAA;AAQrC,IAAM,gBAAgB,CACpB,IACA,WACA,aAC4E;AAAA,EAC5E,MAAM,SAAS,iBAAiB,KAAK,CAAC,MAAM,MAAM,UAAU,MAAM;AAAA,EAClE,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO,cAAc;AAAA,EACvB;AAAA,EACA,MAAM,YAAY,YAAY,UAAU,OAAO;AAAA,EAC/C,MAAM,UAAU,cAAc,YAAY,YAAY,SAAS;AAAA,EAG/D,IAAI,cAAc,aAAa,CAAC,SAAS,OAAO,KAAK,UAAS,QAAQ,IAAI,GAAG;AAAA,IAC3E,OAAO,cAAc;AAAA,EACvB;AAAA,EACA,OAAO,EAAE,QAAQ,SAAS,eAAe,WAAW,OAAO,GAAG,UAAU;AAAA;AAuBnE,IAAM,4BAA4B,CACvC,UACA,cAC6B;AAAA,EAC7B,MAAM,WAAqB,CAAC;AAAA,EAC5B,MAAM,UAAU,IAAI,KACjB,SAAS,MAAM,QAAQ,CAAC,GACtB,OACC,CAAC,QACC,OAAO,KAAK,SAAS,QACzB,EACC,IAAI,CAAC,QAA8B;AAAA,IAClC,IAAI;AAAA,IACJ,EAAE,aAAa,IAAI,eAAe,GAAG;AAAA,EACvC,CAAC,CACL;AAAA,EACA,MAAM,YAAY,mBAAmB,WAAW,OAAO;AAAA,EACvD,MAAM,WAAW,SAAS,YAAY,CAAC;AAAA,EAEvC,YAAY,IAAI,cAAc,OAAO,QAAQ,SAAS,cAAc,CAAC,CAAC,GAAG;AAAA,IACvE,IAAI,CAAC,SAAS,SAAS,GAAG;AAAA,MACxB;AAAA,IACF;AAAA,IAGA,IAAI,UAAS,UAAU,IAAI,GAAG;AAAA,MAC5B,SAAS,KACP,cAAc,sGAChB;AAAA,MACA;AAAA,IACF;AAAA,IACA,MAAM,OAAO,cAAc,IAAI,WAAW,QAAQ;AAAA,IAClD,IAAI,UAAS,IAAI,GAAG;AAAA,MAClB,SAAS,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAAA,IACA,QAAQ,QAAQ,SAAS,cAAc;AAAA,IACvC,MAAM,MAAM,UAAU,MAAM,KAC1B,CAAC,cACC,OAAO,WAAW,SAAS,QAC/B,GAAG;AAAA,IACH,UAAU,IAAI;AAAA,MACZ;AAAA,MACA,YAAY,UAAU,eAAe;AAAA,MACrC,aAAa,UAAU,eAAe;AAAA,MACtC,KAAK,aAAa,QAAQ,SAAS,EAAE;AAAA,MACrC,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,MAAM;AAAA,MACN,SAAS,UAAU,SAAS,UAAU,WAAW;AAAA,MACjD,KAAK,OAAO;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,KAAK,UAAU,OAAO,GAAG,SAAS;AAAA;;;AC7W3C;AACA,cAAS;AAAA;AAkBF,MAAM,qBAAqB,MAAM;AAAA,EACtC,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA;AAEhB;AAUA,IAAM,YAAW,CAAC,UAChB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAM9D,IAAM,gBAAe,CAC1B,UAEA,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAErE,IAAM,cAAc,CAAC,UACnB,OAAO,UAAU,YAAY,UAAU;AAEzC,IAAM,UAAU,CAAC,QACf,OAAO,QAAQ;AAKjB,IAAM,cAAc,CAAC,UAAgC;AAAA,EACnD,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,UAAS,KAAK,IAAI,WAAW;AAAA;AAItC,IAAM,oBAA+C;AAAA,EACnD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AACb;AAEA,IAAM,eAAe,IAAE,YAAY;AAAA,EAEjC,MAAM,IAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,aAAa,IAAE,OAAO,EAAE,SAAS;AAAA,EAEjC,QAAQ,IAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAEjC,QAAQ,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAExB,QAAQ,IAAE,KAAK,EAAE,SAAS;AAC5B,CAAC;AAKD,IAAM,gBAAgB,IAAE,YAAY;AAAA,EAClC,SAAS,IAAE,MAAM,YAAY,EAAE,IAAI,CAAC;AAAA,EACpC,SAAS,IAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,MAAM,IAAE,YAAY,EAAE,OAAO,IAAE,OAAO,GAAG,SAAS,IAAE,OAAO,EAAE,CAAC;AAAA,EAC9D,SAAS,IAAE,OAAO,EAAE,MAAM,mBAAmB;AAAA,IAC3C,SAAS;AAAA,EACX,CAAC;AACH,CAAC;AAMM,IAAM,kBAAkB,CAC7B,OACA,SACoB;AAAA,EACpB,MAAM,SAAS,cAAc,UAAU,KAAK;AAAA,EAC5C,IAAI,OAAO,SAAS;AAAA,IAClB,OAAO,OAAO;AAAA,EAChB;AAAA,EACA,OAAO,SAAS,OAAO,MAAM;AAAA,EAC7B,MAAM,KAAK,OAAO,KAAK,SAAS,KAAK,MAAM,KAAK,KAAK,GAAG,SAAS;AAAA,EACjE,MAAM,IAAI,aACR,GAAG,oCAAoC,KAAK,OAAO,WAAW,YAChE;AAAA;AAWF,IAAM,SAAS,CAAC,UAAqB,eAAgC;AAAA,EACnE,MAAM,UAAmB,CAAC;AAAA,EAC1B,KAAK,UAAU,YAAY,CAAC,OAAO,SAAS;AAAA,IAC1C,IAAI,SAAoB;AAAA,IACxB,WAAW,OAAO,KAAK,MAAM,GAAG,EAAE,GAAG;AAAA,MAGnC,SAAU,OAA8C,QAAQ;AAAA,IAClE;AAAA,IACA,MAAM,MAAM,KAAK,GAAG,EAAE;AAAA,IACtB,QAAQ,KACN,QAAQ,aAAa,CAAC,YAAY,MAAM,IACpC,EAAE,MAAM,IACR,EAAE,KAAK,QAAQ,MAAM,CAC3B;AAAA,GACD;AAAA,EACD,OAAO;AAAA;AAQT,IAAM,QAAQ,CAAC,QAAmB,OAAkB,OAA0B;AAAA,EAC5E,IAAI,UAAS,MAAM,KAAK,UAAS,KAAK,GAAG;AAAA,IACvC,YAAY,KAAK,UAAU,OAAO,QAAQ,KAAK,GAAG;AAAA,MAGhD,OAAO,OAAO,OAAO,OAAO,QAAQ,GAAG,IACnC,MAAM,OAAO,QAAQ,MAAM,OAAO,GAAG,MAAM,KAAK,IAChD,gBAAgB,KAAK;AAAA,IAC3B;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,MAAM,QAAQ,MAAM,KAAK,MAAM,QAAQ,KAAK,GAAG;AAAA,IACjD,OAAO,KAAK,GAAG,gBAAgB,KAAK,CAAC;AAAA,IACrC,OAAO;AAAA,EACT;AAAA,EACA,IACE,YAAY,MAAM,MAAM,eACxB,YAAY,KAAK,MAAM,aACvB;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,MAAM,IAAI,aACR,eAAe,kBAAkB,YAAY,KAAK,WAAW,kBAAkB,YAAY,MAAM,SAAS,IAC5G;AAAA;AAIF,IAAM,YAAY,CAAC,YAA2B;AAAA,EAC5C,aAAa,KAAK,YAAY,QAAQ,WAAW,GAAG;AAAA,IAClD,IAAI,MAAM,QAAQ,MAAM,KAAK,QAAQ,GAAG,GAAG;AAAA,MACzC,OAAO,OAAO,KAAK,CAAC;AAAA,IACtB,EAAO,SAAI,UAAS,MAAM,KAAK,QAAQ,aAAa,CAAC,QAAQ,GAAG,GAAG;AAAA,MAEjE,OAAO,OAAO;AAAA,IAChB,EAAO;AAAA,MACL,MAAM,IAAI,aAAa,kCAAkC;AAAA;AAAA,EAE7D;AAAA;AAOF,IAAM,WAAW,CAAC,SAAkB,OAAkB,WAAmB;AAAA,EACvE,MAAM,QAAQ,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,YAAY,MAAM,KAAK,CAAC,CAAC;AAAA,EACtE,IAAI,MAAM,OAAO,GAAG;AAAA,IAClB,MAAM,IAAI,aACR,+BAA+B,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,4CAChE;AAAA,EACF;AAAA,EACA,aAAa,KAAK,QAAQ,WAAW,SAAS;AAAA,IAC5C,MAAM,SAAS,MAAM,OAAO,OAAO,MAAM;AAAA,IACzC,IAAI,WAAW,SAAS,WAAW,aAAa,QAAQ,WAAW;AAAA,MAEhE,OAA8C,OAAO;AAAA,IACxD;AAAA,EACF;AAAA;AAIF,IAAM,SAAS,CAAC,UAAqB,eAAkC;AAAA,EACrE,MAAM,SAAS,MAAM,UAAU,UAAU;AAAA,EACzC,OAAO,SAAS;AAAA,EAChB,IAAI,OAAO,WAAW,KAAK,UAAU,WAAW;AAAA,IAC9C,MAAM,IAAI,aACR,wBAAwB,uBAAuB,OAAO,0CACxD;AAAA,EACF;AAAA,EACA,OAAO,gBAAgB,KAAK;AAAA;AAG9B,IAAM,cAAc,CAAC,UAAqB,WAAgC;AAAA,EACxE,MAAM,UAAU,OAAO,UAAU,OAAO,MAAM;AAAA,EAC9C,IAAI,QAAQ,WAAW,GAAG;AAAA,IACxB;AAAA,EACF;AAAA,EACA,IAAI,OAAO,QAAQ;AAAA,IACjB,UAAU,OAAO;AAAA,IACjB;AAAA,EACF;AAAA,EACA,MAAM,QACJ,OAAO,WACN,OAAO,SAAS,YAAY,YAAY,OAAO,UAAU,OAAO,IAAI;AAAA,EACvE,IAAI,UAAU,WAAW;AAAA,IACvB,SAAS,SAAS,OAAO,OAAO,MAAM;AAAA,EACxC;AAAA;AASK,IAAM,eAAe,CAC1B,UACA,SACA,SACS;AAAA,EACT,YAAY,OAAO,WAAW,QAAQ,QAAQ,QAAQ,GAAG;AAAA,IACvD,IAAI;AAAA,MACF,YAAY,UAAU,MAAM;AAAA,MAC5B,OAAO,OAAO;AAAA,MAEd,QAAQ,YAAY;AAAA,MACpB,MAAM,IAAI,aACR,GAAG,eAAe,QAAQ,MAAM,OAAO,YAAY,SACrD;AAAA;AAAA,EAEJ;AAAA;;;ACpOF,IAAM,gBAAgB;AAGtB,IAAM,gBAAgB;AAGtB,IAAM,mBAAmB;AAWzB,IAAM,YAAW,CAAQ,UACvB,OAAO,UAAU,YAAY,UAAU;AAGzC,IAAM,SAAS,CAAQ,UACrB,OAAO,UAAU;AAGnB,IAAM,SAAS,CAAO,UACpB,MAAM,QAAQ,KAAK,IAAI,MAAM,OAAO,SAAQ,IAAI,CAAC;AAUnD,IAAM,eAAe,CACnB,UACA,MACA,cACgB;AAAA,EAChB,MAAM,aAAa,SAAS,YAAY,cAAc,CAAC;AAAA,EACvD,OAAO;AAAA,IACL,GAAG,OAAuB,KAAK,UAAU;AAAA,IACzC,GAAG,OAAuB,UAAU,UAAU;AAAA,EAChD,EAAE,QAAQ,CAAC,UAAU;AAAA,IACnB,MAAM,UACJ,UAAU,QACN,cAAc,KAAK,MAAM,IAAI,GAAG,QAAQ,OACxC;AAAA,IACN,MAAM,aAAa,UAAU,WAAW,WAAW,cAAc;AAAA,IACjE,OAAO,QAAQ,YAAY,CAAC,SAAS,IAAI,CAAC;AAAA,GAC3C;AAAA;AASH,IAAM,sBAAsB,CAC1B,WACA,MACA,aACgB;AAAA,EAChB,MAAM,OAAO,IAAI,IACf,CAAC,GAAG,KAAK,SAAS,aAAa,CAAC,EAAE,IAAI,CAAC,UAAU,MAAM,QAAQ,QAAQ,EAAE,CAC3E;AAAA,EACA,MAAM,SAAsB,CAAC;AAAA,EAC7B,WAAW,QAAQ,MAAM;AAAA,IACvB,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG;AAAA,MACvB,OAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,SAAS,GAAG,kBAAkB,sCAAsC,+DAA+D;AAAA,QACnI,YAAY,YAAY;AAAA,MAC1B,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,WAAW,QAAQ,UAAU;AAAA,IAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG;AAAA,MACnB,OAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,SAAS,GAAG,yBAAyB,8CAA8C;AAAA,QACnF,YAAY,QAAQ;AAAA,MACtB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,kBAAkB,CACtB,aAEA,OAAO,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,OAAO,KAAK,WAAW,CAAC;AASpE,IAAM,uBAAuB,CAC3B,UACA,cACgB;AAAA,EAChB,MAAM,UAAU,SAAS,YAAY,mBAAmB,CAAC;AAAA,EACzD,MAAM,OAAO,IAAI,IAAI,gBAAgB,SAAS,QAAQ,CAAC;AAAA,EACvD,MAAM,SAAsB,CAAC;AAAA,EAC7B,WAAW,UAAU,IAAI,IAAI,CAAC,GAAG,MAAM,GAAG,UAAU,KAAK,CAAC,CAAC,GAAG;AAAA,IAC5D,IAAI,OAAO,OAAO,SAAS,MAAM,GAAG;AAAA,MAClC;AAAA,IACF;AAAA,IACA,MAAM,aAAa,UAAU,IAAI,MAAM,KAAK,CAAC;AAAA,IAC7C,MAAM,OAAO,WAAW,SAAS;AAAA,IACjC,MAAM,QAAQ,KAAK,IAAI,MAAM,IACzB,wCACA,GAAG,WAAW,MAAM,GAAG,gBAAgB,EAAE,KAAK,IAAI,IAAI,OAAO,IAAI,QAAQ,cAAc,MAAM,WAAW,WAAW,IAAI,aAAa;AAAA,IACxI,OAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS,GAAG,cAAc;AAAA,MAC1B,YAAY,WAAW;AAAA,IACzB,CAAC;AAAA,EACH;AAAA,EACA,OAAO;AAAA;AAQT,IAAM,mBAAmB,CAAC,eAAkC;AAAA,EAC1D,MAAM;AAAA,EACN,SAAS,GAAG;AAAA,EACZ,YACE;AACJ;AAOA,IAAM,4BAA4B,CAChC,OACA,aACe;AAAA,EACf,MAAM;AAAA,EACN,SAAS,GAAG,4CAA4C,QAAQ,KAAK,IAAI;AAAA,EACzE,YACE;AACJ;AAQA,IAAM,kBAAkB,CAAC,cACvB,gBAAgB,aAAY,SAAS,aAAa,YAC9C;AAAA,EACE;AAAA,IACE,MAAM;AAAA,IACN,SACE;AAAA,IACF,YACE;AAAA,EACJ;AACF,IACA,CAAC;AAMP,IAAM,aACJ;AAMF,IAAM,iBAAiB,CAAC,WAA4C;AAAA,EAClE,IAAI,CAAC,OAAO,OAAO,GAAG,GAAG;AAAA,IACvB;AAAA,EACF;AAAA,EAGA,MAAM,YAAY,OAAO;AAAA,EACzB,MAAM,MAAM,mBAAmB,OAAO,KAAK,SAAS;AAAA,EACpD,IAAI;AAAA,IACF,OAAO,WAAW,KAAK,IAAI,IAAI,GAAG,EAAE,QAAQ,IAAI,MAAM;AAAA,IACtD,MAAM;AAAA,IAEN;AAAA;AAAA;AAWJ,IAAM,oBAAoB,CAAC,aAAuC;AAAA,EAChE,MAAM,QAAQ;AAAA,IACZ,SAAS;AAAA,IACT,GAAG,OAAO,OAAO,SAAS,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,SAC9C,UAAS,IAAI,KAAK,EAAE,UAAU,QAC1B;AAAA,MACE,KAAK;AAAA,MACL,GAAG,aAAa,IAAI,CAAC,WAAW;AAAA,QAC9B,MAAM,YAAY,KAAK;AAAA,QACvB,OAAO,UAAS,SAAS,IAAI,UAAU,UAAU;AAAA,OAClD;AAAA,IACH,IACA,CAAC,CACP;AAAA,EACF;AAAA,EACA,MAAM,OAAO,IAAI,IACf,MAAM,QAAQ,CAAC,YAAY,OAAO,OAAO,EAAE,IAAI,cAAc,CAAC,CAChE;AAAA,EACA,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,MAAM,EAAE,IAAI,CAAC,SAAS;AAAA,IAC5C,MAAM;AAAA,IACN,SAAS,qBAAqB;AAAA,IAC9B,YACE;AAAA,EACJ,EAAE;AAAA;AAQG,IAAM,aAAa,CAAC,aAAuC;AAAA,EAChE,MAAM,SAAsB,CAAC,GAAG,gBAAgB,QAAQ,CAAC;AAAA,EAEzD,MAAM,YAAY,IAAI;AAAA,EACtB,MAAM,QAAQ,CAAC,MAAc,MAAgB,YAA2B;AAAA,IACtE,IAAI,CAAC,UAAS,IAAI,KAAK,UAAU,MAAM;AAAA,MACrC;AAAA,IACF;AAAA,IACA,MAAM,aAAa,UAAS,KAAK,oBAAoB,IACjD,OAAO,KAAK,KAAK,oBAAoB,IACrC,CAAC;AAAA,IACL,IAAI,WAAW,SAAS,GAAG;AAAA,MACzB,OAAO,KACL,0BACE,UAAU,YAAY,UAAU,SAAS,SACzC,UACF,CACF;AAAA,IACF;AAAA,IACA,WAAW,UAAU,cAAc;AAAA,MACjC,MAAM,YAAY,KAAK;AAAA,MACvB,IAAI,CAAC,UAAS,SAAS,GAAG;AAAA,QACxB;AAAA,MACF;AAAA,MACA,MAAM,YAAY,eAAe,MAAM,QAAQ,OAAO;AAAA,MACtD,WAAW,UAAU,gBAAgB,UAAU,QAAQ,GAAG;AAAA,QACxD,UAAU,IAAI,QAAQ,CAAC,GAAI,UAAU,IAAI,MAAM,KAAK,CAAC,GAAI,SAAS,CAAC;AAAA,MACrE;AAAA,MACA,MAAM,aAAa,aAAa,UAAU,MAAM,SAAS;AAAA,MAEzD,IAAI,CAAC,SAAS;AAAA,QACZ,OAAO,KACL,GAAG,oBACD,WACA,MACA,IAAI,IACF,WACG,OAAO,CAAC,cAAc,UAAU,OAAO,MAAM,EAC7C,IAAI,CAAC,cAAc,UAAU,IAAI,EACjC,OAAO,MAAM,CAClB,CACF,CACF;AAAA,MACF;AAAA,MACA,IAAI,WAAW,KAAK,CAAC,cAAc,UAAU,OAAO,aAAa,GAAG;AAAA,QAClE,OAAO,KAAK,iBAAiB,SAAS,CAAC;AAAA,MACzC;AAAA,IACF;AAAA;AAAA,EAEF,YAAY,MAAM,SAAS,OAAO,QAAQ,SAAS,SAAS,CAAC,CAAC,GAAG;AAAA,IAC/D,MAAM,MAAM,MAAM,KAAK;AAAA,EACzB;AAAA,EACA,YAAY,MAAM,SAAS,OAAO,QAAQ,SAAS,YAAY,CAAC,CAAC,GAAG;AAAA,IAClE,MAAM,MAAM,MAAM,IAAI;AAAA,EACxB;AAAA,EACA,OAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG,qBAAqB,UAAU,SAAS;AAAA,IAC3C,GAAG,kBAAkB,QAAQ;AAAA,EAC/B;AAAA;AAIF,IAAM,cAAc;AAMpB,IAAM,YAAY,IAAI,IAAI,CAAC,SAAS,WAAW,QAAQ,WAAW,UAAU,CAAC;AAO7E,IAAM,YAAY,IAAI,IAAI;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,IAAM,eAAe,CAAC,QACpB,IAAI,WAAW,KAAK,IAAI,EAAE,WAAW,KAAK,IAAI;AAEhD,IAAM,aAAY,CAAC,UACjB,OAAO,UAAU;AAMnB,IAAM,mBAAmB,CACvB,MACA,SACA,UACa;AAAA,EACb,IAAI,MAAM,QAAQ,IAAI,GAAG;AAAA,IACvB,OAAO,KAAK,QAAQ,CAAC,MAAM,UACzB,iBAAiB,MAAM,GAAG,WAAW,SAAS,KAAK,CACrD;AAAA,EACF;AAAA,EACA,IAAI,CAAC,cAAa,IAAI,GAAG;AAAA,IACvB,OAAO,CAAC;AAAA,EACV;AAAA,EACA,OAAO,OAAO,QAAQ,IAAI,EAAE,QAAQ,EAAE,KAAK,WAAW;AAAA,IACpD,MAAM,KAAK,GAAG,WAAW,aAAa,GAAG;AAAA,IACzC,IAAI,OAAO;AAAA,MACT,OAAO,iBAAiB,OAAO,IAAI,KAAK;AAAA,IAC1C;AAAA,IACA,IAAI,QAAQ,cAAc,WAAU,KAAK,GAAG;AAAA,MAC1C,OAAO,CAAC,EAAE;AAAA,IACZ;AAAA,IACA,OAAO,UAAU,IAAI,GAAG,KAAK,IAAI,WAAW,IAAI,IAC5C,CAAC,IACD,iBAAiB,OAAO,IAAI,UAAU,IAAI,GAAG,CAAC;AAAA,GACnD;AAAA;AAWI,IAAM,iBAAiB,CAAC,aAAqC;AAAA,EAClE,MAAM,UACJ,cAAa,QAAQ,KAAK,OAAO,SAAS,OAAO,IAAI,SAAS,UAAU;AAAA,EAC1E,IAAI,CAAC,YAAY,KAAK,OAAO,GAAG;AAAA,IAC9B,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,WAAW,iBAAiB,UAAU,KAAK,KAAK;AAAA,EACtD,IAAI,SAAS,WAAW,GAAG;AAAA,IACzB,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,OAAO,SAAS,SAAS;AAAA,EAC/B,OAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS,uBAAuB,uDAAuD,SAAS,MAAM,GAAG,gBAAgB,EAAE,KAAK,IAAI,IAAI,OAAO,IAAI,QAAQ,cAAc,yEAAyE;AAAA,MAClP,YACE;AAAA,IACJ;AAAA,EACF;AAAA;;;AClZK,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACF;AAKO,IAAM,qBAAqB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAQO,IAAM,uBAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,OAAO;AACT;AAoFO,IAAM,yBAAyB,CACpC,WAEA,wBAAwB,KAAK,CAAC,SAAS,SAAS,MAAM;AAGxD,IAAM,wBAAwB;AAAA,EAC5B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AACT;AASO,IAAM,mBAAmB,CAC9B,cACW;AAAA,EAGX,MAAM,SAAS,UAAU;AAAA,EACzB,MAAM,UAAU,uBAAuB,MAAM,IACzC,SACA,sBAAsB;AAAA,EAC1B,OAAO,GAAG,WAAW,UAAU;AAAA;AAMjC,IAAM,SAAS,CAAC,GAAmB,MACjC,EAAE,OAAO,EAAE,OAAO,KAAK;AAWlB,IAAM,2BAA2B,CACtC,UACA,cACwB;AAAA,EACxB,MAAM,YAAY,mBAAmB,WAAW,IAAI,GAAK;AAAA,EACzD,MAAM,YAAY,IAAI,IAAI,OAAO,OAAO,SAAS,KAAK,CAAC;AAAA,EAEvD,WAAW,QAAQ,yBAAyB;AAAA,IAC1C,MAAM,WAAW,SAAS,MAAM;AAAA,IAChC,MAAM,OAAO,aAAa,YAAY,YAAY,SAAS,MAAM;AAAA,IACjE,WAAW,SAAS,MAAM,UAAU,CAAC,GAAG;AAAA,MACtC,UAAU,IAAI;AAAA,QACZ,YAAY,MAAM,sBAAsB;AAAA,QACxC,aAAa,MAAM;AAAA,QAGnB,KAAK,aAAa,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,QAC9C,QAAQ;AAAA,QACR,aAAa,MAAM;AAAA,QACnB,MAAM,MAAM;AAAA,QACZ,SAAS;AAAA,QACT,KAAK,qBAAqB;AAAA,MAC5B,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,WAAW,QAAQ,oBAAoB;AAAA,IACrC,MAAM,UAAU,OAAO,OAAO,SAAS,KAAK,EACzC,OACC,CAAC,SACC,KAAK,SAAS,QAAQ,EAAE,KAAK,WAAW,UAAU,IAAI,KAAK,IAAI,EACnE,EACC,SAAS,MAAM;AAAA,IAClB,WAAW,QAAQ,SAAS;AAAA,MAC1B,UAAU,IAAI;AAAA,QACZ,YAAY;AAAA,QACZ,aAAa,KAAK;AAAA,QAClB,KAAK,aAAa,MAAM,KAAK,MAAM,KAAK,IAAI;AAAA,QAC5C,QAAQ;AAAA,QACR,aAAa,KAAK;AAAA,QAClB,MAAM,KAAK;AAAA,QACX,SAAS;AAAA,QACT,KAAK,qBAAqB;AAAA,MAC5B,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,OAAO,KAAK,UAAU,OAAO,GAAG,UAAU,CAAC,EAAE;AAAA;;;ACpO/C,kBAAS,oBAAO,wBAAU;AAC1B,uBAAS;AAGT,sBAAS;AACT;AACA,oBAAS,wBAAS,qBAAY,mBAAM;;;ACNpC;AAoBO,IAAM,cAAc,cAAc,YAAY,GAAG;;;ACNxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAWE;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BF,IAAM,UAAU,CACd,UACoB;AAAA,EACpB,SAAS,OAAO,IAAI;AAAA,EACpB,MAAM,aAAa,IAAI,EAAE;AAC3B;AAQA,IAAM,iBAAiB,CACrB,UACuB;AAAA,EACvB,MAAM,UAAU,MAAM,SAAS;AAAA,EAC/B,OAAO,UAAU,MAAM,OAAO,IAAI;AAAA;AAOpC,IAAM,cAAc,CAClB,UACiC;AAAA,EACjC,MAAM,UAAU,MAAM,SAAS;AAAA,EAG/B,OAAO,UACF,oBAAoB,OAAO,IAC5B;AAAA;AAGN,IAAM,aAAa,CACjB,UACsB;AAAA,EACtB,MAAM,QAA2B;AAAA,IAC/B,aAAa,MAAM,eAAe;AAAA,IAClC,MAAM,MAAM;AAAA,IACZ,MAAM,QAAQ,MAAM,IAAI;AAAA,EAC1B;AAAA,EACA,MAAM,UAAU,eAAe,KAAK;AAAA,EACpC,IAAI,YAAY,WAAW;AAAA,IACzB,MAAM,UAAU;AAAA,EAClB;AAAA,EACA,MAAM,OAAO,YAAY,KAAK;AAAA,EAC9B,IAAI,SAAS,WAAW;AAAA,IACtB,MAAM,eAAe;AAAA,EACvB;AAAA,EAGA,IACE,MAAM,sBAAsB,QAC5B,MAAM,sBAAsB,WAC5B;AAAA,IACA,MAAM,oBAAoB,MAAM;AAAA,EAClC;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,cAAc,CAAC,UAAsD;AAAA,EACzE,MAAM,QAAoB;AAAA,IACxB,MAAM,MAAM,KAAK,IAAI,UAAU;AAAA,IAC/B,aAAa,MAAM,eAAe;AAAA,IAClC,MAAM,MAAM;AAAA,IACZ,MAAM,QAAQ,MAAM,IAAI;AAAA,EAC1B;AAAA,EACA,IACE,MAAM,sBAAsB,QAC5B,MAAM,sBAAsB,WAC5B;AAAA,IACA,MAAM,oBAAoB,MAAM;AAAA,EAClC;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,aAAa,CAAC,SAClB,KAAK,UAAU,EAAE,IAAI,CAAC,UAAU;AAAA,EAC9B,MAAM,SAA2B;AAAA,IAC/B,aAAa,MAAM,eAAe;AAAA,IAClC,MAAM,MAAM;AAAA,EACd;AAAA,EACA,IACE,MAAM,sBAAsB,QAC5B,MAAM,sBAAsB,WAC5B;AAAA,IACA,OAAO,oBAAoB,MAAM;AAAA,EACnC;AAAA,EACA,OAAO;AAAA,CACR;AAEH,IAAM,YAAY,CAChB,MACA,SACmB;AAAA,EACnB,MAAM,aAAa,KAAK,cAAc,EAAE,IAAI,CAAC,UAAU,MAAM,IAAI;AAAA,EACjE,MAAM,MAAsB;AAAA,IAC1B,aAAa,KAAK,eAAe;AAAA,IACjC,QAAQ,OAAO,OAAO,KAAK,UAAU,CAAC,EAAE,IAAI,WAAW;AAAA,IACvD;AAAA,IACA,MAAM,KAAK;AAAA,EACb;AAAA,EACA,IAAI,WAAW,SAAS,GAAG;AAAA,IACzB,IAAI,aAAa;AAAA,EACnB;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,WAAW,CAAC,UAAkD;AAAA,EAClE,aAAa,KAAK,eAAe;AAAA,EACjC,aAAa,OAAO,OAAO,KAAK,UAAU,CAAC,EAAE,IAAI,UAAU;AAAA,EAC3D,MAAM;AAAA,EACN,MAAM,KAAK;AACb;AAEA,IAAM,WAAW,CAAC,UAA4C;AAAA,EAC5D,aAAa,KAAK,eAAe;AAAA,EACjC,MAAM;AAAA,EACN,MAAM,KAAK;AAAA,EACX,eAAe,KAAK,SAAS,EAAE,IAAI,CAAC,WAAW,OAAO,IAAI;AAC5D;AAEA,IAAM,YAAY,CAAC,SAA4C;AAAA,EAC7D,MAAM,MAAsB;AAAA,IAC1B,aAAa,KAAK,eAAe;AAAA,IACjC,MAAM;AAAA,IACN,MAAM,KAAK;AAAA,EACb;AAAA,EACA,IAAI,KAAK,mBAAmB,QAAQ,KAAK,mBAAmB,WAAW;AAAA,IACrE,IAAI,iBAAiB,KAAK;AAAA,EAC5B;AAAA,EACA,IAAI,sBAAsB,IAAI,GAAG;AAAA,IAC/B,IAAI,UAAU;AAAA,EAChB;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,UAAU,CACd,MACA,WACmB;AAAA,EACnB,IAAI,aAAa,IAAI,GAAG;AAAA,IACtB,OAAO,UAAU,MAAM,QAAQ;AAAA,EACjC;AAAA,EACA,IAAI,gBAAgB,IAAI,GAAG;AAAA,IACzB,MAAM,MAAM,UAAU,MAAM,WAAW;AAAA,IAGvC,MAAM,eAAe,OAClB,mBAAmB,IAAI,EACvB,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI;AAAA,IACtC,IAAI,aAAa,SAAS,GAAG;AAAA,MAC3B,IAAI,gBAAgB;AAAA,IACtB;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,kBAAkB,IAAI,GAAG;AAAA,IAC3B,OAAO,SAAS,IAAI;AAAA,EACtB;AAAA,EACA,IAAI,WAAW,IAAI,GAAG;AAAA,IACpB,OAAO;AAAA,MACL,aAAa,KAAK,eAAe;AAAA,MACjC,YAAY,WAAW,IAAI;AAAA,MAC3B,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,IACb;AAAA,EACF;AAAA,EACA,IAAI,YAAY,IAAI,GAAG;AAAA,IACrB,OAAO,SAAS,IAAI;AAAA,EACtB;AAAA,EAGA,OAAO,UAAU,IAAyB;AAAA;AAI5C,IAAM,aAAa,CAAC,WAA2C;AAAA,EAC7D,MAAM,QAAwC,CAAC;AAAA,EAC/C,YAAY,MAAM,SAAS,OAAO,QAAQ,OAAO,WAAW,CAAC,GAAG;AAAA,IAE9D,IAAI,KAAK,WAAW,IAAI,GAAG;AAAA,MACzB;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,QAAQ,MAAM,MAAM;AAAA,EACpC;AAAA,EACA,MAAM,QAAkC,CAAC;AAAA,EACzC,MAAM,QAAQ,OAAO,aAAa;AAAA,EAClC,MAAM,WAAW,OAAO,gBAAgB;AAAA,EACxC,MAAM,eAAe,OAAO,oBAAoB;AAAA,EAChD,IAAI,OAAO;AAAA,IACT,MAAM,QAAQ,MAAM;AAAA,EACtB;AAAA,EACA,IAAI,UAAU;AAAA,IACZ,MAAM,WAAW,SAAS;AAAA,EAC5B;AAAA,EACA,IAAI,cAAc;AAAA,IAChB,MAAM,eAAe,aAAa;AAAA,EACpC;AAAA,EACA,OAAO;AAAA,IACL,MAAM,EAAE,aAAa,OAAO,eAAe,GAAG;AAAA,IAC9C;AAAA,IACA;AAAA,EACF;AAAA;AAUF,IAAM,eAAe,CACnB,UAEA,OAAO,UAAU,YAAY,UAAU,SAAQ,cAAc;AAG/D,IAAM,kBAAkB,CACtB,UAEA,OAAO,UAAU,YAAY,UAAU,SAAQ,UAAU;AAG3D,IAAM,kBAAkB,CAAQ,WAAsC;AAAA,EACpE,IAAI,aAAa,MAAM,GAAG;AAAA,IACxB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,gBAAgB,MAAM,KAAK,aAAa,OAAO,IAAI,IACtD,OAAO,OACP;AAAA;AAWN,IAAM,2BAA2B,CAAC,aAAyC;AAAA,EACzE,MAAM,QAAQ,IAAI,IAAI,oBAAoB,IAAI,CAAC,cAAc,UAAU,IAAI,CAAC;AAAA,EAC5E,WAAW,cAAc,SAAS,aAAa;AAAA,IAC7C,IAAI,WAAW,SAAS,KAAK,sBAAsB;AAAA,MACjD,MAAM,IAAI,WAAW,KAAK,KAAK;AAAA,IACjC;AAAA,EACF;AAAA,EACA,OAAO,MAAM,UAAU;AAAA,IAErB,WAAW,CAAC,SAAU,MAAM,IAAI,KAAK,KAAK,KAAK,IAAI,YAAY;AAAA,EACjE,CAAC;AAAA;AASI,IAAM,uBAAuB,CAAC,SAAkC;AAAA,EACrE,IAAI;AAAA,EACJ,IAAI,SAAS;AAAA,EACb,IAAI;AAAA,IACF,SAAS,KAAK,MAAM,IAAI;AAAA,IACxB,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,IAAI,QAAQ;AAAA,IACV,MAAM,gBAAgB,gBAAgB,MAAM;AAAA,IAC5C,IAAI,CAAC,eAAe;AAAA,MAClB,MAAM,IAAI,MACR,8EACF;AAAA,IACF;AAAA,IAIA,OAAO,WACL,kBACE,aACF,CACF;AAAA,EACF;AAAA,EACA,OAAO,WAAW,eAAe,yBAAyB,OAAM,IAAI,CAAC,CAAC,CAAC;AAAA;;;AC5UlE,MAAM,4BAA4B,MAAM;AAAA,EACpC;AAAA,EAET,WAAW,CAAC,SAAiB,YAAoB;AAAA,IAC/C,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA,IACZ,KAAK,aAAa;AAAA;AAEtB;;;AH4BA,IAAM,WAAW;AAEjB,IAAM,mBAAmB;AACzB,IAAM,eAAe;AACrB,IAAM,kBAAkB;AAGxB,IAAM,oBAAoB;AAC1B,IAAM,YAAY;AAElB,IAAM,mBAAmB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,CAAC;AACpE,IAAM,aAAa;AACnB,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAAA;AAkBO,MAAM,yBAAyB,MAAM;AAAA,EAC1C,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA;AAEhB;AA0BA,IAAI,iBAAiB;AACrB,IAAM,wBAAwB,MAAY;AAAA,EAGxC,IAAI,kBAAkB,CAAC,eAAe,KAAK,CAAC,SAAS,QAAQ,IAAI,KAAK,GAAG;AAAA,IACvE;AAAA,EACF;AAAA,EACA,IAAI;AAAA,IAGF,QAAQ,mBAAmB,wBACzB,YAAY,QAAQ;AAAA,IACtB,oBAAoB,IAAI,iBAAmB;AAAA,IAC3C,iBAAiB;AAAA,IACjB,MAAM;AAAA;AAWV,IAAM,eAAe,CAAC,aAA2C;AAAA,EAC/D,MAAM,SAAS,SAAS,QAAQ,IAAI,aAAa;AAAA,EACjD,IAAI,CAAC,QAAQ;AAAA,IACX;AAAA,EACF;AAAA,EACA,MAAM,UAAU,OAAO,MAAM;AAAA,EAC7B,IAAI,OAAO,SAAS,OAAO,GAAG;AAAA,IAC5B,OAAO,UAAU,IAAI,UAAU,YAAY;AAAA,EAC7C;AAAA,EACA,MAAM,QAAQ,KAAK,MAAM,MAAM,IAAI,KAAK,IAAI;AAAA,EAC5C,OAAO,OAAO,SAAS,KAAK,KAAK,QAAQ,IAAI,QAAQ;AAAA;AAQvD,IAAM,eAAe,OAAO,SAAmC;AAAA,EAC7D,IAAI;AAAA,IACF,MAAM,WAAW,MAAM,MAAM,MAAM;AAAA,MACjC,SAAS;AAAA,QACP,QAAQ;AAAA,QACR,cAAc;AAAA,MAChB;AAAA,MACA,UAAU;AAAA,MACV,QAAQ,YAAY,QAAQ,gBAAgB;AAAA,IAC9C,CAAC;AAAA,IACD,IAAI,SAAS,IAAI;AAAA,MACf,OAAO,EAAE,MAAM,MAAM,SAAS,KAAK,EAAE;AAAA,IACvC;AAAA,IACA,OAAO;AAAA,MACL,OAAO,IAAI,MAAM,GAAG,WAAW,SAAS,UAAU,SAAS,YAAY;AAAA,MACvE,YAAY,aAAa,QAAQ;AAAA,MACjC,WAAW,iBAAiB,IAAI,SAAS,MAAM;AAAA,IACjD;AAAA,IACA,OAAO,OAAO;AAAA,IAGd,OAAO;AAAA,MACL,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,MAC/D,WAAW;AAAA,IACb;AAAA;AAAA;AAaJ,IAAM,sBAAsB,CAC1B,OACA,eACwB;AAAA,EACxB,MAAM,UAA+B,IAAI,MAAM,MAAM,SAAS;AAAA,IAC5D,OAAO;AAAA,EACT,CAAC;AAAA,EACD,QAAQ,OAAO;AAAA,EACf,QAAQ,aAAa;AAAA,EACrB,OAAO;AAAA;AAIT,IAAM,gBAAgB,OAAO,SAAkC;AAAA,EAC7D,sBAAsB;AAAA,EACtB,OAAO,MAAM,OACX,YAAY;AAAA,IACV,MAAM,UAAU,MAAM,aAAa,IAAI;AAAA,IACvC,IAAI,UAAU,SAAS;AAAA,MACrB,OAAO,QAAQ;AAAA,IACjB;AAAA,IACA,IAAI,CAAC,QAAQ,WAAW;AAAA,MAEtB,MAAM,IAAI,WAAW,QAAQ,KAAK;AAAA,IACpC;AAAA,IACA,MAAM,oBAAoB,QAAQ,OAAO,QAAQ,UAAU;AAAA,KAE7D;AAAA,IACE,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,YAAY;AAAA,IAIZ,iBAAiB,OAAO,YAAY;AAAA,MAGlC,QAAQ,eAAe,QAAQ;AAAA,MAC/B,IAAI,eAAe,aAAa,QAAQ,cAAc,GAAG;AAAA,QACvD,MAAM,MACJ,KAAK,IACH,GACA,KAAK,IAAI,YAAY,iBAAiB,IAAI,QAAQ,UACpD,CACF;AAAA,MACF;AAAA;AAAA,IAEF,SAAS,eAAe;AAAA,EAC1B,CACF;AAAA;AAGF,IAAM,eAAe,CAAC,UAAkB,SACtC,OAAK,UAAU,QAAQ,SAAS,IAAI,SAAS;AAE/C,IAAM,YAAY,OAAO,SAA8C;AAAA,EACrE,IAAI;AAAA,IACF,OAAO,MAAM,UAAS,MAAM,OAAO;AAAA,IACnC,MAAM;AAAA,IACN;AAAA;AAAA;AAIJ,IAAM,aAAa,OACjB,KACA,MACA,SACkB;AAAA,EAClB,IAAI;AAAA,IACF,MAAM,OAAM,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,IACpC,MAAM,WAAU,MAAM,MAAM,OAAO;AAAA,IACnC,MAAM;AAAA;AAMV,IAAM,eAAe,OACnB,MACA,MACA,YACkD;AAAA,EAClD,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG;AAAA,IACxB,MAAM,WAAW,YAAW,IAAI,IAAI,OAAO,OAAK,MAAM,IAAI;AAAA,IAC1D,OAAO,EAAE,MAAM,MAAM,UAAS,UAAU,OAAO,GAAG,UAAU,CAAC,EAAE;AAAA,EACjE;AAAA,EAEA,MAAM,YAAY,QAAQ,WACtB,aAAa,QAAQ,UAAU,IAAI,IACnC;AAAA,EAGJ,IAAI,aAAa,QAAQ,YAAY,OAAO;AAAA,IAC1C,MAAM,SAAS,MAAM,UAAU,SAAS;AAAA,IACxC,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,EAAE,MAAM,QAAQ,UAAU,CAAC,EAAE;AAAA,IACtC;AAAA,EACF;AAAA,EAEA,IAAI;AAAA,IACF,MAAM,OAAO,MAAM,cAAc,IAAI;AAAA,IACrC,IAAI,QAAQ,YAAY,WAAW;AAAA,MACjC,MAAM,WAAW,QAAQ,UAAU,WAAW,IAAI;AAAA,IACpD;AAAA,IACA,OAAO,EAAE,MAAM,UAAU,CAAC,EAAE;AAAA,IAC5B,OAAO,OAAO;AAAA,IAEd,IAAI,WAAW;AAAA,MACb,MAAM,SAAS,MAAM,UAAU,SAAS;AAAA,MACxC,IAAI,WAAW,WAAW;AAAA,QAGxB,OAAO;AAAA,UACL,MAAM;AAAA,UACN,UAAU;AAAA,YACR,mBAAmB,SAAU,MAAgB;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM;AAAA;AAAA;AAeV,IAAM,gBAAgB,CAAQ,UAC5B,OAAO,UAAU,YAAY,UAAU;AAOzC,IAAM,eAAe,OACnB,MACA,MACA,YAC4E;AAAA,EAC5E,OAAO,SAAS,YAAY,MAAM,QAAQ,IACxC,CAAC,MAAM,GAAI,QAAQ,YAAY,CAAC,CAAE,EAAE,IAAI,CAAC,SACvC,aAAa,MAAM,MAAM,OAAO,CAClC,CACF;AAAA,EACA,MAAM,WAAW,WAAU,MAAM,QAAQ,EAAE;AAAA,EAC3C,YAAY,OAAO,YAAY,SAAS,QAAQ,GAAG;AAAA,IACjD,MAAM,OAAO,QAAQ,WAAW,UAAU;AAAA,IAC1C,MAAM,SAAS,gBAAgB,WAAU,QAAQ,IAAI,GAAG,IAAI;AAAA,IAG5D,IAAI,cAAa,QAAQ,GAAG;AAAA,MAC1B,aAAa,UAAU,QAAQ,IAAI;AAAA,IACrC;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA,UAAU,CAAC,MAAM,GAAG,QAAQ,EAAE,QAAQ,CAAC,UAAU,OAAO,YAAY,CAAC,CAAC;AAAA,EACxE;AAAA;AAOK,IAAM,mBAAmB,OAC9B,MACA,MACA,YACkD;AAAA,EAClD,QAAQ,UAAU,aAAa,MAAM,aAAa,MAAM,MAAM,OAAO;AAAA,EACrE,OAAO,EAAE,MAAM,KAAK,UAAU,QAAQ,GAAG,SAAS;AAAA;AASpD,IAAM,cAAc,CAAC,UACnB,cAAa,KAAK,KAClB,cAAa,MAAM,MAAM,KACzB,OAAO,MAAM,OAAO,SAAS;AAQ/B,IAAM,eAAe,CACnB,KACA,MACA,SACuB;AAAA,EACvB,IAAI,IAAI,SAAS,GAAG,GAAG;AAAA,IACrB;AAAA,EACF;AAAA,EACA,IAAI,SAAS,KAAK,GAAG,GAAG;AAAA,IACtB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,SAAS,KAAK,IAAI,GAAG;AAAA,IACvB,OAAO,IAAI,IAAI,KAAK,IAAI,EAAE;AAAA,EAC5B;AAAA,EACA,OAAO,SAAQ,SAAQ,YAAW,IAAI,IAAI,OAAO,OAAK,MAAM,IAAI,CAAC,GAAG,GAAG;AAAA;AAYzE,IAAM,mBAAmB,OACvB,UACA,MACA,MACA,YACyB;AAAA,EACzB,MAAM,QAA0C,CAAC;AAAA,EACjD,MAAM,SAAS,OACb,OACA,KACA,UACmC;AAAA,IACnC,MAAM,SAAS,aAAa,KAAK,MAAM,IAAI;AAAA,IAC3C,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS,GAAG,uEAAuE;AAAA,QACnF,YACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,IAAI;AAAA,MACF,QAAQ,SAAS,MAAM,aAAa,QAAQ,MAAM,OAAO;AAAA,MACzD,MAAM,SAAS;AAAA,MACf;AAAA,MACA,OAAO,OAAO;AAAA,MAGd,QAAQ,YAAY;AAAA,MACpB,OAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS,GAAG,uEAAuE,iCAAiC;AAAA,QACpH,YACE;AAAA,MACJ;AAAA;AAAA;AAAA,EAGJ,MAAM,QAAQ,CACZ,MACA,MACA,YACS;AAAA,IACT,IAAI,CAAC,cAAa,IAAI,KAAK,UAAU,MAAM;AAAA,MACzC;AAAA,IACF;AAAA,IACA,WAAW,UAAU,cAAc;AAAA,MACjC,MAAM,YAAY,KAAK;AAAA,MAEvB,MAAM,UAAU,cAAa,SAAS,IACjC,UAAU,oBAAoB,UAAU,oBACzC;AAAA,MACJ,WAAW,SAAS,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC,GAAG;AAAA,QACzD,IAAI,YAAY,KAAK,GAAG;AAAA,UACtB,MAAM,KACJ,OACE,OACA,MAAM,OAAO,MACb,eAAe,MAAM,QAAQ,OAAO,CACtC,CACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EAEF,YAAY,MAAM,SAAS,OAAO,QAAQ,SAAS,SAAS,CAAC,CAAC,GAAG;AAAA,IAC/D,MAAM,MAAM,MAAM,KAAK;AAAA,EACzB;AAAA,EACA,YAAY,MAAM,SAAS,OAAO,QAAQ,SAAS,YAAY,CAAC,CAAC,GAAG;AAAA,IAClE,MAAM,MAAM,MAAM,IAAI;AAAA,EACxB;AAAA,EACA,MAAM,SAAS,MAAM,QAAQ,IAAI,KAAK;AAAA,EACtC,OAAO,OAAO,OAAO,CAAC,UAAU,UAAU,SAAS;AAAA;AAG9C,IAAM,YAAY,OACvB,MACA,MACA,UAA4B,CAAC,MACL;AAAA,EACxB,QAAQ,UAAU,YAAY,aAAa,MAAM,aAC/C,MACA,MACA,OACF;AAAA,EAEA,MAAM,WAAW,cAAa,UAAU,IAAI,eAAe,UAAU,IAAI,CAAC;AAAA,EAC1E,QAAQ,kBAAkB,QAAQ,UAAU;AAAA,EAE5C,IAAI,CAAC,cAAc,aAAa,GAAG;AAAA,IACjC,MAAM,IAAI,iBACR,GAAG,wEACL;AAAA,EACF;AAAA,EACA,MAAM,SAAS,MAAM,iBAAiB,eAAe,MAAM,MAAM,OAAO;AAAA,EACxE,OAAO;AAAA,IACL,UAAU;AAAA,IACV,QAAQ,CAAC,GAAG,UAAU,GAAG,MAAM;AAAA,IAC/B;AAAA,EACF;AAAA;AAaF,IAAM,qBAAqB,CACzB,UAEA,OAAO,UAAU,YACjB,UAAU,SACV,cAAc,UACd,OAAO,MAAM,aAAa,YAC1B,MAAM,aAAa;AAErB,IAAM,YAAY;AAUlB,IAAM,gBAAgB,OACpB,MACA,SACA,SACoC;AAAA,EACpC,IAAI;AAAA,IAEF,MAAM,YAAoC,YAAY,SAAS;AAAA,IAC/D,OAAO;AAAA,IACP,OAAO,OAAO;AAAA,IAGd,QAAQ,MAAM,YAAY;AAAA,IAG1B,IAAI,SAAS,sBAAsB,CAAC,QAAQ,SAAS,IAAI,YAAY,GAAG;AAAA,MACtE,MAAM;AAAA,IACR;AAAA,IACA,QAAQ,QAAQ,YAAY,MAAM,4BAA4B,IAAI,CAAC;AAAA,IACnE,MAAM,IAAI,oBACR,GAAG,oBAAoB,qDAAqD,qCAC5E,qBAAqB,OAAO,mDAC9B;AAAA;AAAA;AAeG,IAAM,oBAAoB,OAC/B,MACA,MACA,UAA4B,CAAC,MACG;AAAA,EAChC,QAAQ,MAAM,aAAa,MAAM,aAAa,MAAM,MAAM,OAAO;AAAA,EACjE,MAAM,aAAa,WAAU,IAAI;AAAA,EACjC,IAAI,CAAC,mBAAmB,UAAU,GAAG;AAAA,IACnC,MAAM,IAAI,iBACR,GAAG,4GACL;AAAA,EACF;AAAA,EACA,MAAM,UAAU,WAAW;AAAA,EAC3B,IAAI,WAA6B;AAAA,EACjC,IAAI,CAAC,QAAQ,WAAW,IAAI,GAAG;AAAA,IAC7B,QAAQ,YAAY,MAAM,cAAc,MAAM,SAAS,IAAI;AAAA,IAI3D,MAAM,WAAqB,CAAC;AAAA,IAC5B,MAAM,eAAe,QAAQ;AAAA,IAC7B,QAAQ,OAAO,IAAI,SAAoB;AAAA,MACrC,SAAS,KAAK,KAAK,IAAI,MAAM,EAAE,KAAK,GAAG,CAAC;AAAA;AAAA,IAE1C,IAAI;AAAA,MAIF,WAAW,QACT,UACA,OACF;AAAA,MACA,OAAO,OAAO;AAAA,MAId,MAAM,IAAI,iBACR,GAAG,gDAAiD,MAAgB,WACtE;AAAA,cACA;AAAA,MACA,QAAQ,OAAO;AAAA;AAAA,IAEjB,SAAS,KACP,GAAG,SAAS,IACV,CAAC,YAAY,cAAc,yBAAyB,SACtD,CACF;AAAA,EACF;AAAA,EACA,OAAO,EAAE,UAAU,0BAA0B,QAAQ,GAAG,SAAS;AAAA;AAiB5D,IAAM,mBAAmB,OAC9B,MACA,MACA,UAA4B,CAAC,MACE;AAAA,EAC/B,QAAQ,MAAM,aAAa,MAAM,aAAa,MAAM,MAAM,OAAO;AAAA,EACjE,IAAI;AAAA,IACF,OAAO,EAAE,UAAU,qBAAqB,IAAI,GAAG,SAAS;AAAA,IACxD,OAAO,OAAO;AAAA,IAId,MAAM,IAAI,iBACR,GAAG,uCAAwC,MAAgB,QAAQ,KAAK,IAC1E;AAAA;AAAA;;;AIppBJ,yBAAS;AACT,qBAAS;AACT;;;ACFA;AACA;AACA;AACA;;;ACKA,IAAM,eAAe,IAAI,IAAI,CAAC,QAAQ,SAAS,UAAU,KAAK,CAAC;AAE/D,IAAM,UAAS;AASf,IAAM,mBACJ;AAEF,IAAM,mBAAmB,IAAI,IAAI;AAAA,EAC/B,CAAC,SAAS,GAAG;AAAA,EACb,CAAC,SAAS,IAAI;AAAA,EACd,CAAC,WAAW;AAAA,CAAI;AAAA,EAChB,CAAC,UAAU,GAAG;AAAA,EACd,CAAC,QAAQ,GAAG;AAAA,EACZ,CAAC,OAAO,IAAI;AACd,CAAC;AAED,IAAM,kBAAiB;AACvB,IAAM,aAAa,EAAE,KAAK,OAAS,OAAO,MAAQ;AAGlD,IAAM,gBAAgB,CAAC,SACrB,SAAS,KACT,OAAO,mBACN,QAAQ,WAAW,SAAS,QAAQ,WAAW,MAC5C,MACA,OAAO,cAAc,IAAI;AAE/B,IAAM,iBAAiB,CAAC,SACtB,KAAK,WACH,kBACA,CACE,QACA,SACA,KACA,SACA,UACG;AAAA,EACH,IAAI,YAAY,WAAW;AAAA,IACzB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,UAAU,WAAW;AAAA,IACvB,OAAO,iBAAiB,IAAI,KAAK,KAAK;AAAA,EACxC;AAAA,EACA,MAAM,OACJ,QAAQ,YAAY,OAAO,OAAO,IAAI,OAAO,SAAS,KAAK,EAAE;AAAA,EAC/D,OAAO,cAAc,IAAI;AAAA,CAE7B;AAKF,IAAM,cAAc;AAGb,IAAM,aAAa,CAAC,SAA0B;AAAA,EACnD,MAAM,UAAU,eAAe,IAAI,EAAE,WAAW,aAAa,EAAE;AAAA,EAC/D,IAAI,QAAQ;AAAA,EACZ,OAAO,QAAQ,QAAQ,WAAW,QAAQ,YAAY,KAAK,KAAK,MAAM,IAAM;AAAA,IAC1E,SAAS;AAAA,EACX;AAAA,EACA,MAAM,SAAS,QAAO,KAAK,QAAQ,MAAM,KAAK,CAAC,GAAG,QAAQ;AAAA,EAC1D,OAAO,WAAW,aAAa,aAAa,IAAI,OAAO,YAAY,CAAC;AAAA;;;AC5DtE,IAAM,oBAAoB;AAM1B,IAAM,kBAAkB;AASxB,IAAM,WAAW;AAKjB,IAAM,sBAAsB;AAS5B,IAAM,cACJ;AASF,IAAM,YAAY;AAIlB,IAAM,eAAe;AAErB,IAAM,mBAAmB,CAAC,SACxB,KAAK,WAAW,aAAa,CAAC,OAAe,WAAmB;AAAA,EAE9D,MAAM,SAAS,MAAM,MAAM,OAAO,MAAM;AAAA,EACxC,MAAM,QAAQ,OAAO,OAAO,OAAO;AAAA,EACnC,OAAO,UAAU,KACb,GAAG,WAAW,WACd,GAAG,SAAS,OAAO,MAAM,GAAG,KAAK,MAAM,OAAO,MAAM,KAAK;AAAA,CAC9D;AAEH,IAAM,iBAAiB,CAAC,SACtB,KAAK,WACH,WACA,CAAC,YAAoB,KAAK,QAAQ,YAAY,CAAC,KAAK,QAAQ,MAAM,CAAC,GACrE;AAEF,IAAM,iBAAiB,CAAC,SACtB,KAAK,WAAW,mBAAmB,OAAO,QAAQ;AAGpD,IAAM,aAAa,CAAC,SAClB,eACE,iBACE,KACG,WAAW,iBAAiB,OAAO,OAAO,EAC1C,WAAW,qBAAqB,OAAO,OAAO,CACnD,CACF;AAMK,IAAM,qBAAqB,CAAC,SACjC,WAAW,eAAe,IAAI,CAAC;AAGjC,IAAM,cAAc,CAAC,SAAyB;AAAA,EAC5C,IAAI,MAAM;AAAA,EACV,IAAI,OAAO;AAAA,EACX,WAAW,SAAS,KAAK,SAAS,QAAQ,GAAG;AAAA,IAC3C,OAAO,eAAe,KAAK,MAAM,MAAM,MAAM,KAAK,CAAC,IAAI,MAAM;AAAA,IAC7D,OAAO,MAAM,QAAQ,MAAM,GAAG;AAAA,EAChC;AAAA,EACA,OAAO,WAAW,MAAM,eAAe,KAAK,MAAM,IAAI,CAAC,CAAC;AAAA;AAyB1D,IAAM,eAAe;AAGrB,IAAM,qBAAqB,CAAC,SAAyB;AAAA,EACnD,IAAI,UAAU;AAAA,EACd,WAAW,OAAO,KAAK,MAAM,YAAY,KAAK,CAAC,GAAG;AAAA,IAChD,UAAU,KAAK,IAAI,SAAS,IAAI,MAAM;AAAA,EACxC;AAAA,EACA,OAAO;AAAA;AAQF,IAAM,WAAW,CAAC,SAAyB;AAAA,EAChD,MAAM,QAAQ,IAAI,OAAO,mBAAmB,IAAI,IAAI,CAAC;AAAA,EACrD,MAAM,MAAM,KAAK,WAAW,GAAG,KAAK,KAAK,SAAS,GAAG,IAAI,MAAM;AAAA,EAC/D,OAAO,GAAG,QAAQ,MAAM,OAAO,MAAM;AAAA;AAUvC,IAAM,aACJ;AACF,IAAM,cAAc,IAAI,OACtB,GAAG,WAAW,UAAU,SAAS,eACjC,KACF;AAIA,IAAM,iBAAiB;AAWhB,IAAM,kBAAkB,CAAC,SAC9B,eACE,KACG,WAAW,cAAc,EAAE,EAC3B,WAAW,aAAa,CAAC,UACxB,UAAU,SAAS,KAAK,KAC1B,EACC,QAAQ,gBAAgB,OAAO,QAAQ,CAC5C;AAEF,IAAM,aAAa;AAMnB,IAAM,eAAe,CACnB,MACA,WACW;AAAA,EACX,MAAM,QAAQ,WAAW,KAAK,IAAI;AAAA,EAClC,MAAM,OAAO,OAAO,QAAQ,QAAQ;AAAA,EACpC,IAAI,SAAS,IAAI;AAAA,IACf,OAAO;AAAA,EACT;AAAA,EACA,OAAO,GAAG,OAAO,QAAQ,QAAQ,KAAK,OAAO,IAAI,IAAI,OAAO,QAAQ,SAAS;AAAA;AAG/E,IAAM,aAAa,CAAC,QAAQ,QAAQ,UAAU,QAAQ;AAEtD,IAAM,YAAY,CAChB,GACA,GACA,QAAwC,eAC5B,MAAM,MAAM,CAAC,SAAS,QAAQ,EAAE,KAAK,MAAM,QAAQ,EAAE,KAAK,CAAC;AASzE,IAAM,YAAY,CAChB,MACA,QAAwC,eACzB;AAAA,EACf,MAAM,SAAqB,CAAC;AAAA,EAC5B,WAAW,OAAO,MAAM;AAAA,IACtB,MAAM,QAAQ,OAAO,GAAG,EAAE;AAAA,IAC1B,IAAI,SAAS,UAAU,MAAM,OAAO,IAAI,OAAO,KAAK,GAAG;AAAA,MACrD,MAAM,KAAK,KAAK,GAAG;AAAA,IACrB,EAAO;AAAA,MACL,OAAO,KAAK,EAAE,OAAO,IAAI,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;AAAA;AAAA,EAEjD;AAAA,EACA,OAAO;AAAA;AAaT,IAAM,aAAa,CACjB,MACA,WAEA,UAAU,MAAM,CAAC,QAAQ,UAAU,QAAQ,CAAC,EACzC,IAAI,GAAG,OAAO,MAAM,aAAa;AAAA,EAChC,MAAM,QAAQ,UAAU,MAAM,EAC3B,IAAI,CAAC,SACJ,aAAa,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,SACvD,KAAK,MAAM,OAAO,SAAS,IAAI,IAAI,OAAO,IAAI,CAChD,CACF,EACC,KAAK,EAAE;AAAA,EACV,OAAO,aAAa,OAAO,CAAC,SAAS;AAAA,IACnC,IAAI,MAAM;AAAA,IACV,IAAI,MAAM,MAAM;AAAA,MACd,MAAM,KAAK;AAAA,IACb;AAAA,IACA,IAAI,MAAM,QAAQ;AAAA,MAChB,MAAM,IAAI;AAAA,IACZ;AAAA,IACA,IAAI,MAAM,QAAQ;AAAA,MAChB,MAAM,KAAK;AAAA,IACb;AAAA,IACA,OAAO;AAAA,GACR;AAAA,CACF,EACA,KAAK,EAAE;AAGZ,IAAM,cAAc,CAClB,OACA,WACW;AAAA,EACX,IAAI,MAAM;AAAA,EACV,IAAI,OAAoB,CAAC;AAAA,EACzB,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,cAAc,MAAM;AAAA,MACtB,OAAO,WAAW,MAAM,MAAM,IAAI,KAAK;AAAA,MACvC,OAAO,CAAC;AAAA,IACV,EAAO;AAAA,MACL,KAAK,KAAK,IAAI;AAAA;AAAA,EAElB;AAAA,EACA,OAAO,MAAM,WAAW,MAAM,MAAM;AAAA;AAI/B,IAAM,eAAe,CAAC,UAC3B,YAAY,OAAO,WAAW;AAEhC,IAAM,UAAU,CAAC,SAAyB;AAQnC,IAAM,kBAAkB,CAAC,UAC9B,YAAY,OAAO,OAAO;AAK5B,IAAM,qBAAqB;AAQ3B,IAAM,uBAAuB;AAI7B,IAAM,sBAAsB;AAGrB,IAAM,cAAc,CAAC,QAAwB;AAAA,EAClD,MAAM,UAAU,IACb,WAAW,qBAAqB,EAAE,EAClC,WAAW,sBAAsB,OAAO,QAAQ;AAAA,EACnD,OAAO,mBAAmB,KAAK,OAAO,IAAI,IAAI,aAAa;AAAA;AAatD,IAAM,YAAY,CACvB,OACA,MACA,MAAM,UAEN,QAAQ,WAAW,IAAI,IACnB;AAAA,EACE;AAAA,IACE,UAAU,IAAI,YAAY,OAAO,MAAM,UAAU,kBAAkB,MAAM,YAAY,IAAI;AAAA,EAC3F;AACF,IACA;AAGC,IAAM,gBAAgB,CAAC,UAC5B,GAAG,IAAI,OAAO,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAGpD,IAAM,aAAa,CAAC,SACzB,KACG,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,SAAU,SAAS,KAAK,MAAM,KAAK,MAAO,EAC/C,KAAK;AAAA,CAAI;AAMP,IAAM,WAAW,CAAC,QAAgB,SAAyB;AAAA,EAChE,OAAO,QAAQ,OAAO,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,EAC7C,MAAM,MAAM,IAAI,OAAO,OAAO,SAAS,CAAC;AAAA,EACxC,OAAO;AAAA,IACL,GAAG,UAAU;AAAA,IACb,GAAG,KAAK,IAAI,CAAC,SAAU,SAAS,KAAK,KAAK,GAAG,MAAM,MAAO;AAAA,EAC5D,EAAE,KAAK;AAAA,CAAI;AAAA;AAIN,IAAM,SAAS,CAAC,MAAc,UAA0B;AAAA,EAC7D,MAAM,MAAM,IAAI,OAAO,KAAK;AAAA,EAC5B,OAAO,KACJ,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,SAAU,SAAS,KAAK,KAAK,GAAG,MAAM,MAAO,EAClD,KAAK;AAAA,CAAI;AAAA;AAOd,IAAM,iBAAiB;AAMhB,IAAM,YAAY,CAAC,MAAc,WAAW,OAAe;AAAA,EAChE,MAAM,QAAQ,IAAI,OAAO,KAAK,IAAI,GAAG,mBAAmB,IAAI,IAAI,CAAC,CAAC;AAAA,EAClE,MAAM,QAAQ,eAAe,KAAK,QAAQ,IAAI,WAAW;AAAA,EACzD,OAAO,GAAG,QAAQ;AAAA,EAAU;AAAA,EAAS;AAAA;AAIhC,IAAM,QAAQ,CAAC,KAAa,QACjC,KAAK,mBAAmB,GAAG,MAAM,YAAY,GAAG;AAS3C,IAAM,YAAY,CACvB,gBACY,gBAAgB,aAAa,OAAO,KAAK,WAAW,EAAE,SAAS;AAK7E,IAAM,cAAc;AAMb,IAAM,cAAc,CAAC,MAAc,MAAM,UAAkB;AAAA,EAChE,MAAM,QAAQ,KAAK,WAAW,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC;AAAA,EACtE,OAAO,MAAM,mBAAmB,cAAc,oBAAoB;AAAA;AAI7D,IAAM,aAAa,CAAC,WACzB,OAAO,OAAO,CAAC,UAAU,UAAU,EAAE,EAAE,KAAK;AAAA;AAAA,CAAM;AAG7C,IAAM,mBAAmB,CAAC,WAC/B,GAAG,WAAW,MAAM;AAAA;AAEtB,IAAM,WAAW;AAOV,IAAM,cAAc,CAAC,KAAa,SAA0B;AAAA,EACjE,IAAI,IAAI,WAAW,IAAI,GAAG;AAAA,IACxB,OAAO,SAAS;AAAA,EAClB;AAAA,EACA,IAAI,SAAS,KAAK,GAAG,KAAK,SAAS,WAAW;AAAA,IAC5C,OAAO;AAAA,EACT;AAAA,EACA,OAAO,IAAI,IAAI,KAAK,IAAI,EAAE;AAAA;;;AFhbrB,IAAM,kBAAkB,CAAC,SAAiC;AAAA,EAC/D,MAAM,QAA0B,CAAC;AAAA,EACjC,MAAM,QAAQ,CAAC,SAAsB;AAAA,IACnC,KACG,KAAK,SAAS,UAAU,KAAK,SAAS,iBACvC,CAAC,WAAW,KAAK,GAAG,GACpB;AAAA,MAEA,MAAM,QAAQ,KAAK,UAAU,MAAM,UAAU;AAAA,MAC7C,MAAM,MAAM,KAAK,UAAU,IAAI,UAAU;AAAA,MACzC,MAAM,KAAK;AAAA,QACT;AAAA,QACA;AAAA,QACA,MAAM,KAAK,SAAS,SAAS,mBAAmB,SAAS,IAAI,CAAC,IAAI;AAAA,MACpE,CAAC;AAAA,MACD;AAAA,IACF;AAAA,IACA,IAAI,cAAc,MAAM;AAAA,MACtB,WAAW,SAAS,KAAK,UAAU;AAAA,QACjC,MAAM,KAAK;AAAA,MACb;AAAA,IACF;AAAA;AAAA,EAEF,MAAM,IAAI;AAAA,EACV,OAAO;AAAA;AAUF,IAAM,wBAAwB,CAAC,aAA6B;AAAA,EACjE,MAAM,QAAQ,gBACZ,aAAa,UAAU;AAAA,IACrB,YAAY,CAAC,IAAI,CAAC;AAAA,IAClB,iBAAiB,CAAC,gBAAgB,CAAC;AAAA,EACrC,CAAC,CACH;AAAA,EACA,IAAI,MAAM;AAAA,EACV,IAAI,SAAS;AAAA,EACb,WAAW,QAAQ,OAAO;AAAA,IACxB,OAAO,SAAS,MAAM,QAAQ,KAAK,KAAK,IAAI,KAAK;AAAA,IACjD,SAAS,KAAK;AAAA,EAChB;AAAA,EACA,OAAO,MAAM,SAAS,MAAM,MAAM;AAAA;;;AG3EpC;AAYO,IAAM,gBAAgB,CAAC,MAAc,QAAwB;AAAA,EAClE,IAAI,MAAM;AAAA,EACV,IAAI,OAAO;AAAA,EACX,MAAM,YAAY,IAAI,KAAK,UAAU,WAAW,EAAE,aAAa,WAAW,CAAC;AAAA,EAC3E,aAAa,OAAO,aAAa,UAAU,QAAQ,IAAI,GAAG;AAAA,IACxD,MAAM,QAAQ,YAAY,OAAO;AAAA,IACjC,IAAI,OAAO,QAAQ,KAAK;AAAA,MACtB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,IACR,MAAM,QAAQ,QAAQ;AAAA,EACxB;AAAA,EACA,OAAO,KAAK,MAAM,GAAG,GAAG;AAAA;;;ACpB1B,IAAM,uBAAuB;AAO7B,IAAM,gBAAgB;AAMtB,IAAM,gBAAgB;AAGf,IAAM,eAAe,CAAC,SAC3B,cAAc,KAAK,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI;AAQ/C,IAAM,gBAAgB,CAAC,SAC5B,SAAS,MAAM,qBAAqB,KAAK,IAAI,IAAI,OAAO,GAAG;AAStD,IAAM,aAAa,CAAC,SACzB,cAAc,aAAa,IAAI,IAAI,KAAK,QAAQ,eAAe,EAAE,IAAI,IAAI;;;AC7BpE,IAAM,qBAAqB,CAChC,MACA,cAEA,KAAK,SAAS,YACV,iBAAiB,SAAS,IAC1B,GAAG,UAAU,OAAO,YAAY,KAAK,UAAU;;;ANcrD,IAAM,aAAa;AACnB,IAAM,WAAW,IAAI,IAAI;AAAA,EACvB,CAAC,KAAK,MAAM;AAAA,EACZ,CAAC,KAAK,QAAQ;AAAA,EACd,CAAC,KAAK,QAAQ;AAChB,CAAC;AAID,IAAM,kBAAkB;AACxB,IAAM,eAAc,CAAC,SACnB,KACG,QAAQ,YAAY,CAAC,SAAS,SAAS,IAAI,IAAI,KAAK,IAAI,EACxD,QACC,iBACA,CAAC,YAAY,KAAK,QAAQ,YAAY,CAAC,KAAK,QAAQ,MAAM,CAAC,GAC7D;AAiBJ,IAAM,YAAY,CAAC,MAAc,SAAmC;AAAA,EAClE,MAAM,QAA4B,CAAC;AAAA,EACnC,MAAM,UAAU,CAAC,SAAsB;AAAA,IACrC,IAAI,KAAK,SAAS,gBAAgB,KAAK,SAAS,QAAQ;AAAA,MAEtD,MAAM,QAAQ,KAAK,UAAU,MAAM,UAAU;AAAA,MAC7C,MAAM,MAAM,KAAK,UAAU,IAAI,UAAU;AAAA,MACzC,MAAM,OAAO,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,UAAU;AAAA,MACxE,IACE,SAAS,MACR,KAAK,SAAS,gBACb,KAAK,WAAW,GAAG,KACnB,KAAK,WAAW,GAAG,IACrB;AAAA,QACA,MAAM,KAAK,CAAC,OAAO,GAAG,CAAC;AAAA,MACzB;AAAA,MACA;AAAA,IACF;AAAA,IACA,IAAI,cAAc,MAAM;AAAA,MACtB,WAAW,SAAS,KAAK,UAAU;AAAA,QACjC,QAAQ,KAAK;AAAA,MACf;AAAA,IACF;AAAA;AAAA,EAEF,QAAQ,IAAI;AAAA,EACZ,OAAO;AAAA;AAIT,IAAM,YAAY;AAQlB,IAAM,UAAU,CAAC,SAAyB;AAAA,EACxC,MAAM,OAAO,cAAa,IAAI;AAAA,EAC9B,MAAM,SAAS,gBAAgB,IAAI;AAAA,EACnC,MAAM,eAAe,CAAC,WACpB,OAAO,KAAK,CAAC,SAAS,UAAU,KAAK,SAAS,SAAS,KAAK,GAAG;AAAA,EAMjE,MAAM,SAAS,KAAK,WAAW,KAAK,SAAS;AAAA,EAC7C,MAAM,WAAW;AAAA,IACf,GAAG,UAAU,QAAQ,cAAa,MAAM,CAAC,EACtC,OAAO,EAAE,WAAW,CAAC,aAAa,KAAK,CAAC,EACxC,IAAI,EAAE,OAAO,UAAU,EAAE,KAAK,OAAO,MAAM,KAAK,MAAM,OAAO,GAAG,EAAE,EAAE;AAAA,IACvE,GAAG;AAAA,EACL,EAAE,SAAS,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK;AAAA,EACtC,IAAI,MAAM;AAAA,EACV,IAAI,SAAS;AAAA,EACb,WAAW,WAAW,UAAU;AAAA,IAC9B,OAAO,aAAY,KAAK,MAAM,QAAQ,QAAQ,KAAK,CAAC;AAAA,IACpD,OAAO,QAAQ;AAAA,IACf,SAAS,QAAQ;AAAA,EACnB;AAAA,EACA,OAAO,MAAM,aAAY,KAAK,MAAM,MAAM,CAAC;AAAA;AAK7C,IAAM,aAAa;AAWnB,IAAM,iBAAiB,CAAC,SAAyB;AAAA,EAC/C,MAAM,OAAO,cAAa,KAAK,WAAW,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,EAAE;AAAA,EACzE,IAAI,MAAM,SAAS,QAAQ;AAAA,IACzB,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,QAAQ,KAAK,MAAM,KAAK,UAAU,MAAM,UAAU,CAAC;AAAA,EACzD,MAAM,QAAQ,WAAW,KAAK,KAAK,GAAG,QAAQ;AAAA,EAE9C,IAAI,CAAC,OAAO;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,MAAM,QAAQ,MAAM,MAAM;AAAA,CAAI;AAAA,EAC9B,MAAM,SAAS,IAAI,OACjB,UAAU,MAAM,MAAM,MAAM,uBAC5B,GACF;AAAA,EACA,OAAO,MAAM,SAAS,KAAK,OAAO,KAAK,MAAM,GAAG,EAAE,KAAK,EAAE,IACrD,OACA,GAAG;AAAA,EAAS;AAAA;AAIlB,IAAM,oBAAoB;AAG1B,IAAM,gBAAgB;AAGtB,IAAM,aAAa,CAAC,SAA2B;AAAA,EAC7C,IAAI,KAAK,SAAS,WAAW;AAAA,IAC3B,OAAO,CAAC,IAAI;AAAA,EACd;AAAA,EACA,OAAO,cAAc,OAAO,KAAK,SAAS,QAAQ,UAAU,IAAI,CAAC;AAAA;AAanE,IAAM,iBAAiB,CAAC,MAAc,OAAuB;AAAA,EAC3D,IAAI,MAAM;AAAA,EACV,IAAI,SAAS;AAAA,EACb,WAAW,WAAW,WACpB,cAAa,KAAK,WAAW,KAAK,SAAS,CAAC,CAC9C,GAAG;AAAA,IAED,MAAM,QAAQ,QAAQ,UAAU,MAAM,UAAU;AAAA,IAChD,MAAM,OAAO,QAAQ,SAAS,IAAI,UAAU,MAAM,UAAU;AAAA,IAC5D,MAAM,KAAK,QAAQ,SAAS,GAAG,EAAE,GAAG,UAAU,IAAI,UAAU;AAAA,IAC5D,MAAM,QAAQ,KAAK,IAAI,QAAQ,QAAQ,IAAI,iBAAiB;AAAA,IAC5D,OAAO,GAAG,KAAK,MAAM,QAAQ,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,KACxD,MAAM,MAAM,EAAE,EACd,QAAQ,eAAe,GAAG,IAAI,QAAQ;AAAA,IACzC,SAAS,QAAQ,UAAU,IAAI,UAAU;AAAA,EAC3C;AAAA,EACA,OAAO,MAAM,KAAK,MAAM,MAAM;AAAA;AAOhC,IAAM,iBAAiB,CAAC,MAAc,OACpC,QAAQ,eAAe,eAAe,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC;AA2BzD,IAAM,uBAAuB;AAC7B,IAAM,aAAa;AACnB,IAAM,gBAAgB;AAEtB,IAAM,WAAW;AAGjB,IAAM,UAAU,CAAC,SACf,cAAc,IAAI,EAAE,QAAQ,YAAY,GAAG,EAAE,KAAK;AAGpD,IAAM,WAAW,CAAC,SAAuB;AAAA,EACvC,MAAM,OAAO,cAAc,OAAO,KAAK,SAAS,GAAG,EAAE,IAAI;AAAA,EACzD,OAAO,OAAO,SAAS,IAAI,IAAI;AAAA;AAOjC,IAAM,UAAU,CAAC,cAAkC;AAAA,EACjD,MAAM,OAAO,SAAS,SAAS;AAAA,EAC/B,OAAO,KAAK,SAAS,UAAU,aAAa,KAAK,KAAK;AAAA;AAIxD,IAAM,YAAY,CAAC,SACjB,KAAK,SACF,IAAI,CAAC,SAAS;AAAA,EACb,MAAM,YAAY,KAAK,SAAS,KAC9B,CAAC,UAAU,MAAM,SAAS,WAC5B;AAAA,EACA,IAAI,CAAC,WAAW;AAAA,IACd,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,QAAQ,SAAS;AAAA,EAE9B,IAAI,SAAS,SAAS,EAAE,SAAS,QAAQ;AAAA,IACvC,OAAO;AAAA,EACT;AAAA,EAEA,QAAQ,QAAQ,SAAS,IAAI,WAAW,IAAI,IAAI,MAAM,QACpD,UACA,EACF;AAAA,CACD,EACA,OAAO,OAAO,EACd,KAAK,IAAI;AAad,IAAM,aAAa,CAAC,aAA6B;AAAA,EAC/C,QAAQ,aAAa,cAAa,QAAQ;AAAA,EAC1C,MAAM,QAAQ,SAAS,UAAU,CAAC,SAAS,KAAK,SAAS,WAAW;AAAA,EACpE,MAAM,YAAY,SAAS;AAAA,EAC3B,IAAI,WAAW,SAAS,aAAa;AAAA,IACnC,OAAO,SAAS,KAAK,QAAQ,SAAS,EAAE,IAAI;AAAA,EAC9C;AAAA,EACA,MAAM,OAAO,QAAQ,SAAS;AAAA,EAC9B,IAAI,CAAC,QAAQ,SAAS,GAAG;AAAA,IACvB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,SAAS,QAAQ;AAAA,EAC9B,MAAM,QAAQ,MAAM,SAAS,SAAS,UAAU,IAAI,IAAI;AAAA,EACxD,OAAO,QAAQ,GAAG,QAAQ,UAAU,WAAW,IAAI;AAAA;AAIrD,IAAM,OAAO,CAAC,MAAc,QAAwB;AAAA,EAClD,IAAI,OAAO,GAAG;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,IAAI,aAAY,IAAI,KAAK,KAAK;AAAA,IAC5B,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,cAAc,MAAM,MAAM,CAAC;AAAA,EACxC,MAAM,iBAAiB,KAAK,QAAQ,eAAe,EAAE;AAAA,EAGrD,OAAO,GAAG,aAAY,cAAc,KAAK,MAAM,IAAI,iBAAiB;AAAA;AAGtE,IAAM,UAAU,CAAC,SAA8B,KAAK,SAAS,KAAK;AAElE,IAAM,YAAY,CAAC,SAA8B,cAAc,QAAQ,IAAI,CAAC;AAG5E,IAAM,yBAAyB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,OAAO;AACT;AAWA,IAAM,uBAAuB,CAC3B,MACA,WACA,YACW;AAAA,EACX,IAAI,CAAC,QAAQ,QAAQ;AAAA,IACnB,OAAO,KACL,WAAW,UAAU,eAAe,UAAU,OAAO,KAAK,QAAQ,OAClE,oBACF;AAAA,EACF;AAAA,EAGA,IAAI;AAAA,EACJ,IAAI,KAAK,SAAS,YAAY;AAAA,IAC5B,UAAU,GAAG,UAAU,uBAAuB,UAAU;AAAA,EAC1D,EAAO,SAAI,KAAK,SAAS,WAAW;AAAA,IAGlC,UAAU,GAAG,UAAU,QAAQ,uBAAuB,UAAU;AAAA,EAClE,EAAO;AAAA,IAEL,UAAU,GAAG,UAAU,OAAO,YAAY,KAAK,UAAU,QAAQ,UAAU,UAAU,YAAY;AAAA;AAAA,EAEnG,MAAM,SAAS,qBAAqB,kBAAkB,UAAU,IAAI;AAAA,EAGpE,MAAM,QAAQ,KACZ,WAAW,UAAU,eAAe,UAAU,OAAO,GACrD,uBAAuB,aAAY,MAAM,IAAI,CAC/C;AAAA,EAGA,OAAO,KACL,CAAC,cAAc,KAAK,GAAG,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GACvD,oBACF;AAAA;AAIF,IAAM,kBAAkB,CAAC,aAAqB,cAC5C,YAAY,KAAK,IACb,GAAG,eAAe,aAAa,CAAC;AAAA;AAAA,EAAQ,cACxC;AAEC,IAAM,eAAe,CAC1B,MACA,WACA,cAIiB;AAAA,EACjB,MAAM,SAAS,UAAU,OAAO,YAAY;AAAA,EAC5C,MAAM,UAAU,KAAK,SAAS;AAAA,EAG9B,MAAM,gBAAgB,UAClB,UAAU,OACV,mBAAmB,MAAM,SAAS;AAAA,EACtC,MAAM,QAAQ,UAAU,WAAW;AAAA,EAGnC,MAAM,cACJ,UAAU,YAAY,KAAK,MAAM,UAAU,QAAQ,KAAK,IACpD,KACA,UAAU;AAAA,EAChB,MAAM,QAAqD,CAAC;AAAA,EAC5D,IAAI,WAAW,kBAAkB,OAAO;AAAA,IACtC,MAAM,KAAK,EAAE,SAAS,KAAK;AAAA,EAC7B;AAAA,EACA,IAAI,UAAU,YAAY;AAAA,IACxB,MAAM,aAAa;AAAA,EACrB;AAAA,EACA,MAAM,cAGF,CAAC;AAAA,EACL,IAAI,WAAW,oBAAoB,OAAO;AAAA,IACxC,YAAY,UAAU;AAAA,EACxB;AAAA,EACA,MAAM,MAA+B;AAAA,IACnC,aAAa,qBAAqB,MAAM,WAAW;AAAA,MACjD,QAAQ,WAAW,yBAAyB;AAAA,MAC5C;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,IAAI,WAAW,SAAS;AAAA,IACtB,IAAI,UAAU;AAAA,EAChB;AAAA,EAGA,MAAM,UAAuC,EAAE,OAAO,MAAM;AAAA,EAM5D,IAAI,CAAC,WAAW,uBAAuB,UAAU,MAAM,GAAG;AAAA,IACxD,QAAQ,QAAQ;AAAA,EAClB;AAAA,EACA,MAAM,OAAO,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,MAAM;AAAA,EAC/D,IAAI,UAAU,SAAS;AAAA,IACrB,KAAK,KAAK,SAAS;AAAA,EACrB;AAAA,EACA,OAAO;AAAA,IACL,MAAM,gBACJ,aACA,sBAAsB,KAAK,aAAa,UAAU,SACpD;AAAA,IACA,MAAM;AAAA,SACD;AAAA,MACH,QAAQ,KAAK,aAAa,KAAK;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,MAEA,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAGK,IAAM,cAAc,CACzB,MACA,cAIiB;AAAA,EAMjB,MAAM,aAAa,OAAO,OAAO,KAAK,UAAU;AAAA,EAGhD,MAAM,WAA6B,CAAC;AAAA,EACpC,MAAM,QAAQ,IAAI;AAAA,EAClB,WAAW,OAAO,KAAK,MAAM;AAAA,IAC3B,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG;AAAA,MACxB,MAAM,IAAI,IAAI,IAAI;AAAA,MAClB,SAAS,KAAK,GAAG;AAAA,IACnB;AAAA,EACF;AAAA,EACA,WAAW,aAAa,YAAY;AAAA,IAClC,IAAI,CAAC,MAAM,IAAI,UAAU,OAAO,GAAG;AAAA,MACjC,MAAM,IAAI,UAAU,OAAO;AAAA,MAC3B,SAAS,KAAK;AAAA,QACZ,aAAa;AAAA,QACb,MAAM,UAAU;AAAA,QAChB,MAAM,UAAU;AAAA,MAClB,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EACA,MAAM,cAAwB,CAAC;AAAA,EAC/B,WAAW,OAAO,UAAU;AAAA,IAC1B,IAAI,CAAC,WAAW,KAAK,CAAC,cAAc,UAAU,YAAY,IAAI,IAAI,GAAG;AAAA,MACnE;AAAA,IACF;AAAA,IACA,MAAM,cAAc,IAAI,YAAY,KAAK,IACrC,CAAC,eAAe,IAAI,aAAa,CAAC,CAAC,IACnC,CAAC;AAAA,IACL,YAAY,KACV;AAAA,MACE,MAAM,QAAQ,IAAI,IAAI;AAAA,MACtB,GAAG;AAAA,MACH,6BAA6B,KAAK,cAAc,IAAI;AAAA,IACtD,EAAE,KAAK;AAAA;AAAA,CAAM,CACf;AAAA,EACF;AAAA,EACA,MAAM,QAAiD,CAAC;AAAA,EACxD,IAAI,WAAW,kBAAkB,OAAO;AAAA,IACtC,MAAM,KAAK,EAAE,SAAS,KAAK;AAAA,EAC7B;AAAA,EACA,IAAI,WAAW,oBAAoB,OAAO;AAAA,IACxC,MAAM,SAAS,EAAE,SAAS,KAAK;AAAA,EACjC;AAAA,EACA,MAAM,MAA+B;AAAA,IACnC,aACE,KAAK,WAAW,KAAK,WAAW,GAAG,oBAAoB,KACvD,GAAG,UAAU,IAAI;AAAA,EACrB;AAAA,EACA,IAAI,WAAW,SAAS;AAAA,IACtB,IAAI,UAAU;AAAA,EAChB;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,gBACE,KAAK,aACL,wBAAwB,KAAK,UAC/B;AAAA,MACA,GAAG;AAAA,IACL,EAAE,KAAK;AAAA;AAAA,CAAM;AAAA,IACb,MAAM;AAAA,SACD;AAAA,MACH;AAAA,MACA,SAAS,EAAE,OAAO,WAAW;AAAA,MAC7B,OAAO,QAAQ,IAAI;AAAA,IACrB;AAAA,EACF;AAAA;;;AO7eK,IAAM,kBAAkB,CAC7B,YAEA,UAAU,WAAU,OAAO,SAAS;AAGtC,IAAM,aAAa,CAAC,UAA0B,MAAM,QAAQ,SAAS,EAAE;AAGvE,IAAM,cAAc;AAAA,EAClB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AACX;AAGA,IAAM,gBAAgB;AAAA,EACpB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AACX;AAOA,IAAM,qBAAqB;AAAA,EACzB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AACX;AAOA,IAAM,gBAAgB;AAAA,EACpB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AACX;AAGA,IAAM,oBAAoB;AAAA,EACxB,UACE;AAAA,EACF,SACE;AAAA,EACF,SACE;AACJ;AAGA,IAAM,sBAAsB;AAAA,EAC1B,UACE;AAAA,EACF,SACE;AAAA,EACF,SACE;AACJ;AAQA,IAAM,oBAAoB,CACxB,OACA,SACW;AAAA,EACX,IAAI,iBAAiB,qBAAqB;AAAA,IACxC,OAAO,MAAM;AAAA,EACf;AAAA,EACA,IAAI,iBAAiB,kBAAkB;AAAA,IACrC,OAAO,oBAAoB;AAAA,EAC7B;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,gBAAgB;AAAA,EACpB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AACX;AAQA,IAAM,6BAA6B,CACjC,cACiB;AAAA,EACjB,IAAI,UAAU,SAAS,YAAY;AAAA,IACjC,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,UAAU,uBAAuB,UAAU,QAAQ,WAAW;AAAA,EACpE,IAAI,QAAQ,WAAW,GAAG;AAAA,IACxB,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,QAAQ,QAAQ,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,KAAK,IAAI;AAAA,EACtD,MAAM,MAAM,QAAQ,WAAW;AAAA,EAC/B,OAAO;AAAA,IACL;AAAA,MACE,MAAM,GAAG,cAAc,UAAU;AAAA,MACjC,SAAS,sBAAsB,cAAc,UAAU,eAAe,gBAAgB,MAAM,qBAAqB,qDAAqD,MAAM,SAAS;AAAA,MACrL,UAAU;AAAA,MACV,YAAY,gCAAgC,oBAAoB,KAAK,IAAI;AAAA,IAC3E;AAAA,EACF;AAAA;AAGF,IAAM,UAAU,CAAC,UAAwB,QAA6B;AAAA,EACpE,MAAM,MAAM,oBAAO,UAAU,GAAG,SAAS;AAAA,GAAU,SAAS,IAAI;AAAA,EAChE,OAAO;AAAA,IACL,MAAM,EAAE,QAAQ,OAAO,MAAM,SAAS,KAAK;AAAA,IAG3C,MAAM,KAAK,SAAS,KAAK;AAAA,IACzB,MAAM,SAAS,GAAG;AAAA,IAClB;AAAA,IACA;AAAA,EACF;AAAA;AAIF,IAAM,cAAc,CAClB,MACA,YACA,cACkB;AAAA,EAClB,MAAM,UAAU,WAAW,IAAI,CAAC,cAC9B,QACE,aAAa,MAAM,WAAW,SAAS,GACvC,GAAG,WAAW,UAAU,KAAK,OAC/B,CACF;AAAA,EAIA,MAAM,OAAO,WAAW,KAAK,KAAK;AAAA,EAClC,QAAQ,KACN,QACE,YAAY,MAAM,SAAS,GAC3B,OAAO,GAAG,mBAAmB,WAC/B,CACF;AAAA,EACA,OAAO;AAAA;AAoBT,IAAM,gBAAgB,CACpB,MACA,MACA,YACA,eAC+B;AAAA,EAC/B,MAAM,OAAO,WAAW,KAAK,KAAK;AAAA,EAClC,MAAM,OAAmC,OAAO,YAC9C,KAAK,IAAI,CAAC,KAAK,UAAU;AAAA,IACvB,OAAO,GAAG,QAAQ,IAAI,SAAS,IAAI;AAAA,IACnC;AAAA,MACE;AAAA,MACA,OAAO,WACJ,OAAO,CAAC,cAAc,UAAU,YAAY,IAAI,IAAI,EACpD,IAAI,CAAC,cACJ,oBAAoB,UAAU,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAC7D;AAAA,MACF,OAAO,IAAI;AAAA,IACb;AAAA,EACF,CAAC,CACH;AAAA,EAEA,IAAI,eAAe,aAAa,MAAM;AAAA,IACpC,KAAK,QAAQ,EAAE,OAAO,WAAW;AAAA,EACnC;AAAA,EACA,OAAO;AAAA;AA4BT,IAAM,iBAAiB,OACrB,WACA,QAC6B;AAAA,EAC7B,MAAM,UAAU,EAAE,UAAU,IAAI,UAAU,SAAS,IAAI,QAAQ;AAAA,EAC/D,IAAI,UAAU,SAAS,YAAY;AAAA,IACjC,QAAQ,UAAU,aAAa,MAAM,kBACnC,UAAU,MACV,IAAI,aACJ,OACF;AAAA,IACA,MAAM,YAAY,0BAA0B,UAAU,UAAU,KAAK;AAAA,IACrE,OAAO;AAAA,MACL;AAAA,MACA,iBAAiB,UAAU;AAAA,MAC3B,OAAO,UAAU;AAAA,MACjB,YAAY,UAAU;AAAA,MACtB,MAAM,UAAU;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA,IAAI,UAAU,SAAS,WAAW;AAAA,IAChC,QAAQ,UAAU,aAAa,MAAM,iBACnC,UAAU,MACV,IAAI,aACJ,OACF;AAAA,IACA,MAAM,YAAY,yBAAyB,UAAU,UAAU,KAAK;AAAA,IACpE,OAAO;AAAA,MACL;AAAA,MACA,iBAAiB,UAAU;AAAA,MAC3B,OAAO,UAAU;AAAA,MACjB,YAAY,UAAU;AAAA,MACtB,MAAM,UAAU;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA,QAAQ,UAAU,QAAQ,aAAa,MAAM,UAC3C,UAAU,MACV,IAAI,aACJ,KAAK,SAAS,UAAU,UAAU,SAAS,CAC7C;AAAA,EACA,MAAM,YAAY,kBAAkB,UAAU,UAAU,KAAK;AAAA,EAC7D,OAAO;AAAA,IACL;AAAA,IACA,iBAAiB,UAAU;AAAA,IAC3B,QAAQ,CAAC,GAAG,QAAQ,GAAG,WAAW,QAAQ,GAAG,GAAG,UAAU,MAAM;AAAA,IAChE,OAAO,UAAU;AAAA,IACjB,YAAY,UAAU;AAAA,IACtB,MAAM,UAAU;AAAA,IAChB;AAAA,EACF;AAAA;AAGK,IAAM,gBAAgB,CAC3B,YACA,QACyB;AAAA,EACzB,IAAI,SAAsB,CAAC;AAAA,EAE3B,MAAM,gBAAgB,OACpB,cACqC;AAAA,IAGrC,MAAM,YAAY,YAAY,UAAU;AAAA,IACxC,MAAM,aAAa,cAAc,UAAU;AAAA,IAC3C,IAAI;AAAA,MACF;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,UACE,MAAM,eAAe,WAAW,GAAG;AAAA,MACvC,MAAM,OAAO,SAAS,QAAQ,EAAE,OAAO,UAAU,OAAO,SAAS,GAAG;AAAA,MAMpE,QAAQ,OAAO,oBAAoB,UAAU,QAAQ;AAAA,MACrD,IAAI,QAAwB;AAAA,MAC5B,IAAI,oBAAoB,MAAM;AAAA,QAC5B,QAAQ,aAAa,UAAU,UAAU,aAAa;AAAA,MACxD,EAAO,SAAI,oBAAoB,SAAS,oBAAoB,IAAI;AAAA,QAC9D,QAAQ;AAAA,MACV;AAAA,MACA,MAAM,OAAoB;AAAA,QACxB,aAAa,UAAU,QAAQ;AAAA,QAC/B,aAAa,KAAK,eAAe;AAAA,QACjC;AAAA,QACA,eAAe,UAAU,QAAQ;AAAA,QACjC,MAAM,UAAU;AAAA,QAChB,OAAO,UAAU;AAAA,QAKjB,YAAY,OAAO,YACjB,WAAW,IAAI,CAAC,cAAc;AAAA,UAC5B,UAAU;AAAA,UACV;AAAA,eACK;AAAA,YACH,OAAO,aAAa,UAAU,UAAU,UAAU,KAAK;AAAA,UACzD;AAAA,QACF,CAAC,CACH;AAAA,QACA,YAAY,EAAE,SAAS,UAAU,QAAQ,WAAW,SAAS,MAAM;AAAA,QACnE,OAAO,UAAU;AAAA,QACjB,MAAM,UAAU;AAAA,QAChB;AAAA,QACA,OAAO,KAAK,SAAS,UAAU;AAAA,QAC/B,SAAS,KAAK,WAAW;AAAA,MAC3B;AAAA,MAIA,IAAI,UAAU,aAAa,WAAW;AAAA,QACpC,KAAK,WAAW,UAAU;AAAA,MAC5B;AAAA,MACA,IAAI,UAAU,SAAS,WAAW;AAAA,QAChC,KAAK,OAAO,UAAU;AAAA,MACxB;AAAA,MACA,OAAO;AAAA,QACL,aAAa;AAAA,UACX,GAAG,SAAS,IAAI,CAAC,aAAa;AAAA,YAC5B,MAAM,mBAAmB,UAAU;AAAA,YACnC;AAAA,YACA,UAAU;AAAA,UACZ,EAAE;AAAA,UACF,GAAG,gBAAgB,IAAI,CAAC,aAAa;AAAA,YACnC,MAAM,cAAc,UAAU;AAAA,YAC9B,SAAS,MAAM,mBAAmB,UAAU,UAAU;AAAA,YACtD,UAAU;AAAA,UACZ,EAAE;AAAA,UACF,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW;AAAA,YAChC,MAAM,MAAM;AAAA,YACZ,SAAS,MAAM,mBAAmB,UAAU,UAAU,MAAM;AAAA,YAC5D,UAAU;AAAA,YACV,YAAY,MAAM;AAAA,UACpB,EAAE;AAAA,UAIF,GAAI,WAAW,WAAW,IACtB;AAAA,YACE;AAAA,cACE,MAAM,GAAG;AAAA,cACT,SAAS,GAAG,mBAAmB,UAAU,aAAa,UAAU;AAAA,cAChE,UAAU;AAAA,cACV,YAAY,kBAAkB,UAAU;AAAA,YAC1C;AAAA,UACF,IACA,CAAC;AAAA,QACP;AAAA,QACA,SAAS,YAAY,MAAM,YAAY,SAAS;AAAA,QAChD,YAAY,cAAc,MAAM,MAAM,YAAY,UAAU,UAAU;AAAA,QACtE,WAAW;AAAA,QACX,MAAM,UAAU;AAAA,QAChB;AAAA,MACF;AAAA,MACA,OAAO,OAAO;AAAA,MAGd,MAAM,UAAU;AAAA,MAChB,OAAO;AAAA,QACL,MAAM,GAAG;AAAA,QACT,SAAS,kBAAkB,mBAAmB,UAAU,aAAa,UAAU,UAAU,QAAQ;AAAA,QAIjG,UAAU,IAAI,SAAS,UAAU,UAAU;AAAA,QAC3C,YAAY,kBAAkB,SAAS,UAAU,IAAI;AAAA,MACvD;AAAA;AAAA;AAAA,EAIJ,MAAM,OAAO,YAAuC;AAAA,IAClD,MAAM,UAAU,MAAM,QAAQ,IAAI,WAAW,IAAI,aAAa,CAAC;AAAA,IAC/D,MAAM,UAAyB,CAAC;AAAA,IAIhC,MAAM,cAA4B,WAAW,QAAQ,CAAC,eACnD,UAAU,cAAc,CAAC,GAAG,IAAI,CAAC,aAAa;AAAA,MAC7C,MAAM;AAAA,MACN;AAAA,MACA,UAAU;AAAA,IACZ,EAAE,CACJ;AAAA,IAGA,MAAM,mBAAmB,IAAI,IAC3B,WACG,QAAQ,0BAA0B,EAClC,IAAI,CAAC,eAAe,CAAC,WAAW,SAAS,UAAU,CAAC,CACzD;AAAA,IACA,YAAY,KAAK,GAAG,iBAAiB,OAAO,CAAC;AAAA,IAC7C,MAAM,OAAoB,CAAC;AAAA,IAC3B,MAAM,aAAyC,CAAC;AAAA,IAChD,MAAM,YAA8B,CAAC;AAAA,IACrC,WAAW,UAAU,SAAS;AAAA,MAC5B,IAAI,cAAc,QAAQ;AAAA,QACxB,YAAY,KAAK,MAAM;AAAA,QACvB;AAAA,MACF;AAAA,MACA,KAAK,OAAO,QAAQ,OAAO;AAAA,MAC3B,QAAQ,KAAK,GAAG,OAAO,OAAO;AAAA,MAC9B,OAAO,OAAO,YAAY,OAAO,UAAU;AAAA,MAC3C,UAAU,KAAK,GAAG,OAAO,SAAS;AAAA,MAClC,YAAY,KAAK,GAAG,OAAO,WAAW;AAAA,IACxC;AAAA,IACA,SAAS;AAAA,IACT,OAAO,EAAE,aAAa,SAAS,YAAY,UAAU;AAAA;AAAA,EAGvD,OAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM;AAAA,IACN,aAAa,MAAM;AAAA,IACnB,QAAQ;AAAA,EACV;AAAA;;;AC/eK,IAAM,gCAAgC,CAAC,aAC3C;AAAA,EAGC,WAAW,MAAM,qBAAqB,OAAO,EAAE,KAAK;AAAA;AAAA,CAAM;AAC5D;;;ACYF,IAAM,cAAc,CAAC,UACnB,OAAO,UAAU,YACjB,UAAU,SACV,UAAU,UACV,OAAO,MAAM,SAAS,aACtB,YAAY,UACZ,OAAO,MAAM,WAAW,aACvB,EAAE,WAAW,UAAU,OAAO,MAAM,UAAU;AAIjD,IAAM,cAAc,IAAI,IAAI,CAAC,QAAQ,MAAM,SAAS,KAAK,CAAC;AAG1D,IAAM,WAAW,CAAC,SAAqC;AAAA,EACrD,MAAM,QAAQ,KAAK,YAAY;AAAA,EAC/B,IAAI,YAAY,IAAI,KAAK,GAAG;AAAA,IAC1B,OAAO,EAAE,OAAO,SAAS,MAAM,OAAO;AAAA,EACxC;AAAA,EAGA,OAAO,mBAAmB,KAAK,KAAK,EAAE,OAAO,MAAM,MAAM,MAAM;AAAA;AAQ1D,IAAM,oBAAoB,CAC/B,cACuB;AAAA,EACvB,MAAM,MAAM,UAAU,oBAAoB,UAAU;AAAA,EACpD,IAAI,CAAC,MAAM,QAAQ,GAAG,GAAG;AAAA,IACvB,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,UAAU,IAAI,OAAO,WAAW,EAAE,IAAI,CAAC,UAAU;AAAA,IACrD,MAAM,WAAW,SAAS,MAAM,IAAI;AAAA,IACpC,OAAO;AAAA,MACL,MAAM,MAAM,OAAO,KAAK,KAAK,SAAS;AAAA,MACtC;AAAA,MACA,QAAQ,MAAM,OAAO,QAAQ,QAAQ,EAAE;AAAA,IACzC;AAAA,GACD;AAAA,EACD,MAAM,SAAS,IAAI;AAAA,EACnB,aAAa,UAAU,SAAS;AAAA,IAC9B,OAAO,IAAI,OAAO,OAAO,IAAI,IAAI,KAAK,KAAK,CAAC;AAAA,EAC9C;AAAA,EACA,MAAM,OAAO,IAAI;AAAA,EACjB,OAAO,QAAQ,IAAI,GAAG,MAAM,UAAU,UAAU,UAAU;AAAA,IACxD,MAAM,SACH,OAAO,IAAI,IAAI,KAAK,KAAK,KAAK,SAAS,SAAS,QAC7C,GAAG,UAAU,SAAS,UACtB;AAAA,IACN,IAAI,QAAQ;AAAA,IACZ,SAAS,IAAI,EAAG,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG;AAAA,MACvC,QAAQ,GAAG,UAAU;AAAA,IACvB;AAAA,IACA,KAAK,IAAI,KAAK;AAAA,IACd,OAAO,EAAE,KAAK,KAAK,SAAS,OAAO,MAAM,SAAS,MAAM,OAAO;AAAA,GAChE;AAAA;;;ACzDI,IAAM,iBAAiB,CAC5B,YACoC;AAAA,EACpC,MAAM,UAAU,OAAO,QAAQ,WAAW,CAAC,CAAC;AAAA,EAC5C,OAAO,QAAQ,KAAK,EAAE,UAAU,KAAK,SAAS,MAAM,CAAC,KAAK,QAAQ;AAAA;AAQpE,IAAM,cAAc,CAClB,MACA,MACA,OACA,MACA,SACA,eACmB;AAAA,EACnB,MAAM,QAAQ,QACV,cAAc,OAAO,SAAS,YAAY,UAAU,IACpD,CAAC;AAAA,EACL,IAAI,MAAM,SAAS,GAAG;AAAA,IACpB,OAAO,MAAM,IAAI,CAAC,aAAa;AAAA,MAC7B,KAAK,GAAG,QAAQ,QAAQ;AAAA,MACxB,OAAO,GAAG,UAAU,QAAQ;AAAA,MAC5B;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,QAAQ;AAAA,IACjB,EAAE;AAAA,EACJ;AAAA,EACA,OAAO;AAAA,IACL;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,QAAQ,gBAAgB,OAAO,SAAS,UAAU,IAAI;AAAA,IAC/D;AAAA,EACF;AAAA;AAIK,IAAM,iBAAiB,CAC5B,WACA,SACA,eAEA,OAAO,QAAQ,SAAS,EAAE,QAAQ,EAAE,QAAQ,cAAc;AAAA,EACxD,OAAO,MAAM,SAAS,eAAe,SAAS,OAAO,KAAK,CAAC,IAAI,SAAS;AAAA,EACxE,OAAO,YACL,QACA,MACA,OACA,SAAS,eAAe,wBACxB,SACA,UACF;AAAA,CACD;;;AC5CH,IAAM,UAAU,CAAC,SACf,KACG,KAAK,EACL,WAAW,SAAS,GAAG,EACvB,WAAW,mBAAmB,OAAO,QAAQ;AAGlD,IAAM,eAAe,CAAC,OAAe,UACnC,GAAG;AAAA;AAAA,EAAa,YAAY,QAAQ,OAAO,KAAK,CAAC;AAGnD,IAAM,gBAAgB,CACpB,QACA,SACA,cACa;AAAA,EACb,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,UAAU,cAAc,YAAY,aAAa;AAAA,EACvD,QAAQ,YAAY,aAAa,iBAAiB,QAAQ,OAAO;AAAA,EACjE,OAAO,WAAW,QAAQ,EAAE,MAAM,cAAc;AAAA,IAC9C,MAAM,WAAW,cAAc,SAAS,QAAQ;AAAA,IAChD,IAAI,SAAS,aAAa,QAAQ,SAAS,aAAa,MAAM;AAAA,MAC5D,OAAO,CAAC;AAAA,IACV;AAAA,IACA,MAAM,OAAO,GAAG,UAAU,QAAQ,IAAI,WAAW,QAAQ,IAAI,YAAY;AAAA,IACzE,MAAM,QAAQ,CAAC,MAAM,SAAS,IAAI,IAAI,IAAI,aAAa,EAAE,EACtD,OAAO,OAAO,EACd,KAAK,IAAI;AAAA,IACZ,MAAM,cAAc,SAAS,aAAa,KAAK;AAAA,IAC/C,OAAO;AAAA,MACL,KAAK,WAAW,IAAI,MAAM,SAAS,cAAc,MAAM,QAAQ,WAAW,MAAM;AAAA,IAClF;AAAA,GACD;AAAA;AAIH,IAAM,eAAe,CACnB,MACA,SACA,YACA,YACa;AAAA,EACb,MAAM,SAAS,eAAe,KAAK,OAAO;AAAA,EAC1C,IAAI,CAAC,QAAQ;AAAA,IACX,OAAO,CAAC;AAAA,EACV;AAAA,EACA,OAAO,MAAM,SAAS;AAAA,EAEtB,MAAM,YAAY,UAAU,aAAa;AAAA,EACzC,MAAM,UAAU,UAAU,YAAY;AAAA,EACtC,MAAM,QAAQ,cAAc,MAAM,QAAQ,SAAS,SAAS;AAAA,EAC5D,MAAM,QAAQ,cAAc,OAAO,SAAS,WAAW,UAAU;AAAA,EACjE,MAAM,SAAS,aAAa,OAAO,SAAS,WAAW,UAAU;AAAA,EACjE,MAAM,WACJ,MAAM,SAAS,IACX,MAAM,IAAI,CAAC,YACT,aACE,GAAG,oBAAoB,QAAQ,QAAQ,KAAK,KAC5C,QAAQ,KACV,CACF,IACA;AAAA,IACE,WAAW,QAAQ,WAAW,YAC1B,KACA,aAAa,GAAG,mBAAmB,MAAM;AAAA,EAC/C;AAAA,EACN,OAAO;AAAA,IACL,KAAK,cAAc,CAAC,WAAW,IAAI,GAAG,KAAK,WAAW,aAAa,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI;AAAA,IAChG,KAAK,aAAa,KAAK,IAAI,QAAQ,KAAK,WAAW,IAAI;AAAA,IACvD,MAAM,KAAK;AAAA,CAAI;AAAA,IACf,GAAG;AAAA,EACL,EAAE,OAAO,OAAO;AAAA;AAIlB,IAAM,oBAAoB,CACxB,WACA,SACA,eACa;AAAA,EACb,MAAM,WAAW,OAAO,QAAQ,SAAS;AAAA,EACzC,IAAI,SAAS,WAAW,GAAG;AAAA,IACzB,OAAO,CAAC;AAAA,EACV;AAAA,EACA,MAAM,WAAW,IAAI,IACnB,SAAS,QAAQ,EAAE,QAAQ,cAAc;AAAA,IACvC,MAAM,QAAQ,eAAe,SAAS,OAAO,IAAI;AAAA,IACjD,OAAO,OAAO,YAAY,aAAa,OAAO,aAAa,YACvD,CAAC,IACD,CAAC,MAAM;AAAA,GACZ,CACH;AAAA,EACA,MAAM,UAAU,SAAS,KACvB,EAAE,YAAY,OAAO,WAAW,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAC9D,IAAI;AAAA,EACJ,MAAM,WAAW,eAAe,WAAW,SAAS,UAAU,EAAE,QAC9D,CAAC,WACE,SAAS,IAAI,MAAM,IAAI,KAAK,MAAM,SAAS,YAC5C,MAAM,UAAU,QAChB,MAAM,UAAU,YACZ;AAAA,IACE,aACE,qBAAqB,QAAQ,MAAM,KAAK,KACxC,MAAM,KACR;AAAA,EACF,IACA,CAAC,CACT;AAAA,EACA,OAAO;AAAA,IACL;AAAA,IACA,SACG,IACC,EAAE,QAAQ,cACR,KAAK,WAAW,MAAM,IAAI,SAAS,aAAa,KAAK,IAAI,MAAM,QAAQ,SAAS,WAAW,MAAM,IACrG,EACC,KAAK;AAAA,CAAI;AAAA,IACZ,GAAG;AAAA,EACL;AAAA;AAOK,IAAM,mBAAmB,CAC9B,UACA,WACA,YACa;AAAA,EAGb,MAAM,aAAa,SAAS;AAAA,EAE5B,MAAM,UAAW,SAAS,YAAY,WAAW,CAAC;AAAA,EAIlD,MAAM,OAAO,UAAU,cACnB,oBAAoB,UAAU,aAAa,YAAY,eAAe,IACtE;AAAA,EACJ,MAAM,YAAY,OAAO,YACvB,OAAO,QAAQ,UAAU,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,cAAc;AAAA,IACpE;AAAA,IACA,oBAAoB,UAAU,YAAY,WAAW;AAAA,EACvD,CAAC,CACH;AAAA,EACA,OAAO;AAAA,IACL,GAAI,OAAO,aAAa,MAAM,SAAS,YAAY,OAAO,IAAI,CAAC;AAAA,IAC/D,GAAG,kBAAkB,WAAW,SAAS,UAAU;AAAA,EACrD;AAAA;;;AC5KF,IAAM,cAAa,CAAC,SAClB,KACG,KAAK,EACL,WAAW,SAAS,GAAG,EACvB,WAAW,mBAAmB,OAAO,QAAQ;AAMlD,IAAM,YAAW,CACf,WACA,MACA,cACW;AAAA,EACX,MAAM,OAAO;AAAA,IAGX,YAAW,WAAW,UAAU,QAAQ,KAAK,CAAC,CAAC;AAAA,IAC/C,UAAU,aAAa,gBAAgB;AAAA,EACzC,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,EACX,OAAO,MAAM,WAAW,SAAS,MAAM,gBAAgB,IAAI,KAAK,OAAO,MAAM,SAAS;AAAA;AAmCjF,IAAM,8BAA8B,CACzC,OACA,eACG;AAAA,EACH,MAAM,OAAO,kBAAkB,UAAU;AAAA,EACzC,MAAM,OAAO,CAAC,WACZ,UAAS,MAAM,IAAI,OAAO,OAAO,MAAM,IAAI;AAAA,EAE7C,OAAO;AAAA,IAML,aAAa,GAAG,YAAY;AAAA,MAC1B,MAAM,OAAO,KAAK,MAAM,MAAM;AAAA,MAC9B,IAAI,CAAC,MAAM;AAAA,QACT,OAAO;AAAA,MACT;AAAA,MACA,QAAQ,WAAW,UAAU,cAAc,IAAI;AAAA,MAC/C,MAAM,QAAQ;AAAA,QACZ,KAAK,UAAU,WAAW,YAAW,KAAK,OAAO,MAAM;AAAA,QACvD,UAAU,SAAS,IACf,GAAG,UAAU,UAAU,IAAI,UAAU,EAAE,KAAK,IAAI,MAChD;AAAA,MACN,EAAE,OAAO,OAAO;AAAA,MAChB,OAAO,MAAM,SAAS,IAAI,MAAM,KAAK;AAAA;AAAA,CAAM,IAAI;AAAA;AAAA,IAIjD,kBAAkB,GAAG,YAAY;AAAA,MAC/B,QAAQ,QAAQ;AAAA,MAChB,MAAM,OAAO,KAAK,MAAM,MAAM;AAAA,MAC9B,IAAI,EAAE,QAAQ,UAAS,GAAG,IAAI;AAAA,QAC5B,OAAO;AAAA,MACT;AAAA,MACA,MAAM,QAAQ,OAAO,OAAO,KAAK,UAAU,EACxC,OAAO,CAAC,cAAc,UAAU,YAAY,GAAG,EAC/C,IAAI,CAAC,cACJ,UACE,mBAAmB,MAAM,SAAS,GAClC,cAAc,MAAM,UAAU,KAAK,GACnC,SACF,CACF;AAAA,MACF,OAAO,MAAM,SAAS,IAAI,MAAM,KAAK;AAAA,CAAI,IAAI;AAAA;AAAA,IAQ/C,WAAW,GAAG,YAAY;AAAA,MACxB,QAAQ,OAAO;AAAA,MACf,MAAM,OAAO,KAAK,MAAM,MAAM;AAAA,MAC9B,IAAI,EAAE,QAAQ,UAAS,EAAE,IAAI;AAAA,QAC3B,OAAO;AAAA,MACT;AAAA,MACA,MAAM,YAAY,YAAY,MAAM,EAAE;AAAA,MACtC,IAAI,CAAC,WAAW;AAAA,QACd,OAAO;AAAA,MACT;AAAA,MACA,MAAM,YAAY,WAAW,mBAAmB,MAAM,SAAS,CAAC;AAAA,MAChE,MAAM,QAAQ;AAAA,QAGZ,UAAU,UACN,8DACA;AAAA,QACJ,UAAU,aAAa,oBAAoB;AAAA,MAC7C,EAAE,OAAO,OAAO;AAAA,MAEhB,MAAM,SACJ,KAAK,SAAS,YAAY,gBAAgB,MAAM,SAAS,IAAI;AAAA,MAC/D,MAAM,UAAU,kBAAkB;AAAA,QAChC,kBAAkB,SAAS;AAAA,QAC3B,iBAAiB,SAAS;AAAA,MAC5B,CAAC,EAAE,IACD,CAAC,WACC,KAAK,YAAW,OAAO,KAAK;AAAA;AAAA,EAAU,YAAY,OAAO,MAAM,OAAO,MAAM,GAChF;AAAA,MAIA,MAAM,UAAU,SACZ,iBACE,KAAK,UACL,QACA,UAAU,YAAY,IACxB,IACA,CAAC;AAAA,MACL,OAAO,CAAC,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,EAAE,KAAK;AAAA;AAAA,CAAM;AAAA;AAAA,EAEpE;AAAA;;;AC1KK,IAAM,8BAA8B,CAAC,aACzC;AAAA,KACI,4BAA4B,QAAQ,YAAY,CAAC,CAAC;AAAA,KAClD,4BACD,QAAQ,QAAQ,KAAK,eAAe,GAAG,YAAY,KAAK,CAAC,GACzD,QAAQ,OAAO,WAAW,QAAQ,IACpC;AAAA,KACG,8BAA8B,OAAO;AAAA,KACrC,QAAQ,OAAO,OAAO;AAC3B;;;ACrBF,IAAM,eAAc;AAGpB,IAAM,aAAa;AAQnB,IAAM,YAAW,CAAC,UAAkB,UAA4B;AAAA,EAC9D,MAAM,QAAQ,CAAC,SAAyB;AAAA,IACtC,MAAM,KAAK,IAAI;AAAA,IACf,OAAO,kBAAoB,MAAM,SAAS;AAAA;AAAA,EAE5C,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,QAAoB;AAAA,EACxB,IAAI,QAAkB,CAAC;AAAA,EACvB,WAAW,QAAQ,SAAS,MAAM;AAAA,CAAI,GAAG;AAAA,IACvC,MAAM,OAAO,eAAe,MAAM,KAAK;AAAA,IACvC,IAAI,UAAU,QAAQ,SAAS,MAAM;AAAA,MACnC,MAAM,KAAK,KAAK,WAAW,cAAa,KAAK,CAAC;AAAA,IAChD,EAAO;AAAA,MACL,MAAM,KAAK,IAAI;AAAA,MACf,IAAI,SAAS,MAAM;AAAA,QACjB,MAAM,KAAK,MAAM,MAAM,KAAK;AAAA,CAAI,CAAC,CAAC;AAAA,QAClC,QAAQ,CAAC;AAAA,MACX;AAAA;AAAA,IAEF,QAAQ;AAAA,EACV;AAAA,EACA,IAAI,MAAM,SAAS,GAAG;AAAA,IACpB,MAAM,KAAK,MAAM,MAAM,KAAK;AAAA,CAAI,CAAC,CAAC;AAAA,EACpC;AAAA,EACA,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAUxB,IAAM,kBAAkB,CAAC,aACvB,IAAI,OACF,kCAAkC,cAAc,wDAChD,IACF;AAEF,IAAM,SAAS;AAAA,EACb,QAAQ,gBAAgB,QAAQ;AAAA,EAChC,KAAK,gBAAgB,KAAK;AAC5B;AAUO,IAAM,0BAA0B,CACrC,UACA,aACW;AAAA,EAEX,MAAM,OAAiB,CAAC;AAAA,EACxB,MAAM,SAAS,UAAS,UAAU,IAAI;AAAA,EAEtC,IAAI,UAAU;AAAA,EACd,MAAM,WAAW,OACd,WAAW,OAAO,aAAa,WAAW,QAAQ,WAAW,MAAM;AAAA,IAClE,UAAU;AAAA,IACV,OAAO;AAAA,GACR,EACA,WAAW,OAAO,WAAW,CAAC,QAAQ,UAAkB;AAAA,IACvD,UAAU;AAAA,IACV,OAAO;AAAA,GACR;AAAA,EAKH,MAAM,SAAS,UAAU,SAAS,WAAW,YAAY;AAAA;AAAA,CAAM,IAAI;AAAA,EAEnE,OAAO,OAAO,WACZ,YACA,CAAC,OAAO,UAAU,KAAK,OAAO,KAAK,MAAM,KAC3C;AAAA;AAQK,IAAM,uBAAuB,CAAC,aACnC,wBAAwB,UAAU,QAAQ;;;ACzE5C,IAAM,UAAU,CAAC,OAAe,MAAe,OAAO,OAAe;AAAA,EACnE,MAAM,OAAO,cAAc,MAAM,KAAK;AAAA,EACtC,OAAO,UAAU,OAAO,aAAY,MAAM,IAAI,IAAI,IAAI;AAAA;AAexD,IAAM,WAAU,CAAC,SAAyB,KAAK,WAAW,SAAS,GAAG,EAAE,KAAK;AAW7E,IAAM,qBAAqB,CAAC,YAAoC;AAAA,EAC9D,QAAQ,WAAW;AAAA,EACnB,QAAQ,SAAS,OAAO,WAAW;AAAA,EACnC,MAAM,MAAM,CAAC,SACX,QAAQ,MAAM,MAAM,kBAAkB,OAAO,WAAW,QAAQ,IAAI,CAAC;AAAA,EACvE,MAAM,QAAQ;AAAA,IACZ,qBAAqB,IAAI,gBAAgB;AAAA,IACzC,qBAAqB,IAAI,WAAW;AAAA,EACtC;AAAA,EACA,IAAI,OAAO,OAAO,KAAK;AAAA,IACrB,MAAM,KACJ,gBAAgB,IAAI,cAAc,kIAAkI,IAAI,YAAY,IACtL;AAAA,EACF;AAAA,EACA,IAAI,OAAO,OAAO,IAAI,SAAS;AAAA,IAC7B,MAAM,KACJ,kBAAkB,IAAI,OAAO,OAAO,IAAI,KAAK,0KAA0K,IAAI,uBAAuB,GACpP;AAAA,EACF;AAAA,EACA,IAAI,kBAAkB,MAAM,GAAG;AAAA,IAC7B,MAAM,KACJ,oBAAoB,IAAI,uBAAuB,qEACjD;AAAA,EACF;AAAA,EACA,IAAI,cAAc,MAAM,GAAG;AAAA,IACzB,MAAM,KACJ,mBAAmB,IAAI,gBAAgB,mDACzC;AAAA,EACF;AAAA,EACA,IAAI,aAAa,MAAM,GAAG;AAAA,IACxB,MAAM,KACJ,kBAAkB,IAAI,eAAe,yFACvC;AAAA,EACF;AAAA,EACA,IAAI,OAAO,OAAO,kBAAkB;AAAA,IAClC,MAAM,KACJ,8BAA8B,IAAI,yBAAyB,2DAC7D;AAAA,EACF;AAAA,EACA,IAAI,QAAQ,OAAO,IAAI,SAAS;AAAA,IAC9B,MAAM,KACJ,eAAe,IAAI,cAAc,2DACnC;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAQT,IAAM,gBAAgB,CACpB,SACA,UAA4C,CAAC,MAE7C,QAAQ,MAAM,MAAM,OAClB,CAAC,SACC,EACE,KAAK,KAAK,GAAG,WACb,KAAK,KAAK,SACV,aAAa,MAAM,QAAQ,KAAK,KAC/B,KAAK,KAAK,IAAI,WAAW,KAAK,OAAO,SAAS,aAC9C,QAAQ,aAAa,aAAa,KAAK,YAAY,QAErD,QAAQ,OAAO,OAAO,QAAQ,WAAW,KAAK,OAAO,SAAS,UACnE;AASF,IAAM,qBAAqB,CACzB,YAC0C;AAAA,EAC1C,QAAQ,MAAM,aAAa,QAAQ;AAAA,EACnC,MAAM,UAAiD,OACnD,KAAK,QAAQ,QAAQ,GAAG,MAAM,YAAY;AAAA,IACxC,MAAM,MAAM,QAAQ,MAAM,mBAAmB;AAAA,IAC7C,IAAI,CAAC,KAAK;AAAA,MACR,OAAO,CAAC;AAAA,IACV;AAAA,IACA,OAAO;AAAA,MACL,EAAE,OAAO,SAAS,KAAK,gBAAgB,YAAY,OAAO,IAAI;AAAA,IAChE;AAAA,GACD,IACD,CAAC,EAAE,KAAK,QAAQ,MAAM,WAAW,CAAC;AAAA,EAEtC,MAAM,YAAY,UAAU,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY;AAAA,IAC/D,MAAM,WAAW,QAAQ,MAAM,oBAAoB,QAAQ,OAAO,CAAC;AAAA,IACnE,MAAM,eAAe,GAAG,QAAQ,SAAS,QAAQ;AAAA,IACjD,OAAO,OAAO,QAAQ,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS;AAAA,MACvD,MAAM,SAAS,MAAM,QAAQ,KAAK,CAAC,UAAU,MAAM,SAAS,IAAI;AAAA,MAChE,MAAM,QACJ,UAAU,SAAS,MAAM,gBACrB,GAAG,OAAO,WAAW,iBACrB;AAAA,MACN,OAAO,CAAC,EAAE,OAAO,IAAI,CAAC;AAAA,KACvB;AAAA,GACF;AAAA,EAED,OAAO,CAAC,GAAG,SAAS,GAAG,QAAQ;AAAA;AAU1B,IAAM,iBAAiB,CAC5B,SACA,UAA4B,CAAC,MAClB;AAAA,EACX,QAAQ,WAAW;AAAA,EACnB,QAAQ,SAAS,OAAO,WAAW;AAAA,EACnC,MAAM,OAAO,kBAAkB,OAAO,WAAW,QAAQ,IAAI;AAAA,EAC7D,MAAM,WAAW,cAAc,OAAO;AAAA,EACtC,MAAM,UAAU,IAAI,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC;AAAA,EAClE,MAAM,OAAO,IAAI;AAAA,EAEjB,MAAM,OAAO,CAAC,SAA6B;AAAA,IACzC,KAAK,IAAI,KAAK,KAAK;AAAA,IAGnB,MAAM,cAAc,gBAAgB,IAAI;AAAA,IACxC,MAAM,UAAU,cAAc,KAAK,gBAAgB;AAAA,IACnD,OAAO,MAAM,UAAS,KAAK,KAAK,MAAM,QAAQ,KAAK,OAAO,MAAM,IAAI,KAAK;AAAA;AAAA,EAQ3E,MAAM,cAAc,CAAC,OAAkB,UAA4B;AAAA,IACjE,MAAM,OAAiB,CAAC;AAAA,IACxB,MAAM,cAAwB,CAAC;AAAA,IAC/B,WAAW,QAAQ,OAAO;AAAA,MACxB,IAAI,KAAK,SAAS,QAAQ;AAAA,QACxB,MAAM,OAAO,QAAQ,IAAI,KAAK,KAAK;AAAA,QACnC,IAAI,QAAQ,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG;AAAA,UACjC,KAAK,KAAK,KAAK,IAAI,CAAC;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,MAGA,MAAM,WAAW,KAAK,QAAQ,QAAQ,IAAI,KAAK,KAAK,IAAI;AAAA,MACxD,MAAM,SAAS,YAAY,KAAK,UAAU,QAAQ,CAAC;AAAA,MACnD,IAAI,YAAY,CAAC,KAAK,IAAI,SAAS,KAAK,GAAG;AAAA,QACzC,OAAO,QAAQ,KAAK,QAAQ,CAAC;AAAA,MAC/B;AAAA,MACA,IAAI,OAAO,SAAS,GAAG;AAAA,QACrB,YAAY,KACV,GAAG,IAAI,OAAO,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,SAC1C,GAAG,MACL;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK;AAAA,CAAI,GAAG,GAAG,WAAW,IAAI;AAAA;AAAA,EAK/D,MAAM,YAAY,CAAC,KAAiB,UAA4B;AAAA,IAC9D,MAAM,QAAQ,IAAI,QAAQ,OAAO,CAAC,SAAS,KAAK,SAAS,MAAM;AAAA,IAC/D,MAAM,SAAS,IAAI,QAAQ,OAAO,CAAC,SAAS,KAAK,SAAS,OAAO;AAAA,IACjE,MAAM,cAAc,YAAY,OAAO,QAAQ,CAAC;AAAA,IAChD,OAAO;AAAA,MACL,GAAI,YAAY,SAAS,IACrB,CAAC,GAAG,IAAI,OAAO,KAAK,UAAU,GAAG,WAAW,IAC5C,CAAC;AAAA,MACL,GAAG,YAAY,QAAQ,KAAK;AAAA,IAC9B;AAAA;AAAA,EAGF,MAAM,SAAmB,CAAC;AAAA,EAC1B,aAAa,OAAO,SAAS,mBAAmB,OAAO,GAAG;AAAA,IACxD,IAAI,OAAO;AAAA,MACT,MAAM,YAAY,UAAU,KAAK,CAAC;AAAA,MAClC,IAAI,UAAU,SAAS,GAAG;AAAA,QACxB,OAAO,KAAK,MAAM,SAAS,GAAG,SAAS;AAAA,MACzC;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO,KAAK,GAAG,UAAU,KAAK,CAAC,CAAC;AAAA,EAClC;AAAA,EAIA,MAAM,WAAW,SACd,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,EACtC,SAAS,CAAC,GAAG,MAAM,EAAE,MAAM,cAAc,EAAE,KAAK,CAAC;AAAA,EACpD,IAAI,SAAS,SAAS,GAAG;AAAA,IACvB,OAAO,KACL,OAAO,SAAS,IAAI,aAAa,WACjC,SAAS,IAAI,IAAI,EAAE,KAAK;AAAA,CAAI,CAC9B;AAAA,EACF;AAAA,EAMA,MAAM,QAAQ,cAAc,OAAO;AAAA,EACnC,IAAI,MAAM,SAAS,GAAG;AAAA,IACpB,OAAO,KACL,gBACA,MACG,IACC,CAAC,SACC,MAAM,UAAS,KAAK,KAAK,MAAM,QAAQ,KAAK,MAAM,MAAM,IAAI,IAChE,EACC,KAAK;AAAA,CAAI,CACd;AAAA,EACF;AAAA,EAIA,MAAM,SAAS,QAAQ,UAAU,CAAC;AAAA,EAClC,IAAI,OAAO,SAAS,GAAG;AAAA,IACrB,OAAO,KACL,mBACA,OACG,IACC,CAAC,UACC,MAAM,MAAM,SAAS,QAAQ,GAAG,oBAAoB,MAAM,QAAQ,MAAM,IAAI,OAAO,SAAQ,MAAM,WAAW,GAChH,EACC,KAAK;AAAA,CAAI,CACd;AAAA,EACF;AAAA,EAEA,OAAO,KAAK,sBAAsB,mBAAmB,OAAO,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA,EAExE,MAAM,SAAS,OAAO,cAClB,KAAK,OAAO;AAAA;AAAA,IAAc,OAAO,gBACjC,KAAK,OAAO;AAAA,EAGhB,QAAQ,YAAY,OAAO,OAAO;AAAA,EAClC,MAAM,OAAO,UAAU,GAAG;AAAA;AAAA,EAAa,YAAY;AAAA,EACnD,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,KAAK;AAAA;AAAA,CAAM;AAAA;AAAA;;;A/HhRlC,IAAM,gBAAgB,CAAC,UAC5B,MAAM,MAAM,MAAM;AASb,IAAM,qBAAqB,CAAC,SACjC,KAAK,KAAK,KAAK,SAAS,CAAC;AAcpB,IAAM,mBAAmB,OAC9B,YAC8C;AAAA,EAC9C,MAAM,WAAW,IAAI,IAAI,QAAQ,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AAAA,EAE3E,MAAM,aAAa,4BAA4B,OAAO;AAAA,EACtD,MAAM,eAAe,qBAAqB,OAAO;AAAA,EAEjD,MAAM,YAAY,OAChB,OACA,SACoB;AAAA,IACpB,IAAI,MAAM;AAAA,MACR,OAAO,MAAM,sBAAsB,SAAS,IAAI;AAAA,IAClD;AAAA,IACA,OAAO,MAAM,aAAa,MAAM,UAAS,MAAM,YAAY,OAAO,IAAI;AAAA;AAAA,EAGxE,MAAM,UAAU,MAAM,QAAQ,IAC5B,QAAQ,SAAS,OAAO,IAAI,OAAO,UAAU;AAAA,IAC3C,MAAM,OAAO,SAAS,IAAI,MAAM,EAAE;AAAA,IAClC,IAAI,OAAO,MAAM,UAAU,OAAO,IAAI;AAAA,IACtC,IAAI,MAAM,YAAY;AAAA,MACpB,OAAO,sBAAsB;AAAA,QAC3B,YAAY,QAAQ,OAAO,WAAW,QAAQ;AAAA,QAC9C,aAAa,QAAQ,QAAQ;AAAA,QAC7B,QAAQ;AAAA,QACR,YAAY,MAAM;AAAA,MACpB,CAAC;AAAA,IACH;AAAA,IAIA,OAAO,aAAa,MAAM;AAAA,MACxB,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,MACb,YAAY,MAAM;AAAA,IACpB,CAAC;AAAA,IACD,MAAM,SAAS,qBAAqB,IAAI;AAAA,IAGxC,MAAM,KAAK,oBAAoB,QAAQ,YAAY,oBAAO,MAAM,EAAE,IAAI;AAAA,IACtE,MAAM,QACJ,OAAO,SAAS,EAAE,KAAK,OAAO,IAAI,EAAE,IAAI,KAAK,OAAO;AAAA,IACtD,OAAO,CAAC,MAAM,MAAM,KAAK;AAAA,GAC1B,CACH;AAAA,EACA,MAAM,MAAM,OAAO,YAAY,OAAO;AAAA,EACtC,MAAM,YAAY,QAAQ,QAAQ,YAC9B,MAAM,cAAc,QAAQ,QAAQ,SAAS,IAC7C,CAAC;AAAA,EAOL,IAAI,CAAC,IAAI,MAAM;AAAA,IACb,IAAI,OAAO;AAAA,MACT,KAAK,eAAe;AAAA,WACf;AAAA,QACH,QAAQ,iBAAiB,QAAQ,QAAQ;AAAA,UACvC,KAAK,UAAU,SAAS,SAAS;AAAA,UAEjC,QAAQ,kBAAkB,QAAQ,MAAM;AAAA,QAC1C,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAGA,IAAI,sBAAsB,SAAS,SAAS,GAAG;AAAA,IAC7C,IAAI,yBAAyB,EAAE,KAAK,4BAA4B,OAAO,EAAE;AAAA,EAC3E;AAAA,EACA,OAAO;AAAA;AAWF,IAAM,qBAAqB,CAAC,YAAoC;AAAA,EACrE,MAAM,QAAQ,QAAQ,SAAS,OAAO,IAAI,CAAC,UAAU,MAAM,IAAI;AAAA,EAC/D,IAAI,CAAC,MAAM,SAAS,GAAG,GAAG;AAAA,IACxB,MAAM,KAAK,GAAG;AAAA,EAChB;AAAA,EACA,MAAM,YAAY,QAAQ,QAAQ,YAC9B,kBAAkB,QAAQ,QAAQ,SAAS,IAC3C,CAAC;AAAA,EACL,IAAI,sBAAsB,SAAS,SAAS,GAAG;AAAA,IAC7C,MAAM,KAAK,qBAAqB;AAAA,EAClC;AAAA,EACA,OAAO;AAAA;;;AgI1JT,uBAAS;;;ACuBF,IAAM,eAAe,CAC1B,UACwB,OAAO,UAAU,YAAY,UAAU;AAG1D,IAAM,UAAU,CACrB,KACA,SAC0B;AAAA,EAC1B,IAAI,UAAiC;AAAA,EACrC,WAAW,OAAO,KAAK,MAAM,GAAG,GAAG;AAAA,IACjC,IAAI,aAAa,OAAO,GAAG;AAAA,MACzB,UAAU,QAAQ;AAAA,IACpB,EAAO;AAAA,MACL;AAAA;AAAA,EAEJ;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,iBAAgB,CAAC,UAC5B,OAAO,UAAU;AAEZ,IAAM,WAAW,CAAC,UACvB,eAAc,KAAK,IAAI,QAAQ;AAG1B,IAAM,UAAU,CAAC,UACtB,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC;AAG3B,IAAM,WAAW,CACtB,UAEA,aAAa,KAAK,KAAK,CAAC,MAAM,QAAQ,KAAK,IAAI,QAAQ;AAElD,IAAM,gBAAgB,CAAC,UAC5B,OAAO,UAAU;AAEZ,IAAM,WAAW,CAAC,UACvB,cAAc,KAAK,IAAI,QAAQ;AAG1B,IAAM,YAAY,CAAC,UACxB,QAAQ,KAAK,EAAE,QAAQ,CAAC,SAAS;AAAA,EAC/B,MAAM,SAAS,SAAS,IAAI;AAAA,EAC5B,OAAO,SAAS,CAAC,MAAM,IAAI,CAAC;AAAA,CAC7B;;;ADpDI,IAAM,qBAAqB,CAAC,eAA+B;AAAA,EAChE,MAAM,SAAS,YAAW,QAAQ,EAAE,OAAO,UAAU,EAAE,OAAO,KAAK;AAAA,EACnE,OAAO,OAAQ,OAAO,SAAS,OAAO,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,aAAiB,CAAC;AAAA;AAG7E,IAAM,UAAS,CAAQ,UACrB,OAAO,UAAU;AAGZ,IAAM,mBAAmB,CAC9B,SACA,gBAC4B;AAAA,EAC5B,MAAM;AAAA,EACN,cAAc,QAAQ,QAAQ,eAAe,mBAAmB,UAAU;AAAA,EAC1E,QAAQ;AAAA,IACN,OAAO,QAAQ,QAAQ,YAAY;AAAA,IACnC,QAAQ,QAAQ,QAAQ,UAAU;AAAA,EACpC;AACF;AAOO,IAAM,uBAAuB,CAClC,cACA,YACkB;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,SAAS,KAAK,MAAM,YAAY;AAAA,IAChC,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,EAET,IAAI,CAAC,aAAa,MAAM,KAAK,MAAM,QAAQ,MAAM,GAAG;AAAA,IAClD,OAAO;AAAA,EACT;AAAA,EACA,QAAQ,MAAM,eAAe;AAAA,EAC7B,MAAM,SAAS,MAAM,QAAQ,UAAU,IACnC,WAAW,OACT,CAAC,UAAU,EAAE,aAAa,KAAK,KAAK,MAAM,SAAS,mBACrD,IACA,CAAC;AAAA,EACL,MAAM,UAAU,iBAAiB,SAAS,QAAO,IAAI,IAAI,OAAO,EAAE;AAAA,EAClE,OAAO,aAAa;AAAA,IAClB,GAAG;AAAA,IACH,KAAK,SAAS,QAAQ,KAAK,QAAQ,OAAO,EAAE;AAAA,EAC9C;AAAA,EACA,OAAO,KAAK,UAAU,MAAM;AAAA;;;AE3DvB,IAAM,qBAAqB;AAAA,EAChC,gBAAgB;AAClB;;;ACAO,IAAM,4BACX;AAKK,IAAM,4BACX;AAGK,IAAM,2BAA2B,CACtC,WACkB;AAAA,EAClB,QAAQ,SAAS,OAAO,OAAO;AAAA,EAC/B,IAAI,KAAK,WAAW,GAAG;AAAA,IACrB,OAAO;AAAA,EACT;AAAA,EACA,OAAO,GAAG,KAAK,UAAU,EAAE,KAAK,GAAG,MAAM,CAAC;AAAA;AAAA;;;ACY5C,IAAM,eAAgE;AAAA,EACpE,EAAE,aAAa,gCAAgC,KAAK,KAAK;AAAA,EACzD,EAAE,aAAa,gCAAgC,KAAK,MAAM;AAAA,EAC1D,EAAE,aAAa,6BAA6B,KAAK,MAAM;AACzD;AAGO,IAAM,sBAAsB;AAO5B,IAAM,mBAAmB;AAQzB,IAAM,oBAAoB;AAAA,EAC/B,2BAA2B;AAAA,EAC3B,0BAA0B;AAC5B;AAGO,IAAM,eAAe,CAAC,WAC3B,GAAG,kBAAkB,OAAO,WAAW,QAAQ,IAAI,IAAI;AAsBlD,IAAM,cAAc,CACzB,QACA,mBACiB;AAAA,EACjB,MAAM,aAAa,kBAAkB,OAAO,WAAW,QAAQ,IAAI;AAAA,EACnE,MAAM,QAAsB,aAAa,IAAI,CAAC,UAAU;AAAA,IACtD,MAAM;AAAA,IACN,MAAM,GAAG,gBAAgB,KAAK;AAAA,IAC9B,OAAO,KAAK;AAAA,EACd,EAAE;AAAA,EAGF,IAAI,OAAO,WAAW;AAAA,IACpB,YAAY,MAAM,UAAU,OAAO,QAAQ,kBAAkB,GAAG;AAAA,MAC9D,MAAM,KAAK,EAAE,MAAM,MAAM,GAAG,gBAAgB,MAAM,CAAC;AAAA,IACrD;AAAA,EACF;AAAA,EACA,IAAI,gBAAgB;AAAA,IAClB,MAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,GAAG,eAAe,OAAO,eAAe,CAAC;AAAA,EAC5E;AAAA,EAIA,IAAI,cAAc,MAAM,GAAG;AAAA,IACzB,MAAM,KAAK;AAAA,MACT,MAAM;AAAA,MACN,MAAM,GAAG,aAAa;AAAA,MACtB,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EACA,IAAI,OAAO,OAAO,WAAW,KAAK,SAAS,GAAG;AAAA,IAC5C,MAAM,KAAK;AAAA,MACT,MAAM;AAAA,MACN,MAAM,GAAG,aAAa;AAAA,MACtB,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAGA,WAAW,QAAQ,0BAA0B,MAAM,GAAG;AAAA,IACpD,MAAM,KAAK;AAAA,MACT,MAAM;AAAA,MACN,MAAM,GAAG,aAAa;AAAA,MACtB,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAGA,IAAI,kBAAkB,MAAM,GAAG;AAAA,IAC7B,MAAM,KACJ;AAAA,MACE,MAAM;AAAA,MACN,MAAM,GAAG;AAAA,MACT,OAAO;AAAA,IACT,GACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM,GAAG;AAAA,MACT,OAAO;AAAA,IACT,CACF;AAAA,EACF;AAAA,EAKA,YAAY,MAAM,UAAU,OAAO,QAAQ,iBAAiB,GAAG;AAAA,IAC7D,MAAM,KAAK,EAAE,MAAM,MAAM,aAAa,MAAM,GAAG,MAAM,CAAC;AAAA,EACxD;AAAA,EACA,OAAO;AAAA;AA4BF,IAAM,4BAA4B,CACvC,QACA,mBAC2B;AAAA,EAC3B,MAAM,SAAS,IAAI;AAAA,EACnB,WAAW,QAAQ,YAAY,QAAQ,cAAc,GAAG;AAAA,IACtD,OAAO,IAAI,KAAK,MAAM;AAAA,SACjB,OAAO,IAAI,KAAK,IAAI;AAAA,OACtB,KAAK,OAAO,KAAK;AAAA,IACpB,CAAC;AAAA,EACH;AAAA,EACA,OAAO,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,EAAE,KAAK,MAAM,OAAO,EAAE;AAAA;AAUpE,IAAM,gBAAgB;AAMf,IAAM,qBAAqB,CAAC,SACjC,KAAK,WAAW,eAAe,OAAO,QAAQ;;;AC1HzC,IAAM,0BAA0B;AAQvC,IAAM,YAAY;AAClB,IAAM,kBAAkB;AAoBxB,IAAM,oBAAoB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAYA,IAAM,gBAAe,CACnB,UAEA,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAGrE,IAAM,eAAe,CAAC,UACpB,OAAO,UAAU;AAEnB,IAAM,iBAAiB,CAAC,SAA0B,KAAK,WAAW,GAAG;AAErE,IAAM,WAAW,CAAC,SAChB,eAAe,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI;AAiBlC,IAAM,2BAA2B,CAAC,SAA4B;AAAA,EACnE,MAAM,SAAS,UAAU,kBAAkB,IAAI,CAAC;AAAA,EAChD,MAAM,aAAa,kBAAkB,IAAI,CAAC,SAAS,IAAI,SAAS,MAAM;AAAA,EACtE,OAAO,SACH,CAAC,QAAQ,GAAG,YAAY,GAAG,UAAU,IACrC,CAAC,MAAM,GAAG,UAAU;AAAA;AAQ1B,IAAM,YAAY,CAAC,MAAc,UAC/B,UAAU,QACV,eAAe,KAAK,MAAM,eAAe,IAAI,KAC7C,SAAS,KAAK,EAAE,SAAS,GAAG,KAC5B,SAAS,IAAI,EAAE,WAAW,SAAS,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC;AAUjD,IAAM,2BAA2B,CACtC,UACA,UACoB;AAAA,EACpB,IAAI,aAAa,MAAM;AAAA,IACrB,OAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,MAAM,QAAQ,QAAQ,IAC/B,SAAS,OAAO,CAAC,SAAyB,OAAO,SAAS,QAAQ,IAClE,CAAC;AAAA,EACL,MAAM,SAAS,CAAC,GAAG,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC;AAAA,EACxE,OAAO,OAAO,OACZ,CAAC,SAAS,CAAC,OAAO,KAAK,CAAC,UAAU,UAAU,MAAM,KAAK,CAAC,CAC1D;AAAA;AAGF,IAAM,uBAAuB,CAAC,UAC5B,UAAU,QACT,MAAM,UAAU,aACf,MAAM,MAAM,CAAC,SAAS,KAAK,UAAU,eAAe;AAqDjD,IAAM,yBAAyB,CACpC,YACW;AAAA,EACX,MAAM,SAAS,KAAK,UAAU,QAAQ,UAAU;AAAA,EAChD,MAAM,WAAW,KAAK,UAAU,QAAQ,iBAAiB,CAAC,CAAC;AAAA,EAC3D,MAAM,UAAU,KAAK,UAAU,QAAQ,aAAa;AAAA,EACpD,MAAM,SAAS,KAAK,UAAU,UAAU,kBAAkB,QAAQ,IAAI,CAAC,CAAC;AAAA,EACxE,MAAM,iBAAiB,KAAK,UAAU,QAAQ,kBAAkB,IAAI;AAAA,EACpE,MAAM,YAAY,KAAK,UACrB,QAAQ,cAAc,QAAQ,CAAC,IAAI,kBACrC;AAAA,EACA,MAAM,aAAa,KAAK,UACtB,QAAQ,eAAe,YAAY,OAAO,OAAO,QAAQ,UAAU,CACrE;AAAA,EACA,MAAM,WAAW,KAAK,UAAU;AAAA,IAC9B,MAAM,QAAQ,UAAU,SAAS;AAAA,IACjC,UAAU,QAAQ,UAAU,aAAa;AAAA,EAC3C,CAAC;AAAA,EAKD,MAAM,YAAY,KAAK,UACrB,OAAO,aACJ,QAAQ,aAAa,CAAC,GACpB,OAAO,CAAC,aAAa,CAAC,cAAc,SAAS,IAAI,CAAC,EAClD,IAAI,CAAC,aAAa;AAAA,IACjB,cAAc,SAAS,IAAI;AAAA,IAC3B,CAAC,UAAU,SAAS,EAAE,GAAG,SAAS,MAAM;AAAA,EAC1C,CAAC,CACL,CACF;AAAA,EAEA,MAAM,mBAAmB,KAAK,UAC5B,iBAAiB,QAAQ,aAAa,CAAC,CAAC,CAC1C;AAAA,EACA,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAeY,KAAK,UAAU,QAAQ,aAAa;AAAA;AAAA,yBAEhC;AAAA,4BACG;AAAA,sBACN;AAAA,yBACG;AAAA,2BACE;AAAA,sBACL;AAAA,oBACF;AAAA,4BACQ;AAAA;AAAA;AAAA,oBAGR;AAAA,4BACQ,KAAK,UAAU,iBAAiB;AAAA,qBACvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+CAO0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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",
|
|
235
|
+
"debugId": "84BE184C076646CF64756E2164756E21",
|
|
235
236
|
"names": []
|
|
236
237
|
}
|